/* AnoProxy v92 — animate the SVG layer that is actually visible on the homepage.
   The old .hero-network-map-v30 is intentionally hidden by site-reference-v26.css.
   Therefore all route light effects must target .hero-network-flow-v47. */

@keyframes anoproxyVisibleRouteV92 {
  0%   { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -100; }
}
@-webkit-keyframes anoproxyVisibleRouteV92 {
  0%   { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -100; }
}

html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 6 !important;
  pointer-events: none !important;
}

html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g > path {
  path-length: 100;
  fill: none !important;
  stroke: url(#flowLineV47) !important;
  stroke-width: 4.2 !important;
  stroke-linecap: round !important;
  stroke-dasharray: 7 93 !important;
  stroke-dashoffset: 0;
  opacity: 1 !important;
  filter: url(#flowGlowV47) !important;
  animation: anoproxyVisibleRouteV92 2.6s linear infinite !important;
  -webkit-animation: anoproxyVisibleRouteV92 2.6s linear infinite !important;
  will-change: stroke-dashoffset;
}

html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g > path:nth-child(2n) {
  animation-duration: 3.3s !important;
  -webkit-animation-duration: 3.3s !important;
  animation-direction: reverse !important;
  -webkit-animation-direction: reverse !important;
  animation-delay: -1.15s !important;
  -webkit-animation-delay: -1.15s !important;
}
html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g > path:nth-child(3n) {
  stroke-width: 3.3 !important;
  animation-duration: 2.15s !important;
  -webkit-animation-duration: 2.15s !important;
  animation-delay: -1.7s !important;
  -webkit-animation-delay: -1.7s !important;
}
html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g > path:nth-child(4n) {
  animation-duration: 3.85s !important;
  -webkit-animation-duration: 3.85s !important;
  animation-delay: -2.2s !important;
  -webkit-animation-delay: -2.2s !important;
}

/* JavaScript fallback layer. It is additional, not a replacement for CSS animation. */
html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 .route-fallback-layer-v92 {
  pointer-events: none;
}
html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 .route-fallback-layer-v92 path {
  fill: none !important;
  stroke-width: 5.1 !important;
  stroke-linecap: round !important;
  stroke-dasharray: 5 95 !important;
  stroke-dashoffset: 0;
  opacity: .92 !important;
  filter: url(#flowGlowV47) !important;
  animation: none !important;
  -webkit-animation: none !important;
}
html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 .route-particle-v92 {
  pointer-events: none;
  filter: url(#flowGlowV47);
}

/* Explicitly keep the route flow running on Windows/macOS devices that report
   prefers-reduced-motion. The user requested the route animation on every desktop. */
@media (prefers-reduced-motion: reduce) {
  html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g:not(.route-fallback-layer-v92) > path {
    animation: anoproxyVisibleRouteV92 2.6s linear infinite !important;
    -webkit-animation: anoproxyVisibleRouteV92 2.6s linear infinite !important;
  }
  html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g:not(.route-fallback-layer-v92) > path:nth-child(2n) {
    animation-duration: 3.3s !important;
    -webkit-animation-duration: 3.3s !important;
    animation-direction: reverse !important;
    -webkit-animation-direction: reverse !important;
  }
}

@media (max-width: 780px) {
  html body.home-page.saas-light-v23 .hero-split-v37 .hero-network-flow-v47 > g > path {
    stroke-width: 3.4 !important;
    stroke-dasharray: 6 94 !important;
  }
}
