/* Hallmark · theme: Newsprint · genre: editorial
 * axes — paper band: light, warm (96.5%) · display: roman serif (Newsreader)
 *        accent hue: warm (brick, 32°)
 *
 * A printed research note. Two serifs carry the reading, a sans carries the
 * label voice, and figures are set in tabular lining numerals so columns line
 * up the way they do in a printed table. The signal ink is spent on direction
 * and comparison only — never on decoration, never as a filled panel.
 */

:root {
  /* ---- the sheet --------------------------------------------------------
     Warm off-white, the colour of stock rather than of a screen. Three steps
     only; anything that needs more separation gets a rule, not a tint. */
  --color-paper: oklch(96.8% 0.006 85);
  --color-paper-2: oklch(94.6% 0.007 85);
  --color-paper-3: oklch(92.2% 0.008 85);
  --color-ink: oklch(19% 0.012 75);
  --color-ink-soft: oklch(32% 0.010 75);
  --color-muted: oklch(52% 0.011 75);
  --color-rule: oklch(85% 0.008 85);
  --color-rule-strong: oklch(19% 0.012 75);

  /* ---- the signal ink ---------------------------------------------------
     One warm brick. It marks comparisons, indices and the direction of travel.
     It never fills a band and never sets a heading. */
  --color-accent: oklch(45% 0.13 32);
  --color-accent-soft: oklch(45% 0.13 32 / 0.10);
  --color-accent-ink: var(--color-paper);
  --color-focus: oklch(45% 0.13 32);

  /* Direction pair. The positive is the signal; the negative is ink stepped
     back, so a chart never introduces a second hue. */
  --color-pos: oklch(45% 0.13 32);
  --color-neg: oklch(58% 0.014 75);

  /* Plot furniture — axes, gridlines, plotted series. */
  --color-plot: oklch(30% 0.012 75);
  --color-plot-2: oklch(62% 0.012 75);
  --color-grid: oklch(88% 0.007 85);

  /* ---- type ------------------------------------------------------------- */
  --font-display: 'Newsreader', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-body: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-label: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;
  /* Figures live in the label face: it has true tabular lining numerals, which
     is what makes a column of numbers read as a column. */
  --font-figure: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;

  --display-weight: 500;
  --tracking-display: -0.014em;
  --tracking-label: 0.1em;

  --text-2xs: 0.625rem;
  --text-xs: 0.6875rem;
  --text-sm: 0.8125rem;
  --text-md: 0.9375rem;
  --text-lg: 1.0625rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.875rem;
  --text-3xl: 2.5rem;
  --text-display: clamp(2.25rem, 5vw, 4rem);

  --leading-tight: 1.1;
  --leading-body: 1.6;
  --measure: 66ch;

  /* ---- space (4pt scale) ------------------------------------------------ */
  --space-3xs: 4px;
  --space-2xs: 8px;
  --space-xs: 12px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 36px;
  --space-xl: 56px;
  --space-2xl: 80px;
  --space-3xl: 112px;

  --page-gutter: clamp(16px, 4vw, 44px);
  --shell: 1180px;

  --rule-hair: 1px;
  --rule-bold: 2px;
  --radius-card: 0;
  --shadow-card: none;

  /* ---- motion -----------------------------------------------------------
     Newsprint is a print metaphor: the page does not move. What remains is the
     minimum needed to answer a pointer. */
  --ease: cubic-bezier(0.2, 0, 0.2, 1);
  --dur: 0.12s;
}
