:root {
  --bg-l: 0.98;
  --text-l: 0.10;
  --primary-h: 230;
  --global-chroma: 0.3;
  --chroma-gradient: linear-gradient(to right, oklch(0.7 0 230), oklch(0.7 0.3 230));
  --contrast-threshold: 0.6;
  --l-diff: calc(var(--bg-l) - var(--text-l));
  --l-mid: calc(var(--text-l) + var(--l-diff) * 0.5);
  --on-color-l: clamp(0, (var(--l-mid) - var(--contrast-threshold)) * -1000, 1);
  --color-bg: oklch(var(--bg-l) calc(var(--global-chroma) * 0.1) var(--primary-h));
  --color-text: oklch(var(--text-l) calc(var(--global-chroma) * 0.1) var(--primary-h));
  --color-card: oklch(calc(var(--bg-l) - (var(--l-diff) * 0.05)) calc(var(--global-chroma) * 0.15) var(--primary-h));
  --color-gray-light: oklch(0.83 0 0);
  --color-gray-dark: oklch(0.20 0 0);
  --color-gray-light-themed: oklch(0.83 calc(var(--global-chroma) * 0.05) var(--primary-h));
  --color-gray-dark-themed: oklch(0.20 calc(var(--global-chroma) * 0.05) var(--primary-h));
  --on-color: oklch(var(--on-color-l) 0 0);
  --primary:oklch(var(--l-mid) var(--global-chroma) var(--primary-h));
  --secondary: oklch(calc(var(--l-mid) + 0.05) calc(var(--global-chroma) * 0.8) var(--primary-h));
  --success: oklch(calc(var(--l-mid) + 0.02) var(--global-chroma) 145);
  --error: oklch(calc(var(--l-mid) - 0.02) var(--global-chroma) 25);
  --warning: oklch(calc(var(--l-mid) + 0.15) var(--global-chroma) 85);
  --info: oklch(var(--l-mid) var(--global-chroma) 210);
  --accent: oklch(calc(var(--l-mid) + 0.1) var(--global-chroma) calc(var(--primary-h) - 150));
  --cell: 1rem;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg-l: 0.12;
    --text-l: 0.95;
    --global-chroma: 0.22;
  }
}
