: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.72rem;   /* eyebrow / pills */
  --fs-card-title: 1.05rem;
  --fs-subtitle:   1.125rem;
  --fs-title:      2.6rem;    /* hero / big-stat display, scales down under 600px */
  --fs-prompt:     0.8rem;

  /* 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): 0.72rem / 700 / 0.14em uppercase, muted */
  --fs-eyebrow:       0.72rem;
  --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;
}
