/* Semantic aliases — use these in components, not the raw ramps. */
:root {
  --brand: var(--rubi-500);
  --brand-soft: var(--rubi-300);
  --accent: var(--topazio-500);

  --text-strong: var(--onix-900);
  --text-heading: var(--neutral-900);   /* #212529 — the exact value the frames use for titles */
  --text-heading-warm: var(--onix-500);
  --text-body-color: var(--neutral-600);
  --text-on-brand: var(--marfim-100);
  --text-on-brand-muted: var(--marfim-300);
  --text-brand: var(--rubi-500);

  --surface-page: var(--neutral-150);
  --surface-card: var(--neutral-000);
  --surface-muted: var(--neutral-100);
  --surface-warm: var(--marfim-500);
  --surface-brand: var(--rubi-500);

  --border-hairline: var(--neutral-200);
  --border-strong: var(--neutral-300);
  --border-divider: var(--neutral-400);

  --link: var(--rubi-500);
  --link-hover: var(--rubi-300);
  --link-on-dark: var(--rubi-300);

  /* Chromatic proportion of any Assessoria piece. */
  --proportion-rubi: 43%;
  --proportion-marfim: 42%;
  --proportion-onix: 13%;
  --proportion-topazio: 2%;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
