/* A short musical opening; the artwork stays exact once each slice settles. */
html.intro-pending .wrap {visibility:hidden;}
.immersive-intro {position:fixed;inset:0;z-index:10000;display:grid;place-items:center;width:100%;height:100%;min-height:100dvh;margin:0;padding:24px;border:0;border-radius:0;background:#102422;color:#f3efe3;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.immersive-intro:focus-visible {outline:none;}
.immersive-intro-lockup {display:flex;align-items:center;width:min(80vw,360px);margin-top:-3vh;line-height:0;pointer-events:none;overflow:visible;}
.immersive-intro-lockup svg {display:block;height:auto;overflow:hidden;}
.immersive-intro-symbol-slot {position:relative;flex:0 0 17.492711%;width:17.492711%;}
.immersive-intro-symbol {width:100%;opacity:0;transform-origin:50% 85%;}
.immersive-intro-wordmark {display:flex;align-items:center;flex:0 0 82.507289%;width:82.507289%;overflow:visible;}
.immersive-intro-letter {flex-shrink:0;opacity:0;transform-origin:50% 80%;}
.is-playing .immersive-intro-letter {animation:intro-letter-wave 440ms var(--letter-delay) cubic-bezier(.2,.75,.25,1) both;}
.is-playing .immersive-intro-symbol {animation:intro-piano-snap 410ms 1070ms cubic-bezier(.2,.75,.25,1) both;}
.immersive-intro-symbol-slot::after {content:'';position:absolute;inset:-10px;border:1px solid #9fdfbb;border-radius:50%;opacity:0;}
.has-landed .immersive-intro-symbol-slot::after {animation:intro-landing-ring 500ms ease-out both;}
.is-snapped .immersive-intro-letter,.is-snapped .immersive-intro-symbol {animation:none;opacity:1;transform:none;}
.immersive-intro-hint {position:absolute;left:0;right:0;top:calc(50% + 64px);color:#a2b9ab;font-size:11px;letter-spacing:.03em;line-height:1.5;}
.immersive-intro-hint[hidden] {display:none;}
.immersive-intro.is-leaving {animation:intro-reveal-home 240ms ease-in both;}
@keyframes intro-letter-wave {0%{opacity:0;transform:translateY(23px) rotate(-5deg) scale(.72);}58%{opacity:1;transform:translateY(-7px) rotate(1deg) scale(1.05);}80%{transform:translateY(2px) rotate(0) scale(.99);}100%{opacity:1;transform:none;}}
@keyframes intro-piano-snap {0%{opacity:0;transform:translateY(-28px) rotate(-12deg) scale(1.14);}64%{opacity:1;transform:translateY(2px) rotate(0) scale(.97);}82%{transform:translateY(-1px) scale(1.01);}100%{opacity:1;transform:none;}}
@keyframes intro-landing-ring {0%{opacity:.3;transform:scale(.7);}100%{opacity:0;transform:scale(1.35);}}
@keyframes intro-reveal-home {from{opacity:1;}to{opacity:0;}}
@media(prefers-reduced-motion:reduce){.immersive-intro{display:none;}.immersive-intro *{animation:none!important;}}
