/* ============ 设计令牌 · 四套主题 ============ */
:root,
:root[data-theme="paper"] {
  color-scheme: light;
  --bg: #f5efe3;
  --bg-soft: #ece2d0;
  --surface: rgba(255, 252, 245, .86);
  --surface-solid: #fffcf5;
  --surface-2: rgba(255, 255, 255, .52);
  --ink: #2b2620;
  --ink-soft: #6b6054;
  --ink-faint: #9b9080;
  --accent: #a4443a;
  --accent-2: #c08a4a;
  --accent-soft: rgba(164, 68, 58, .11);
  --line: rgba(74, 60, 44, .16);
  --line-strong: rgba(74, 60, 44, .3);
  --shadow: 0 20px 55px rgba(78, 60, 40, .15);
  --shadow-soft: 0 8px 24px rgba(78, 60, 40, .09);
  --paper-tint: rgba(255, 252, 244, .6);
  --blob-a: rgba(164, 68, 58, .11);
  --blob-b: rgba(190, 150, 88, .13);
  --blob-c: rgba(96, 116, 100, .1);
  --grain-opacity: .34;
}

:root[data-theme="jade"] {
  color-scheme: light;
  --bg: #edf2ea;
  --bg-soft: #dfe9dd;
  --surface: rgba(250, 253, 248, .88);
  --surface-solid: #fafdf8;
  --surface-2: rgba(255, 255, 255, .55);
  --ink: #23372e;
  --ink-soft: #5b7166;
  --ink-faint: #8a9b90;
  --accent: #37735c;
  --accent-2: #7a9a6a;
  --accent-soft: rgba(55, 115, 92, .12);
  --line: rgba(45, 82, 64, .17);
  --line-strong: rgba(45, 82, 64, .32);
  --shadow: 0 20px 55px rgba(38, 76, 58, .15);
  --shadow-soft: 0 8px 24px rgba(38, 76, 58, .08);
  --paper-tint: rgba(248, 253, 246, .6);
  --blob-a: rgba(55, 115, 92, .12);
  --blob-b: rgba(122, 154, 106, .14);
  --blob-c: rgba(96, 130, 150, .1);
  --grain-opacity: .22;
}

:root[data-theme="night"] {
  color-scheme: dark;
  --bg: #13161c;
  --bg-soft: #1c212a;
  --surface: rgba(32, 37, 46, .86);
  --surface-solid: #1e232c;
  --surface-2: rgba(255, 255, 255, .04);
  --ink: #e4ded2;
  --ink-soft: #aaa496;
  --ink-faint: #76736d;
  --accent: #d0ae72;
  --accent-2: #8fa8b8;
  --accent-soft: rgba(208, 174, 114, .13);
  --line: rgba(226, 214, 190, .14);
  --line-strong: rgba(226, 214, 190, .3);
  --shadow: 0 22px 60px rgba(0, 0, 0, .48);
  --shadow-soft: 0 8px 26px rgba(0, 0, 0, .3);
  --paper-tint: rgba(255, 255, 255, .025);
  --blob-a: rgba(208, 174, 114, .09);
  --blob-b: rgba(105, 140, 170, .1);
  --blob-c: rgba(150, 110, 130, .08);
  --grain-opacity: .14;
}

:root[data-theme="magazine"] {
  color-scheme: light;
  --bg: #f6f6f4;
  --bg-soft: #e9e9e6;
  --surface: rgba(255, 255, 255, .92);
  --surface-solid: #ffffff;
  --surface-2: rgba(255, 255, 255, .7);
  --ink: #17181b;
  --ink-soft: #5c5f65;
  --ink-faint: #9a9da3;
  --accent: #d4503c;
  --accent-2: #2f4858;
  --accent-soft: rgba(212, 80, 60, .1);
  --line: rgba(30, 32, 36, .13);
  --line-strong: rgba(30, 32, 36, .28);
  --shadow: 0 22px 55px rgba(30, 32, 36, .13);
  --shadow-soft: 0 8px 22px rgba(30, 32, 36, .07);
  --paper-tint: rgba(255, 255, 255, .7);
  --blob-a: rgba(212, 80, 60, .075);
  --blob-b: rgba(47, 72, 88, .08);
  --blob-c: rgba(120, 120, 120, .07);
  --grain-opacity: .1;
}

:root {
  --serif: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  --mono: "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --topbar-h: 72px;
  --radius: 16px;
  --radius-lg: 26px;
  --anim-scale: 1;
  --reader-font-size: 19px;
  --reader-line-height: 1.95;
  --reader-letter-spacing: 0em;
  --reader-width: 720px;
}

/* 主题变量不参与 transition，靠过渡层遮盖，避免大面积重绘闪烁 */
body { background-color: var(--bg); color: var(--ink); }
body.theme-fading .view, body.theme-fading .topbar, body.theme-fading .reader-dock {
  opacity: .35;
  transition: opacity .2s ease;
}
