/* Design tokens: colour, type, spacing, motion */
:root {
  /* Colour */
  --color-paper:     oklch(15% 0.022 250);
  --color-paper-2:   oklch(20% 0.024 250);
  --color-paper-3:   oklch(25% 0.026 250);
  --color-rule:      oklch(33% 0.024 245);
  --color-rule-2:    oklch(48% 0.020 240);
  --color-muted:     oklch(66% 0.018 240);
  --color-ink-2:     oklch(86% 0.010 230);
  --color-ink:       oklch(95% 0.008 230);
  --color-accent:    oklch(72% 0.16 220);
  --color-accent-2:  oklch(80% 0.12 220);
  --color-on-accent: oklch(17% 0.03 245);
  --color-focus:     oklch(78% 0.16 220);
  --color-bloom:     oklch(45% 0.13 228 / 0.28);
  --color-bloom-2:   oklch(40% 0.10 260 / 0.20);
  --color-veil:      oklch(15% 0.022 250 / 0.72);
  --color-shadow:    oklch(8% 0.02 250 / 0.5);

  /* Type */
  --font-display: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, monospace;

  --text-2xs:  0.75rem;
  --text-xs:   0.8125rem;
  --text-sm:   0.9375rem;
  --text-base: 1.0625rem;
  --text-md:   1.25rem;
  --text-lg:   1.5rem;
  --text-xl:   clamp(1.875rem, 2vw + 1.25rem, 2.75rem);
  --text-display: clamp(2.5rem, 5vw + 1rem, 5rem);

  --tracking-display: -0.035em;
  --tracking-tight:   -0.02em;
  --tracking-label:   0.08em;

  --lh-display: 1.02;
  --lh-head:    1.1;
  --lh-body:    1.6;
  --measure:    62ch;

  /* Space (4 pt) */
  --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;
  --page-gutter: clamp(1rem, 5vw, 4rem);
  --page-max: 76rem;

  /* Rules & radius */
  --rule-hair: 1px;
  --radius-card: 14px;
  --radius-node: 10px;
  --radius-pill: 999px;

  /* Motion */
  --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 */
  --z-base:   1;
  --z-raised: 10;
  --z-sticky: 200;
}
