:root{
/* ---- base ramps, derived from the source palette ---- */
--sage-50:#f2f4ef;--sage-100:#dee4d9;--sage-200:#c3cdbb;--sage-300:#a4b199;--sage-400:#7f9073;--sage-500:#607556;--sage-600:#4f6146;--sage-700:#3d4b36;--sage-800:#2c3626;--sage-900:#1d241a;
--cream-50:#fdfaf6;--cream-100:#f8f1e8;--cream-200:#efe0cd;--cream-300:#e2ceb4;--cream-400:#cfb597;--cream-500:#b79a7a;
--clay-100:#f6e3da;--clay-200:#e9c4b3;--clay-300:#d9a189;--clay-400:#c9825f;--clay-500:#ba6b4d;--clay-600:#9d573c;--clay-700:#7d442f;--clay-800:#5b3122;
--brick-100:#f3d9d6;--brick-300:#c96a63;--brick-400:#a93b37;--brick-500:#8e2b28;--brick-600:#7c2423;--brick-700:#611c1b;--brick-800:#421312;
--ink-900:#231d18;--ink-700:#463c33;--ink-500:#6d6055;--ink-300:#9b8d80;--ink-100:#d8cec3;
--white:#ffffff;

/* ---- semantic: brand ---- */
--brand-primary:var(--sage-500);--brand-primary-hover:var(--sage-600);--brand-primary-press:var(--sage-700);
--brand-secondary:var(--clay-500);--brand-secondary-hover:var(--clay-600);--brand-secondary-press:var(--clay-700);
--brand-deep:var(--brick-600);--brand-deep-hover:var(--brick-700);--brand-deep-press:var(--brick-800);
--brand-cream:var(--cream-200);

/* ---- semantic: text ---- */
--text-heading:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-faint:var(--ink-300);
--text-inverse:var(--cream-100);--text-on-accent:var(--cream-50);
--text-link:var(--brick-600);--text-link-hover:var(--clay-600);

/* ---- semantic: surface ---- */
--surface-page:var(--cream-100);--surface-card:var(--white);--surface-raised:var(--cream-50);--surface-sunken:var(--cream-200);
--surface-inverse:var(--sage-800);--surface-accent:var(--sage-500);--surface-accent-soft:var(--sage-100);
--surface-secondary-soft:var(--clay-100);--surface-deep:var(--brick-600);

/* ---- semantic: border ---- */
--border-subtle:var(--cream-300);--border-default:var(--cream-400);--border-strong:var(--ink-900);--border-accent:var(--sage-500);
--focus-ring:var(--clay-500);

/* ---- semantic: status ---- */
--status-success:var(--sage-600);--status-success-soft:var(--sage-100);
--status-warning:var(--clay-500);--status-warning-soft:var(--clay-100);
--status-danger:var(--brick-600);--status-danger-soft:var(--brick-100);
--status-neutral:var(--ink-500);--status-neutral-soft:var(--cream-200);
}
