/* Hallmark · tokens · genre: atmospheric · theme: Midnight (anchor hue 40)
 * paper-band: dark (L 13%) · display-style: display-condensed (roman) · accent-hue: warm (52°)
 * Portable design system for VÖLUND ADDITIVE. Every colour and font in site.css
 * references a token from this file — no inline values anywhere.
 */

:root {
  /* ---- Paper / ink / neutrals — all tinted toward the ember anchor (hue 40) ---- */
  --color-paper:        oklch(13% 0.008 40);   /* basalt, never #000 */
  --color-paper-2:      oklch(17% 0.010 40);   /* elevation 1 — cards */
  --color-paper-3:      oklch(21% 0.011 40);   /* elevation 2 — hover, banner */
  --color-rule:         oklch(30% 0.008 40);   /* hairlines */
  --color-rule-strong:  oklch(50% 0.010 40);   /* marquee divider + input borders — 3.4:1 on paper */
  --color-neutral:      oklch(62% 0.008 40);   /* meta — 4.5:1 on paper-2, the darkest card it sits on */
  --color-muted:        oklch(74% 0.006 40);   /* secondary prose */
  --color-ink:          oklch(94% 0.006 80);   /* primary text, never #fff */

  /* ---- Accent — ember. One hue. Kept under ~3% of any viewport. ---- */
  --color-accent:       oklch(70% 0.17 52);
  --color-accent-quiet: oklch(48% 0.10 52);
  --color-accent-ink:   oklch(13% 0.008 40);   /* text on an accent fill — 7.1:1 */
  --color-focus:        oklch(80% 0.17 55);

  /* ---- Semantic states ---- */
  --color-error:        oklch(66% 0.18 25);
  --color-success:      oklch(74% 0.12 145);

  /* ---- Overlay (modifier, not a palette colour) ---- */
  --scrim-fold:         oklch(13% 0.008 40 / 0.62);
  --scrim-banner:       oklch(13% 0.008 40 / 0.82);

  /* ---- Type ---- */
  --font-display: "Big Shoulders Display", "Oswald", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SFMono-Regular", monospace;

  /* Major-third scale (1.25) from a 16px body */
  --text-2xs:       0.625rem;  /* 10px — the floor; tracked labels only */
  --text-xs:        0.75rem;
  --text-sm:        0.8125rem;
  --text-base:      1rem;
  --text-md:        1.25rem;
  --text-lg:        1.5625rem;
  --text-xl:        1.9531rem;
  --text-2xl:       2.4414rem;
  --text-3xl:       3.0518rem;
  --text-display:   clamp(2.75rem, 7vw + 1rem, 6rem);
  --text-display-s: clamp(2.25rem, 4.5vw + 1rem, 3.75rem);

  /* ---- Space — 4pt base, named by role ---- */
  --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;

  /* ---- Rules ---- */
  --rule-hair:  1px;
  --rule-thick: 3px;

  /* ---- Radius — machined, not rounded ---- */
  --radius-none: 0;
  --radius-sm:   2px;
  --radius-md:   3px;

  /* ---- 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 scale — six named levels ---- */
  --z-base:     1;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-modal:    400;
  --z-toast:    500;
  --z-tooltip:  600;

  /* ---- Measure ---- */
  --measure: 62ch;
  --page-max: 78rem;
  --page-pad: clamp(1.25rem, 4vw, 3rem);
}
