/* tokens.css — the single source of brand values (ARCHITECTURE.md D9).
   Direction revised at the W1 watched drive (Travis, 2026-08-13): modern/clean,
   high contrast — bright silvers on deep blacks. The app's brass was carried over
   first and rejected at the same drive ("muddy yellow" on the cool ground — the hue
   only worked against the old warm charcoal). The accent is now **saw-blade red**,
   chosen by Travis from the association he actually carries: a Diablo blade is the
   first thing "kerf" calls to mind for the person this tool is built by and for.
   Freud publishes no hex (Perma-SHIELD is a physical coating, not a brand spec), so
   the value is derived from the coating's appearance and then lifted for legibility
   on this ground: the literal blade red (#d4241c) reads 3.79:1 against --bg and goes
   dull; the shipped value reads 4.96:1. The wood ramp stays as content-accent tokens:
   screenshots and the viewer carry the wood, the chrome stays precise. Every color
   literal in site/ lives in this file; pages and site.css consume var(--…) only. */

:root {
  /* Tell the UA this is a dark surface, so it paints scrollbars (and, at W4, form
     controls) to match instead of rendering light chrome against a near-black page. */
  color-scheme: dark;

  /* Ground — deep neutral blacks, slightly cool */
  --bg:         #0b0c0e;
  --bg-2:       #101215;   /* forward consumer: W5 viewer canvas letterbox / sticky bars */
  --glow:       #15181c;   /* faint cool glow behind the page top */
  --panel:      #131518;
  --panel-2:    #1a1d21;   /* raised: inputs, wells */
  --line:       #26292e;   /* hairlines, borders */
  --line-bright:#3a3f46;   /* hover/focus borders */

  /* Ink — silver scale, high contrast */
  --ink-max:    #f4f6f8;   /* headings — near-white */
  --ink:        #dfe3e8;   /* body — bright silver */
  --ink-dim:    #9aa1a9;   /* secondary */
  --ink-faint:  #79818a;   /* section labels, footer — ships as 11px body text, so it
                              carries the same 4.5:1 floor as --accent: 4.96:1 vs --bg,
                              4.51:1 vs --glow. Was #626970 (3.52:1 / 3.20:1) until
                              round 3 measured it. */

  /* Accent — the single chroma in the chrome (saw-blade red) */
  --accent:        #f0392b;
  --accent-bright: #ff5c4e;   /* forward consumer: W4 primary-button hover / focus ring */

  /* Wood — content-accent ramp (demo/viewer surfaces; not chrome) */
  --amber:      #e08a3c;
  --oak:        #b98a52;
  --oak-light:  #d9b486;
  --cherry:     #9c5a45;
  --walnut:     #6f5039;

  /* Verdict/status colors. CF-0002 was resolved by W6's token/ground re-derivation:
     --bad now carries the curated viewer's error status without colliding with the
     brand accent; --good and --warn remain reserved for future measured states. */
  --good:       #7faa6b;
  --warn:       #d9a441;
  --bad:        #e0567f;

  /* Derived washes and shadows (kept here so no rgba() literal escapes this file) */
  --shadow-panel: 0 1px 0 rgba(255, 255, 255, 0.03) inset, 0 12px 32px rgba(0, 0, 0, 0.35);
                  /* forward consumer: W5 floating viewer controls (the flat chrome
                     here is deliberate — depth is reserved for overlays) */
  --well:         rgba(255, 255, 255, 0.02);   /* subtle raised wash (current nav item) */
  --accent-wash:  rgba(240, 57, 43, 0.08);     /* forward consumer: W6 cut-list row hover */
  --scrim:        rgba(0, 0, 0, 0.5);          /* forward consumer: W5 drag-drop overlay */

  /* Type — modern sans for the surface; mono for code */
  --font-sans:  ui-sans-serif, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono:  ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;

  /* Layout */
  --max-width: 1080px;
  --measure:   42rem;      /* comfortable line length for prose */
  --radius:    8px;      /* forward consumer: W5 viewer panels / W4 cards. The panel
                            grid dropped it at round 3 — its hairlines moved onto the
                            items, and clipping to a rounded container is what forced
                            the count-dependent idiom that broke. */
  --radius-sm: 4px;      /* consumed in W1: nav pill, focus ring, inline code. (Was
                            annotated as a W4 forward consumer at round 2, which was
                            true then and falsified by [P1.4] and [P1.7].) */
}
