/* ground.css — the room. Two modes, one ladder, and the ladder only goes up.
   The old ground sat at L 33%, which let a mark mean "more" by getting lighter OR darker. Four
   builders chose differently and severity ended up inverted: the rail for HIGH was brighter than
   the rail for LOW. On a deep ground there is only one direction, so that defect is no longer
   expressible. The hue is unchanged — H 212, the slate the landing art is drawn in. */
:root{
  /* SURFACES — luminance only. Never state, never rank. Only ever a background.
     Two rooms. The default is the deep blue-grey the entry globe is drawn in; the toggle is a
     white room where green is the only colour. The supporting greys in both are quieter than the
     ground, so neither room reads as one wash of a single hue. */
  /* The raise screen's blue, adopted on the founder's order 2026-08-22: the compile theatre, the
     world's loading screen and the dark room now share one ground, so raising a world and living
     in it read as one place. Same ladder discipline, same single direction. */
  --g-0:#2E5379;   /* the room */
  --g-1:#33597F;   /* raised: the detail pane, the planes, the chat card */
  --g-2:#3A6188;   /* inset: hover, the selected row, a code block, a well */

  /* BOUNDARIES — graphics, never glyphs. */
  --line:#24425F;    /* a separator you feel, not read */
  --line-2:#4A719A;  /* a boundary you read */

  /* INK — typographic rank only. Three steps. There is no fourth, because the fourth was the
     severity rail and its deletion is what makes the inverted encoding unwritable. */
  --ink:#EEF3F8;     /* the thing itself */
  --ink-2:#C6D6E3;   /* its explanation */
  --ink-3:#9FB6C9;   /* the label naming the field */

  /* OUTCOME — hue at matched luminance. Green is the product's colour; the rest are verdicts. */
  --held:#76B900;
  --broke:#EEF3F8;
  --hold:#D89C36;    /* awaiting a human, and nothing else */
  --focus:#A5E800;   /* the focus ring, and nothing else */

  /* FILL — absence. Colour is never the carrier here. */
  --hatch:repeating-linear-gradient(45deg,transparent 0 2px,var(--ink-3) 2px 4px);

  /* DEPTH — three shadows, and only these three. Raised things wear sh-1, floating things sh-2,
     and the conversation column casts sh-left over the floor. */
  --sh-1:0 1px 2px rgba(0,0,0,.22),0 6px 18px rgba(0,0,0,.16);
  --sh-2:0 2px 6px rgba(0,0,0,.28),0 16px 40px rgba(0,0,0,.32);
  --sh-left:-8px 0 22px rgba(0,0,0,.1);

  --disp:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
html[data-mode="light"]{
  /* The light room: a soft grey ground so the white cards have something to float on -- pure
     white everywhere was eye-hurting -- with green as the one colour and real shadows. */
  --g-0:#E9ECEF;
  --g-1:#F7F8FA;   /* the boxes: an off-white grey, neither white nor tinted */
  --g-2:#E2E7EB;
  --line:#D0D7DD;
  --line-2:#8E9CA9;
  --ink:#1C2B36;
  --ink-2:#45535F;
  --ink-3:#6E7C89;
  --held:#4E8A00;
  --broke:#1C2B36;
  --hold:#96601A;
  --focus:#3F6100;
  --sh-1:0 1px 2px rgba(23,34,45,.07),0 8px 22px rgba(23,34,45,.11);
  --sh-2:0 2px 6px rgba(23,34,45,.1),0 18px 44px rgba(23,34,45,.16);
  --sh-left:-8px 0 22px rgba(23,34,45,.045);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--g-0);color:var(--ink);font-family:var(--disp);font-size:15px;
     line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden}
button{font-family:inherit}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
[hidden]{display:none !important}
/* Scrollbars show only while something is being scrolled: the thumb is ours, in green, and it
   fades out a moment after the wheel stops. `.scrolling` is set by scrollbars.js on the element. */
html{scrollbar-width:thin;scrollbar-color:transparent transparent}
.scrolling{scrollbar-color:var(--held) transparent}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;transition:background .3s}
.scrolling::-webkit-scrollbar-thumb{background:var(--held)}

/* The one visually-hidden region. Streamed tokens must never land in a live region — a screen
   reader would read the answer letter by letter — so whole sentences are posted here instead. */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

@media(prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}

@page{margin:16mm}
@media print{
  :root{--g-0:#fff;--g-1:#fff;--g-2:#F2F5F9;--line:#D5DEE7;--line-2:#8DA4BB;
        --ink:#0F1D2E;--ink-2:#33495F;--ink-3:#5A7188;
        --held:#4E7C00;--broke:#0F1D2E;--hold:#96601A}
  body{overflow:visible}
  .sheet,section,.figure{break-inside:avoid}
  .noprint{display:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-family:var(--mono);font-size:9px}
}
