@layer base {
  body {
    font-family: var(--ff-body);
    font-size: var(--fs-base);
    font-weight: var(--fw-regular);
    color: var(--c-text);
    background: var(--c-bg);
  }

  h1, h2, h3 {
    font-family: var(--ff-display);
    font-weight: var(--fw-regular);
    line-height: var(--lh-tight);
    letter-spacing: var(--ls-tight);
    text-transform: uppercase;
  }
  h1 { font-size: var(--fs-3xl); letter-spacing: var(--ls-tightest); }
  h2 { font-size: var(--fs-2xl); }
  h3 { font-size: var(--fs-xl); }

  h4, h5, h6 {
    font-family: var(--ff-body);
    font-weight: var(--fw-bold);
    line-height: var(--lh-snug);
  }
  h4 { font-size: var(--fs-lg); }
  h5 { font-size: var(--fs-md); }
  h6 { font-size: var(--fs-base); }

  strong, b { font-weight: var(--fw-bold); }

  code, kbd, samp { font-family: var(--ff-mono); font-size: .92em; }

  small { font-size: var(--fs-sm); }

  ::selection { background: var(--c-gold-500); color: var(--c-ink-900); }

  .lead {
    font-size: var(--fs-md);
    color: var(--c-text-muted);
    max-width: 60ch;
  }

  .prose { max-width: var(--measure); }
  .prose > * + * { margin-top: 1.1em; }
  .prose h2 { margin-top: 1.8em; font-size: var(--fs-xl); }
  .prose h3 { margin-top: 1.5em; font-size: var(--fs-lg); }
  .prose ul { list-style: disc; padding-left: 1.4em; }
  .prose ul > li + li { margin-top: .35em; }
  .prose blockquote {
    border-left: var(--bw-thick) solid var(--c-accent-2);
    padding-left: var(--sp-4);
    font-style: italic;
    color: var(--c-text-muted);
  }
}

@layer base {
  /* ============================================================================
     POLICES — memes familles que le site de reference.
     Auto-hebergees : un CDN de polices transfere l'adresse IP des adherents
     hors UE, ce que la CNIL sanctionne. Et c'est plus rapide.
     Les familles par defaut sont posees dans tokens.css (--ff-display,
     --ff-body) ; le repli systeme y est declare si un fichier manque.
     ========================================================================= */

  /* Archivo est une police VARIABLE : un seul fichier de 35 Ko couvre 100 a 900. */
  @font-face {
    font-family: 'Archivo';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('/fonts/archivo-latin-var.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                   U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                   U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }

  /* Clash Display n'est embarquee qu'en Semibold. La plage `400 700` declaree
     ici n'est pas un mensonge utile mais une PROTECTION : sans elle, un titre
     demandant 700 ferait synthetiser un faux gras par le navigateur, qui
     epaissit les contours et abime le dessin de la lettre. */
  @font-face {
    font-family: 'Clash Display';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('/fonts/clash-display-600.woff2') format('woff2');
  }
}
