:root {
  /* Base palette */
  --navy-900: #0E1C2C;
  --navy-800: #16283C;
  --navy-600: #24405C;
  --sage-500: #8C9A83;
  --sage-700: #5E6B57;   /* sage dark enough for labels on cream stock */
  --sage-300: #AFBAA6;
  --gold-500: #B5893F;
  --gold-300: #D2AE6C;
  --cream-100: #F2EBDD;
  --cream-200: #E8DFC8;
  --paper-100: #EDE9E2;
  --ink-600: #7A7468;

  /* Alpha derivatives — frames, textures, muted rules */
  --gold-frame: rgba(181, 137, 63, 0.45);
  --gold-hair: rgba(181, 137, 63, 0.55);
  --sage-hair: rgba(140, 154, 131, 0.75);
  --grain-light: rgba(255, 255, 255, 0.05);
  --grain-dark: rgba(0, 0, 0, 0.16);
  --grain-ink: rgba(22, 40, 60, 0.055);
  --grain-gold: rgba(181, 137, 63, 0.09);

  /* Semantic — dark card (primary treatment, "Nachtblau") */
  --surface-card-dark: var(--navy-800);
  --text-display-dark: var(--cream-100);
  --text-body-dark: var(--cream-200);
  --text-muted-dark: var(--sage-500);
  --text-accent-dark: var(--gold-500);
  --rule-dark: var(--gold-frame);

  /* Semantic — light card (secondary treatment, "Büttenpapier") */
  --surface-card-light: var(--cream-100);
  --text-display-light: var(--navy-800);
  --text-body-light: var(--navy-800);
  --text-muted-light: var(--sage-700);
  --text-accent-light: var(--gold-500);
  --rule-light: var(--gold-hair);

  --surface-desk: var(--paper-100);
  --text-meta: var(--ink-600);
}
