/**
 * forge/entity-stack.css — v0.94.16
 * Hard layer order so zone art never covers mobs/players.
 *
 * Viewport children:
 *   0 zone-floor (full-bleed underfoot art)
 *   2 world-layer (camera transform)
 *  25 local player avatar (viewport-centered)
 *  28 map fog
 *  30+ HUD chrome
 *
 * Inside #world-layer:
 *   1 zone terrain / bg images
 *   2 barriers
 *   3 markers
 *   4 blockers
 *  20 mob-layer
 *  21 player-layer (others)
 */
#map-viewport,
.map-viewport {
  position: relative !important;
  isolation: isolate;
}

#zone-floor,
.zone-floor {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

#world-layer,
.world-layer {
  position: absolute !important;
  z-index: 2 !important;
  /* never paint an opaque sheet over entities */
  background-color: transparent !important;
}

/* Terrain is floor only — never above entities */
#world-layer .zone-terrain,
#world-layer .zone-terrain.has-art,
#world-layer .zone-terrain.has-art.is-full-bg {
  z-index: 1 !important;
  isolation: isolate;
  pointer-events: none !important;
  overflow: hidden !important;
}
#world-layer .zone-terrain .zone-bg-img {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  max-width: none !important;
  max-height: none !important;
}

#world-layer .zone-barrier {
  z-index: 2 !important;
  pointer-events: none !important;
}
#world-layer .zone-marker,
#world-layer .zone-landmark {
  z-index: 3 !important;
  pointer-events: none !important;
}
#world-layer #blocker-layer,
#world-layer .blocker-layer {
  z-index: 4 !important;
}

/* Ambient life (fire, water, lava, scurriers) under mobs, over terrain/blockers */
#world-layer #map-life-layer,
#world-layer .map-life-layer {
  z-index: 16 !important;
  pointer-events: none !important;
  overflow: visible !important;
}

/* Mobs always above all zone art / barriers / blockers */
#world-layer #mob-layer {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 20 !important;
  pointer-events: none !important;
}
#world-layer #mob-layer .mob-avatar {
  pointer-events: auto !important;
  z-index: 20 !important;
  position: absolute !important;
  /* kill low z from legacy token rules that could sink under barriers */
}
#world-layer #mob-layer .mob-avatar.is-agro,
#world-layer #mob-layer .mob-avatar.is-chasing,
#world-layer #mob-layer .mob-avatar.is-target {
  z-index: 22 !important;
}

#world-layer #player-layer {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 21 !important;
  pointer-events: none !important;
}
#world-layer #player-layer .player-avatar-token {
  z-index: 21 !important;
  pointer-events: auto !important;
}

/* Local player sits on viewport, above world */
#map-viewport #player-avatar,
.map-viewport #player-avatar,
#player-avatar.player-avatar {
  z-index: 25 !important;
}

/* Fog above world, below HUD chrome */
#map-viewport .map-fog,
.map-viewport .map-fog,
#map-fog.map-fog {
  z-index: 28 !important;
  pointer-events: none !important;
}

/* Map awareness — MUST sit above fog (fog is full-bleed + z 28 !important) */
#map-viewport .forge-nearby-float,
.map-viewport .forge-nearby-float,
#forge-nearby-float.forge-nearby-float {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  z-index: 36 !important;
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Soft vignette must not bury tokens — keep under fog */
#map-viewport::after {
  z-index: 3 !important;
  pointer-events: none !important;
}
