/* Studio motion. Local CSS/SVG only; readable content never depends on animation. */
:root{--studio-ease:cubic-bezier(.22,1,.36,1)}
.site-header{background:#070e19d9;transition:background .3s,border-color .3s,box-shadow .3s}
.site-header:focus-within{border-bottom-color:#6bdce154}
.desktop-nav a{position:relative;padding-block:12px}
.desktop-nav a::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:1px;background:linear-gradient(90deg,#7af0d3,#70acff);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--studio-ease)}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,.desktop-nav a[aria-current=page]::after{transform:scaleX(1)}
.hero{background:radial-gradient(ellipse at 50% 15%,#12324a45,transparent 55%),radial-gradient(ellipse at 50% 90%,#154b8438,transparent 58%)}
.hero-grid{opacity:.46;background-size:62px 62px}
.hero-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.hero-orbits{position:absolute;left:50%;top:46%;width:max(1200px,110%);height:auto;transform:translate(-50%,-50%);opacity:.85;mask-image:linear-gradient(transparent,#000 14%,#000 87%,transparent)}
.hero-orbit{transform-origin:700px 420px;stroke:url(#hero-orbit-color);stroke-width:.8;animation:orbit-drift 38s ease-in-out infinite alternate}
.hero-orbit>ellipse:first-child{opacity:.17}
.hero-orbit.orbit-primary{--orbit-from:-19deg;--orbit-to:-9deg}
.hero-orbit.orbit-secondary{--orbit-from:18deg;--orbit-to:31deg;animation-duration:47s}
.hero-orbit.orbit-tertiary{--orbit-from:-47deg;--orbit-to:-33deg;animation-duration:56s;opacity:.5}
.hero-orbit .orbit-signal{stroke:#89f8e0;stroke-width:1.5;stroke-dasharray:1.4 98.6;animation:orbit-signal 17s linear infinite}
.orbit-secondary .orbit-signal{stroke:#87b2ff;animation-duration:23s;animation-delay:-8s}
.orbit-tertiary .orbit-signal{stroke:#baafff;animation-duration:29s;animation-delay:-18s}
.hero-halo{position:absolute;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,#16baca28,transparent 66%);top:0;left:-150px;animation:halo-float 18s ease-in-out infinite alternate}
.halo-violet{background:radial-gradient(circle,#9066dc26,transparent 66%);top:auto;left:auto;bottom:0;right:-160px;animation-delay:-9s}
.hero-axis{position:absolute;top:50%;font:9px/1.6 monospace;letter-spacing:.24em;color:#719aa9;writing-mode:vertical-rl}
.axis-left{left:25px;transform:rotate(180deg)}.axis-right{right:25px}
.hero-content>.hero-badge,.hero-content>h1,.hero-content>.hero-description,.hero-content>.hero-actions,.hero-content>.hero-stack,.hero-content>.hero-signature{animation:studio-enter .9s var(--studio-ease) backwards}
.hero-content>h1{animation-delay:.08s;text-wrap:balance;text-shadow:0 2px 25px #07131e40}
.hero-content>.hero-description{animation-delay:.16s;color:#b6c8db}
.hero-content>.hero-actions{animation-delay:.24s}.hero-content>.hero-stack{animation-delay:.32s}.hero-content>.hero-signature{animation-delay:.4s}
.hero-badge{box-shadow:inset 0 1px #adfff314,0 5px 35px #0003;backdrop-filter:blur(8px)}
.status-light{position:relative}.status-light:after{content:'';position:absolute;inset:-5px;border:1px solid #74efce66;border-radius:50%;animation:status-ripple 3.8s ease-out infinite}
.hero-stack span{border-color:#9cdef247;background:linear-gradient(130deg,#19364de6,#0c172ad9);box-shadow:inset 0 1px #b9f9ff10;transition:transform .3s var(--studio-ease),border-color .3s,box-shadow .3s}
.hero-stack span:hover{transform:translateY(-4px);border-color:#8df3d4;box-shadow:0 8px 26px #3cbcd522}
.discipline-strip{position:relative;overflow:hidden;background:linear-gradient(100deg,#142c3b40,#15213960,#142c3b40)}
.discipline-strip:after{content:'';position:absolute;top:0;bottom:0;width:30%;background:linear-gradient(90deg,transparent,#96f7f014,transparent);transform:translateX(-110%);animation:ribbon-light 12s ease-in-out infinite;pointer-events:none}
.service-card,.editorial-card,.platform-blueprint,.discovery-map,.home-paths>a{--spot-x:50%;--spot-y:30%;--surface-rx:0deg;--surface-ry:0deg;--surface-accent:91,183,255;box-shadow:inset 0 1px #c4eaff0d,0 12px 36px #00000016;transition:transform .55s var(--studio-ease),border-color .35s,box-shadow .35s}
.home-paths>a{position:relative;overflow:hidden}
.infrastructure,.editorial-card.mint{--surface-accent:108,240,202}.growth,.editorial-card.violet{--surface-accent:172,147,255}
.service-card:after,.editorial-card:after,.platform-blueprint:after,.discovery-map:after,.home-paths>a:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--spot-x) var(--spot-y),rgba(var(--surface-accent),.12),transparent 68%);box-shadow:inset 0 1px #bcf8ff20;opacity:0;transition:opacity .4s}
.service-card:hover:after,.editorial-card:hover:after,.platform-blueprint:hover:after,.discovery-map:hover:after,.home-paths>a:hover:after,.service-card:focus-within:after,.editorial-card:focus-within:after{opacity:1}
.service-card :is(h3,.service-card-heading){color:#f1f8ff;letter-spacing:-.035em}
.service-card>p{color:#aec0d5}.service-card li{color:#c2d1e2;font-size:13px;border-top-color:#a7caff18;transition:color .25s,padding-left .3s var(--studio-ease)}
.service-card li:hover{color:#effcff;padding-left:21px}.service-card li:before{color:#80eadc}
.service-symbol,.editorial-icon,.node-mark{box-shadow:inset 0 1px #c8f8ff18,0 6px 20px #0002;transition:transform .5s var(--studio-ease),box-shadow .4s,border-color .4s}
.service-card:hover .service-symbol,.editorial-card:hover .editorial-icon{transform:translateY(-3px) rotate(-4deg);box-shadow:0 8px 28px rgba(var(--surface-accent),.16);border-color:rgba(var(--surface-accent),.5)}
.service-link{border-top-color:#98c8e72e;transition:color .25s}.service-link span,.text-action>span,.action>.icon,.nav-cta>span{transition:transform .4s var(--studio-ease)}
.service-link:hover span,.text-action:hover>span,.action:hover>.icon,.nav-cta:hover>span{transform:translateX(5px)}
.action,.nav-cta,.save-button{position:relative;overflow:hidden;isolation:isolate;transition:transform .4s var(--studio-ease),box-shadow .4s,border-color .3s,background .3s}
.action.primary:after,.nav-cta:after{content:'';position:absolute;inset:-30% auto -30% -70%;width:40%;pointer-events:none;background:linear-gradient(90deg,transparent,#ffffff55,transparent);transform:skewX(-25deg);opacity:0}
.action.primary:hover:after,.action.primary:focus-visible:after,.nav-cta:hover:after{animation:button-sheen .8s var(--studio-ease)}
.action.primary{box-shadow:inset 0 1px #fff9,0 5px 28px #27c9e224}.action.primary:hover{box-shadow:inset 0 1px #fff9,0 10px 38px #27c9e245}
.reveal-arrived{animation:studio-reveal .8s var(--studio-ease) backwards;animation-delay:var(--reveal-delay,0ms)}
.page-intro,.service-detail-header,.access-story{animation:studio-enter .7s var(--studio-ease) backwards}
.mobile-menu[open] nav{animation:menu-unfold .3s var(--studio-ease)}
.service-faq details[open]>p{animation:studio-enter .35s var(--studio-ease)}
.signal-stream{stroke:#91f7df;stroke-width:2;stroke-dasharray:12 230;animation:wire-transmission 9s linear infinite;opacity:.85}
.signal-stream path:nth-child(2){stroke:#80bdff}.signal-stream path:nth-child(3){stroke:#c6acff}
.connected-scene .node{animation:node-hover 7s ease-in-out infinite}.connected-scene .node-infrastructure{animation-delay:-2.5s}.connected-scene .node-growth{animation-delay:-5s}
.platform-nodes>div:nth-of-type(2) .node-mark{animation-delay:-1.5s}.platform-nodes>div:nth-of-type(3) .node-mark{animation-delay:-3s}.platform-nodes>div:nth-of-type(4) .node-mark{animation-delay:-4.5s}
.platform-nodes .node-mark{animation:node-breathe 6s ease-in-out infinite}
.discovery-stages>div{position:relative;overflow:hidden}.discovery-stages>div:before{content:'';position:absolute;top:0;left:0;width:40%;height:2px;background:linear-gradient(90deg,transparent,#95f2d8,transparent);animation:discovery-signal 5s ease-in-out infinite}
.discovery-stages>div:nth-child(2):before{animation-delay:-3.75s}.discovery-stages>div:nth-child(3):before{animation-delay:-2.5s}.discovery-stages>div:nth-child(4):before{animation-delay:-1.25s}
.page-invitation,.closing-section{position:relative;isolation:isolate;overflow:hidden}
.page-invitation:before{content:'';position:absolute;inset:-70% -15%;z-index:-1;background:radial-gradient(ellipse at 20% 50%,#21b6b12b,transparent 55%),radial-gradient(ellipse at 90% 50%,#6770d922,transparent 60%);animation:halo-float 15s ease-in-out infinite alternate;pointer-events:none}
/* Continuous decorations stop outside the viewport, while text stays fully readable. */
.motion-outside .hero-orbit,.motion-outside .orbit-signal,.motion-outside .hero-halo,.motion-outside .status-light:after,.motion-outside .node,.motion-outside .signal-stream,.motion-outside .node-mark,.motion-outside .node-connector:after,.motion-outside .discovery-core>.icon,.motion-outside .discovery-stages>div:before,.discipline-strip.motion-outside:after,.page-invitation.motion-outside:before{animation-play-state:paused!important}
@keyframes studio-enter{from{opacity:.4;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes studio-reveal{from{opacity:.65;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes orbit-drift{from{transform:rotate(var(--orbit-from))}to{transform:rotate(var(--orbit-to))}}
@keyframes orbit-signal{to{stroke-dashoffset:-100}}
@keyframes halo-float{to{transform:translate3d(45px,-30px,0) scale(1.13)}}
@keyframes status-ripple{0%{transform:scale(.65);opacity:0}25%{opacity:.75}85%,100%{transform:scale(1.65);opacity:0}}
@keyframes ribbon-light{0%,20%{transform:translateX(-110%)}80%,100%{transform:translateX(440%)}}
@keyframes button-sheen{0%{left:-70%;opacity:0}20%{opacity:.8}100%{left:150%;opacity:0}}
@keyframes menu-unfold{from{opacity:.4;translate:0 -8px}to{opacity:1;translate:0 0}}
@keyframes wire-transmission{to{stroke-dashoffset:-484}}
@keyframes node-hover{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes node-breathe{0%,100%{box-shadow:inset 0 1px #c8f8ff18,0 0 18px #34ccb812}50%{box-shadow:inset 0 1px #c8f8ff38,0 0 28px #34ccb82c}}
@keyframes discovery-signal{0%{transform:translateX(-120%);opacity:0}20%,80%{opacity:1}100%{transform:translateX(350%);opacity:0}}
@media(hover:hover) and (pointer:fine){.service-card:hover,.editorial-card:hover,.home-paths>a:hover{transform:perspective(1200px) rotateX(var(--surface-rx)) rotateY(var(--surface-ry)) translateY(-5px);border-color:rgba(var(--surface-accent),.48);box-shadow:0 20px 48px #0004,inset 0 1px rgba(var(--surface-accent),.25)}.platform-blueprint:hover .node-mark{transform:translateY(-3px)}}
@media(max-width:850px){.hero-axis{display:none}.hero-orbits{width:1000px;opacity:.6}.service-card li{font-size:13px}.hero-halo{width:320px;height:320px}.hero-orbit.orbit-tertiary{display:none}}
@media(max-width:600px){.hero-orbits{width:800px;opacity:.48}.hero-orbit{animation:none}.hero-orbit .orbit-signal{animation-duration:26s}.hero-halo{animation:none}.discipline-strip:after{animation:none;display:none}.hero-stack span:hover{transform:none}.connected-scene .node{animation:none}.platform-nodes .node-mark{animation:none}.service-card li:hover{padding-left:16px}.page-invitation:before{animation:none}}
@media(hover:none){.service-card:hover,.editorial-card:hover,.home-paths>a:hover,.service-card:hover .service-symbol,.editorial-card:hover .editorial-icon{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-orbit .orbit-signal{opacity:.35}:is(.service-card,.editorial-card,.home-paths>a):hover{transform:none}}
.effects-paused *,.effects-paused *:before,.effects-paused *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.effects-paused :is(.service-card,.editorial-card,.home-paths>a):hover{transform:none}
.effects-suspended *,.effects-suspended *:before,.effects-suspended *:after{animation-play-state:paused!important}
.effects-suspended .reveal-arrived{animation:none!important}
