:root{
  /* --- Base palette -----------------------------------------------------
     Two brand colours, both supplied: clay #916C45 and sun #FBEC69.
     Everything else is a warm neutral derived from them. */
  --clay-900:#3B2C1C; --clay-800:#5C452B; --clay-700:#7A5B39;
  --clay-600:#916C45; --clay-500:#A8814F; --clay-400:#C0A07A;
  --clay-300:#D9C4A9; --clay-200:#EADCC9; --clay-100:#F5EDE1;

  --sun-700:#8A7A16; --sun-600:#BFA92C; --sun-500:#E5D145;
  --sun-400:#FBEC69; --sun-300:#FDF4A2; --sun-200:#FEF9CB; --sun-100:#FFFDE8;

  --sand-050:#FDFBF7; --sand-100:#FAF5ED; --sand-200:#F3EADD; --sand-300:#E7DACA;
  --stone-400:#CBBCA8; --stone-500:#A99880;

  --ink-900:#241C14; --ink-700:#463A2D; --ink-500:#6E6152; --ink-300:#9C9082;

  --white:#FFFFFF;
  --success-600:#4E7A4C; --warning-600:#8A7A16; --danger-600:#A8452F; --info-600:#7A5B39;
  --success-100:#E6F0E4; --warning-100:#FEF9CB; --danger-100:#F6E2DC; --info-100:#F5EDE1;

  /* --- Semantic aliases -------------------------------------------------- */
  --brand:var(--clay-600);
  --brand-strong:var(--clay-800);
  --brand-soft:var(--clay-100);
  --accent:var(--sun-400);
  --accent-soft:var(--sun-200);
  --text-on-accent:var(--clay-900);

  --surface-page:var(--sand-100);
  --surface-page-alt:var(--sand-200);
  --surface-card:var(--white);
  --surface-inverse:var(--clay-900);
  --surface-muted:var(--clay-100);

  --text-heading:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-on-brand:var(--sand-050);
  --text-on-dark:var(--sand-100);
  --text-link:var(--clay-700);
  --text-link-hover:var(--clay-900);

  --border-subtle:var(--sand-300);
  --border-strong:var(--stone-400);
  --border-brand:var(--clay-600);

  --overlay-scrim:rgba(36,28,20,.42);
  --overlay-protect:linear-gradient(180deg,rgba(36,28,20,0) 0%,rgba(36,28,20,.55) 100%); /* @kind color */
}
