/* Hallmark · route: custom (tuned) · genre: editorial · design-system: design.md
 * paper: oklch(0.09 0.02 145) · accent: oklch(0.72 0.19 142) · echo: oklch(0.78 0.14 155)
 * display: Syne · body: IBM Plex Sans · mono: IBM Plex Mono
 * axes: dark-paper / display-heavy / chromatic-other (green) · gates: all-pass · studied: no
 * pre-emit critique: P5 H5 E5 S5 R5 V5 */

:root {
  --color-paper: oklch(0.09 0.02 145);
  --color-paper-elevated: oklch(0.13 0.03 148);
  --color-ink: oklch(0.96 0.008 145);
  --color-ink-muted: oklch(0.76 0.03 145);
  --color-ink-faint: oklch(0.52 0.04 145);
  --color-rule: oklch(0.22 0.06 145);
  --color-accent: oklch(0.72 0.19 142);
  --color-accent-soft: oklch(0.72 0.19 142 / 0.22);
  --color-echo: oklch(0.78 0.14 155);
  --color-echo-soft: oklch(0.78 0.14 155 / 0.14);
  --color-focus: oklch(0.82 0.16 142);
  --color-surface-glow: oklch(0.72 0.19 142 / 0.16);
  --color-bg-wash-accent: oklch(0.72 0.19 142 / 0.1);
  --color-bg-wash-echo: oklch(0.78 0.14 155 / 0.08);
  --color-shadow: oklch(0.04 0.02 145 / 0.6);
  --color-header-bg: oklch(0.09 0.02 145 / 0.92);

  --font-display: "Syne", system-ui, sans-serif;
  --font-body: "IBM Plex Sans", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --text-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.8125rem);
  --text-sm: clamp(0.875rem, 0.82rem + 0.25vw, 0.9375rem);
  --text-md: clamp(1rem, 0.95rem + 0.3vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.5vw, 1.25rem);
  --text-xl: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);
  --text-2xl: clamp(1.75rem, 1.3rem + 2vw, 2.5rem);
  --text-3xl: clamp(2.25rem, 1.5rem + 3.5vw, 3.75rem);
  --text-4xl: clamp(3rem, 2rem + 5vw, 5rem);

  --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: 4rem;
  --space-3xl: 6rem;

  --page-gutter: clamp(1.25rem, 4vw, 3rem);
  --prose-width: 42ch;
  --content-max: 40rem;
  --rule-hair: 1px;

  --dur-fast: 140ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
