:root{
  /* ── color · light OKX-blue (OKLCH) ── */
  --color-paper:    oklch(98.5% 0.004 256);
  --color-paper-2:  oklch(100% 0 0);
  --color-paper-3:  oklch(96% 0.008 256);
  --color-ink:      oklch(22% 0.02 256);
  --color-ink-2:    oklch(45% 0.015 256);
  --color-ink-3:    oklch(62% 0.013 256);
  --color-line:     oklch(90% 0.010 256);
  --color-line-2:   oklch(83% 0.013 256);
  --color-accent:   oklch(56% 0.190 256);
  --color-accent-2: oklch(64% 0.165 250);
  --color-accent-ink: oklch(99% 0.010 256);
  --color-accent-soft: oklch(95% 0.040 256);
  --color-green:    oklch(56% 0.140 165);
  --color-red:      oklch(58% 0.200 25);
  --color-glow:     oklch(56% 0.190 256 / 0.14);

  /* ── fonts ── */
  --font-display: "Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-body:    "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", system-ui, -apple-system, sans-serif;
  --font-mono:    "JetBrains Mono", "SFMono-Regular", Consolas, Menlo, monospace;

  /* ── type scale ── */
  --text-xs: 12px;
  --text-sm: 13.5px;
  --text-base: 15px;
  --text-lg: 18px;
  --text-xl: 23px;
  --text-2xl: 30px;
  --text-3xl: 40px;
  --text-display: 52px;
  --text-display-s: 38px;

  /* ── space · 4pt ── */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;

  /* ── radius ── */
  --radius-sm: 10px; --radius: 16px; --radius-lg: 22px; --radius-pill: 999px;

  /* ── rules ── */
  --rule: 1px solid var(--color-line);
  --rule-2: 1px solid var(--color-line-2);
  --shadow: 0 14px 40px oklch(40% 0.05 256 / 0.10);
  --shadow-card: 0 6px 20px oklch(40% 0.04 256 / 0.07);
  --shadow-accent: 0 12px 30px oklch(56% 0.190 256 / 0.28);

  /* ── motion ── */
  --ease-out: cubic-bezier(.2,.7,.3,1);
  --ease-in-out: cubic-bezier(.4,0,.2,1);
  --dur-fast: 140ms; --dur: 220ms; --dur-slow: 360ms;
}
