:root{
  /* Base palette — sampled from the Cybez wordmark (#AF0506) */
  --red-900:#5C0203; --red-800:#7A0304; --red-700:#8E0405; --red-600:#AF0506;
  --red-500:#C81617; --red-400:#E24A4B; --red-200:#F5A9A9; --red-100:#FBDDDD; --red-50:#FDF0F0;

  --ink-900:#0A0A0A; --ink-800:#141414; --ink-700:#1F1F1F; --ink-600:#333333;
  --gray-500:#5C5C5C; --gray-400:#8A8A8A; --gray-300:#BDBDBD; --gray-200:#E2E2E2;
  --gray-100:#F0F0F0; --gray-50:#F7F7F7; --white:#FFFFFF;

  --green-600:#1B7F4A; --amber-600:#B4780A; --blue-600:#1D5FB0;

  /* Semantic — surfaces */
  --surface-page:var(--white);
  --surface-alt:var(--gray-50);
  --surface-card:var(--white);
  --surface-inverse:var(--ink-900);
  --surface-brand:var(--red-600);
  --surface-brand-soft:var(--red-50);

  /* Semantic — text */
  --text-heading:var(--ink-900);
  --text-body:var(--ink-600);
  --text-muted:var(--gray-500);
  --text-inverse:var(--white);
  --text-brand:var(--red-600);
  --text-on-brand:var(--white);

  /* Semantic — lines */
  --border-subtle:var(--gray-200);
  --border-strong:var(--ink-900);
  --border-brand:var(--red-600);

  /* Semantic — interaction */
  --action-primary:var(--red-600);
  --action-primary-hover:var(--red-700);
  --action-primary-active:var(--red-800);
  --action-secondary:var(--ink-900);
  --action-secondary-hover:var(--ink-700);
  --focus-ring:var(--red-400);

  /* Status */
  --status-success:var(--green-600);
  --status-warning:var(--amber-600);
  --status-info:var(--blue-600);
  --status-danger:var(--red-600);
}
