/* Hallmark · tokens · design-system: design.md · genre: editorial (university press)
 * paper band: light (cool, L 98.5%) · display: roman-serif (Newsreader) · accent hue: cool (cobalt 258°)
 * Colours kept from v1 by client request; the academic register lives in type + structure.
 */
:root {
  /* ---------- Colour · paper + ink (cool, hue ~250–262) ---------- */
  --color-paper:        oklch(98.5% 0.004 250);
  --color-paper-2:      oklch(96.6% 0.006 252);
  --color-paper-3:      oklch(94.2% 0.009 254);
  --color-rule:         oklch(90.5% 0.009 255);
  --color-rule-2:       oklch(84% 0.012 256);
  --color-muted:        oklch(50% 0.018 257);
  --color-ink-2:        oklch(34% 0.02 258);
  --color-ink:          oklch(22% 0.03 260);

  /* ---------- Colour · the one signal ---------- */
  --color-accent:       oklch(53% 0.2 258);
  --color-accent-hover: oklch(46% 0.19 259);
  --color-accent-ink:   oklch(98.5% 0.004 250);
  --color-accent-soft:  oklch(94.5% 0.03 256);
  --color-focus:        oklch(53% 0.2 258);

  /* ---------- Colour · navy band (PRD "dark section", used once per page) ---------- */
  --color-navy:         oklch(22% 0.045 262);
  --color-navy-2:       oklch(27% 0.05 262);
  --color-navy-rule:    oklch(36% 0.045 262);
  --color-on-navy:      oklch(95% 0.008 250);
  --color-on-navy-2:    oklch(78% 0.022 255);
  --color-cyan:         oklch(80% 0.12 222);

  /* ---------- Colour · feedback ---------- */
  --color-danger:       oklch(50% 0.19 27);
  --color-danger-soft:  oklch(95.5% 0.025 27);
  --color-success:      oklch(47% 0.12 158);
  --color-success-soft: oklch(95.5% 0.03 158);
  --color-wa:           oklch(72% 0.17 150);   /* WhatsApp glyph only */
  --color-scrim:        oklch(22% 0.045 262 / 0.32);
  --color-placeholder:  oklch(92.5% 0.008 255);

  /* ---------- Type ---------- */
  --font-display: "Newsreader", "Iowan Old Style", Georgia, serif;
  --font-body:    "Instrument Sans", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;  /* DOI + URLs only */

  --text-sm:      0.8125rem;                               /* 13px · labels, meta */
  --text-base:    1rem;                                    /* 16px · body */
  --text-md:      clamp(1.125rem, 0.4vw + 1rem, 1.25rem);  /* lede, h3 */
  --text-2xl:     clamp(1.875rem, 2.2vw + 1rem, 2.75rem);  /* section h2 */
  --text-display: clamp(2.75rem, 5vw + 1rem, 5.25rem);     /* hero h1 */
  --text-display-s: clamp(2.25rem, 3.4vw + 1rem, 3.75rem); /* page h1 */
  --text-lg:      clamp(1.375rem, 1vw + 1rem, 1.75rem);    /* h3 serif, pull statements */

  /* ---------- Space (4pt) ---------- */
  --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;

  --page-max:    74rem;
  --measure:     64ch;
  --page-gutter: clamp(1rem, 4vw, 2.5rem);
  --nav-h:       4rem;

  /* ---------- Shape ---------- */
  --radius-sm: 3px;     /* buttons, inputs */
  --radius-md: 4px;     /* figures, CTA box */
  --rule-hair: 1px;
  --rule-double: 3px;   /* double rule = two hairlines, 1px gap */
  --shadow-whisper: 0 1px 2px oklch(22% 0.03 260 / 0.06);
  --shadow-lift:    0 12px 28px -16px oklch(22% 0.03 260 / 0.28);
  --shadow-paper:   0 1px 0 var(--color-rule), 0 18px 40px -28px oklch(22% 0.03 260 / 0.35);

  /* ---------- 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;

  /* ---------- Layers ---------- */
  --z-base:     1;
  --z-raised:   10;
  --z-dropdown: 100;
  --z-sticky:   200;
  --z-modal:    400;
  --z-toast:    500;
  --z-tooltip:  600;
  /* ---------- Background texture (v3: subtle grid + soft gradients) ---------- */
  --grid-size:      44px;
  --grid-line:      oklch(53% 0.2 258 / 0.075);
  --grid-line-navy: oklch(80% 0.12 222 / 0.09);
  --dot:            oklch(53% 0.2 258 / 0.13);
  --glow-accent:    oklch(62% 0.19 258 / 0.16);
  --glow-cyan:      oklch(82% 0.12 215 / 0.22);
  --glow-navy-cyan: oklch(80% 0.12 222 / 0.16);
  --glow-navy-blue: oklch(53% 0.2 258 / 0.35);
  --surface-card:   linear-gradient(180deg, oklch(100% 0 0) 0%, var(--color-paper) 100%);
}
