:root {
  --ink-900: #173b31;
  --ink-700: #36584e;
  --ink-500: #607970;
  --forest-900: #064638;
  --forest-700: #0b674f;
  --forest-500: #27836b;
  --forest-100: #dfeee7;
  --paper-50: #fffef8;
  --paper-100: #f7f6ed;
  --paper-200: #ece9dc;
  --paper-300: #d9d4c3;
  --amber-700: #a95908;
  --amber-500: #d47b12;
  --sun: var(--amber-500);
  --amber-100: #fae8c7;
  --red-700: #a43f32;
  --red-100: #f7dfda;
  --white: #ffffff;
  --overlay: rgba(23, 59, 49, 0.48);
  --shadow-soft: 0 12px 32px rgba(23, 59, 49, 0.12);
  --font-display: "Noto Serif SC", "Songti SC", SimSun, serif;
  --font-body: "Microsoft YaHei UI", "PingFang SC", sans-serif;
  --font-data: "Roboto Mono", "Cascadia Mono", Consolas, monospace;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --focus-ring: 0 0 0 3px var(--amber-500);
  --transition-fast: 160ms ease;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--paper-100); color: var(--ink-900); font-family: var(--font-body); line-height: 1.6; text-rendering: optimizeLegibility; }
:focus-visible { outline: 2px solid var(--amber-500); outline-offset: 3px; box-shadow: var(--focus-ring); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; animation-duration: 0.01ms; animation-iteration-count: 1; transition-duration: 0.01ms; }
}
