:root{
  /* ink & neutrals */
  --ink:#0d0d0f;--ink-900:#171717;--ink-700:#2a2a2e;
  --text-body:#33333a;--text-muted:#5c5c5a;--text-faint:#8a8a88;--text-ghost:rgba(13,13,15,.35);
  --gray-400:#b8b8b6;--gray-300:#d8d8d6;--paper:#f4f3f0;--paper-2:#ececea;
  /* page wash — never flat */
  --wash:linear-gradient(115deg,#e7f4ec 0%,#eef0f2 42%,#ece8f5 100%); /* @kind color */
  --wash-mint:#e7f4ec;--wash-grey:#eef0f2;--wash-lilac:#ece8f5;
  /* purple — "your next move" */
  --purple-800:#35277f;--purple-700:#4a2e8f;--purple-600:#5b3495;--purple-500:#713ba7;--purple-400:#8b5cc0;
  --purple-300:#a884d6;--purple-200:#c2a0e4;--purple-100:#ece0f8;--purple-50:#f6f0fd;--navy-500:#2d4f8a;
  /* status tones: fill / ink-on-fill / dot / text-on-white */
  --live:#1dbf73;--live-fill:#9ff0c4;--live-ink:#0a3b25;--live-text:#0c6b41;--mint-100:#e4f8ee;
  --motion:#d9a514;--motion-fill:#f6ec86;--motion-ink:#574208;--motion-text:#9a6512;--warn-100:#fbf0db;
  --leak:#e0533d;--leak-fill:#fbe6e2;--leak-ink:#a3331f;--leak-text:#e0533d;
  --locked:rgba(13,13,15,.15);--locked-ink:#171717;--locked-text:#8a8a88;--locked-tile:rgba(13,13,15,.06);
  --locked-stripes:repeating-linear-gradient(90deg,rgba(13,13,15,.1) 0 2px,transparent 2px 8px); /* @kind color */
  --quest:#713ba7;--quest-fill:#ece0f8;--quest-ink:#35277f;--quest-text:#5b3495;
  /* glass surfaces */
  --glass-panel:rgba(255,255,255,.55);--glass-strong:rgba(255,255,255,.8);--glass-card:rgba(255,255,255,.9);
  --glass-card-hi:rgba(255,255,255,.92);--glass-leak:rgba(255,255,255,.96);--glass-ghost:rgba(255,255,255,.4);
  --tab-active:rgba(255,255,255,.65);--tab-idle:rgba(255,255,255,.32);--disc-wash:rgba(255,255,255,.35);
  /* borders */
  --border-glass:#ffffff;--border-hairline:rgba(13,13,15,.1);--border-soft:rgba(13,13,15,.16);
  --border-strong:rgba(13,13,15,.4);--ring-icon:rgba(13,13,15,.14);--border-dashed:rgba(13,13,15,.25);
  /* chart series */
  --series-1:#4a2e8f;--series-2:#713ba7;--series-3:#8b5cc0;--series-4:#2d4f8a;--series-5:#1dbf73;
  --chart-grid:rgba(13,13,15,.06);
  /* semantic aliases */
  --surface-page:var(--wash);--surface-panel:var(--glass-panel);--surface-card:var(--glass-card);--surface-sunken:var(--paper-2);
  --text-primary:var(--ink-900);--text-link:var(--purple-600);--text-link-hover:var(--purple-800);
  --btn-primary-bg:var(--ink-900);--btn-primary-fg:#fff;--btn-secondary-bg:var(--glass-strong);--btn-accent-bg:var(--purple-500);
}
