/*
 * brand.core.css — the shared warm ground: the --role-* names every room
 * declares, with the house's own values as the reference implementation.
 * Ground values sit in obligente's committed warm family (#FBF7F0 paper,
 * #241D16 ink); state tints adopt purser's reviewed studio pairs.
 *
 * --role-accent and --role-focus are DECLARED in core.tokens.json and VALUED
 * only in a room file — a room that forgets its accent fails parity
 * (ACCENT_UNSET) rather than silently inheriting someone else's identity.
 *
 * Warm throughout: no #FFF, no #000, no pure grey. check-contrast.mjs
 * asserts non-zero chroma on every ground and ink.
 *
 * Governed pair registry — check-contrast.mjs PARSES this block (purser's
 * T600 mechanism); the list is never typed twice:
 *   pair: --role-ink on --role-ground
 *   pair: --role-ink on --role-ground-raised
 *   pair: --role-ink on --role-ground-sunk
 *   pair: --role-ink-muted on --role-ground
 *   pair: --role-ink-muted on --role-ground-raised
 *   pair: --role-ink-faint on --role-ground
 *   pair: --role-line-strong on --role-ground @3
 *   pair: --role-line-strong on --role-ground-raised @3
 *   pair: --role-state-neutral-ink on --role-state-neutral
 *   pair: --role-state-active-ink on --role-state-active
 *   pair: --role-state-pending-ink on --role-state-pending
 *   pair: --role-state-verified-ink on --role-state-verified
 *   pair: --role-state-blocked-ink on --role-state-blocked
 *   pair: --role-state-danger-ink on --role-state-danger
 */
:root {
  /* [brand] grounds — warm paper, one family */
  --role-ground: #FBF7F0;        /* [brand] the page's own paper */
  --role-ground-raised: #FFFDF8; /* [brand] a lifted sheet on the paper */
  --role-ground-sunk: #F3EADC;   /* [brand] wells, quieter bands */

  /* [brand] ink — warm near-black, never #000 */
  --role-ink: #241D16;        /* [brand] primary text */
  --role-ink-muted: #6A5849;  /* [brand] secondary text */
  --role-ink-faint: #75634F;  /* [brand] tertiary text, still AA on ground */

  /* [brand] rules */
  --role-line: #E6DACA;        /* [brand] hairline furniture */
  --role-line-strong: #8A7357; /* [brand] interactive boundary, >=3:1 */

  /* [brand] state families — tint ground + ink, colour never the sole channel */
  --role-state-neutral: #F1EDE3;      /* [brand] neutral chip ground */
  --role-state-neutral-ink: #57503F;  /* [brand] neutral chip ink */
  --role-state-active: #DEF3F0;       /* [brand] active/in-motion ground */
  --role-state-active-ink: #0E5751;   /* [brand] active ink */
  --role-state-pending: #FBF3DF;      /* [brand] waiting-on-someone ground */
  --role-state-pending-ink: #6E4708;  /* [brand] pending ink */
  --role-state-verified: #E9F7EF;     /* [brand] verified/live ground */
  --role-state-verified-ink: #14603F; /* [brand] verified ink */
  --role-state-blocked: #EFE6DC;      /* [brand] blocked/held ground */
  --role-state-blocked-ink: #5A4632;  /* [brand] blocked ink */
  --role-state-danger: #FBE9E9;       /* [brand] danger/broken ground */
  --role-state-danger-ink: #96302A;   /* [brand] danger ink */

  /* [brand] font stacks — faces vendored in fonts/, SIL OFL 1.1 (FONTS.json) */
  --font-body: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;   /* [brand] prose/UI */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;          /* [brand] brand moments */
  --font-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;        /* [brand] data */
}
