/**
 * YEBN 2026 — design tokens
 *
 * Single source of truth for colour, type, spacing and layout.
 * Tokens only: this file must contain no component selectors.
 *
 * Palette agreed in the yebn.eu design audit, 26 August 2026.
 */

:root {
	/* ---------- Colour ---------- */
	--yebn-ink: #0E0E10;          /* body copy, deepest neutral            */
	--yebn-navy: #131A4A;         /* headings, primary buttons, structure  */
	--yebn-navy-hover: #1D2765;   /* primary button hover                  */
	--yebn-navy-press: #0C1136;   /* primary button active                 */
	--yebn-gold: #C79A3C;         /* accent: rules, markers, focus. Never large fills. */
	--yebn-gold-text: #8A6A22;    /* the accent when it has to carry text (4.5:1 on paper) */
	--yebn-paper: #FFFBF3;        /* page ground                           */
	--yebn-surface: #F0E9DA;      /* raised panels, table headers          */
	--yebn-surface-2: #E6DCC7;    /* pressed / secondary panels            */
	--yebn-line: #DCD2BC;         /* borders and dividers                  */
	--yebn-line-soft: #EDE5D5;    /* hairlines inside panels               */
	--yebn-muted: #635C50;        /* secondary text (7:1 on paper)         */
	--yebn-white: #FFFFFF;

	/* Semantic — status only, never decoration. */
	--yebn-ok: #2F6B4F;
	--yebn-warn: #8A5A16;
	--yebn-error: #96261F;

	/* ---------- Type ---------- */
	/* Onest and Inter are already loaded by the parent theme's font manager.
	   Do not enqueue them again. */
	--yebn-font-display: "Onest", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--yebn-font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--yebn-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

	--yebn-fs-xs: 0.8125rem;   /* 13px — captions, legal            */
	--yebn-fs-sm: 0.9375rem;   /* 15px — meta, labels               */
	--yebn-fs-base: 1.0625rem; /* 17px — body                       */
	--yebn-fs-lg: 1.25rem;     /* 20px — lead paragraph             */
	--yebn-fs-xl: 1.5rem;      /* 24px — h4                         */
	--yebn-fs-2xl: 1.875rem;   /* 30px — h3                         */
	--yebn-fs-3xl: 2.375rem;   /* 38px — h2                         */
	--yebn-fs-4xl: clamp(2.5rem, 5.5vw, 3.75rem); /* h1 / hero      */

	--yebn-lh-tight: 1.1;
	--yebn-lh-heading: 1.2;
	--yebn-lh-body: 1.6;

	--yebn-ls-tight: -0.022em;  /* display sizes                    */
	--yebn-ls-normal: 0;
	--yebn-ls-label: 0.11em;    /* uppercase labels only            */

	/* ---------- Spacing (8px base) ---------- */
	--yebn-space-1: 8px;
	--yebn-space-2: 16px;
	--yebn-space-3: 24px;
	--yebn-space-4: 32px;
	--yebn-space-5: 48px;
	--yebn-space-6: 64px;
	--yebn-space-7: 96px;   /* section rhythm */
	--yebn-space-8: 128px;

	/* ---------- Layout ---------- */
	--yebn-container: 1120px;
	--yebn-measure: 68ch;       /* running text never exceeds this */
	--yebn-measure-px: 720px;
	--yebn-radius: 4px;         /* the only radius on the site     */
	--yebn-radius-pill: 999px;  /* pills and chips only            */

	/* Height of the fixed header, used for scroll offsets.
	   Kept as a token so scroll-padding and sticky offsets stay in sync. */
	--yebn-header-h: 88px;

	/* ---------- Motion ---------- */
	--yebn-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--yebn-dur-fast: 140ms;
	--yebn-dur: 260ms;
	--yebn-dur-slow: 700ms;
}

@media (max-width: 782px) {
	:root {
		--yebn-header-h: 72px;
		--yebn-space-7: 64px;
	}
}
