/* Parkstory — design tokens
 * Dark canvas, Geist + Geist Mono, one orange accent matched to the logo.
 */
:root {
  color-scheme: dark;

  /* Colour — dark paper tinted toward the amber anchor (hue 55) */
  --color-paper:      oklch(14%  0.010 55);
  --color-paper-2:    oklch(17.5% 0.011 55);
  --color-paper-3:    oklch(21%  0.012 55);
  --color-rule:       oklch(29%  0.010 55);
  --color-rule-2:     oklch(40%  0.010 55);
  --color-neutral:    oklch(64%  0.010 55);
  --color-muted:      oklch(78%  0.008 55);
  --color-ink:        oklch(95%  0.006 80);
  --color-accent:     oklch(74%  0.170 50);
  --color-accent-ink: oklch(19%  0.030 55);
  --color-bloom-2:    oklch(58%  0.150 30);
  --color-focus:      oklch(82%  0.140 60);
  --color-ok:         oklch(80%  0.130 150);
  --color-error:      oklch(72%  0.160 28);
  --color-shadow:     oklch(8%   0.010 55);

  /* Type — Geist family + Geist Mono for technical labels */
  --font-display: "Geist", ui-sans-serif, sans-serif;
  --font-body:    "Geist", ui-sans-serif, sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, monospace;

  /* Perfect-fourth scale */
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-md:   1.125rem;
  --text-lg:   1.333rem;
  --text-xl:   1.777rem;
  --text-2xl:  2.369rem;
  --text-3xl:  3.157rem;
  --text-display: clamp(2.6rem, 6vw + 0.5rem, 6rem);

  /* 4pt spacing */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs:  0.75rem;
  --space-sm:  1rem;
  --space-md:  1.5rem;
  --space-lg:  2rem;
  --space-xl:  3rem;
  --space-2xl: 4.5rem;
  --space-3xl: 7rem;
  --space-4xl: 10rem;

  --page-max: 76rem;
  --page-gutter: clamp(1rem, 4vw, 2.5rem);

  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-pill: 999px;

  --rule-hair: 1px;

  /* 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;
}
