/* Visible, restrained spatial motion for the hero geometry. */
.hero-stage{transform-style:preserve-3d;perspective:1100px}.halo{transform-style:preserve-3d;background:transparent;border-color:#aa93f0;border-width:14px;opacity:.76;animation:heroOrbitA 12s ease-in-out infinite;will-change:transform;box-shadow:inset 0 0 5px 2px #ebe5ff,inset 0 0 24px #816aea,0 0 3px 1px #d2c3ff,0 6px 0 #6953ab,0 12px 0 #3f306f,0 20px 25px #0005,0 0 45px #9475ff45}
.halo.second{opacity:.7;border-width:8px;border-color:#7bd7e9;animation:heroOrbitB 16s ease-in-out infinite;box-shadow:inset 0 0 5px #e6ffff,0 5px 0 #377f9f,0 10px 0 #1a405d,0 0 30px #4cd6ef44}
.halo:after{content:'';position:absolute;width:14px;height:14px;top:11%;left:12%;border-radius:50%;background:#f1eaff;box-shadow:0 0 12px 5px #c0a2ff,0 0 30px 10px #837cff88}.halo.second:after{width:9px;height:9px;top:auto;left:auto;bottom:12%;right:12%;background:#c6faff;box-shadow:0 0 10px #6fe8ff,0 0 22px #5ee3ff}
.stage-label{animation:heroCard 8s ease-in-out infinite;backdrop-filter:blur(20px);background:linear-gradient(130deg,#d9e0ff30,#272940a8);border-color:#d2c5ff66;box-shadow:inset 0 2px 1px #efe7ff50,inset -2px -2px 5px #16132966,5px 8px 0 #17182d88,0 30px 60px #0008;overflow:hidden;will-change:transform}
.stage-label:after{content:'';position:absolute;inset:-100%;background:linear-gradient(110deg,transparent 43%,#ffffff20 50%,transparent 57%);transform:translateX(-65%);animation:cardReflection 8s ease-in-out infinite;pointer-events:none}
.hero-sparks{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.hero-sparks i{position:absolute;left:var(--left);top:var(--top);width:3px;height:3px;background:#c7d9ff;border-radius:50%;box-shadow:0 0 7px 2px #6ca6ff66;opacity:0;animation:sparkDrift var(--duration) ease-in-out var(--delay) infinite}.hero-sparks i:nth-child(3n){width:2px;height:2px;background:#e8baff;box-shadow:0 0 9px #c092ff}
.hero .intro{animation:heroEntrance 1.1s ease-out both}.hero h1 em{filter:drop-shadow(0 6px 12px #42378955)}
@keyframes heroOrbitA{0%,100%{transform:rotateX(57deg) rotateY(-21deg) rotateZ(-28deg) translateY(0)}35%{transform:rotateX(39deg) rotateY(15deg) rotateZ(6deg) translateY(-20px)}70%{transform:rotateX(64deg) rotateY(-8deg) rotateZ(24deg) translateY(10px)}}
@keyframes heroOrbitB{0%,100%{transform:rotateX(62deg) rotateY(27deg) rotateZ(30deg) translateY(0)}50%{transform:rotateX(32deg) rotateY(-23deg) rotateZ(-35deg) translateY(-30px)}}
@keyframes heroCard{0%,100%{transform:rotateY(-15deg) rotateX(3deg) rotateZ(5deg) translate3d(0,0,35px)}50%{transform:rotateY(7deg) rotateX(-5deg) rotateZ(-3deg) translate3d(-10px,-24px,55px)}}
@keyframes cardReflection{0%,30%{transform:translateX(-65%)}75%,100%{transform:translateX(65%)}}
@keyframes sparkDrift{0%{opacity:0;transform:translate3d(0,20px,0)}30%,65%{opacity:.65}100%{opacity:0;transform:translate3d(-18px,-48px,0)}}
@keyframes heroEntrance{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.paused .halo,.paused .stage-label,.paused .stage-label:after,.paused .hero-sparks i,.paused .hero .intro{animation-play-state:paused!important}
@media(max-width:650px){.hero-sparks i:nth-child(even){display:none}.halo{border-width:9px;will-change:auto}.stage-label{will-change:auto}.hero .intro{animation:none}}
@media(prefers-reduced-motion:reduce){.halo,.halo.second,.stage-label,.stage-label:after,.hero-sparks i,.hero .intro{animation:none!important;will-change:auto}.hero-sparks{display:none}.hero .intro{opacity:1;transform:none}}
