/* World map: plain SVG paths, colour transitions on hover/tap, zoom via transform. */
.map-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.map-tools__label { font-weight: 900; }
.map-select {
  min-height: var(--tap);
  min-width: 220px;
  padding: 0 var(--space-4);
  border: 3px solid #e3dccb;
  border-radius: var(--radius-pill);
  background: #fff;
  font-weight: 800;
}
.map-frame {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-2);
  background: #9fdcff;
  touch-action: manipulation;
}
.world { width: 100%; height: auto; }
.world__sea { fill: #9fdcff; }
.world__zoom { transform-box: view-box; transform-origin: 0 0; transition: transform 900ms var(--ease-in-out); }
html.calm .world__zoom { transition: none; }

.country {
  stroke: #ffffff;
  stroke-width: 0.6;
  stroke-linejoin: round;
  cursor: pointer;
  transition: fill 380ms ease, opacity 380ms ease;
  vector-effect: non-scaling-stroke;
}
.country:nth-child(6n + 1) { fill: #ffd27a; }
.country:nth-child(6n + 2) { fill: #9be07c; }
.country:nth-child(6n + 3) { fill: #ffab91; }
.country:nth-child(6n + 4) { fill: #c5b3ff; }
.country:nth-child(6n + 5) { fill: #e9c99a; }
.country:nth-child(6n + 6) { fill: #ffc4e1; }
.country.is-hover { fill: #ffe14d; }
.country.is-selected { fill: #ff7a2f; stroke: #2b2d42; stroke-width: 1.5; }

.map-label {
  position: absolute;
  left: 50%;
  top: var(--space-3);
  margin: 0;
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-pill);
  background: #fff;
  box-shadow: var(--shadow-2);
  font-size: var(--fs-l);
  font-weight: 900;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-50%) scale(0.6);
  transition: opacity var(--dur-2), transform var(--dur-3) var(--ease-spring);
}
.map-label.is-showing { opacity: 1; transform: translateX(-50%) scale(1); }
.map-credit { margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--ink-soft); }
