:root{
/* --- Base palette ------------------------------------------------------ */
/* Ink: sampled from the wordmark of the 2020 logo */
--slate-900:#2E3838;--slate-800:#404E4E;--slate-700:#586868;--slate-600:#6E7E7E;--slate-500:#8A9797;--slate-400:#A8B2B2;
/* Clay: the leading colour — muted terracotta, complementary to the logo's green */
--clay-900:#452D23;--clay-800:#5F3F31;--clay-700:#7A5240;--clay-600:#8F634E;--clay-500:#A97B62;--clay-400:#C39D88;--clay-300:#DCC5B7;--clay-200:#EDE0D8;--clay-100:#F7F0EA;
/* Olive: kept as the brand's highlight — --olive-400 is the logo's dot */
--olive-800:#4E5A2A;--olive-700:#6B7A3C;--olive-600:#879751;--olive-500:#A3B26A;--olive-400:#B8C878;--olive-300:#CEDA9E;--olive-200:#E3EAC9;--olive-100:#F1F4E4;
/* Warm neutrals: paper, oatmeal, wood — the Japandi ground */
--sand-100:#FAF8F4;--sand-200:#F3EFE8;--sand-300:#E8E2D7;--sand-400:#D8CFC0;--sand-500:#BCB0A0;--sand-600:#96897A;
/* Warm grey from the logo's left dot */
--stone-400:#A0A8A0;--stone-300:#C3C8C0;
--white:#FFFFFF;--black:#1A1F1F;
/* --- Semantic aliases --------------------------------------------------- */
--text-heading:var(--slate-900);--text-body:var(--slate-700);--text-muted:var(--slate-500);--text-inverse:var(--sand-100);--text-accent:var(--clay-900);--text-link:var(--clay-700);--text-link-hover:var(--clay-900);
--surface-page:var(--sand-100);--surface-card:var(--white);--surface-sunken:var(--sand-200);--surface-accent:var(--clay-100);--surface-accent-alt:var(--olive-100);--surface-contrast:var(--slate-800);--surface-clay:var(--clay-700);
--border-hairline:var(--sand-300);--border-strong:var(--sand-400);--border-accent-soft:var(--clay-200);--border-accent:var(--clay-400);--border-focus:var(--clay-700);
--action-primary:var(--clay-700);--action-primary-hover:var(--clay-800);--action-primary-press:var(--clay-900);--action-primary-text:var(--sand-100);
--action-secondary-border:var(--slate-700);--action-secondary-text:var(--slate-800);--action-secondary-hover-bg:var(--sand-200);
/* The one place olive still leads: rules, underlines, dots, selected marks */
--accent-highlight:var(--olive-400);--accent-highlight-strong:var(--olive-700);--accent-dot:var(--stone-400);
/* Semantic status — kept quiet, in the brand's own hues */
--status-success:#5E7A4E;--status-success-bg:#EDF2E5;
--status-info:var(--slate-700);--status-info-bg:var(--sand-200);
--status-warning:#9A7B3F;--status-warning-bg:#F6EFE0;
--status-danger:#8C5044;--status-danger-bg:#F5E7E3;
}
