/* Hallmark · tokens · genre: editorial · theme: Almanac
 * Axes: paper-band = light · display-style = roman-serif · accent-hue = chromatic-violet (305)
 *
 * Dit bestand is de enige bron van kleur, type, ruimte en timing.
 * style.css verwijst uitsluitend via var(--naam) — nooit een losse hex of oklch.
 */

/* ---------- Lettertypen (zelf gehost, latin-subset, variabel) ---------- */

@font-face {
  font-family: "Newsreader";
  src: url("/fonts/newsreader.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Plex Sans";
  src: url("/fonts/plexsans.woff2") format("woff2");
  font-weight: 100 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/fonts/jetbrains.woff2") format("woff2");
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

:root {

  /* ---------- Kleur ---------- *
   * Anker: hue 305 (amethist). Alle neutralen dragen die tint mee, zodat het
   * papier violet-koel leest in plaats van vlak grijs. Accent blijft onder 3%
   * van elk beeldscherm: links, actieve nav, focusring, één markering.        */

  --color-paper:      oklch(97.5% 0.006 305);   /* basisvel                   */
  --color-paper-2:    oklch(95.2% 0.008 305);   /* ingesprongen band          */
  --color-paper-3:    oklch(92.4% 0.010 305);   /* tabelkop, hover            */
  --color-rule:       oklch(84%   0.012 305);   /* haarlijn                   */
  --color-rule-2:     oklch(74%   0.014 305);   /* zware lijn, dubbele regel  */
  --color-neutral:    oklch(52%   0.012 305);   /* metadata, bijschrift       */
  --color-muted:      oklch(41%   0.014 305);   /* secundaire lopende tekst   */
  --color-ink:        oklch(21%   0.020 305);   /* primaire tekst             */
  --color-ink-deep:   oklch(15%   0.024 305);   /* colofon, omgekeerde vlakken*/

  --color-accent:     oklch(46%   0.155 305);   /* amethist — links, actief   */
  --color-accent-ink: oklch(97.5% 0.006 305);   /* tekst óp accent            */
  --color-accent-2:   oklch(48%   0.130 40);    /* roest — alleen advent      */
  --color-focus:      oklch(52%   0.190 305);

  /* Omgekeerd vlak — het colofon staat op ink-deep en heeft een eigen trap */
  --color-op-ink:       oklch(84%   0.010 305);   /* links in het colofon       */
  --color-op-ink-2:     oklch(78%   0.010 305);   /* lopende tekst              */
  --color-op-ink-3:     oklch(72%   0.012 305);   /* colofonproza               */
  --color-op-ink-zwak:  oklch(62%   0.012 305);   /* kopjes                     */
  --color-op-ink-mat:   oklch(58%   0.012 305);   /* copyright                  */
  --color-op-ink-link:  oklch(78%   0.070 305);   /* link in het colofonproza   */
  --color-op-ink-lijn:  oklch(32%   0.014 305);   /* scheidingslijn             */
  --color-op-ink-focus: oklch(80%   0.140 305);   /* focusring op donker        */

  --color-plus:       oklch(45%   0.110 155);   /* voordeel-teken             */
  --color-min:        oklch(48%   0.130 25);    /* nadeel-teken               */

  /* ---------- Type ---------- *
   * 2+1: Newsreader (display + artikelproza) · Plex Sans (interface) ·
   * JetBrains Mono (uitsluitend één rol: metadata — data, tellingen,
   * rangnummers, editieregel, colofon).                                      */

  --font-display: "Newsreader", ui-serif, "Iowan Old Style", Palatino, serif;
  --font-body:    "Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-meta:    "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --text-2xs:  0.6875rem;  /* 11px — colofon                                 */
  --text-xs:   0.75rem;    /* 12px — labels, editieregel                     */
  --text-sm:   0.8125rem;  /* 13px — metadata                                */
  --text-base: 1.0625rem;  /* 17px — lopende tekst                           */
  --text-md:   1.1875rem;  /* 19px — lead in kaarten                         */
  --text-lg:   1.4375rem;  /* 23px — h3                                      */
  --text-xl:   1.75rem;    /* 28px — h2                                      */
  --text-2xl:  2.125rem;   /* 34px                                           */
  --text-3xl:  2.625rem;   /* 42px                                           */

  --text-display:   clamp(2.25rem, 3.4vw + 1.1rem, 3.5rem);
  --text-display-s: clamp(1.875rem, 2.4vw + 0.95rem, 2.625rem);
  --text-mast:      clamp(1.875rem, 5.4vw + 0.3rem, 3.75rem);

  --leading-display: 1.12;
  --leading-body:    1.62;
  --track-display:  -0.018em;
  --track-meta:      0.10em;

  --measure:      66ch;   /* lopende tekst                                   */
  --measure-lead: 54ch;   /* standfirst / lead                               */

  /* ---------- Ruimte — 4pt, benoemd naar rol ---------- */

  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  --gutter:      clamp(1rem, 4vw, 2rem);
  --breed:       74rem;   /* rails, rasters                                  */
  --smal:        44rem;   /* lopende tekst                                   */

  /* ---------- Lijnen ---------- *
   * Almanac tekent met lijnen, niet met dozen. Eén haarlijn, één zware,
   * en de dubbele regel onder het masthead.                                  */

  --rule-hair:  1px;
  --rule-thick: 2px;
  --radius-sm:  2px;
  --radius:     3px;

  /* ---------- Beweging ---------- */

  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  /* ---------- Stapeling ---------- */

  --z-base:     1;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-modal:    400;
  --z-toast:    500;
  --z-tooltip:  600;
}
