/* NPC Connect 8.9.17: gameplay-inspired ambient welcome and precise marker hover */
#npcWelcome .npc-welcome-content{isolation:isolate}
#npcWelcome .npc-welcome-content::before{content:"";position:absolute;inset:-38px -80px;z-index:-1;pointer-events:none;background:radial-gradient(circle at var(--npc-x,50%) var(--npc-y,45%),#18bbff20,transparent 34%);transition:background .15s}
#npcWelcome .npc-signal-satellite{filter:drop-shadow(0 0 18px #14bfff66)}
#npcWelcome .npc-signal-satellite::after{content:"";position:absolute;inset:10px 20px;border-radius:50%;border:1px solid #51dfff40;pointer-events:none;animation:npcRadarRing 3.1s ease-out infinite}
@keyframes npcRadarRing{0%{opacity:.8;transform:scale(.65)}100%{opacity:0;transform:scale(1.55)}}
#npcWelcome .npc-welcome-content .npc-boot-status{display:flex;justify-content:center;gap:12px;align-items:center;margin:10px auto 0;font:600 11px/1.4 monospace;letter-spacing:.14em;color:#8cdbff;text-shadow:0 0 9px #079bff88}
#npcWelcome .npc-boot-status i{width:7px;height:7px;border-radius:50%;background:#42caff;box-shadow:0 0 9px #42caff;animation:npcBootBlink 1.3s infinite}
#npcWelcome.npc-signal-found .npc-boot-status i{background:#3bffb4;box-shadow:0 0 12px #3bffb4}
@keyframes npcBootBlink{50%{opacity:.3}}
#npcWelcome .npc-gamer-reticle{position:absolute;left:var(--npc-pointer-x,50%);top:var(--npc-pointer-y,50%);width:100px;height:100px;border:1px solid #42caff33;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1;box-shadow:0 0 25px #00aaff13;transition:left .12s ease-out,top .12s ease-out}
#npcWelcome .npc-gamer-reticle::before,#npcWelcome .npc-gamer-reticle::after{content:"";position:absolute;inset:12px;border:1px dashed #4fcfff22;border-radius:50%;animation:npcReticle 18s linear infinite}
#npcWelcome .npc-gamer-reticle::after{inset:27px;animation-direction:reverse}
@keyframes npcReticle{to{transform:rotate(360deg)}}
#npcWelcome #npcEnter{transition:transform .18s,filter .18s,box-shadow .18s;box-shadow:0 0 15px #169fff55}
#npcWelcome #npcEnter:hover,#npcWelcome #npcEnter:focus-visible{transform:translateY(-3px) scale(1.025);filter:brightness(1.13);box-shadow:0 0 35px #20caff88}
/* Hit areas are centered on the artwork; the native browser tooltip is replaced with a centered floating label. */
.holo-map .holo-marker{transform:translate(-50%,-50%)!important;transform-origin:center!important}
.holo-map .holo-marker:hover,.holo-map .holo-marker:focus-visible{scale:1!important;transform:translate(-50%,-50%)!important}
.npc-campus-tooltip{position:fixed;z-index:99999;pointer-events:none;transform:translate(-50%,-100%);padding:7px 12px;border:1px solid #65dbff;border-radius:9px;background:#06172bed;color:#f3fcff;box-shadow:0 0 22px #17c9ff66;font:700 12px/1.2 system-ui,sans-serif;white-space:nowrap;opacity:0;transition:opacity .12s;max-width:calc(100vw - 20px)}
.npc-campus-tooltip.visible{opacity:1}
.holo-map .holo-marker.npc-hovered{box-shadow:0 0 0 2px #c5ffff,0 0 19px 7px #00dfff99!important;background:#35e9ff2a!important}
@media(prefers-reduced-motion:reduce){#npcWelcome .npc-signal-satellite::after,#npcWelcome .npc-boot-status i,#npcWelcome .npc-gamer-reticle::before,#npcWelcome .npc-gamer-reticle::after{animation:none!important}}
