/* ── DNG / KHT — Typography Tokens ─────────────────────────────
   IBM Plex Sans — workhorse: body, UI, most headings (structured,
     humanist grotesque; "Klarheit für Kopfmenschen").
   Playfair Display — editorial display & pull-quotes (the serious,
     reflective "Denkraum" register).
   IBM Plex Mono — code, Zettelkasten/Obsidian, metadata labels. */

:root {
  /* Families */
  --font-sans: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-editorial: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* Semantic family aliases */
  --font-body: var(--font-sans);
  --font-heading: var(--font-sans);
  --font-display: var(--font-editorial);

  /* Weights */
  --fw-light: 300; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-medium: 500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold: 700; /* @kind font */

  /* Type scale (desktop) — from the live website scale */
  --fs-h1: 72px;   /* hero */
  --fs-h2: 50px;
  --fs-h3: 32px;
  --fs-h4: 25px;
  --fs-lead: 22px;
  --fs-body: 19px; /* base reading size */
  --fs-small: 16px;
  --fs-caption: 14px;
  --fs-micro: 12px;

  /* Type scale (mobile) */
  --fs-h1-m: 30px;
  --fs-h2-m: 24px;
  --fs-h3-m: 19px;
  --fs-h4-m: 17px;
  --fs-body-m: 16px;

  /* Line heights */
  --lh-display: 1.05; /* @kind font */
  --lh-tight: 1.2; /* @kind font */
  --lh-heading: 1.4; /* @kind font */
  --lh-body: 1.5; /* @kind font */
  --lh-loose: 1.7; /* @kind font */

  /* Letter spacing */
  --ls-poster: 0.01em; /* @kind font */
  --ls-tight: -0.01em; /* @kind font */
  --ls-normal: 0; /* @kind font */
  --ls-label: 0.14em; /* @kind font */
  --ls-label-wide: 0.22em; /* @kind font */
}
