:root{
  /* ---- Brand primitives (sampled from the Triumphant Publishing mark) ---- */
  --tp-red-50:#fff4f5; --tp-red-100:#fde3e6; --tp-red-300:#f4838e;
  --tp-red-500:#ed1b2e; --tp-red-600:#c41425; --tp-red-700:#96101c;

  --tp-blue-50:#eaf5fc; --tp-blue-100:#a8d8f0; --tp-blue-300:#7fb6e8;
  --tp-blue-500:#2b6cc4; --tp-blue-700:#17478f; --tp-blue-800:#0f3268; --tp-blue-900:#08213f;

  --tp-indigo-100:#e4e4f5; --tp-indigo-500:#4242b0; --tp-indigo-600:#2e2e8c;

  --tp-gold-100:#fbf0d9; --tp-gold-300:#f2d79b;
  --tp-gold-500:#e9b44c; --tp-gold-600:#c8912c;

  --tp-teal-700:#004878;

  /* ---- Neutrals: warm paper stock, cool ink ---- */
  --tp-paper:#f7f5f0; --tp-white:#ffffff;
  --tp-ink-100:#e9ecf1; --tp-ink-200:#d6dae2; --tp-ink-300:#a9afbc;
  --tp-ink-500:#676e7d; --tp-ink-700:#3a3f4b; --tp-ink-900:#14161c;

  /* ---- Semantic ---- */
  --tp-success-500:#1e7a4c; --tp-success-100:#dff0e6;
  --tp-warning-500:#c8912c; --tp-warning-100:#fbf0d9;
  --tp-danger-500:#c41425;  --tp-danger-100:#fde3e6;
  --tp-info-500:#17478f;    --tp-info-100:#eaf5fc;

  /* ---- Semantic aliases: use these in components ---- */
  --text-heading:var(--tp-blue-900);
  --text-body:var(--tp-ink-700);
  --text-muted:var(--tp-ink-500);
  --text-inverse:var(--tp-white);
  --text-brand:var(--tp-red-500);
  --text-link:var(--tp-blue-700);
  --text-link-hover:var(--tp-red-600);
  --text-meta:var(--tp-ink-500);

  --surface-page:var(--tp-paper);
  --surface-card:var(--tp-white);
  --surface-sunken:var(--tp-blue-50);
  --surface-brand:var(--tp-red-500);
  --surface-brand-quiet:var(--tp-red-50);
  --surface-deep:var(--tp-blue-800);
  --surface-accent:var(--tp-blue-100);
  --surface-gold:var(--tp-gold-100);

  --border-subtle:var(--tp-ink-200);
  --border-strong:var(--tp-blue-800);
  --border-hairline:rgba(8,33,63,.10);
  --focus-ring:var(--tp-gold-500);

  --overlay-scrim:rgba(8,33,63,.55);
  --gradient-spine:linear-gradient(90deg,var(--tp-blue-800),var(--tp-teal-700));
  --gradient-protect:linear-gradient(180deg,rgba(8,33,63,0) 0%,rgba(8,33,63,.72) 100%); /* @kind color */
}
