:root {
  /* Families */
  --font-serif: "EB Garamond", "Noto Serif SC", "Noto Serif TC", Georgia, serif;
  --font-sans:  "Work Sans", "Noto Sans SC", "Noto Sans TC", system-ui, sans-serif;
  --font-mono:  ui-monospace, "SF Mono", Menlo, monospace;

  /* Chinese locale swaps: set lang="zh-Hans" / lang="zh-Hant" on <html> */
  --font-serif-zh-hans: "Noto Serif SC", "EB Garamond", serif;
  --font-sans-zh-hans:  "Noto Sans SC", "Work Sans", sans-serif;
  --font-serif-zh-hant: "Noto Serif TC", "EB Garamond", serif;
  --font-sans-zh-hant:  "Noto Sans TC", "Work Sans", sans-serif;

  /* Scale — editorial: large serif display, small quiet sans */
  --text-display: 72px;  --lh-display: 1.0;   --ls-display: -0.02em;   /* serif 400 */
  --text-h1:      52px;  --lh-h1: 1.05;       --ls-h1: -0.015em;       /* serif 400 */
  --text-h2:      36px;  --lh-h2: 1.15;       --ls-h2: -0.01em;        /* serif 400 */
  --text-h3:      26px;  --lh-h3: 1.25;       --ls-h3: 0;              /* serif 500 */
  --text-quote:   30px;  --lh-quote: 1.3;     --ls-quote: 0;           /* serif italic 400 */
  --text-lead:    20px;  --lh-lead: 1.5;      --ls-lead: 0;            /* sans 300 */
  --text-body:    16px;  --lh-body: 1.6;      --ls-body: 0;            /* sans 400 */
  --text-small:   14px;  --lh-small: 1.5;     --ls-small: 0;           /* sans 400 */
  --text-label:   12px;  --lh-label: 1.3;     --ls-label: 0.12em;      /* sans 500 uppercase */
  --text-caption: 12px;  --lh-caption: 1.4;   --ls-caption: 0.01em;    /* sans 400 */

  /* Weights */
  --weight-light: 300; --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600;

  /* Measure */
  --measure-body: 62ch;
  --measure-lead: 44ch;
}

/* Chinese: tighter tracking, taller line-height, no uppercase labels */
:lang(zh-Hans) { --font-serif: var(--font-serif-zh-hans); --font-sans: var(--font-sans-zh-hans); }
:lang(zh-Hant) { --font-serif: var(--font-serif-zh-hant); --font-sans: var(--font-sans-zh-hant); }
:lang(zh-Hans), :lang(zh-Hant) {
  --ls-display: 0.02em; --ls-h1: 0.02em; --ls-h2: 0.02em; --ls-label: 0.2em;
  --lh-display: 1.15; --lh-h1: 1.2; --lh-h2: 1.3; --lh-body: 1.85; --lh-lead: 1.7;
}
