/* Energy Network overlay — animated pulses traveling through the hero grid */

.hero-home {
  position: relative;
}
.hero-home > .energy-net {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  mix-blend-mode: screen;
}
.hero-home > .hero-copy {
  position: relative;
  z-index: 2;
}
.hero-home::before,
.hero-home::after {
  z-index: 1;
}

.enet-base-lines line {
  stroke: rgba(89, 175, 240, 0.18);
  stroke-width: 1;
  stroke-linecap: round;
}

.enet-pulse {
  stroke: rgba(180, 220, 255, 0.95);
  stroke-width: 2;
  stroke-linecap: round;
  fill: none;
  animation: enet-pulse-flow linear infinite;
}
@keyframes enet-pulse-flow {
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: calc(var(--enet-dash-total, 200) * -1px); }
}

.enet-node {
  fill: rgba(89, 175, 240, 0.55);
}
.enet-node-pulse {
  animation: enet-node-pulse ease-in-out infinite;
  transform-origin: center;
  transform-box: fill-box;
}
@keyframes enet-node-pulse {
  0%, 100% {
    fill: rgba(89, 175, 240, 0.45);
    filter: drop-shadow(0 0 0 rgba(89, 175, 240, 0));
  }
  50% {
    fill: rgba(180, 220, 255, 1);
    filter: drop-shadow(0 0 6px rgba(89, 175, 240, 0.85));
  }
}

@media (prefers-reduced-motion: reduce) {
  .enet-pulse,
  .enet-node-pulse {
    animation: none !important;
  }
}
