/* Coordinates and image share one exact intrinsic canvas. Decoration cannot intercept input. */
.hero-motion-stage{position:relative;aspect-ratio:1280/853;transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0);transition:transform .3s ease-out;pointer-events:none}
.hero-art .hero-motion-stage img{display:block;width:100%;height:100%;object-fit:contain}
.hero-motion-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:none;overflow:hidden}
.hero-motion-stage[data-enhanced] .hero-motion-overlay{display:block}
.hero-light-pulse{stroke-dasharray:12 112;stroke-dashoffset:14;opacity:0;filter:drop-shadow(0 0 4px #4ffff1);animation:hero-conduit 7s linear infinite}
.hero-light-right{animation-delay:2.5s}
.hero-icon-glow{opacity:0;animation:hero-arrival 7s ease-in-out infinite}
.hero-icon-phone{animation-delay:-.7s}.hero-icon-web{animation-delay:1.5s}.hero-icon-db{animation-delay:4s}
.hero-motion-stage[data-motion="paused"] .hero-motion-overlay *{animation-play-state:paused}
@keyframes hero-conduit{0%{stroke-dashoffset:14;opacity:0}8%{opacity:.75}37%{stroke-dashoffset:-112;opacity:.75}44%,100%{stroke-dashoffset:-112;opacity:0}}
@keyframes hero-arrival{0%,12%,47%,100%{opacity:0}28%{opacity:.65}}
@media(prefers-reduced-motion:reduce){.hero-motion-stage{transform:none!important;transition:none}.hero-motion-stage[data-enhanced] .hero-motion-overlay{display:none}}
