/* GENERATED by tools/vendor.mjs from wl-web/ — DO NOT EDIT. Edit the source and re-run. */
/* wl-web — the line-wide WEB design tokens. Single source of truth.
 *
 * This is the file Attune's web/index.html has always cited as "Tokens from wl-ui/tokens/colors.css"
 * — which never existed. It does now, here, because the consumers are web surfaces and wl-ui is a
 * C++ library. The VALUES are ported from wl-ui/Source/WLTheme.h so the web and the plugin faceplates
 * agree by construction rather than by memory.
 *
 * Consumers:
 *   - warrenlabs-site  (Astro)                — imported by src/layouts/Layout.astro
 *   - attune           (JUCE WebBrowserComponent) — vendored into web/ at configure time
 *
 * DARK IS THE DEFAULT, unconditionally — not inferred from the OS. Light is a real, first-class
 * palette, but it is opt-in via the toggle only (Attune shipped light first; the site had none
 * until 2026-08-02, then briefly followed the OS until 2026-08-03).
 *
 * Theming contract — TWO layers (the OS layer was removed 2026-08-03):
 *   1. :root                             → dark values. The default, unconditionally.
 *   2. :root[data-theme="light"]         → light, and ONLY via the toggle, which persists.
 * The site does not read prefers-color-scheme at all. No data-theme means dark.
 *
 * ACCENT: #FF9E2C = oklch(0.78 0.16 64) = Colour(255,158,44).
 * ONE accent, signal-state only — never decoration. Settled 2026-08-03 ON THE BRIGHTER VALUE: the
 * plugins' #eeb154 (chroma 0.13) read visibly duller on a page than the site's #FF9E2C (chroma
 * 0.16), and the site is where most people meet the brand. wl-ui's WLTheme.h, Level's LevelTheme.h
 * and three plugin screens moved to match, so this is genuinely one accent now — it had been
 * defined independently in NINE places. Don't reintroduce #eeb154.
 *
 * LIGHT IS NOT AN INVERSION OF DARK. The first light palette (2026-08-02) reused Attune's values
 * wholesale, which was wrong: a mid-grey #dcdfe1 ground suits a dense instrument UI and looks
 * washed-out under warrenlabs.com's 196px display type — grey type on a grey field. Light now has
 * its own near-white ground and near-black ink so the homepage keeps its drama.
 */

:root {
  /* ---- ground / chrome (graphite anodize) ---- */
  --wl-bg: #0c0d0f;
  --wl-bg-2: #0f1012;   /* alternating section tint — NOT the plot glass, which is --wl-graph-bg */
  --wl-ground: #1b1d20;
  --wl-surface: #1b1d20;
  --wl-surface-2: #26292d;
  --wl-raise: #2d3137;
  --wl-line: #24272b;
  --wl-line-soft: #1b1d20;
  --wl-hairline: #32363c;
  --wl-panel-edge: #34383d;

  /* ---- ink ---- */
  --wl-text: #e8ebed;
  --wl-muted: #868d92;
  --wl-muted-2: #565b60;

  /* ---- accent (signal state only) ---- */
  --wl-accent: #FF9E2C;
  --wl-accent-soft: #ffb257;
  --wl-accent-dim: rgba(255, 158, 44, 0.14);
  --wl-accent-line: rgba(255, 158, 44, 0.3);
  --wl-on-accent: #1b1d20;
  --wl-good: #5dcaa5;

  /* ---- the graph ("display glass") ----
     Read by wl-plot.js via getComputedStyle, so the PLOT follows the theme, not just the chrome.
     This is the part /graphs used to hardcode as #0f1012 / #24272b / #565b60 / #34383d. */
  --wl-graph-bg: #08090a;
  --wl-graph-grid: rgba(220, 228, 232, 0.1);
  --wl-graph-grid0: rgba(220, 228, 232, 0.2); /* the 0 dB / zero-reference line, deliberately stronger */
  --wl-graph-axis: #6e747a;
  --wl-graph-anno: #6e747a;
  --wl-graph-band: rgba(255, 158, 44, 0.11);

  /* Multi-series palette for overlay plots (/graphs allows six at once).
     Series 1 is NOT the accent: on a plot every series is equally "signal", so leading with the
     accent would imply the first pick is privileged. Amber stays for targets and UI state. */
  --wl-series-1: #cb7d28;
  --wl-series-2: #4a97e1;
  --wl-series-3: #3daa6d;
  --wl-series-4: #d16c96;
  --wl-series-5: #9f7dd8;
  --wl-series-6: #10a6ad;

  /* Attune's three fixed roles (yours / target / voice-matched). Distinguished by DASH as well as
     hue — see wl-plot.js strokeCurve — so the plot survives colour-blindness and greyscale print. */
  --wl-trace-yours: #565c61;
  --wl-trace-target: #FF9E2C;
  --wl-trace-matched: #e8ebed;

  /* ---- type ----
     JetBrains Mono is the line-wide mono: wl-ui embeds it and every plugin faceplate uses it via
     WLTheme, so the web matches the apps rather than the other way round. */
  --wl-display: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
  --wl-sans: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --wl-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  /* Instrument Serif is NOT part of the type system. It is the Attune wordmark's signature only,
     loaded solely on surfaces that render that wordmark. Never use it for prose. */
  --wl-wordmark-attune: 'Instrument Serif', Georgia, serif;

  --wl-radius: 12px;
  --wl-radius-sm: 9px;

  /* Header height. A TOKEN because /graphs sizes its viewport-filling layout against it
     (calc(100vh - var(--wl-head-h))) — it previously hardcoded 68px while the real header was ~97px,
     which is why the desktop graph scrolled by ~29px. Anything full-height must use this, never a
     literal. Shortened from ~97px to 64px 2026-08-02: the old one ate a tenth of a laptop screen. */
  --wl-head-h: 64px;
}

/* ---- DARK IS THE DEFAULT, and it is NOT the OS's decision (2026-08-03) ----
   A `@media (prefers-color-scheme: light)` block used to live here, so a visitor whose OS was set
   to light got a light site whether they asked for it or not. Warren Labs is a dark-ground brand —
   the rack, the faceplates, the plot glass — so dark is the identity, not something we infer.
   Light is now reachable ONLY through the ◐ toggle, which stamps data-theme and persists.

   Consequence for anything reading the theme: with no data-theme attribute the answer is "dark",
   full stop. Do NOT fall back to matchMedia. That was correct while the OS drove the default and
   is now a bug — it makes the first toggle click appear to do nothing on a light-preferring
   machine, because it computes "currently light" for a page that is actually dark.

   Attune is unaffected: the app carries its own tokens inline in web/index.html and still follows
   the OS, which is right for an app but not for a brand site. */

/* ---- explicit toggle: wins over the OS in BOTH directions, and persists ---- */
:root[data-theme='light'] {
  --wl-bg: #f7f8f9;
  --wl-bg-2: #eef0f1;
  --wl-ground: #f7f8f9;
  --wl-surface: #ffffff;
  --wl-surface-2: #f2f3f4;
  --wl-raise: #e9ebec;
  --wl-line: #d9dcde;
  --wl-line-soft: #e6e8ea;
  --wl-hairline: #d9dcde;
  --wl-panel-edge: #c9cdd0;

  --wl-text: #16181b;
  --wl-muted: #55595e;
  --wl-muted-2: #868b90;

  --wl-accent: #a85c04;
  --wl-accent-soft: #8f4d03;
  --wl-accent-dim: rgba(168, 92, 4, 0.12);
  --wl-accent-line: rgba(168, 92, 4, 0.32);
  --wl-on-accent: #ffffff;
  --wl-good: #1f7a55;

  --wl-graph-bg: #f2f4f5;
  --wl-graph-grid: rgba(22, 24, 27, 0.11);
  --wl-graph-grid0: rgba(22, 24, 27, 0.22);
  --wl-graph-axis: #55595e;
  --wl-graph-anno: #55595e;
  --wl-graph-band: rgba(168, 92, 4, 0.13);

  --wl-series-1: #a35f14;
  --wl-series-2: #1f6bb5;
  --wl-series-3: #23794a;
  --wl-series-4: #a8406c;
  --wl-series-5: #6f4faa;
  --wl-series-6: #0a767c;

  --wl-trace-yours: #8f9499;
  --wl-trace-target: #a85c04;
  --wl-trace-matched: #16181b;
}

/* data-theme="dark" needs no block: :root already holds the dark values, and with the OS layer
   gone there is nothing for it to override. It is still written by the toggle so that "I chose
   dark" is distinguishable from "I never chose", which keeps the stored preference honest. */
