/* Keep the image and its light traces in the same coordinate space. */
.hero-visual{position:absolute;inset:0;z-index:-1;pointer-events:none;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0);transition:transform 1.2s ease-out}
.hero-scene{position:absolute;inset:0;transform:scale(1.025);transform-origin:50% 75%;animation:scene-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
.hero-visual .hero-image{inset:0;width:100%;height:100%;z-index:0;object-fit:cover;object-position:center bottom;transform:none;transition:none;opacity:1}
.hero-circuit{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero.motion-in-view .hero-scene{animation-play-state:running}
.hero:not(.motion-in-view) .eyebrow svg,.hero:not(.motion-in-view) .hero-explore svg{animation-play-state:paused}
.prototype::after{animation:panel-scan 7s ease-in-out infinite alternate;animation-play-state:paused}
.prototype.motion-in-view::after{animation-play-state:running}
.project-board::after{animation-duration:9s}.interaction-lab::after{animation-duration:6s}
.motion-ready .service-row:nth-child(2){transition-delay:60ms}
.motion-ready .service-row:nth-child(3){transition-delay:120ms}
.motion-ready .service-row:nth-child(4){transition-delay:180ms}
.solution-panel:not([hidden]) .prototype{animation:panel-enter .45s ease-out both}
.service-icon{transition:transform .25s ease-out,border-color .25s ease-out}
.service-row summary:hover .service-icon{transform:translateY(-3px)}
.motion-paused *::before,.motion-paused *::after,.page-inactive *,.page-inactive *::before,.page-inactive *::after{animation-play-state:paused!important}
.motion-paused .hero-visual{transform:none;transition:none}
.motion-paused .service-icon{transition:none}
.motion-paused .prototype{animation:none}
@keyframes scene-drift{from{transform:scale(1.025) translateY(0)}to{transform:scale(1.055) translateY(-5px)}}
@keyframes panel-scan{from{left:22px}to{left:calc(100% - 72px)}}
@keyframes panel-enter{from{opacity:.5;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.hero-scene{animation-duration:22s}}
@media(prefers-reduced-motion:reduce){.hero-scene{animation:none;transform:none}.hero-visual{transform:none;transition:none}.hero-circuit{display:none}.service-row summary:hover .service-icon{transform:none}}
