:root {
  /* Sizes — body sits at 17px, not 16px. Deliberate reading pace. */
  --fs-hero: 56px;
  --fs-display-lg: 40px;
  --fs-display-md: 34px;
  --fs-lead: 28px;
  --fs-lead-airy: 24px;
  --fs-tagline: 21px;
  --fs-body: 17px;
  --fs-caption: 14px;
  --fs-fine: 12px;
  --fs-micro: 10px;

  /* Weight ladder: 300 / 400 / 600 / 700. 500 is deliberately absent. */
  --fw-light: 300; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold: 700; /* @kind font */

  --lh-tight: 1.07; /* @kind font */
  --lh-display: 1.1; /* @kind font */
  --lh-snug: 1.19; /* @kind font */
  --lh-body: 1.47; /* @kind font */
  --lh-airy: 1.5; /* @kind font */
  --lh-dense-link: 2.41; /* @kind font */

  --ls-hero: -0.028em; /* @kind font */
  --ls-display: -0.018em; /* @kind font */
  --ls-body: -0.008em; /* @kind font */
  --ls-none: 0; /* @kind font */
  --ls-wide: 0.08em; /* @kind font */

  /* Composed roles */
  --type-hero: var(--fw-semibold) var(--fs-hero) / var(--lh-tight) var(--font-display); /* @kind font */
  --type-display-lg: var(--fw-semibold) var(--fs-display-lg) / var(--lh-display) var(--font-display); /* @kind font */
  --type-display-md: var(--fw-semibold) var(--fs-display-md) / var(--lh-display) var(--font-display); /* @kind font */
  --type-lead: var(--fw-regular) var(--fs-lead) / var(--lh-snug) var(--font-text); /* @kind font */
  --type-lead-airy: var(--fw-light) var(--fs-lead-airy) / var(--lh-airy) var(--font-text); /* @kind font */
  --type-tagline: var(--fw-semibold) var(--fs-tagline) / var(--lh-snug) var(--font-text); /* @kind font */
  --type-body: var(--fw-regular) var(--fs-body) / var(--lh-body) var(--font-text); /* @kind font */
  --type-body-strong: var(--fw-semibold) var(--fs-body) / 1.24 var(--font-text); /* @kind font */
  --type-dense-link: var(--fw-regular) var(--fs-body) / var(--lh-dense-link) var(--font-text); /* @kind font */
  --type-caption: var(--fw-regular) var(--fs-caption) / 1.43 var(--font-text); /* @kind font */
  --type-caption-strong: var(--fw-semibold) var(--fs-caption) / 1.29 var(--font-text); /* @kind font */
  --type-fine: var(--fw-regular) var(--fs-fine) / 1.35 var(--font-text); /* @kind font */
  --type-micro: var(--fw-regular) var(--fs-micro) / 1.3 var(--font-text); /* @kind font */
  --type-eyebrow: var(--fw-semibold) var(--fs-fine) / 1 var(--font-text); /* @kind font */
  --type-mono: var(--fw-regular) var(--fs-caption) / 1.6 var(--font-mono); /* @kind font */
}
