/* ═══════════════════════════════════════════════════════════════
   COMPANIUM — Design tokens (v6 — 09/07/2026)
   Polices auto-hébergées (plus de dépendance à Google Fonts, qui
   se chargeait mal sur certains réseaux mobiles — rendu dégradé
   constaté et corrigé le 03/07/2026).
   Palette jaune fluo du simulateur d'origine, appliquée à tout le
   site (09/07/2026). Règle : --accent (fluo) = FONDS/boutons avec
   texte foncé ; --accent-text (#5EA300) = TEXTE accent lisible sur
   fond clair (le fluo est illisible en texte sur blanc).
   ═══════════════════════════════════════════════════════════════ */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/space-grotesk-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/space-grotesk-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/space-grotesk-latin-700-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-700-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');
}
:root {
  --bg:            #FFFFFF;
  --bg-panel:      #F7F5EF;
  --bg-card:       #FFFFFF;
  --border:        #E7E5DF;
  --accent:        #D7FF3F;   /* jaune fluo — FONDS / boutons (texte foncé dessus) */
  --accent-dark:   #5EA300;   /* vert-lime foncé — TEXTE accent + bordures (lisible sur clair) */
  --accent-hover:  #C2EE00;   /* survol des boutons (fluo légèrement plus profond) */
  --on-accent:     #071A33;   /* couleur de texte à poser SUR un fond fluo */
  --text-primary:  #071A33;
  --text-muted:    #5E6A78;
  --font-display: 'Space Grotesk', -apple-system, 'Segoe UI', sans-serif;
  --font-body:    'Manrope', -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', 'SF Mono', Consolas, monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text-primary);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--font-display); font-weight: 700; line-height: 1.15; margin: 0; }
p { margin: 0; }
a { color: inherit; }
button { font-family: inherit; }
img, svg { display: block; max-width: 100%; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
