/* Map FX overlay: keeps UI clickable (pointer-events:none) */
#gzMapFX{
  position:fixed;
  left:0; top:0; right:0; bottom:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
#gzRoot{ position:relative !important; z-index:1 !important; }
#gzMapFX #gzFogSwaths{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  z-index:0;
}
#gzMapFX .gzFogSwath{
  position:absolute;
  left:0;
  top:0;
  pointer-events:none;
  will-change: transform, opacity;
  backface-visibility:hidden;
}
#gzMapFX canvas.gzMapFXCanvas{
  position:absolute;
  left:0; top:0;
  width:100%; height:100%;
}
#gzMapFX .gzMapMaid{
  position:absolute;
  left:0;
  top:0;
  z-index:2;
  opacity:0;
  transform:translate3d(-9999px,-9999px,0);
  will-change:transform, opacity, width, height;
  pointer-events:none;
}
#gzMapFX .gzMapMaid.is-hidden{
  transform:translate3d(-9999px,-9999px,0) !important;
}
#gzMapFX .gzMapMaid img{
  display:block;
  width:100%;
  height:100%;
  user-select:none;
  -webkit-user-drag:none;
}
#gzMapFX .gzMapMaidShadow{
  position:absolute;
  left:50%;
  bottom:8%;
  width:54%;
  height:14%;
  border-radius:999px;
  transform:translateX(-50%);
  background:rgba(0,0,0,0.30);
  filter:blur(4px);
}
@media (prefers-reduced-motion: reduce){
  #gzMapFX{ display:none !important; }
}

/* Ensure the internal birds decode <video> never becomes visible.
   (If it shows, you see a 2nd flock somewhere on the map.) */
#gzMapFX .gzMapFXHiddenVid{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
/* Quest marker on the city map (Taverne) */
#gzMapFX .gzQuestDot{
  position:absolute;
  left:0;
  top:0;
  border-radius:999px;
  background: rgba(255, 222, 120, 0.95);
  box-shadow:
    0 0 10px rgba(255, 214, 90, 0.55),
    0 0 26px rgba(255, 190, 60, 0.25);
  transform: translate(-50%, -50%);
  display:none;
  will-change: transform, opacity;
}
#gzMapFX .gzQuestDot.on{
  display:block;
  animation: gzQuestDotPulse 1.35s ease-in-out infinite;
}
@keyframes gzQuestDotPulse{
  0%   { transform: translate(-50%, -50%) scale(0.92); opacity: 0.75; }
  50%  { transform: translate(-50%, -50%) scale(1.15); opacity: 1.00; }
  100% { transform: translate(-50%, -50%) scale(0.92); opacity: 0.75; }
}
#gzMapFX .gzMapMaidDoorShadow{
  position:absolute;
  left:0;
  top:0;
  display:none;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  z-index:3;
}
