:root{--ink:#1d232b;--mid:#3a4650;--faint:#5b6570;--line:#d5dbe2;--bg:#f6f7f9;--card:#fff;--acc:#14532d;--acc2:#e9f5ee;--good:#2e7d32;--bad:#b3261e;--warm:#fff3e0;--warmink:#8a4b00}
*{box-sizing:border-box}html,body{overflow-x:hidden;max-width:100%}
body{margin:0;font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-text-size-adjust:100%}
header{background:var(--acc);color:#fff}header .in{max-width:860px;margin:0 auto;padding:10px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap}
header h1{font-size:16px;margin:0;line-height:1.3}header h1 a{color:#fff;text-decoration:none}
.revbanner{background:var(--warm);color:var(--warmink);border-bottom:1px solid #e0b84a;font-size:13px;padding:6px 16px;text-align:center}
main{max-width:860px;margin:0 auto;padding:12px 16px 24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0;min-width:0}@media (min-width:640px){.card{padding:18px 22px}}
h2{font-size:21px;margin:0 0 8px;line-height:1.3}h3{font-size:16px;margin:16px 0 6px;color:var(--acc)}
.tlist a,.llist a,.llist .row{display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);background:var(--card);margin:8px 0;min-width:0}
.tlist a:hover,.llist a:hover{border-color:var(--acc)}.llist .row.off{color:var(--faint);background:#fafbfc}
.num{flex:0 0 34px;height:34px;border-radius:50%;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.num.edge{background:var(--mid)}.row.off .num{background:#aeb6bd}
.ltitle{font-weight:600;overflow-wrap:anywhere}.lmeta{font-size:12px;color:var(--faint)}
.chip{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--faint);vertical-align:1px;margin-left:6px}
.chip.built{background:#e8f5e9;border-color:var(--good);color:var(--good)}.chip.video{background:#ede7f6;border-color:#7e57c2;color:#5e35b1}
details.ldet{margin:-2px 0 10px 46px}details.ldet summary{cursor:pointer;font-size:13px;color:var(--faint)}details.ldet li{font-size:14px;margin:2px 0}
.steps{display:flex;gap:6px;margin:4px 0 14px;flex-wrap:wrap}.steps a{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--faint);text-decoration:none}.steps a:hover{border-color:var(--acc)}.steps a.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.vslot{background:#ede7f6;border:1px solid #b39ddb;border-left:5px solid #5e35b1;border-radius:8px;padding:10px 14px;margin:0 0 14px;font-size:15px}.vslot .small{color:#4a3a66}
.vlink{font-size:16px;margin:10px 0}.vlink a{color:var(--acc);font-weight:600}
.missing-fig{border:2px dashed var(--bad);border-radius:10px;padding:16px;color:var(--bad);text-align:center;background:#fff6f5;font-size:14px;font-weight:600}
.pending{border:2px dashed var(--line);border-radius:10px;padding:18px;color:var(--faint);text-align:center;background:#fafbfc;font-size:14px}
.article p{margin:0 0 .6rem;font-size:17px;overflow-wrap:anywhere}.article h4{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--acc);margin:18px 0 6px;padding-top:10px;border-top:1px solid var(--line)}.article p.rule{background:var(--acc2);border-left:4px solid var(--acc);padding:8px 12px;border-radius:6px;font-weight:600}
.inline-check{border:1px solid var(--line);border-radius:10px;padding:4px 14px 12px;margin:12px 0;background:#fcfcfd}.inline-check .item{border-top:0}
figure{margin:14px 0;text-align:center}figure img{max-width:100%;height:auto;max-height:420px;border-radius:8px}figcaption{font-size:14px;color:var(--mid);margin-top:6px}
@media (min-width:640px){figure img{max-width:min(100%,560px)}}
.worked{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:10px 0}.worked .q{font-weight:600;margin:0 0 6px;font-size:17px}.worked button.next,button.next{font:inherit;font-size:14px;padding:8px 14px;border-radius:8px;border:1px solid var(--acc);background:#fff;color:var(--acc);cursor:pointer;margin-top:8px}button.next:disabled{opacity:.5;cursor:default}
.wex.withfig{display:flex;gap:18px;align-items:flex-start;flex-direction:column}.wex .wtext{flex:1 1 55%;min-width:0;width:100%}.wex figure,.wex .wfig{flex:0 0 40%;margin:0;width:100%}.wex figure img{max-height:320px}@media (min-width:640px){.wex.withfig{flex-direction:row}.wex figure,.wex .wfig{width:auto}}
.wex .step{border-top:1px solid #eef1f4;padding-top:6px;margin-top:8px}.wex .step.final{border-top:2px solid var(--acc);padding-top:10px}.wex .step.answer{background:var(--acc2);border-radius:6px;padding:8px 10px}.wex .step p{margin:.15rem 0;font-size:15px;text-align:left}.wex p.instr{font-weight:700;margin:0 0 .2rem}.lead{font-size:17px;margin:18px 0 0}
.item{border-top:1px solid var(--line);padding:14px 0;min-width:0}.stem{font-size:17px;margin:0 0 8px;overflow-wrap:anywhere}.opts button{display:block;width:100%;text-align:left;margin:6px 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);font:inherit;font-size:16px;cursor:pointer;overflow-wrap:anywhere}
.opts button.ok{border-color:var(--good);background:#e8f5e9}.opts button.no{border-color:var(--bad);background:#fdecea}.opts button:disabled{cursor:default}.opts button.sel{outline:2px solid var(--ink);outline-offset:-2px;font-weight:600}
.fb{margin:8px 0 0;font-size:15px;color:var(--mid)}.why{margin:6px 0 0;font-size:15px;background:var(--acc2);padding:8px 12px;border-radius:6px;white-space:pre-line}
.typed{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.typed input{font-size:16px;padding:8px;border:1px solid var(--line);border-radius:8px;font-family:inherit;flex:1 1 140px;min-width:0;max-width:260px}.typed button{padding:8px 14px;border-radius:8px;border:1px solid var(--acc);background:var(--acc);color:#fff;cursor:pointer;font:inherit}
.unit{color:var(--faint)}.score{font-weight:700;margin-top:12px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;align-items:center}.filters select{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.nav{display:flex;justify-content:space-between;margin:18px 0 4px;gap:10px;flex-wrap:wrap}.nav a,.nav button{color:#fff;background:var(--acc);text-decoration:none;padding:10px 16px;border-radius:10px;border:0;font:inherit;font-size:15px;cursor:pointer}.nav a.ghost,.nav button.ghost{background:#fff;color:var(--acc);border:1px solid var(--acc)}.nav .blocked{color:var(--faint);font-size:14px;padding:10px 0}
.small{font-size:13px;color:var(--faint)}.hidden{display:none}
.prog{height:4px;background:var(--line);border-radius:2px;margin:-6px 0 14px;overflow:hidden}.prog div{height:100%;background:var(--acc);transition:width .2s}.prog-t{margin:-8px 0 10px}
.katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%;text-align:left;margin:.5em 0}.katex{font-size:1.05em}
footer{max-width:860px;margin:24px auto;padding:0 16px 30px;font-size:12px;color:var(--faint)}
.rmeta{background:var(--warm);border:1px dashed var(--warmink);border-radius:8px;padding:8px 12px;margin:8px 0 0;font-size:13px;color:var(--warmink)}.rmeta .rkeyline{margin:0 0 4px;font-size:14px}.rmeta .rtags{margin:4px 0 0}.rmeta code{background:#fff;padding:0 4px;border-radius:4px}.rmeta ul{margin:4px 0 0;padding-left:18px}
.opts button.iskey{box-shadow:inset 0 0 0 2px var(--good)}
figure.dopener{margin:0 0 14px}figure.dopener img{max-height:300px}
details.dstrip{margin:12px 0 0;border:1px dashed var(--warmink);background:var(--warm);border-radius:8px;padding:8px 12px}details.dstrip summary{cursor:pointer;font-size:13px;color:var(--warmink)}details.dstrip figure{display:inline-block;margin:8px;vertical-align:top;max-width:260px}details.dstrip img{max-height:180px;border:1px solid var(--line);border-radius:6px;background:#fff}details.dstrip figcaption{font-size:12px}
