:root{--bg:#fbf9f5;--surface:#fff;--ink:#1f1c17;--muted:#6b6659;--border:#e6e1d7;--accent:#5b4bd6;--good:#1e7a3c;--bad:#b3261e;--good-bg:#1e7a3c14;--bad-bg:#b3261e12}@media (prefers-color-scheme:dark){:root{--bg:#16151a;--surface:#1e1d24;--ink:#eceaf2;--muted:#9d98a8;--border:#302e38;--accent:#a898ff;--good:#6ee39a;--bad:#ff9a92;--good-bg:#6ee39a1a;--bad-bg:#ff9a921a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.wrap{max-width:780px;margin:0 auto;padding:2.5rem 1.25rem 4rem}header h1{letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.75rem}.lede{color:var(--muted);margin:0 0 1rem}.cast{color:var(--muted);flex-wrap:wrap;gap:.75rem;font-size:.82rem;display:flex}.cast b{color:var(--ink)}.statebar{background:var(--surface);border:1px solid var(--border);z-index:5;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin:1.5rem 0 2rem;padding:.75rem;display:grid;position:sticky;top:0}.statebar div{flex-direction:column;gap:.1rem;display:flex}.statebar span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.7rem}.statebar code{overflow-wrap:anywhere}code.good{color:var(--good)}code.bad{color:var(--bad)}.stage{margin-bottom:2.25rem}.stage h2{align-items:center;gap:.55rem;margin:0 0 .3rem;font-size:1.05rem;display:flex}.stage h2 .n{background:var(--accent);color:#fff;border-radius:999px;flex:none;place-items:center;width:1.6rem;height:1.6rem;font-size:.8rem;display:inline-grid}.why{color:var(--muted);margin:0 0 .85rem 2.15rem;font-size:.875rem}.stage>:not(h2):not(.why){margin-left:2.15rem}.btn{font:inherit;cursor:pointer;background:var(--accent);color:#fff;border:1px solid #0000;border-radius:8px;padding:.45rem .9rem;font-size:.875rem;font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{color:var(--ink);border-color:var(--border);background:0 0}.btn.danger{color:var(--bad);border-color:var(--bad);background:0 0}.row{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.result{border:1px solid var(--border);border-radius:9px;margin-top:.7rem;padding:.65rem .8rem}.result.ok{background:var(--good-bg);border-color:color-mix(in srgb, var(--good) 30%, transparent)}.result.no{background:var(--bad-bg);border-color:color-mix(in srgb, var(--bad) 30%, transparent)}.result-head{align-items:baseline;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.result.ok .glyph{color:var(--good)}.result.no .glyph{color:var(--bad)}.result-detail{color:var(--muted);margin-top:.25rem;font-size:.82rem}.codes{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.45rem;display:flex}.codes-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem}.codes code{background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:.05rem .35rem}.codes code.wire{border-style:dashed}.fact{color:var(--muted);margin:.6rem 0 0;font-size:.86rem}.pointer{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 8px 8px 0;margin-top:.8rem;padding:.6rem .8rem;font-size:.86rem}.attacks{flex-direction:column;gap:1rem;display:flex}.attack-head{flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.attack-blurb{color:var(--muted);flex:16rem;font-size:.82rem}footer{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.25rem}footer h3{margin:0 0 .5rem;font-size:.95rem}footer ul{color:var(--muted);margin:0;padding-left:1.1rem;font-size:.85rem}footer li{margin-bottom:.25rem}footer li b{color:var(--ink)}.src{color:var(--muted);overflow-wrap:anywhere;margin-top:1rem;font-size:.78rem}.tabs{gap:.3rem;margin:1.25rem 0 0;display:flex}.tabs button{font:inherit;cursor:pointer;border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;font-weight:600}.tabs button.on{background:var(--surface);color:var(--ink);border-color:var(--accent)}.proofs{margin-top:1.5rem}.runall{align-items:center;gap:.75rem;margin:1rem 0 1.75rem;display:flex}.tally{font-size:.85rem;font-weight:600}.tally.good{color:var(--good)}.tally.bad{color:var(--bad)}.proof-group{margin-bottom:2rem}.proof-group h3{margin:0 0 .25rem;font-size:1rem}.group-blurb{color:var(--muted);margin:0 0 .9rem;font-size:.85rem}.proof{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:.6rem;overflow:hidden}.proof.pass{border-color:color-mix(in srgb, var(--good) 40%, transparent)}.proof.fail{border-color:color-mix(in srgb, var(--bad) 45%, transparent)}.proof-head{align-items:flex-start;gap:.7rem;padding:.75rem .85rem;display:flex}.proof-mark{width:1rem;color:var(--muted);flex:none;font-weight:700}.proof.pass .proof-mark{color:var(--good)}.proof.fail .proof-mark{color:var(--bad)}.proof-claim{flex:1;min-width:0}.claim{font-size:.9rem;font-weight:600}.stake{color:var(--muted);margin-top:.15rem;font-size:.8rem}.observed{margin-top:.4rem;font-size:.78rem}.observed span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}.proof-actions{flex-direction:column;flex:none;gap:.3rem;display:flex}.btn.small{padding:.28rem .6rem;font-size:.78rem}.proof-detail{border-top:1px solid var(--border);background:var(--bg);padding:.75rem .85rem}.kv{align-items:flex-start;gap:.75rem;margin-bottom:.55rem;font-size:.82rem;display:flex}.kv>span:first-child{width:6.5rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:none;padding-top:.15rem;font-size:.68rem}.kv .path{overflow-wrap:anywhere}.kv.break>div{flex:1}.break-note{color:var(--muted);margin-top:.25rem;font-size:.76rem;font-style:italic}.copy{cursor:pointer;background:var(--surface);border:1px solid var(--border);font:inherit;text-align:left;overflow-wrap:anywhere;border-radius:6px;align-items:center;gap:.5rem;padding:.25rem .5rem;display:inline-flex}.copy-hint{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:none;font-size:.68rem}.suite,.untested{border-top:1px solid var(--border);margin-top:2rem;padding-top:1.1rem}.suite h3,.untested h3{margin:0 0 .25rem;font-size:1rem}.files{color:var(--muted);margin:.9rem 0 0;padding-left:1.1rem;font-size:.82rem}.files li{margin-bottom:.3rem}.untested ul{color:var(--muted);margin:.6rem 0 0;padding-left:1.1rem;font-size:.84rem}.untested li{margin-bottom:.25rem}.untested b{color:var(--ink)}
