:root {
  --bg:#fbfaf7; --surface:#fff; --ink:#1d1d1f; --muted:#5d5d66; --rule:#e3e0d8;
  --accent:#4a90d9; --accent-ink:#2667a8; --accent-soft:#edf5fd; --accent-fill:#d4e8fb;
  --def:#4b5563; --def-bg:#eef0f3; --prov:#1f7a4d; --prov-bg:#e3f4ea;
  --heur:#8a6100; --heur-bg:#fbf1d9; --open:#a3324a; --open-bg:#f9e3e8;
  --body:1rem; --small:.88rem; --h1:1.75rem; --h2:1.3rem; --h3:1.05rem;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --err:#d7003a; --err-bg:#fdecee; --fix:#47885e; --fix-bg:#eaf4ee; --gold:#e6b422; --gold-ink:#8a6a12; --sumi:#595857; --washi:#fbf6ea;
}
html{font-size:17px}*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:var(--body)/1.65 Georgia,"Times New Roman",serif}
main{padding:0 28px 40px;max-width:1240px;margin:auto}
h1{font-size:var(--h1);line-height:1.25;margin:6px 0 10px}h2{font-size:var(--h2);line-height:1.35;margin:26px 0 8px}h3{font-size:var(--h3);line-height:1.4;margin:16px 0 6px}h4,h5{font-size:var(--body);margin:12px 0 4px}
p{margin:9px 0}a{color:var(--accent-ink)}ul,ol{padding-left:1.4em}li{margin:3px 0}
.katex{font-size:1.04em}.katex-display{margin:.7em 0;overflow-x:auto;overflow-y:hidden;padding:2px 0}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--small)/1.6 ui-monospace,Menlo,monospace;padding:12px;border:1px solid var(--rule);border-radius:7px;background:var(--surface)}
code{font:.92em ui-monospace,Menlo,monospace;overflow-wrap:anywhere}.mono{font:var(--small)/1.4 ui-monospace,Menlo,monospace;color:var(--muted)}
summary{cursor:pointer;font-family:var(--sans);font-size:var(--small)}details>summary{padding:4px 0}
.kicker{font:var(--small)/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:22px 0 0}
.small{font:var(--small)/1.5 var(--sans)}.muted{color:var(--muted)}
.button-link{display:inline-block;padding:6px 10px;border:1px solid var(--accent);border-radius:7px;font:var(--small)/1.4 var(--sans);background:var(--accent-soft);text-decoration:none;margin-left:8px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:12px 18px;margin:12px 0}
.card>h2:first-child,.card>h3:first-child{margin-top:4px}
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cards .card{margin:0}.card-head{margin:0 0 4px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:640px){.two{grid-template-columns:1fr}}
ul.plain{list-style:none;padding:0}
.verdict-line{font-size:1.08em;padding:10px 0 4px;border-bottom:1px solid var(--rule)}.verdict-line .button-link{margin-left:0}
.tag{display:inline-block;font:var(--small)/1.4 var(--sans);font-weight:600;border-radius:999px;padding:1px 8px;margin:0 4px 0 0;vertical-align:middle;background:var(--def-bg);color:var(--def)}
.tag.kind{background:transparent;border:1px solid var(--rule);color:var(--muted);font-weight:500}
.status-proved{background:var(--prov-bg);color:var(--prov)}.status-refuted{background:var(--open-bg);color:var(--open)}
.status-blocked,.status-heuristic,.status-partial{background:var(--heur-bg);color:var(--heur)}.status-heuristic{border:1px dashed var(--heur)}
.status-open{background:var(--def-bg);color:var(--def)}.status-superseded{background:transparent;color:var(--muted);text-decoration:line-through}
.fam-active{background:var(--accent-soft);color:var(--accent-ink)}.fam-blocked{background:var(--heur-bg);color:var(--heur)}.fam-merged{background:var(--def-bg);color:var(--def)}.fam-settled{background:var(--prov-bg);color:var(--prov)}
table.md{border-collapse:collapse;width:100%;margin:10px 0;font-size:var(--small);font-family:var(--sans)}table.md th,table.md td{padding:7px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}table.md th{font-weight:600;color:var(--muted)}
.node{padding:14px 0;border-top:1px solid var(--rule)}.node-head{margin:0 0 6px}.node-body{margin:6px 0}
.pager{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:28px 0 0;padding-top:12px;border-top:1px solid var(--rule);font:var(--small)/1.5 var(--sans)}
.legend{list-style:none;padding:0;margin:8px 0;display:flex;flex-wrap:wrap;gap:6px 18px;font:var(--small)/1.5 var(--sans);color:var(--muted)}
.legend .swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--def)}
.legend .swatch.status-proved{background:var(--prov)}.legend .swatch.status-refuted{background:var(--open)}.legend .swatch.status-blocked{background:var(--heur)}.legend .swatch.status-heuristic{background:var(--heur-bg);border:1px dashed var(--heur)}.legend .swatch.status-open{background:var(--def)}.legend .swatch.status-superseded{background:var(--rule)}
.legend .glyph{display:inline-block;width:1.3em;color:var(--ink)}
.track-list summary{font-size:var(--body);font-family:Georgia,serif;padding:8px 0 2px}
/* navigation */
.site-nav{position:relative;z-index:30;background:var(--surface);box-shadow:inset 0 -1px 0 var(--rule);font:500 var(--small)/20px var(--sans)}
.nav-bar{display:flex;align-items:stretch;gap:22px;margin:0;padding:0 24px;list-style:none;white-space:nowrap;flex-wrap:wrap}
.nav-bar>li{position:relative;display:flex;align-items:stretch}.nav-bar>li>a{display:block;padding:13px 4px;color:var(--muted);text-decoration:none}
.nav-bar>.nav-current{box-shadow:inset 0 -2px 0 var(--accent-ink)}.nav-bar>.nav-current>a,.nav-bar>.nav-current summary,.nav-bar>li>a:hover,.nav-bar summary:hover,.nav-bar details[open]>summary{color:var(--ink)}
.nav-home>a{font-weight:650;color:var(--ink)}
.nav-bar summary{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 6px;list-style:none;color:var(--muted);font:inherit}.nav-bar summary::-webkit-details-marker{display:none}
.nav-bar summary::after{content:"";width:6px;height:6px;margin-top:-4px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}.nav-bar details[open]>summary::after{margin-top:4px;transform:rotate(-135deg)}
.nav-menu{position:absolute;top:calc(100% + 5px);left:-14px;z-index:40;min-width:17rem;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--rule);border-radius:10px;box-shadow:0 18px 40px -18px rgba(29,29,31,.32),0 2px 6px rgba(29,29,31,.06)}
.nav-menu a{display:block;padding:8px 10px;border-radius:7px;color:var(--ink);text-decoration:none}.nav-menu a:hover{background:var(--def-bg)}.nav-menu a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink)}
@media(max-width:560px){.nav-bar{padding:0 8px;gap:12px}.nav-bar>li{position:static}.nav-menu{left:10px;right:10px;min-width:0}}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.table-wrap{overflow-x:auto;max-width:100%;margin:10px 0}.table-wrap table.md{margin:0;min-width:520px}
.node-body,.card{overflow-wrap:anywhere}.katex{overflow-wrap:normal}
@media(max-width:640px){.table-wrap table.md{min-width:600px}.pager{flex-direction:column;align-items:flex-start}}

/* attempt-tree stage: rows = agents, time left to right; styles "cards" and "art" */
.stage-wrap{margin-top:6px}
.stage{position:relative;width:calc(100vw - 40px);max-width:2000px;margin:10px 0 0 50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:12px 14px 12px}
.stage:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.stage-head{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-template-areas:"ctl tok";gap:10px 24px;align-items:start;margin-bottom:10px}
.tokens{grid-area:tok}.stage-ctl{grid-area:ctl}
@media(max-width:1000px){.stage-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"tok" "ctl"}}
.tokens{margin:0}.tp-plot svg{display:block;font:11px/1.2 var(--sans);cursor:pointer}
.tokens figcaption{font:.76rem/1.4 var(--sans);color:var(--muted);max-width:420px;margin-top:3px}.tokens figcaption b{color:var(--ink);font-weight:650}
.tp-plot svg{max-width:100%;height:auto}
.tp-title{font-weight:650;fill:var(--ink);font-size:12px}.tp-val{font-weight:700;fill:var(--accent-ink);font-size:14px}.tp-sub{fill:var(--muted);font-size:10.5px}
.tp-grid{stroke:var(--rule)}.tp-ax{fill:var(--muted);font-size:10px}.tp-area{fill:var(--accent-soft)}.tp-line{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}
.tp-usd{fill:none;stroke:#a0702a;stroke-width:1.6;stroke-dasharray:5 3;stroke-linejoin:round}.tp-ax-usd{fill:#8a5f22}.tp-key text{fill:var(--muted);font-size:10.5px}
.tp-cur line{stroke:var(--ink);stroke-dasharray:2 3}.tp-cur .c-tok{fill:var(--accent-ink)}.tp-cur .c-usd{fill:#a0702a}.tp-break{fill:none;stroke:var(--muted)}
.stage-ctl{display:flex;flex-direction:column;gap:8px;font:var(--small)/1.4 var(--sans);min-width:0}
.ctl-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.stage button,.stage select{font:inherit;color:var(--ink)}
.player button{min-width:34px;height:30px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);cursor:pointer}.player button:hover{border-color:var(--accent)}
#play{min-width:44px;font-weight:700;color:var(--accent-ink);border-color:var(--accent)}
.speed select{border:1px solid var(--rule);border-radius:6px;background:var(--surface);padding:3px 4px}
#clock{color:var(--ink);font-weight:600}#count{color:var(--muted)}
.switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:600;margin-right:4px}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch-track{width:34px;height:20px;border-radius:999px;background:var(--rule);position:relative;transition:background .2s}@media(prefers-reduced-motion:reduce){.switch-track,.switch-track::after{transition:none!important}}
.switch-track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .2s}
.switch input:checked+.switch-track{background:var(--accent-ink)}.switch input:checked+.switch-track::after{left:16px}
.switch input:focus-visible+.switch-track{outline:3px solid var(--accent);outline-offset:2px}
.stage:not(.animating) .player button,.stage:not(.animating) .speed{opacity:.55}
#scrub{-webkit-appearance:none;appearance:none;width:100%;height:9px;border-radius:5px;background:var(--track,var(--rule));margin:2px 0;cursor:pointer}
#scrub::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--surface);border:2px solid var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.25)}
#scrub::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--ink)}
.views{gap:6px 8px}.seg-label{color:var(--muted);margin-left:6px}.seg-label:first-child{margin-left:0}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.seg button{border:0;background:var(--surface);padding:4px 10px;color:var(--muted);cursor:pointer}.seg button+button{border-left:1px solid var(--rule)}
.seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:650}
.viewport{position:relative;overflow:auto;border:1px solid var(--rule);border-radius:8px;background:var(--bg);overscroll-behavior:contain;cursor:grab}
.viewport.dragging{cursor:grabbing;user-select:none}.viewport.dragging a{pointer-events:none}
.seg.zoom button{min-width:30px;padding:4px 8px}#zoom-val{min-width:52px;font-variant-numeric:tabular-nums}
.fs-btn{height:28px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);cursor:pointer;padding:0 9px}.fs-btn:hover{border-color:var(--accent)}
.stage:fullscreen{width:100vw;height:100vh;max-width:none;margin:0;transform:none;border:0;border-radius:0;padding:12px 16px;overflow:hidden;display:flex;flex-direction:column}
.stage:fullscreen .viewport{flex:0 0 auto}.stage::backdrop{background:var(--surface)}
.vp-grid{display:grid;grid-template-columns:160px max-content;width:max-content;min-width:100%}
.corner,.time-head{position:sticky;top:0;height:46px;background:var(--surface);border-bottom:1px solid var(--rule)}
.corner{left:0;z-index:5;border-right:1px solid var(--rule);display:flex;flex-direction:column;justify-content:center;padding:0 10px;font:.75rem/1.3 var(--sans);color:var(--muted)}
.time-head{z-index:4}.time-head svg{display:block;font:11px/1 var(--sans)}
.time-head .ph text{font-size:11px;font-weight:600}.time-head .tick line{stroke:var(--rule)}.time-head .tick text,.time-head .break-label{fill:var(--muted);font-size:10.5px}
.tcur rect{fill:var(--ink)}.tcur text{fill:#fff;font-size:11px;font-weight:600}
.row-head{position:sticky;left:0;z-index:3;background:var(--surface);border-right:1px solid var(--rule)}
.rh{position:absolute;left:0;right:0;padding:5px 9px;border-top:1px solid var(--rule);overflow:hidden;font:.8rem/1.3 var(--sans);display:flex;flex-direction:column;justify-content:center;justify-content:safe center}
.rh:first-child{border-top:0}.rh-name{font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rh-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.rh-sub{color:var(--muted);font-size:.74rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-audit{font-size:.72rem;line-height:1.25;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rh-audit.bad{color:var(--err)}.rh-audit:not([hidden])~.rh-state{display:none}
.rh-state{font-size:.72rem;color:var(--muted)}.rh.running .rh-state{color:var(--prov);font-weight:600}.rh.waiting{opacity:.5}
.rh.tight{padding:2px 9px}.rh.tight .rh-sub{display:none}
.rh-occ{display:contents}.rh-occ[hidden]{display:none}
#tree-svg{display:block;font:11px/1.2 var(--sans)}
#tree-svg .row-rule{stroke:var(--rule)}#tree-svg .row-live{stroke-width:2.2;stroke-opacity:.32;stroke-linecap:round}
#tree-svg .break{fill:none;stroke:var(--muted);stroke-opacity:.5}
#tree-svg .row-plate line{stroke-width:1.4;stroke-opacity:.6;stroke-dasharray:3 3}#tree-svg .row-plate text{font:600 10px var(--sans)}
#tree-svg .edge{fill:none;stroke:#b9b4a8;stroke-width:1.2;transition:opacity .35s}
#tree-svg .edge.x{stroke:var(--accent);stroke-opacity:.32}#tree-svg .edge.au{stroke:#9a9690;stroke-dasharray:2 3;stroke-opacity:.55}
#tree-svg .edge.err.found{stroke:var(--err);stroke-width:2.1;stroke-opacity:.95}#tree-svg .edge.err:not(.found){marker-end:url(#ar)}
#tree-svg .edge.fix{stroke:var(--fix);stroke-width:1.9;stroke-dasharray:6 3}#tree-svg .edge.skip{stroke-opacity:.2}#tree-svg.dim .edge.skip.hl{stroke-opacity:.85}
#tree-svg .ah{fill:#b9b4a8}#tree-svg .ah-x{fill:var(--accent)}#tree-svg .ah-err{fill:var(--err)}#tree-svg .ah-fix{fill:var(--fix)}
#tree-svg a{text-decoration:none;cursor:pointer;transition:opacity .35s}
#tree-svg .box{fill:var(--surface);stroke:var(--rule)}#tree-svg a:hover .box,#tree-svg a:focus .box{stroke:var(--accent);stroke-width:1.7}
#tree-svg .bar{fill:var(--def)}#tree-svg .st-proved .bar{fill:var(--prov)}#tree-svg .st-refuted .bar{fill:var(--open)}#tree-svg .st-blocked .bar,#tree-svg .st-heuristic .bar,#tree-svg .st-partial .bar{fill:var(--heur)}#tree-svg .st-superseded .bar{fill:var(--rule)}
#tree-svg .meta{fill:var(--muted);font-size:10.5px}#tree-svg .name{fill:var(--ink);font-size:12.5px}#tree-svg .num{fill:var(--ink);font-size:11px;font-weight:650}
#tree-svg .key .box{stroke:#8b8577;stroke-width:1.3}
#tree-svg .final .box{stroke:var(--gold);stroke-width:2.2;fill:#fdf6e0}
#tree-svg .err.found .box{stroke:var(--err);stroke-width:2.1;fill:var(--err-bg)}#tree-svg .inh.found .box{stroke:var(--err);stroke-width:1.6;stroke-dasharray:4 3}
#tree-svg .corr .box{stroke:var(--fix);stroke-width:1.9;fill:var(--fix-bg)}
#tree-svg .minor-dot{fill:var(--heur)}
#tree-svg .hide{opacity:0;pointer-events:none}
#tree-svg .fresh .box{stroke:var(--accent-ink);stroke-width:2.3}
#tree-svg .cursor line{stroke:var(--ink);stroke-width:1.3;stroke-dasharray:4 3}
#tree-svg.dim .edge{opacity:.1}#tree-svg.dim .edge.hl{opacity:1;stroke-width:2.4}
@keyframes bloom{from{transform:scale(.35);opacity:0}to{transform:scale(1);opacity:1}}
#tree-svg a.fresh{transform-box:fill-box;transform-origin:center;animation:bloom .5s ease-out}
@media(prefers-reduced-motion:reduce){#tree-svg a.fresh{animation:none}#tree-svg a,#tree-svg .edge{transition:none}}
/* art: washi ground, blossoms without outlines (bokashi edge), sumi branches, 金 final, 紅 errors, 緑青 corrections */
.stage.art .viewport{background:var(--washi)}
.stage.art #tree-svg .row-rule{stroke:#eadfc6}.stage.art #tree-svg .row-live{stroke-opacity:.16}
.stage.art #tree-svg .edge{stroke:var(--sumi);stroke-opacity:.36;stroke-width:1.1;stroke-linecap:round}
.stage.art #tree-svg .edge.x{stroke-opacity:.2}.stage.art #tree-svg .edge.skip{stroke-opacity:.1}.stage.art #tree-svg .edge.au{stroke-opacity:.13;stroke-dasharray:1 3}
.stage.art #tree-svg .edge.err.found{stroke:var(--err);stroke-opacity:.88;stroke-width:1.7}
.stage.art #tree-svg .edge.fix{stroke:var(--fix);stroke-opacity:.85;stroke-width:1.5;stroke-dasharray:none}
.stage.art #tree-svg .bloom{fill-opacity:.84}
.stage.art #tree-svg .ring{fill:none;stroke:var(--err);stroke-width:1.5;opacity:0}.stage.art #tree-svg .found .ring{opacity:.9}
.stage.art #tree-svg .inh .ring{stroke-dasharray:3 2}.stage.art #tree-svg .fixring{stroke:var(--fix);opacity:.9}
.stage.art #tree-svg .hit{fill:transparent}
.stage.art #tree-svg a:hover .bloom,.stage.art #tree-svg a:focus .bloom{fill-opacity:1;stroke:var(--sumi);stroke-width:.7}
.stage.art #tree-svg .final-label{font:italic 12px Georgia,serif;fill:var(--gold-ink)}
.stage.art #tree-svg.dim .edge{opacity:1;stroke-opacity:.05}.stage.art #tree-svg.dim .edge.hl{stroke-opacity:.9;stroke-width:1.8}
.stage.art #tree-svg .cursor line{stroke:var(--sumi);stroke-opacity:.6}
.legend-wrap{margin-top:10px}.legend .line{display:inline-block;width:22px;height:0;border-top:2px solid #b9b4a8;margin-right:6px;vertical-align:3px}
.legend .line.x{border-color:var(--accent);opacity:.6}.legend .line.au{border-top:2px dotted #9a9690}.legend .line.err{border-color:var(--err)}.legend .line.fix{border-top:2px dashed var(--fix)}
.legend .box{display:inline-block;width:16px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1.6px solid var(--rule);background:var(--surface)}
.legend .box.err{border-color:var(--err);background:var(--err-bg)}.legend .box.inh{border:1.6px dashed var(--err)}.legend .box.corr{border-color:var(--fix);background:var(--fix-bg)}.legend .box.final{border-color:var(--gold);background:#fdf6e0}
.palette{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;padding:0;margin:8px 0;font:var(--small)/1.4 var(--sans)}
.palette li{display:flex;align-items:center;gap:6px}.palette .chip{width:16px;height:16px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.08)}
.ramp{display:inline-block;width:150px;height:12px;border-radius:6px;vertical-align:-1px;margin-right:6px}
@media(max-width:640px){.stage{width:100%;margin:10px 0 0;transform:none;padding:10px;min-width:0}.viewport{max-width:100%}.views .grp{flex-wrap:wrap;white-space:normal}}
/* paper-style node pages */
.lead{font-size:1.06em;color:#333}
.stmt{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:8px;padding:8px 16px;margin:12px 0}
.stmt-head{margin:6px 0 2px;font-family:var(--sans);font-size:var(--small)}
.proof{margin:8px 0}
.audit{border-radius:8px;padding:8px 14px;margin:12px 0;font:var(--small)/1.55 var(--sans)}
.audit.ok{background:var(--prov-bg);color:var(--prov)}.audit.minor{background:var(--heur-bg);color:#6b4b00}.audit.error,.audit.inherited{background:var(--err-bg);color:#8d0026;border:1px solid #f3b7c3}
.audit.inherited{border-style:dashed}.audit.corr{background:var(--fix-bg);color:#2c5e3c;border:1px solid #b7d9c3}
.audit a{color:inherit;font-weight:600}
details.orig{margin:18px 0;border:1px solid var(--rule);border-radius:8px;padding:6px 14px;background:var(--surface)}
.tag.audit-error,.tag.audit-inherited{background:var(--err-bg);color:var(--err)}.tag.audit-minor{background:var(--heur-bg);color:var(--heur)}.tag.audit-correct{background:var(--prov-bg);color:var(--prov)}.tag.audit-correction{background:var(--fix-bg);color:var(--fix)}
table.md td .tag{white-space:nowrap}
.nav-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:0}
.stage.art #tree-svg .branch{stroke:var(--sumi);stroke-opacity:.3;stroke-width:1.8;stroke-linecap:round}
.views .grp{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tokens .tip{text-decoration:underline dotted var(--rule);text-underline-offset:3px;cursor:help}
/* hub: one line per agent; agent pages: a short story; verdict: proposition cards */
.agent-lines{list-style:none;padding:0;margin:8px 0;max-width:72ch}.agent-lines li{padding:9px 0;border-top:1px solid var(--rule);line-height:1.5}.agent-lines li:first-child{border-top:0}
.agent-lines .nav-dot,.prop-head .nav-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
.story{max-width:68ch;font-size:1.04em;line-height:1.62;margin:10px 0 18px}.story p{margin:0 0 .9em}
.steps li{padding:2px 0}.steps .mono{color:var(--muted);margin-right:4px}
.prop-cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
.prop-card{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:12px 18px}.prop-card .button-link{margin-left:0}
.prop-head{margin:2px 0 6px;font-family:var(--sans)}.prop-key{display:inline-block;min-width:2.2em;font-weight:700;color:var(--accent-ink)}
.prop-stmt{overflow-x:auto}.prop-status{margin-left:4px}/* proof status: green proved, orange conditional, red not proved */.prop-status.ok,.prop-status.proved{background:var(--fix-bg);color:var(--fix)}.prop-status.cond{background:var(--heur-bg);color:var(--heur)}.prop-status.fail,.prop-status.open{background:var(--err-bg);color:var(--err)}.prop-legend .prop-status{display:inline-block;margin:0 3px 0 10px;padding:1px 8px;border-radius:4px;font-weight:600}.prop-legend .prop-status:first-of-type{margin-left:4px}.prop-parts{list-style:none;padding:0;margin:4px 0 8px}.prop-parts li{margin:4px 0;padding:3px 10px;border-radius:5px;border-left:4px solid currentColor;font-size:.92rem}.prop-parts li strong{margin-right:3px}.prop-parts li.prop-status{color:var(--ink)}.prop-parts li.proved{border-left-color:var(--fix)}.prop-parts li.cond{border-left-color:var(--heur)}.prop-parts li.open{border-left-color:var(--err)}.prop-parts li.proved strong{color:var(--fix)}.prop-parts li.cond strong{color:var(--heur)}.prop-parts li.open strong{color:var(--err)}.prop-card.tone-proved{border-top:4px solid var(--fix)}.prop-card.tone-cond{border-top:4px solid var(--heur)}.prop-card.tone-open{border-top:4px solid var(--err)}.prop-role{margin:6px 0 8px}
.old-verdict{margin-top:26px}
.zoom-val{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:0 6px;font:var(--small)/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink);border-left:1px solid var(--rule)}
.seg.zoom .zoom-val+button{border-left:1px solid var(--rule)}
@media(max-width:560px){.prop-cards{grid-template-columns:1fr}}

/* nav-cost: tokens used to make these pages */
.nav-bar>li.nav-cost{margin-left:auto}.nav-cross~li.nav-cost{margin-left:0}
.nav-cost summary{gap:8px;font-variant-numeric:tabular-nums}.nav-cost summary::after{display:none}
.nav-cost .cost-tok{color:var(--ink);font-weight:600}.nav-cost .cost-usd{color:#8a5a1c;font-weight:600}
.nav-cost .cost-menu{left:auto;right:-6px;width:min(25rem,calc(100vw - 20px));padding:12px 14px;white-space:normal;color:var(--ink);font-weight:400}
.cost-menu .cost-head{margin:0 0 6px;font-weight:650}
.cost-menu table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.cost-menu th{font-weight:500;color:var(--muted);text-align:right;padding:2px 0 4px 10px}
.cost-menu td{padding:5px 0 5px 10px;text-align:right;border-top:1px solid var(--rule);vertical-align:top}
.cost-menu td:first-child{text-align:left;padding-left:0}.cost-menu td small{display:block;color:var(--muted)}
.cost-menu tr.cost-sum td{font-weight:650}
.cost-menu p{margin:8px 0 0;line-height:1.45}.cost-menu .cost-note{color:var(--muted);font-size:.92em}
@media(max-width:560px){.nav-bar>li.nav-cost{margin-left:0}.nav-cost .cost-menu{left:10px;right:10px;width:auto}}
.knowl{position:relative;color:inherit;text-decoration:underline dotted;text-decoration-color:var(--muted);text-underline-offset:2px}
.knowl-tip{display:none;position:absolute;left:0;top:calc(100% + 4px);z-index:35;width:max-content;max-width:min(24rem,calc(100vw - 32px));padding:7px 10px;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:7px;box-shadow:0 10px 26px -12px rgba(29,29,31,.35);font:400 .82rem/1.45 var(--sans);white-space:normal;text-align:left}
.knowl:hover .knowl-tip,.knowl:focus .knowl-tip{display:block}

/* ---- multiagents pages: sub-tab row, statements, tables, flows, diagrams ---- */
main{max-width:1040px}
.subnav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 22px;margin:0;padding:0 24px;list-style:none;background:var(--surface);box-shadow:inset 0 -1px 0 var(--rule);font:var(--small)/1.4 var(--sans)}
.subnav li{margin:0}.subnav a,.subnav button{display:block;padding:8px 0 9px;color:var(--muted);text-decoration:none;border:0;border-bottom:2px solid transparent;background:none;font:inherit;cursor:pointer}
.subnav a:hover,.subnav button:hover{color:var(--ink)}.subnav a[aria-current]{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.subnav .util-gap{margin-left:auto}
@media(max-width:560px){.subnav{padding:0 8px;gap:4px 14px}.subnav .util-gap{margin-left:0;flex-basis:100%;height:0}}
.lead{font-size:1.08em;max-width:46rem}
.cap,figcaption{font:var(--small)/1.5 var(--sans);color:var(--muted);margin:4px 0 0}
figure{margin:14px 0 18px;min-width:0}
figure img{display:block;max-width:100%;height:auto}
.scroll{overflow-x:auto;max-width:100%}
.scroll img{max-width:none;border:1px solid var(--rule);border-radius:6px}
.lt{border-collapse:collapse;width:100%;font:var(--small)/1.5 var(--sans);margin:10px 0 18px}
.lt caption{caption-side:top;text-align:left;color:var(--muted);padding:0 0 6px}
.lt th{text-align:left;font-weight:600;color:var(--muted);border-bottom:1px solid var(--rule);padding:6px 14px 6px 0;vertical-align:bottom}
.lt td{border-bottom:1px solid var(--rule);padding:8px 14px 8px 0;vertical-align:top}
.lt td.n,.lt th.n{text-align:right;font-variant-numeric:tabular-nums}
.pass{color:var(--prov);font-weight:600}.fail{color:var(--err);font-weight:600}
.question{border-left:3px solid var(--accent);background:var(--accent-soft);padding:12px 18px;margin:14px 0 22px;border-radius:0 8px 8px 0}
.question ol{margin:6px 0 0}.question li{margin:6px 0}
.stmt{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:10px 18px;margin:14px 0}
.stmt-head{font:600 var(--small)/1.5 var(--sans);margin:0 0 4px;color:var(--muted)}.stmt-label{color:var(--ink)}
.stmt[data-kind=prop]{border-left:3px solid var(--prov)}
.xch{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:start;margin:10px 0 6px}
.xch.three{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}
.xch h3{font:600 var(--small)/1.4 var(--sans);margin:0;color:var(--muted)}
.xch .arrow{font:var(--small)/1.3 var(--sans);color:var(--muted);align-self:center;text-align:center}
.xch pre{font-size:.74rem;line-height:1.5;padding:10px 12px;margin:6px 0 0;overflow-x:auto;white-space:pre}
@media(max-width:760px){.xch,.xch.three{grid-template-columns:minmax(0,1fr)}.xch .arrow{transform:rotate(90deg)}}
.flow{list-style:none;padding:0;margin:14px 0}
.flow>li{padding:0;border-top:1px solid var(--rule);margin:0}
.flow>li>details>summary{display:grid;grid-template-columns:9rem minmax(0,1fr) 14px;gap:4px 20px;padding:12px 0;list-style:none;font:inherit;cursor:pointer}
.flow>li>details>summary::-webkit-details-marker{display:none}
.flow>li>details>summary::after{content:"";width:7px;height:7px;margin-top:7px;border:solid var(--muted);border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}
.flow>li>details[open]>summary::after{margin-top:11px;transform:rotate(-135deg)}
.flow>li>details>summary:hover .step{color:var(--accent-ink)}
.flow>li>details>.step-fig{padding:0 0 16px}
.flow>li:last-child{border-bottom:1px solid var(--rule)}
.flow .step{font:600 var(--small)/1.5 var(--sans)}.flow .step i{display:block;font-style:normal;font-weight:400;color:var(--muted)}
.flow .step-fig{min-width:0;margin:0}
@media(max-width:700px){.flow>li>details>summary{grid-template-columns:minmax(0,1fr) 14px}.flow>li>details>summary>span:nth-child(2){grid-column:1}.flow>li>details>summary::after{grid-column:2;grid-row:1}}
.legend-row{font:var(--small)/1.5 var(--sans);color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0}
.legend-row i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.rules{padding-left:1.2em}.rules li{margin:6px 0}
pre.tree{font-size:.78rem;line-height:1.55;overflow-x:auto;white-space:pre}
.dg{display:block;width:100%;height:auto;font-family:var(--sans)}
.dg .t{font-size:11.5px;font-weight:600;fill:#243142}.dg .s{font-size:9px;fill:#516174}
.dg .ln{fill:none;stroke:#8190A2;stroke-width:1.4}.dg .ln2{fill:none;stroke:#8190A2;stroke-width:1.2;stroke-dasharray:3 3}
.dg .rd{fill:none;stroke:var(--err);stroke-width:1.4}.dg .gn{fill:none;stroke:var(--fix);stroke-width:1.4}
.fig-wrap{overflow-x:auto;min-width:0}.fig-wrap svg.wide{min-width:640px}
.two-fig{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:760px){.two-fig{grid-template-columns:minmax(0,1fr)}}
.map a rect{transition:opacity .15s}.map a:hover rect{opacity:.75}
.status-line{font:var(--small)/1.5 var(--sans);color:var(--muted);border-top:1px solid var(--rule);padding-top:8px;margin-top:22px}
.pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--rule);margin-top:34px;padding-top:12px;font:var(--small)/1.5 var(--sans)}
.timeline{display:block;width:100%;height:auto;font-family:var(--sans)}
.tl-row{font-size:12.5px;fill:var(--ink)}.tl-id{font-weight:700}
.tl-band{font-size:11.5px;font-weight:650}.tl-ax,.tl-lab{font-size:10.5px;fill:var(--muted)}
.tl-sync{stroke:var(--sumi);stroke-width:1;stroke-dasharray:2 3;opacity:.55}
.timeline a:hover rect,.timeline a:hover path{opacity:.75}
.table-scroll{overflow-x:auto;max-width:100%;min-width:0}
.table-scroll>.lt{min-width:520px}
.table-scroll,.scroll,.fig-wrap,.katex-display{position:relative}

/* Architecture role colors: labels retain the distinction without color. */
.role-map rect.role-neutral,.role-map .role-neutral>rect{fill:#f1f5f9;stroke:#94a3b8}
.role-map rect.role-root,.role-map .role-root>rect{fill:#dbeafe;stroke:#2563a6}
.role-map rect.role-solver,.role-map .role-solver>rect{fill:#ccfbf1;stroke:#0f766e}
.role-map rect.role-verifier,.role-map .role-verifier>rect{fill:#ede9fe;stroke:#7c3aed}
.role-map rect.role-auditor,.role-map .role-auditor>rect{fill:#ffedd5;stroke:#b45309}
.role-map .s{fill:#334155}

/* exercises: attempt, then reveal */
.ex textarea{display:block;width:100%;min-height:3.2em;margin:8px 0 6px;padding:7px 10px;border:1px solid var(--rule);border-radius:7px;font:var(--small)/1.5 var(--sans);background:var(--bg);resize:vertical}
.ex-btn{font:600 var(--small)/1.4 var(--sans);padding:5px 12px;border:1px solid var(--accent);border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);cursor:pointer;margin:2px 0 6px}
.ex-btn:disabled{border-color:var(--rule);background:var(--surface);color:var(--muted);cursor:not-allowed}
.ex-a{border-top:1px dashed var(--rule);margin-top:8px;padding-top:6px}
.ex-choices{list-style:none;padding:0;margin:8px 0;font:var(--small)/1.5 var(--sans)}
.ex-choices label{display:block;padding:4px 8px;border-radius:6px;cursor:pointer}
.ex-choices label.key{background:var(--prov-bg)}.ex-choices label.wrong{background:var(--open-bg)}
.ex .tag.kind{font-weight:500}
.sim-ctl{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font:var(--small)/1.4 var(--sans);margin:8px 0}
.sim-ctl input[type=text]{font:var(--small)/1.4 ui-monospace,Menlo,monospace;padding:4px 8px;border:1px solid var(--rule);border-radius:6px;min-width:16rem}
.sim-ctl button{font:inherit;padding:3px 10px;border:1px solid var(--rule);border-radius:6px;background:var(--surface);cursor:pointer}
.sim-ctl button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.sim-grid{border-collapse:collapse;font:var(--small)/1.25 ui-monospace,Menlo,monospace;margin:4px 0 12px}
.sim-grid th,.sim-grid td{border:1px solid var(--rule);padding:3px 6px;text-align:center;vertical-align:top;min-width:1.9em}
.sim-grid th{color:var(--muted);font-weight:600;background:var(--surface)}.sim-grid th.pol{text-align:left;font-family:var(--sans)}
.sim-grid td.f{background:var(--open-bg);color:var(--open)}.sim-grid td.h{color:var(--muted)}
.sim-out{font:var(--small)/1.5 var(--sans)}
/* ring-buffer microworld (assets/ring.js) */
.rb-ctl label{display:inline-flex;align-items:center;gap:6px}.rb-ctl input[type=range]{width:110px}
.rb-pics{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:center}
@media(max-width:760px){.rb-pics{grid-template-columns:minmax(0,1fr)}}
.rb-pics svg{margin:0 auto}
.rb-log{min-height:4.2em;margin:6px 0;white-space:pre-wrap}
.sim-ctl input[type=text][size]{min-width:0;width:4em}
/* side navigation (site.js nav): one disclosure per tool */
.site-nav.side{box-shadow:none;background:var(--surface);font:var(--small)/1.4 var(--sans)}
.side-top{display:flex;align-items:center;gap:6px;margin:0;padding:12px 14px 8px;list-style:none}
.side-top .nav-home a{font-weight:650;color:var(--ink);text-decoration:none}.side-top .side-find{margin-left:auto}
.side-toggle{display:none;font:inherit;padding:4px 10px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);color:var(--ink);cursor:pointer}
.side-list{list-style:none;margin:0;padding:4px 10px}.side-list li{margin:0}
.side-list a,.side-list summary,.side-list button{display:block;padding:6px 8px;border-radius:7px;color:var(--muted);text-decoration:none;font:inherit;background:none;border:0;text-align:left;width:100%;cursor:pointer}
.side-list a:hover,.side-list summary:hover,.side-list button:hover{background:var(--def-bg);color:var(--ink)}
.side-list a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.side-grp>summary{list-style:none;display:flex;align-items:center;gap:8px;color:var(--ink)}.side-grp>summary::-webkit-details-marker{display:none}
.side-grp>summary::before{content:"";width:6px;height:6px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(-45deg);transition:transform .15s;flex:none}
.side-grp[open]>summary::before{transform:rotate(45deg)}.side-grp>summary.cur{font-weight:650}
.side-grp ul{list-style:none;margin:0 0 4px 13px;padding:0 0 0 8px;border-left:1px solid var(--rule)}
.side-util{border-top:1px solid var(--rule);margin-top:8px;padding-top:8px}
.side-cost{margin:6px 10px 16px;padding:0 8px}.side-cost summary{font-variant-numeric:tabular-nums}
.side-cost .cost-tok{color:var(--ink);font-weight:600}.side-cost .cost-usd{color:#8a5a1c;font-weight:600}
.side-cost .cost-menu{padding:8px 0}.side-cost .cost-menu td small{display:block;color:var(--muted)}
@media(min-width:900px){
  body.has-side{display:grid;grid-template-columns:250px minmax(0,1fr)}
  body.has-side>*{grid-column:2}
  body.has-side>.site-nav.side{grid-column:1;grid-row:1;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;border-right:1px solid var(--rule)}
  body.has-side>main{grid-row:1;width:100%}
}
@media(max-width:899px){
  .site-nav.side{border-bottom:1px solid var(--rule)}
  .side-toggle{display:block}.site-nav.side:not(.open) .side-body{display:none}
  .side-top{padding:8px 12px}
}
@media(prefers-reduced-motion:reduce){.side-grp>summary::before{transition:none}}
/* coding exercise (assets/pyqueue.js) */
.ex textarea.code{font:.86rem/1.5 ui-monospace,Menlo,monospace;background:#fcfcfa;tab-size:4;white-space:pre;overflow-x:auto;min-height:12em}
.code-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:var(--small)/1.4 var(--sans)}
.code-bar button:not(.ex-btn){font:inherit;padding:4px 10px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);cursor:pointer;color:var(--ink)}
.code-bar button:disabled{color:var(--muted);cursor:not-allowed}
.code-err{border-color:var(--open);background:var(--open-bg);color:var(--open)}
ul.tests{list-style:none;padding:0;margin:6px 0;font:var(--small)/1.5 var(--sans)}
ul.tests button{font:inherit;font-weight:600;border:0;background:none;cursor:pointer;padding:2px 4px;border-radius:5px}
ul.tests button.ok{color:var(--prov)}ul.tests button.bad{color:var(--open)}ul.tests button:hover{background:var(--def-bg)}
.trace{border-top:1px dashed var(--rule);margin-top:8px;padding-top:6px}
.trace-head{font:var(--small)/1.4 var(--sans);margin:4px 0}
.trace input[type=range]{flex:1;min-width:120px;max-width:340px}
.good{color:var(--prov);font-weight:600}.badtxt{color:var(--open)}
td.nw { white-space: nowrap; }
.table-scroll>.lt.narrow{min-width:0}
/* frame animation (figure.anim, site.js) */
.anim .frames img{display:block;width:100%;height:auto}.anim .frames img[hidden]{display:none}
.anim-bar{display:flex;align-items:center;gap:8px;margin:6px 0 0;font:var(--small)/1.4 var(--sans)}
.anim-bar button{height:28px;min-width:30px;border:1px solid var(--rule);border-radius:7px;background:var(--surface);color:var(--ink);cursor:pointer;padding:0 9px}
.anim-bar button:hover{border-color:var(--accent)}.anim-bar input{flex:1;max-width:320px}
.anim .frame-cap{display:inline}
/* clickable nodes on a figure (figure.hotfig, site.js) and their prompt panels */
.hot-wrap{position:relative;max-width:min(100%,760px)}.hot-wrap img{display:block;width:100%;height:auto}
.hot-wrap .hot{position:absolute;padding:0;border:2px solid transparent;border-radius:8px;background:transparent;cursor:pointer}
.hot-wrap .hot:hover,.hot-wrap .hot:focus-visible,.hot-wrap .hot.on{border-color:var(--accent);background:rgba(38,103,168,.07);outline:none}
.prompts{margin:4px 0 18px;border-top:1px solid var(--rule)}
.prompt{border-bottom:1px solid var(--rule);padding:2px 0}.prompt>summary{padding:8px 0}.prompt[open]>summary{color:var(--ink)}
.prompt .who{display:inline-block;min-width:2.4em;font-weight:600}
.prompt .brief{border-left:3px solid var(--rule);padding:2px 0 2px 12px;margin:6px 0 10px;font-size:var(--small)}
.prompt .brief p{margin:4px 0}.prompt .k{font:600 .8em/1 var(--mono,ui-monospace,monospace);color:var(--muted);margin-right:8px;letter-spacing:.03em}
.prompt ul.tight{margin:4px 0 8px;padding-left:20px;font-size:var(--small)}.prompt ul.tight li{margin:3px 0}
#tab-step td:first-child,#tab-life td:first-child{white-space:nowrap}
.side-grp>summary .grp-link{display:inline;padding:0;width:auto;background:none;color:inherit;font-weight:inherit}
.side-grp>summary .grp-link[aria-current]{color:var(--accent-ink);font-weight:650}
.side-top .nav-home a[aria-current]{color:var(--accent-ink)}
.tools-sidebar .side-grp>summary a.grp-link{display:inline!important;width:auto!important;min-height:0!important;padding:0!important;border:0!important;background:none!important;color:inherit}
.tools-sidebar .side-grp>summary a.grp-link[aria-current]{color:var(--ink);font-weight:600}
.prompt-list{margin:4px 0 18px}.prompt-list>summary{padding:8px 0;color:var(--muted);cursor:pointer}.prompt-list>.prompts{margin-top:2px}
