/* Wave Axis · map network */
.mapnet{pointer-events:none}
.mapnet-link{fill:none;stroke:#0FA8B0;stroke-width:1.3;opacity:.55;transition:opacity .3s ease,stroke-width .3s ease}
.mapnet-flow{fill:none;stroke:#1ECCD5;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:7 93;stroke-dashoffset:100;opacity:0;animation:mapnet-flow 9s linear infinite}
.mapnet-halo{fill:rgba(30,204,213,.22)}
.mapnet-dot{fill:#1ECCD5;stroke:#FFFFFF;stroke-width:2}
.mapnet-ring{fill:none;stroke:#1ECCD5;stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:mapnet-pulse 2.6s ease-out infinite}
@keyframes mapnet-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.6);opacity:0}}
@keyframes mapnet-flow{0%{stroke-dashoffset:100;opacity:0}4%{opacity:1}22%{stroke-dashoffset:0;opacity:1}26%,100%{stroke-dashoffset:0;opacity:0}}
.mapnet.is-paused .mapnet-ring,.mapnet.is-paused .mapnet-flow{animation-play-state:paused}

/* Focus on one region: its cities and links light up, the rest step back */
.mapnet.has-focus .mapnet-link{opacity:.25}
.mapnet.has-focus .mapnet-node{opacity:.4;transition:opacity .3s ease}
.mapnet.has-focus .mapnet-link.is-lit{opacity:1;stroke-width:2}
.mapnet.has-focus .mapnet-node.is-lit{opacity:1}

@media (prefers-reduced-motion:reduce){.mapnet-ring,.mapnet-flow{animation:none;opacity:0}}
