/* Hallmark · route: custom (tuned) · genre: editorial · idea: "the ledger and the stamp"
 * vibe: "accountant's ledger paper, red margin rule, official rubber stamp"
 * paper: oklch(95.6% 0.016 82) · accent: oklch(54% 0.19 31) vermilion (stamp) · accent-2: oklch(41% 0.11 258) ledger blue (links, rules)
 * display: Fraunces (opsz, 300–900) · body: IBM Plex Sans · mono: IBM Plex Mono (codes: BT-10, BR-DE-15, XML)
 * axes: light / soft-serif-heavy / warm-vermilion · studied: no · context: inferred (owner: "make it distinctive")
 */
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 300 900; font-display: swap;
  src: url(/static/fonts/fraunces-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 300 900; font-display: swap;
  src: url(/static/fonts/fraunces-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url(/static/fonts/plexsans-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url(/static/fonts/plexsans-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/static/fonts/plexmono-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(/static/fonts/plexmono-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  /* paper → ink (warm, tinted toward the stamp hue) */
  --color-paper:   oklch(95.6% 0.016 82);
  --color-paper-2: oklch(92.4% 0.020 80);
  --color-sheet:   oklch(97.8% 0.010 85);   /* the "document" surface: forms, tables, the specimen */
  --color-rule:    oklch(78% 0.022 72);
  --color-rule-2:  oklch(86% 0.018 76);
  --color-muted:   oklch(47% 0.020 60);
  --color-ink-2:   oklch(36% 0.020 50);
  --color-ink:     oklch(20% 0.018 45);
  /* two accents, both from a ledger: the red margin rule / stamp, the blue line ruling */
  --color-accent:     oklch(54% 0.19 31);
  --color-accent-ink: oklch(97.8% 0.010 85);
  --color-accent-soft: oklch(92% 0.045 35);
  --color-highlight: oklch(93.5% 0.05 92);   /* highlighter on the ledger: own row in tables */
  --color-ledger:     oklch(41% 0.11 258);
  --color-ledger-faint: oklch(87% 0.035 250);
  --color-focus:      oklch(52% 0.21 31);
  /* semantic */
  --color-ok:       oklch(45% 0.11 150);
  --color-ok-soft:  oklch(92.5% 0.040 145);
  --color-ok-line:  oklch(78% 0.07 150);
  --color-ok-deep:  oklch(33% 0.08 150);
  --color-warn:     oklch(56% 0.13 70);
  --color-bad:      oklch(50% 0.18 28);
  --color-bad-soft: oklch(93% 0.035 30);
  --color-bad-deep: oklch(37% 0.13 28);
  --color-code-bg:  oklch(23% 0.020 45);
  --color-code-ink: oklch(93% 0.014 82);
  --color-scrim:    oklch(20% 0.018 45 / .16);

  --font-display: "Fraunces", ui-serif, Georgia, serif;
  --font-body:    "IBM Plex Sans", ui-sans-serif, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --space-3xs: .25rem; --space-2xs: .5rem; --space-xs: .75rem; --space-sm: 1rem; --space-md: 1.5rem;
  --space-lg: 2rem; --space-xl: 3rem; --space-2xl: 4.5rem; --space-3xl: 7rem;
  --text-sm: .875rem; --text-md: 1.125rem; --text-lg: 1.375rem; --text-xl: 1.75rem; --text-2xl: 2.4rem;
  --text-display: clamp(2.6rem, 4.6vw + 1rem, 5.1rem);
  --text-display-s: clamp(2.2rem, 3.4vw + 1rem, 3.9rem);

  --rule-hair: 1px; --rule-strong: 2px;
  --radius: 3px; --radius-sm: 2px;
  --ease-out: cubic-bezier(.16, 1, .3, 1); --ease-in: cubic-bezier(.7, 0, .84, 0); --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --dur-short: 180ms; --dur-stamp: 420ms;
  --z-menu: 30; --z-banner: 40;

  /* legacy names used across the templates → system tokens */
  --paper: var(--color-paper); --paper-2: var(--color-paper-2); --card: var(--color-sheet); --line: var(--color-rule-2);
  --ink: var(--color-ink); --ink-2: var(--color-ink-2); --ink-3: var(--color-muted);
  --brand: var(--color-ledger); --brand-ink: var(--color-accent-ink); --brand-soft: var(--color-paper-2); --brand-deep: var(--color-ink);
  --ok: var(--color-ok); --ok-soft: var(--color-ok-soft); --ok-line: var(--color-ok-line); --ok-deep: var(--color-ok-deep);
  --warn: var(--color-warn); --bad: var(--color-bad); --bad-soft: var(--color-bad-soft); --bad-deep: var(--color-bad-deep);
  --code-bg: var(--color-code-bg); --code-ink: var(--color-code-ink); --scrim: var(--color-scrim);
  --font: var(--font-body);
}
