[hidden]{display:none!important}
:root{
  --bg:#0c111b; --bg2:#111827; --panel:#151d2b; --panel2:#1a2334;
  --line:#2f3a4d; --silver:#9aa6b9; --text:#ede9e0; --muted:#b4bdcb;
  --amber:#f0b456; --amber-bg:rgba(240,180,86,.12);
  --pass:#9fd3ae; --pass-bg:rgba(159,211,174,.10);
  --sel:#a9c3f0; --sel-bg:rgba(169,195,240,.10);
  --ref:#eeaaa6; --ref-bg:rgba(238,170,166,.10);
  --unk:#f0b456; --unk-bg:rgba(240,180,86,.10);
  --focus:#ffd896;
  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --radius:14px;
}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--text);font:17px/1.55 var(--sans);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:
  radial-gradient(1200px 600px at 85% -10%, rgba(240,180,86,.07), transparent 60%),
  radial-gradient(900px 500px at -10% 10%, rgba(120,150,210,.08), transparent 60%), var(--bg)}
a{color:var(--amber)}
code,.mono{font-family:var(--mono);font-size:.88em}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--amber);color:#1a1205;padding:10px 14px;border-radius:8px;font-weight:600;z-index:10;text-decoration:none}
.skip:focus{top:12px}
.synthetic-strip{position:sticky;top:0;z-index:5;background:#1b2231;border-bottom:1px solid var(--line);color:var(--muted);
  padding:8px 20px;font-size:.88rem;text-align:center}
.synthetic-strip strong{color:var(--amber);font-weight:600}
.fallback{margin:14px auto 0;max-width:1180px;padding:10px 16px;border:1px dashed var(--amber);border-radius:10px;color:var(--amber);background:var(--amber-bg);font-weight:600;width:calc(100% - 40px)}
.masthead,main,.foot{max-width:1180px;margin:0 auto;padding:0 20px}
.masthead{padding-top:26px;padding-bottom:4px}
.eyebrow{margin:0 0 10px;color:var(--silver);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}
h1{margin:0 0 8px;font-size:clamp(1.9rem,4.2vw,2.7rem);line-height:1.08;letter-spacing:-.02em;font-weight:650}
.accent{color:var(--amber)}
.lede{max-width:760px;color:var(--muted);margin:0}
.lede em{color:var(--text);font-style:normal;border-bottom:1px solid var(--amber)}
.demo-note{max-width:760px;margin:8px 0 0;color:var(--muted);font-size:.88rem}

.controls{display:grid;gap:10px;margin:16px 0 14px}
.tablist{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tab{appearance:none;text-align:left;background:var(--panel);border:1px solid var(--line);color:var(--text);
  border-radius:12px;padding:9px 14px;font:inherit;cursor:pointer;display:grid;gap:2px;min-height:64px}
.tab:hover{border-color:var(--silver)}
.tab[aria-selected="true"]{background:var(--panel2);border-color:var(--amber);box-shadow:inset 0 -3px 0 var(--amber)}
.tab .n{font-size:.78rem;color:var(--silver);letter-spacing:.06em;text-transform:uppercase}
.tab .t{font-weight:600;font-size:.98rem;line-height:1.25}
.tab .s{font-family:var(--mono);font-size:.76rem}
.player{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 16px}
.btn{appearance:none;background:transparent;color:var(--text);border:1px solid var(--silver);border-radius:999px;padding:9px 18px;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;gap:10px;align-items:center;min-height:44px}
.btn:hover{border-color:var(--amber);color:var(--amber)}
.btn[aria-pressed="true"]{border-color:var(--amber);color:var(--amber)}
.btn-icon{min-width:1.5em;text-align:center;letter-spacing:-.1em}
.progress-segs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.seg{height:4px;background:var(--line);border-radius:4px;overflow:hidden}
.seg i{display:block;height:100%;width:0;background:var(--amber)}
.hint{margin:0;color:var(--muted);font-size:.82rem;max-width:22em;line-height:1.35}

.stage{scroll-margin-top:52px;background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:20px;padding:18px 24px 20px;outline:none}
.scene-head{margin-bottom:14px}
.scene-kicker{margin:0;color:var(--silver);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.scene-head h2{margin:2px 0 4px;font-size:1.45rem;letter-spacing:-.01em}
.scene-desc{margin:0;color:var(--muted);max-width:820px}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:28px;position:relative}
.col{position:relative;background:rgba(12,17,27,.55);border:1px solid var(--line);border-radius:var(--radius);padding:16px;
  transition:opacity .5s ease, transform .5s ease}
.col:not(:last-child)::after{content:"";position:absolute;right:-22px;top:50%;width:16px;height:16px;border-top:1.5px solid var(--silver);border-right:1.5px solid var(--silver);transform:translateY(-50%) rotate(45deg);opacity:.7}
.flow.staged .col{opacity:.18;transform:translateY(6px)}
.flow.staged .col.on{opacity:1;transform:none}
.col-title{margin:0 0 12px;font-size:1rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.step-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--silver);font-size:.75rem;color:var(--silver)}
.who{flex-basis:100%;font-weight:400;color:var(--silver);font-size:.8rem;letter-spacing:.02em}
.meta{margin:0 0 10px;color:var(--muted);font-size:.85rem}
.meta code{color:var(--text)}
.cand{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px;background:rgba(255,255,255,.015)}
.cand:last-child{margin-bottom:0}
.cand.changed{border-color:var(--amber);background:var(--amber-bg)}
.cand-id{font-family:var(--mono);font-weight:600;font-size:.92rem;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.kv{margin:6px 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:.84rem;color:var(--muted)}
.kv li{display:flex;gap:6px;flex-wrap:wrap}
.kv .k{color:var(--silver)}
.kv .v{color:var(--text)}
.kv .hl{color:#1a1205;background:var(--amber);border-radius:4px;padding:0 5px;font-weight:700}
.tag{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}
.tag.amber{color:var(--amber)}
.tag.silver{color:var(--silver)}
.diff{margin:12px 0 0;border:1px solid var(--amber);border-radius:10px;overflow:hidden}
.diff-h{background:var(--amber-bg);color:var(--amber);font-size:.8rem;font-weight:600;padding:6px 10px;letter-spacing:.03em}
.diff-row{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:8px 10px;font-family:var(--mono);font-size:.84rem;border-top:1px solid var(--line)}
.diff-row .lab{color:var(--silver);font-family:var(--sans);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;align-self:center}
.diff-row.del .val{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--silver)}
.diff-row.add .val{color:var(--amber);font-weight:700}
.diff-note{padding:8px 10px;font-size:.84rem;color:var(--muted);border-top:1px solid var(--line)}
.rule{font-family:var(--mono);font-size:.84rem;border-left:2px solid var(--silver);padding:4px 0 4px 10px;margin:0 0 8px}
.rule .rid{color:var(--text);font-weight:600;display:block}
.rule .rexpr{color:var(--muted)}
.sub{margin:14px 0 8px;font-size:.78rem;color:var(--silver);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.facts-empty{color:var(--amber);font-family:var(--mono);font-size:.84rem}
.status{font-family:var(--mono);font-weight:700;font-size:clamp(1.25rem,2.4vw,1.6rem);letter-spacing:.01em;padding:10px 12px;border-radius:10px;border:1px solid currentColor;margin:0 0 10px;overflow-wrap:anywhere}
.st-PASS_SINGLE{color:var(--pass);background:var(--pass-bg)}
.st-EVIDENCE_REQUIRED{color:var(--unk);background:var(--unk-bg)}
.st-SELECTION_REQUIRED{color:var(--sel);background:var(--sel-bg)}
.st-REFUSE{color:var(--ref);background:var(--ref-bg)}
.st-unknown{color:var(--silver)}
.explain{margin:0 0 6px;font-weight:600}
.explain-sub{margin:0 0 12px;color:var(--muted);font-size:.92rem}
.counts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 12px;padding:0;list-style:none;font-size:.85rem;color:var(--muted)}
.counts b{color:var(--text);font-family:var(--mono)}
.verdict{display:grid;grid-template-columns:28px 1fr;gap:2px 10px;align-items:start;padding:9px 0;border-top:1px solid var(--line)}
.mark{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.9rem;border:1.5px solid currentColor}
.v-admissible{color:var(--pass)} .v-rejected{color:var(--ref)} .v-unproven{color:var(--unk)} .v-other{color:var(--silver)}
.vname{font-family:var(--mono);font-weight:600;font-size:.9rem;color:var(--text)}
.vname .vw{font-family:var(--sans);font-weight:600;font-size:.82rem;margin-left:6px}
.checks{grid-column:2;margin:2px 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:.78rem;color:var(--muted)}
.checks .o-fail{color:var(--ref)} .checks .o-unknown{color:var(--unk)} .checks .o-pass{color:var(--pass)}
.receipt{margin-top:12px;font-size:.78rem;color:var(--silver);font-family:var(--mono);overflow-wrap:anywhere;border-top:1px dashed var(--line);padding-top:10px}
.receipt span{color:var(--muted)}
.raw{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.raw summary{cursor:pointer;color:var(--muted);font-size:.92rem;min-height:32px}
.raw h4{margin:12px 0 4px;font-size:.82rem;color:var(--silver);text-transform:uppercase;letter-spacing:.06em}
.raw pre{margin:0;max-height:320px;overflow:auto;background:#0a0e16;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:.78rem;color:var(--muted)}
.unknown-shape{color:var(--muted);font-size:.9rem}

.bounds{margin:30px 0 10px;border:1px solid var(--line);border-radius:16px;padding:20px 22px;background:rgba(21,29,43,.6)}
.bounds h2{margin:0 0 10px;font-size:1.15rem}
.bounds ul{margin:0;padding-left:1.1em;display:grid;gap:6px;color:var(--muted)}
.bounds strong{color:var(--text);font-weight:600}
.foot{padding-top:18px;padding-bottom:40px;color:var(--muted);font-size:.9rem}
.foot p{margin:0 0 6px}
.muted{color:var(--silver)} .small{font-size:.82rem}

@media (max-width:980px){
  .flow{grid-template-columns:1fr;gap:26px}
  .col:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-20px;transform:translateX(-50%) rotate(135deg)}
}
@media (max-width:720px){
  html{font-size:16px}
  .tablist{grid-template-columns:1fr 1fr;gap:8px}
  .tab{min-height:70px;padding:10px 12px}
  .stage{padding:18px 14px 14px;border-radius:16px}
  .player{grid-template-columns:auto 1fr}
  .hint{display:none}
  .tab .n{display:none}
  .tab{min-height:0;padding:8px 10px}
  .tab .t{font-size:.9rem}
  .masthead{padding-top:16px}
  .eyebrow{margin-bottom:6px;font-size:.72rem}
  .lede{font-size:.95rem}
  .controls{margin:12px 0 12px;gap:8px}
  .btn{padding:8px 14px}
  .synthetic-strip{padding:7px 12px;font-size:.82rem}
  .synthetic-strip .rest{display:none}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
.prov{margin:14px 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(12,17,27,.5)}
.prov-h{margin:0 0 6px;font-size:.78rem;color:var(--silver);text-transform:uppercase;letter-spacing:.06em}
.prov-list{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;font-size:.84rem}
.prov-list dt{color:var(--silver);font-family:var(--mono)}
.prov-list dd{margin:0;color:var(--muted);font-family:var(--mono);overflow-wrap:anywhere}
.receipt dl{margin:4px 0 0;display:grid;grid-template-columns:max-content 1fr;gap:2px 10px}
.receipt dt{color:var(--silver)} .receipt dd{margin:0;color:var(--muted);overflow-wrap:anywhere}
.receipt .rh{color:var(--silver);font-family:var(--sans);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}
.empty-stage{padding:28px 10px;text-align:center;color:var(--muted)}
.ids{font-family:var(--mono);font-size:.84rem;margin:0 0 10px;color:var(--muted)}
.ids b{color:var(--text)}
.diff-src{padding:6px 10px;font-size:.76rem;color:var(--silver);border-top:1px solid var(--line)}
.st-text-PASS_SINGLE{color:var(--pass)} .st-text-EVIDENCE_REQUIRED{color:var(--unk)}
.st-text-SELECTION_REQUIRED{color:var(--sel)} .st-text-REFUSE{color:var(--ref)}

.br-narrow{display:none}
@media (max-width:720px){.br-narrow{display:inline}}
details.receipt{margin-top:12px}
details.receipt summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:6px;min-height:28px;color:var(--silver)}
details.receipt summary::-webkit-details-marker{display:none}
details.receipt summary::before{content:"▸";color:var(--silver);font-family:var(--sans)}
details.receipt[open] summary::before{content:"▾"}
details.receipt .rshort{font-family:var(--mono);color:var(--muted);font-size:.78rem}
.use{margin:30px 0 0;border:1px solid var(--line);border-radius:16px;padding:20px 22px;background:rgba(21,29,43,.6)}
.use h2{margin:0 0 10px;font-size:1.15rem}
.use-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.use-list li{display:grid;gap:6px;align-content:start;border-top:1px solid var(--line);padding-top:10px}
.use-list a{color:var(--text);font-weight:600;text-decoration:none;display:grid;gap:2px}
.use-list a:hover{color:var(--amber)}
.use-list a:hover .path,.use-list a:focus-visible .path{text-decoration:underline}
.use-list .path{font-family:var(--mono);font-weight:400;font-size:.78rem;color:var(--amber);overflow-wrap:anywhere}
.use-d{color:var(--muted);font-size:.9rem}
@media (max-width:820px){.use-list{grid-template-columns:1fr}}
