/* ============================================================
   TYPOGRAPHY
   Serif (Newsreader) — display & editorial headlines: the
     "author/thinker" voice. Quietly confident, not vendor-y.
   Sans (Hanken Grotesk) — humanist body & UI. Warm, clean.
   Mono (JetBrains Mono) — build logs, labels, technical bits.
   ============================================================ */
:root {
  /* Families */
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --font-sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Base body family */
  --font-body: var(--font-sans);
  --font-display: var(--font-serif);

  /* Weights */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* Type scale (1.0rem = 16px) */
  --fs-display-1: 4.5rem;   /* 72 — hero serif */
  --fs-display-2: 3.5rem;   /* 56 */
  --fs-h1: 2.75rem;         /* 44 */
  --fs-h2: 2.125rem;        /* 34 */
  --fs-h3: 1.625rem;        /* 26 */
  --fs-h4: 1.25rem;         /* 20 */
  --fs-lead: 1.375rem;      /* 22 — standfirst / value line */
  --fs-body-lg: 1.125rem;   /* 18 */
  --fs-body: 1rem;          /* 16 */
  --fs-body-sm: 0.9375rem;  /* 15 */
  --fs-caption: 0.8125rem;  /* 13 */
  --fs-overline: 0.75rem;   /* 12 — mono eyebrow */

  /* Line heights */
  --lh-tight: 1.05;
  --lh-display: 1.12;
  --lh-heading: 1.2;
  --lh-snug: 1.4;
  --lh-body: 1.62;
  --lh-relaxed: 1.75;

  /* Letter spacing */
  --ls-tightest: -0.03em;
  --ls-tight: -0.015em;
  --ls-normal: 0em;
  --ls-wide: 0.02em;
  --ls-overline: 0.16em; /* mono eyebrows / labels */

  /* Semantic roles */
  --type-hero-family: var(--font-serif);
  --type-hero-weight: var(--fw-semibold);
  --type-heading-family: var(--font-serif);
  --type-heading-weight: var(--fw-medium);
  --type-eyebrow-family: var(--font-mono);
  --type-eyebrow-weight: var(--fw-medium);
  --type-body-family: var(--font-sans);
  --type-body-weight: var(--fw-regular);
}
