/* Le terrain et les niveaux de lecture de la carte.

   La carte n'est plus une feuille de parchemin : c'est le monde vu du ciel.
   Cette feuille passe APRÈS monde.css et coque.css, et elle ne parle que de
   deux choses :

   1. Ce qui garde sa taille au zoom. La caméra publie `--inverse` sur le
      SVG (jeu/carte.js, rendreNavigable) : les noms, les jetons et les
      cités se contre-mesurent à elle. Un nom de terre se lit à 18 px de loin
      comme de près ; une cité grandit quand on s'approche, mais moins vite
      que le sol.

   2. Ce qui se montre à chaque niveau. La caméra pose `data-niveau` sur le
      SVG (monde, regional, local, proche). Les calques lourds sont sortis
      de l'arbre par la caméra elle-même ; ici on ne règle que les textes,
      qui restent dans l'arbre et se cachent selon le niveau. */

.carte {
  --inverse: 1;
  --inverse-cite: 1;
  --encre: var(--pierre-0);
  --craie: var(--parchemin-clair);
}

/* ── Ce qui garde sa taille ──────────────────────────────────────────────── */
.carte__nom,
.carte__froid,
.carte__ville-nom,
.carte__fief,
.carte__siege {
  transform: scale(var(--inverse));
}
.carte__ville { transform: scale(var(--inverse-cite)); }

/* ── Les noms de terre : en capitales espacées, sans cartouche ──────────── */
.carte__nom {
  font-family: var(--police-titre);
  font-size: var(--t-5);
  letter-spacing: 2px;
  fill: var(--craie);
  paint-order: stroke;
  stroke: var(--encre);
  stroke-width: 4px;
  stroke-linejoin: round;
  opacity: 0.92;
}
.carte__region.est-tienne .carte__nom { fill: var(--or-vif); stroke: var(--encre); }
.carte__region.est-decor .carte__nom { font-size: var(--t-3); letter-spacing: 1.5px; fill: var(--parchemin-bas); stroke-width: 3px; }
.carte__froid { fill: var(--parchemin); stroke: var(--encre); stroke-width: 3px; font-size: var(--t-1); }

/* ── Les villes ─────────────────────────────────────────────────────────── */
.carte__ville-nom {
  font-family: var(--police-corps);
  font-size: var(--t-2);
  letter-spacing: 0.3px;
  fill: var(--parchemin-clair);
  stroke: var(--encre);
  stroke-width: 3px;
}
.carte__ville-nom--petite { font-size: var(--t-1); fill: var(--texte); }

/* ── Les fiefs : un donjon, sa bannière de nom ──────────────────────────── */
.carte__fief:focus-visible .carte__donjon, .carte__fief:hover .carte__donjon { stroke: var(--or); stroke-width: 2.4px; }
.carte__fief-nom {
  font-family: var(--police-corps);
  font-size: var(--t-1);
  fill: var(--parchemin-clair);
  paint-order: stroke;
  stroke: var(--encre);
  stroke-width: 2.5px;
  stroke-linejoin: round;
  pointer-events: none;
}
.carte__inconnue { fill: var(--pierre-4); stroke: var(--texte-pale); stroke-width: 1px; stroke-dasharray: 2 2; }
.carte__fief:focus-visible .carte__inconnue, .carte__fief:hover .carte__inconnue { stroke: var(--or); }

/* ── Les routes du monde : un trait de poussière, fin à tout zoom ─────────── */
.carte__chemin { stroke: var(--parchemin-bas); stroke-width: 1.2px; stroke-dasharray: 3 2.2; opacity: 0.8; vector-effect: non-scaling-stroke; pointer-events: none; }

/* ── Les armées : une bannière stable au zoom, son chemin quand on la choisit */
.carte__armee { transform: scale(var(--inverse)); cursor: pointer; outline: none; }
.carte__armee:focus-visible .carte__pennon, .carte__armee:hover .carte__pennon { stroke: var(--or); stroke-width: 1.4px; }
.carte__trajet { display: none; }
.carte__trajet.est-choisi { display: block; }

/* ── Le siège ───────────────────────────────────────────────────────────── */
.carte__siege-nom {
  fill: var(--or-vif);
  paint-order: stroke;
  stroke: var(--encre);
  stroke-width: 4px;
  stroke-linejoin: round;
  font-size: var(--t-5);
}
.carte__mur-nom { fill: var(--glace-clair); stroke: var(--encre); stroke-width: 3px; }

/* ── Ce que chaque niveau montre ────────────────────────────────────────── */
/* De loin : les terres et les grandes cités. Le froid et les noms de fief
   attendent qu'on s'approche. */
.carte[data-niveau="monde"] .carte__froid { display: none; }
.carte[data-niveau="monde"] .carte__fief-nom,
.carte[data-niveau="regional"] .carte__fief-nom { display: none; }
.carte[data-niveau="monde"] .carte__ville-nom--petite,
.carte[data-niveau="regional"] .carte__ville-nom--petite { display: none; }
/* De près, le nom de la terre n'est plus l'information : il s'efface. */
.carte[data-niveau="proche"] .carte__nom { opacity: 0.45; }

/* ── Qui tient quoi ──────────────────────────────────────────────────────── */
/* Le calque politique dort sous le terrain ; en mode politique il se pose
   dessus, et le terrain s'assagit pour le laisser lire. */
.carte__politique { display: none; }
.carte[data-mode="politique"] .carte__politique { display: block; }
.carte[data-mode="politique"] .carte__relief,
.carte[data-mode="politique"] .carte__bois { opacity: 0.35; }
.carte__frontiere.est-decor { opacity: 0.82; }

/* Les lieux du monde se contre-mesurent a la camera comme les cites : sinon
   une marque de neuf unites remplit l'ecran au dernier niveau de zoom. */
.carte__lieu { transform: scale(var(--inverse-cite)); }
.carte__lieu-nom { transform: scale(var(--inverse)); }
