/* AFSANA's spatial vocabulary adapted to independent, normally scrolling pages. */
.page-transition{position:fixed;inset:0;z-index:150;pointer-events:none;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#416787,#173044 70%);transform:scaleY(0);transform-origin:top;animation:page-uncover .85s cubic-bezier(.76,0,.24,1) both}
.page-transition>span{font:100px Arial;color:var(--cyan);filter:drop-shadow(0 0 30px #91baff80);opacity:.9}
.page-exiting .page-transition{animation:none;transform-origin:bottom;transform:scaleY(1);transition:transform .32s cubic-bezier(.76,0,.24,1);pointer-events:auto}
.page-exiting main{opacity:.65;transform:translateY(-8px) scale(.995)}
.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:80;background:linear-gradient(90deg,var(--violet),var(--cyan));transform:scaleX(var(--reading-progress,0));transform-origin:left;box-shadow:0 0 14px #91cfff90;pointer-events:none}
.flight-path{position:absolute;inset:0;z-index:-1;width:100%;height:100%;overflow:visible;pointer-events:none;opacity:.65}
.flight-path path{fill:none;stroke:#c5d6ff;stroke-width:1.5;stroke-opacity:.45;stroke-dasharray:3 17;stroke-dashoffset:var(--path-shift,0);filter:drop-shadow(0 0 9px #95b6ff);animation:path-travel 24s linear infinite;vector-effect:non-scaling-stroke}
.hero-orbit{animation:orbit-breathe 14s ease-in-out infinite alternate}
.hero-orbit:after{animation:ring-turn 70s linear infinite}
.orbital{animation:orbit-breathe 18s ease-in-out infinite alternate}
.status-dot{animation:status-pulse 3.4s ease-in-out infinite}
.scroll-note>span,.travel-hint>b{animation:scroll-invitation 2.6s ease-in-out infinite}
.js-motion .home-hero-inner{transform:perspective(1700px) rotateZ(var(--camera-bank,0deg));transform-origin:center 65%;will-change:transform}
.js-motion .hero-art{transform:translate3d(var(--drift-x,0px),var(--art-float,0px),0) rotateY(var(--scene-yaw,0deg));will-change:transform}
.js-motion .hero-atmosphere{transform:scale(1.1) translate3d(var(--bg-x,0px),var(--bg-y,0px),0);will-change:transform}
.js-motion .hero-photo img{transform:scale(1.09) translate3d(var(--bg-x,0px),var(--bg-y,0px),0);will-change:transform}
.js-motion .large-word{transform:translate3d(var(--word-x,0px),var(--word-y,0px),0);will-change:transform}
.js-motion .page-hero-inner{transform:translate3d(0,var(--copy-y,0px),0);will-change:transform}
.js-motion .home-hero .hero-copy>.eyebrow,.js-motion .home-hero .hero-copy>h1,.js-motion .home-hero .hero-copy>h2,.js-motion .home-hero .hero-copy>p,.js-motion .hero-buttons{animation:arrival-enter 1.1s var(--ease) both}
.js-motion .home-hero .hero-copy>.eyebrow{animation-delay:.15s}
.js-motion .home-hero .hero-copy>h1{animation-delay:.23s}
.js-motion .home-hero .hero-copy>h2{animation-delay:.33s}
.js-motion .home-hero .hero-copy>p{animation-delay:.43s}
.js-motion .hero-buttons{animation-delay:.51s}
.js-motion .hero-art>.art-frame{animation:glass-arrival 1.4s var(--ease) .2s both}
.js-motion .capacity-card{animation:arrival-enter 1.1s var(--ease) .6s both}
.js-motion .page-hero-inner>*{animation:arrival-enter 1s var(--ease) both}
.js-motion .page-hero-inner>h1{animation-delay:.14s}
.js-motion .page-hero-inner>p{animation-delay:.24s}
.js-motion .page-hero-inner>.button,.js-motion .page-hero-inner>.scroll-note{animation-delay:.34s}
.site-menu .menu-links>a{opacity:0;transform:translateY(23px);transition:opacity .45s var(--ease),transform .55s var(--ease),color .2s;transition-delay:0s}
.site-menu.open .menu-links>a{opacity:1;transform:translateY(0);transition-delay:calc(var(--menu-index,0)*45ms + 75ms)}
.site-menu.open .menu-links>a:hover{transform:translateX(7px);transition-delay:0s;color:var(--cyan)}
html[dir=rtl] .site-menu.open .menu-links>a:hover{transform:translateX(-7px)}
.js-motion .world-card,.js-motion .portal{transform:perspective(1000px) rotateX(var(--card-tilt-x,0deg)) rotateY(var(--card-tilt-y,0deg)) translate3d(0,var(--card-lift,0px),0);transition:transform .45s var(--ease),border-color .4s,box-shadow .4s;transform-style:preserve-3d}
.js-motion .world-card:hover,.js-motion .portal:hover{--card-lift:-8px;box-shadow:0 30px 70px #020c15aa,0 0 35px #77aedb20}
.js-motion .world-card:before,.js-motion .portal:before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,30%),#c0ddff35,transparent 55%);opacity:0;transition:opacity .4s;pointer-events:none}
.js-motion .world-card:hover:before,.js-motion .portal:hover:before{opacity:1}
.js-motion .portal-content,.js-motion .world-card>div{transform:translateZ(15px)}
.world-card .portal-link:after,.portal .portal-link:after{content:'';position:absolute;inset-inline:0;bottom:-1px;height:2px;transform:scaleX(0);transform-origin:left;background:var(--cyan);transition:transform .7s var(--ease)}
.portal-link{position:relative}.world-card:hover .portal-link:after,.portal:hover .portal-link:after{transform:scaleX(1)}
.motion-ready .reveal{transition-delay:var(--reveal-delay,0ms)}
.motion-paused *{animation-play-state:paused!important}
@keyframes page-uncover{0%,12%{transform:scaleY(1)}100%{transform:scaleY(0)}}
@keyframes arrival-enter{from{opacity:0;translate:0 24px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes glass-arrival{from{opacity:0;translate:40px 35px;filter:blur(9px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes path-travel{from{stroke-dashoffset:0}to{stroke-dashoffset:-400}}
@keyframes orbit-breathe{from{opacity:.5;filter:drop-shadow(0 0 10px #73abd91a)}to{opacity:1;filter:drop-shadow(0 0 30px #73abd944)}}
@keyframes ring-turn{to{rotate:360deg}}
@keyframes status-pulse{0%,100%{box-shadow:0 0 7px #5cb6e688}50%{box-shadow:0 0 20px #5cb6e6dd}}
@keyframes scroll-invitation{0%,100%{translate:0 0;opacity:.6}50%{translate:0 7px;opacity:1}}
@media(hover:none),(pointer:coarse){.js-motion .world-card,.js-motion .portal{transform:none!important}.js-motion .home-hero-inner{transform:none}.js-motion .hero-art{transform:translate3d(0,var(--art-float,0px),0)}}
@media(max-width:530px){.flight-path{opacity:.4}.js-motion .hero-photo img,.js-motion .hero-atmosphere{will-change:auto}.page-transition>span{font-size:72px}}
@media(prefers-reduced-motion:reduce){.page-transition{display:none}.reading-progress{box-shadow:none}.flight-path path{animation:none}.js-motion .home-hero-inner,.js-motion .hero-art,.js-motion .page-hero-inner,.js-motion .large-word,.js-motion .hero-photo img,.js-motion .hero-atmosphere,.js-motion .world-card,.js-motion .portal{transform:none!important;will-change:auto}.site-menu .menu-links>a{opacity:1;transform:none}.page-exiting main{opacity:1;transform:none}*,*:before,*:after{animation:none!important;transition:none!important}}
