:root {
	/* Colors — design spec §3 */
	--color-bg: #F6F1EA;
	--color-bg-raised: #FFFFFF;
	--color-text: #2B231C;
	--color-text-soft: #5C5347;
	--color-accent: #B8A088;
	--color-accent-soft: #D8CBBA;
	--color-gold: #C9A566;
	--color-line: rgba(43, 35, 28, 0.14);
	--color-success: #487856;
	--color-error: #b3453b;
	--color-error-bg: #F4E3E1;

	/* --color-accent as a TEXT color on --color-bg/--color-bg-raised measures only
	   2.22:1 (WCAG AA requires 4.5:1 for normal text) — use --color-accent-text
	   instead wherever accent is the foreground text color, not just a border or
	   background. --color-accent itself is unchanged and stays correct for
	   border/background/decorative use. Audited 29 juli 2026 (Task 7). */
	--color-accent-text: #7B6B5B;

	/* Typography — Fraunces stands in for Missoma's licensed Ivy Presto:
	   same thin, high-contrast editorial serif character, free to use.
	   Jost is de vaste body/UI-sans (licht-geometrisch, Futura-traditie):
	   consistent op elk platform i.p.v. de wisselende systeemfont, en de
	   uppercase labels/knoppen krijgen er het luxe-karakter van. */
	--font-serif: 'Fraunces', Georgia, 'Iowan Old Style', 'Times New Roman', serif;
	--font-sans: 'Jost', 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	/* Spacing scale */
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 16px;
	--space-4: 24px;
	--space-5: 40px;
	--space-6: 64px;

	/* Layout */
	--content-max: 1200px;
}

body {
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-sans);
	font-size: 16px;
	letter-spacing: 0.01em;
	line-height: 1.6;
}

h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-weight: 400;
	font-optical-sizing: auto;
	line-height: 1.2;
	margin: 0 0 var(--space-3);
}

.container {
	max-width: var(--content-max);
	margin: 0 auto;
	padding: 0 var(--space-4);
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}
