:root {
  /* ---- base palette (natural, frutiger-but-modern) ---- */
  --stone-50:  #faf9f5;
  --stone-100: #f2f0e8;
  --stone-200: #e6e2d4;
  --stone-300: #d3ccb8;
  --stone-400: #a49c86;
  --stone-500: #7c7461;
  --stone-600: #5c5545;
  --stone-700: #423d31;
  --stone-800: #2c2921;
  --stone-900: #1c1a15;

  --green-100: #e2efe2;
  --green-200: #bfdcc2;
  --green-300: #94c69b;
  --green-400: #6bb076;
  --green-500: #4a9d6f;
  --green-600: #3a8058;
  --green-700: #2c6344;
  --green-900: #16311f;

  --sky-100: #e4f3f6;
  --sky-300: #b8e2ea;
  --sky-500: #8fd0e0;
  --sky-600: #5fadc2;
  --sky-700: #3f8398;

  --gold-200: #f7e2ab;
  --gold-400: #f2c14e;
  --gold-500: #dda52e;
  --gold-700: #96701c;

  --coral-400: #e28a63;
  --coral-600: #c56a44;

  /* ---- semantic: light / natural surface (default, all non-music work) ---- */
  --bg-canvas: var(--stone-50);
  --bg-surface: #ffffff;
  --bg-surface-sunken: var(--stone-100);
  --surface-glass: rgba(255, 255, 255, 0.55);
  --surface-glass-strong: rgba(255, 255, 255, 0.72);
  --border-glass: rgba(255, 255, 255, 0.6);
  --border-subtle: var(--stone-200);
  --border-strong: var(--stone-400);

  --text-primary: var(--stone-900);
  --text-secondary: var(--stone-600);
  --text-tertiary: var(--stone-400);
  --text-on-accent: #ffffff;
  --text-link: var(--green-700);
  --text-link-hover: var(--green-900);

  --accent-primary: var(--green-600);
  --accent-primary-hover: var(--green-700);
  --accent-primary-active: var(--green-900);
  --accent-secondary: var(--sky-600);
  --accent-warm: var(--gold-500);
  --accent-danger: #b5432f;
  --accent-danger-bg: #fbe9e5;
  --accent-success: var(--green-600);
  --accent-success-bg: var(--green-100);

  --focus-ring: var(--sky-600);

  /* ---- "stage" mode: dark, used sparingly for music case-studies / deck accents ---- */
  --stage-bg: #141d18;
  --stage-bg-2: #1b2820;
  --stage-surface: rgba(255, 255, 255, 0.07);
  --stage-glass: rgba(20, 29, 24, 0.55);
  --stage-border: rgba(255, 255, 255, 0.14);
  --stage-text: #f3f1e9;
  --stage-text-secondary: rgba(243, 241, 233, 0.66);
  --stage-accent: var(--gold-400);
}
