:root{
  --bg:#000000;
  --fg:#dadacb;
  --acid:#c8ff00;
  --acid-soft:rgba(200,255,0,.12);
  --dim:#8f8f82;
  --loss:#ff5c5c;
  --rule:#2a2a26;
  --rule-strong:#6e6e63;
  --mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --pad:24px;
  --max:1120px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg);scrollbar-color:var(--rule-strong) var(--bg);scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font:400 15px/1.6 var(--mono);
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  caret-color:var(--acid);
}
::selection{background:var(--acid);color:#000}
a{color:var(--acid);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{background:var(--acid);color:#000;text-decoration:none}
:focus-visible{outline:2px solid var(--acid);outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit;margin:0}
h1,h2,h3,p,pre,dl,dd,ol,figure{margin:0}
pre{font:inherit;white-space:pre-wrap;word-break:break-word}
code{font:inherit;color:var(--acid)}
.visually-hidden,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{width:auto;height:auto;clip:auto;left:var(--pad);top:8px;z-index:20;background:var(--bg);padding:8px 12px;border:1px solid var(--acid)}
.prompt{color:var(--acid);font-weight:700;margin-right:.6em}

/* top bar */
.bar{
  position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--rule);
  display:flex;align-items:center;gap:28px;padding:12px var(--pad);
}
.bar .brand{color:var(--acid);font-weight:700;text-decoration:none}
.bar nav{display:flex;gap:20px}
.bar nav a{color:var(--fg);text-decoration:none}
.bar nav a:hover,.bar .brand:hover{background:var(--acid);color:#000}
.bar .modes{margin-left:auto;display:flex;border:1px solid var(--rule-strong)}
.mode-btn{background:transparent;border:0;color:var(--fg);padding:4px 12px;cursor:pointer;font-size:13px;line-height:1.4}
.mode-btn+.mode-btn{border-left:1px solid var(--rule-strong)}
.mode-btn[aria-pressed=true]{background:var(--acid);color:#000}
.mode-btn:hover:not([aria-pressed=true]){background:var(--acid-soft)}
.bar .net{color:var(--dim);font-size:13px}
.bar .net.bad{color:var(--loss)}
body[data-mode=live] .demo-only{display:none}
body[data-mode=demo] .live-only{display:none}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

/* hero: the 402 response */
.hero{padding:64px 0 24px}
.hero-term{margin:0 0 36px;line-height:1.55}
.hero-term .status{
  display:inline-block;color:var(--acid);font-weight:700;
  font-size:clamp(26px,4.4vw,52px);line-height:1.08;letter-spacing:-.02em;margin:12px 0 10px;
}
.hero-term.typing .line{visibility:hidden}
.hero-term.typing .line.on{visibility:visible}
.cursor{display:inline-block;width:.6em;height:1.05em;background:var(--acid);vertical-align:-.2em;animation:blink 1.1s steps(2,start) infinite}
.hero-term.typing .cursor{visibility:hidden}
.hero-term.done .cursor{visibility:visible}
@keyframes blink{to{visibility:hidden}}
.lede{max-width:68ch;font-size:16px;margin:0 0 28px}
.actions{display:flex;flex-wrap:wrap;gap:12px}

/* buttons and controls */
.btn{
  display:inline-block;padding:10px 18px;border:1px solid var(--acid);background:transparent;color:var(--acid);
  text-decoration:none;cursor:pointer;line-height:1.2;transition:background .12s cubic-bezier(.2,.8,.2,1),color .12s cubic-bezier(.2,.8,.2,1);
}
.btn:hover{background:var(--acid);color:#000}
.btn.ghost{border-color:var(--rule-strong);color:var(--fg)}
.btn.ghost:hover{border-color:var(--acid);background:var(--acid);color:#000}
.btn.small{padding:6px 12px;font-size:13px}
.btn:disabled,.btn[aria-disabled=true]{opacity:.38;cursor:not-allowed}
.btn:disabled:hover{background:transparent;color:var(--acid)}
.btn.ghost:disabled:hover{color:var(--fg);border-color:var(--rule-strong)}
.controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
input[type=number],input[type=text],select,textarea{
  width:100%;background:var(--bg);border:1px solid var(--rule-strong);color:var(--fg);padding:8px 10px;line-height:1.4;
}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--acid);outline:none}
input:disabled,select:disabled,textarea:disabled{color:var(--dim);border-color:var(--rule)}
input:invalid{border-color:var(--loss)}
input[type=radio]{accent-color:var(--acid);width:14px;height:14px;margin:0}
textarea{min-height:190px;resize:vertical}
.hint{color:var(--dim);font-size:13px}
.error{color:var(--loss);font-size:13px}
.error[hidden]{display:none}

/* sections as commands */
.section{padding:88px 0 0}
.cmd{font-size:18px;font-weight:700;margin:0 0 20px}
.cmd .prompt{font-size:inherit}
.subcmd{font-weight:700;margin:0 0 16px}
.pane{border:1px solid var(--rule);padding:20px;min-width:0}

/* session lab */
.wallet{display:grid;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--rule)}
.wallet-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.wallet-k{color:var(--dim);font-size:13px;min-width:7ch}
.wallet-v{flex:1;min-width:0;overflow-wrap:anywhere}
.wallet-row .btn{margin-left:auto}
.deposit-row{margin-top:4px}
.deposit-row input{flex:1;min-width:8ch;width:auto}
.deposit-row .btn{margin-left:0}
.house-line{border-top:1px solid var(--rule);padding-top:8px}
.house-line.bad{color:var(--loss)}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check input{accent-color:var(--acid);width:15px;height:15px;margin:4px 0 0;flex:none}
.log li .tx{color:var(--dim);text-decoration:none;font-size:13px}
.log li .tx:hover{background:var(--acid);color:#000}
.lab{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:28px;align-items:start}
.config{display:grid;gap:16px}
.agent-pick{border:0;padding:0;margin:0 0 4px;min-width:0}
.agent-pick legend{padding:0;margin:0 0 8px;font-weight:700}
.opt{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:6px 8px;margin:0 -8px;cursor:pointer}
.opt:hover{background:var(--acid-soft)}
.opt-name{font-weight:700}
.opt-rule{color:var(--dim);font-size:13px;text-align:right}
.field{display:grid;gap:6px}
.field label{font-weight:700}
.plan{color:var(--dim);font-size:13px;border-top:1px solid var(--rule);padding-top:12px}
details.json summary{cursor:pointer;color:var(--fg)}
details.json summary:hover{color:var(--acid)}
details.json textarea{margin:12px 0}
.output{display:grid;gap:18px;position:sticky;top:72px}
.statusline{display:flex;flex-wrap:wrap;gap:0 24px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.statusline #experiment-status{color:var(--acid)}
.statusline #experiment-status.exit{color:var(--fg)}
.statusline #experiment-status.exit.bad{color:var(--loss)}
.readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.readouts dt{color:var(--dim);font-size:13px}
.readouts dd{font-size:24px;line-height:1.2;font-weight:700}
.readouts .limit{color:var(--dim);font-size:15px;font-weight:400}
.win{color:var(--acid)}
.loss{color:var(--loss)}
.chart{width:100%;height:200px;display:block}
.log{list-style:none;padding:0;margin:0;max-height:212px;overflow-y:auto;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);scrollbar-width:thin}
.log li{display:grid;grid-template-columns:4ch 14ch 5ch 1fr;gap:12px;padding:3px 0}
body[data-mode=live] .log li{grid-template-columns:4ch 15ch 5ch 1fr auto}
.log li:first-child{padding-top:8px}
.log li:last-child{padding-bottom:8px}
.log li .bal{text-align:right}
.log li.empty{display:block;color:var(--dim);padding:10px 0}
.summary{max-width:72ch}

/* agent family */
.family{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,1fr);gap:28px;align-items:start}
.tree{overflow-x:auto;white-space:pre}
.tree .node{display:block;text-align:left;background:none;border:0;padding:2px 8px;margin:0 -8px;width:calc(100% + 16px);color:var(--fg);cursor:pointer;white-space:pre;line-height:1.45}
.tree .node:hover{background:var(--acid-soft)}
.tree .node[aria-pressed=true]{background:var(--acid);color:#000}
.tree .node[aria-pressed=true] .meta{color:#000}
.tree .meta{color:var(--dim)}
.tree .head,.tree .tail{display:block;padding:3px 0}
.tree .tail{color:var(--dim);padding-top:12px}
.dossier{display:grid;gap:16px}
.dossier-json{color:var(--fg)}
.dossier-json .k{color:var(--dim)}
.quote{font-style:italic;color:var(--acid)}
.description{max-width:60ch}
.tree-message{margin-top:16px;min-height:1.6em}

/* man page */
.man h3{font-size:15px;font-weight:700;margin:32px 0 8px}
.man h3:first-child{margin-top:0}
.man p{max-width:72ch}
.man p+p{margin-top:10px}
.man pre{color:var(--acid);padding-left:4ch;text-indent:-4ch}
.options{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 24px;max-width:80ch}
.options dt{font-weight:700;white-space:nowrap}

/* footer */
.foot{margin-top:96px;padding-top:28px;padding-bottom:40px;border-top:1px solid var(--rule);color:var(--dim);font-size:13px}

/* dialogs */
dialog{
  background:var(--bg);color:var(--fg);border:1px solid var(--acid);padding:24px;
  width:min(100% - 32px,600px);max-height:min(100% - 32px,90vh);overflow:auto;
}
dialog::backdrop{background:rgba(0,0,0,.72)}
dialog form,dialog>div{display:grid;gap:16px}
.report{display:grid;gap:10px}
.report dl{display:grid;grid-template-columns:14ch minmax(0,1fr);gap:4px 16px}
.report dt{color:var(--dim)}
.report .big{font-size:32px;font-weight:700;line-height:1.1}
.report pre{border:1px solid var(--rule);padding:12px}
.report .notice{color:var(--dim);font-size:13px;max-width:60ch}

@media (max-width:900px){
  .lab,.family{grid-template-columns:1fr}
  .output{position:static}
  .readouts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  :root{--pad:16px}
  body{font-size:14px}
  .bar{gap:16px;padding:10px var(--pad)}
  .bar nav{gap:14px}
  .hero{padding:40px 0 16px}
  .hero-term{font-size:13px}
  .lede{font-size:15px}
  .tree{font-size:13px}
  .section{padding:64px 0 0}
  .pane{padding:16px}
  .opt{grid-template-columns:auto 1fr;gap:6px 10px}
  .opt-rule{grid-column:2;text-align:left}
  .log li{grid-template-columns:4ch 12ch 5ch 1fr;gap:8px}
  body[data-mode=live] .log li{grid-template-columns:4ch 13ch 5ch 1fr;gap:8px}
  body[data-mode=live] .log li .tx{display:none}
  .bar .modes{margin-left:auto}
  .bar .net{display:none}
  .options{grid-template-columns:1fr;gap:2px 0}
  .options dd{margin:0 0 8px 2ch}
  .report dl{grid-template-columns:1fr}
  .foot{margin-top:64px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cursor{animation:none}
  .btn{transition:none}
}
