/* A brief, handwritten greeting. */
.yd-intro{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;width:100%;height:100dvh;border:0;border-radius:0;padding:0;background:#f5f3eb;color:#34392f;cursor:pointer;overflow:hidden;touch-action:manipulation;transition:opacity .38s ease,filter .38s ease;isolation:isolate}.yd-intro::before{content:'';position:absolute;inset:-30%;background:radial-gradient(ellipse at 38% 45%,#ffe7ac55,transparent 38%),radial-gradient(ellipse at 65% 55%,#d9c9f33b,transparent 35%);filter:blur(35px)}.yd-intro svg{position:relative;width:clamp(150px,23vw,260px);height:auto;overflow:visible;animation:intro-breathe 1.1s cubic-bezier(.2,.7,.2,1) both}.yd-intro path{fill:none;stroke:url(#hello-ink);stroke-width:4.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:hello-write .68s cubic-bezier(.4,0,.25,1) forwards}.yd-intro .hello-d{animation-delay:.23s;animation-duration:.57s}.yd-intro .hello-dot{animation-delay:.72s;animation-duration:.15s;stroke-width:7}.yd-intro small{position:absolute;bottom:max(42px,env(safe-area-inset-bottom));font-size:9px;letter-spacing:1.2px;font-weight:400;color:#888b80;animation:hello-hint .4s .3s both}.yd-intro.is-leaving{opacity:0;filter:blur(5px);pointer-events:none}.yd-intro:focus-visible{outline:2px solid #7252bb;outline-offset:-8px}@keyframes hello-write{to{stroke-dashoffset:0}}@keyframes intro-breathe{from{transform:translateY(8px) scale(.96)}to{transform:translateY(0) scale(1)}}@keyframes hello-hint{from{opacity:0}to{opacity:1}}
/* Slow light, tied to the audio element's actual playback state. */
.music-atmosphere{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;opacity:0;transition:opacity 2.8s ease;contain:strict}.music-atmosphere::before,.music-atmosphere::after{content:'';position:absolute;width:100vw;height:100vh;inset:-20% -25%;background:radial-gradient(ellipse at center,#efb54042 0%,#f4cf7629 25%,transparent 62%);filter:blur(45px);will-change:transform;animation:golden-drift 30s ease-in-out infinite alternate;animation-play-state:paused}.music-atmosphere::after{inset:15% auto auto 25%;background:radial-gradient(ellipse at center,#e6a55726,transparent 63%);animation-delay:-14s;animation-duration:38s}.music-on .music-atmosphere{opacity:1}.music-on .music-atmosphere::before,.music-on .music-atmosphere::after{animation-play-state:running}main{position:relative;z-index:1}@keyframes golden-drift{from{transform:translate3d(-8%,-9%,0) scale(.9)}to{transform:translate3d(18%,15%,0) scale(1.2)}}@media(prefers-reduced-motion:reduce){.yd-intro svg,.yd-intro path,.yd-intro small{animation:none}.yd-intro path{stroke-dashoffset:0}.yd-intro{transition:opacity .15s}.music-atmosphere::before,.music-atmosphere::after{animation:none;will-change:auto}.music-atmosphere{transition:opacity .4s}}

/* Allura typeface outlines: consistent rendering before any font loads. */
.yd-intro .intro-word{width:clamp(155px,20vw,230px);color:#363d32;animation:allura-reveal .85s cubic-bezier(.22,1,.36,1) both}
.yd-intro .intro-word path{fill:currentColor;stroke:none;stroke-dasharray:none;stroke-dashoffset:0;animation:none}
@keyframes allura-reveal{0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translateY(5px);filter:blur(2px)}20%{opacity:1}100%{clip-path:inset(0 0 0 0);opacity:1;transform:translateY(0);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.yd-intro .intro-word{animation:none}}
