/* Hallmark · genre: editorial · macrostructure: Index-First / Workbench / Long Document · design-system: design.md · designed-as-app
 * theme: custom · vibe: pixel tea, signal green, hard black · anchor hue: phosphor green
 * critique: Philosophy 5 · Hierarchy 5 · Execution 4 · Specificity 5 · Restraint 4 · Variety 5
 */
:root {
  --color-paper: oklch(98.93% 0.0189 140.5);
  --color-paper-2: oklch(96.11% 0.0269 140.18);
  --color-paper-3: oklch(91.68% 0.0255 139.83);
  --color-ink: oklch(0% 0 0);
  --color-ink-2: oklch(23.06% 0.0402 145.35);
  --color-neutral: oklch(45% 0.052 144.5);
  --color-muted: oklch(38% 0.046 144.8);
  --color-rule: oklch(29.16% 0.0568 144.71);
  --color-rule-2: oklch(82% 0.035 140.5);
  --color-accent: oklch(64.52% 0.2174 142.79);
  --color-accent-strong: oklch(43% 0.15 142.8);
  --color-accent-ink: oklch(0% 0 0);
  --color-focus: oklch(0% 0 0);
  --color-positive: oklch(64.52% 0.2174 142.79);
  --color-warning: oklch(88.48% 0.1816 94.9);
  --color-danger: oklch(57% 0.22 29);
  --color-overlay: oklch(0% 0 0 / 68%);
  --color-dark-surface: oklch(0% 0 0);
  --color-on-dark: oklch(100% 0 0);
  --color-on-dark-muted: oklch(91.68% 0.0255 139.83);
  --color-on-dark-accent: oklch(88.48% 0.1816 94.9);
  --color-brand-green: oklch(64.52% 0.2174 142.79);
  --color-tea: oklch(88.48% 0.1816 94.9);
  --color-tea-deep: oklch(81.68% 0.1701 78.32);
  --color-white: oklch(100% 0 0);
  --color-black: oklch(0% 0 0);

  --font-display: "Arial Black", "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-body:
    "Avenir Next", "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-mono: var(--font-body);

  --text-xs: 0.64rem;
  --text-sm: 0.8rem;
  --text-base: 1rem;
  --text-md: 1.25rem;
  --text-lg: 1.5625rem;
  --text-xl: 1.9531rem;
  --text-2xl: 2.4414rem;
  --text-3xl: 3.0518rem;
  --text-4xl: 3.8147rem;
  --text-display: clamp(2.75rem, 5vw + 1rem, 5.25rem);

  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  --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-micro: 120ms;
  --dur-short: 220ms;
  --dur-long: 420ms;

  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;

  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;
  --rule-hair: 1px;
  --page-gutter: clamp(1rem, 4vw, 4rem);
  --shell: 1280px;

  /* Compatibility aliases for the existing public component layer. */
  --canvas: var(--color-paper);
  --surface: var(--color-paper);
  --surface-2: var(--color-paper-2);
  --surface-soft: var(--color-paper-2);
  --text: var(--color-ink);
  --muted: var(--color-muted);
  --quiet: var(--color-neutral);
  --border: var(--color-rule);
  --border-soft: var(--color-rule-2);
  --accent: var(--color-accent);
  --accent-strong: var(--color-accent-strong);
  --fact: var(--color-positive);
  --analysis: var(--color-accent-strong);
  --forecast: var(--color-warning);
  --impact: var(--color-accent);
  --danger: var(--color-danger);
  --shadow: none;
  --font: var(--font-body);
  --display: var(--font-display);
  --mono: var(--font-mono);
  --space-section: clamp(4rem, 7vw, 6rem);
  --space-page-end: clamp(5.5rem, 10vw, 8rem);
  --drawer-width: 48.75rem;
  color-scheme: light;
}

[data-theme="midnight"] {
  --color-paper: oklch(8% 0.018 145);
  --color-paper-2: oklch(13% 0.028 145);
  --color-paper-3: oklch(18% 0.04 145);
  --color-ink: oklch(100% 0 0);
  --color-ink-2: oklch(91.68% 0.0255 139.83);
  --color-neutral: oklch(72% 0.055 142);
  --color-muted: oklch(76% 0.045 142);
  --color-rule: oklch(42% 0.11 142.8);
  --color-rule-2: oklch(26% 0.07 144);
  --color-accent: oklch(64.52% 0.2174 142.79);
  --color-accent-strong: oklch(88.48% 0.1816 94.9);
  --color-accent-ink: oklch(0% 0 0);
  --color-focus: oklch(88.48% 0.1816 94.9);
  --color-positive: oklch(64.52% 0.2174 142.79);
  --color-warning: oklch(88.48% 0.1816 94.9);
  --color-danger: oklch(70% 0.18 29);
  --color-overlay: oklch(0% 0 0 / 78%);
  color-scheme: dark;
}

[data-theme="signal"] {
  --color-paper: oklch(64.52% 0.2174 142.79);
  --color-paper-2: oklch(72% 0.19 142.8);
  --color-paper-3: oklch(78% 0.16 142.6);
  --color-ink: oklch(0% 0 0);
  --color-ink-2: oklch(18% 0.04 145);
  --color-neutral: oklch(28% 0.07 144);
  --color-muted: oklch(24% 0.06 144);
  --color-rule: oklch(0% 0 0);
  --color-rule-2: oklch(43% 0.15 142.8);
  --color-accent: oklch(88.48% 0.1816 94.9);
  --color-accent-strong: oklch(0% 0 0);
  --color-accent-ink: oklch(0% 0 0);
  --color-focus: oklch(0% 0 0);
  color-scheme: light;
}
