:root{
  /* ---- Families (three, strict roles) ---------------------------------- */
  --mo-serif: 'Newsreader', 'Times New Roman', Georgia, serif; /* @kind font */
  --mo-sans:  'Manrope', system-ui, -apple-system, sans-serif; /* @kind font */
  --mo-mono:  'IBM Plex Mono', ui-monospace, Menlo, monospace; /* @kind font */

  --mo-font-display: var(--mo-serif); /* @kind font */
  --mo-font-body:    var(--mo-sans); /* @kind font */
  --mo-font-label:   var(--mo-mono); /* @kind font */

  /* ---- Scale ----------------------------------------------------------- */
  --mo-fs-hero:  clamp(44px, 6.6vw, 104px); /* @kind font */
  --mo-fs-h1:    clamp(34px, 4.4vw, 66px); /* @kind font */
  --mo-fs-h2:    clamp(26px, 2.8vw, 40px); /* @kind font */
  --mo-fs-h3:    clamp(19px, 1.6vw, 24px); /* @kind font */
  --mo-fs-lede:  clamp(17px, 1.5vw, 21px); /* @kind font */
  --mo-fs-body:  16px; /* @kind font */
  --mo-fs-sm:    14px; /* @kind font */
  --mo-fs-label: 10.5px; /* @kind font */

  /* ---- Weights: Newsreader 200 above 64px, 300 below; Manrope 500 card and
     row titles, 600 buttons, 800 wordmark and cropped footer mark only ---- */
  --mo-w-hero: 200; /* @kind font */
  --mo-w-head: 300; /* @kind font */
  --mo-w-med:  500; /* @kind font */
  --mo-w-semi: 600; /* @kind font */
  --mo-w-bold: 800; /* @kind font */

  /* ---- Line height, tracking, measure ---------------------------------- */
  --mo-lh-hero: 1.04; /* @kind font */
  --mo-lh-h1:   1.08; /* @kind font */
  --mo-lh-h2:   1.14; /* @kind font */
  --mo-lh-h3:   1.3; /* @kind font */
  --mo-lh-lede: 1.55; /* @kind font */
  --mo-lh-body: 1.7; /* @kind font */
  --mo-lh-sm:   1.65; /* @kind font */

  --mo-tr-hero:  -.015em; /* @kind font */
  --mo-tr-h1:    -.01em; /* @kind font */
  --mo-tr-label: .22em; /* @kind font */
  --mo-tr-mark:  -.045em; /* @kind font */

  /* measures: lede 44ch, body 60ch, accordion copy 56ch */
  --mo-measure-lede: 44ch; /* @kind font */
  --mo-measure-body: 60ch; /* @kind font */
}
