/* ===========================================================================
   E-MOTION Paris Bourse — jetons de theme
   ===========================================================================
   115 rue Reaumur, 75002 Paris.

   C'est le theme de BASE du site : il est charge par toutes les pages, en
   <link> ordinaire, sans JavaScript. Si le chargeur de theme ne s'execute
   pas, le site reste habille — c'est voulu, et c'est pour cela que ce
   fichier est appele autrement que celui d'Alpine.

   L'Alpine Race Lounge, lui, se superpose : marques/alpine-race-lounge/
   alpine.css ne redefinit que ces memes jetons, plus ses regles propres, et
   n'est telecharge que sur le domaine Alpine.

   Le double selecteur est intentionnel :
     :root                          -> s'applique meme sans attribut de theme
     :root[data-theme="emotion"]    -> gagne face au :root nu d'un autre theme

   Trois pages divergent legerement de ce bloc et gardent donc quelques lignes
   en propre, ecrites directement dans leur <style> : les pages de classement
   et la file de verification (--gold-dim un peu plus dense), l'admin et la
   demo (--line un peu plus clair, plus un --err). Elles sont signalees sur
   place.
   =========================================================================== */

:root,
:root[data-theme="emotion"] {
  /* --- polices --- */
  --f-primary: "Sportize", "Oswald", system-ui, sans-serif;
  --f-tech: "Nulshock", "Chakra Petch", system-ui, sans-serif;
  --f-body: "Source Sans 3", system-ui, sans-serif;

  /* --- couleur de marque ---
     --brand-rgb porte les composantes RVB : toutes les transparences de la
     marque sont ecrites rgba(var(--brand-rgb), x). Redefinir cette seule
     ligne repeint tous les accents du site. */
  --brand-rgb: 197, 166, 79;
  --gold: #C5A64F;
  --gold-soft: #d8bd74;
  --gold-dim: rgba(var(--brand-rgb), .16);
  --on-brand: #161616;              /* texte pose SUR un aplat de marque */

  /* --- fonds --- */
  --bg-rgb: 10, 10, 11;
  --panel-rgb: 21, 21, 23;
  --bg: #0a0a0b;
  --bg-2: #111113;
  --panel: #151517;
  --panel-2: #1b1b1e;

  /* --- lignes --- */
  --line: rgba(255, 255, 255, 0.08);
  --line-strong: rgba(var(--brand-rgb), 0.35);

  /* --- textes ---
     --txt-mute donnait 3,28:1 sur le fond, sous le seuil AA de 4,5:1 exige
     pour du petit texte : il portait pourtant toutes les etiquettes en
     capitales du site. Remonte a 5,27:1.

     --txt-dim a suivi, et ce n'est pas de la surenchere : au minimum
     conforme (#84847f) le gris des etiquettes se serait retrouve a 1,10 fois
     du gris secondaire, c'est-a-dire indistinguable. Les deux niveaux de
     hierarchie se seraient effondres l'un sur l'autre. L'ecart est retabli a
     1,6 fois — l'original valait 2 fois, mais il ne tenait que parce que le
     gris des etiquettes etait trop sombre.

     Mesures sur le fond / le panneau / le panneau-2 :
       --txt-dim   #a3a39e   7,81  7,19  6,78
       --txt-mute  #84847f   5,27  4,85  4,57  */
  --txt: #f4f4f2;
  --txt-strong: #f1f1ec;
  --txt-dim: #a3a39e;
  --txt-mute: #84847f;

  /* --- podium --- */
  --p1: #C5A64F;
  --p2: #c9ccd1;
  --p3: #cd7f4b;

  /* --- etats --- */
  --ok-rgb: 87, 201, 138;
  --bad-rgb: 209, 91, 91;
  --ok: #57c98a;
  --bad: #d15b5b;
  --warn: #e5928a;
  --info: #8fb4ff;
  --qual: #8fb4ff;
  --race: #57c98a;

  /* --- rayons --- */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 12px;
  --radius-pill: 20px;
}

/* ---------------------------------------------------------------------------
   POLICES DE MARQUE — Sportize (titrage) et Nulshock (technique)
   ---------------------------------------------------------------------------
   Elles etaient embarquees en base64 dans le <style> de CHAQUE page : 134 Ko
   repetes 44 fois, soit 5 Mo, et surtout retelecharges a chaque navigation
   puisque du CSS en ligne ne se met pas en cache. Servies en fichiers, elles
   ne sont demandees qu'une fois pour tout le site.

   Le theme Alpine ne les utilise pas (il redefinit --f-primary et --f-tech
   vers Barlow) : une declaration @font-face inutilisee ne declenche aucun
   telechargement, elle ne lui coute donc rien.
   --------------------------------------------------------------------------- */

@font-face {
  font-family: "Sportize";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/sportize-700.ttf") format("truetype");
}

@font-face {
  font-family: "Sportize";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("fonts/sportize-800.ttf") format("truetype");
}

@font-face {
  font-family: "Nulshock";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/nulshock-700.otf") format("opentype");
}

/* ---------------------------------------------------------------------------
   POLICE DE CORPS — Source Sans 3, SIL Open Font License 1.1
   ---------------------------------------------------------------------------
   --f-body la nommait depuis toujours, sans qu'elle soit livree nulle part.
   La CSP du site (`font-src 'self' data:`) interdisant les CDN, la declaration
   ne pouvait pas se rattraper : le corps de texte tombait sur system-ui, donc
   sur une police differente chez chaque visiteur.

   Trois graisses, et pas quatre : les pages n'utilisent que 500, 600 et 700
   avec --f-body, et l'appariement CSS fait descendre un 500 demande vers 400,
   jamais vers 600. Une face de plus serait 25 Ko pour personne.
   --------------------------------------------------------------------------- */

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}
