:root{--bg:#f6f1e7;--paper:#fffdf8;--ink:#0f2238;--dim:#3e4f63;--faint:#566579;--line:#ddd3c0;--teal:#0e7c86;--teal-d:#0a5961;--lime:#a6c936;--lime-d:#5b7a0f;--warn:#9a6700;--no:#b3261e;--ok:#1d7a46;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Charter,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-text-size-adjust:100%}
a{color:var(--teal-d)}a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--paper);padding:8px;z-index:50}
code,.mono,pre{font-family:var(--mono);font-size:.86em}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.2}
h2{font-size:1.45rem;margin:0 0 .5em}h3{font-size:1.15rem;margin:1.2em 0 .4em}h4{font:700 .78rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin:1.1em 0 .25em}
p{margin:.5em 0}
main{max-width:1600px;margin:0 auto;padding:0 clamp(16px,2.5vw,40px) 40px}
.top{background:var(--ink);color:#fff;position:sticky;top:0;z-index:20}
.bar{max-width:1600px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px clamp(16px,2.5vw,40px)}
.brand{color:#fff;text-decoration:none;font:600 1.15rem var(--serif);display:flex;align-items:center;gap:8px}.brand b{color:var(--lime)}
.mark{width:44px;height:28px;display:inline-block;flex:none}
.top nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.top nav a{color:#cfe0ea;text-decoration:none;padding:7px 11px;border-radius:7px;display:block;font-size:.95rem}
.top nav a:hover{background:#1c3550;color:#fff}.top nav a[aria-current=page]{background:var(--teal);color:#fff}
.gsearch{margin-left:auto;display:flex;gap:6px}.gsearch input{padding:6px 10px;border-radius:7px;border:1px solid #38566f;background:#16304a;color:#fff;min-width:0;width:170px}
.gsearch input::placeholder{color:#9bb3c6}
.mode{font:600 .75rem var(--sans);padding:4px 9px;border-radius:99px;border:1px solid}.mode.snap{color:#ffd88a;border-color:#a07a2a}.mode.live{color:#a7f0b8;border-color:#2d8a4f}
.banner{background:#fff3d6;color:#4a3500;border-top:1px solid #e3c47a;padding:7px 20px;font-size:.88rem;text-align:center}.banner code{background:#fbe6b0;padding:0 4px;border-radius:3px}
.btn{font:600 .9rem var(--sans);background:var(--teal);color:#fff;border:1px solid var(--teal-d);border-radius:8px;padding:8px 14px;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:var(--teal-d);color:#fff}.btn.ghost{background:transparent;color:var(--teal-d)}.btn.ghost:hover{background:#e6f1f0}.btn.small{padding:5px 10px;font-size:.82rem}
.btn:disabled{opacity:.5;cursor:default}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:30px;align-items:end;padding:44px 0 24px}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.6rem);margin:.1em 0}
.eyebrow{font:700 .76rem var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--teal-d);margin:0}
.lede{font-size:1.08rem;color:var(--dim);max-width:70ch}
.mission{font:600 1.15rem var(--serif);border-left:4px solid var(--lime);padding-left:12px;margin-top:14px}.mission b{font:700 .75rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--lime-d);margin-right:8px}
.pagehead{padding:30px 0 6px}.pagehead h1{font-size:2.3rem;margin:.1em 0}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px;margin:18px 0}
.note{background:#eef5e4;border-left:4px solid var(--lime);padding:9px 13px;border-radius:0 8px 8px 0;color:#2a3d10;font-size:.93rem}.note.small,.small{font-size:.86rem}
.faint{color:var(--faint)}.empty{color:var(--dim);background:#f1ebdd;padding:12px 14px;border-radius:8px}
.pill{display:inline-block;font:600 .72rem/1.4 var(--sans);padding:2px 9px;border-radius:99px;border:1px solid var(--line);background:#f3ede0;color:var(--ink);text-decoration:none;white-space:normal;overflow-wrap:normal;word-break:normal}
.pill.open{background:#e3f1f1;border-color:var(--teal);color:var(--teal-d)}.pill.done{background:#e8efe0;border-color:var(--lime-d);color:var(--lime-d)}
.pill.gen{background:#fdf0d8;border-color:#c99a2e;color:#6b4b00}.pill.cur{background:#e5ecf6;border-color:#5b7fb0;color:#23406d}
.pill.ev{background:#efeaf7;border-color:#8a74b8;color:#46347a}.pill.rl{background:#f7ece3;border-color:#c48a56;color:#6b3d12}.pill.grp{background:transparent}
.pill.no,.pill.cs-no{background:#fbe9e7;border-color:var(--no);color:var(--no)}.pill.ok{background:#e4f2ea;border-color:var(--ok);color:var(--ok)}.pill.warn,.pill.cs-warn,.pill.st-warn{background:#fdf0d8;border-color:#c99a2e;color:#6b4b00}
.pill.st-ok{background:#e4f2ea;border-color:var(--ok);color:var(--ok)}.pill.st-no{background:#fbe9e7;border-color:var(--no);color:var(--no)}.pill.st-unk{background:#eceff3;border-color:#8a96a6;color:#3b4756}
.pill .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:5px}.pill.st-unk .dot{background:transparent;border:2px solid currentColor}
.cat-checked{background:#e4f2ea;border-color:var(--ok);color:var(--ok)}.cat-related{background:#e5ecf6;border-color:#5b7fb0;color:#23406d}.cat-unchecked{background:#eceff3;border-color:#8a96a6;color:#3b4756}.cat-question{background:#fdf0d8;border-color:#c99a2e;color:#6b4b00}
.br-proposed{background:#fdf0d8;border-color:#c99a2e;color:#6b4b00}.br-scope{background:#eceff3;border-color:#8a96a6;color:#3b4756}
.ap-design_goal{background:#dff0f0;border-color:var(--teal);color:var(--teal-d)}.ap-measurement{background:#e5ecf6;border-color:#5b7fb0;color:#23406d}.ap-theory_fit{background:#efeaf7;border-color:#8a74b8;color:#46347a}.ap-literature_gap{background:#f7ece3;border-color:#c48a56;color:#6b3d12}.ap-challenge{background:#fdf0d8;border-color:#c99a2e;color:#6b4b00}.ap-unknown{background:#eceff3;border-color:#8a96a6;color:#3b4756}
.k-Claim{background:#e5ecf6}.k-Problem{background:#fdf0d8}.k-Evidence{background:#efeaf7}
.filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;margin:12px 0}.filters label{display:flex;flex-direction:column;font:600 .78rem var(--sans);color:var(--dim);gap:3px}
input,select{font:inherit;padding:7px 9px;border:1px solid #b9ad94;border-radius:7px;background:#fff;color:var(--ink);max-width:100%}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chip{padding:5px 12px;border-radius:99px;border:1px solid var(--line);background:#fff;text-decoration:none;font-size:.86rem;color:var(--ink)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.count{font-size:.86rem;color:var(--dim)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.graphsplit{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)}
.detail-col{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;position:sticky;top:78px;max-height:calc(100vh - 100px);overflow:auto}
.detail-empty{color:var(--dim)}
.qlist{list-style:none;margin:0;padding:0}.qrow a{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;text-decoration:none;color:var(--ink);background:#fff}
.qrow.on a,.qrow a:hover{border-color:var(--teal);box-shadow:0 0 0 2px #cfe6e6}.qid{font:700 .8rem var(--mono);color:var(--teal-d)}.qt{font-weight:600}.qmeta{grid-column:2;display:flex;gap:6px;flex-wrap:wrap}
.graphhost{overflow-x:auto;background:#fbf8f0;border:1px solid var(--line);border-radius:12px;padding:8px}
.graph{display:block;width:100%;height:auto}
.g-col{font:700 11px var(--sans);fill:#6b7a8c;text-transform:uppercase;letter-spacing:.06em}
.g-box{fill:#fff;stroke:#9aa9b8;stroke-width:1.3}.g-label{font:600 12px var(--sans);fill:var(--ink)}.g-sub{font:11px var(--sans);fill:#5b6b7c}
.g-node{cursor:pointer}.g-node:hover .g-box,.g-node:focus .g-box{stroke:var(--teal);stroke-width:2.5}.g-node.sel .g-box{stroke:var(--ink);stroke-width:3}
.g-node.goal .g-box{fill:var(--ink)}.g-node.goal .g-label,.g-node.goal .g-sub{fill:#fff}
.g-node.con .g-box{fill:#eef5f5;stroke-width:2.5;stroke:#8a96a6}.g-node.con.st-pass .g-box{stroke:var(--ok)}.g-node.con.st-fail .g-box{stroke:var(--no)}.g-node.con.st-disputed .g-box{stroke:#c99a2e}.g-node.con.st-unknown .g-box{stroke-dasharray:5 3}
.g-node.src .g-box{fill:#f7ece3;stroke:#c48a56}.g-node.claimnode .g-box{fill:#e5ecf6;stroke:#5b7fb0}.g-node.gen .g-box{fill:#fdf0d8;stroke:#c99a2e}.g-node.cur .g-box{fill:#e5ecf6;stroke:#5b7fb0}
.g-node.ap-design_goal .g-box{fill:#dff0f0;stroke:var(--teal)}.g-node.ap-measurement .g-box{fill:#e5ecf6;stroke:#5b7fb0}.g-node.ap-theory_fit .g-box{fill:#efeaf7;stroke:#8a74b8}.g-node.ap-literature_gap .g-box{fill:#f7ece3;stroke:#c48a56}.g-node.ap-challenge .g-box{fill:#fdf0d8;stroke:#c99a2e}.g-node.ap-unknown .g-box{fill:#eceff3;stroke:#8a96a6}.g-node.done .g-box{stroke-dasharray:2 3}
.g-node.cat-checked .g-box{fill:#e4f2ea;stroke:var(--ok)}.g-node.cat-related .g-box{fill:#e5ecf6;stroke:#5b7fb0}.g-node.cat-unchecked .g-box{fill:#f3f5f7;stroke:#8a96a6}.g-node.cat-question .g-box{fill:#fdf0d8;stroke:#c99a2e}
.g-line{fill:none;stroke:#7d8c9c;stroke-width:1.4}.g-hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer}.g-arrow{fill:#7d8c9c}.g-edge{cursor:pointer}.g-edge:hover .g-line,.g-edge:focus .g-line,.g-edge.sel .g-line{stroke:var(--teal);stroke-width:2.6}
.g-edge.proposed .g-line,.g-edge.limited .g-line{stroke-dasharray:6 4}.g-elabel{font:10px var(--sans);fill:#44556a}.g-elabel-bg{fill:#fbf8f0;stroke:#d9cfbb}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--dim);margin:8px 4px 2px;list-style:none;padding:0}.legend span,.legend li{display:flex;align-items:center;gap:5px}
.sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:2px solid #8a96a6;background:#fff}
.sw.goal{background:var(--ink)}.sw.con{background:#eef5f5}.sw.src{background:#f7ece3;border-color:#c48a56}.sw.claimnode{background:#e5ecf6;border-color:#5b7fb0}.sw.gen{background:#fdf0d8;border-color:#c99a2e}.sw.cur{background:#e5ecf6;border-color:#5b7fb0}
.sw.ap-design_goal{background:#dff0f0;border-color:var(--teal)}.sw.ap-measurement{background:#e5ecf6;border-color:#5b7fb0}.sw.ap-theory_fit{background:#efeaf7;border-color:#8a74b8}.sw.ap-literature_gap{background:#f7ece3;border-color:#c48a56}.sw.ap-challenge{background:#fdf0d8;border-color:#c99a2e}.sw.ap-unknown{background:#eceff3}
.sw.st-pass{border-color:var(--ok)}.sw.cat-checked{background:#e4f2ea;border-color:var(--ok)}.sw.cat-related{background:#e5ecf6;border-color:#5b7fb0}.sw.cat-unchecked{background:#f3f5f7}.sw.cat-question{background:#fdf0d8;border-color:#c99a2e}
.tablewrap{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.55}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font:700 .74rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--dim);white-space:normal}
thead th{background:#eef3f3;vertical-align:bottom}
tbody th{font:600 .9rem/1.55 var(--sans);text-transform:none;letter-spacing:0;color:var(--ink)}
main table td,main table th{overflow-wrap:break-word;word-break:normal}
main table code{overflow-wrap:anywhere}
tbody tr:nth-child(even){background:#f7f8f5}
table .pill{min-width:min-content;max-width:100%}
.ctable th:first-child,.ctable td:first-child{white-space:nowrap;min-width:3.6rem}
.ctable th:nth-child(3),.ctable td.cstat{min-width:9rem}
.ctable .cstat .pill{border-radius:8px}
tr.on td{background:#e8f3f3}.qtable td:nth-child(2){min-width:220px}.arttable td{min-width:130px}
dl.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 16px;margin:10px 0}dl.kv div{background:#f6f1e7;border-radius:8px;padding:8px 11px}dl.kv dt{font:700 .72rem var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--dim)}dl.kv dd{margin:2px 0 0;font-weight:600}dl.kv.wide{grid-template-columns:1fr 1fr}
.detail h3{margin-top:.3em}.detail ul{padding-left:1.1em;margin:.3em 0}
.mathmix{background:#f6f1e7;border-radius:8px;padding:10px 12px;overflow-x:auto}.mathline{margin:3px 0}.mathtext{font-family:var(--serif);font-style:italic;color:var(--dim)}.tex-fallback{font-family:var(--mono)}
.eqgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.eqcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.eq-math{overflow-x:auto;padding:6px 0}.eqcard dt{font:700 .72rem var(--sans);text-transform:uppercase;color:var(--dim);margin-top:8px}.eqcard dd{margin:0}
.subnav{display:flex;gap:4px;flex-wrap:wrap;margin:14px 0;border-bottom:1px solid var(--line)}.subnav a{padding:8px 14px;text-decoration:none;color:var(--dim);border-bottom:3px solid transparent}.subnav a[aria-current=page]{color:var(--ink);border-color:var(--teal);font-weight:700}
.subnav.tabs7 ul{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:4px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.card,.four article,.two article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.four{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.scales{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.scales.compact{margin:10px 0}
.scale b{overflow-wrap:anywhere}.scale{min-width:0;display:grid;grid-template-columns:auto 1fr;gap:0 8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink);align-items:center}.scale small{grid-column:2;color:var(--faint);font-size:.74rem}
.scale .n{font:700 .8rem var(--mono);background:var(--ink);color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;grid-row:span 2}.scale.has{border-left:5px solid var(--lime-d)}.scale.none{border-left:5px dashed #b0a68f}.scale.on,.scale:hover{border-color:var(--teal);box-shadow:0 0 0 2px #cfe6e6}
.mv-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}
.fishwrap{background:linear-gradient(#fbf8f0,#f1ebdc);border:1px solid var(--line);border-radius:12px}.fishcanvas{width:100%;height:340px;display:block;touch-action:none;cursor:grab;--ink:#0f2238;--faint:#6b7a8c}.fishbig .fishcanvas{height:420px}.viewbar{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap}
.caption{font-size:.86rem;color:var(--dim)}
.ws-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:20px}.ws-form fieldset{border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:8px 12px}.ws-form legend{font:700 .78rem var(--sans);text-transform:uppercase;color:var(--dim);padding:0 6px}
.field{margin:8px 0;display:flex;flex-direction:column}.field label{font-weight:600;font-size:.88rem}.field .unit{font:500 .75rem var(--mono);color:var(--faint)}.field small{color:var(--faint);font-size:.76rem}.field small.err{color:var(--no);font-weight:600}.field input[aria-invalid=true]{border-color:var(--no)}
.presets,.row-actions{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chartwrap{margin-top:14px}.chart{width:100%;height:auto;background:#fbf8f0;border:1px solid var(--line);border-radius:10px}.chart .grid{stroke:#e5dcc8}.chart .tick,.chart .axis{font:11px var(--sans);fill:#5b6b7c}.chart .band{fill:#e3efe0;opacity:.7}.chart .limit{stroke:var(--no);stroke-dasharray:6 4}.chart .curve{fill:none;stroke-width:2}.chart .curve.dashed{stroke-dasharray:4 4;opacity:.8}.chart .cand circle{fill:var(--ink);stroke:#fff;stroke-width:2}.chart .cand text{font:600 11px var(--sans);fill:var(--ink)}
ul.legend.inline li{display:inline-flex;margin-right:12px}
.derived{margin-top:14px}.verdictbox{background:#f6f1e7;border-radius:10px;padding:12px 16px;margin:10px 0}.vlabel{font:700 1.5rem var(--serif)}.v-flag-raised{color:var(--no)}.v-no-flag-raised{color:var(--dim)}.v-undetermined{color:var(--dim)}.note.warn{background:#fdf0d8;border-color:#c99a2e;color:#4a3500}
.ctable td.cdetail{min-width:240px}.rule{background:#f1ebdd;padding:1px 6px;border-radius:4px}
.flow ol{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:14px 0;gap:6px}
.oqrow{padding:8px 0;border-bottom:1px solid var(--line)}
.adapter-out{margin-top:8px;font-size:.88rem}.adapter-out.unavailable{background:#fdf0d8;border-left:4px solid #c99a2e;padding:8px 12px;border-radius:0 8px 8px 0}
.catalog{list-style:none;padding:0}.catrow{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:8px}
.neg li{margin:8px 0}.positions{padding-left:1.1em}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,100vw);background:var(--paper);border-left:2px solid var(--ink);z-index:40;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(15,34,56,.25)}
.drawer[hidden]{display:none}.dhead{display:flex;justify-content:space-between;gap:12px;align-items:start;padding:14px 18px;border-bottom:1px solid var(--line)}.dhead h2{font-size:1.1rem;margin:0}.dbody{padding:14px 18px;overflow:auto;flex:1}
.md pre,pre.json{background:#14263b;color:#e2edf6;padding:10px;border-radius:8px;overflow:auto;max-height:60vh}.md table{font-size:.82rem}.md blockquote{border-left:3px solid var(--lime);margin:8px 0;padding:2px 12px;color:var(--dim)}
.foot{max-width:1600px;margin:0 auto;padding:10px clamp(16px,2.5vw,40px) 50px;font-size:.84rem;color:var(--dim);border-top:1px solid var(--line)}
.scratch{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.fgwrap .graph{min-width:560px}
.loading{padding:40px 0;color:var(--dim)}
@media (max-width:900px){.hero,.split,.graphsplit,.mv-body,.ws-grid{grid-template-columns:minmax(0,1fr)}.detail-col{position:static;max-height:none}.gsearch{margin-left:0;width:100%}.gsearch input{flex:1;width:auto}.pagehead h1{font-size:1.9rem}.fishbig .fishcanvas{height:320px}dl.kv.wide{grid-template-columns:1fr}.top nav ul{flex-wrap:wrap}.top nav{max-width:100%;order:3;width:100%}}
@media (max-width:520px){main{padding:0 14px 30px}.bar{padding:10px 14px}.panel{padding:14px}.fishcanvas{height:260px}.hero{padding-top:26px}}

#artifacts{max-width:100%;overflow-x:auto}.tablewrap{display:block}.pill.cs-no{white-space:normal}
a{position:relative}

.simfig{margin:14px 0}.simfig img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
code{overflow-wrap:anywhere}

.simgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}.simcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.simmedia video,.novideo img{width:100%;max-height:340px;object-fit:contain;background:#14263b;border-radius:8px}.novideo{border:2px dashed #b0a68f;border-radius:10px;padding:10px;background:#faf6ec}
.chainwrap{overflow-x:auto}.chain{min-width:640px;width:100%;height:auto}.chain .cl{stroke-width:2.5}.chain .cl.ok{stroke:var(--teal)}.chain .cl.unk{stroke:#8a96a6;stroke-dasharray:5 4}.chain .cn{fill:#fff;stroke:#8a96a6;stroke-width:2}.chain .cn.on{fill:var(--ink);stroke:var(--ink)}.chain .cnum{font:700 10px var(--mono);fill:var(--ink)}.chain .cn.on+.cnum{fill:#fff}.chain .clab{font:10px var(--sans);fill:#44556a}
.top nav a{padding:7px 9px}
.pill.lvl-a{background:#f3ede0;border-color:#b0a68f}.pill.lvl-m{background:#dff0f0;border-color:var(--teal);color:var(--teal-d)}

/* Build receipts: readable columns on desktop, labelled records on phones. */
.build-report h3{margin-top:30px;margin-bottom:12px}
.build-report .tablewrap{border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.build-table{table-layout:fixed;line-height:1.55}
.build-table th,.build-table td{padding:14px 16px;overflow-wrap:break-word;word-break:normal}
.build-table thead th{background:#eef3f3;color:var(--ink);white-space:normal;vertical-align:bottom;padding-top:11px;padding-bottom:11px}
.build-table tbody th{font:600 .9rem/1.55 var(--sans);text-transform:none;letter-spacing:0;white-space:normal;color:var(--ink)}
.build-table tbody tr:nth-child(even){background:#f7f8f5}
.build-table tbody tr:last-child>*{border-bottom:0}
.build-table .pill{white-space:nowrap;overflow-wrap:normal;word-break:normal;vertical-align:baseline}
.build-table code{font-size:.78rem;overflow-wrap:anywhere;word-break:normal}
.build-source{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:8px;color:var(--dim)}
.build-source>code{flex-basis:100%;font-size:.76rem;line-height:1.5;overflow-wrap:anywhere}
.build-counters thead th:nth-child(1){width:16%}.build-counters thead th:nth-child(2){width:27%}.build-counters thead th:nth-child(3){width:7.5rem}
.build-roles thead th:nth-child(1){width:18%}.build-roles thead th:nth-child(2){width:16%}.build-roles thead th:nth-child(3){width:34%}
.build-jobs thead th:nth-child(1){width:13rem}.build-jobs thead th:nth-child(2){width:9rem}.build-jobs thead th:nth-child(4){width:10rem}
.build-research thead th:nth-child(1){width:23%}.build-research thead th:nth-child(2){width:15%}.build-research thead th:nth-child(3){width:12rem}.build-research thead th:nth-child(4){width:15%}
.build-timeline thead th:nth-child(1){width:11rem}.build-timeline thead th:nth-child(2){width:9rem}.build-timeline thead th:nth-child(3){width:19%}.build-timeline thead th:nth-child(5){width:23%}
.build-timeline td:first-child,.build-jobs td:first-child{font-variant-numeric:tabular-nums}
@media(max-width:1000px){
  .build-report .tablewrap{border:0;border-radius:0;background:none;overflow:visible}
  .build-report .build-table,.build-table tbody,.build-table tr,.build-table td,.build-table tbody th{display:block;width:100%;box-sizing:border-box}
  .build-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .build-table tr{border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:5px 16px;background:#fff}
  .build-table td,.build-table tbody th{border:0;padding:10px 0;min-width:0;max-width:none}
  .build-table tr>*+*{border-top:1px solid #e9e6df}
  .build-table [data-label]::before{content:attr(data-label);display:block;margin-bottom:4px;font:700 .7rem/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}
  .build-table .pill{white-space:normal}
  .build-table .build-source{margin-top:6px}
}

.scen{width:100%;font:13px var(--mono);border:1px solid #b9ad94;border-radius:8px;padding:8px;background:#fff;color:var(--ink)}
.pform img{width:100%;max-height:260px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px}.meshhost{margin:8px 0}

.adv{border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:10px 0;background:#fbf8f0}.adv summary{cursor:pointer}.adv fieldset{margin:8px 0}
.ws-left{position:sticky;top:76px;align-self:start}.ws-form{max-height:none}
.rescard{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}.resrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.witline .wv{display:inline-block;background:#f6f1e7;border-radius:6px;padding:2px 8px;margin:2px 6px 2px 0;font-family:var(--mono)}
.fullresp{margin-top:8px;max-height:60vh;overflow:auto}.fullresp pre.json{max-height:220px}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.mitem{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;text-decoration:none;color:var(--ink)}.mitem img{width:100%;height:120px;object-fit:cover;display:block;background:#14263b}.mitem span{display:block;padding:6px 8px;font-size:.8rem}
.hero.compact{padding:22px 0 10px;gap:22px}.hero.compact h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.simmedia video{max-height:420px}
@media (max-width:900px){.ws-left{position:static}}
.simgrid>*,.cards>*,.two>*,.four>*{min-width:0}
main p,main li,main dd,main td{overflow-wrap:anywhere}

.simcard .simmedia video{width:100%;aspect-ratio:16/9;max-height:none;background:#000}.simdet{border-top:1px solid var(--line);margin-top:8px;padding-top:6px}.simdet summary{cursor:pointer}
.simgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr))}

.clip summary{cursor:pointer;color:var(--teal-d)}

.ac{position:absolute;top:100%;left:0;right:0;min-width:320px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(15,34,56,.25);z-index:60;max-height:70vh;overflow:auto}
.acg{font:700 .7rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--dim);padding:8px 12px 2px}.aci{display:block;padding:6px 12px;text-decoration:none;color:var(--ink);border-top:1px solid #f1ebdd}.aci.on,.aci:hover{background:#e8f3f3}
.act{display:block;font-weight:600}.acm,.acs{display:block;font-size:.78rem;color:var(--dim)}.ace{padding:10px 12px;font-size:.88rem;color:var(--dim)}.acf{display:flex;justify-content:space-between;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:.78rem;background:#faf6ec}
.entlayout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}.entside{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;position:sticky;top:76px}
.embed{width:100%;max-height:360px;object-fit:contain;background:#14263b;border-radius:8px}.artgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}.artcard{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}
.advraw{margin:18px 0}.tex-fallback{background:#fdf0d8;border-radius:4px;padding:0 4px}
@media (max-width:900px){.entlayout{grid-template-columns:minmax(0,1fr)}.entside{position:static}.ac{position:fixed;left:8px;right:8px;top:auto}}

.brandsub{display:block;font:500 .62rem var(--sans);letter-spacing:.05em;color:#9bb3c6;text-transform:uppercase;margin-top:-2px}.brand{flex-direction:column;align-items:flex-start;gap:0}
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px;margin:10px 0}.path{background:var(--paper);border:2px solid var(--line);border-radius:16px;padding:20px}.path.studio{border-top:6px solid var(--teal)}.path.frontier{border-top:6px solid var(--lime)}
.featured{background:#f6f1e7;border-radius:12px;padding:12px 14px;margin:10px 0}.mgrid.mini{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.mgrid.mini img{height:90px}.facts-line{font-size:1.05rem}
.studiogrid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}.rail{position:sticky;top:76px;max-height:calc(100vh - 90px);overflow:auto}.subsyslist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.subsys{display:grid;grid-template-columns:auto 1fr;gap:0 8px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink);align-items:center}.subsys small{grid-column:2;color:var(--faint);font-size:.72rem}
.subsys .n{font:700 .75rem var(--mono);background:var(--ink);color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;grid-row:span 2}.subsys.model{border-left:5px solid var(--lime-d)}.subsys.partial{border-left:5px solid #c99a2e}.subsys.gap{border-left:5px dashed #b0a68f}.subsys.on,.subsys:hover{border-color:var(--teal);box-shadow:0 0 0 2px #cfe6e6}
.studiomain>.panel{margin-top:0}
@media (max-width:900px){.studiogrid{grid-template-columns:minmax(0,1fr)}.rail{position:static;max-height:none;overflow:visible}.rail>h2{margin:0 0 4px}.subsyslist{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.subsys{padding:5px 6px;grid-template-columns:auto minmax(0,1fr);gap:0 5px}.subsys b{font-size:.8rem;overflow-wrap:normal}.subsys small{display:none}.subsys .n{width:18px;height:18px;font-size:.65rem;grid-row:auto}}
.projectwide{margin-top:26px;border-top:2px solid var(--line);padding-top:6px}.projectwide-h{font-size:1.1rem;color:var(--faint);margin:10px 0}

.eh{font-size:1.15rem;margin:1.2em 0 .4em}

.claimcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px}.claimcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}.claimcard h3{font-size:1.02rem;margin:.1em 0 .3em}.claimcard a{text-decoration:none;color:var(--ink)}.claimcard a:hover h3{color:var(--teal-d)}.cstate{font-size:.92rem;margin:.2em 0}.pager{display:flex;gap:10px;align-items:center}

.goalrow{display:flex;gap:8px;flex-wrap:wrap}.goalrow input{flex:1;min-width:220px;font-size:1rem;padding:10px 12px}.goalpanel{margin-top:6px}

.gview{min-height:360px}.gview .gsvg{touch-action:none;cursor:grab}.gtools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}.gsvg .g-node circle{fill:#fff;stroke:#8a96a6;stroke-width:2}.gsvg .g-node.goal circle{fill:var(--ink)}.gsvg .g-node.sel circle{stroke:var(--teal);stroke-width:4}.gsvg .g-node.goal .g-sub{fill:#fff}

.qtable td:first-child,.qtable td:first-child *{white-space:normal;overflow-wrap:anywhere;word-break:normal}.qtable td:first-child{min-width:11em;max-width:14em}.qtable .qlink{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.qtable td{overflow-wrap:anywhere}.qtable{table-layout:auto}.qtable tr[data-href]{cursor:pointer}.qtable tr[data-href]:hover td{background:#eef6f6}.qlink{color:var(--ink);text-decoration:none;display:block}
.qtable{min-width:640px}.tablewrap{background:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to left,#fff 30%,rgba(255,255,255,0)) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.16),transparent),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.16),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
.qtable td:first-child .pill{overflow-wrap:normal;word-break:normal}

.dimpick{border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 12px}.dimpick legend{font:700 .78rem var(--sans);color:var(--dim);padding:0 6px}.dimpick label{font-size:.9rem;display:flex;gap:5px;align-items:center}
.asgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:18px;align-items:start;margin:10px 0}.fishmap{width:100%;height:auto;background:#fbf8f0;border:1px solid var(--line);border-radius:12px}
.fishmap .shape{stroke:#0f2238;stroke-width:2;fill:#d9d4c7}.fishmap .part{cursor:pointer}.fishmap .part:focus .shape,.fishmap .part:hover .shape{stroke:var(--teal);stroke-width:4}.fishmap .part.sel .shape{stroke:var(--teal);stroke-width:5}
.t-good .shape,.t-good{--tc:#cfe8d6}.t-mid .shape,.t-mid{--tc:#f6e3b4}.t-bad .shape,.t-bad{--tc:#f2c4bf}.t-unk .shape,.t-unk{--tc:#e3e1da}.fishmap .part .shape{fill:var(--tc,#e3e1da)}
.aslegend{margin:8px 0;font-size:.9rem;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.aslegend .lg{display:inline-flex;gap:5px;align-items:center}.aslegend .lg i{width:14px;height:14px;border-radius:3px;border:1px solid #6b7a8c;background:var(--tc)}
.scalestrip{display:flex;flex-wrap:wrap;gap:6px}.scalechip{border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--tc,#e3e1da);cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.scalechip small{display:block;font-size:.7rem;color:#3e4f63}
.vec{margin:0}.vrow{display:grid;grid-template-columns:130px 1fr;gap:8px;padding:6px 8px;border-left:6px solid #b0a68f;margin:4px 0;background:#fff;border-radius:0 8px 8px 0}.vrow.t-good{border-left-color:#2d8a4f}.vrow.t-mid{border-left-color:#c99a2e}.vrow.t-bad{border-left-color:#b3261e}.vrow.cur{outline:2px solid var(--teal)}.vrow dt{font:700 .78rem var(--sans);color:var(--dim)}.vrow dd{margin:0}
.matrix{font-size:.8rem}.matrix th,.matrix td{padding:3px 4px;text-align:center}.matrix th[scope=row]{text-align:left;white-space:nowrap}.mcell{width:100%;border:1px solid #8a96a6;border-radius:6px;background:var(--tc,#e3e1da);padding:6px 4px;cursor:pointer;font:inherit;font-size:.75rem;color:var(--ink)}.mcell:focus-visible,.mcell:hover{outline:3px solid var(--teal)}.diag{color:var(--faint)}
@media (max-width:900px){.asgrid{grid-template-columns:minmax(0,1fr)}.vrow{grid-template-columns:minmax(0,1fr)}}

/* design review */
.drprompts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:.75rem}
.drcard{border:1px solid var(--line,#ccc);border-radius:6px;padding:.6rem .8rem;background:var(--panel,#fff)}
.drcard.open{border-left:4px solid var(--warn,#b26a00);margin:.6rem 0}
.drreply{margin:.4rem 0 0 1rem;padding-left:.6rem;border-left:2px solid var(--line,#ccc)}
.designreview form .wide{display:block;width:100%}.designreview form textarea{width:100%;box-sizing:border-box}
.drhead{font-size:1rem}
.turntable video{display:block;max-width:100%;height:auto}.printmodels select{max-width:100%}

/* wide desktop: use the room, keep paragraphs readable */
main p,main li{max-width:100ch}main .lede{max-width:80ch}
.groundgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;align-items:start}
.regiongrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.6rem}
.region{border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;background:#fff}.region h4{margin:.1rem 0 .3rem;text-transform:capitalize}
.region .assumed{border-left:3px solid var(--warn,#b26a00);padding-left:.4rem}
@media (max-width:900px){.groundgrid{grid-template-columns:minmax(0,1fr)}}

/* About menu: native details dropdown */
.aboutmenu{position:relative}.aboutmenu summary{cursor:pointer;color:#dbe7f0;list-style:none;padding:6px 10px;border-radius:7px}.aboutmenu summary::-webkit-details-marker{display:none}.aboutmenu summary::after{content:" \25BE"}.aboutmenu summary.on,.aboutmenu summary:hover,.aboutmenu summary:focus-visible{background:rgba(255,255,255,.12);color:#fff}
.aboutmenu details[open]>ul{position:absolute;right:0;top:100%;z-index:30;min-width:15rem;margin:4px 0 0;padding:6px;background:var(--ink);border:1px solid #3a5266;border-radius:8px;display:block;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.aboutmenu details[open]>ul li{display:block}.aboutmenu details[open]>ul a{display:block;padding:7px 10px;border-radius:6px;white-space:nowrap}
@media (max-width:900px){.aboutmenu details[open]>ul{position:static;box-shadow:none}}

/* filters never widen the page: long option text and wide inputs shrink */
.filters label{min-width:0;max-width:100%}.filters select,.filters input[type=search]{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
@media (min-width:700px){.filters select,.filters input[type=search]{width:auto}}

/* runtime graph: labels sit below the circles on the cream canvas, so they are always dark (the centre label was white on cream) */
.gsvg .g-node .g-label,.gsvg .g-node.goal .g-label{fill:var(--ink)}

/* edge labels with no free spot appear only for the hovered, focused or selected edge */
.g-hid{display:none}.g-edge:hover .g-hid,.g-edge:focus .g-hid,.g-edge.sel .g-hid{display:inline}

/* narrow screens: question tables become stacked cards, so no column is cut off */
@media (max-width:700px){
  .qtable,.qtable thead,.qtable tbody,.qtable tr,.qtable td{display:block;width:100%;box-sizing:border-box}
  .qtable{min-width:0}.qtable td:nth-child(2){min-width:0}
  .qtable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .qtable tr{border:1px solid var(--line);border-radius:8px;margin:0 0 10px;padding:6px 8px;background:#fff}
  .qtable td{border:0;padding:3px 0;max-width:none;min-width:0}
  .qtable td:first-child{min-width:0;max-width:none;font-weight:700}
  .qtable tbody th{display:block;width:100%;border:0;padding:6px 0;white-space:normal}
  .qtable td[data-label]:not(:first-child):not(:nth-child(2))::before{content:attr(data-label) ": ";font:600 .72rem var(--sans);color:var(--dim)}
  .qtable td .qlink{-webkit-line-clamp:6}
}

/* simulation gallery navigation: jump list, lazy cards */
.sjump{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:8px 0 0;padding:0}.sjump li{margin:0}.simcard{content-visibility:auto;contain-intrinsic-size:auto 900px}
.printv3{margin-top:10px}.printv3 select{max-width:100%}.printv3 .v3links{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.print-study-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}.print-study{min-width:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.print-study img{display:block;width:100%;height:180px;object-fit:contain;background:#f6f1e7}.print-study>div{padding:12px}.print-study h4{margin:0 0 8px}.print-study p{margin:8px 0}.print-study ul{padding-left:18px}

/* genetic blueprint chain and unknown markers */
mark.unk{background:#fde9c8;color:#6a3d00;padding:0 3px;border-radius:3px;font-weight:600}
.bpflow{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:10px}
.bpstep{display:flex;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;min-width:0}.bpstep h3{margin:0 0 4px;font-size:1rem}.bpstep h4{margin:8px 0 2px}.bpstep>div{min-width:0;overflow-wrap:anywhere}
.bpn{flex:none;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font:700 .8rem var(--sans)}
tr.flash{outline:3px solid var(--teal)}
.bpconstruct{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:8px 0}.bpblock{flex:1 1 11rem;border:2px solid var(--ink);border-radius:8px;padding:6px 8px;background:#fbf8f0;min-width:0;overflow-wrap:anywhere}.bpblock b{display:block;font:700 .74rem var(--sans);text-transform:uppercase}.bparrow{align-self:center;font-weight:700}
/* native video controls suppress the browser's own ring: draw ours so keyboard focus is always visible */
video:focus,video:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.bootfail{max-width:42rem;margin:40px auto;padding:20px;border:2px solid var(--no,#a33);border-radius:10px;background:#fff}
/* Ecology page: the viewer's 16:10 stage with a 300px minimum forced a 480px+ box on phones; movies fill the column. */
.mediagrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}.mediagrid video{width:100%;height:auto;max-width:100%;background:#000}
@media (max-width:600px){.ev-stage{aspect-ratio:auto;min-height:240px;height:62vw;max-width:100%}}
/* Demo page: concept headline, player beside a watch-your-way panel, story cards below. The stage scales with the window; nothing overflows on phones. */
.demotitle{font-size:clamp(2.2rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.02em;margin:.1em 0 .25em}.demotitle .accent{color:#2740d8}
.demolayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;margin:8px 0 18px}@media (max-width:1000px){.demolayout{grid-template-columns:minmax(0,1fr)}}
.demofig{margin:0;min-width:0;background:#0f1d2e;border-radius:14px;padding:10px}.demostage{background:#000;border-radius:8px;overflow:hidden}.demostage video{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:max(360px,calc(100vh - 190px));background:#000}.demostage:fullscreen{display:grid;place-items:center}.demostage:fullscreen video{max-height:100vh;height:100vh;object-fit:contain}
@media (min-width:1001px){.demofig{min-width:640px}}.demofig figcaption{color:#cfd9e4;padding:8px 4px 0}
.demoside{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}.demoside h2{margin:0;font-size:1.5rem}
.demotabs{display:flex;flex-direction:column;gap:8px}.democut{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--line);border-radius:10px;text-decoration:none;background:#fff}.democut[aria-current=page]{background:#2740d8;color:#fff;border-color:#2740d8}.democut[aria-current=page] .small{color:#dfe5ff}
.demoactions{display:flex;flex-direction:column;gap:8px;margin:0}.demoactions .btn{text-align:center}.demodl{padding-left:1.1em;margin:0}.demodl li{margin:.3em 0}.demoh3{margin:.6em 0 .1em;font-size:1rem}.demometa{margin:0}
.demostory{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.demostory li{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}.demostory .n{font:600 .75rem ui-monospace,monospace;letter-spacing:.12em;color:#0b7a75}.demostory b{font-size:1.1rem}
.democta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:#0f1d2e;color:#fff;border-radius:14px;padding:20px 24px;margin-bottom:16px}.democta h2{margin:0 0 4px;font-size:1.4rem;color:#fff}.democta p{margin:0;color:#cfd9e4}.democta .btn.ghost{color:#fff;border-color:#8aa0c0}
.demolimits summary{cursor:pointer}.herowatch{margin:.4em 0 0}
/* Studio on a phone: the section nav is one scrollable row (inside its own box) so the scale selector sits near the top. */
@media (max-width:600px){.pagehead>.subnav{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.pagehead>.subnav a{flex:0 0 auto}}

/* Per-file grounding keeps physical laws, design rules and results separate. */
.print-picker select{display:block;width:100%;max-width:100%;margin:.6rem 0;padding:.7rem;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px}
.print-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}
.print-metrics b,.print-metrics span{display:block}.print-metrics b{font-size:1.5rem}.print-metrics span{font-size:.9rem;color:var(--dim)}
.print-checks{padding-left:1.3rem}.print-checks li{margin:.8rem 0}.print-checks p{margin:.35rem 0;line-height:1.6}
.print-law-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.print-law-grid .card{min-width:0}
.print-equation{overflow-x:auto;padding:.6rem 0}.print-file-hash code,.print-sources code{display:block;overflow-wrap:anywhere;line-height:1.5}
.print-sources li{margin:.8rem 0;overflow-wrap:anywhere}
@media(max-width:700px){.print-law-grid,.print-metrics{grid-template-columns:1fr}.print-metrics{gap:.7rem}}
/* Assemblies: axis cells are a short line plus a collapsed tree of the full fields. */
.asinspect{margin-top:4px}.asinspect summary{cursor:pointer}.astree{margin:.2em 0;padding-left:1em}dl.astree{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:2px 10px;padding-left:0}dl.astree dt{font-weight:600;color:var(--dim);overflow-wrap:anywhere}dl.astree dd{margin:0;overflow-wrap:anywhere}.asline{margin:.3em 0}
@media (max-width:600px){dl.astree{grid-template-columns:minmax(0,1fr)}}
/* Tables, second pass: badges stay on one line, wide tables keep their first column in view, a table that scrolls says so, and narrow screens stack
 * ordinary tables as label/value cards (the cells' labels are added by studio.js from each header). */
.tablewrap td .pill,.tablewrap th .pill{white-space:nowrap}.tablewrap th{min-width:4.5em}
.tablewrap{background:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to left,#fff 30%,rgba(255,255,255,0)) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.3),transparent),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.3),transparent) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,22px 100%,22px 100%;background-attachment:local,local,scroll,scroll}
.tablehint{margin:6px 0 2px}
.tablewrap table.widetable td:first-child,.tablewrap table.widetable th:first-child,.tablewrap table.matrix td:first-child,.tablewrap table.matrix th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}
.tablewrap table.widetable thead th:first-child,.tablewrap table.matrix thead th:first-child{background:#f4f1ea}
@media (max-width:800px){
  .tablewrap table.stackable,.tablewrap table.stackable thead,.tablewrap table.stackable tbody,.tablewrap table.stackable tr,.tablewrap table.stackable td,.tablewrap table.stackable th{display:block;width:100%;box-sizing:border-box}
  .tablewrap table.stackable{min-width:0}.tablewrap table.stackable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .tablewrap table.stackable tr{border:1px solid var(--line);border-radius:8px;margin:0 0 10px;padding:6px 8px;background:#fff}
  .tablewrap table.stackable td{border:0;padding:3px 0;max-width:none;min-width:0}.tablewrap table.stackable td:first-child{min-width:0;max-width:none;font-weight:700}
  .tablewrap table.stackable td[data-label]:not(:first-child)::before{content:attr(data-label) ": ";font:600 .72rem var(--sans);color:var(--dim)}
  .tablewrap table.stackable td .pill{white-space:normal}
}

/* Frontier and tables, third pass: the question list gets the full width when a graph pane would squeeze it, and words in table cells are never split
 * (links, code and the first id column may still break, since those can be very long). */
@media (max-width:1500px){.graphsplit:has(> .tablewrap){grid-template-columns:minmax(0,1fr)}.graphsplit:has(> .tablewrap) > .detail-col{position:static;max-height:none}}
main table td,main table th{overflow-wrap:break-word}main table td a,main table td code,main table td:first-child,main table th:first-child{overflow-wrap:anywhere}
@media (max-width:700px){.tablewrap table.qtable td .pill{white-space:normal}}
main table.qtable td{overflow-wrap:break-word}main table.qtable td a,main table.qtable td code,main table.qtable td:first-child{overflow-wrap:anywhere}
.board table td:last-child{min-width:9.5em}
.board table th,.board table td{padding-left:10px;padding-right:10px}
