:root {
  /* ---- Ground + ink -------------------------------------------------- */
  --color-bg: #0d0524;          /* deep cosmic navy; the only page ground */
  --color-text: #f3edff;        /* warm white, never pure #fff */

  /* ---- Primary accent: violet ---------------------------------------- */
  --color-accent:     #a855f7;
  --color-accent-100: #f4e9ff;
  --color-accent-200: #e2cbff;
  --color-accent-300: #c9a3fb;
  --color-accent-400: #b478f9;
  --color-accent-500: #a855f7;
  --color-accent-600: #8b3fd9;
  --color-accent-700: #6b2fab;
  --color-accent-800: #43206b;
  --color-accent-900: #2a1547;

  /* ---- Neutrals: violet-tinted, never grey --------------------------- */
  --color-neutral-100: #ece6fa;
  --color-neutral-200: #d2c9ea;
  --color-neutral-300: #b3a9d4;
  --color-neutral-400: #9186ba;
  --color-neutral-500: #665b8c;
  --color-neutral-600: #4a3f6b;
  --color-neutral-700: #362c52;
  --color-neutral-800: #241c3c;
  --color-neutral-900: #170e2e;

  /* ---- Spectrum: for categories, data series, section identity -------
     Use these as FILLS, borders and strokes at full strength.
     For TEXT on the dark ground, use the -ink variants below. */
  --c-cyan:    #2dd4f5;
  --c-violet:  #a855f7;
  --c-magenta: #f0389f;
  --c-green:   #34e0a1;
  --c-gold:    #ffb340;
  --c-orange:  #ff7a2f;
  --c-blue:    #5b7cfa;

  /* ---- Spectrum inks: the same hues lifted to clear 4.5:1 as small text
     on both the page ground AND a tinted panel. Violet, magenta and orange
     genuinely fail as text at full strength — always reach for these. */
  --ink-cyan:    #2dd4f5;
  --ink-violet:  #c9b6f5;
  --ink-magenta: #ff8fca;
  --ink-green:   #34e0a1;
  --ink-gold:    #ffb340;
  --ink-orange:  #ffb38a;
  --ink-blue:    #93a9ff;

  /* ---- Ink on a bright fill ------------------------------------------
     When text sits on a full-strength spectrum fill, use this, not a
     dark tint of the hue — those are never dark enough. */
  --ink-on-fill: #0d0524;

  /* ---- Semantic surfaces ---------------------------------------------- */
  --surface-card:    #1b1236;
  --surface-panel:   #170e2e;
  --surface-raised:  #241c3c;
  --border-subtle:   var(--color-neutral-800);
  --border-default:  var(--color-neutral-700);
  --border-strong:   var(--color-neutral-600);

  /* ---- Semantic text --------------------------------------------------- */
  --text-primary:   var(--color-text);
  --text-secondary: var(--color-neutral-200);
  --text-tertiary:  var(--color-neutral-300);
  --text-muted:     #9a92b8;   /* the dimmest tone that still clears 4.5:1 */
  --text-kicker:    #c9b6f5;
}
