.simple-map { position:relative; --map-ground:#191b1a; --map-water:#28464a; --map-river:#6d9da2; --map-muted:#a9afa4; }
html[data-theme="light"] .simple-map { --map-ground:#edf0e5; --map-water:#bfd8db; --map-river:#3e737d; --map-muted:#52614e; }
.simple-findspot-map { display:block; width:100%; height:auto; background:var(--map-ground); border:1px solid var(--intro-line); }
.simple-map .map-grid { fill:none; stroke:var(--map-muted); opacity:.08; stroke-width:1; }
.simple-map .map-water { fill:var(--map-water); }
.simple-map .map-river { fill:none; stroke:var(--map-river); stroke-width:2; opacity:.85; stroke-linecap:round; stroke-linejoin:round; }
.simple-map .map-borders { fill:none; stroke:var(--map-muted); stroke-width:1.5; stroke-dasharray:6 5; opacity:.52; }
.simple-map .map-neighbor { font-size:14px; letter-spacing:2px; }
.simple-map .map-region-label { fill:var(--map-muted); font:400 20px var(--sans); letter-spacing:5px; opacity:.55; }
.simple-map .map-water-label { fill:var(--map-river); font:italic 17px var(--serif); }
.simple-map .map-note { fill:var(--map-muted); font:400 12px var(--sans); }
.simple-map .map-leader { fill:none; stroke:var(--map-muted); stroke-width:1; opacity:.5; }
.simple-map .map-label { fill:var(--intro-ink); font:400 19px var(--sans); paint-order:stroke; stroke:var(--map-ground); stroke-width:5px; stroke-linejoin:round; }
.simple-map .map-mark { fill:var(--map-ground); stroke:var(--intro-clay); stroke-width:2; }
.simple-map .context .map-mark { fill:var(--intro-clay); }
.simple-map .regional .map-mark { fill:var(--intro-clay); fill-opacity:.12; stroke-dasharray:4 4; }
.simple-map-key { display:flex; flex-wrap:wrap; gap:.6rem 1.3rem; margin-top:.9rem; color:var(--intro-muted); font:400 12px/1.5 var(--sans); }
.simple-map-key span { display:inline-flex; align-items:center; gap:7px; }
.simple-key { box-sizing:border-box; width:9px; height:9px; border:1.5px solid var(--intro-clay); border-radius:50%; }
.simple-key.excavated { background:var(--intro-clay); }
.simple-key.region { border-radius:0; border-style:dashed; width:15px; height:9px; }
.simple-map .uncertainty-trigger { cursor:pointer; outline:none; }
.simple-map .note-hit { fill:transparent; stroke:transparent; }
.simple-map .map-question-mark { fill:var(--intro-clay); text-decoration:underline dotted; text-underline-offset:3px; }
.simple-map .uncertainty-trigger:focus-visible .note-hit { stroke:var(--intro-clay); stroke-width:2; stroke-dasharray:3 3; }
.map-note-popover { position:absolute; z-index:4; box-sizing:border-box; width:225px; max-width:calc(100% - 20px); padding:10px 12px; border:1px solid var(--intro-clay); border-radius:7px; background:var(--intro-paper); color:var(--intro-ink); box-shadow:0 4px 18px #0004; font:400 13px/1.5 var(--sans); }
.map-note-popover[hidden] { display:none; }
@media(max-width:650px) {
 .simple-map .map-label { font-size:22px; }
 .simple-map .map-region-label { font-size:23px; }
 .simple-map-key { font-size:11px; }
}

/* Visible without JS; the controller opts into a single scroll reveal. */
@media (prefers-reduced-motion: no-preference) {
  .map-motion-ready:not(.is-in-view) .map-place .map-mark,
  .map-motion-ready:not(.is-in-view) .map-place .map-label,
  .map-motion-ready:not(.is-in-view) .map-place .map-leader { opacity:0; }

  .map-motion-ready.is-in-view .map-place:not(.regional) .map-mark {
    transform-box:fill-box; transform-origin:center;
    animation:map-dot-arrive .65s cubic-bezier(.16,.75,.25,1) var(--map-delay) both;
  }
  .map-motion-ready.is-in-view .map-place .map-label,
  .map-motion-ready.is-in-view .map-place .map-leader {
    animation:map-place-arrive .45s ease-out calc(var(--map-delay) + 80ms) both;
  }
  .map-motion-ready.is-in-view .map-place .map-leader { animation-name:map-leader-arrive; }
  .map-motion-ready.is-in-view .regional .map-mark {
    animation:map-susiana-sweep 2.3s cubic-bezier(.16,.75,.25,1) var(--map-delay) both;
  }
  .map-motion-ready.is-in-view .regional .map-label,
  .map-motion-ready.is-in-view .regional .map-leader { animation-delay:calc(var(--map-delay) + 900ms); }
}
@keyframes map-dot-arrive {
  0% { opacity:0; transform:scale(.35); }
  65% { opacity:1; transform:scale(1.18); }
  100% { opacity:1; transform:scale(1); }
}
@keyframes map-place-arrive { from { opacity:0; } to { opacity:1; } }
@keyframes map-leader-arrive { from { opacity:0; } to { opacity:.5; } }
@keyframes map-susiana-sweep {
  from { opacity:0; clip-path:inset(0 100% 0 0); }
  25% { opacity:1; }
  to { opacity:1; clip-path:inset(0); }
}
