/* A single stage lets material continue through section boundaries. Layout stays in HTML. */
.motion-stage{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0;background:#050708}
.motion-live main{position:relative;z-index:1}.motion-live .scene{background:transparent}.motion-live .scene-image{opacity:0}.motion-live .scan-mesh{opacity:0}.motion-live .worlds{background:transparent}.motion-live .scene:before,.motion-live .scene:after{display:none}.motion-live .scene-copy{text-shadow:0 2px 12px #0005}
footer{position:relative;z-index:2;background:#050708}.scene-image{transition:opacity 1.1s}.motion-live .scene:after{opacity:.55}
.motion-toggle{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:0;padding:0;background:transparent;cursor:pointer;opacity:.7;flex-shrink:0;position:relative;margin-right:-24px}
.motion-toggle:before,.motion-toggle:after{content:"";display:block;width:1px;height:8px;margin:0 2px;background:currentColor;transition:transform .4s,opacity .4s}
.motion-toggle[aria-pressed="true"]:before{height:7px;transform:translate(2px,-2px) rotate(-45deg)}.motion-toggle[aria-pressed="true"]:after{height:7px;transform:translate(-3px,2px) rotate(45deg)}.motion-toggle:hover{opacity:1}.motion-toggle:disabled{cursor:default;opacity:.35}
.nav-link{position:relative}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.6,.3,1)}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1)}
.text-link span,.next-world,.world-action{transition:transform .6s cubic-bezier(.2,.6,.3,1),color .5s}.world-link:hover .world-action,.world-link:focus-visible .world-action{transform:translateX(5px)}.world-link h3{transition:color .6s}.next-world:hover{transform:translateX(4px)}
.scroll-cue:before{content:"";position:absolute;left:0;top:-23px;width:1px;height:13px;background:linear-gradient(transparent,#dadbd0);animation:scroll-breath 4s ease-in-out infinite}
@keyframes scroll-breath{0%,100%{transform:translateY(-3px);opacity:.25}50%{transform:translateY(4px);opacity:.8}}
.flow span{position:relative;transition:color 1s,opacity 1s}.motion-live .flow span{opacity:.5}.motion-live .flow span.current{opacity:1;color:#e8d1ad}.flow span.current:before{content:"";position:absolute;bottom:-10px;left:0;width:20px;height:1px;background:#d1b38a}
.reveal{transition:opacity 1.2s ease,filter 1.2s ease}.motion-ready .reveal:not(.in){filter:blur(3px)}
@media(max-width:600px){.motion-toggle{margin-right:-8px;width:20px}.nav{gap:13px}.languages{gap:9px}.motion-live .world-link:before{animation:material-breath 12s ease-in-out infinite;animation-delay:calc(var(--i) * -2s)}.motion-live .theme-portal .worlds .scene-image{opacity:0}}
@keyframes material-breath{0%,100%{transform:translateY(0) scale(1);filter:brightness(.94)}50%{transform:translateY(-5px) scale(1.025);filter:brightness(1.08)}}
@media(prefers-reduced-motion:reduce){.motion-stage{display:none}.motion-toggle{opacity:.35}*,*:before,*:after{animation:none!important;transition:none!important}.scene-image{opacity:1!important;transform:none!important}html{scroll-behavior:auto}}
body[data-motion="paused"] *,body[data-motion="paused"] *:before,body[data-motion="paused"] *:after{animation-play-state:paused!important}
body[data-motion="paused"] .scene-image,body[data-motion="reduced"] .scene-image,body[data-motion="context-lost"] .scene-image,body[data-motion="fallback"] .scene-image,body[data-motion="loading"] .scene-image{opacity:1;transition:none}
