:root{
  /* Base ramp: warm neutrals */
  --cream-50:#FDFAF6;
  --cream-100:#FAF5EF;
  --cream-200:#F4EFE8;
  --cream-300:#E9E4DB;
  --cream-400:#D8D2C8;

  --ink-900:#19181C;
  --ink-800:#1E1D22;
  --ink-700:#2A2930;
  --ink-600:#3A3940;
  --gray-500:#8C8A86;
  --gray-400:#9B9995;
  --white:#FFFFFF;

  /* Brand yellow */
  --yellow-500:#FBD621;
  --yellow-400:#FFDE45;
  --yellow-600:#EBC400;
  --yellow-100:#FEF3C0;

  /* Data / semantic accents */
  --mint-400:#8FDCA8;
  --mint-300:#B9E9C8;
  --mint-100:#E4F7EA;
  --peri-400:#A9C0F5;
  --peri-300:#C4D4F8;
  --peri-100:#E3EAFC;
  --pink-300:#F9D6EC;
  --pink-100:#FDEDF7;

  /* Semantic aliases */
  --bg-page:var(--cream-100);
  --bg-page-alt:var(--cream-50);
  --bg-inverse:var(--ink-800);
  --surface-card:var(--white);
  --surface-inset:var(--cream-200);
  --surface-frame:var(--cream-300);
  --surface-raised-inverse:var(--ink-700);
  --surface-brand:var(--yellow-500);

  --text-heading:var(--ink-900);
  --text-body:var(--ink-800);
  --text-muted:var(--gray-500);
  --text-on-dark:var(--white);
  --text-muted-on-dark:var(--gray-400);
  --text-on-brand:var(--ink-900);
  --text-accent:var(--yellow-500);
  --text-link:var(--ink-900);
  --text-link-hover:var(--yellow-600);

  --border-subtle:var(--cream-400);
  --border-strong:var(--ink-900);
  --border-on-dark:var(--ink-600);

  --chip-positive-bg:var(--mint-300);
  --chip-info-bg:var(--peri-400);
  --chip-category-bg:var(--pink-300);
  --chip-brand-bg:var(--yellow-100);
  --chip-text:var(--ink-900);

  --focus-ring:var(--ink-900);
}
