/* v8.9.11: corrected map hotspots: avoid double translate and offset overrides. */
.holo-map .holo-marker,.holo-map .holo-marker[data-campus="Pampanga"],.holo-map .holo-marker[data-campus="Silang"]{translate:none!important;transform:translate(-50%,-50%)!important;transform-origin:center center!important;min-width:29px;min-height:29px;isolation:isolate;transition:filter .2s,box-shadow .2s,background .2s!important}
.holo-map .holo-marker:hover{scale:1.12;filter:drop-shadow(0 0 14px #26e8ff)!important}
.holo-map .holo-marker::before{content:"";position:absolute;inset:-8px;border:1px solid #34eaff99;border-radius:50%;animation:npcCampusPulse 2.8s ease-out infinite;pointer-events:none}
.holo-map .holo-marker::after{content:"";position:absolute;inset:-17px;border:1px solid #18b9ff44;border-radius:50%;animation:npcCampusPulse 2.8s ease-out 1.2s infinite;pointer-events:none}
.holo-map .holo-routes path{stroke-dasharray:7 14;animation:npcSignalRoute 5s linear infinite;stroke-width:1.6;filter:drop-shadow(0 0 3px #13d7ff)}
.holo-map .holo-scan{opacity:.14}
@keyframes npcCampusPulse{0%{opacity:.8;scale:.65}85%,100%{opacity:0;scale:1.4}}
@keyframes npcSignalRoute{to{stroke-dashoffset:-84}}
/* Scanning satellite replaces the spinning circle, sweeping 180 degrees. */
.npc-signal-satellite{position:relative;width:170px;height:115px;margin:0 auto 14px;display:grid;place-items:center;filter:drop-shadow(0 0 14px #20bfff88)}
.npc-satellite-sweep{display:flex;align-items:center;justify-content:center;gap:4px;transform-origin:50% 50%;animation:npcSatelliteSearch 5s ease-in-out infinite alternate;will-change:transform}
.npc-sat-wing{height:27px;width:47px;border:1px solid #6edaff;transform:skewY(-9deg);background:repeating-linear-gradient(90deg,#123d75 0 12px,#1f79b8 12px 14px);box-shadow:inset 0 0 12px #1cbbff44,0 0 10px #0acbff44}
.npc-sat-hub{width:32px;height:38px;border:2px solid #9eeaff;border-radius:8px;background:linear-gradient(135deg,#75caff,#164075);position:relative;box-shadow:0 0 12px #1bcaff99}
.npc-sat-dish{position:absolute;bottom:27px;left:10px;width:15px;height:20px;border:2px solid #c9f7ff;border-radius:60% 60% 10% 10%;transform:rotate(-30deg)}
.npc-sat-led{position:absolute;width:7px;height:7px;top:14px;left:10px;border-radius:50%;background:#40ffdd;box-shadow:0 0 10px #40ffdd;animation:npcLedBlink 1s infinite alternate}
.npc-signal-wave{position:absolute;left:50%;top:20px;width:80px;height:80px;margin-left:-40px;border:1px solid #46dfff88;border-radius:50%;opacity:0;pointer-events:none;animation:npcWave 2.3s ease-out infinite}
.npc-signal-wave-b{animation-delay:1.1s}
#npcWelcome.npc-signal-found .npc-satellite-sweep{animation:none;transform:rotate(0deg)}
#npcWelcome.npc-signal-found .npc-sat-led{background:#9dff9d;box-shadow:0 0 18px #9dff9d}
#npcWelcome.npc-signal-found .npc-signal-wave{border-color:#75ffce}
@keyframes npcSatelliteSearch{0%{transform:rotate(-90deg)}100%{transform:rotate(90deg)}}
@keyframes npcLedBlink{to{opacity:.3}}
@keyframes npcWave{0%{opacity:.7;transform:scale(.25)}100%{opacity:0;transform:scale(1.9)}}
@media(prefers-reduced-motion:reduce){.npc-satellite-sweep,.npc-sat-led,.npc-signal-wave,.holo-map .holo-marker::before,.holo-map .holo-marker::after,.holo-map .holo-routes path{animation:none!important}}
