/* Quiet background motion; foreground content stays completely still. */
.motion-surface{position:relative;isolation:isolate;overflow:hidden}
.motion-surface::after{content:"";position:absolute;inset:-8%;z-index:-1;pointer-events:none}

/* Optical signal: a soft blue ribbon drifts behind the existing night image. */
.motion-light::after{
 background:linear-gradient(116deg,transparent 32%,#62bfff00 42%,#77caff1c 49%,#62bfff00 56%,transparent 66%);
 animation:signal-drift 28s ease-in-out infinite alternate;
}
.cta-band.motion-light::after{animation-delay:-12s}
.equipment-heading.motion-light::after{animation-delay:-19s}
.section-intro.motion-light::after{animation-delay:-7s}

/* Connection points stay near the edges, clear of the main figures. */
.motion-network::after{
 background:radial-gradient(circle at 90% 17%,#268cc23d 0 2px,transparent 3px),radial-gradient(circle at 7% 58%,#268cc233 0 2px,transparent 3px),radial-gradient(circle at 84% 86%,#268cc22e 0 2px,transparent 3px),radial-gradient(ellipse at 93% 25%,#429cc41a,transparent 32%),radial-gradient(ellipse at 4% 70%,#429cc417,transparent 28%);
 animation:connection-breathe 22s ease-in-out infinite alternate;
}
.point-speed .motion-network::after{animation-delay:-8s}
.point-day .motion-network::after{animation-delay:-15s}

/* A broad ambient glow around the buildings, away from the proof number. */
.motion-city::after{
 background:radial-gradient(ellipse at 7% 88%,#fff8cc85,transparent 33%),radial-gradient(ellipse at 94% 80%,#fff8cc66,transparent 30%);
 animation:city-light 32s ease-in-out infinite alternate;
}
.motion-journey::after{
 background:linear-gradient(180deg,transparent 12%,#efd99a00 35%,#efd99a29 50%,#efd99a00 65%,transparent 88%);
 animation:signal-drift 34s ease-in-out infinite alternate;
}
@keyframes signal-drift{from{transform:translate(-4%,-2%);opacity:.3}to{transform:translate(4%,2%);opacity:.7}}
@keyframes connection-breathe{from{transform:translate(-1%,1%);opacity:.28}to{transform:translate(1%,-1%);opacity:.65}}
@keyframes city-light{from{opacity:.12}to{opacity:.3}}

/* Only visible sections animate; hidden tabs stop as well. */
.motion-surface::after{animation-play-state:paused}
.motion-surface.motion-visible::after{animation-play-state:running}
.motion-suspended .motion-surface::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.motion-surface::after{animation:none;display:none}}
