/* BRAND TOKENS — the one place a Novaverb colour is decided.

   RULES
   1. A colour literal belongs in THIS file. Everywhere else references a token.
      `accent_token_guard` fails the build on a new gold/amber literal in our own files.
   2. Gold is an ACCENT — a small mark that draws the eye to one thing. It is not a fill for
      buttons, panels or headings. The moment several things on a screen are gold, none of them
      is emphasised.
   3. Accent and warning are DIFFERENT JOBS that happen to share a hue. Brand accent says
      "look here"; status amber says "this is not right yet". Never spend one to mean the other.
   4. The prebuilt theme bundles are compiled output with no source in this repo. This file loads
      after them on both shells, so its declarations win.

   This file is SERVED to every visitor. Keep comments technical: the reasoning, the measurements
   and the dates behind each rule live in CHANGELOG.md, which is not served. */

:root {
  /* ── Brand accent ──
     ONE base. Tint and line are derived from it by alpha so they cannot drift onto a
     different gold. Only `strong` is a second literal: a darkened accent cannot be made
     by alpha over an unknown background, and it is the value that must clear 4.5:1. */
  --nv-accent-rgb: 176, 137, 42;                        /* #B0892A */
  --nv-accent:        rgb(var(--nv-accent-rgb));
  --nv-accent-strong: #8C6C1F;                          /* 4.91:1 on white — accent as TEXT */
  --nv-accent-soft:   rgba(var(--nv-accent-rgb), .12);  /* tint fill */
  --nv-accent-line:   rgba(var(--nv-accent-rgb), .34);  /* hairline / border */
  --nv-accent-ring:   rgba(var(--nv-accent-rgb), .40);  /* focus ring */

  /* Contrast, measured: --nv-accent 3.25:1 on white and 3.01:1 on #f4f6fb — clears the
     3:1 floor for a non-text graphic, FAILS the 4.5:1 text floor, so never body text.
     --nv-accent-strong is 4.91:1 and is the one that may be text. */

  /* ── Status amber — "not right yet" ──
     A verdict, not a decoration. Same construction: one base, derived tint. The base is
     2.15:1 on white — a fill and a dot, never a word. `fg` is 5.02:1. */
  --nv-warn-rgb: 245, 158, 11;                          /* #f59e0b */
  --nv-warn:      rgb(var(--nv-warn-rgb));
  --nv-warn-fg:   #b45309;                              /* 5.02:1 on white */
  --nv-warn-bg:   rgba(var(--nv-warn-rgb), .12);
  --nv-warn-line: rgba(var(--nv-warn-rgb), .34);

  /* ── Legacy aliases ──
     So older rules, and the literals still inside the prebuilt bundles, resolve to the SAME
     colour rather than to whichever declaration the cascade left standing. Aliases, not a
     second source: every one points at a token above. Delete one when its last reader
     is gone. */
  --nv-gold:        var(--nv-accent);
  --nv-gold-rgb:    var(--nv-accent-rgb);
  --nv-gold-hover:  var(--nv-accent-strong);
  --nv-gold-soft:   var(--nv-accent-soft);
  --nv-color-accent:        var(--nv-accent);
  --nv-color-accent-hover:  var(--nv-accent-strong);
  --nv-color-accent-soft:   var(--nv-accent-soft);
  --nv-color-warning: var(--nv-warn);
  --nv-warning-fg:    var(--nv-warn-fg);
  --nv-amber-dark:    var(--nv-warn-fg);
  --nv-st-warn-fg:    var(--nv-warn-fg);
  --nv-st-warn-bg:    var(--nv-warn-bg);
  --nv-st-warn-ln:    var(--nv-warn-line);
}
