/* Map View */
.map-view__header { text-align: center; margin-bottom: var(--space-xl); }
.map-view__header h1 { font-family: var(--font-display); font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); color: var(--color-text-primary); margin-bottom: var(--space-xs); }
.map-view__header p { color: var(--color-text-secondary); font-size: 1rem; }
.map-view__canvas { position: relative; max-width: 1000px; margin: 0 auto; background: var(--color-bg-secondary); border-radius: var(--radius-lg); padding: var(--space-lg); border: 1px solid var(--color-border); }
.map-view__canvas svg { width: 100%; height: auto; display: block; }
.map-continent { transition: opacity 0.3s; }
.map-pin { cursor: pointer; transition: transform 0.2s var(--ease-out-expo); }
.map-pin:hover { transform: scale(1.3); }
.map-pin__pulse { animation: map-pulse 2s ease-out infinite; transform-origin: center; }
.map-tooltip { position: absolute; pointer-events: none; z-index: 10; background: var(--color-bg-card); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-md); box-shadow: var(--shadow-card); opacity: 0; transition: opacity 0.15s; white-space: nowrap; }
.map-tooltip--visible { opacity: 1; }
.map-tooltip__name { font-family: var(--font-display); font-size: 1rem; color: var(--color-text-primary); margin-bottom: 2px; }
.map-tooltip__meta { font-size: 0.75rem; color: var(--color-text-secondary); }
.map-tooltip__tag { display: inline-block; font-size: 0.65rem; padding: 1px 6px; background: var(--color-bg-secondary); border: 1px solid var(--color-border); border-radius: var(--radius-sm); color: var(--color-text-tertiary); margin-top: 4px; }
@keyframes map-pulse {
  0% { r: 6; opacity: 0.5; }
  100% { r: 15; opacity: 0; }
}
@media (max-width: 768px) {
  .map-view__canvas { padding: var(--space-sm); }
}
