/* Aster's animated hero: the supplied image remains untouched. */
.identity-hero.motion-hero{--motion-orange:#ff8b26;--motion-rose:#ef809c;--phase-hue:0deg;position:relative;isolation:isolate;perspective:1000px;min-height:472px;padding:22px 26px;background:#121a29;border:1px solid #2c3545;box-shadow:0 16px 42px -30px #121a2980}
.motion-hero .identity-caption{align-items:center;position:relative;z-index:5;min-height:23px;letter-spacing:.115em;font-size:8px}
.motion-pause{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:3px;background:transparent;color:#bbc5d6;font-size:9px;padding:5px 3px;min-width:55px;min-height:28px;justify-content:flex-end}
.motion-pause:hover{color:white}.motion-pause svg{width:10px;height:10px}.motion-pause:focus-visible,.motion-theme:focus-visible{outline:2px solid #ff9f56;outline-offset:5px}
.motion-stage{height:335px;position:relative;margin:0 -26px;overflow:hidden;perspective:800px;touch-action:pan-y}
.motion-stage:before{content:'';position:absolute;inset:5% -15% -10%;background:radial-gradient(ellipse at 58% 62%,#e6792919 0,transparent 58%),radial-gradient(ellipse at 42% 45%,#ed6a9612 0,transparent 50%);opacity:.75;animation:aster-atmosphere 9s ease-in-out infinite alternate;pointer-events:none}
.motion-scene{position:absolute;inset:0;transform:translate3d(var(--move-x,0px),var(--move-y,0px),0) rotateX(var(--rotate-x,0deg)) rotateY(var(--rotate-y,0deg));transform-style:preserve-3d;will-change:transform}
.motion-float{position:absolute;inset:0;animation:aster-float 7s ease-in-out infinite}
.motion-art{position:absolute;width:145%;height:auto;max-width:none;left:-42%;top:-3%;overflow:visible;pointer-events:none}
.motion-art .flow-underlay{fill:none;stroke-width:2;opacity:.16}
.motion-art .flow-light{fill:none;stroke-width:5;stroke-linecap:round;stroke-dasharray:5 95;stroke-dashoffset:100;animation:aster-flow 3.6s linear infinite;filter:drop-shadow(0 0 4px #ff9d49)}
.motion-art .flow-light.rose{filter:drop-shadow(0 0 4px #ff9dc7);animation-duration:4.2s;animation-delay:-1.3s}
.motion-art .flow-light.return{animation-direction:reverse;animation-delay:-2s}
.motion-art .server-light{animation:aster-server 4s ease-in-out infinite;filter:drop-shadow(0 0 5px #ff933a)}
.motion-art .server-light.second{animation-delay:-1.7s}
.motion-art .node-halo{fill:none;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:aster-node 3.6s ease-out infinite}
.motion-art .node-halo.second{animation-delay:-1.8s}
.motion-orbit{position:absolute;width:76%;height:30%;left:15%;bottom:10%;border:1px solid #f58b3920;border-radius:50%;transform:rotate(-12deg);pointer-events:none}
.motion-orbit:before{content:'';position:absolute;inset:-13px -20px;border:1px solid #db779214;border-radius:50%}
.motion-orbit-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffbc6a;box-shadow:0 0 10px #ff8d38;offset-path:ellipse(50% 50% at 50% 50%);animation:aster-orbit 14s linear infinite}
.motion-dust{position:absolute;inset:0;pointer-events:none;opacity:.8}
.motion-dust i{position:absolute;width:2px;height:2px;background:#eab793;border-radius:50%;left:var(--x);top:var(--y);animation:aster-dust var(--duration) ease-in-out infinite;animation-delay:var(--delay)}
.motion-caption{position:relative;z-index:3;text-align:center;min-height:27px;color:#9eacbf;font-size:10px;letter-spacing:.025em;margin-top:1px;margin-bottom:11px}
.motion-hero .hero-art-footer{padding-top:15px;gap:12px;border-color:#334053}
.motion-theme{position:relative;border:0;background:none;display:inline-flex;gap:8px;align-items:center;color:#96a4b8;padding:5px 0 10px;min-height:31px;font-size:10px;text-align:left;transition:color .3s}
.motion-theme:before{content:'';width:5px;height:5px;background:#69778e;transition:background .3s,box-shadow .3s;flex-shrink:0}
.motion-theme[aria-pressed=true]{color:white}.motion-theme[aria-pressed=true]:before{background:#ff8b26;box-shadow:0 0 9px #ff8b2675}
.motion-theme:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,#ff8b26,#ed7d9a);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.motion-theme[aria-pressed=true]:after{transform:scaleX(1)}
.motion-theme:hover{color:#fff}
.motion-hero[data-phase=protected] .motion-stage:before{background:radial-gradient(ellipse at 60% 46%,#f97f2721 0,transparent 60%)}
.motion-hero[data-phase=supported] .motion-stage:before{background:radial-gradient(ellipse at 50% 55%,#ef7e9a24 0,transparent 62%)}
.motion-hero[data-phase=protected] .motion-orbit{border-color:#ff96375c}.motion-hero[data-phase=supported] .motion-orbit{border-color:#ec7c9b4a}
.motion-hero[data-paused=true] *,.motion-hero[data-paused=true] *:before,.motion-hero[data-paused=true] *:after{animation-play-state:paused!important}
.motion-hero[data-reduced=true] .motion-scene{transform:none!important}.motion-hero[data-reduced=true] .motion-art .flow-light{opacity:.6}
@keyframes aster-float{0%,100%{transform:translateY(3px)}50%{transform:translateY(-5px)}}
@keyframes aster-flow{to{stroke-dashoffset:0}}
@keyframes aster-server{0%,100%{opacity:.35}45%,65%{opacity:1}}
@keyframes aster-node{0%{transform:scale(.65);opacity:0}25%{opacity:.6}100%{transform:scale(2);opacity:0}}
@keyframes aster-atmosphere{from{opacity:.4}to{opacity:1}}
@keyframes aster-orbit{to{offset-distance:100%}}
@keyframes aster-dust{0%,100%{transform:translateY(7px);opacity:.1}50%{transform:translateY(-8px);opacity:.6}}
@media(max-width:1100px) and (min-width:761px){.motion-theme{font-size:9px;gap:6px}.motion-caption{font-size:9px}.motion-hero .identity-caption{font-size:7px}}
@media(max-width:760px){.identity-hero.motion-hero{min-height:383px;padding:16px 20px 14px}.motion-stage{height:264px;margin:0 -20px}.motion-art{top:0}.motion-caption{font-size:9px;min-height:20px;margin:0 0 6px}.motion-hero .identity-caption{font-size:7px;letter-spacing:.08em}.motion-pause{font-size:9px}.motion-theme{font-size:9px;gap:6px}.motion-hero .hero-art-footer{gap:8px;padding-top:10px}}
@media(prefers-reduced-motion:reduce){.motion-hero:not([data-user-motion=true]) *,.motion-hero:not([data-user-motion=true]) *:before,.motion-hero:not([data-user-motion=true]) *:after{animation:none!important;transition:none!important}}
/* Full-width opening sequence. The surrounding page stays in the established brand system. */
.cinematic-hero{position:relative;isolation:isolate;overflow:hidden;background:#101d32;color:#fff;border-bottom:1px solid #2c3b51}
.cinematic-hero:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 77% 46%,#24416766,transparent 58%),radial-gradient(ellipse at 61% 92%,#ed803017,transparent 48%)}
.cinematic-hero:after{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#9babc508 1px,transparent 1px),linear-gradient(90deg,#9babc508 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent,#000)}
.cinematic-hero .hero{position:relative;min-height:615px;padding:60px 0 48px;grid-template-columns:1fr 1fr;gap:14px}
.hero-copy{position:relative;z-index:4}
.cinematic-hero .hero h1{font-size:clamp(42px,4.5vw,66px);line-height:1.13;margin:25px 0;letter-spacing:-.05em}
.cinematic-hero .hero .accent{color:#ff8b36}
.cinematic-hero .eyebrow{color:#b7c9e3;font-size:9px;letter-spacing:.18em}.cinematic-hero .eyebrow:before{background:#ff8b36}
.cinematic-hero .hero .lead{color:#becce0;font-size:14px;max-width:480px}
.cinematic-hero .hero .btn{background:#f87c18;color:#101d32;border-color:#f87c18;font-weight:600}.cinematic-hero .hero .btn:hover{background:#ff9f53;border-color:#ff9f53}
.cinematic-hero .hero .text-link{color:#fff;border-color:#74849b}.cinematic-hero .hero-note{color:#98acc8}.cinematic-hero .hero-note span{color:#ff8b36}
.cinematic-hero .identity-hero.motion-hero{isolation:auto;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;min-height:470px;overflow:visible;z-index:2}
.cinematic-hero .identity-caption{position:absolute;top:0;right:0;left:0;justify-content:flex-end}
.cinematic-hero .identity-caption>span{display:none}
.cinematic-hero .motion-stage{height:390px;margin:0 -30px;overflow:visible}
.cinematic-hero .motion-art{width:153%;left:-47%;top:0}
.cinematic-hero .motion-caption{font-size:10px;margin:5px 0 14px;letter-spacing:.03em;color:#aebfd8}
.cinematic-hero .hero-art-footer{border-color:#ffffff22;margin:0 15px;padding-top:15px}
.cinematic-hero .motion-theme{font-size:11px;color:#aebfd8}.cinematic-hero .motion-theme[aria-pressed=true]{color:#fff}
.cinematic-hero .motion-art .flow-light{stroke-width:7;stroke-dasharray:10 90;animation-duration:2.5s;filter:drop-shadow(0 0 6px #ffba74) drop-shadow(0 0 13px #ff872e)}
.cinematic-hero .motion-art .flow-light.rose{animation-duration:3s;filter:drop-shadow(0 0 6px #ffbad6) drop-shadow(0 0 13px #ff7ea4)}
.cinema-bottom{position:relative;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff22;padding:16px 0;color:#94a9c8;font-size:8px;letter-spacing:.18em}
.motion-replay{border:0;background:transparent;color:#bbcee8;font-size:10px;letter-spacing:.02em;padding:8px 0;display:flex;align-items:center;gap:12px}.motion-replay span{font-size:18px;line-height:1}.motion-replay:hover{color:white}
.cinematic-hero+.wrap .credentials{border-top:0;margin-bottom:75px;padding-top:26px;padding-bottom:26px}
.cinematic-hero[data-paused=true] *,.cinematic-hero[data-paused=true] *:before,.cinematic-hero[data-paused=true] *:after{animation-play-state:paused!important}
.cinematic-hero[data-reduced=true] .motion-scene{transform:none!important}
@media(min-width:1300px){.cinematic-hero .motion-stage{height:450px}.cinematic-hero .identity-hero.motion-hero{min-height:530px}.cinematic-hero .hero{min-height:690px}}
@media(max-width:1100px) and (min-width:761px){.cinematic-hero .hero{min-height:600px}.cinematic-hero .hero h1{font-size:43px}.cinematic-hero .motion-stage{height:330px}.cinematic-hero .identity-hero.motion-hero{min-height:425px}.cinematic-hero .hero .lead{font-size:13px}.cinematic-hero .motion-theme{font-size:9px}}
@media(max-width:760px){.cinematic-hero .hero{grid-template-columns:1fr;padding:42px 0 16px;gap:20px;min-height:0}.cinematic-hero .hero h1{font-size:clamp(36px,9.3vw,54px);line-height:1.17;margin:22px 0}.cinematic-hero .hero .lead{font-size:13px;max-width:510px}.cinematic-hero .hero .actions{gap:15px;margin-top:23px}.cinematic-hero .hero .btn{padding:14px 18px;font-size:12px}.cinematic-hero .hero .text-link{font-size:11px}.cinematic-hero .hero-note{font-size:10px;margin-top:18px}.cinematic-hero .identity-hero.motion-hero{width:100%;max-width:480px;min-height:340px;margin:auto}.cinematic-hero .motion-stage{height:280px;margin:0 -8px;overflow:hidden}.cinematic-hero .motion-art{width:145%;left:-42%;top:0}.cinematic-hero .identity-caption{top:0;right:0}.cinematic-hero .motion-caption{font-size:9px;margin:0 0 10px}.cinematic-hero .motion-theme{font-size:9px}.cinematic-hero .hero-art-footer{margin:0;padding-top:10px}.cinema-bottom{font-size:7px;letter-spacing:.1em;padding:10px 0}.motion-replay{font-size:9px}.cinematic-hero+.wrap .credentials{padding:0}}
@media(prefers-reduced-motion:reduce){.cinematic-hero:not([data-user-motion=true]) *,.cinematic-hero:not([data-user-motion=true]) *:before,.cinematic-hero:not([data-user-motion=true]) *:after{animation:none!important;transition:none!important}.cinematic-hero .motion-replay{display:none}}
.cinematic-hero .identity-hero.motion-hero{min-height:0;padding-top:25px}
.cinematic-hero .motion-stage{height:auto;aspect-ratio:1.17;overflow:visible}
.cinematic-hero .motion-art{width:145%;left:-42%;top:-3%}
.cinematic-hero .motion-caption{margin:0 0 12px}
@media(max-width:760px){.cinematic-hero .motion-stage{aspect-ratio:1.2;overflow:hidden}.cinematic-hero .identity-hero.motion-hero{padding-top:15px}.cinematic-hero .motion-caption{margin:0 0 8px}}
/* Until hero-motion.js starts the intro, keep the artwork and copy hidden so the
   settled layout never flashes on first load (see the inline script in index.ejs). */
.hero-intro-pending .cinematic-hero:not(.is-intro-started) .motion-hero,
.hero-intro-pending .cinematic-hero:not(.is-intro-started) .hero-copy>*{opacity:0}
