/* GINKO LIVERY · the values for every SLOT of the Valley Standard v2, per mode, and nothing else.
   Imported after valley-2.css by every Ginko room. NEUTRALS ARE TRUE NEUTRALS (his, 2026-09-05 night, the third
   time: "light mode and dark mode still have that tint"): every ground, surface, field, text and line is an exact
   grey, chroma 0, so the eye has an anchor and a single warm value reads as a choice rather than a filter. The
   identity is in the accents (the sun, the Sacramento sky, the crossing-guard red) and the room lights.
   DARK IS NOT A MIRROR (his: "dark theme isn't just negative white theme"): depth is lightness, not shadow (surface
   lighter than ground, field lighter than surface; the lifts render as none, valley-2.css's dark block); chroma comes
   down (the sun .12 not .15, the sky .09 not .11, the red .13 not .17); the extremes pull in (ground L .22 not the
   panel's floor, text L .90 not white); the laws still hold (7:1 for text on its ground, 4.5:1 text-grade accents).
   Every value below is computed in OKLCH (kit/mk.py) and checked by kit-gate R7 in both modes.
   Rooms set data-light and nothing else. */
:root {
  --v-root: 17px;
  --v-face: "Hanken Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --v-face-display: "Bricolage Grotesque", var(--v-face);

  --v-ground:      #1B1B1B;         /* L .22 · the dark dense ground the four use (Crunchyroll, Jackbox): the art is the light in the room, never the paper */
  --v-on-ground:   #DEDEDE;         /* L .90 · not white · 12.8:1 */
  --v-on-ground-2: #BEBEBE;         /* 9.3:1 on ground, 7.1:1 on field */
  --v-surface:     #262626;         /* L .27 · lighter than the ground: depth is lightness here, never a white card */
  --v-on-surface:  #DEDEDE;         /* one text colour on the grounds */
  --v-field:       #303030;         /* L .31 · lighter again: the one surface a hand rests on */
  --v-on-field:    #DEDEDE;         /* the same */
  --v-on-field-2:  #BEBEBE;         /* quiet text on the field, 7.1:1 */
  --v-fill:        #E65179;         /* L .65 C .19 hue 344 · the house act (row 11, 2026-10-20): 5.01:1 ink, 4.77:1 dark shape */
  --v-on-fill:     #161616;         /* 5.01:1 */
  --v-fill-text:   #F3A8BC;         /* L .81 C .09 hue 344 · 9.14:1 on ground */
  /* ONE ACCENT, AND IT IS THE ACT (2026-09-17, the reskin brief: "the thing you can do is the coloured thing").
     go was a second accent, the sky beside the sun, and a screen with two coloured things has two acts. go now IS the
     fill, so the forward control on a door and the room's act are one colour, the room's own light under [data-light].
     The seven lights stand (his, 08-20 "we need range", 09-09 "emission at AA"): one accent PER SCREEN, lit by the room. */
  --v-go:          var(--v-fill);         /* the act */
  --v-on-go:       var(--v-on-fill);      /* its ink */
  --v-go-text:     var(--v-fill-text);    /* the act at text grade */
  --v-line:        #BEBEBE;         /* L .80 · a line, not a glare */
  --v-line-quiet:  rgba(222,222,222,.16);   /* the hairline is the line at .14 */
  --v-stop:        #D6715E;         /* L .66 C .13 · ink on it 5.5:1 */
  --v-on-stop:     #161616;         /* ink on the dusty red, 5.5:1 */
  --v-scrim:       rgba(0,0,0,.6);   /* the veil under the launcher, the line at .32 */
  --v-shine:       rgba(255,255,255,.18);   /* the specular on a coated thing, white at .34 */
  --v-on-art:      #FFFFFF;   /* text over a photograph is white; a photograph is its own ground */
  --v-shade:       #0A0806;         /* the veil over a photograph, darker than the ground */
  --v-light:       #3E2730;         /* L .30 C .04 hue 344 · the stage tint in dark; lamp off so brown is retired */
  --v-lamp:        none;
  --v-window:      1 / 1;
  --v-grain:       none;
  /* THE LAYERS RENDER FLAT 2.0 (2026-09-17, his word: Flat Design 2.0 at the core, Bauhaus heavily mixed in; the
     offset in the line colour read as neo-brutalism on his screen and "nobody does neo-brutalism stuff in platforms").
     Depth without ornament: a surface is lighter than its ground AND casts a soft, large, low-opacity shadow, the way
     the four he measures against do it (Netflix, Crunchyroll, Instagram, Jackbox). Two parts each: a tight contact
     shadow that says the thing touches nothing, and a wide one that says how far it stands off. Black, because the
     ground is dark and a shadow is the absence of its light; no colour, no offset, no line. A room reaches for the
     layer number; this is what the number looks like in Ginko. */
  --v-lift-0: none;                                                          /* the page */
  --v-lift-1: 0 1px 2px rgba(0,0,0,.28), 0 3px 8px -2px rgba(0,0,0,.24);      /* a pressable thing at rest */
  --v-lift-2: 0 2px 4px rgba(0,0,0,.26), 0 14px 32px -10px rgba(0,0,0,.45);   /* a card, a window, a sheet */
  --v-lift-3: 0 8px 16px rgba(0,0,0,.30), 0 32px 72px -16px rgba(0,0,0,.60);  /* the one thing over everything */
  --v-press:  inset 0 1px 3px rgba(0,0,0,.40);                               /* pressed into the surface */
  --v-modes:       both;     /* BOTH FACES, his word 2026-09-17 15:20 (queue row 20): the light block below is the light register, first class, every slot. THE DEFAULT GROUND IS THE DARK REGISTER FROM 2026-09-16 (his word
                                through VALE, Axon 18:14; the values below this line are the dark
                                register's, moved up from [data-mode="dark"] which keeps them too).
                                What follows is the 09-09 note that kept it shut, and the half of it
                                that still stands: the rooms' hardcoded light SURFACES. Those are
                                being moved to the roles room by room, and a11y is the acceptance
                                test on every one of mine; a room still carrying a white card is a
                                named debt, not a claim. THE 09-09 NOTE: It said "offered when
                                the rooms' grounds are on the roles (2 of 33 tonight)". That half IS done: components.css
                                :347 puts body[data-shell="bare"], body.gko on var(--v-ground) and 31 of 33 rooms are on
                                the role, the two exceptions (keynote, stage) being dark by design. So I opened it, and
                                then measured what a dark phone would actually have got, sweeping every text node at 390
                                against the background it is painted on. TWO blockers, both real, one now fixed.
                                (1) The legacy inks were not redefined for dark: --gko-ink was 1:1 and --gko-ink2 1.72:1.
                                    Fixed in tokens.css, which is the sheet every room loads; the livery is only on
                                    adopted rooms, and echo and drift proved it by still failing after a livery-only fix.
                                (2) NOT FIXED, and this is the gate: the rooms' SURFACES are still hardcoded light.
                                    #FDFCFA and #FFFFFF cards do not move, so correct dark ink lands white-on-white:
                                    "ears on", "how brave tonight?", "Too many tries" all came back near 1.3:1.
                                The ground moving is not the same as the surfaces moving, and only the first was done.
                                This line opens when the surfaces are on the roles too, and the sweep at
                                /tmp is the acceptance test: zero text under AA in dark, or it stays shut. */
}
/* THE LIGHT FACE (2026-09-17, his word 15:20: two themes, not one dark theme with a fallback; the
   light face is first class and graded as one, lit, never cream, never paper, never matte). Measured
   before this block existed: [data-mode="light"] moved only the seven lamps and every light shot was
   the dark ground under a light attribute (formwork-hunter/reskin/light/, f345d4628). Every slot R6
   names, in OKLCH, gated by kit-gate R7's light zones. DEPTH INVERTS WITH THE FACE: on the dark ground
   a raised thing is lighter; here the ground is a near-white neutral, the card is white, one step
   lighter still, and the field a hand rests on is a step darker; the layers are the same four shapes
   at a quarter of the alpha, since a shadow on a light ground is a small thing. Ink 16.7:1 on the
   ground, the quiet ink 7.6:1 (7.9:1 on the field), the fill-grade text 5.8:1, white on the stop 4.9:1.
   The acts keep the seven light lamps below (ink on each 7.5:1 or better); the stop is the kit's red
   raised a step into its zone. Chroma 0 on every neutral, as in the dark face. */
[data-mode="light"] {
  --v-ground:      #F6F6F6;   /* L .97 · a lit neutral, not paper: chroma 0 */
  --v-on-ground:   #161616;   /* 16.7:1 */
  --v-on-ground-2: #4F4F4F;   /* L .43 · 7.6:1 on ground */
  --v-surface:     #FFFFFF;   /* L 1 · the card, one step lighter than the ground */
  --v-on-surface:  #161616;   /* 18.1:1 */
  --v-field:       #EEEEEE;   /* L .95 · the surface a hand rests on, one step darker */
  --v-on-field:    #161616;   /* 15.6:1 */
  --v-on-field-2:  #484848;   /* 7.9:1 on the field */
  --v-fill:        #E65179;   /* L .65 C .19 hue 344 · the stage's act in daylight (row 11, 2026-10-20): 5.01:1 ink, 3.34:1 shape on #F6F6F6; a room's light re-sets it below */
  --v-on-fill:     #161616;   /* 5.01:1 */
  --v-fill-text:   #9E2448;   /* L .47 C .16 hue 344 · 6.94:1 on ground */
  --v-go:          var(--v-fill);       /* the act, one accent (the :root note) */
  --v-on-go:       var(--v-on-fill);
  --v-go-text:     var(--v-fill-text);
  --v-line:        #2A2A2A;   /* L .29 · a line, where a rule still draws one */
  --v-line-quiet:  rgba(0,0,0,.14);     /* the hairline: black at .14 on a light ground */
  --v-stop:        #C4482F;   /* L .57 C .16 · the crossing-guard red, in its zone */
  --v-on-stop:     #FFFFFF;   /* 4.9:1 */
  --v-scrim:       rgba(0,0,0,.32);     /* the veil under the launcher */
  --v-shine:       rgba(255,255,255,.34);   /* the specular on a coated thing, white at .34 on a light panel */
  --v-on-art:      #FFFFFF;   /* text over a photograph is white in both modes */
  --v-shade:       #140C06;   /* the veil over a photograph */
  --v-light:       #F0C6D2;   /* L .87 C .05 hue 344 · the stage tint in daylight; a room's light re-sets it below */
  /* A LAMP IS ONLY A LAMP ON A DARK GROUND (VALE's eye 2026-09-17 14:45, queue row 25): the room's glow read as a stain
     on the lit ground, a tinted blob with nothing to illuminate, Chevreul's contrast doing what he describes. In daylight
     the room is carried by a mark, not a glow: the lamp is off and the kicker, the one structural line that names where
     you are, takes the room's act at text grade (the act mixed 70% toward black: 5.5:1 on the ground for all seven). */
  --v-lamp:        none;
  --v-room-mark:   color-mix(in srgb, var(--v-fill) 70%, black);   /* the room's colour where words carry it: 5.5:1 or better on the ground, every light */
  --v-lift-0: none;
  /* SHADOW IS REAL IN DAYLIGHT (his word 16:40 through VALE, "light theme colors look like dark theme"; the daylight
     is designed, not derived: Tungsten 1). In the dark a shadow is fiction, the absence of a lamp; in daylight it is
     how a thing is known to stand off the wall, so the layers carry more than a quarter of the dark alpha and a
     visible contact edge. */
  --v-lift-1: 0 1px 2px rgba(0,0,0,.14), 0 3px 8px -2px rgba(0,0,0,.16);
  --v-lift-2: 0 2px 4px rgba(0,0,0,.10), 0 14px 32px -10px rgba(0,0,0,.24);
  --v-lift-3: 0 8px 16px rgba(0,0,0,.10), 0 32px 72px -16px rgba(0,0,0,.30);
  --v-press:  inset 0 1px 3px rgba(0,0,0,.12);
}
[data-mode="dark"] {
  --v-ground:      #1B1B1B;   /* L .22 · pulled in from the panel's floor */
  --v-on-ground:   #DEDEDE;   /* L .90 · not white · 12.8:1 */
  --v-on-ground-2: #BEBEBE;   /* 9.3:1 on ground, 7.1:1 on field */
  --v-surface:     #262626;   /* L .27 · lighter than the ground: depth is lightness here */
  --v-on-surface:  #DEDEDE;   /* one text colour on dark grounds */
  --v-field:       #303030;   /* L .31 · lighter again */
  --v-on-field:    #DEDEDE;   /* the same */
  --v-on-field-2:  #BEBEBE;   /* quiet text on the field, 7.1:1 */
  --v-fill:        #E65179;   /* L .65 C .19 hue 344 · the house act */
  --v-on-fill:     #161616;   /* 5.01:1 */
  --v-fill-text:   #F3A8BC;   /* 9.14:1 on ground */
  --v-go:          var(--v-fill);       /* the act, one accent (the :root note) */
  --v-on-go:       var(--v-on-fill);
  --v-go-text:     var(--v-fill-text);
  --v-line:        #BEBEBE;   /* L .80 · a line, not a glare */
  --v-line-quiet:  rgba(222,222,222,.16);   /* the hairline is the dark text at .16, a touch more than light's .14 because a light line on dark reads fainter */
  --v-stop:        #D6715E;   /* L .66 C .13 · ink on it 5.5:1 */
  --v-on-stop:     #161616;   /* ink on the dusty red, 5.5:1 */
  --v-scrim:       rgba(0,0,0,.6);   /* the veil is black at .6 over a dark ground; it dims, which is its job */
  --v-shine:       rgba(255,255,255,.18);   /* the specular, quieter on a dark panel */
  --v-on-art:      #FFFFFF;   /* text over a photograph is white in both modes */
  --v-shade:       #0A0806;   /* the veil over a photograph, darker than the dark ground */
  --v-light:       #3E2730;   /* L .30 C .04 hue 344 · the stage tint in dark; lamp off so brown is retired */
  --v-lamp:        none;
  --v-room-mark:   var(--v-on-ground-2);   /* in the dark face the lamp carries the room; the kicker stays the quiet ink */
  --v-lift-0: none;                                                          /* the layers, as at :root */
  --v-lift-1: 0 1px 2px rgba(0,0,0,.28), 0 3px 8px -2px rgba(0,0,0,.24);
  --v-lift-2: 0 2px 4px rgba(0,0,0,.26), 0 14px 32px -10px rgba(0,0,0,.45);
  --v-lift-3: 0 8px 16px rgba(0,0,0,.30), 0 32px 72px -16px rgba(0,0,0,.60);
  --v-press:  inset 0 1px 3px rgba(0,0,0,.40);
}
/* THE ROOM LIGHTS · whose room it is, or where it stands in the world; the act takes the hour's strength.
   ONE SET WITH THE TOKENS, AT ONE LIGHTNESS (VALE's ruling 2026-09-17 18:30, queue row 56): the two sets disagreed in
   lightness, not chroma; stage sat at L .76 and the six others at .62 to .66, six lamps darker than the seventh. A lamp
   is luminous, so the six are re-solved at stage's own lightness with chroma inside the band, and every number went
   up: alley #88AFFF (ink 8.3, ground 7.9), garden #83C575 (8.8, 8.4), sky #48BFF5 (8.7, 8.2), grape #BF9DF6 (8.1, 7.7),
   teal #1DCBBC (8.9, 8.5), ember #F5956A (8.1, 7.7), stage #E65179 (ink 5.01, dark shape 4.77, light shape 3.34; row 11,
   2026-10-20); measured by this hand before landing. The same values tokens.css's --gko-a-* carry, so an adopted room
   and a component room wear one light. */
[data-light="stage"]  { --v-light: #3E2730; --v-lamp: none; --v-fill: #E65179; }
[data-light="alley"]  { --v-light: #2E344A; --v-fill: #88AFFF; }
[data-light="garden"] { --v-light: #2B3A26; --v-fill: #83C575; }
[data-light="sky"]    { --v-light: #203947; --v-fill: #48BFF5; }
[data-light="grape"]  { --v-light: #393147; --v-fill: #BF9DF6; }
[data-light="teal"]   { --v-light: #1A3C38; --v-fill: #1DCBBC; }
[data-light="ember"]  { --v-light: #4A2D1E; --v-fill: #F5956A; }

/* BY DAY THE ACT IS ONE HOUSE COLOUR; BY NIGHT IT IS THE ROOM'S LAMP (VALE's ruling 2026-09-17 19:50, on the six light
   doors: SHIP WITH NAMED DEBTS, and this the ruling). At night a lamp IS the room, and seven lamps in a dark venue read as
   seven rooms in one building. On white, seven pigments do not read as rooms, they read as six brands, because a saturated
   pigment on a light ground is a brand mark, which is why every reference measured below uses exactly one; at 0.7% and
   5.2% chromatic pixels those faces have no room to spend colour on identity, so they spend it on the act alone. So every
   room's act wears the stage's rose-red #E65179 in daylight, Ginko's own, and the room shows in its sign (the pigment derived
   below, mixed 70% toward black as the kicker's mark), its figure and its pictures. It also retires the alarm: ember's
   #DA5801 read as a warning on the page money changes hands. The derivation of the seven pigments stays below because
   the signs are cut from them.
   THE DAYLIGHT ACTS, DERIVED FROM DAYLIGHT (his word, twice: the light face still had the dark face's colours; VALE
   18:30: study the references' light faces, then derive the day seven from daylight rather than from our night).
   Studied, measured on the shelf and on one capture each (Tungsten 1): YouTube's light face is 0.7% chromatic, the
   mark and one blue; Instagram's form half 5.2%, one blue act and the photographs; what carries identity when almost
   everything is neutral is the mark, the one act and the pictures. And the KIND of colour differs: their acts are
   pigments, chroma .18 to .23 at L .51 to .65 (YouTube #065FD4 C .195, Instagram #0095F6 C .177, Netflix #E50914
   C .235, Crunchyroll #F47521 C .179), where our night acts are lamps, chroma .12 to .14 at L .76. A daylight palette
   is not the night palette moved: the same seven hues become pigments, chroma .16 to .19 at the hue's own deepest
   lightness that still carries the house's one ink (#161616, at AA or better): stage #E65179 (ink 5.01, shape 3.34), alley #4D7DE8
   (4.7), garden #37911F (4.5), sky #00ADF0 (7.1), grape #9969DB (4.6), teal #00AEA0 (6.5, C .13, the hue's gamut),
   ember #DA5801 (4.6). test/chroma.mjs reads the day band (.10 to .19) inside [data-mode=light] blocks, the night
   band (.10 to .15, .19 on --v-fill) elsewhere. */
[data-mode="light"] [data-light] { --v-room-mark: color-mix(in srgb, var(--v-fill) 70%, black); }   /* the room's sign at text grade, 5.5:1 or better on the ground; the surfaces stay neutral (VALE's eye 17:00: a tenth of the room's colour over a whole card was a wash, and a wash on white is paper; colour in daylight belongs in small dense things: the sign, the figure, the act) */
[data-mode="light"] [data-light="stage"]  { --v-light: #F0C6D2; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #E65179 70%, black); }
[data-mode="light"] [data-light="alley"]  { --v-light: #BFC8E8; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #4D7DE8 70%, black); }
[data-mode="light"] [data-light="garden"] { --v-light: #BFD8B8; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #37911F 70%, black); }
[data-mode="light"] [data-light="sky"]    { --v-light: #B8D8EC; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #00ADF0 70%, black); }
[data-mode="light"] [data-light="grape"]  { --v-light: #CFC2E8; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #9969DB 70%, black); }
[data-mode="light"] [data-light="teal"]   { --v-light: #B2DED8; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #00AEA0 70%, black); }
[data-mode="light"] [data-light="ember"]  { --v-light: #F0C0A8; --v-fill: #E65179; --v-room-mark: color-mix(in srgb, #DA5801 70%, black); }
[data-mode="dark"] [data-light="stage"]  { --v-light: #3E2730; --v-lamp: none; --v-fill: #E65179; }
[data-mode="dark"] [data-light="alley"]  { --v-light: #2E344A; --v-fill: #88AFFF; }
[data-mode="dark"] [data-light="garden"] { --v-light: #2B3A26; --v-fill: #83C575; }
[data-mode="dark"] [data-light="sky"]    { --v-light: #203947; --v-fill: #48BFF5; }
[data-mode="dark"] [data-light="grape"]  { --v-light: #393147; --v-fill: #BF9DF6; }
[data-mode="dark"] [data-light="teal"]   { --v-light: #1A3C38; --v-fill: #1DCBBC; }
[data-mode="dark"] [data-light="ember"]  { --v-light: #4A2D1E; --v-fill: #F5956A; }
