/* RootOptics design tokens — direction 01 "The submittal"
   APPROVED by founder 2026-08-04. Single source of truth for every surface.
   Rule: colour appears ONLY where data is. The interface is ink on vellum. */

:root{
  /* ink & ground */
  --ro-ink:        #101820;  /* drafting ink, blue-black, never pure black */
  --ro-ink-2:      #4A555F;  /* secondary text */
  /* WAS #8A939B, which is 2.99:1 against the sheet — under the 4.50 WCAG AA threshold for
     normal text, and used for FOOTER NAVIGATION LINKS on every page. Found by
     ops/visual_audit.py on its first run: 33 to 70 low-contrast nodes on every page of the
     site. I nearly muted the check as noise because it fired everywhere; firing everywhere
     was the finding.

     AND THE FIRST FIX WAS NOT ENOUGH. #6B727C clears 4.50 against --ro-sheet but only
     manages 4.04 against --ro-rule-2, which is what the footer and inset panels sit on —
     so checking against one background would have shipped a fix that still failed on the
     surface where the muted text actually lives. #5F6670 is the darkest-hue-preserving
     value that clears AA against sheet (5.32), card (5.80) AND rule-2 (4.82). */
  --ro-ink-3:      #5F6670;  /* labels, notation, axis — AA on EVERY ground in this system */
  --ro-sheet:      #F6F5F2;  /* vellum, cool - deliberately not cream */
  --ro-card:       #FFFFFF;
  --ro-rule:       #D8D6D0;  /* hairline */
  --ro-rule-2:     #EDEBE6;  /* interior hairline */

  /* data only - never used on chrome, buttons, badges or nav */
  --ro-cyan:       #134E7C;  /* cyanotype: primary data series */
  --ro-cyan-2:     #7FA8C6;  /* interval band, secondary */
  --ro-cyan-3:     #E2EBF2;  /* fill at low weight */
  --ro-brass:      #9A6B18;  /* benchmark / comparison series */
  --ro-alarm:      #A32020;  /* out of tolerance AND our own misses */
  --ro-verified:   #1F6B4A;  /* confirmed against source */

  /* type */
  --ro-font-sans:  'IBM Plex Sans', system-ui, sans-serif;
  --ro-font-mono:  'IBM Plex Mono', ui-monospace, monospace;
  --ro-track-display: -0.028em;
  --ro-track-mono:    0.14em;   /* eyebrows, uppercase */

  /* geometry - drawings do not have rounded corners */
  --ro-radius:     0;
  --ro-hair:       1px;
  --ro-pad:        20px;
}

/* every figure on every surface */
.ro-num{ font-family:var(--ro-font-mono); font-variant-numeric: tabular-nums lining-nums;
         font-feature-settings:"tnum" 1; }
.ro-eyebrow{ font-family:var(--ro-font-mono); font-size:11px; letter-spacing:var(--ro-track-mono);
             text-transform:uppercase; color:var(--ro-ink-3); }
