/* ==========================================================================
   Tokens.

   The palette is not a website palette. These are the literal values of the
   `blueprint-dark` theme in bmux-core/src/theme.rs, plus one warm house light
   which is that theme's own `attention`. Every terminal capture on this page
   was rendered by the daemon against exactly these colours, so the page and
   the screenshots cannot drift apart -- if the theme changes, both change.
   ========================================================================== */

:root {
  /* --- surfaces ------------------------------------------------------- */
  --ground:  #151a23;
  --surface: #1b2230;
  --sunken:  #10151d;
  --deep:    #0c1017;   /* below sunken: the page's outermost letterbox */

  /* --- text ------------------------------------------------------------ */
  --ink:   #dde4ef;
  --muted: #8d9aae;
  /* The theme's own `faint` is #66738a, which is 3.64:1 on --ground -- it
     passes WCAG AA only as *large* text, and this page uses it exclusively at
     7-13.5px (code captions, stat labels, SVG diagram labels). Lifted in
     lightness with hue and saturation held exactly, giving 4.94:1 on --ground
     and 4.51:1 on --surface. This is the one place the page deliberately
     departs from bmux-core/src/theme.rs; the theme should follow, and then
     this comment goes away. It does NOT affect the terminal captures, which
     carry their own colours resolved by the daemon. */
  --faint: #7d899f;
  --rule:  #2b3547;

  /* --- signal ---------------------------------------------------------- */
  --accent: #7aa2f7;
  --ok:     #9ece6a;
  --house:  #e0af68;   /* the attention colour. the house lights. */
  --danger: #f7768e;
  --violet: #bb9af7;
  /* The agents rail's `done`. The page used --accent here and the daemon's
     captures use this, so the figure and the frames disagreed by a hue. */
  --cyan:   #7dcfff;

  /* --- type ------------------------------------------------------------ */
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas,
          "Liberation Mono", monospace;
  --sans: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont,
          "Segoe UI", Roboto, "Helvetica Neue", sans-serif;

  /* --- measure --------------------------------------------------------- */
  --maxw:   1180px;
  --maxw-wide: 1420px;
  --gutter: clamp(20px, 5vw, 40px);

  /* --- motion ---------------------------------------------------------- */
  --ease:     cubic-bezier(.22, .68, .28, 1);
  --ease-out: cubic-bezier(.16, .84, .30, 1);
  --curtain:  cubic-bezier(.66, .02, .28, 1);
}

/* One switch. Everything that moves reads this, so "reduce" is a real
   guarantee rather than a per-rule promise that one new animation forgets. */
@media (prefers-reduced-motion: reduce) {
  :root { --ease: linear; --ease-out: linear; --curtain: linear; }
}
