:root{color-scheme:light;--paper:#f9f7f2;--ink:#24282b;--rust:#ae4726;--line:#d6d2c7;--green:#176b59;--red:#a62e35}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.5 system-ui,-apple-system,sans-serif}main{width:min(1160px,100% - 48px);margin:auto;padding:42px 0 30px}header{display:flex;align-items:end;justify-content:space-between;gap:30px;border-bottom:2px solid var(--ink);padding-bottom:24px;margin-bottom:24px}h1{font:600 clamp(40px,6vw,72px)/.95 Georgia,serif;letter-spacing:-3px;margin:0}h1 span{color:var(--rust)}header p{max-width:290px;margin:0}h2,h3{margin:0 0 12px;font-family:Georgia,serif;line-height:1.18}h2{font-size:27px}p{margin:0 0 18px}button,summary,a{touch-action:manipulation}button{font:600 16px/1.2 system-ui;min-height:48px;border:1px solid var(--line);border-radius:10px;background:transparent;color:inherit;padding:12px 18px;cursor:pointer;transition:transform .16s,background .16s}button:hover{background:#ece7dd}button:active{transform:scale(.96)}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #227b9d;outline-offset:4px}button:disabled{opacity:.42;cursor:default;transform:none}#cases{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}#cases button{border-radius:0;border-width:0 0 3px;padding:10px 4px;margin-right:14px}#cases button[aria-pressed=true]{color:var(--rust);border-color:var(--rust)}.lab{display:grid;grid-template-columns:1fr 1.05fr;gap:48px}.trace{min-width:0}.trace-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}#progress{white-space:nowrap;font:600 14px system-ui;padding-top:6px}#code{padding:0;list-style:none;counter-reset:lines;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0;min-height:210px}#code li{counter-increment:lines;display:flex;gap:12px;padding:13px 8px;border-left:4px solid transparent;overflow-wrap:anywhere;font:14px/1.5 ui-monospace,monospace;white-space:pre-wrap}#code li:before{content:counter(lines);color:#73716a;min-width:14px}#code li.current{background:#eee2cf;border-color:var(--rust)}#code li.future{color:#87837c}.primary{background:var(--ink);border-color:var(--ink);color:white;box-shadow:0 4px 0 #a29c8f}.primary:hover{background:#3e4448}.actions{display:flex;gap:12px}.quiet{border:0;text-decoration:underline}.explanation{min-width:0;padding-left:30px;border-left:1px solid var(--line)}.explanation>p{max-width:55ch;min-height:80px}.choices{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.choices button{transition-property:transform}.choices button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}#verdict{min-height:0;color:var(--green);font-weight:600}#verdict[data-correct=false]{color:var(--red)}#diagram{margin:24px 0;padding:20px 0;border-block:1px solid var(--line)}.handle{display:flex;align-items:center;gap:14px;margin:10px 0}.handle strong{font:600 23px ui-monospace,monospace;min-width:50px}.handle .rule{height:2px;background:var(--green);flex:1;position:relative}.rule:after{content:'›';position:absolute;right:-1px;top:-17px;font-size:28px;color:var(--green)}.handle.borrow .rule{background:none;border-top:2px dashed #3d6e88}.handle.moved{opacity:.6}.handle.moved strong{text-decoration:line-through}.handle small{font-size:14px}.allocation{background:#e3ebe4;border-left:5px solid var(--green);padding:16px 20px;margin-top:22px;display:flex;justify-content:space-between;gap:16px;align-items:center}.allocation strong{font:27px ui-monospace,monospace;overflow-wrap:anywhere}.allocation span{font-size:13px}.denied{color:var(--red);border-left:3px solid;padding-left:12px}#repair{border-top:1px solid var(--line);padding-top:24px}#repairCode{display:block;font:16px/1.6 ui-monospace,monospace;margin-bottom:12px;overflow-wrap:anywhere}footer{margin-top:40px;border-top:2px solid var(--ink);padding-top:10px}details{border-bottom:1px solid var(--line)}summary{padding:18px 0;cursor:pointer;font-weight:600;min-height:48px}details p{max-width:78ch}#sources{display:grid;gap:12px;padding-bottom:20px}a{color:var(--green);font-weight:600;min-height:44px;display:inline-flex;align-items:center}#predictionQuestion{font-weight:600}button[data-answer]{min-width:125px}[hidden]{display:none!important}@media(max-width:750px){main{width:calc(100% - 32px);padding-top:28px}header{display:block;margin-bottom:18px;padding-bottom:20px}h1{letter-spacing:-2px}header p{margin-top:14px;max-width:100%;font-size:16px}#cases{gap:6px;margin-bottom:24px}#cases button{font-size:14px;margin-right:6px;min-height:44px}.lab{grid-template-columns:1fr;gap:28px}.explanation{padding:0;border:0}.trace-heading h2{font-size:25px}#code{min-height:0;margin:12px 0 18px}#code li{padding:10px 4px;font-size:13px}.primary{flex:1}.explanation>p{min-height:0}#diagram{margin:20px 0}footer{margin-top:25px}}@media(orientation:landscape) and (max-height:500px){main{padding-top:18px}.lab{grid-template-columns:1fr 1fr;gap:25px}header{display:flex}header p{max-width:290px}h1{font-size:44px}.explanation{padding-left:20px;border-left:1px solid var(--line)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

#currentLine{font:15px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:18px 14px;margin:18px 0 8px;background:#eee2cf;border-left:4px solid var(--rust);min-height:62px}.code-detail{margin-bottom:18px}.code-detail summary{font-size:14px;padding:10px 0}.code-detail #code{min-height:0}.allocation+.handle{margin-top:26px}@media(max-width:750px){.code-detail{margin-bottom:12px}.explanation{margin-top:2px}.lab{gap:22px}}

.allocation-link{text-align:center;color:var(--green);font-size:30px;line-height:1;margin:10px 0 -10px}#cases{gap:12px}#cases button{margin-right:0}.handle .rule{background:none;border:0;height:auto}.handle .rule:after{display:none}.handle.borrow .rule{border:0}#verdict:empty{display:none}

@media(max-width:380px){#cases{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}#cases button{text-align:left}.allocation{flex-direction:column;align-items:flex-start;gap:5px}.allocation strong{white-space:nowrap}}
#diagram{max-width:420px;margin:12px auto;border:0;padding:0}#diagram svg{display:block;width:100%;height:auto}#diagram rect{fill:#eeece7;stroke:#d6d2c7}#diagram text{font:15px system-ui;fill:#24282b}#diagram .owner rect{fill:#e3ebe4;stroke:#176b59;stroke-width:2}#diagram .owner text{font-weight:650}#diagram .allocation rect{fill:#e3ebe4;stroke:#176b59}#diagram .allocation text{font:26px ui-monospace,monospace}#diagram .link{stroke:#176b59;stroke-width:2.5;fill:none}#diagram .borrow-link{stroke:#3d6e88;stroke-dasharray:5 4}#diagram marker path{fill:#176b59}#diagram .borrower rect{fill:#e1eaf0;stroke:#3d6e88}#diagram .unavailable rect{fill:#eeece7;stroke-dasharray:4 4}#diagram .unavailable text{fill:#77736b}#diagram .denied-node rect{fill:#f6e3df;stroke:#a62e35}#diagram .denied-node text{fill:#a62e35;font-weight:650}#diagram .ended rect{fill:none;stroke-dasharray:4 4}.reason{margin-bottom:16px}.reason summary{padding:12px 0}.reason p{padding:12px 0;line-height:1.55}.explanation h2{font-size:25px}#verdict{font-size:16px}#verdict:empty{display:none}#currentLine{margin-top:12px}@media(max-width:750px){#diagram{max-width:360px}.lab{gap:20px}.explanation h2{font-size:24px}.trace-heading h2{font-size:23px}}
