/* Hannibal Odyssey — jetons Fusion (direction C, validée par Nabil).
   Étape A : ce fichier est la source unique des couleurs, de la typo,
   des rayons, des espaces, des ombres et de l'empilement.
   Il ne remplace pas encore style.css (contrat § 5.1) : les écrans
   existants continuent de vivre. Les nouveaux blocs lisent ces jetons.

   Préfixe --go- pour ne pas heurter --gold2, --glass, --c-asie, etc.
   Les accents de monde se posent avec data-world="asie|occ|arabe|latam|afr"
   sur la racine de l'écran. :root reprend l'Asie, monde de référence. */

:root,
[data-world="asie"] {
  --go-accent: #E5484D;
  --go-accent-light: #FF9AA0;
  --go-accent-deep: #6E1520;
  --go-accent-ink: #2A0A0E;
  --go-accent-soft: rgba(229, 72, 77, .22);
  --go-accent-glow: rgba(229, 72, 77, .55);
  --go-banner-top: #9A3038;
  --go-banner-bottom: #4A1016;
  --go-scene-bg: url("../sanctuaire/assets/city_bg_asie.webp");
  --go-scene-hero: url("../sanctuaire/assets/pal_asie_3.webp");
  /* Médailles de joker : fichiers réels de game/img/. Le build réécrit ces url()
     vers img/<nom>.<hash>.webp (le nom nu n'est pas publié). */
  --go-jk-sage: url("../img/jk-asie-sage.75064bf9b0.webp");
  --go-jk-village: url("../img/jk-asie-village.bf44ac017e.webp");
  --go-jk-yy: url("../img/jk-asie-yy.ffe2f6490c.webp");
}

[data-world="occ"] {
  --go-accent: #6C8CFF;
  --go-accent-light: #B7C6FF;
  --go-accent-deep: #24357A;
  --go-accent-ink: #0C1433;
  --go-accent-soft: rgba(108, 140, 255, .22);
  --go-accent-glow: rgba(108, 140, 255, .55);
  --go-banner-top: #3C529E;
  --go-banner-bottom: #141C44;
  --go-scene-bg: url("../sanctuaire/assets/city_bg_occ.webp");
  --go-scene-hero: url("../sanctuaire/assets/occ_3.webp");
  --go-jk-sage: url("../img/jk-occ-sage.7e365c958d.webp");
  --go-jk-village: url("../img/jk-occ-village.6bcbe8f9d0.webp");
  --go-jk-yy: url("../img/jk-occ-yy.9076433855.webp");
}

[data-world="arabe"] {
  --go-accent: #2FB7A0;
  --go-accent-light: #8EE6D6;
  --go-accent-deep: #0E5C50;
  --go-accent-ink: #062824;
  --go-accent-soft: rgba(47, 183, 160, .22);
  --go-accent-glow: rgba(47, 183, 160, .5);
  --go-banner-top: #1C7568;
  --go-banner-bottom: #0A332E;
  --go-scene-bg: url("../sanctuaire/assets/city_bg_arabe.webp");
  --go-scene-hero: url("../sanctuaire/assets/arabe_3.webp");
  --go-jk-sage: url("../img/jk-arabe-sage.9f1ef4cefe.webp");
  --go-jk-village: url("../img/jk-arabe-village.448ecd6f3d.webp");
  --go-jk-yy: url("../img/jk-arabe-yy.d75220edc4.webp");
}

[data-world="latam"] {
  --go-accent: #E0569B;
  --go-accent-light: #F7B0D2;
  --go-accent-deep: #7A2454;
  --go-accent-ink: #2E0C1E;
  --go-accent-soft: rgba(224, 86, 155, .22);
  --go-accent-glow: rgba(224, 86, 155, .5);
  --go-banner-top: #8E3464;
  --go-banner-bottom: #3A1228;
  --go-scene-bg: url("../sanctuaire/assets/city_bg_latam.webp");
  --go-scene-hero: url("../sanctuaire/assets/latam_3.webp");
  --go-jk-sage: url("../img/jk-latam-sage.a1b9cc8b30.webp");
  --go-jk-village: url("../img/jk-latam-village.b537c46b9b.webp");
  --go-jk-yy: url("../img/jk-latam-yy.cfc99db461.webp");
}

[data-world="afr"] {
  --go-accent: #E08A2E;
  --go-accent-light: #F6C98A;
  --go-accent-deep: #7A4A12;
  --go-accent-ink: #2A1806;
  --go-accent-soft: rgba(224, 138, 46, .24);
  --go-accent-glow: rgba(224, 138, 46, .5);
  --go-banner-top: #8A5418;
  --go-banner-bottom: #3A2208;
  --go-scene-bg: url("../sanctuaire/assets/city_bg_afr.webp");
  --go-scene-hero: url("../sanctuaire/assets/afr_3.webp");
  --go-jk-sage: url("../img/jk-afr-sage.3712bbc5da.webp");
  --go-jk-village: url("../img/jk-afr-village.2abd4f9ae4.webp");
  --go-jk-yy: url("../img/jk-afr-yy.a17c593326.webp");
}

:root {
  /* Encre : dégradé de fond #13152A → #08090F */
  --go-ink-0: #13152A;
  --go-ink-1: #0E101C;
  --go-ink-2: #08090F;
  --go-bg: linear-gradient(180deg, #13152A 0%, #0E101C 46%, #08090F 100%);

  /* Or chaud #F2CF7A et ses clairs / foncés */
  --go-gold-light: #FFF6D4;
  --go-gold: #F2CF7A;
  --go-gold-mid: #E0B15A;
  --go-gold-dark: #A8742A;
  --go-gold-deep: #6E4816;
  --go-gold-ink: #3E280C;
  --go-gold-metal: linear-gradient(180deg, #FFF8E6 0%, #F2CF7A 34%, #E0B15A 58%, #C4923E 78%, #8C5A1C 100%);
  --go-gold-rim: linear-gradient(155deg, #FFF6D4 0%, #F2CF7A 28%, #8C5A1C 52%, #F2CF7A 78%, #FFF6D4 100%);

  /* Verre dépoli neutre (panneaux) */
  --go-glass: rgba(16, 19, 38, .72);
  --go-glass-strong: rgba(10, 12, 22, .92);
  --go-glass-line: rgba(242, 207, 122, .55);
  --go-glass-highlight: rgba(255, 255, 255, .07);
  --go-blur: 16px;

  /* Filet, voile, avertissement — demandés pour aligner les blocs sur la palette Fusion */
  --go-line: rgba(242, 207, 122, .35);
  --go-shade: rgba(8, 9, 15, .62);
  --go-warn: #F0B44C;

  /* Texte */
  --go-text: #F7F2E8;
  --go-text-soft: #DDD4C4;
  --go-text-muted: #C2B8A6;
  --go-text-on-gold: #3E280C;
  --go-text-on-accent: #FFF8F4;

  /* États sémantiques — jamais la seule porteuse de sens */
  --go-correct: #3DDC97;
  --go-correct-deep: #0E6B45;
  --go-correct-soft: rgba(61, 220, 151, .18);
  --go-correct-ink: #E9FFF6;
  --go-wrong: #FF6B78;
  --go-wrong-deep: #8E1D2A;
  --go-wrong-soft: rgba(255, 107, 120, .18);
  --go-wrong-ink: #FFECEE;
  --go-selected: #F2CF7A;
  --go-selected-soft: rgba(242, 207, 122, .18);

  /* Accents nommés, pour une liste de mondes sans changer data-world.
     Ordre d'affichage fixe : asie, occ, arabe, latam, afr. */
  --go-c-asie: #E5484D;
  --go-c-occ: #6C8CFF;
  --go-c-arabe: #2FB7A0;
  --go-c-latam: #E0569B;
  --go-c-afr: #E08A2E;

  /* Éléments et raretés — valeurs du contrat § 5.1, reprises telles quelles
     pour qu'un bloc ne réinvente pas ces teintes. */
  --go-e-eau: #4FA8FF;
  --go-e-terre: #8BC34A;
  --go-e-feu: #FF7A45;
  --go-e-lumiere: #FFE08A;
  --go-r-rare: #7FB2FF;
  --go-r-epique: #C78BFF;
  --go-r-legendaire: #FFC84A;

  /* Typographie.
     Cormorant Garamond (latin 500/600/700) contient les chiffres alignés (lnum)
     et tabulaires (tnum). Sans eux, le 1 par défaut est un vieux style qui
     se lit comme un ı, surtout à petite taille et à côté de l'arabe.
     --go-nums est la valeur de font-variant-numeric. */
  --go-font-display: "Cinzel", "Palatino Linotype", Palatino, "Times New Roman", serif;
  --go-font-body: "Cormorant Garamond", "EB Garamond", Garamond, "Palatino Linotype", Palatino, Georgia, "Noto Naskh Arabic", "Noto Sans Arabic", "Noto Serif SC", "Noto Sans SC", "Noto Serif CJK SC", "Noto Sans CJK SC", "Noto Serif JP", "Noto Sans JP", "Noto Serif CJK JP", "Noto Sans CJK JP", "Noto Serif Devanagari", "Noto Sans Devanagari", "Noto Serif Thai", "Noto Sans Thai", serif;
  --go-nums: lining-nums tabular-nums;
  --go-text-xs: 0.75rem;     /* 12 — plancher */
  --go-text-sm: 0.8125rem;   /* 13 */
  --go-text-md: 0.9375rem;   /* 15 */
  --go-text-lg: 1.0625rem;   /* 17 */
  --go-text-xl: 1.25rem;     /* 20 */
  --go-text-2xl: 1.5rem;     /* 24 */
  --go-text-3xl: 2rem;       /* 32 */
  --go-text-4xl: 2.5rem;     /* 40 */
  --go-leading-tight: 1.15;
  --go-leading-body: 1.45;
  --go-tracking-title: 0.14em;
  --go-tracking-wide: 0.22em;

  /* Rayons */
  --go-radius-xs: 6px;
  --go-radius-sm: 10px;
  --go-radius-md: 14px;
  --go-radius-lg: 18px;
  --go-radius-xl: 24px;
  --go-radius-2xl: 32px;
  --go-radius-pill: 999px;

  /* Espaces (base 4) */
  --go-space-1: 4px;
  --go-space-2: 8px;
  --go-space-3: 12px;
  --go-space-4: 16px;
  --go-space-5: 20px;
  --go-space-6: 24px;
  --go-space-8: 32px;
  --go-space-10: 40px;
  --go-space-12: 48px;
  --go-space-16: 64px;
  --go-tap: 44px;

  /* Ombres et lueurs */
  --go-shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);
  --go-shadow-sm: 0 4px 12px rgba(0, 0, 0, .38);
  --go-shadow-md: 0 12px 28px rgba(0, 0, 0, .45);
  --go-shadow-lg: 0 22px 50px rgba(0, 0, 0, .55);
  --go-shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .08);
  --go-emboss: inset 0 1px 0 rgba(255, 248, 230, .8), inset 0 -3px 0 rgba(74, 46, 12, .38), 0 1px 0 #5C3A10;
  --go-glow-gold: 0 0 18px rgba(242, 207, 122, .4);
  --go-glow-gold-strong: 0 0 28px rgba(242, 207, 122, .62);
  --go-glow-accent: 0 0 22px var(--go-accent-glow);
  --go-glow-correct: 0 0 18px rgba(61, 220, 151, .45);
  --go-glow-wrong: 0 0 18px rgba(255, 107, 120, .45);
  --go-glow-selected: 0 0 18px rgba(242, 207, 122, .5);

  /* Filigrane d'or partagé (les dragons peints de la maquette ne sont pas un asset du jeu). */
  --go-wing: url("ornaments/banniere_filigrane_1.svg");

  /* Octogone des jokers et du bandeau de classement (régulier, dans un carré) */
  --go-oct: polygon(29% 0, 71% 0, 100% 29%, 100% 71%, 71% 100%, 29% 100%, 0 71%, 0 29%);

  /* Verre 12 % — pas d'équivalent exact avant la PR #42, qui le gardait local
     (--b4-glass-2 / --b07-glass-2). Même valeur, maintenant partagée. */
  --go-glass-2: rgba(255, 255, 255, .12);

  /* Filet et halo d'or des boutons Héros (PR #42). */
  --go-gold-line: color-mix(in srgb, var(--go-gold) 55%, transparent);
  --go-gold-halo: color-mix(in srgb, var(--go-gold) 28%, transparent);

  /* Relief du bouton or Héros (.b04-btn.pri). Distinct de --go-emboss (maquette). */
  --go-emboss-gold:
    inset 0 1px 0 color-mix(in srgb, var(--go-gold-light) 55%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--go-gold-dark) 70%, transparent),
    0 0 0 1px var(--go-gold-line),
    0 0 18px var(--go-gold-halo);

  /* Dégradés des deux boutons or de la PR #42. Le second s'arrête sur
     --go-gold-dark, pas sur --go-gold-deep. */
  --go-btn-gold-bg: linear-gradient(180deg, var(--go-gold-light), var(--go-gold) 45%, var(--go-gold-dark));
  --go-btn-gold-deep-bg: linear-gradient(180deg, var(--go-gold), var(--go-gold-dark));
  --go-btn-gold-deep-shadow:
    0 1px 0 color-mix(in srgb, var(--go-text) 60%, transparent) inset,
    0 -2px 0 color-mix(in srgb, var(--go-gold-ink) 40%, transparent) inset,
    0 4px 14px color-mix(in srgb, var(--go-gold) 35%, transparent);

  /* Rose « favori » : #42 le laissait local (#FF8FAB), sans jeton. Partagé pour que
     heroes.css puisse lâcher le littéral. */
  --go-fav: #FF8FAB;

  /* Échelle d'empilement fixe. Interdit d'inventer un z-index hors de cette liste. */
  --go-z-base: 0;
  --go-z-decor: 1;
  --go-z-content: 2;
  --go-z-raised: 10;
  --go-z-sticky: 20;
  --go-z-hud: 30;
  --go-z-dropdown: 40;
  --go-z-overlay: 50;
  --go-z-modal: 60;
  --go-z-toast: 70;
  --go-z-screen: 80;
  --go-z-cinema: 90;
  --go-z-max: 90;
}

/* Pont des anciens noms — mêmes correspondances que les alias --b4-* / --b07-*
   de la PR #42 (charte-heros-evenements), une fois tokens.css chargé.
   heroes.css et events.css lisent encore ces noms (var(--gold), var(--bg-0)…) :
   les publier ici aligne leur rendu sur #42 sans modifier ces fichiers.
   Gamesbuilder pourra ensuite remplacer l'alias local par le jeton --go-*.
   Le quiz redéclare --ink (fond) et --gold dans template.html : sur cette page,
   ces deux noms gardent le sens du quiz, pas celui de ce pont. */
:root {
  --bg-0: var(--go-ink-0);
  --bg-1: var(--go-ink-2);
  --gold: var(--go-gold);
  --gold-hi: var(--go-gold-light);
  --gold-lo: var(--go-gold-dark);
  --glass-bg: var(--go-glass-highlight);
  --glass-bg-2: var(--go-glass-2);
  --glass-2: var(--go-glass-2);
  --glass-bg-strong: var(--go-glass-strong);
  --glass-blur: var(--go-blur);
  --glass-line: var(--go-line);
  --ink: var(--go-text);
  --ink-muted: var(--go-text-muted);
  --ink-on-gold: var(--go-text-on-gold);
  --radius-sm: var(--go-radius-sm);
  --radius-md: var(--go-radius-md);
  --radius-lg: var(--go-radius-lg);
  --radius-pill: var(--go-radius-pill);
  --z-raised: var(--go-z-decor);
  --z-fab: var(--go-z-modal);
  --z-sheet: var(--go-z-toast);
  --z-toast: var(--go-z-screen);
  --tap: var(--go-tap);
  --ok: var(--go-correct);
  --warn: var(--go-warn);
  --bad: var(--go-wrong);
  --fav: var(--go-fav);
  --shade: var(--go-shade);
  --sheen: var(--go-glass-highlight);
  --line: var(--go-line);
  --c-asie: var(--go-c-asie);
  --c-occ: var(--go-c-occ);
  --c-arabe: var(--go-c-arabe);
  --c-latam: var(--go-c-latam);
  --c-afr: var(--go-c-afr);
  --e-eau: var(--go-e-eau);
  --e-terre: var(--go-e-terre);
  --e-feu: var(--go-e-feu);
  --e-lumiere: var(--go-e-lumiere);
  --r-rare: var(--go-r-rare);
  --r-epique: var(--go-r-epique);
  --r-legendaire: var(--go-r-legendaire);
}

/* Chiffres de jeu (scores, pièces, gemmes, chronos, niveaux, classements).
   Hérité partout où tokens.css est lié. font-feature-settings est repris
   par les enfants et prime sur un font-variant-numeric partiel
   (tabular-nums seul laisserait le 1 en vieux style). */
html {
  font-variant-numeric: var(--go-nums);
  font-feature-settings: "lnum" 1, "tnum" 1;
}
