/* Hallmark · tokens · theme: Almanac
 * paper band: light · display style: roman-serif · accent hue: warm (36°)
 * Portable design system for plumvery.dev. Every colour, font, space and
 * duration used by styles.css is declared here and referenced by name.
 */

:root {
  color-scheme: light;

  /* ── Colour ─────────────────────────────────────────────────────────
     Warm-oat paper, ink tinted toward the anchor, one vermilion accent
     held under ~3% of any viewport. No pure black, no pure white.      */
  --color-paper: oklch(97% 0.008 85);
  --color-paper-2: oklch(94.5% 0.01 85);
  --color-paper-3: oklch(91.5% 0.012 82);
  --color-rule: oklch(85% 0.01 80);
  --color-rule-2: oklch(70% 0.014 75);
  /* --color-muted is the floor for text: 44% on 97% paper ≈ 6.5:1.
     Anything lighter fails 4.5:1 at label sizes, so there is no
     lighter text grey in the palette on purpose. */
  --color-muted: oklch(44% 0.014 65);
  --color-ink-2: oklch(33% 0.014 60);
  --color-ink: oklch(22% 0.014 60);
  --color-accent: oklch(45% 0.16 36); /* ≈ 5:1 on paper */
  --color-accent-ink: oklch(97% 0.008 85);
  --color-focus: oklch(45% 0.16 36);

  /* ── Type ───────────────────────────────────────────────────────────
     2 + 1: roman serif display, plex sans body, plex mono outlier.
     The outlier holds exactly two slots — chronological figures
     (year + range) and the colophon. Every other small label is the
     body face, uppercased and tracked out.
     Zen Old Mincho and Zen Kaku Gothic New each carry both scripts,
     so the page is three families, not five. */
  --font-display: "Zen Old Mincho", ui-serif, Georgia, serif;
  --font-body: "Zen Kaku Gothic New", ui-sans-serif, system-ui, sans-serif;
  --font-outlier: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  /* 1.25 major third, 16px base */
  --text-2xs: 0.6875rem;
  --text-xs: 0.8125rem;
  --text-sm: 0.9375rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.375rem;
  --text-xl: 1.75rem;
  --text-2xl: 2.1875rem;
  --text-3xl: 2.75rem;
  --text-display: clamp(2.5rem, 4vw + 1rem, 4.25rem);
  --text-year: clamp(2.25rem, 6vw, 3.25rem);

  --lh-display: 1.14;
  --lh-body: 1.85;
  --lh-tight: 1.45;

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

  /* ── Measure & gutters ─────────────────────────────────────────── */
  --page-gutter: clamp(1.25rem, 5vw, 4.5rem);
  --measure: 42rem;
  --column: 56rem;

  /* ── Rules — hairlines, not card borders ───────────────────────── */
  --rule-hair: 1px;
  --rule-thick: 2px;
  --rule-heavy: 3px;

  /* ── Radius — paper has square corners ─────────────────────────── */
  --radius-none: 0;
  --radius-sm: 2px;

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

  /* ── Depth ─────────────────────────────────────────────────────── */
  --z-base: 1;
  --z-raised: 10;
  --z-sticky: 200;
}
