:root{
  /* Base ramps — sampled from the source portfolio artwork */
  --coral-700:#c2371c;
  --coral-600:#e03a1d;
  --coral-500:#fd4d2e;
  --coral-400:#fd7a63;
  --coral-200:#ffc4b7;
  --coral-100:#ffe6e0;

  --yellow-600:#e0bd00;
  --yellow-500:#fada11;
  --yellow-400:#fde022;
  --yellow-300:#fee96b;
  --yellow-100:#fff8c9;

  --sky-700:#3061a8;
  --sky-600:#52a3e3;
  --sky-500:#5e9ef6;
  --sky-400:#7fb3f8;
  --sky-300:#9bc9fb;
  --sky-100:#e0edf7;

  --ink-900:#07090b;
  --ink-800:#15181c;
  --ink-700:#2b2f33;
  --ink-500:#5c6269;
  --ink-300:#a7acb2;
  --ink-200:#d8dbde;
  --ink-100:#eceef0;

  --cream:#fdfaf3;
  --white:#ffffff;

  /* Semantic aliases */
  --text-body:var(--ink-900);
  --text-muted:var(--ink-500);
  --text-inverse:var(--cream);
  --text-accent:var(--coral-500);
  --text-link:var(--coral-500);
  --text-link-hover:var(--coral-700);

  --surface-page:var(--cream);
  --surface-card:var(--white);
  --surface-ink:var(--ink-900);
  --band-blue:var(--sky-400);
  --band-blue-deep:var(--sky-600);
  --band-yellow:var(--yellow-400);
  --band-coral:var(--coral-500);

  --accent-primary:var(--coral-500);
  --accent-secondary:var(--sky-500);
  --accent-highlight:var(--yellow-400);

  --border-ink:var(--ink-900);
  --border-hairline:var(--ink-200);

  --focus-ring:var(--sky-500);
}
