/* Scoped to one active hero; all animation is paused until its controller runs. */
.np-motion-layer{--npm-duration:24s;--npm-opacity:.42;position:absolute;inset:8% -3% 0 43%;pointer-events:none;color:var(--project-primary,#094e96);opacity:var(--npm-opacity);overflow:hidden}
.np-motion-layer svg{display:block;width:100%;height:100%;overflow:visible}
.np-motion-layer[data-placement=center]{inset:7% 4% 0 24%}
.np-motion-layer[data-intensity=medium]{--npm-opacity:.62}
.np-motion-layer[data-intensity=strong]{--npm-opacity:.85}
.np-motion-layer[data-tempo=very-slow]{--npm-duration:38s}
.np-motion-layer[data-tempo=medium]{--npm-duration:16s}
.np-motion-layer .npm-line{stroke:currentColor;stroke-width:1;opacity:.5}
.np-motion-layer .npm-trail{stroke:var(--project-secondary,#4490bf);stroke-width:2;stroke-linecap:round;stroke-dasharray:8 92;animation:npm-trace var(--npm-duration) linear infinite}
.np-motion-layer .npm-node{fill:var(--project-secondary,#4490bf);animation:npm-breathe var(--npm-duration) ease-in-out infinite}
.np-motion-layer .npm-halo{stroke:currentColor;stroke-width:1;animation:npm-breathe var(--npm-duration) ease-in-out infinite;opacity:.3}
.np-motion-layer .npm-orbit{transform-origin:430px 320px;animation:npm-orbit calc(var(--npm-duration) * 2) linear infinite}
.np-motion-layer .npm-drift{animation:npm-drift var(--npm-duration) ease-in-out infinite}
.np-motion-layer .npm-wave{animation:npm-wave var(--npm-duration) ease-in-out infinite}
.np-motion-layer .npm-delay-1{animation-delay:calc(var(--npm-duration) * -.33)}
.np-motion-layer .npm-delay-2{animation-delay:calc(var(--npm-duration) * -.66)}
.np-motion-layer *{animation-play-state:paused!important}
.np-motion-layer.is-running *{animation-play-state:running!important}
.np-motion-layer[data-playback=once] *{animation-duration:4s!important;animation-iteration-count:1!important;animation-delay:0s!important;animation-fill-mode:forwards}
.np-motion-graphic .np-hero-visual{background:var(--np-paper)!important}
.np-motion-graphic .np-motion-layer{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--project-secondary) 18%,transparent),transparent 68%)}
@keyframes npm-trace{to{stroke-dashoffset:-100}}
@keyframes npm-breathe{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes npm-orbit{to{transform:rotate(360deg)}}
@keyframes npm-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(9px,-12px)}}
@keyframes npm-wave{0%,100%{transform:translateY(-8px)}50%{transform:translateY(8px)}}
@media(max-width:760px){
 .np-motion-layer,.np-motion-layer[data-placement=center]{inset:43% -10% -3% 0;--npm-opacity:.32}
 .np-motion-layer[data-mobile=off]{display:none}
 .np-motion-layer[data-mobile=static] *{animation-play-state:paused!important}
}
@media(prefers-reduced-motion:reduce){.np-motion-layer *{animation:none!important}}
