:root {
  /* Family — Manrope is the sole typeface (Minimal Soft Neumorphism, DS4).
     --font-sans is preserved (consumed ~130×); only its value changes.
     CJK fallback stack keeps 中文 legible on-system. */
  --font-sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  /* Weights — Manrope ships the full 400–800 range */
  --fw-regular:  400;  /* @kind font */
  --fw-medium:   500;  /* @kind font */
  --fw-semibold: 600;  /* @kind font */
  --fw-bold:     700;  /* @kind font */
  --fw-display:  800;  /* @kind font */

  /* Type scale (rem) */
  --fs-badge:      0.75rem;   /* eyebrow / pills */
  --fs-card-title: 1rem;
  --fs-subtitle:   1rem;
  --fs-title:      1.75rem;   /* hero / big-stat display, scales down under 600px */
  --fs-prompt:     0.75rem;

  /* The global type scale (DS4.2): 12 · 13 · 14 · 16 · 18 · 20 · 28 · 36, the Overview's own scale
     (--ov-*) made global so the two cannot drift. Its smallest step is --fs-eyebrow (below, 12px).
     Page code names one of these, never a literal size; the type roles (type-roles.css) are built
     on them. */
  --fs-caption:  0.8125rem;  /* 13 — helper text, dense rows, captions */
  --fs-body:     0.875rem;   /* 14 — reading text, table cells, buttons, forms */
  --fs-item:     1rem;       /* 16 — a list item or a card's title */
  --fs-section:  1.125rem;   /* 18 — a section heading */
  --fs-figure:   1.25rem;    /* 20 — a figure in running text */
  --fs-page:     1.75rem;    /* 28 — a page title or a big number */
  --fs-hero:     2.25rem;    /* 36 — a hero */

  /* Display specimen (DS4): weight 800, tight tracking, snug leading */
  --fw-title:         800;      /* @kind font */
  --tracking-display: -0.03em;
  --lh-display:       1.05;

  /* Eyebrow specimen (DS4.2): 0.75rem / 700 / 0.14em uppercase, muted */
  --fs-eyebrow:       0.75rem;
  --fw-eyebrow:       700;      /* @kind font */
  --tracking-eyebrow-caps: 0.14em;

  /* Tracking */
  --tracking-eyebrow: 0.14em;   /* uppercase eyebrow label */
  --tracking-title:  -0.03em;   /* tight display */

  /* Line height */
  --lh-tight: 1.3; /* @kind font */
  --lh-body:  1.6; /* @kind font */
  /* Long prose read from top to bottom (an Ask answer): its size full screen and in a compact card,
     and its looser lines. Its line length is the conversation column's (--column-reading). */
  --fs-reading:         1rem;
  --fs-reading-compact: 0.92rem;
  --fs-reading-heading: 1.15em;  /* a heading in it: a size up from its text */
  --fs-reading-table:   0.9em;   /* a table in it: a little under its text */
  --lh-reading:         1.75; /* @kind font */
  /* The narrowest a table column may be: about five characters a line, so a narrow card never sets
     a column one character a line; a table that cannot fit scrolls instead. */
  --measure-cell-min: 5em;
  /* A text column's narrowest (a dish name): about eight characters a line, so a long name
     takes two or three lines, not four or five; a table that then cannot fit scrolls. */
  --measure-cell-text: 8em;
}
