:root{
/* Base palette — exactly four colours. No fifth colour. No gradients. */
--green-700:#2F4A3C;
--bone-100:#F2EFE7;
--ink-900:#1A211D;
--ember-500:#C4703F;

/* Derived tints — mechanical mixes of the four base colours only.
   Used for hairlines and hover states, never as a new hue. */
--ink-900-a12:color-mix(in srgb,var(--ink-900) 12%,transparent);
--ink-900-a24:color-mix(in srgb,var(--ink-900) 24%,transparent);
--bone-100-a70:color-mix(in srgb,var(--bone-100) 70%,transparent);
--green-800:color-mix(in srgb,var(--green-700) 82%,var(--ink-900));
--green-600:color-mix(in srgb,var(--green-700) 88%,var(--bone-100));
--bone-200:color-mix(in srgb,var(--bone-100) 92%,var(--ink-900));

/* Semantic aliases */
--brand:var(--green-700);
--brand-press:var(--green-800);
--brand-hover:var(--green-600);
--accent:var(--ember-500);

--surface-page:var(--bone-100);
--surface-block:var(--bone-100);
--surface-block-invert:var(--green-700);
--surface-block-ink:var(--ink-900);
--surface-sunken:var(--bone-200);

--text-body:var(--ink-900);
--text-title:var(--ink-900);
--text-muted:color-mix(in srgb,var(--ink-900) 72%,var(--bone-100));
--text-on-brand:var(--bone-100);
--text-on-ink:var(--bone-100);
--text-accent:var(--ember-500);

--rule:var(--ink-900);
--rule-soft:var(--ink-900-a24);
--rule-on-brand:var(--bone-100-a70);

--focus-ring:var(--ember-500);
}
