*{margin:0;padding:0;box-sizing:border-box}:root{--ink:#f4efe6;--dim:rgba(244,239,230,0.42);--faint:rgba(244,239,230,0.07);--bg:#0b0b10;--rose:#ff4d6d;--serif:"Didot","Bodoni MT","Playfair Display","Georgia",serif;--mono:"SF Mono","Menlo","Consolas",monospace}body,html{height:100%}body{background:radial-gradient(120vmax 90vmax at 50% 38%,#15131e 0,var(--bg) 55%,#06060a 100%);color:var(--ink);font-family:var(--serif);overflow:hidden}.stage{position:relative;height:100dvh;width:100vw;display:grid;place-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.trail{z-index:3}.drift,.trail{position:fixed;inset:0;pointer-events:none}.drift{z-index:0}.drift span{position:absolute;font-style:italic;color:var(--faint);white-space:nowrap;animation:drift-about var(--drift-dur) ease-in-out var(--drift-d) infinite alternate}@keyframes drift-about{0%{transform:translate(0) rotate(-4deg)}to{transform:translate(3vw,-6vh) rotate(5deg)}}.title-card{position:relative;z-index:2;text-align:center;display:grid;grid-gap:1.4rem;gap:1.4rem;padding:2rem;animation:fade-up 1.2s ease both}.overline{font-family:var(--mono);font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--dim)}.title{font-size:clamp(2.6rem,8vw,6.5rem);font-weight:400;line-height:1.05}.title,.title em{font-style:italic}.title em{background:linear-gradient(100deg,#ff5b5b,#ffb84d,#ffe44d,#5bdb7c,#5bb8ff,#b07cff);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hue-flow 6s linear infinite}.byline{font-size:clamp(.85rem,1.6vw,1.05rem);font-style:italic;color:var(--dim)}.play{justify-self:center;display:grid;grid-gap:.3rem;gap:.3rem;margin-top:1rem;padding:.9rem 2.2rem;font-family:var(--mono);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:transparent;border:1px solid rgba(244,239,230,.35);border-radius:999px;cursor:pointer;transition:border-color .3s ease,transform .3s ease;animation:unreliable-blink 7s step-end infinite}.play:hover{border-color:var(--ink);transform:rotate(-2deg) scale(1.04)}.play small{font-size:.62rem;letter-spacing:.1em;text-transform:none;color:var(--dim)}@keyframes unreliable-blink{0%,91%,94%,to{opacity:1}92%,93%{opacity:.25}}.performance{position:relative;z-index:2;width:min(92vw,1100px);text-align:center}.line{font-size:clamp(1.9rem,5.5vw,4.6rem);font-weight:400;font-style:italic;line-height:1.25}.word{margin:0 .16em;white-space:nowrap}.letter,.word{display:inline-block}.letter{opacity:0;will-change:transform,opacity}@keyframes fade-up{0%{opacity:0;transform:translateY(.6em)}to{opacity:1;transform:none}}@keyframes hue-flow{0%{background-position:0 50%}to{background-position:200% 50%}}.fx-drop .letter{animation:drop-in .9s cubic-bezier(.22,1.2,.36,1) var(--d) both}@keyframes drop-in{0%{opacity:0;transform:translateY(-90vh) rotate(var(--rot))}55%{opacity:1;transform:translateY(.1em) rotate(calc(var(--rot) / 5))}75%{transform:translateY(-.05em) rotate(calc(var(--rot) / -12))}to{opacity:1;transform:translateY(0) rotate(0deg)}}.fx-flicker .letter{animation:flicker-in 1s linear var(--d) both}@keyframes flicker-in{0%{opacity:0}8%{opacity:1}14%{opacity:0}24%{opacity:.55}30%{opacity:0}40%{opacity:1}48%{opacity:.2}58%,to{opacity:1}}.fx-thrown .letter{animation:fade-up .6s ease var(--d) both}.fx-thrown .word.hurl{display:inline-block;animation:hurl-in 1.1s cubic-bezier(.18,.9,.32,1.1) .5s both}.fx-thrown .word.hurl .letter{animation:none;opacity:1}@keyframes hurl-in{0%{opacity:0;transform:translate(-75vw,-28vh) rotate(-540deg) scale(1.9)}12%{opacity:1}62%{transform:translate(2.5vw,.8vh) rotate(16deg) scale(1.04)}80%{transform:translate(-.8vw,-.3vh) rotate(-6deg) scale(1)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}.fx-sway .letter{transform-origin:50% 100%;animation:fade-up .6s ease var(--d) both,sway var(--dur) ease-in-out calc(var(--d) + .6s) infinite}@keyframes sway{0%,to{transform:rotate(calc(var(--amp) * -1)) translateY(.02em)}50%{transform:rotate(var(--amp)) translateY(-.03em)}}.fx-sincere .letter{animation:fade-up .9s ease var(--d) both}.fx-sincere .word.glow .letter{animation:fade-up .9s ease var(--d) both,adore-glow 2.4s ease-in-out calc(var(--d) + .9s) infinite}@keyframes adore-glow{0%,to{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 18px rgba(255,77,109,.85),0 0 44px rgba(255,77,109,.4)}}.fx-jitter .letter{animation:fade-up .45s ease var(--d) both,jitter var(--jdur) linear calc(var(--d) + .45s) infinite}@keyframes jitter{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(var(--jx),var(--jy)) rotate(var(--jr))}50%{transform:translate(calc(var(--jy) * -.8),var(--jx)) rotate(calc(var(--jr) * -1))}75%{transform:translate(calc(var(--jx) * -1),calc(var(--jy) * -.6)) rotate(calc(var(--jr) / 2))}}.fx-tilt .letter{animation:tilt-in .7s cubic-bezier(.34,1.56,.64,1) var(--d) both}@keyframes tilt-in{0%{opacity:0;transform:rotate(0deg) translateY(0) scale(.5)}to{opacity:1;transform:rotate(var(--tilt)) translateY(var(--ty)) scale(1)}}.fx-rainbow{transform:rotate(-4deg)}.fx-rainbow .letter{background:linear-gradient(90deg,#ff5b5b,#ffb84d,#ffe44d,#5bdb7c,#5bb8ff,#b07cff,#ff5b5b);background-size:800% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:fade-up .7s ease var(--d) both,hue-flow 7s linear calc(var(--i) * -.22s) infinite}.arc{position:absolute;left:50%;bottom:38%;width:min(72vw,780px);transform:translateX(-50%);fill:none;opacity:.55;z-index:-1}.arc path{stroke-width:5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:draw-arc 2.6s ease-out .4s forwards}@keyframes draw-arc{to{stroke-dashoffset:0}}.fx-finale .letter{animation:fade-up .5s ease var(--d) both,love-bounce 1.5s ease-in-out calc(var(--i) * .07s) infinite}@keyframes love-bounce{0%,to{transform:translateY(0) rotate(-3deg) scale(1)}50%{transform:translateY(-.16em) rotate(3deg) scale(1.07)}}.heart{display:inline-block;margin-left:.25em;color:var(--rose);animation:fade-up .5s ease 1.4s both,heartbeat 1.3s ease-in-out 2s infinite}@keyframes heartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.3)}24%{transform:scale(1)}36%{transform:scale(1.2)}}.confetti{position:fixed;inset:0;pointer-events:none;z-index:1}.confetti span{position:absolute;bottom:-6vh;left:var(--x);font-size:var(--s);color:hsl(var(--h),90%,66%);animation:float-up var(--dur) linear var(--cd) infinite;opacity:0}@keyframes float-up{0%{opacity:0;transform:translateY(0) rotate(0)}12%{opacity:.9}to{opacity:0;transform:translateY(-115vh) rotate(var(--r))}}.encore{position:fixed;bottom:7vh;left:0;right:0;z-index:4;display:grid;grid-gap:.9rem;gap:.9rem;justify-items:center;animation:fade-up 1s ease 2.2s both}.replay{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:transparent;border:1px solid rgba(244,239,230,.35);border-radius:999px;padding:.7rem 1.6rem;cursor:pointer;transition:border-color .3s ease,transform .3s ease}.replay:hover{border-color:var(--ink);transform:rotate(1.5deg)}.credit{letter-spacing:.12em}.credit,.hint,.track{font-family:var(--mono);font-size:.65rem;color:var(--dim)}.hint,.track{position:fixed;bottom:3vh;z-index:4;letter-spacing:.18em;text-transform:uppercase}.track{left:3vw}.hint{right:3vw;animation:fade-up 1s ease 2s both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important}.letter{opacity:1}}