/* v8.9.20: clean, ring-free campus interaction. The artwork's nodes remain untouched. */
.holo-map .holo-marker,
.holo-map .holo-marker:hover,
.holo-map .holo-marker:focus-visible,
.holo-map .holo-marker.selected,
.holo-map .holo-marker.npc-hovered {
  border:0!important;outline:0!important;background:transparent!important;
  box-shadow:none!important;filter:none!important;
  transform:none!important;scale:1!important;animation:none!important;
  translate:-50% -50%!important;
}
.holo-map .holo-marker::before,
.holo-map .holo-marker::after,
.holo-map .holo-marker:hover::before,
.holo-map .holo-marker:hover::after,
.holo-map .holo-marker.selected::before,
.holo-map .holo-marker.selected::after,
.holo-map .holo-marker.npc-hovered::before,
.holo-map .holo-marker.npc-hovered::after {
  content:none!important;display:none!important;animation:none!important;
}
/* No floating label: the underlying map already has its own campus names. */
.npc-campus-tooltip{display:none!important}
/* Preserve hit targets, but never paint a second circle over the source image. */
.holo-map .holo-marker>span{opacity:0!important}
.holo-map .holo-marker .map-campus-label{pointer-events:none}
.holo-map .holo-marker:focus-visible{outline:2px dashed #8befff!important;outline-offset:5px!important}
/* Soft light only; no ring, border or geometric overlay. */
.holo-map .holo-marker .npc-spark-glow{
  position:absolute;left:50%;top:50%;width:36px;height:36px;
  translate:-50% -50%;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,#f1ffffa8 0%,#30eaff65 15%,#00aaff24 42%,transparent 73%);
  opacity:0;transition:opacity .17s ease;mix-blend-mode:screen;
}
.holo-map .holo-marker:is(:hover,:focus-visible,.selected,.npc-hovered) .npc-spark-glow{opacity:1;animation:npcSparkBreath 1.35s ease-in-out infinite}
.holo-map .holo-marker .npc-spark-particle{
  position:absolute;left:50%;top:50%;width:3px;height:10px;border-radius:3px;
  background:linear-gradient(#fff,#5befff 55%,transparent);
  box-shadow:0 0 7px #50dfff;pointer-events:none;
  transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-4px);
  opacity:0;
}
.holo-map .holo-marker.npc-spark-burst .npc-spark-particle{
  animation:npcSparkFly .62s ease-out both;
  animation-delay:var(--delay);
}
@keyframes npcSparkFly{
  0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-3px) scale(.5)}
  20%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-28px) scale(.15)}
}
@keyframes npcSparkBreath{50%{opacity:.55;filter:brightness(1.4)}}
@media(prefers-reduced-motion:reduce){.holo-map .holo-marker .npc-spark-glow,.holo-map .holo-marker .npc-spark-particle{animation:none!important}}
