:root {
  /* Brand palette - Himalayan */
  --brand-50: #f0f4f8;
  --brand-100: #d9e2ec;
  --brand-200: #bcccdc;
  --brand-300: #9fb3c8;
  --brand-400: #829ab1;
  --brand-500: #627d98;
  --brand-600: #486581;
  --brand-700: #334e68;
  --brand-800: #243b53;
  --brand-900: #102a43;
  --brand: var(--brand-600);
  --brand-ink: #ffffff;
  /* Neutrals */
  --bg: #faf9f7;
  --surface: #ffffff;
  --surface-2: #f3f2ef;
  --surface-3: #e8e6e1;
  --border: #d4d2cb;
  --border-strong: #b0ada5;
  --border-focus: var(--brand-500);
  --ink: #1a1a18;
  --ink-2: #3a3a36;
  --ink-muted: #7a7870;
  --ink-inverse: #faf9f7;
  /* Semantic */
  --success: #2e7d32;
  --success-ink: #ffffff;
  --warning: #f9a825;
  --warning-ink: #1a1a18;
  --danger: #c62828;
  --danger-ink: #ffffff;
  --info: #1565c0;
  --info-ink: #ffffff;
  /* Radii */
  --r-xs: 4px;
  --r-sm: 6px;
  --r: 8px;
  --r-lg: 12px;
  --r-xl: 16px;
  --r-2xl: 24px;
  --r-pill: 9999px;
  /* Space (4px base) */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;
  --s-24: 96px;
  --s-32: 128px;
  /* Type */
  --font-display: 'Playfair Display', serif;
  --font-sans: 'Work Sans', sans-serif;
  --font-mono: 'Courier New', monospace;
  --fs-xs: 0.75rem;
  --fs-sm: 0.875rem;
  --fs-base: 1rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.25rem;
  --fs-2xl: 1.5rem;
  --fs-3xl: 2rem;
  --fs-4xl: 2.5rem;
  --fs-5xl: 3.5rem;
  --fs-6xl: 5rem;
  --lh-tight: 1.1;
  --lh-snug: 1.3;
  --lh-normal: 1.5;
  --lh-relaxed: 1.7;
  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.05em;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  /* Elevation */
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow: 0 2px 6px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.1);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
  --shadow-xl: 0 16px 48px rgba(0,0,0,0.16);
  --shadow-brand: 0 4px 20px rgba(98,125,152,0.2);
  /* Motion */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast: 150ms;
  --dur: 250ms;
  --dur-slow: 400ms;
  /* Focus */
  --ring: 0 0 0 3px color-mix(in oklab, var(--brand) 35%, transparent);
}
[data-theme="dark"] {
  --bg: #1a1a18;
  --surface: #2a2a26;
  --surface-2: #22221e;
  --surface-3: #1e1e1a;
  --border: #3a3a36;
  --border-strong: #5a5a54;
  --ink: #faf9f7;
  --ink-2: #d4d2cb;
  --ink-muted: #8a887f;
  --ink-inverse: #1a1a18;
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.3);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.4);
  --shadow: 0 2px 6px rgba(0,0,0,0.5);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.6);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.7);
  --shadow-xl: 0 16px 48px rgba(0,0,0,0.8);
  --shadow-brand: 0 4px 20px rgba(98,125,152,0.4);
}