:root{
  /* Families */
  /* Archivo carries no Greek or Cyrillic subset; "Source Sans 3" sits next in the
     stack so display-size headings in those scripts stay inside the system rather
     than dropping to Helvetica. Retrofit change, phase 0 — see design/_evidence/. */
  --font-display:"Archivo","Source Sans 3","Helvetica Neue",Arial,sans-serif;
  --font-sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;

  /* Size ramp — 1.2 minor third, tuned by hand at UI sizes */
  --text-2xs:11px;
  --text-xs:12px;
  --text-sm:13px;
  --text-base:15px;
  --text-md:17px;
  --text-lg:20px;
  --text-xl:24px;
  --text-2xl:30px;
  --text-3xl:38px;
  --text-4xl:48px;
  --text-5xl:62px;

  /* Line heights */
  --leading-tight:1.12;
  --leading-snug:1.28;
  --leading-normal:1.5;
  --leading-relaxed:1.62;

  /* Weights */
  --weight-light:300;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  /* Tracking */
  --tracking-tight:-0.02em;
  --tracking-snug:-0.01em;
  --tracking-normal:0;
  --tracking-wide:0.02em;
  --tracking-caps:0.08em;

  /* Composed roles */
  --type-display:var(--weight-semibold) var(--text-4xl)/var(--leading-tight) var(--font-display);
  --type-title:var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-display);
  --type-heading:var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-subheading:var(--weight-semibold) var(--text-base)/var(--leading-snug) var(--font-sans);
  --type-body:var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --type-label:var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-sans);
  --type-caption:var(--weight-regular) var(--text-xs)/var(--leading-normal) var(--font-sans);
  --type-mono:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-mono);
  --type-mono-xs:var(--weight-regular) var(--text-xs)/var(--leading-normal) var(--font-mono);
  --type-overline:var(--weight-semibold) var(--text-2xs)/var(--leading-normal) var(--font-sans);
}
