/* Living Network — styles for the overlay network-anim.js builds */
.kn-link { stroke: #fff; stroke-width: .9; stroke-linecap: round; opacity: 0; }
.kn-head { stroke: #E0FF01; stroke-width: 1.8; stroke-linecap: round; opacity: 0; }
.kn-node, .kn-halo, .kn-ring { opacity: 0; transform-box: fill-box; transform-origin: center; }
.kn-ring { fill: none; stroke: #E0FF01; stroke-width: .8; }

/* Hero (hero-network.js): same placement as the Elementor backgrounds it replaces */
.kn-hero { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.kn-hero > div { position: absolute; top: 0; width: 34%; transition: width 1.2s; }
.kn-hero > div > svg { display: block; width: 100%; height: auto; }
.kn-hero > .kn-hero-left { left: 0; }
.kn-hero > .kn-hero-right { right: 0; }
@media (max-width: 1600px) { .kn-hero > .kn-hero-left { width: 38.653%; } }
@media (max-width: 767px) { /* mobile images are shown at natural size */
  .kn-hero > .kn-hero-left { width: 199px; }
  .kn-hero > .kn-hero-right { width: 201px; }
}
.delay-background:not(.animate) .kn-hero > div { width: 0; } /* keeps the original grow-in intro */
.kn-hero-host > .e-con-inner { position: relative; z-index: 1; }
.elementor-element.kn-hero-host.kn-hero-left-on:not(.elementor-motion-effects-element-type-background) { background-image: none !important; }
.elementor-element.kn-hero-host.kn-hero-right-on::before { background-image: none !important; }
