/* Design tokens — copied verbatim from public/v3.css (:root and [data-theme="dark"]). Do not edit here without editing v3.css. */
:root{
  /* Surface & neutrals —— 冷调鼠尾草：纸是极浅的绿灰，卡片纯白（2026-09-24 按产品原型截图换版） */
  --sage-50:#f4f7f4; --sage-100:#e9f0e9; --sage-200:#dfe7e0; --sage-300:#aebbb0;
  --sage-400:#8fa094; --sage-500:#646e66;
  --forest-600:#3a423c; --forest-700:#2e3530; --forest-800:#272d29; --forest-900:#212622;
  --white:#ffffff; --cream:#eef4ee; --cream-border:#d8e2d8;

  /* Ink —— 每个值都是"在它实际坐的底色上"搜出来的第一个达 AA 的值，不是挑的。
     --muted / --muted-2 / --sage-500 现在同值：原先那两档结构性地站在 4.5 线下，
     调值治不了，只能取消层级。令牌名保留是因为 30 多处规则在引用它们。 */
  --ink:#28362d; --ink-2:#334236; --ink-3:#566359; --muted:#646e66; --muted-2:#646e66;

  /* Accents —— --terracotta 一个值双用：白字坐其上 5.02，它自己坐纸上 4.65。
     截图原色 #b3644b 白字只有 4.34，压深到 #aa5842 过线（视觉上仍是同一颗陶土红）。 */
  --terracotta:#aa5842; --terracotta-dark:#9c5238; --terracotta-hover:#9c5238;
  --terracotta-soft:#f4e6df; --clay:#7d5f4e; --clay-strong:#aa5842;
  --gold:#c08a68; --gold-soft:#f4e6df; --gold-ink:#9c5238;
  --olive:#4a5f52; --olive-dark:#4a5f52; --olive-soft:#e9f0e9;

  /* Type */
  --font-display:Georgia,"Iowan Old Style","Times New Roman",serif;
  --font-body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* 刻度 = round(16 × (4/3)^(n/2))。相邻"层级"之间必须跨两档（比值 ≥1.333）；
     中间那些半档只许在同一层级内部微调，不得用来制造层级。
     --fs-base 与 --fs-md 同为 16px 是合并：原先 13/14/15 三档彼此只差 7 个百分点，看不出层级。 */
  --fs-xs:12px; --fs-sm:14px; --fs-base:16px; --fs-md:16px; --fs-lg:18px;
  --fs-xl:21px; --fs-2xl:25px; --fs-3xl:28px; --fs-4xl:33px; --fs-5xl:38px;
  /* 可聚焦输入控件专用档，与正文字号是两件事：iOS Safari 在控件字号 <16px 时会
     强制放大整页（focus 的瞬间版面跳一下，且退不回去），这是硬门槛不是审美偏好。
     所有 input / select / textarea 一律用它，不要用 --fs-base / --fs-md。 */
  --fs-control:16px;

  /* 坐在强调色实心块（按钮、徽标）上的前景色。两个主题同值，因为 --terracotta 本身
     两个主题同值——对比度是"前景与背景这一对"的属性，跟周围是亮是暗无关。
     用 --white 是错的：那个令牌在暗色下要翻成夜卡底。 */
  --on-accent:#ffffff;

  /* Space (4px base) —— 从 --s-5 起按约 1.5 倍跳跃，让"同一组"和"分属两组"在间距上看得出差别。
     原先 16/20/24 三档彼此只差两成，实际使用中互相替代，等于只有一档。 */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-9:64px;

  /* Radius / elevation —— 圆角收窄（2026-09-24 按产品原型截图实测：按钮/卡片圆角约 4-6px，
     是「安静的纸质工具」的语汇；药丸只留给圆形控件本身）。 */
  --r-sm:4px; --r:6px; --r-lg:8px; --r-xl:12px;
  /* 阴影改成"两层"：一层贴地的实影交代厚度，一层大范围的软影交代光。
     单层小阴影只能做出"卡片贴在白板上"，做不出"纸落在桌上"。色相随冷调纸色。 */
  --shadow-sm:0 1px 2px rgba(30,38,33,.04), 0 10px 24px -18px rgba(30,38,33,.20);
  --shadow-md:0 2px 4px rgba(30,38,33,.05), 0 20px 40px -22px rgba(30,38,33,.30);
  --shadow-lg:0 30px 84px -30px rgba(20,26,22,.34);

  /* 缓动统一换成缓入缓出：ease 的加速段太陡，元素像被"弹"到位；
     这条曲线起步快、收尾长，停下来的那一下是化开的。时长不变（见测试文件顶部注释）。 */
  --t-fast:150ms cubic-bezier(.22,.8,.3,1); --t:240ms cubic-bezier(.22,.8,.3,1);
  --t-slow:560ms cubic-bezier(.22,.8,.3,1);

  /* 纸与光 —— 图版印在浅绿灰纸上，这个值就是那张纸；页面的暖光与冷光各一层。
     两个主题都必须有定义，理由与上面那组颜色令牌相同。 */
  --plate-mat:#edf2ed;
  --wash-warm:rgba(170,88,66,.06);
  --wash-cool:rgba(74,95,82,.05);
}

/* Night sky mode — the old site's dark toggle, carried over as a token swap */
[data-theme="dark"]{
  --sage-50:#171b18; --sage-100:#1e231f; --sage-200:#2c332e; --sage-300:#3d463f;
  --sage-400:#8fa094; --sage-500:#9aa39c;
  --forest-600:#2c332e; --forest-700:#232824; --forest-800:#1d211e; --forest-900:#171b18;
  --white:#232824; --cream:#232824; --cream-border:#3d463f;
  --ink:#e3e8e3; --ink-2:#c8d0c9; --ink-3:#a3ada5; --muted:#9aa39c; --muted-2:#9aa39c;
  /* 下面这几个原先在这个块里【没有定义】，于是沿用亮色值坐在夜底上——实测 2.57 到 3.61，
     全都在 4.5 线下。这种坏法比"暗色没做"更隐蔽：整页看着是好的，只有个别控件的字读不出来，
     而只有夜里用它的人撞得上。规矩是：任何出现在组件上的颜色，两个主题下都必须有定义。 */
  --clay:#c4a08c; --clay-strong:#ce7c62; --terracotta-dark:#d08a72;
  --gold:#c4a08c; --gold-ink:#d08a72; --gold-soft:#3a2a22; --olive-dark:#6fa3b3;
  --terracotta-soft:#3a2a22; --olive-soft:#232824;
  --shadow-sm:0 1px 2px rgba(0,0,0,.30), 0 10px 26px -18px rgba(0,0,0,.55);
  --shadow-md:0 2px 4px rgba(0,0,0,.34), 0 22px 44px -22px rgba(0,0,0,.62);
  /* 夜里的暖：纯冷的深色读起来是"关机"，加一层琥珀光才像有人把灯留着。 */
  --plate-mat:#20241f;
  --wash-warm:rgba(170,88,66,.08);
  --wash-cool:rgba(74,95,82,.08);
}
