/* Diaspora Foods — design tokens · Rebrand v2 "Trade & Provenance"
 *
 * Source of truth: docs/brand-guidelines.md (machine export: assets/design-tokens.json/.css).
 * Warm charcoal canvas, one brass signal, mono detail layer. Every neutral is tinted warm
 * (hue 65–70) so the dark never reads blue-grey.
 *
 * Contrast verified (WCAG, sRGB):
 *   ink/paper 15.6 · ink/paper-2 14.4 · ink/paper-3 13.0 · ink-2/paper 8.9
 *   muted/paper 5.3 · muted/paper-2 4.9 · accent/paper 8.2 · focus/paper 9.4
 */

@font-face {
  font-family: "Instrument Serif";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/instrument-serif.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url("assets/fonts/plexsans-var.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/plexsans-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/plexmono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/plexmono-500.woff2") format("woff2");
}

:root {
  /* colour — warm charcoal base, brass signal */
  --color-paper:      oklch(17% 0.008 65);
  --color-paper-2:    oklch(21% 0.009 65);
  --color-paper-3:    oklch(25% 0.010 65);
  --color-ink:        oklch(93% 0.006 70);
  --color-ink-2:      oklch(76% 0.008 70);
  --color-muted:      oklch(62% 0.008 70);
  --color-rule:       oklch(32% 0.010 65);
  --color-rule-2:     oklch(27% 0.010 65);
  --color-accent:     oklch(74% 0.130 78);
  --color-accent-ink: oklch(17% 0.008 65);
  --color-focus:      oklch(78% 0.160 78);

  /* type — display / body / mono detail (2+1) */
  --font-display: "Instrument Serif", ui-serif, Georgia, serif;
  --font-body:    "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  /* scale — 1.25 major third from 16px */
  --text-xs:   0.8rem;
  --text-sm:   0.9rem;
  --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-s: clamp(2rem, 2.8vw + 1rem, 3.1rem);
  --text-display:   clamp(2.5rem, 4.2vw + 1rem, 5rem);

  /* mono detail layer — docket labels */
  --tracking-label: 0.14em;

  /* space — 4pt scale */
  --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 & radius — the system is square; the stamp is the only circle */
  --rule-hair: 1px;
  --radius-sm: 0;

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

  /* layout */
  --page-gutter: clamp(1rem, 4vw, 4rem);
  --page-max: 88rem;
  --measure: 62ch;
}
