/* ============================================================
   Michael Miner · Design Tokens
   Direction A: Small-Press Imprint discipline. Single-serif
   EB Garamond throughout. Forest green accent. No mono.
   Locked 2026-05-05 in brief revision.
   ============================================================ */

:root {
	/* === Color (Penguin Classics / NYRB / Library of America) === */
	--color-bg: #FAF6EE;              /* paper cream, unchanged */
	--color-bg-elevated: #FFFDF7;
	--color-bg-tinted: #F2EBDC;       /* alternate-row stripe, subtle */
	--color-fg: #1A1410;              /* warm near-black ink, unchanged */
	--color-fg-secondary: #4a3f37;
	--color-fg-muted: #76685c;
	--color-fg-quaternary: rgba(26, 20, 16, 0.45);
	--color-border: #d8cbb6;
	--color-border-strong: #b39d7a;

	/* Accent: deep forest green. Period Victorian-binding character.
	   Used SPARINGLY: section anchors, link underlines, button hover, drop caps. */
	--color-accent: #1F3D2C;
	--color-accent-hover: #152D1F;
	--color-accent-soft: #3D5A40;
	--color-accent-fg: #FAF6EE;

	/* Quiet darker tone for any single ink-toned moment (footer only).
	   Not used for alternating section spreads. */
	--ink-bg: #1A1410;
	--ink-fg: #FAF6EE;
	--ink-fg-secondary: rgba(250, 246, 238, 0.78);
	--ink-fg-muted: rgba(250, 246, 238, 0.52);
	--ink-border: rgba(250, 246, 238, 0.14);
	--ink-accent: #6B8C72;            /* soft moss for dark backgrounds */

	/* === Type — single family discipline ===
	   EB Garamond carries display, body, and small-caps eyebrow.
	   Variables kept for backwards-compat with components.css; all
	   point at the same family. */
	--font-display: 'EB Garamond', 'Adobe Garamond Pro', Garamond, Georgia, 'Times New Roman', serif;
	--font-body: 'EB Garamond', 'Adobe Garamond Pro', Garamond, Georgia, 'Times New Roman', serif;
	--font-mono: 'EB Garamond', 'Adobe Garamond Pro', Garamond, Georgia, 'Times New Roman', serif;
	--font-serif: var(--font-body);

	/* Type scale (clamp for fluid). EB Garamond reads slightly larger
	   than Inter at the same px, so body bumps to 1.0625rem default. */
	--text-xs: clamp(0.78rem, 0.74rem + 0.18vw, 0.84rem);
	--text-sm: clamp(0.92rem, 0.86rem + 0.25vw, 0.98rem);
	--text-base: clamp(1.0625rem, 1rem + 0.22vw, 1.15rem);
	--text-lg: clamp(1.2rem, 1.1rem + 0.5vw, 1.3rem);
	--text-xl: clamp(1.35rem, 1.2rem + 0.6vw, 1.5rem);
	--text-2xl: clamp(1.6rem, 1.4rem + 0.8vw, 1.85rem);
	--text-3xl: clamp(2rem, 1.65rem + 1.4vw, 2.55rem);
	--text-4xl: clamp(2.5rem, 2rem + 2.2vw, 3.5rem);
	--text-5xl: clamp(3rem, 2.2rem + 3.4vw, 4.75rem);
	--text-display: clamp(2.5rem, 1.8rem + 4.4vw, 7.5rem);

	/* === Spacing (4px grid) === */
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-8: 32px;
	--space-10: 40px;
	--space-12: 48px;
	--space-16: 64px;
	--space-20: 80px;
	--space-24: 96px;
	--space-32: 128px;
	--space-40: 160px;

	/* === Radii (sharp, book-jacket discipline) === */
	--radius-sm: 2px;
	--radius-md: 3px;
	--radius-lg: 6px;

	/* === Shadows (book sites use rule lines, not shadows) === */
	--shadow-sm: 0 1px 2px rgba(26, 20, 16, 0.04);
	--shadow-md: 0 4px 12px rgba(26, 20, 16, 0.06);
	--shadow-lg: 0 12px 28px rgba(26, 20, 16, 0.08);

	/* === Animation (two cubic-béziers site-wide) === */
	--ease-in: cubic-bezier(0.77, 0, 0.175, 1);
	--ease-out: cubic-bezier(0.165, 0.84, 0.44, 1);
	--duration-fast: 200ms;
	--duration-normal: 400ms;
	--duration-slow: 800ms;

	/* === Layout === */
	--container-max: 1200px;
	--container-prose: 640px;
	--container-wide: 1360px;
	--gutter: var(--space-6);
	--gutter-tablet: var(--space-8);
	--gutter-desktop: var(--space-10);

	/* === Header === */
	--header-height: 72px;
	--header-height-desktop: 96px;
}

/* === Reduced motion globally honored === */
@media (prefers-reduced-motion: reduce) {
	:root {
		--duration-fast: 0ms;
		--duration-normal: 0ms;
		--duration-slow: 0ms;
	}
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
