:root {
  /* Base neutrals — archival paper and printer's ink, never pure #000/#fff */
  --bone-050: #faf8f3;
  --bone-100: #f4f1ea;
  --bone-200: #e6e1d6;
  --grey-400: #a8a49c;
  --grey-600: #6c6f74;
  --graphite-700: #3a3f45;
  --ink-900: #14161a;

  /* Muted brand accents — used at label scale only, never as caption color */
  --ochre-400: #c08a2e;   /* golden-hour tie-in; date stamps on warm frames */
  --oxide-500: #8c3a2b;   /* the only warm "seal" color; UNALTERED rule mark */
  --slate-600: #2e4756;   /* cool sky tie-in; verification chips */

  /* Semantic — text */
  --text-title: var(--bone-050);
  --text-caption: #ffffff;
  --text-record: rgba(255, 255, 255, 0.82);
  --text-record-dim: rgba(255, 255, 255, 0.58);
  --text-on-paper: var(--ink-900);
  --text-on-paper-quiet: var(--grey-600);

  /* Semantic — surfaces */
  --field-000: #0b0e11;        /* cool near-black examination field (evidence mount) */
  --print-edge: #f7f5f0;       /* photographic print border, not gallery mat */
  --surface-card: var(--bone-100);
  --surface-slate: var(--ink-900);
  --surface-plate: rgba(20, 22, 26, 0.56);   /* backing plate behind records */
  --surface-plate-strong: rgba(20, 22, 26, 0.72);

  /* Semantic — lines */
  --rule-hairline: rgba(255, 255, 255, 0.28);
  --rule-seal: var(--oxide-500);
  --rule-on-paper: var(--bone-200);
  --rule-field: rgba(255, 255, 255, 0.18);   /* hairline on the dark field */
}
