:root{
  /* Core brand */
  --color-brand-red:#d32029;
  --color-brand-red-hover:#b71922;
  --color-brand-orange:#ff8650;
  --color-brand-navy:#1c244b;
  --color-brand-navy-hover:#141a38;

  /* Neutrals */
  --color-ink:#1b1f29;
  --color-body:#434856;
  --color-muted:#69727d;
  --color-border:#dde2e7;
  --color-surface:#f4f5f6;
  --color-surface-warm:#fff6f2;
  --color-surface-blue:#f1f4fa;
  --color-white:#ffffff;

  /* Semantic aliases — prefer these in components */
  --text-heading:var(--color-ink);
  --text-heading-alt:var(--color-brand-navy);
  --text-body:var(--color-body);
  --text-muted:var(--color-muted);
  --text-accent:var(--color-brand-red);
  --text-on-dark:var(--color-white);
  --text-on-dark-muted:rgba(255,255,255,.72);

  --surface-page:var(--color-white);
  --surface-card:var(--color-white);
  --surface-alt:var(--color-surface);
  --surface-info:var(--color-surface-blue);
  --surface-warm:var(--color-surface-warm);
  --surface-dark:var(--color-brand-navy);

  --border-default:var(--color-border);
  --border-strong:#c6ced7;
  --border-on-dark:rgba(255,255,255,.22);

  --action-primary:var(--color-brand-red);
  --action-primary-hover:var(--color-brand-red-hover);
  --action-secondary:var(--color-brand-navy);
  --action-secondary-hover:var(--color-brand-navy-hover);

  --icon-default:var(--color-brand-navy);
  --icon-accent:var(--color-brand-red);

  --focus-ring:var(--color-brand-navy);
  --focus-ring-warm:#c25a25;

  /* Overlays — subtle navy gradient only, never a flat gray wash */
  --overlay-navy:linear-gradient(90deg,rgba(28,36,75,.88) 0%,rgba(28,36,75,.55) 55%,rgba(28,36,75,0) 100%); /* @kind other */
  --overlay-navy-bottom:linear-gradient(180deg,rgba(28,36,75,0) 35%,rgba(28,36,75,.72) 100%); /* @kind other */
  --accent-hairline:linear-gradient(90deg,var(--color-brand-red) 0%,var(--color-brand-orange) 100%);
}
