/* ═════════════════════════════════════════════
   AVATAR — player marker styling
   The silhouette + lantern art itself is baked into canvas pixels
   by avatar.js (including the glow and night-mode brightness) —
   this file only handles the marker's footprint on the map and a
   soft ground shadow. Nothing here needs to change if avatar.js's
   rendering changes, and vice versa.
   ═════════════════════════════════════════════ */

.avatar-marker {
  /* No `position` here on purpose. This element also gets MapLibre's
     own `.maplibregl-marker` class, which sets `position:absolute`.
     Declaring `position` here too — even `relative` — would tie its
     specificity with that rule, and since this stylesheet loads after
     maplibre-gl.css, the cascade would hand the win to this rule and
     silently break the marker's positioning math (same failure mode
     as inline `position` on the checkpoint marker shells — see map.js). */
  width: 25px;
  height: 51px;
  pointer-events: none;
}

.avatar-marker canvas {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
}

/* soft contact shadow, grounds the figure on the map */
.avatar-marker::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 22px;
  height: 7px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 60%, rgba(0,0,0,0) 100%);
  transform: translateX(-50%);
  z-index: 0;
}