/* Keep the homepage background and moving artwork on stable compositing layers.
   No layout, typography, or animation timing changes. */
.hero-home > .hero-atmosphere,
.hero-home > .hero-grain,
 .hero-home .hero-structure {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

@media(max-width:650px){
.mobile-wire-units .wire-reveal-mask{stroke-dasharray:var(--wire-length);stroke-dashoffset:var(--wire-length)}
.mobile-wire-units .reveal-0{animation-name:mobile-wire-reveal-0}
@keyframes mobile-wire-reveal-0{0%,0.00000%{stroke-dashoffset:var(--wire-length);opacity:1}3.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-1{animation-name:mobile-wire-reveal-1}
@keyframes mobile-wire-reveal-1{0%,3.33333%{stroke-dashoffset:var(--wire-length);opacity:1}6.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-2{animation-name:mobile-wire-reveal-2}
@keyframes mobile-wire-reveal-2{0%,6.66667%{stroke-dashoffset:var(--wire-length);opacity:1}10.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-3{animation-name:mobile-wire-reveal-3}
@keyframes mobile-wire-reveal-3{0%,10.00000%{stroke-dashoffset:var(--wire-length);opacity:1}13.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-4{animation-name:mobile-wire-reveal-4}
@keyframes mobile-wire-reveal-4{0%,13.33333%{stroke-dashoffset:var(--wire-length);opacity:1}16.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-5{animation-name:mobile-wire-reveal-5}
@keyframes mobile-wire-reveal-5{0%,16.66667%{stroke-dashoffset:var(--wire-length);opacity:1}20.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-6{animation-name:mobile-wire-reveal-6}
@keyframes mobile-wire-reveal-6{0%,20.00000%{stroke-dashoffset:var(--wire-length);opacity:1}23.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-7{animation-name:mobile-wire-reveal-7}
@keyframes mobile-wire-reveal-7{0%,23.33333%{stroke-dashoffset:var(--wire-length);opacity:1}26.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-8{animation-name:mobile-wire-reveal-8}
@keyframes mobile-wire-reveal-8{0%,26.66667%{stroke-dashoffset:var(--wire-length);opacity:1}30.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-9{animation-name:mobile-wire-reveal-9}
@keyframes mobile-wire-reveal-9{0%,30.00000%{stroke-dashoffset:var(--wire-length);opacity:1}33.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-10{animation-name:mobile-wire-reveal-10}
@keyframes mobile-wire-reveal-10{0%,33.33333%{stroke-dashoffset:var(--wire-length);opacity:1}36.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-11{animation-name:mobile-wire-reveal-11}
@keyframes mobile-wire-reveal-11{0%,36.66667%{stroke-dashoffset:var(--wire-length);opacity:1}40.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-12{animation-name:mobile-wire-reveal-12}
@keyframes mobile-wire-reveal-12{0%,40.00000%{stroke-dashoffset:var(--wire-length);opacity:1}43.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-13{animation-name:mobile-wire-reveal-13}
@keyframes mobile-wire-reveal-13{0%,43.33333%{stroke-dashoffset:var(--wire-length);opacity:1}46.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-14{animation-name:mobile-wire-reveal-14}
@keyframes mobile-wire-reveal-14{0%,46.66667%{stroke-dashoffset:var(--wire-length);opacity:1}50.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-15{animation-name:mobile-wire-reveal-15}
@keyframes mobile-wire-reveal-15{0%,50.00000%{stroke-dashoffset:var(--wire-length);opacity:1}53.33333%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-16{animation-name:mobile-wire-reveal-16}
@keyframes mobile-wire-reveal-16{0%,53.33333%{stroke-dashoffset:var(--wire-length);opacity:1}56.66667%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.mobile-wire-units .reveal-17{animation-name:mobile-wire-reveal-17}
@keyframes mobile-wire-reveal-17{0%,56.66667%{stroke-dashoffset:var(--wire-length);opacity:1}60.00000%,97.03704%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
}
@media(max-width:650px) and (prefers-reduced-motion:reduce){.mobile-wire-units .wire-reveal-mask{animation:none;stroke-dashoffset:0;opacity:1}}

.hero-home.hero-animation-paused .floating-panel,
.hero-home.hero-animation-paused .wire-reveal-mask,
.hero-home.hero-animation-paused .wire-draw-line,
.hero-home.hero-animation-paused .wire-draw-next,
.hero-home.hero-animation-paused .wire-light-trace,
.hero-home.hero-animation-paused .wire-junction,
.hero-home.hero-animation-paused .scroll-icon{animation-play-state:paused}

/* Straight strokes draw without a separate SVG masking surface. */
.wire-direct-draw{stroke-dasharray:100;stroke-dashoffset:100}
.hero-home.hero-animation-paused .wire-direct-draw{animation-play-state:paused}
@media(max-width:650px){.mobile-wire-units .wire-direct-draw{stroke-dasharray:var(--wire-length);stroke-dashoffset:var(--wire-length)}}
@media(prefers-reduced-motion:reduce){.wire-direct-draw{animation:none!important;stroke-dashoffset:0;opacity:1}}

/* The aurora is static: use its cached render instead of live blur surfaces. */
.hero-home > .hero-atmosphere{background:#0f172a url('hero-aurora-desktop.webp') center / 100% 100% no-repeat;opacity:1}
.hero-home > .hero-atmosphere::before,.hero-home > .hero-atmosphere::after{content:none}
@media(max-width:600px){.hero-home > .hero-atmosphere{background-image:url('hero-aurora-mobile.webp')}}

/* Balance homepage edge spacing and centre the service labels with the scroll cue. */
@media(min-width:651px){.hero-home .hero-foot>.scroll-cue{transform:translateY(-12px)}.hero-home .hero-foot>div{transform:translateY(-18px)}}
