/* ============================================================================
   brand.css - the one place every brand LENGTH, SHADOW and MOTION value is
   declared, and the roles they answer to.

   DECLARATION ONLY. No selector but :root, no property but a custom property,
   no rule any element matches.

   TASK 04 MOVED THE CLIENT SHEET ONTO IT. app/static/client.css no longer
   declares a colour, a family or a fixed box, and no longer writes a hex,
   an rgb() or an hsl() anywhere outside the constitution's closed exception
   list. Every one of its 115 border-radius declarations reads a role token.
   TASK 05 MOVED THE OPERATOR SHEET TOO (2026-08-24, 153 literals). dash.css
   no longer declares the palette: what is left there is four shadow tokens
   (--edge, --drop-s, --drop-m, --drop-l) whose colour lives inside the shadow
   value, and --bar-h. Both are disclosed below rather than hidden.

   ---------------------------------------------------------------------------
   RECOUNTED 2026-08-23. THE LADDERS BELOW ARE NO LONGER PRELIMINARY.
   ---------------------------------------------------------------------------
   The first baseline measured ten of its thirteen viewports through DESKTOP
   media queries: in Chromium, page.screenshot(full_page=true) permanently
   disables touch emulation on the page (`pointer: coarse` turns false and does
   not come back, even across a navigation), and the probe shot each frame
   BEFORE it measured. The probe was repaired - frame last, one page per
   surface, and a guard that emits `probe-failed` instead of numbers when a
   touch device reads `pointer: coarse` false - and the whole matrix was
   re-shot on the final tree.

   WHAT THE RECOUNT FOUND: nothing on this file moves. Across all seven axes,
   ZERO values appeared that the broken baseline had not already seen, and no
   rung changed tier. deck and workspace counts are identical to the digit. The
   only counts that moved are on the client FOLDER, and every one of them is
   the first-visit welcome overlay being armed in one run and not the other -
   a transient state, not a media query. The reason the pointer branch could
   not hide a rung is mechanical, and it is not "only one rule": those six
   blocks carry TWENTY-TWO declarations on a measured axis. Seventeen sit on
   :hover selectors, and the probe reads the RESTING state, so it never renders
   them at all; the other five are `border-radius: inherit` on ::after
   pseudo-elements, which the probe does not walk and which restate their
   owner's value rather than introducing one. Neither group can contribute a
   value to a ladder. Everything else those blocks set is min-width,
   min-height, position, inset, content, transform, stroke, opacity - not on
   any axis this file declares. Constitution, section 1b.

   WHERE THE NUMBERS COME FROM. .autopilot/2026-08-23-brand-consistency-polish/
   records/baseline-values--2026-08-23T14-27-09Z.json, generated_at
   2026-08-23T14:27:09+00:00 - the first generation shot with the repaired
   probe, zero `probe-failed` of the pointer kind, thirteen viewports on every
   surface. It reproduces the 13:19:49 generation byte for byte outside its own
   timestamp, so two independent runs agree. Measured off the three ACCEPTED
   surfaces (client deck, client folder, operator workspace) by
   tests/browser/surface_probe.py. The rule that turned counts into rungs and
   every exclusion are in docs/[C] BRAND - clients.dmitrysocial.com (LOCKED).md.

   WHY THE SHAPE IS "ONE PRIMITIVE, MANY ROLES". A ratified gate,
   tests/browser/test_deck_ui_contract.py::test_t14_no_two_tokens_hold_the_same_value,
   fails the build when one literal has two homes, and blesses the opposite in
   its own words: a token written as var(--other) "names a meaning and has
   exactly one home". So each length lives once, as --px-N, and every role
   reads it.

   THE FOUR MISSING SPINE STEPS ARE BACK. 9px, 12px, 22px and 28px used to be
   held by client.css (--dock-inset, --radius, --pill-h-sm, --pill-h), so a
   literal here would have failed t14 and an alias would not have resolved on
   the six templates that load dash.css instead. Task 04 moved the literals,
   so the spine carries them and every role reads the spine rather than a
   pill height: --fs-display-floor is var(--px-28), NOT var(--pill-h), because
   editing one pill must never move a ratified DISPLAY_FLOOR. Restored with
   the move: --px-9 --px-12 --px-22 --px-28 · --fs-c-12 --fs-c-22 --fs-c-28
   --fs-g-9 --fs-display-floor · --sp-9 --sp-12 --sp-22 --sp-28 · --r-9.

   ONE NAME STAYED BEHIND ON PURPOSE: --radius. client.css declares it as
   var(--px-12), so the literal has one home here and the name keeps its
   address there. --r-card reads var(--radius) and therefore does NOT resolve
   inside this file - that crossing is the tested behaviour of the gate
   (tests/test_brand_contract.py: a var chain that leaves the sheet is
   answered by the page), and collapsing it would delete the only case that
   proves the gate can answer one.

   KNOWN SECOND HOME, DISCLOSED: --px-56 holds 56px, and dash.css holds the same
   literal in --bar-h. It resolves everywhere, so it is not the failure above,
   but it is one literal with two homes on the six operator templates. --bar-h
   cannot be aliased (E5), so task 05 deliberately left it where it is; this
   disclosure is the standing answer, not a note waiting on a task.

   WHAT IS DELIBERATELY ABSENT, PERMANENTLY. --bar-h and --ease-out. client.css
   reads both and declares neither, so on the deck --bar-h falls back to the
   64px/88px at each call site and --ease-out is invalid inside client.css:502,
   which voids .cover-start's whole transition. Declaring either would MOVE the
   deck. --cal-top-h and --line-2 were in this list for the same reason and are
   no longer read by any sheet at all, so they have left it. Still absent on
   purpose: the runtime names JavaScript writes onto elements: --vp-h, --vp-lvh,
   --vv-offset, --wl-total, --photo, --solid, --sat, --lb-col.

   COLOUR, THE FAMILIES AND THE FIXED BOXES ARE HERE NOW, at the foot of the
   file. They were moved out of client.css rather than copied, for the same
   gate: a second declaration is the defect t14 exists to catch. 167 distinct
   colours went in and 167 came out - nothing was rounded, merged or shifted,
   and the screen diff against the pre-change baseline is the receipt.
   Constitution, sections 3, 10 and 11.
   ============================================================================ */

:root {

  /* --- THE LENGTH SPINE -------------------------------------------------
     Every length the accepted surfaces render, each with exactly one home,
     each resolving on all nine templates. Roles below read these; nothing
     else declares a length literal. The four steps client.css used to hold
     are here now - see the header, and the line that marks them below. */
  --px-1: 1px;        --px-2: 2px;        --px-3: 3px;        --px-4: 4px;
  --px-5: 5px;        --px-6: 6px;        --px-7: 7px;        --px-8: 8px;
  /* the four steps that were held by client.css until task 04 moved them */
  --px-9: 9px;        --px-12: 12px;      --px-22: 22px;      --px-28: 28px;
  --px-13-5: 13.5px;  --px-19: 19px;
  --px-9-5: 9.5px;    --px-10: 10px;      --px-10-5: 10.5px;  --px-11: 11px;
  --px-11-5: 11.5px;  --px-12-5: 12.5px;  --px-13: 13px;      --px-14: 14px;
  --px-14-5: 14.5px;  --px-15: 15px;      --px-15-5: 15.5px;  --px-16: 16px;
  --px-17: 17px;      --px-18: 18px;      --px-19-2: 19.2px;  --px-20: 20px;
  --px-21: 21px;      --px-23: 23px;      --px-24: 24px;      --px-30: 30px;
  --px-32: 32px;      --px-33: 33px;      --px-34: 34px;      --px-36: 36px;
  --px-40: 40px;      --px-44: 44px;      --px-46: 46px;      --px-48: 48px;
  --px-54: 54px;      --px-56: 56px;      --px-60: 60px;      --px-64: 64px;
  --px-68: 68px;      --px-72: 72px;      --px-80: 80px;      --px-84: 84px;
  --px-92: 92px;      --px-96: 96px;      --px-98: 98px;      --px-116: 116px;
  --px-120: 120px;    --px-128: 128px;    --px-999: 999px;

  /* --- TYPE: TWO TIERS, ONE PER SIDE -----------------------------------
     Dmitry, 2026-08-23, verbatim: "Two tiers, one per side." The client
     surfaces run a strict canonical ladder of whole pixels; the operator
     surfaces get a tier of their own, half pixels included. The tier is in
     the NAME so a gate can tell them apart by prefix instead of by a list of
     numbers it has to keep in sync.

     --fs-c-*  client canonical    --fs-op-*   operator
     --fs-g-*  glyph micro         --fs-one-*  frozen singleton
     --fs-d-*  display

     CLIENT CANONICAL. Rungs 10 11 12 13 15 16 18 22 28; 12, 22 and 28 have
     no token yet (header). */
  --fs-c-10: var(--px-10);        --fs-c-11: var(--px-11);        --fs-c-13: var(--px-13);
  --fs-c-12: var(--px-12);        --fs-c-22: var(--px-22);        --fs-c-28: var(--px-28);
  --fs-c-15: var(--px-15);        --fs-c-16: var(--px-16);        --fs-c-18: var(--px-18);

  /* OPERATOR. Its own tier, ratified by Dmitry, not a set of pending shifts.
     Five half pixels and five whole ones the canon does not carry. Nothing
     moves: an accepted surface is frozen, and the two sides answer to
     different priorities. */
  --fs-op-9-5: var(--px-9-5);     --fs-op-10-5: var(--px-10-5);   --fs-op-11-5: var(--px-11-5);
  --fs-op-12-5: var(--px-12-5);   --fs-op-14: var(--px-14);       --fs-op-14-5: var(--px-14-5);
  --fs-op-17: var(--px-17);       --fs-op-20: var(--px-20);       --fs-op-21: var(--px-21);
  --fs-op-23: var(--px-23);

  /* THE RUNGS THE OPERATOR TIER SHARES WITH THE CLIENT LADDER (task 05's work
     order, 2026-08-24). Nine of the operator side's sizes are numerically the
     same as a client rung, and the gate reads the tier off the PREFIX, so
     without an --fs-op- name they read as "a rung of the client tier; this
     document answers to dash.css" - 66 nodes at 13px on the dashboard alone.
     Written as var(--fs-c-N) rather than as a literal, which is the form t14
     blesses in its own words: a token written as var(--other) "names a meaning
     and has exactly one home". Nothing moves; declaring a rung is what Dmitry
     chose over shifting a number ("Two tiers, one per side", and on 28/30
     specifically: "Two new rungs, nothing moves"). */
  --fs-op-10: var(--fs-c-10);     --fs-op-11: var(--fs-c-11);     --fs-op-12: var(--fs-c-12);
  --fs-op-13: var(--fs-c-13);     --fs-op-15: var(--fs-c-15);     --fs-op-18: var(--fs-c-18);
  --fs-op-22: var(--fs-c-22);     --fs-op-28: var(--fs-c-28);     --fs-op-30: var(--fs-d-30);
  /* two the client ladder does not carry at all: the brand lab's own chrome */
  --fs-op-13-5: var(--px-13-5);   --fs-op-19: var(--px-19);

  /* GLYPH MICRO. Rungs 7 8 9, all three declared. Below the canon's
     10px floor deliberately: these are glyphs, not text. They are recognised
     by shape and never read, so pulling them to 10px would change an icon's
     geometry to satisfy a ladder that does not govern it. Craft ruling. */
  --fs-g-7: var(--px-7);          --fs-g-8: var(--px-8);          --fs-g-9: var(--px-9);

  /* FROZEN SINGLETONS. Two sizes that belong to no tier, declared as
     measured, without a shift. Both sit on accepted surfaces, and accepted is
     frozen; picking 15 over 16 by eye is exactly the freelancing the
     derivation rule forbids. Craft ruling. */
  --fs-one-15-5: var(--px-15-5);  --fs-one-19-2: var(--px-19-2);

  /* --- TYPE, DISPLAY TIER (above 28px) ----------------------------------
     Above the floor the deck sizes type with clamp(min, Nvw, max), so what
     renders between the ends is an interpolation of the viewport and cannot
     be a token. The ladder governs the declared ENDS. The floor is 28px, the
     ratified DISPLAY_FLOOR of tests/browser/test_deck_ui_contract.py, and it
     does have a home here: --fs-display-floor below, beside --fs-op-28.
     --fs-d-32 renders nowhere on the three accepted surfaces and stays
     reserved on purpose: deleting a rung nobody is standing on is how it gets
     re-invented. Craft ruling. */
  --fs-d-30: var(--px-30);        --fs-d-32: var(--px-32);        --fs-d-34: var(--px-34);
  --fs-d-36: var(--px-36);        --fs-d-40: var(--px-40);        --fs-d-44: var(--px-44);
  --fs-d-54: var(--px-54);        --fs-d-56: var(--px-56);        --fs-d-60: var(--px-60);
  --fs-d-64: var(--px-64);        --fs-d-68: var(--px-68);        --fs-d-116: var(--px-116);
  --fs-d-128: var(--px-128);
  /* the ratified DISPLAY_FLOOR of tests/browser/test_deck_ui_contract.py.
     It reads the spine, never --pill-h: a coincidence of numbers is not a
     shared meaning, and one pill must not be able to move the floor. */
  --fs-display-floor: var(--px-28);

  /* --- RADIUS, BY ROLE --------------------------------------------------
     One value per role. The role names are what make "one radius per role"
     checkable at all. --r-card reads --radius because a radius reading a
     radius is the same decision, not a coincidence of numbers, and --radius
     is declared in BOTH sheets so it resolves everywhere. */
  --r-none: 0;
  --r-hair: var(--px-4);       /* the smallest real corner: keys, mini bars, marks */
  --r-chip: var(--px-8);       /* small enclosed labels, inner wells */
  --r-card: var(--radius);     /* THE house radius: cards, tiles, inputs, buttons */
  --r-panel: var(--px-16);     /* a panel that holds cards */
  --r-sheet: var(--px-20);     /* a full sheet, a media plate */
  --r-pill: var(--px-999);   /* a capsule: pills, chips, segmented controls */
  --r-circle: 50%;             /* geometric, not a length: dots, avatars */

  /* Radii the measurement added on top of that ladder. Each line is what was
     measured, not what is proposed. The 9px rung is --r-9 below, declared when
     dash.css was migrated; it is the one the operator sheet leans on hardest. */
  --r-1: var(--px-1);          /* deck + folder, 26x - the 1px hairline rule */
  --r-3: var(--px-3);          /* workspace, 10x */
  --r-6: var(--px-6);          /* workspace, 43x */
  --r-7: var(--px-7);          /* workspace, 43x */
  --r-9: var(--px-9);          /* workspace, 79x */
  --r-10: var(--px-10);        /* workspace, 71x */
  --r-11: var(--px-11);        /* workspace, 6x */
  --r-14: var(--px-14);        /* workspace, 25x */

  /* --- BORDER WIDTH -----------------------------------------------------
     Two rungs. deck 4633 + folder 169 + workspace 1455 for the hairline;
     deck 351 and nowhere else for the thick one. */
  --bw-hair: var(--px-1);
  --bw-thick: var(--px-2);

  /* --- SPACING ----------------------------------------------------------
     What the accepted surfaces actually paint. This file records that; it
     does not tidy it into a grid nobody ratified. Rungs 9, 12, 22 and 28
     arrived with task 04 and sit on the third line below; 12 is the busiest
     rung on the axis. */
  --sp-1: var(--px-1);            --sp-2: var(--px-2);            --sp-3: var(--px-3);            --sp-4: var(--px-4);
  --sp-5: var(--px-5);            --sp-6: var(--px-6);            --sp-7: var(--px-7);            --sp-8: var(--px-8);
  --sp-9: var(--px-9);            --sp-12: var(--px-12);          --sp-22: var(--px-22);          --sp-28: var(--px-28);
  --sp-10: var(--px-10);          --sp-11: var(--px-11);          --sp-13: var(--px-13);          --sp-14: var(--px-14);
  --sp-15: var(--px-15);          --sp-16: var(--px-16);          --sp-18: var(--px-18);          --sp-20: var(--px-20);
  --sp-24: var(--px-24);          --sp-30: var(--px-30);          --sp-32: var(--px-32);          --sp-33: var(--px-33);
  --sp-34: var(--px-34);          --sp-36: var(--px-36);          --sp-40: var(--px-40);          --sp-46: var(--px-46);
  --sp-48: var(--px-48);          --sp-54: var(--px-54);          --sp-56: var(--px-56);          --sp-60: var(--px-60);
  --sp-64: var(--px-64);          --sp-72: var(--px-72);          --sp-80: var(--px-80);          --sp-84: var(--px-84);
  --sp-92: var(--px-92);          --sp-96: var(--px-96);          --sp-98: var(--px-98);          --sp-120: var(--px-120);

  /* --- MOTION: CURVES ---------------------------------------------------
     Seven, all measured, named for what they do. Note the absent --ease-out.
     A shorthand that lists several curves was split on top-level commas only,
     so cubic-bezier(0.16, 1, 0.3, 1) counts once and its inner commas are not
     separators; each listed curve was counted separately. */
  --ease-standard: ease;                             /* 2304x */
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);        /* 273x, deck reveals */
  --ease-glide: cubic-bezier(0.23, 1, 0.32, 1);      /* 253x, the house ease */
  --ease-linear: linear;                             /* 88x, ambient drift only */
  --ease-settle: cubic-bezier(0.2, 0.7, 0.2, 1);     /* folder head arrival */
  --ease-inout: ease-in-out;                         /* 26x */
  --ease-cubic: cubic-bezier(0.33, 1, 0.68, 1);      /* 13x, the cover scrim */

  /* --- MOTION: DURATIONS ------------------------------------------------
     THE SUFFIX IS MILLISECONDS ON EVERY TOKEN OF THIS AXIS, including the
     ambient ones: --dur-drift-9000 is nine seconds. One axis, one unit in the
     name. Multi-value shorthands were split on top-level commas, same rule as
     the curves. 0.15s is the interaction default (1415x).

     STATE-DEPENDENT, AND KEPT ANYWAY: --dur-500, --dur-550 and --ease-settle
     are carried by the folder's first-visit welcome overlay, which arms only
     when localStorage says the last entrance was over twelve hours ago. They
     measure 26 / 26 / 52 with it armed and 0 without. They stay rungs on the
     precedent the constitution already set for --drop-l in section 9: a value
     with a NAME in the sheet is a decision that was made, and the count only
     says how often the state occurs. Same for --edge-selected, which needs a
     selected canvas tile to render at all.

     0.9s IS A RUNG, and it is Dmitry's ruling, not a derivation. It is the
     coming-soon page's background-video fade. Task 04 SHIFTED it to 0.7s on
     2026-08-23, reasoning that a value further than 50ms from every rung had
     to move to the nearest one; that ruling is superseded. Dmitry, 2026-08-24,
     verbatim: "Вернуть 0.9с и объявить ступень". Same shape as 28px and 30px
     on the type axis (section 4.0): far from every rung means it IS a rung. */
  --dur-100: 0.1s;   --dur-120: 0.12s;  --dur-140: 0.14s;
  --dur-150: 0.15s;  --dur-160: 0.16s;  --dur-180: 0.18s;
  --dur-200: 0.2s;   --dur-250: 0.25s;  --dur-280: 0.28s;
  --dur-340: 0.34s;  --dur-350: 0.35s;  --dur-450: 0.45s;
  --dur-460: 0.46s;  --dur-500: 0.5s;   --dur-550: 0.55s;
  --dur-600: 0.6s;   --dur-700: 0.7s;   --dur-900: 0.9s;
  --dur-1200: 1.2s;  --dur-1900: 1.9s;  --dur-2800: 2.8s;
  /* ambient: never ends, must never read as feedback */
  --dur-drift-9000: 9s;       --dur-drift-70000: 70s;   --dur-drift-88000: 88s;
  --dur-drift-190000: 190s;   --dur-drift-230000: 230s; --dur-drift-260000: 260s;

  /* --- SHADOW -----------------------------------------------------------
     The nine the client surfaces paint, plus the selected-tile edge. A stack
     of two is a composition of these, never an eleventh value. The operator
     lift set (--edge, --drop-s, --drop-m, --drop-l) already has its home in
     dash.css and is NOT restated here. */
  --shadow-media:        0 34px 80px -28px rgba(0, 0, 0, 0.72);
  --shadow-media-touch:  0 4px 18px rgba(0, 0, 0, 0.35);
  --shadow-media-rim:    inset 0 0 0 1px rgba(0, 0, 0, 0.55);
  --shadow-card:         0 10px 32px rgba(0, 0, 0, 0.5);
  --shadow-menu:         0 18px 50px rgba(0, 0, 0, 0.5);
  --shadow-dock:         0 10px 44px rgba(0, 0, 0, 0.5);
  --shadow-dock-rim:     inset 0 0 0 1px rgba(0, 204, 247, 0.1);
  --shadow-progress:     0 8px 28px rgba(0, 0, 0, 0.55);
  --shadow-sidebar:      8px 0 40px rgba(0, 0, 0, 0.6);
  --edge-selected:       inset 0 1px 0 rgba(255, 255, 255, 0.09);

  /* THE OPERATOR LIFT SET AND THE THREE RINGS (task 05's work order,
     2026-08-24). Section 9 of the constitution already named --edge and
     --drop-s; they are here now because the gate builds its law from THIS file
     only, so a value dash.css names but brand.css does not know stays
     off-system however well it is named there. They carry the --shadow-
     prefix because that prefix is how the gate knows an axis (--edge- also
     works, --edge alone does not), and because dash.css still declares its
     own --edge and --drop-s: different names, so no literal here gains a
     second home. A stack of two remains a COMPOSITION of these layers and
     never an eleventh value - the gate splits a stack and judges each layer. */
  --shadow-edge:         inset 0 1px 0 rgba(255, 255, 255, 0.055);
  --shadow-drop-s:       0 6px 18px -8px rgba(0, 0, 0, 0.9);
  --shadow-ring-hair:    inset 0 0 0 1px rgba(255, 255, 255, 0.08);
  --shadow-ring-accent:  inset 0 0 0 1px rgba(0, 204, 247, 0.35);
  --shadow-ring-ground:  0 0 0 2px #000;

  /* ======================================================================
     MOVED HERE BY TASK 04 - the palette, the two families and the fixed
     boxes. They were declared in client.css (and, identically, in dash.css)
     until now, which is why this file could not hold them: a literal with
     two homes is exactly what
     tests/browser/test_deck_ui_contract.py::test_t14_no_two_tokens_hold_the_same_value
     exists to fail. So they were MOVED, not copied - client.css declares
     none of them any more, and every rule there reads these names.
     Constitution sections 3, 10 and 11 are their law; this is their address.

     The alpha families below are the sheet's own literals given one name
     each, not a new palette: --k-NN is black at 0.NN, --w-NN white, --ink-NN
     the ink #F4F5F7, --accent-NN the brand cyan, --ok/--warn/--pend-NN the
     status hues. The names the constitution had already given four white
     alphas and three ink alphas (--panel, --line-faint, --line, --line-mid,
     --line-strong, --text-dim, --text-faint, --text-strong) are used
     instead of a generated one, because a value that already had a meaning
     keeps it. Nothing was rounded, merged or shifted: 167 distinct colours
     went in and 167 came out, and the screen diff is the receipt.
     ====================================================================== */

  /* --- FAMILIES ---------------------------------------------------------
     Two, self-hosted in app/static/fonts.css; no external origin is ever
     contacted. 'Whisper' is the third face on the sheet and is declared as
     --font-script two lines below - see the note there for why the one
     exception is named out loud rather than left loose at its call site. */
  --font-display: 'Outfit', sans-serif;
  --font-body: 'Instrument Sans', sans-serif;
  /* THE ONE EXCEPTION, AND IT IS DECLARED RATHER THAN LOOSE. The spec's
     story 2 allows exactly one third face, the decorative script on the
     hand-signature, and nothing else. Left as a literal at its call site
     it was a family the gate could only read as off-system - an exception
     the enforcing instrument cannot see is not an exception, it is a hole.
     Named here it is legal, singular, and impossible to reuse by accident,
     because a second call site would have to say so out loud. */
  --font-script: 'Whisper', cursive;
  /* The operator brand lab prints token VALUES - hexes, curves, pixel counts -
     and a proportional face makes a column of them unreadable. 12 nodes. This
     is chrome for the operator's own instrument, never client-facing type. */
  --font-mono: ui-monospace, monospace;

  /* COLOUR: GROUNDS
     Pure black is the ground; everything above it is an opaque grey or
     white at a declared alpha. */
  --bg:               #000000;
  --dev-outline:      rgba(180, 140, 255, 0.28);
  /* THE BRAND LAB'S OWN DEMO SWATCHES. They paint from a hard-coded list of
     sample hexes in brandlab.html and NOTHING reads these two names - they
     exist only so the gate stops calling the rendered hex off-system. That is
     the defect backwards: a hole in the instrument was closed by promoting the
     offending value to law. The constitution now carries the exception the
     instrument can read (section 2, BRAND-GATE:E3), and these two names are
     DELETED the moment tests/brand_contract.py reads that block - deleting
     them moves zero pixels, because no sheet reads them. Tracked as the E3
     lever hand-off; the clause and the block are constitution section 2, E3.
     #E9A23B is the --amber retired 2026-08-23; the lab still shows it.

     AND ONE OF THE TWO WAS NEVER A SWATCH. #3B3B3B is not in the lab's
     PALETTE array at all: it is what Chromium paints behind a native
     <input type="range"> under color-scheme: dark, measured on #angle and
     reproduced on a bare page. That is E4 verbatim - a native control that
     was never given the property - so it is a DEFECT, not a demo value and
     not a colour of ours. Renamed from --lab-swatch-grey so the name stops
     claiming otherwise; it goes when the control is styled or the lever
     lands, and it is listed in the constitution beside E4's other offenders. */
  --ua-range-track:     #3B3B3B;   /* REGISTRY: paints only a surface that answers to this document */
  --ice:                #A8F0FF;   /* REGISTRY: paints only a state the resting walk never reaches */
  --panel:            rgba(255, 255, 255, 0.04);
  --phone-grey:         #2A2E34;   /* REGISTRY: paints only a state the resting walk never reaches */
  --surface:          #101012;
  --surface-alt:        #1A1D22;   /* REGISTRY: paints only a state the resting walk never reaches */
  --white:            #FFFFFF;
  --surface-2:        #1A1A1E;
  --deep-46:            rgba(6, 8, 12, 0.46);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-well-88:      rgba(12, 14, 19, 0.88);
  --slate-90:           rgba(15, 17, 22, 0.9);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-well-92:        rgba(12, 14, 19, 0.92);   /* REGISTRY: paints only a state the resting walk never reaches */
  --surface-94:         rgba(16, 16, 18, 0.94);   /* REGISTRY: paints only a state the resting walk never reaches */
  --void-96:          rgba(3, 4, 7, 0.96);

  /* COLOUR: WHITE AT AN ALPHA - LINES, PANELS, LIFTS
     The four the constitution named keep their names; the rest are the
     sheet's own alphas, one name each. */
  --line:             rgba(255, 255, 255, 0.08);
  --line-faint:       rgba(255, 255, 255, 0.06);
  --line-mid:         rgba(255, 255, 255, 0.12);
  --line-strong:      rgba(255, 255, 255, 0.14);
  --w-00:               rgba(255, 255, 255, 0);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-02:             rgba(255, 255, 255, 0.02);
  --w-03:             rgba(255, 255, 255, 0.03);
  --w-05:             rgba(255, 255, 255, 0.05);
  /* THE OPERATOR LIFT TIERS' OWN ALPHAS, SPELLED THE WAY THEY ARE PAINTED.
     An alpha in legacy rgba() is one of 256 buckets, and Chromium answers
     getComputedStyle with the SHORTEST decimal in the bucket, not the one that
     was declared. The two below were first written 0.015 and 0.028, which are
     buckets 4 and 7 - and 4/255 prints 0.016, 7/255 prints 0.027. Same paint,
     other spelling. They are declared here in the printed spelling and named
     after it, so the name, the value and the pixel all say one thing.
     --w-055 is left exactly as it was: 0.055 is its own bucket's shortest
     decimal and comes back unchanged. RULE: a declared alpha survives the
     round trip only when it IS the shortest decimal of its own 8-bit bucket.
     The gate no longer depends on that - tests/brand_contract.py quantises
     both sides before comparing - but a name that lies is a name that will be
     believed.

     THE RULE THAT CLOSES THE CLASS (constitution s10): a token name encodes
     the RENDERED value or it encodes nothing. Not the declared one. Somebody
     grepping 0.396 must find --k-396 rather than nothing, and must not read
     --k-395 and conclude the sheet has no such colour. Four names broke it
     and were repaired on 2026-08-24 - --k-092 -> --k-09, --k-395 -> --k-396,
     --warn-045 -> --warn-043, --w-025 -> --w-024, each declared in the
     spelling the browser prints back. Zero pixels: a repaired pair is the
     same 8-bit bucket, which is the same paint. All 194 alpha tokens carrying
     a numeric suffix were checked against a live getComputedStyle round trip;
     those four were the whole population, and the rule - not that list - is
     what governs the next one. */
  --w-016:              rgba(255, 255, 255, 0.016);   /* REGISTRY: paints only a surface that answers to this document */
  --w-027:            rgba(255, 255, 255, 0.027);
  --w-055:            rgba(255, 255, 255, 0.055);
  --w-07:               rgba(255, 255, 255, 0.07);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-09:             rgba(255, 255, 255, 0.09);
  --w-10:             rgba(255, 255, 255, 0.1);
  --w-13:               rgba(255, 255, 255, 0.13);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-16:               rgba(255, 255, 255, 0.16);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-18:             rgba(255, 255, 255, 0.18);
  --w-20:               rgba(255, 255, 255, 0.2);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-25:               rgba(255, 255, 255, 0.25);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-26:               rgba(255, 255, 255, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-28:               rgba(255, 255, 255, 0.28);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-30:               rgba(255, 255, 255, 0.3);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-32:               rgba(255, 255, 255, 0.32);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-34:               rgba(255, 255, 255, 0.34);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-035:              rgba(255, 255, 255, 0.035);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-35:               rgba(255, 255, 255, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-45:               rgba(255, 255, 255, 0.45);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-50:               rgba(255, 255, 255, 0.5);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-78:               rgba(255, 255, 255, 0.78);   /* REGISTRY: paints only a state the resting walk never reaches */
  --w-90:             rgba(255, 255, 255, 0.9);

  /* COLOUR: THE INK
     One ink, #F4F5F7, at every alpha the sheet paints. */
  --text:             #F4F5F7;
  --text-dim:         rgba(244, 245, 247, 0.62);
  --text-faint:       rgba(244, 245, 247, 0.52);
  --text-strong:      rgba(244, 245, 247, 0.92);
  --ink-16:             rgba(244, 245, 247, 0.16);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-22:           rgba(244, 245, 247, 0.22);
  --ink-40:             rgba(244, 245, 247, 0.4);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-42:             rgba(244, 245, 247, 0.42);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-45:           rgba(244, 245, 247, 0.45);
  --ink-50:             rgba(244, 245, 247, 0.5);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-55:             rgba(244, 245, 247, 0.55);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-60:             rgba(244, 245, 247, 0.6);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-65:             rgba(244, 245, 247, 0.65);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-68:             rgba(244, 245, 247, 0.68);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-70:             rgba(244, 245, 247, 0.7);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-75:             rgba(244, 245, 247, 0.75);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-78:             rgba(244, 245, 247, 0.78);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-80:             rgba(244, 245, 247, 0.8);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-82:             rgba(244, 245, 247, 0.82);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-84:             rgba(244, 245, 247, 0.84);   /* REGISTRY: paints only a surface that answers to this document */
  --ink-85:           rgba(244, 245, 247, 0.85);
  --ink-86:             rgba(244, 245, 247, 0.86);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-88:             rgba(244, 245, 247, 0.88);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-90:             rgba(244, 245, 247, 0.9);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ink-94:             rgba(244, 245, 247, 0.94);   /* REGISTRY: paints only a state the resting walk never reaches */

  /* COLOUR: BLACK AT AN ALPHA - SCRIMS, WELLS, SHADOW PLATES
     Not the same decision as --bg: these veil what is under them. */
  --k-00:             rgba(0, 0, 0, 0);
  --k-08:               rgba(0, 0, 0, 0.08);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-10:               rgba(0, 0, 0, 0.1);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-12:               rgba(0, 0, 0, 0.12);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-20:               rgba(0, 0, 0, 0.2);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-22:               rgba(0, 0, 0, 0.22);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-25:               rgba(0, 0, 0, 0.25);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-26:               rgba(0, 0, 0, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-31:               rgba(0, 0, 0, 0.31);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-35:               rgba(0, 0, 0, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-42:               rgba(0, 0, 0, 0.42);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-45:               rgba(0, 0, 0, 0.45);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-46:               rgba(0, 0, 0, 0.46);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-50:               rgba(0, 0, 0, 0.5);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-52:             rgba(0, 0, 0, 0.52);
  --k-55:             rgba(0, 0, 0, 0.55);
  --k-60:               rgba(0, 0, 0, 0.6);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-72:               rgba(0, 0, 0, 0.72);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-78:               rgba(0, 0, 0, 0.78);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-85:               rgba(0, 0, 0, 0.85);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-88:               rgba(0, 0, 0, 0.88);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-90:             rgba(0, 0, 0, 0.9);
  --k-09:               rgba(0, 0, 0, 0.09);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-92:             rgba(0, 0, 0, 0.92);
  --k-98:               rgba(0, 0, 0, 0.98);   /* REGISTRY: paints only a state the resting walk never reaches */
  --k-396:              rgba(0, 0, 0, 0.396);   /* REGISTRY: paints only a state the resting walk never reaches */

  /* COLOUR: THE ACCENT
     One cyan. The neon #00FFF0 is the gradient's own end and is never
     painted alone; --grad composes it. */
  --accent:           #00CCF7;
  --accent-hi:          #38DAFF;   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-ink:       #00161C;
  /* THREE INKS FOR ONE ROLE, AND THAT IS A QUESTION, NOT A DECISION. Both of
     these also render on the FROZEN workspace (.wsb-btn.key, .dsx .btn.primary),
     so folding them into --accent-ink is a visible edit to an accepted surface
     and belongs to Dmitry, not to this file. Declared as measured so the gate
     stops calling them off-system while the question is open. */
  --accent-ink-2:     #04222E;   /* login + brandlab primary button */
  --accent-ink-3:       #04141A;   /* REGISTRY: paints only a surface that answers to this document · dashboard primary button */
  --grad-end:           #0098FE;   /* REGISTRY: paints only a surface that answers to this document */
  --neon:               #00FFF0;   /* REGISTRY: paints only a surface that answers to this document */
  --accent-00:          rgba(0, 204, 247, 0);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-06:          rgba(0, 204, 247, 0.06);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-07:          rgba(0, 204, 247, 0.07);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-08:        rgba(0, 204, 247, 0.08);
  --accent-10:        rgba(0, 204, 247, 0.1);
  --accent-12:        rgba(0, 204, 247, 0.12);
  --accent-13:          rgba(0, 204, 247, 0.13);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-14:        rgba(0, 204, 247, 0.14);
  --accent-16:          rgba(0, 204, 247, 0.16);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-18:          rgba(0, 204, 247, 0.18);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-20:        rgba(0, 204, 247, 0.2);
  --accent-22:          rgba(0, 204, 247, 0.22);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-24:        rgba(0, 204, 247, 0.24);
  --accent-26:          rgba(0, 204, 247, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-30:        rgba(0, 204, 247, 0.3);
  --accent-34:          rgba(0, 204, 247, 0.34);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-35:        rgba(0, 204, 247, 0.35);
  --accent-40:        rgba(0, 204, 247, 0.4);
  --accent-45:        rgba(0, 204, 247, 0.45);
  --accent-50:        rgba(0, 204, 247, 0.5);
  --accent-52:        rgba(0, 204, 247, 0.52);
  --accent-55:          rgba(0, 204, 247, 0.55);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-62:          rgba(0, 204, 247, 0.62);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-75:          rgba(0, 204, 247, 0.75);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-78:        rgba(0, 204, 247, 0.78);
  --accent-90:          rgba(0, 204, 247, 0.9);   /* REGISTRY: paints only a state the resting walk never reaches */
  --accent-95:          rgba(0, 204, 247, 0.95);   /* REGISTRY: paints only a state the resting walk never reaches */

  /* COLOUR: STATUS
     Four meanings, never decoration: approved, pending, revision, error. */
  --err:              #FF6B6B;
  --ok:               #3DD68C;
  --pend:             #F5C93B;
  --warn:             #FF8A3D;
  --ok-05:              rgba(61, 214, 140, 0.05);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-06:              rgba(61, 214, 140, 0.06);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-07:              rgba(61, 214, 140, 0.07);   /* REGISTRY: paints only a surface that answers to this document */
  --ok-08:              rgba(61, 214, 140, 0.08);   /* REGISTRY: paints only a state the resting walk never reaches */
  --pend-08:            rgba(245, 201, 59, 0.08);   /* REGISTRY: paints only a state the resting walk never reaches */
  --pend-12:            rgba(245, 201, 59, 0.12);   /* REGISTRY: paints only a surface that answers to this document · dashboard, a waiting month */
  --ok-32:              rgba(61, 214, 140, 0.32);   /* REGISTRY: paints only a surface that answers to this document · report, an approved edge */
  --warn-08:            rgba(255, 138, 61, 0.08);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-10:              rgba(61, 214, 140, 0.1);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-10:            rgba(255, 138, 61, 0.1);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-12:              rgba(61, 214, 140, 0.12);   /* REGISTRY: paints only a surface that answers to this document */
  --warn-12:            rgba(255, 138, 61, 0.12);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-16:              rgba(61, 214, 140, 0.16);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-16:            rgba(255, 138, 61, 0.16);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-17:            rgba(255, 138, 61, 0.17);   /* REGISTRY: paints only a state the resting walk never reaches */
  --pend-20:            rgba(245, 201, 59, 0.2);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-22:              rgba(61, 214, 140, 0.22);   /* REGISTRY: paints only a state the resting walk never reaches */
  --pend-22:            rgba(245, 201, 59, 0.22);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-22:            rgba(255, 138, 61, 0.22);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-26:              rgba(61, 214, 140, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-26:            rgba(255, 138, 61, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-28:              rgba(61, 214, 140, 0.28);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-30:              rgba(61, 214, 140, 0.3);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-32:            rgba(255, 138, 61, 0.32);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-34:            rgba(255, 138, 61, 0.34);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-35:              rgba(61, 214, 140, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches */
  --pend-35:            rgba(245, 201, 59, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-35:            rgba(255, 138, 61, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-40:              rgba(61, 214, 140, 0.4);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-42:              rgba(61, 214, 140, 0.42);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-45:              rgba(61, 214, 140, 0.45);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-043:           rgba(255, 138, 61, 0.043);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-45:            rgba(255, 138, 61, 0.45);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-50:              rgba(61, 214, 140, 0.5);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-50:            rgba(255, 138, 61, 0.5);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-55:            rgba(255, 138, 61, 0.55);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-60:              rgba(61, 214, 140, 0.6);   /* REGISTRY: paints only a state the resting walk never reaches */
  --ok-70:              rgba(61, 214, 140, 0.7);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-72:            rgba(255, 138, 61, 0.72);   /* REGISTRY: paints only a state the resting walk never reaches */
  --warn-78:            rgba(255, 138, 61, 0.78);   /* REGISTRY: paints only a state the resting walk never reaches */

  /* --- COMPOSED ---------------------------------------------------------
     The brand gradient is a composition of two declared ends, not a
     fourteenth colour, and --accent-2 is one decision with two names kept
     because ~11 rules say "the second accent" and mean this one. */
  --grad: linear-gradient(90deg, var(--neon), var(--grad-end));
  --accent-2: var(--accent);

  /* --- FIXED BOXES ------------------------------------------------------
     Numbers that are a contract between two elements, not free values.
     Constitution section 11. --sidebar-w and --stage are re-declared inside
     @media in client.css; those are contextual overrides of THIS name, not
     second homes for this literal. */
  --pill-h: var(--px-28);      /* round pill and status chip are ONE height */
  --pill-h-sm: var(--px-22);   /* the compact variant of the same object */
  --dock-ctl: 38px;            /* the phone dock's two terminals are one box */
  --dock-inset: var(--px-9);   /* ...at one inset from their own end */
  --sidebar-w: 240px;          /* deck sidebar */
  --stage: 100%;               /* the widest the deck's content may paint */

  /* ======================================================================
     WAVE 3 (2026-08-24) - the rest of what dash.css still writes as a literal.
     Measured, not guessed: 234 colour literals in that sheet, 108 distinct;
     58 of them already had a name here and only LOOKED missing because the
     spellings differ (#fff vs #FFFFFF, rgba(0,204,247,0.05) vs the spaced
     form). These are the 50 that genuinely had none, 64 call sites.
     Same scheme as the 167 above - family plus alpha. They were declared ahead
     of task 05 and read by nothing at that moment, which is why declaring them
     could not move a pixel; task 05 then swapped the literals for the names,
     and 36 of the 50 are read by a sheet today.

     EVERY TRAILING COUNT ON THESE LINES USED TO READ "x1" / "x2" AND WAS READ
     AS AN OCCURRENCE COUNT. It never was one: it counts CALL SITES in dash.css.
     The derivation rule of the constitution (section 1, step 1) counts nodes
     RENDERED on an accepted surface, and the two numbers are not the same
     number - --err-40 has one call site and paints 120 workspace nodes, while
     --warn-90 has one call site and paints none at all. Both counts are now
     printed, so no reader has to guess which question the figure answers.
     The rule was run on the colour axis on 2026-08-24 and its verdict is in
     the constitution, section 10.
     Three near-neighbours are declared AS MEASURED rather than merged, the
     same ruling as --accent-ink-2/-3: #33D8F9 beside --accent-hi #38DAFF,
     rgba(78,195,255,0.7) beside both, and rgba(6,8,11,*) beside --deep-*
     rgba(6,8,12,*). Merging them is a visible edit and Dmitry's to make.
     ====================================================================== */
  --accent-hi-2:        #33D8F9;   /* REGISTRY: paints only a state the resting walk never reaches · operator hover cyan; #38DAFF is --accent-hi, this is NOT it */
  --accent-28:          rgba(0, 204, 247, 0.28);   /* dash.css call sites: 3 · renders 12x on an accepted surface */
  --ink-32:             rgba(244, 245, 247, 0.32);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 3 · renders 0x on an accepted surface */
  --err-12:             rgba(255, 107, 107, 0.12);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 3 · renders 0x on an accepted surface */
  --accent-05:          rgba(0, 204, 247, 0.05);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 2 · renders 0x on an accepted surface */
  --ink-30:             rgba(244, 245, 247, 0.3);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 2 · renders 0x on an accepted surface */
  --err-10:             rgba(255, 107, 107, 0.1);   /* dash.css call sites: 2 · renders 30x on an accepted surface */
  --err-30:             rgba(255, 107, 107, 0.3);   /* dash.css call sites: 2 · renders 40x on an accepted surface */
  --warn-09:            rgba(255, 138, 61, 0.09);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 2 · renders 0x on an accepted surface */
  --k-70:               rgba(0, 0, 0, 0.7);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --k-95:               rgba(0, 0, 0, 0.95);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --accent-04:          rgba(0, 204, 247, 0.04);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --accent-25:          rgba(0, 204, 247, 0.25);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --accent-60:          rgba(0, 204, 247, 0.6);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --accent-85:          rgba(0, 204, 247, 0.85);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pitch-82:           rgba(6, 8, 11, 0.82);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pitch-94:           rgba(6, 8, 11, 0.94);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --deep-72:            rgba(6, 8, 12, 0.72);   /* dash.css call sites: 1 · renders 10x on an accepted surface */
  --surface-3:          #08080A;   /* constitution s10: the operator canvas tile well */
  --shale-62:           rgba(10, 12, 16, 0.62);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --shale-82:           rgba(10, 12, 16, 0.82);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --accent-pale-70:     rgba(78, 195, 255, 0.7);   /* REGISTRY: paints only a state the resting walk never reaches · a third cyan, paler again; as measured */
  --ink-05:             rgba(244, 245, 247, 0.05);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --ink-26:             rgba(244, 245, 247, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --ink-28:             rgba(244, 245, 247, 0.28);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --ink-35:             rgba(244, 245, 247, 0.35);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --ink-66:             rgba(244, 245, 247, 0.66);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-05:            rgba(245, 201, 59, 0.05);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-07:            rgba(245, 201, 59, 0.07);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-09:            rgba(245, 201, 59, 0.09);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-26:            rgba(245, 201, 59, 0.26);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-32:            rgba(245, 201, 59, 0.32);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --pend-90:            rgba(245, 201, 59, 0.9);   /* dash.css call sites: 1 · renders 12x on an accepted surface */
  --err-05:             rgba(255, 107, 107, 0.05);   /* dash.css call sites: 1 · renders 10x on an accepted surface */
  --err-08:             rgba(255, 107, 107, 0.08);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --err-20:             rgba(255, 107, 107, 0.2);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --err-25:             rgba(255, 107, 107, 0.25);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --err-28:             rgba(255, 107, 107, 0.28);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --err-35:             rgba(255, 107, 107, 0.35);   /* dash.css call sites: 1 · renders 40x on an accepted surface */
  --err-40:             rgba(255, 107, 107, 0.4);   /* dash.css call sites: 1 · renders 120x on an accepted surface */
  --warn-13:            rgba(255, 138, 61, 0.13);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-14:            rgba(255, 138, 61, 0.14);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-25:            rgba(255, 138, 61, 0.25);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-28:            rgba(255, 138, 61, 0.28);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-70:            rgba(255, 138, 61, 0.7);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-85:            rgba(255, 138, 61, 0.85);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --warn-90:            rgba(255, 138, 61, 0.9);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --err-pale-75:        rgba(255, 180, 180, 0.75);   /* the error hue tinted toward white */
  --w-024:              rgba(255, 255, 255, 0.024);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
  --w-42:               rgba(255, 255, 255, 0.42);   /* REGISTRY: paints only a state the resting walk never reaches · dash.css call sites: 1 · renders 0x on an accepted surface */
}
