:root{
/* ---- brand base palette (given) ---- */
--mint-500:#2ce17a;
--sky-300:#8ee7ff;
--coral-500:#ec5e3a;
--white:#ffffff;

/* ---- brand tints & shades (derived in oklch from the four above) ---- */
--mint-100:#d7f8e5;
--mint-200:#a9f0c8;
--mint-600:#1fc468;
--mint-700:#12994f;
--mint-900:#0a4a27;
--sky-100:#e2f8ff;
--sky-200:#c2f1ff;
--sky-400:#5fd8f5;
--sky-600:#1fa7cc;
--sky-900:#0d4a5c;
--coral-100:#fde4dc;
--coral-200:#f9c3b4;
--coral-600:#d44a27;
--coral-700:#ab3819;
--coral-900:#57190a;

/* ---- project-card fills (sampled from the live site) ---- */
--mint-400:#63f48f;
--amber-400:#ffa73f;
--violet-400:#a872ff;
--card-mint:var(--mint-400);
--card-amber:var(--amber-400);
--card-violet:var(--violet-400);
--card-sky:var(--sky-300);
--card-coral:var(--coral-500);

/* ---- warm neutrals ---- */
--ink-800:#262626;
--ink-900:#191712;
--ink-700:#3b352b;
--ink-500:#6b6254;
--ink-300:#9c9284;
--sand-300:#e6d8c4;
--sand-200:#f1e7d8;
--sand-100:#faf4ea;
--paper:#fdf9f2;

/* ---- semantic surfaces ---- */
--surface-page:var(--paper);
--surface-card:var(--white);
--surface-sunken:var(--sand-100);
--surface-inset:var(--sand-200);
--surface-invert:var(--ink-900);
--surface-brand:var(--mint-500);
--surface-brand-soft:var(--mint-100);
--surface-cool:var(--sky-300);
--surface-cool-soft:var(--sky-100);
--surface-hot:var(--coral-500);
--surface-hot-soft:var(--coral-100);

/* ---- semantic text ---- */
--text-heading:var(--ink-900);
--text-body:var(--ink-700);
--text-muted:var(--ink-500);
--text-on-brand:var(--ink-900);
--text-on-cool:var(--ink-900);
--text-on-hot:var(--white);
--text-on-invert:var(--sand-100);
--text-link:var(--coral-600);
--text-link-hover:var(--coral-700);

/* ---- borders & lines ---- */
--border-strong:var(--ink-900);
--border-soft:var(--sand-300);
--border-hairline:rgba(25,23,18,.10);
--focus-ring:var(--sky-400);

/* ---- status ---- */
--status-good:var(--mint-600);
--status-good-soft:var(--mint-100);
--status-info:var(--sky-600);
--status-info-soft:var(--sky-100);
--status-alert:var(--coral-600);
--status-alert-soft:var(--coral-100);
}
