/* Hallmark · genre: modern-minimal · theme: Quiet (+ cobalt accent) · design-system: design.md
 * Every colour, font, size, space, easing and radius used on the site lives here.
 * Page CSS references these by name only. Change a value here, not in a page.
 */
:root {
  color-scheme: light;

  /* ── Colour · anchor hue 255 (cool neutrals) · accent cobalt, hue 262 ── */
  --color-paper:      oklch(99%   0.003 255);   /* page background */
  --color-paper-2:    oklch(96.8% 0.005 255);   /* sunk bands, figure grounds */
  --color-paper-3:    oklch(94%   0.006 255);   /* hover fill on quiet surfaces */
  --color-rule:       oklch(89%   0.006 255);   /* hairlines, card edges */
  --color-ink:        oklch(19%   0.012 255);   /* text, primary button fill */
  --color-ink-2:      oklch(40%   0.012 255);   /* secondary text */
  --color-ink-3:      oklch(50%   0.010 255);   /* captions, input borders (≥4.5:1 on paper-2) */
  --color-on-ink:     oklch(98.5% 0.004 255);   /* text on ink fills */
  --color-accent:     oklch(50% 0.17 262);   /* links, markers, focus — ≤3% of any view */
  --color-accent-2:   oklch(43% 0.16 262);   /* accent hover / pressed */
  --color-accent-wash:oklch(95.5% 0.025 262);   /* recommended-plan ground, success panel */
  --color-focus:      oklch(50% 0.17 262);

  /* Semantic (scorecard + form states). Always paired with a text label. */
  --color-good:       oklch(50%   0.13  158);   /* stays green: scores read green = good */
  --color-warn:       oklch(62%   0.15  70);
  --color-poor:       oklch(54%   0.19  28);
  --color-poor-wash:  oklch(96%   0.025 28);

  /* ── Type · Geist family only; mono is the outlier (scores + "Media Lab") ── */
  --font-display: "Geist", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;
  --font-body:    "Geist", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Five sizes, major-third ratio */
  --text-sm:      0.875rem;
  --text-base:    1.0625rem;
  --text-lg:      1.5625rem;
  --text-2xl:     2.4414rem;
  --text-display: clamp(2.6rem, 4.2vw + 1rem, 4.75rem);

  --weight-body:  400;
  --weight-head:  700;
  --track-display: -0.035em;
  --track-head:    -0.025em;
  --track-label:    0.14em;

  /* ── Space · 4pt scale ── */
  --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, 4vw, 3rem);
  --page-max:    74rem;
  --measure:     62ch;

  /* ── Shape ── */
  --rule-hair:    1px;
  --radius-card:  10px;
  --radius-input: 8px;
  --radius-pill:  999px;
  --shadow-whisper: 0 1px 2px oklch(19% 0.012 255 / 0.06);
  --shadow-sheet: 0 24px 60px oklch(19% 0.012 255 / 0.18);
  --color-scrim: oklch(19% 0.012 255 / 0.45);   /* dialog backdrop (overlay, so alpha is allowed) */

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

  /* ── Layers ── */
  --z-base:     1;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-modal:    400;
  --z-toast:    500;
}
