/* Editorial motion layer. Layout and form interactions remain independent. */
.reading-progress{position:fixed;inset:0 0 auto;height:2px;background:linear-gradient(90deg,#1684ff,#8edbff);transform:scaleX(0);transform-origin:left;z-index:80;pointer-events:none;box-shadow:0 0 12px #1684ff80}
.hero-sweep{position:absolute;inset:-50% -60%;pointer-events:none;z-index:1;background:linear-gradient(115deg,transparent 44%,#53baff00 47%,#53baff12 50%,#93d8ff05 53%,transparent 57%);animation:light-sweep 12s ease-in-out infinite;mix-blend-mode:screen}
.hero .btn{position:relative;overflow:hidden}.touch-ripple{position:absolute;pointer-events:none;width:12px;height:12px;margin:-6px;border-radius:50%;background:#c2eaff70;animation:touch-feedback .6s ease-out forwards}
@keyframes touch-feedback{to{transform:scale(22);opacity:0}}
@keyframes light-sweep{0%,15%{transform:translateX(-28%);opacity:0}30%,65%{opacity:1}85%,100%{transform:translateX(28%);opacity:0}}
.hero-content,.hero-bottom{z-index:2}.hero-network{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.7;mask-image:linear-gradient(90deg,transparent 30%,#000 70%)}
.hero-halo{position:absolute;width:750px;height:750px;right:-160px;top:-90px;z-index:1;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at center,#1684ff18,transparent 65%);animation:halo-drift 18s ease-in-out infinite alternate}
.hero-halo:before,.hero-halo:after{content:'';position:absolute;inset:15%;border:1px solid #69bdff13;border-radius:50%;transform:rotateX(60deg) rotateZ(-25deg)}
.hero-halo:after{inset:23%;border-color:#69bdff22;transform:rotateX(60deg) rotateZ(25deg)}
.hero-signal{position:absolute;bottom:0;right:8%;height:110px;width:1px;background:linear-gradient(transparent,#69c4ff77,transparent);z-index:1;animation:signal-flow 5s ease-in-out infinite;pointer-events:none}
.home .hero:before{transform:scale(1.035);animation:hero-drift 24s ease-in-out infinite alternate;will-change:transform}
.cinematic-intro .eyebrow{animation:intro-up .8s cubic-bezier(.2,.65,.25,1) both}.cinematic-intro h1{animation:intro-up 1s .1s cubic-bezier(.2,.65,.25,1) both}.cinematic-intro>p{animation:intro-up 1s .22s cubic-bezier(.2,.65,.25,1) both}.cinematic-intro .actions{animation:intro-up 1s .32s cubic-bezier(.2,.65,.25,1) both}
.motion-reveal{opacity:0;transform:translateY(24px);transition:opacity .75s var(--reveal-delay,0ms),transform .75s var(--reveal-delay,0ms) cubic-bezier(.2,.65,.25,1)}.motion-reveal.motion-in{opacity:1;transform:translateY(0)}
.motion-card{--tilt-x:0deg;--tilt-y:0deg;position:relative;isolation:isolate;transition:opacity .75s var(--reveal-delay,0ms),border-color .35s,box-shadow .35s,transform .3s!important}.motion-card:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(350px circle at var(--glow-x,50%) var(--glow-y,0%),#59bbff0d,transparent 70%);pointer-events:none;z-index:-1}.motion-card:hover{border-color:#4b87b1;box-shadow:0 18px 45px #00000020}
.motion-card .num{display:inline-block}.motion-card .num:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:9px;background:#64b8ff;box-shadow:0 0 10px #64b8ff80}
.home .card .badge{position:relative}.home .card .badge:after{content:'';position:absolute;inset:-4px;border:1px solid currentColor;border-radius:inherit;opacity:0;animation:badge-pulse 6s ease-out infinite}
.network .route{stroke-linecap:round}.vision-strip{background-size:160% 160%;animation:gradient-drift 14s ease-in-out infinite alternate}
.menu-open nav{animation:menu-in .25s ease-out}nav a{transition:color .2s;text-underline-offset:7px}.hero .btn{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .2s ease-out,transform .25s,box-shadow .25s}
@keyframes intro-up{from{opacity:0;transform:translateY(25px);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes halo-drift{from{transform:translate3d(0,0,0) rotate(-8deg)}to{transform:translate3d(-35px,35px,0) rotate(8deg)}}
@keyframes hero-drift{from{transform:scale(1.035) translate3d(0,0,0)}to{transform:scale(1.065) translate3d(-.6%,.4%,0)}}
@keyframes signal-flow{0%,100%{transform:translateY(40px);opacity:0}40%,60%{transform:translateY(-20px);opacity:1}}
@keyframes badge-pulse{0%,70%,100%{opacity:0;transform:scale(1)}75%{opacity:.16}90%{opacity:0;transform:scale(1.06,1.2)}}
@keyframes gradient-drift{from{background-position:0% 30%}to{background-position:100% 70%}}
@keyframes menu-in{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.motion-card.motion-in,.card.motion-card{transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift,0px))}.motion-card.motion-in:hover,.card.motion-card:hover{--lift:-4px}}
@media(max-width:700px){.hero-network{opacity:.68;-webkit-mask-image:linear-gradient(90deg,transparent 5%,#000 80%);mask-image:linear-gradient(90deg,transparent 5%,#000 80%)}.hero-halo{width:480px;height:480px;right:-170px;top:100px;background:radial-gradient(ellipse at center,#1684ff30,transparent 65%)}.home .hero:before{animation:none;transform:none}.hero-halo{animation-duration:16s}.hero-sweep{animation-duration:9s}.motion-reveal{transform:translateY(15px)}.card:active,.tile:active{border-color:#69bdff}.hero-signal{right:12%;height:150px}}
body.calm .hero-network,body.calm .hero-halo,body.calm .hero-signal,body.calm .hero-sweep,body.calm .touch-ripple{display:none}body.calm .cinematic-intro *,body.calm .motion-reveal{opacity:1!important;transform:none!important;filter:none!important}body.calm .motion-card{transform:none!important}body.calm .hero .btn{translate:none!important}body.home.calm .hero:before{transform:none}
@media(prefers-reduced-motion:reduce){.hero-network,.hero-halo,.hero-signal,.hero-sweep,.touch-ripple{display:none!important}.cinematic-intro *,.motion-reveal{opacity:1!important;transform:none!important;filter:none!important}.motion-card{transform:none!important}.hero .btn{translate:none!important}}

.map circle{transform-box:fill-box;transform-origin:center;animation:map-beacon 4.5s ease-in-out infinite}.map circle:nth-of-type(2){animation-delay:1s}.map circle:nth-of-type(3){animation-delay:2s}@keyframes map-beacon{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.home .hero:before{transform:none!important}}
