:root{
  /* Brand red — sampled from the wordmark (rgb 179,3,3) */
  --red-950:#4A0101;
  --red-900:#6E0202;
  --red-800:#8C0202;
  --red-700:#B30303;
  --red-600:#C51A18;
  --red-500:#D94441;
  --red-300:#EE9C9A;
  --red-100:#F8DDDB;
  --red-50:#FDF3F2;

  /* Warm neutrals — plaster, linen, olive wood */
  --ink-900:#1E1A18;
  --ink-800:#2C2622;
  --ink-700:#3E3630;
  --ink-600:#5A4F47;
  --ink-500:#7B6F66;
  --ink-400:#A2968C;
  --ink-300:#C6BAAE;
  --ink-200:#E0D6C9;
  --ink-100:#EFE8DD;
  --cream-100:#FBF6EF;
  --cream-50:#FDFAF5;
  --white:#FFFFFF;

  /* Mediterranean accents */
  --olive-700:#3F4C2A;
  --olive-500:#5C6B3F;
  --olive-200:#CBD3B6;
  --honey-600:#C4881B;
  --honey-500:#D89B2C;
  --honey-200:#F6E2B8;
  --aegean-700:#164B58;
  --aegean-500:#1F6B7D;
  --aegean-200:#BFDCE3;

  /* Semantic aliases */
  --brand:var(--red-700);
  --brand-hover:var(--red-800);
  --brand-active:var(--red-900);
  --brand-soft:var(--red-50);
  --brand-contrast:var(--white);

  --text-strong:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-faint:var(--ink-400);
  --text-on-brand:var(--white);
  --text-link:var(--red-700);
  --text-link-hover:var(--red-900);

  --surface-page:var(--cream-100);
  --surface-card:var(--white);
  --surface-raised:var(--cream-50);
  --surface-sunken:var(--ink-100);
  --surface-inverse:var(--ink-900);
  --surface-brand:var(--red-700);

  --border-hairline:var(--ink-200);
  --border-strong:var(--ink-300);
  --border-brand:var(--red-700);
  --border-on-brand:rgba(255,255,255,.28);

  --state-success:var(--olive-500);
  --state-success-soft:var(--olive-200);
  --state-warning:var(--honey-500);
  --state-warning-soft:var(--honey-200);
  --state-danger:var(--red-700);
  --state-danger-soft:var(--red-100);
  --state-info:var(--aegean-500);
  --state-info-soft:var(--aegean-200);

  --focus-ring:0 0 0 3px rgba(179,3,3,.28);
  --overlay-scrim:rgba(30,26,24,.62); /* @kind color */
  --protect-gradient:linear-gradient(180deg,rgba(30,26,24,0) 0%,rgba(30,26,24,.18) 45%,rgba(30,26,24,.78) 100%); /* @kind color */
}
