:root{
  /* Base ramp — ink (from the MPTSS wordmark) */
  --ink-900:#080f24; --ink-800:#0d1730; --ink-700:#101b3d; --ink-600:#1a2750;
  --ink-500:#243560; --ink-400:#3c4c78; --ink-300:#66759b; --ink-200:#9aa6c2;
  --ink-100:#c9d1e2; --ink-050:#e8ecf4;

  /* Base ramp — signal blue (logo wave, left half) */
  --blue-700:#123a86; --blue-600:#1f52c4; --blue-500:#2e6bfa; --blue-400:#5b8bfb;
  --blue-300:#93b3fd; --blue-200:#c4d5fe; --blue-100:#e6edff;

  /* Base ramp — pulse cyan (logo wave, right half) */
  --cyan-700:#0a7fa6; --cyan-600:#17a3d0; --cyan-500:#35c6f2; --cyan-400:#63d8f7;
  --cyan-300:#93e6fb; --cyan-200:#c2f1fd; --cyan-100:#e6faff;

  /* Neutrals */
  --white:#ffffff; --grey-050:#f6f8fb; --grey-100:#eef1f7; --grey-200:#dfe4ee;
  --grey-300:#c4cbdb; --grey-400:#8e98b0; --grey-500:#5f6a85; --grey-600:#3d465c;

  /* Status */
  --green-500:#12b981; --green-100:#dcfaee;
  --amber-500:#f0a622; --amber-100:#fdf0d8;
  --red-500:#e04a5f;   --red-100:#fbe0e4;

  /* Signature gradient — the logo wave, left(blue) → right(cyan) */
  --gradient-wave:linear-gradient(90deg,var(--blue-600) 0%,var(--blue-500) 35%,var(--cyan-500) 75%,var(--cyan-400) 100%);
  --gradient-ink:linear-gradient(160deg,var(--ink-800) 0%,var(--ink-700) 45%,var(--blue-700) 100%);

  /* Semantic — surfaces */
  --surface-page:var(--white);
  --surface-subtle:var(--grey-050);
  --surface-card:var(--white);
  --surface-inset:var(--grey-100);
  --surface-inverse:var(--ink-800);
  --surface-inverse-raised:var(--ink-600);
  --surface-accent-soft:var(--blue-100);

  /* Semantic — text */
  --text-body:var(--ink-700);
  --text-strong:var(--ink-900);
  --text-muted:var(--grey-500);
  --text-faint:var(--grey-400);
  --text-accent:var(--blue-500);
  --text-on-accent:var(--white);
  --text-on-inverse:var(--grey-100);
  --text-inverse-muted:var(--ink-200);

  /* Semantic — lines */
  --border-subtle:var(--grey-200);
  --border-default:var(--grey-300);
  --border-strong:var(--ink-500);
  --border-accent:var(--blue-500);
  --border-inverse:rgba(255,255,255,.14);

  /* Semantic — interactive */
  --action-primary:var(--blue-500);
  --action-primary-hover:var(--blue-600);
  --action-primary-active:var(--blue-700);
  --action-secondary:var(--ink-700);
  --focus-ring:var(--cyan-500);

  /* Semantic — status */
  --status-success:var(--green-500); --status-success-soft:var(--green-100);
  --status-warning:var(--amber-500); --status-warning-soft:var(--amber-100);
  --status-danger:var(--red-500);    --status-danger-soft:var(--red-100);
  --status-info:var(--cyan-600);     --status-info-soft:var(--cyan-100);
}
