/* =========================================================================
   YOOAN · 排版令牌（Type Tokens）— 2026-09-18
   只定义变量，不写任何元素规则（.flow 工具类除外）。
   全站所有字号 / 行高 / 字距 / 字重 / 行长只能从这里取值。
   想调全站正文，只改这里一行。
   ========================================================================= */

:root {
  /* ---------- 字号（9 档，封闭名单） ---------- */
  --type-display: clamp(2.75rem, 7.2vw, 6.5rem);    /* 44 → 104px  Hero H1 / 大字声明 */
  --type-step:    clamp(4rem, 10vw, 8.75rem);       /* 64 → 140px  流程大编号 01–05 */
  --type-h2:      clamp(2rem, 4vw, 3.25rem);        /* 32 → 52px   板块标题 */
  --type-h3:      clamp(1.25rem, 1.6vw, 1.5rem);    /* 20 → 24px   卡片 / 条目标题 */
  --type-lead:    clamp(1.125rem, 1.5vw, 1.3125rem);/* 18 → 21px   导语 */
  --type-body:    1.0625rem;                        /* 17px        全站正文（不随视口缩放） */
  --type-dense:   0.9375rem;                        /* 15px        卡片小字 / 说明 / 微文案 */
  --type-label:   0.75rem;                          /* 12px        眉题 / 括号标签（Geist Mono 大写） */
  --type-numeral: 1.1875rem;                        /* 19px        规格数值（Geist Mono） */

  /* ---------- 行高 ---------- */
  --lh-display: 0.95;
  --lh-step:    0.85;
  --lh-h2:      1.08;
  --lh-h3:      1.25;
  --lh-lead:    1.5;
  --lh-body:    1.6;
  --lh-dense:   1.5;
  --lh-label:   1.2;
  --lh-numeral: 1.3;

  /* ---------- 字距（全部用 em，随字号等比变化） ---------- */
  --ls-display: -0.03em;
  --ls-step:    -0.04em;
  --ls-h2:      -0.022em;
  --ls-h3:      -0.015em;
  --ls-label:   0.1em;
  --ls-numeral: 0.01em;

  /* ---------- 字重（只有 3 档） ---------- */
  --fw-body:    400;   /* 正文、导语、规格数值 */
  --fw-heading: 470;   /* 所有 Schibsted Grotesk 标题 */
  --fw-strong:  600;   /* 按钮文字、Geist Mono 标签 */

  /* ---------- 行长（按字符数） ---------- */
  --measure-body:    68ch;
  --measure-lead:    52ch;
  --measure-display: 16ch;

  /* ---------- 段落流 ---------- */
  --flow-tight: 0.75rem;  /* 12px 标题 → 第一句 */
  --flow-base:  1.25rem;  /* 20px 段落之间 */
  --flow-loose: 2.5rem;   /* 40px 子板块之间 */
}

/* 通用流式间距：容器加 class="flow"，除第一个孩子外每个元素上方留 --flow-base */
.flow > * + * { margin-top: var(--flow-base); }
