:root {
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.375rem;
  --text-xl: 1.75rem;
  --text-2xl: 2.25rem;
  --text-3xl: 3rem;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;

  --lh-body: 1.65;
  --lh-heading: 1.15;
  --lh-ui: 1.4;

  --measure: 68ch;

  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 150ms;
  --dur-med: 250ms;
  --dur-slow: 400ms;

  --font-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;

  --success: oklch(58% 0.13 150);
  --danger: oklch(55% 0.18 25);
  --warning: oklch(70% 0.14 85);

  --accent: oklch(62% 0.13 75);
  --accent-strong: oklch(55% 0.14 75);
}

:root,
:root[data-theme="light"] {
  --bg: oklch(98.5% 0.008 75);
  --bg-soft: oklch(96% 0.008 75);
  --border: oklch(90% 0.008 75);
  --text-muted: oklch(55% 0.008 75);
  --text: oklch(22% 0.008 75);
  --text-strong: oklch(12% 0.008 75);
  --accent-soft: oklch(92% 0.04 75);
  --shadow-card: 0 4px 20px -8px oklch(0% 0 0 / 0.12);
  color-scheme: light;
}

:root[data-theme="dark"] {
  --bg: oklch(14% 0.008 75);
  --bg-soft: oklch(18% 0.008 75);
  --border: oklch(26% 0.008 75);
  --text-muted: oklch(62% 0.008 75);
  --text: oklch(88% 0.008 75);
  --text-strong: oklch(98% 0.008 75);
  --accent-soft: oklch(30% 0.06 75);
  --shadow-card: 0 4px 20px -8px oklch(0% 0 0 / 0.45);
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --bg: oklch(14% 0.008 75);
    --bg-soft: oklch(18% 0.008 75);
    --border: oklch(26% 0.008 75);
    --text-muted: oklch(62% 0.008 75);
    --text: oklch(88% 0.008 75);
    --text-strong: oklch(98% 0.008 75);
    --accent-soft: oklch(30% 0.06 75);
    --shadow-card: 0 4px 20px -8px oklch(0% 0 0 / 0.45);
    color-scheme: dark;
  }
}
