:root {
  --color-paper: oklch(98% 0.004 80);
  --color-paper-soft: oklch(96% 0.006 78);
  --color-stage: oklch(96% 0.004 270);
  --color-card: oklch(100% 0 0);
  --color-ink: oklch(25% 0.018 70);
  --color-ink-soft: oklch(47% 0.018 70);
  --color-rule: oklch(88% 0.008 80);
  --color-accent: oklch(45% 0.095 45);
  --color-accent-ink: oklch(100% 0 0);
  --color-focus: oklch(48% 0.12 45);
  --color-preview: oklch(97% 0.008 76);
  --color-preview-2: oklch(92% 0.012 75);
  --color-preview-ink: oklch(34% 0.026 70);
  --color-shadow: oklch(25% 0.018 70 / 0.06);
  --color-shadow-strong: oklch(20% 0.01 70 / 0.07);
  --font-body: var(--font);
  --font-display: var(--font);
  --font-home: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --color-entry-typing: #9186d5;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --text-small: 0.875rem;
  --text-body: 1rem;
  --text-lead: 1.125rem;
  --text-display: clamp(2.65rem, 5vw + 0.6rem, 4.625rem);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-hover: 180ms;
  --dur-panel: 500ms;
  --radius-control: 12px;
  --radius-card: 22px;
  --radius-pill: 999px;
}

html body[data-page="home"] {
  --font-sans: var(--font-home);
  --font-body: var(--font-home);
  --font-display: var(--font-home);
}

html[data-theme="light"] body[data-page="home"] .home-welcome {
  --color-ink: #17191f;
  --color-ink-soft: #626875;
  --color-accent: #6358bd;
  --color-accent-ink: #fff;
  --color-focus: #6b60c6;
  --color-rule: #d8d9e2;
  --color-shadow: rgb(55 63 105 / 0.08);
}

html[data-theme="dark"] body[data-page="home"] {
  --color-paper: oklch(18% 0.012 70);
  --color-paper-soft: oklch(21% 0.012 70);
  --color-stage: oklch(16% 0.008 70);
  --color-card: oklch(23% 0.012 70);
  --color-ink: oklch(95% 0.005 80);
  --color-ink-soft: oklch(74% 0.012 70);
  --color-rule: oklch(36% 0.012 70);
  --color-accent: oklch(73% 0.08 48);
  --color-accent-ink: oklch(18% 0.012 70);
  --color-focus: oklch(79% 0.1 49);
  --color-preview: oklch(27% 0.014 70);
  --color-preview-2: oklch(35% 0.018 70);
  --color-preview-ink: oklch(92% 0.006 80);
  --color-shadow: oklch(0% 0 0 / 0.16);
  --color-shadow-strong: oklch(0% 0 0 / 0.22);
}
