:root{
  /* Sizes — mini-program scale (375pt design width) */
  --fs-display:40px;
  --fs-h1:28px;
  --fs-h2:20px;
  --fs-h3:17px;
  --fs-body:15px;
  --fs-body-sm:13px;
  --fs-caption:12px;
  --fs-micro:11px;

  --lh-tight:1.2; /* @kind other */
  --lh-heading:1.32; /* @kind other */
  --lh-body:1.68; /* @kind other */
  --lh-dense:1.5; /* @kind other */

  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-bold:700; /* @kind font */
  --fw-black:900; /* @kind font */

  /* CJK needs positive tracking at small sizes, none when large */
  --ls-display:-0.01em; /* @kind other */
  --ls-heading:0; /* @kind other */
  --ls-body:0.01em; /* @kind other */
  --ls-caption:0.02em; /* @kind other */
  --ls-label:0.08em; /* @kind other */ /* latin all-caps eyebrows */

  /* Semantic type roles */
  --type-display:var(--fw-black) var(--fs-display)/var(--lh-tight) var(--font-heading);
  --type-h1:var(--fw-black) var(--fs-h1)/var(--lh-heading) var(--font-heading);
  --type-h2:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-heading);
  --type-h3:var(--fw-medium) var(--fs-h3)/var(--lh-heading) var(--font-core);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-core);
  --type-body-sm:var(--fw-regular) var(--fs-body-sm)/var(--lh-dense) var(--font-core);
  --type-caption:var(--fw-regular) var(--fs-caption)/var(--lh-dense) var(--font-core);
  --type-num:var(--fw-bold) var(--fs-h1)/1 var(--font-num);
}