/* ============================================================
   RPEA — Rugby Performance & Education Academy
   tokens.css — contrat unique HTML ↔ implémentation (CSS/Tailwind/Swift)
   Source de vérité : DESIGN.md. Tout conflit = bug, le .md gagne.
   ============================================================ */

:root {
  /* ---- Couleur — triade 70 / 25 / 5 ---- */
  --color-base:      #0E0E0E; /* 70% — near-black structurel (jamais #000) */
  --color-structure: #1A1916; /* 25% — surface carte / bordure sur ink (warm charcoal) */
  --color-accent:    #E6B33D; /* 5%  — or vif (validé Baptiste, s'aligne sur son logo or métallique). Contraste ~9:1 sur base. Or = essentiel only */

  /* ---- Neutres chauds 0 (clair) → 900 (sombre) ---- */
  --neutral-0:   #F5F2EC; /* blanc cassé chaud — texte sur sombre, fond sections claires */
  --neutral-50:  #E9E4DA;
  --neutral-100: #D8D2C6;
  --neutral-200: #BDB6A8;
  --neutral-300: #9A9488; /* asphalte — texte secondaire (≥4.5:1 sur base) */
  --neutral-400: #6E6A61;
  --neutral-500: #4A473F;
  --neutral-600: #33312C;
  --neutral-700: #24231F; /* bordures discrètes sur ink */
  --neutral-800: #1A1916; /* = structure (surface carte) */
  --neutral-900: #0E0E0E; /* = base (ink) */

  /* Variantes d'or dérivées (usage limité) */
  --accent-hover: #F3C659; /* or vif éclairci — hover sur texte/traits or */
  --accent-deep:  #B98C24; /* or vif assombri — gravure fin sur clair, jamais aplat */

  /* ---- Typographie ---- */
  /* Superfamille Archivo : display = wght 900 + font-stretch 125% ; body = wght 300-500 + width 100%.
     Charger la variable : Google Fonts "Archivo:wdth,wght@62..125,300..900". Display ≠ Anton (signature propre à RPEA). */
  --font-display: "Archivo", system-ui, sans-serif;   /* appliquer font-weight:900; font-stretch:125% */
  --font-body:    "Archivo", system-ui, sans-serif;   /* width 100%, weights 300-700 */

  /* Échelle type — display en sauts φ, UI en pas sensés. clamp() responsive */
  --fz-hero:    clamp(2.75rem, 8vw, 6.75rem);   /* 44 → 108px — Archivo XBlack Expanded */
  --fz-h1:      clamp(2.25rem, 5vw, 4rem);      /* 36 → 64px */
  --fz-h2:      clamp(1.9rem, 4vw, 3.25rem);    /* 30 → 52px */
  --fz-h3:      clamp(1.4rem, 2.2vw, 1.9rem);   /* 22 → 30px */
  --fz-lead:    clamp(1.15rem, 1.6vw, 1.5rem);  /* 18 → 24px — Archivo 400, chapô */
  --fz-body:    1.0625rem;                       /* 17px — Archivo 400 */
  --fz-small:   0.9375rem;                       /* 15px — Archivo */
  --fz-caption: 0.8125rem;                       /* 13px — eyebrow, uppercase tracking */

  --lh-display: 0.95;  /* capitales larges — un peu d'air */
  --lh-body:    1.6;   /* corps aéré */
  --tracking-display: 0.01em;
  --tracking-eyebrow: 0.24em;

  /* ---- Espacement — Fibonacci (≈ φ) : le gain φ le plus fort ---- */
  --s1: 8px;
  --s2: 13px;
  --s3: 21px;
  --s4: 34px;
  --s5: 55px;
  --s6: 89px;
  --s7: 144px;

  /* ---- Ratios ---- */
  --ratio-image: 1.618;   /* cartes/images paysage 1.618:1 */
  --ratio-portrait: 0.8;  /* portraits joueurs 4:5 (cinématique vertical) */
  --split-minor: 38.2%;   /* colonnes asymétriques φ */
  --split-major: 61.8%;

  /* ---- Layout ---- */
  --container: 1200px;
  --gutter: var(--s3);

  /* ---- Motion — pesé, athlétique, jamais ludique ---- */
  --motion-fast:    80ms;   /* tactile (apparition traits viseur) */
  --motion-base:    200ms;  /* couleur/état */
  --motion-medium:  320ms;  /* hover */
  --motion-slow:    640ms;  /* reveals, remplissage CTA */
  --motion-glacial: 1200ms; /* rare — grands reveals héros */
  --ease-standard: cubic-bezier(0.65, 0.05, 0.36, 1);
  --ease-settle:   cubic-bezier(0.16, 1, 0.30, 1);   /* expo-out — poids athlétique, reveals */
  --ease-snap:     cubic-bezier(0.22, 1, 0.36, 1);   /* expo-out plus vif — micro-détail. JAMAIS de bounce/elastic */

  /* ---- Traits & bordures ---- */
  --hairline: 1px;              /* liseré or / bordure fine */
  --border-soft: var(--neutral-700);
  --border-accent: var(--color-accent);

  /* ---- Grain / texture (overlay) ---- */
  --grain-opacity: 0.06;
}
