:root {
  color-scheme: light;

  --color-brand: oklch(56% 0.145 245);
  --color-brand-deep: oklch(48% 0.155 245);
  --color-brand-soft: oklch(91% 0.045 245);
  --color-brand-veil: oklch(88% 0.055 245 / 0.32);
  --color-bg: oklch(97.5% 0.008 245);
  --color-bg-subtle: oklch(95.5% 0.012 245);
  --color-surface: oklch(99% 0.006 245);
  --color-surface-raised: oklch(98.2% 0.01 245);
  --color-text-primary: oklch(22% 0.018 245);
  --color-text-secondary: oklch(42% 0.022 245);
  --color-text-tertiary: oklch(58% 0.018 245);
  --color-border: oklch(87% 0.018 245);
  --color-border-strong: oklch(76% 0.028 245);
  --color-success: oklch(58% 0.13 155);
  --color-success-soft: oklch(94% 0.035 155);
  --color-warning: oklch(67% 0.14 75);
  --color-warning-soft: oklch(94% 0.045 75);
  --color-danger: oklch(58% 0.18 28);
  --color-danger-soft: oklch(94% 0.045 28);

  --font-display: "IBM Plex Sans", "Avenir Next", sans-serif;
  --font-body: "IBM Plex Sans", "Avenir Next", sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;

  --font-size-display: clamp(2rem, 4vw, 3.25rem);
  --font-size-headline: clamp(1.5rem, 2.4vw, 2.25rem);
  --font-size-title: 1.125rem;
  --font-size-body: 1rem;
  --font-size-supporting: 0.875rem;
  --font-size-label: 0.75rem;
  --font-size-micro: 0.6875rem;
  --font-size-mono: 0.875rem;

  --font-weight-display: 650;
  --font-weight-headline: 620;
  --font-weight-title: 600;
  --font-weight-body: 400;
  --font-weight-label: 600;
  --font-weight-mono: 450;

  --line-height-display: 1.05;
  --line-height-headline: 1.14;
  --line-height-title: 1.3;
  --line-height-body: 1.6;
  --line-height-supporting: 1.5;
  --line-height-mono: 1.55;

  --space-xs: 8px;
  --space-sm: 14px;
  --space-md: 22px;
  --space-lg: 32px;
  --space-xl: 48px;
  --space-2xl: 72px;
  --space-3xl: 112px;

  --radius-none: 0;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 18px;

  --motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --motion-ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
  --motion-duration-fast: 150ms;
  --motion-duration-base: 300ms;
  --motion-duration-slow: 600ms;

  --shadow-hover-lift: 0 8px 24px -16px rgba(15, 42, 68, 0.24), 0 1px 2px rgba(15, 42, 68, 0.08);
  --shadow-focus-ring: 0 0 0 3px var(--color-brand-veil);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-duration-fast: 0ms;
    --motion-duration-base: 0ms;
    --motion-duration-slow: 0ms;
  }
}
