/* ── Type scale ────────────────────────────────────────────────────────────
   Display = Newsreader (the legal-notice voice: headings, hero, numbers you
   want to feel authored). UI = Instrument Sans. Mono = JetBrains Mono, and it
   is not decorative here — SA ID numbers, hashes, timestamps and evidence
   fingerprints must be monospaced so a human can compare them character by
   character. */

:root {
  /* Sizes */
  --fs-display-xl: 68px;
  --fs-display-lg: 52px;
  --fs-display-md: 40px;
  --fs-display-sm: 32px;
  --fs-title-lg: 26px;
  --fs-title-md: 21px;
  --fs-title-sm: 17px;
  --fs-body-lg: 16.5px;
  --fs-body: 15px;
  --fs-body-sm: 13.5px;
  --fs-caption: 12px;
  --fs-overline: 11px;

  /* Line heights */
  --lh-display: 1.04; /* @kind font */
  --lh-display-sm: 1.12; /* @kind font */
  --lh-title: 1.22; /* @kind font */
  --lh-snug: 1.35; /* @kind font */
  --lh-body: 1.55; /* @kind font */
  --lh-relaxed: 1.68; /* @kind font */

  /* Tracking — display serif tightens, small caps open up */
  --ls-display: -0.021em; /* @kind font */
  --ls-title: -0.012em; /* @kind font */
  --ls-body: -0.004em; /* @kind font */
  --ls-caption: 0; /* @kind font */
  --ls-overline: 0.1em; /* @kind font */
  --ls-mono: -0.01em; /* @kind font */

  /* Weights. Newsreader is used at 300–500; 600 only for small serif labels.
     Instrument Sans carries 400 / 500 / 600. Nothing is set at 700+. */
  --fw-light: 300; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-medium: 500; /* @kind font */
  --fw-semibold: 600; /* @kind font */

  /* Composite text roles */
  --type-display-xl: var(--fw-light) var(--fs-display-xl) / var(--lh-display) var(--font-display); /* @kind font */
  --type-display-lg: var(--fw-light) var(--fs-display-lg) / var(--lh-display) var(--font-display); /* @kind font */
  --type-display-md: var(--fw-regular) var(--fs-display-md) / var(--lh-display-sm) var(--font-display); /* @kind font */
  --type-display-sm: var(--fw-regular) var(--fs-display-sm) / var(--lh-display-sm) var(--font-display); /* @kind font */
  --type-title-lg: var(--fw-medium) var(--fs-title-lg) / var(--lh-title) var(--font-display); /* @kind font */
  --type-title-md: var(--fw-semibold) var(--fs-title-md) / var(--lh-title) var(--font-sans); /* @kind font */
  --type-title-sm: var(--fw-semibold) var(--fs-title-sm) / var(--lh-snug) var(--font-sans); /* @kind font */
  --type-body-lg: var(--fw-regular) var(--fs-body-lg) / var(--lh-relaxed) var(--font-sans); /* @kind font */
  --type-body: var(--fw-regular) var(--fs-body) / var(--lh-body) var(--font-sans); /* @kind font */
  --type-body-strong: var(--fw-medium) var(--fs-body) / var(--lh-body) var(--font-sans); /* @kind font */
  --type-body-sm: var(--fw-regular) var(--fs-body-sm) / var(--lh-snug) var(--font-sans); /* @kind font */
  --type-caption: var(--fw-regular) var(--fs-caption) / var(--lh-snug) var(--font-sans); /* @kind font */
  --type-overline: var(--fw-semibold) var(--fs-overline) / 1.2 var(--font-sans); /* @kind font */
  --type-mono: var(--fw-regular) var(--fs-body-sm) / var(--lh-snug) var(--font-mono); /* @kind font */
  --type-mono-sm: var(--fw-regular) var(--fs-caption) / var(--lh-snug) var(--font-mono); /* @kind font */
}
