:root{color-scheme:light dark;--bg: #f7f7f5;--card: #ffffff;--ink: #1b1b1f;--muted: #6b6b73;--line: #e3e3de;--accent: #2f5bea;--ok: #1a7f4b;--ok-bg: #e5f5ec;--bad: #b3261e;--bad-bg: #fbe9e7;--skip: #6b6b73;--skip-bg: #ededea;--run: #2f5bea;--run-bg: #e7edfd;--ours: #7a3e00;--ours-bg: #fff3e0;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #121316;--card: #1b1c20;--ink: #e8e8ea;--muted: #9a9aa3;--line: #2c2d33;--accent: #7c9cff;--ok: #5fd08c;--ok-bg: #12301f;--bad: #ff8a80;--bad-bg: #3a1a17;--skip: #9a9aa3;--skip-bg: #26272c;--run: #7c9cff;--run-bg: #1c2540;--ours: #ffb870;--ours-bg: #3a2a15}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:1040px;margin:0 auto;padding:24px 16px 64px}.masthead h1{margin:0 0 4px;font-size:26px}.tagline{margin:0 0 16px;color:var(--muted)}.intro{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-bottom:16px}.intro p{margin:6px 0}code{font-family:var(--mono);font-size:.92em}code.wrap{word-break:break-all}.controls{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin-bottom:24px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}label.grow{flex:1 1 320px}input,select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 9px;min-width:200px}input{font-family:var(--mono);font-size:13px}button{font:inherit;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:8px 14px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.link{background:none;border:none;color:var(--accent);padding:2px 6px;text-decoration:underline}button.copy{background:none;border:none;color:var(--muted);padding:0 4px;cursor:pointer}.trust summary{cursor:pointer;color:var(--accent);margin:6px 0}.examples{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.flow{display:flex;flex-direction:column}.arrow{display:flex;align-items:center;gap:10px;padding:6px 0 6px 22px;color:var(--muted);font-size:13px}.arrow-line{width:2px;height:26px;background:var(--line);display:inline-block;border-radius:2px}.step{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--skip);border-radius:10px;padding:14px 18px}.step-ok{border-left-color:var(--ok)}.step-fail{border-left-color:var(--bad)}.step-running{border-left-color:var(--run)}.step-head{display:flex;align-items:flex-start;gap:12px}.step-number{width:30px;height:30px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;font-weight:600;flex:none}.step-titles{flex:1}.step-titles h2{margin:0;font-size:18px}.leads{margin:2px 0 0;color:var(--muted);font-size:13px}.pill{font-size:12px;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-fail{background:var(--bad-bg);color:var(--bad)}.pill-skip,.pill-pending{background:var(--skip-bg);color:var(--skip)}.pill-running{background:var(--run-bg);color:var(--run)}.explanation{margin-top:10px}.explanation p{margin:6px 0}.explanation ul{margin:6px 0;padding-left:20px}.error{color:var(--bad);background:var(--bad-bg);padding:8px 10px;border-radius:6px}.data{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px}.sub{margin-top:12px}.sub h3,.data h3{font-size:14px;margin:10px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:6px 0}.kv div{display:contents}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}.hex code{cursor:pointer;padding:1px 4px;border-radius:4px;background:var(--bg);word-break:break-all}.hex.ours code{background:var(--ours-bg);color:var(--ours)}.ok{color:var(--ok)}.bad{color:var(--bad)}.tbl{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}.tbl th,.tbl td{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid var(--line)}.tbl th{color:var(--muted);font-weight:500}.tbl tr.hl td{background:var(--ours-bg)}.tbl tr.row-ok td:nth-child(5){color:var(--ok)}.tbl tr.row-bad td{background:var(--bad-bg)}.doc{color:var(--muted);font-size:12px}.rpc{margin-top:10px;font-size:13px}.rpc summary{cursor:pointer;color:var(--muted)}.rpc ul{margin:6px 0;padding-left:18px;word-break:break-all}.rpc a{color:var(--accent)}.hood{margin-top:8px}.hood-body{background:var(--bg);border-radius:6px;padding:8px 12px;margin-top:6px;font-size:14px}.hood-body ul{margin:4px 0;padding-left:18px}.chain{padding-left:18px}.chain-link{color:var(--muted);font-size:13px;margin:2px 0 8px}.verdict .big{font-size:22px;font-weight:700;margin:4px 0 8px}.report{padding-left:18px;font-size:13px}.foot{margin-top:32px;color:var(--muted);font-size:13px;text-align:center}@media(max-width:640px){.kv{grid-template-columns:1fr}.tbl{display:block;overflow-x:auto}}.modes{display:flex;gap:6px;margin-bottom:12px}.modes button{background:var(--bg);color:var(--ink);border:1px solid var(--line)}.modes button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.parts{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.part{border:1px solid var(--line);border-radius:6px;padding:4px 8px;background:var(--bg);font-size:12px}.part .label{color:var(--muted);display:block}.part code{word-break:break-all}.part.hl{background:var(--ours-bg);border-color:var(--ours)}.decoded dd{font-family:var(--mono);font-size:13px}.tree{margin:12px 0}.tree figcaption{font-size:13px;color:var(--muted);margin-bottom:6px}.tree-scroll{overflow-x:auto}.tree svg{display:block;margin:0 auto;max-width:100%}.tree-edge{stroke:var(--line);stroke-width:2}.tree-node{cursor:pointer}.tree-node rect{fill:var(--bg);stroke:var(--line);stroke-width:1.2}.tree-ours rect,.tree-leaf rect{fill:var(--ours-bg);stroke:var(--ours)}.tree-root rect{fill:var(--run-bg);stroke:var(--run)}.tree-root rect.root-ok{fill:var(--ok-bg);stroke:var(--ok)}.tree-root rect.root-bad{fill:var(--bad-bg);stroke:var(--bad)}.tree-selected rect{stroke-width:2.5}.tree-label{font-size:10px;fill:var(--muted)}.tree-hash{font-size:11px;font-family:var(--mono);fill:var(--ink)}.tree-selected-hash code{word-break:break-all;font-size:12px}
