/* Map-card switcher shared by language-words.html and language-game.html
   (drawn by language-kit.js). Each card: the world with the language's country
   lit, its flag pinned, a dotted route from the US. */
.lang-maps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 0 0 22px;
}
@media (max-width: 640px) { .lang-maps { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
.lang-map {
  display: block;
  overflow: hidden;
  border: 2px solid #2a2f3a;
  border-radius: 12px;
  background: #0d1320;
  color: #fff;
  text-decoration: none;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.lang-map:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: 0 8px 24px -12px var(--accent); }
.lang-map.here  { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 8px 24px -12px var(--accent); }
.lang-map .map-link { display: block; }
.lang-map .map,
.map-card .map {
  display: block;
  width: 100%;
  height: auto;
  background: radial-gradient(ellipse at 50% 40%, #16233b 0%, #0b111d 75%);
}
.map .land   { fill: #2b3546; }
.map .home   { fill: #6f7d94; }
.map .target { fill: var(--accent); filter: drop-shadow(0 0 2px var(--accent)); }
.map .route  { fill: none; stroke: #fff; stroke-width: 1.3; stroke-dasharray: 2.5 3; opacity: 0.55; }
.map .dot    { fill: #fff; }
.map .ping {
  fill: none;
  stroke: var(--accent);
  stroke-width: 1.8;
  transform-box: fill-box;
  transform-origin: center;
  animation: lk-ping 2.2s ease-out infinite;
}
.map .pin { filter: drop-shadow(0 2px 3px rgba(0,0,0,0.8)); }
.map .pin rect { fill: #fff; }
.map .pin line { stroke: #fff; stroke-width: 1.8; }
@keyframes lk-ping {
  from { transform: scale(0.6); opacity: 1; }
  to   { transform: scale(3); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .map .ping { animation: none; opacity: 0; } }
.lang-map .lang-name {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 10px 9px;
  font-size: 15px;
  font-weight: bold;
  border-top: 1px solid #1e2533;
}
.lang-map .dirs + .lang-name, .lang-map .lang-name:has(+ .dirs) { padding-bottom: 4px; }
.flag-img { flex: none; display: inline-block; vertical-align: -2px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,0.25); }
.lang-map .you {
  margin-left: auto;
  font-size: 11px;
  font-weight: bold;
  color: #000;
  background: var(--accent);
  padding: 2px 7px;
  border-radius: 999px;
  white-space: nowrap;
}
.lang-map .dirs { display: flex; gap: 6px; padding: 2px 10px 10px; }
.lang-map .dir {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 5px 4px;
  border: 1.5px solid #3a4456;
  border-radius: 999px;
  color: #c9d2e0;
  text-decoration: none;
  font-size: 13px;
  font-weight: bold;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.lang-map .dir:hover { border-color: var(--accent); }
.lang-map .dir.on { background: var(--accent); border-color: var(--accent); color: #000; }
.lang-map .dir .flag-img { box-shadow: 0 0 0 1px rgba(0,0,0,0.3); }
