Welcome

EN | PH Vtuber

VDesigner ★ VEditor ★ Vwriter

Hi! I’m Euphoria Li,Euphoria Li GIF

a shy succubi & demi goddess who tells stories from a mystical shop between realms.
Feel free to explore my links, works, lore, and all the magic I offer.

Music PlayerSparkle GIF
神様はじめました by Hanae
const audio = document.querySelector('#musicsrc'); const button = document.querySelector('.playpause i'); button.addEventListener('click', () => { if (audio.paused) { audio.play(); button.classList.remove('fa-play'); button.classList.add('fa-pause'); } else { audio.pause(); button.classList.remove('fa-pause'); button.classList.add('fa-play'); } });
Romance — Android 52
const audio2 = document.querySelector('#musicsrc2'); const button2 = document.querySelector('.playpause2 i'); button2.addEventListener('click', () => { if (audio2.paused) { audio2.play(); button2.classList.remove('fa-play'); button2.classList.add('fa-pause'); } else { audio2.pause(); button2.classList.remove('fa-pause'); button2.classList.add('fa-play'); } });
きだから - 加藤いづみ
const audio3 = document.querySelector('#musicsrc3'); const button3 = document.querySelector('.playpause3 i'); button3.addEventListener('click', () => { if (audio3.paused) { audio3.play(); button3.classList.remove('fa-play'); button3.classList.add('fa-pause'); } else { audio3.pause(); button3.classList.remove('fa-pause'); button3.classList.add('fa-play'); } });
cute gif GET 30% OFF ON CARRD WITH CODE: EUPHORIALI    cute gif GET 30% OFF ON CARRD WITH CODE: EUPHORIALI    cute gif GET 30% OFF ON CARRD WITH CODE: EUPHORIALI
Sparkle GIFLanguagesSparkle GIF
Fluent𖹭 English𖹭 Tagalog𖹭 German
Intermediate𖹭 JapaneseBeginner𖹭 Korean
Profile
Birthday:November 30
Pronouns:She/Her
Oshi Mark:🦋🌙🏮
Divider
Nicknames:Eu-Chan, Euphy, Eu
Fave Color:Pastel Lavender, Pastel Pink
Fave Movie: Howl's Moving Castle Howl GIF
Sparkle GIFWhere to find meSparkle GIF
fixed gif
cute gif find me online @Euphoria_LiVT    cute gif find me online @Euphoria_LiVT    cute gif find me online @Euphoria_LiVT
Sparkle GIFShop, Support, & Gift
document.body.style.overflow = 'hidden'; document.getElementById('teleportBtn').addEventListener('click', function() { const popup = document.getElementById('popup'); popup.classList.add('fade-out'); setTimeout(() => { popup.remove(); document.body.style.overflow = 'auto'; }, 1000); });
Left Sparkle GIFMy LoreRight Sparkle GIF

Born from the forbidden union of a demon and a Goddess, will Euphoria be able to redeem herself and find the place she truly belongs to?

Sparkle GIFLikes, Dislikes & More...
Likes•︵• Dislikes
❤︎ ChocolatesSpiders
❤︎ CookiesPeople eating my shnacksh
❤︎ Red WinePushy people
❤︎ TeaBlack Coffee
❤︎Spicy FoodBland Food
SongArtist
RomanceAndroid 52
Little WondersRob Thomas
I Feel GoodPink Sweat$
Come Inside Of My HeartIV Of Spades
Wait a Minute!Willow
AnimeGenreType
Violet EvergardenDrama / Slice of LifeSeries
Spirited AwayFantasy / AdventureMovie
Sailor MoonFantasy / Action / RomanceSeries
XxxholicFantasy / SupernaturalSeries
Bokura Ga ItaSlice of Life / RomanceSeries
Sparkle GIFGraphic Design Commission
Graphic DesignPrice (€)
❤︎ Thumbnail | Promo Post35
❤︎ Debut Slides (per slide)35
❤︎ Reference Sheet (Simple)30
❤︎ Reference Sheet (Detailed)40
❤︎ Model Reveal35
❤︎ [ skeb ] Stream Schedule35
❤︎ [ skeb ] Stream overlay50
❤︎ Business Card | Loyalty card30
❤︎ Banner35
Accepting Custom Request via DM 
RiggingPrice (€)
TBATBA
TBATBA
Sparkle GIFBranding · Commission
Branding CommissionPrice (€)
Custom Brandbible55
Custom Social Media Kit60
Idol Signature | Watermark35
Sparkle GIFCarrd Commission
Carrd CommissionPrice (€)
Standard Non Pro35
Pro User60
Sparkle GIFWork in ProgressSparkle GIF
Pardon the dust! 🕯️
I’m still working behind the scenes to bring this page to life.
Please check back later for updates!
const canvas = document.getElementById('confetti-canvas'); const ctx = canvas.getContext('2d'); canvas.width = canvas.parentElement.offsetWidth; canvas.height = canvas.parentElement.offsetHeight; class Confetti { constructor() { this.x = canvas.width / 2; this.y = canvas.height / 2; this.radius = Math.random() * 4 + 2; this.speedX = (Math.random() - 0.5) * 10; this.speedY = (Math.random() - 0.5) * 10; this.alpha = 1; } draw() { ctx.beginPath(); ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2); ctx.fillStyle = `rgba(255,255,255,${this.alpha})`; ctx.shadowColor = 'white'; ctx.shadowBlur = 10; ctx.fill(); } update() { this.x += this.speedX; this.y += this.speedY; this.alpha -= 0.02; this.draw(); } } const confettis = []; for (let i = 0; i < 100; i++) { confettis.push(new Confetti()); } function animate() { ctx.clearRect(0, 0, canvas.width, canvas.height); confettis.forEach((c, i) => { c.update(); if (c.alpha <= 0) confettis.splice(i, 1); }); if (confettis.length > 0) { requestAnimationFrame(animate); } } animate(); window.addEventListener('resize', () => { canvas.width = canvas.parentElement.offsetWidth; canvas.height = canvas.parentElement.offsetHeight; });