/* A moving viewpoint over one map image; projected markers sit above it. */
.map-camera:after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at var(--cursor-light-x,50%) var(--cursor-light-y,50%),#fff2,transparent 58%);mix-blend-mode:soft-light}
.point-pin,.point-product,.net-hub-core{translate:var(--depth-x,0px) var(--depth-y,0px);scale:var(--depth-scale,1);transform-origin:50% 100%}
@keyframes net-pin-bump{40%{translate:var(--depth-x,0px) calc(var(--depth-y,0px) - 5px)}}
.map-point[data-alert=true] .point-pin svg{overflow:visible;animation:net-alert-float 1.35s ease-in-out infinite}
.map-point[data-alert=true]:before{animation:net-alert-shadow 1.35s ease-in-out infinite}
@keyframes net-alert-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes net-alert-shadow{0%,100%{opacity:1;scale:1}50%{opacity:.5;scale:.76}}
.network-chapter[data-visible=false] .point-pin svg,.network-chapter[data-visible=false] .map-point:before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.map-point[data-alert=true] .point-pin svg,.map-point[data-alert=true]:before{animation:none}.map-camera:after{display:none}}
