.grow-pointers{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.grow-pointers>div{display:flex;flex-direction:column;gap:7px;flex:1;min-width:130px;border:1px solid #dce3e9;border-radius:6px;padding:12px;background:#fff}.grow-pointers .invalid{border-color:#e2b3b3;background:#fff2f2;color:#8f2424}.grow-pointers small{color:#65717c}.grow-memory{padding:18px}.grow-block{padding:15px;background:#f3f8ff;border:1px solid #c7d9ed;margin-bottom:16px;border-radius:6px}.grow-block.retired{background:#f0f1f3;border-style:dashed;color:#646c78}.grow-slots{display:flex;gap:5px;flex-wrap:wrap}.grow-slots>div{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid #b7cbe1;background:#fff;padding:8px;min-width:65px}.grow-slots .written{background:#d7f1e3;border-color:#42a378}.grow-slots .unused{border-style:dashed}.grow-slots code{font-size:11px}.retired .grow-slots>div{background:#e8eaed;border-color:#bfc4cc}.grow-block p{font-size:13px;line-height:1.7}.hanoi-towers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px 20px}.hanoi-peg{text-align:center;min-width:0}.hanoi-disks{height:180px;display:flex;flex-direction:column-reverse;align-items:center;gap:3px;border-bottom:5px solid #374151;margin-bottom:10px;background:linear-gradient(#cbd5e1,#cbd5e1) center bottom/4px 155px no-repeat;padding-bottom:3px}.hanoi-disk{position:relative;background:#dbeafe;border:2px solid #3b82f6;color:#1e40af;border-radius:4px;font:600 13px/23px Consolas,monospace;max-width:96%}.hanoi-moved{background:#dcfce7;border-color:#10b981;color:#166534;animation:disk-arrive .25s ease-out}.recursion-grid{margin-top:20px}.call-stack{display:flex;flex-direction:column;gap:10px;padding:20px}.call-frame{display:flex;flex-direction:column;align-items:flex-start;gap:8px;box-shadow:none;text-align:left;background:#f9fafb;border:1px solid #cbd5e1;font-size:13px;animation:disk-arrive .2s ease-out}.call-frame small{color:#64748b}.call-active{border-left:4px solid #3b82f6;background:#eff6ff}.call-frame[aria-pressed=true]{outline:2px solid #f59e0b;outline-offset:2px}@keyframes disk-arrive{0%{opacity:.5;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.hanoi-moved,.call-frame{animation:none}}.bank-input{flex:1;min-width:250px}.bank-stats{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.bank-stats>span{background:#fff;border:1px solid #e1e5e9;border-radius:8px;padding:14px 18px;flex:1;min-width:135px;font-size:13px}.bank-stats strong{display:block;font-size:20px;margin-top:7px}.bank-body{padding:20px}.bank-events{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 24px}.bank-events>div{display:flex;flex-direction:column;gap:5px;border:1px solid #bcd0ed;background:#eef5ff;padding:10px;border-radius:5px}.bank-events .departure{background:#edf6f1;border-color:#bbdccb}.bank-events small{color:#5c6972}.bank-window{border:2px solid #e2e6eb;border-radius:6px;margin:12px 0;padding:12px}.bank-window.selected{border-color:#d29c30;background:#fffcf4}.bank-queue{display:flex;gap:8px;overflow:auto;padding:10px 0}.bank-queue>div{display:flex;flex-direction:column;gap:5px;min-width:115px;padding:10px;background:#f2f4f7;border:1px solid #dfe3e8;border-radius:4px;font-size:13px}.bank-queue>div.serving{background:#e1f1e8;border-color:#a9cbb7}.bank-table{overflow:auto}.bank-table table{width:100%;border-collapse:collapse}.bank-table th,.bank-table td{text-align:left;padding:12px;border-bottom:1px solid #e4e7eb}.adt-actions{display:flex;flex-wrap:wrap;gap:12px}.adt-actions button{display:flex;flex-direction:column;gap:6px;min-width:125px}.adt-actions small{color:#65717b;font-weight:400}.adt-sequence{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.adt-sequence>div{min-width:75px;min-height:100px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:12px;border:1px solid #b9cde4;border-radius:6px;background:#f0f6ff}.adt-sequence strong{font-size:22px}.adt-sequence small{min-height:16px;color:#4d617c}.adt-sequence .current{background:#fff1ca;outline:2px solid #d8a32c}.adt-contracts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.queue-node-list{padding:20px;display:flex;flex-wrap:wrap;gap:12px}.queue-node-list>div{border:2px solid #374151;border-radius:4px;background:#fff;padding:14px;min-width:150px;font-size:13px;animation:queue-appear .2s ease-out}.queue-node-list p{margin:10px 0}.queue-node-list .queue-tail{border-color:#2563eb;background:#eff6ff}.queue-node-list code{color:#1e40af}@keyframes queue-appear{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.queue-node-list>div{animation:none}}.conversion-stats{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.conversion-stats>span{background:#fff;border:1px solid #dbe3ee;border-radius:5px;padding:12px 18px;font-size:13px}.conversion-stats strong{margin-left:12px;color:#1e40af;font-family:Consolas,monospace;overflow-wrap:anywhere}.conversion-body{padding:20px}.division-table{width:100%;border-collapse:collapse;text-align:right;font:14px/1.7 Consolas,monospace}.division-table caption{text-align:left;margin-bottom:12px;color:#475569}.division-table td,.division-table th{padding:8px;border-bottom:1px solid #e5e7eb}.division-table th{color:#475569}.remainder-stack{display:flex;flex-direction:column;gap:4px;max-height:330px;overflow:auto}.remainder-stack>div{display:flex;justify-content:space-between;gap:20px;padding:10px 15px;border:1px solid #cbd5e1;border-radius:3px;background:#f9fafb}.remainder-stack .remainder-top{background:#eff6ff;border-color:#3b82f6}.remainder-stack code{font-size:20px;color:#1e40af}.remainder-stack span{color:#64748b;font-size:12px}.maze-body{padding:20px}.maze-board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;max-width:420px;margin:20px auto}.maze-cell{aspect-ratio:1;padding:0!important;min-width:0;font-family:monospace;font-weight:700;border:2px solid #d5ded9!important;border-radius:5px!important;transition:background-color .18s,color .18s}.maze-cell:disabled{opacity:1!important;cursor:default}.maze-cell.wall{background:#394945;color:#fff}.maze-cell.path{background:#b9e4d0;color:#124a35}.maze-cell.dead{background:#e9e4df;color:#78675d}.maze-cell.seen{background:#dce9e1}.maze-cell.candidate{outline:3px solid #db9c32;outline-offset:0}.maze-legend{font-size:13px;line-height:1.8;color:#52625b}.maze-stack{max-height:320px;overflow:auto}.maze-stack>div{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;padding:10px;border-bottom:1px solid #dae4de}.maze-stack>div:first-child{background:#e5f3eb}@media(prefers-reduced-motion:reduce){.maze-cell{transition:none}}.expression-input{display:flex;flex-wrap:wrap;gap:7px}.expression-input>span{padding:9px 12px;border:2px solid #dbe4de;border-radius:5px;font:600 18px monospace}.expression-input .current{border-color:#c38b27;background:#fff2ce}.expression-input .consumed{color:#64776b;background:#edf3ef}.expression-body{padding:20px}.expression-stacks{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-height:350px;overflow:auto}.expression-slot{display:flex;justify-content:space-between;padding:10px;border:1px solid #cee1d5;background:#eef6f0;margin-bottom:4px}.expression-slot small{color:#5f7064}.expression-registers{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.expression-registers span{background:#f1f4f0;padding:9px;border-radius:4px}.expression-table{overflow:auto}.expression-table table{border-collapse:collapse;width:100%;font-family:monospace}.expression-table th,.expression-table td{border:1px solid #dae2dc;padding:7px;text-align:center}.expression-table caption{text-align:left;padding-bottom:10px;font-family:inherit}.expression-table td.active{background:#ffe7aa;outline:2px solid #bd842b;outline-offset:-2px;font-weight:700}.question-title-group{display:flex;align-items:center;gap:10px;min-width:0}.question-kind{flex:none;border:1px solid #93c5fd;background:#eff6ff;color:#1e40af;padding:4px 7px;font-size:11px;font-weight:650}.adaptive-support{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;border-left:3px solid #94a3b8;background:#f8fafc;padding:11px 13px;margin:0 0 18px;font-size:12px}.adaptive-support strong{color:#334155}.adaptive-support span{color:#64748b}.adaptive-support.level-hinted{border-color:#d97706;background:#fffbeb}.adaptive-support.level-guided{border-color:#2563eb;background:#eff6ff}.order-answer{list-style:none;padding:0;margin:0 0 15px;display:grid;gap:9px}.order-answer li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #cbd5e1;background:#fff;padding:10px;cursor:grab}.order-answer li:active{cursor:grabbing}.order-answer code{overflow-wrap:anywhere;color:#1e3a8a}.order-index{display:grid;place-items:center;width:28px;height:28px;border:1px solid #94a3b8;background:#f8fafc;font:700 12px/1 Consolas,monospace}.order-actions{display:flex;gap:6px}.order-actions button{box-shadow:none;padding:5px 8px;font-size:11px}.order-answer.correct li{border-color:#86cfa8;background:#f0fdf4}.order-answer.wrong li{border-color:#f1b4b4;background:#fff7f7}.code-question{margin:0 0 16px;padding:16px;background:#1e1e1e;color:#d4d4d4;border-left:3px solid #f59e0b;overflow:auto;line-height:1.8}.code-answer-input{width:min(100%,560px);font-family:Consolas,monospace}.program-answer-form label{display:grid;gap:8px;font-size:12px;color:#616d7f}.program-answer{width:100%;min-height:145px;resize:vertical;border:1px solid #9ca3af;border-radius:4px;background:#1e1e1e;color:#d4d4d4;padding:15px;font:13px/1.8 Consolas,monospace}.program-answer:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.program-limits{font-size:12px;color:#64748b;margin:9px 0 15px}.adaptive-steps{border:1px solid #bfdbfe;background:#f8fbff;padding:13px 15px;margin:12px 0 18px}.adaptive-steps summary{font-weight:650;color:#1e40af}.adaptive-steps ol{margin:12px 0 0;padding-left:22px;line-height:1.9}.next-advice{border-top:1px solid currentColor;padding-top:10px;font-size:13px}@media(max-width:720px){.question-title-group{align-items:flex-start;flex-direction:column}.adaptive-support{grid-template-columns:1fr}.order-answer li{grid-template-columns:30px minmax(0,1fr)}.order-actions{grid-column:2}.order-actions button{flex:1}}.triplet-config{display:grid;grid-template-columns:repeat(3,minmax(84px,110px)) minmax(190px,1fr) auto;align-items:end}.triplet-config label:first-child{min-width:0;flex:initial}.triplet-config .check,.triplet-config .error{grid-column:1/-1}.triplet-memory{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:20px}.triplet-pointers{display:flex;flex-direction:column;gap:9px}.triplet-pointers>div{display:grid;gap:5px;padding:10px;border:1px solid #dce2e8;background:#f8fafc}.triplet-pointers code{color:#2563eb;font-weight:700}.triplet-pointers span{font-family:Consolas,monospace}.triplet-pointers em{font-style:normal;font-size:11px;color:#b91c1c}.triplet-block{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));align-self:start;border:2px solid #374151;background:#fff}.triplet-block>div{display:grid;gap:8px;padding:13px;border-right:1px solid #374151}.triplet-block>div:nth-child(3){border-right:0}.triplet-block small{color:#64748b;font-family:Consolas,monospace}.triplet-block strong{font:600 24px/1.2 Consolas,monospace}.triplet-block code{font-size:11px}.triplet-block p{grid-column:1/-1;margin:0;padding:9px 12px;border-top:1px solid #374151;font-size:11px;color:#64748b}.triplet-block.freed{opacity:.62;border-color:#dc2626;background:#fff1f2}.triplet-empty{display:grid;place-items:center;min-height:150px;border:2px dashed #cbd5e1;color:#64748b}@media(prefers-reduced-motion:no-preference){.triplet-pointers>div.changed,.triplet-block>div.changed{animation:triplet-change .32s ease-out}@keyframes triplet-change{0%{background:#dbeafe;transform:translateY(-2px)}to{background:inherit;transform:none}}}@media(max-width:980px){.triplet-config{grid-template-columns:repeat(2,minmax(0,1fr))}.triplet-config button{justify-self:start}.triplet-memory{grid-template-columns:1fr}.triplet-pointers{flex-direction:row;flex-wrap:wrap}.triplet-pointers>div{flex:1 1 130px}}@media(max-width:450px){.triplet-config,.triplet-block{grid-template-columns:1fr}.triplet-block>div{border-right:0;border-bottom:1px solid #374151}.triplet-block>div:nth-child(3){border-bottom:0}}.foundation-counter{padding:28px;text-align:center}.foundation-counter>strong{font:600 48px/1.2 Consolas,monospace;color:#2563eb}.foundation-counter p{color:#475569;font-size:14px}.foundation-table-wrap{overflow-x:auto;margin-top:20px}.foundation-table-wrap table{min-width:430px}.card input[type=range]{accent-color:#2563eb;margin:0 12px}.relation-row code{display:block;margin-top:10px;font-size:12px}.poly-extra-vars{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.poly-extra-vars span{padding:10px 13px;background:#fff;border:1px solid #dce2e8;border-radius:5px}.poly-extra-body{padding:20px}.term-stream{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.term-stream span{padding:7px 9px;background:#f8fafc;border:1px solid #dce2e8;border-radius:4px;font-family:Consolas,monospace;font-size:12px}.term-stream span.done{color:#64748b;background:#f1f5f9}.term-stream span.active{color:#1e3a8a;background:#dbeafe;border-color:#60a5fa}.created-chain{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:18px;font-family:Consolas,monospace;font-size:12px}.created-chain span{padding:7px 9px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px}.product-table{overflow:auto;padding:18px}.product-table table{min-width:620px}.product-table td{text-align:center}.product-table td.done{background:#eff6ff}.product-table td.active{background:#fef3c7;outline:2px solid #d97706;outline-offset:-2px}.result-polynomial{padding:0 18px 18px}.result-polynomial p{font-family:Consolas,monospace;font-size:16px;margin:8px 0 0;overflow-wrap:anywhere}@media(max-width:620px){.poly-extra-vars span{flex:1 1 140px}}.poly-transform{padding:16px 18px;border-left:3px solid #2563eb}.poly-transform p{margin:5px 0 0}.polynomial-tabs{margin-bottom:20px}.static-vars{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.static-vars span{background:#fff;border:1px solid #dce2e8;border-radius:5px;padding:10px 13px}.static-body{padding:20px}.static-chain{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0 18px}.static-chain span{padding:8px 10px;background:#eaf3ff;border:1px solid #b9cee8;border-radius:4px;font-family:monospace}.static-chain.free span{background:#eff4ef;border-color:#c9d9ca}.static-table{overflow:auto}.static-table table{width:100%;border-collapse:collapse}.static-table th,.static-table td{padding:10px;border-bottom:1px solid #e0e5e8;text-align:left}.static-table tr.active{background:#fff0c5}.static-table tr.free{color:#68756d}.circle-vars{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.circle-vars span{padding:10px 13px;background:#fff;border:1px solid #dde3e8;border-radius:5px}.circle-body{padding:20px}.circle-nodes{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.circle-nodes>div{display:flex;flex-direction:column;gap:7px;min-width:120px;padding:12px;border:2px solid #cbd5e1;border-radius:6px;background:#fff}.circle-nodes>div.rear{border-color:#3b82f6;background:#eff6ff}.circle-nodes>div.freed{opacity:.58;border-color:#ef4444;background:#fff1f2}.circle-nodes small{color:#64748b}.double-vars{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.double-vars span{padding:10px 13px;background:#fff;border:1px solid #dce2e8;border-radius:5px}.double-visual{min-height:100%}.double-body{padding:20px}.double-invariants{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.double-invariants span{font-size:12px;padding:6px 9px;border-radius:4px;border:1px solid}.double-invariants .ok{color:#166534;background:#f0fdf4;border-color:#bbdfc7}.double-invariants .broken{color:#92400e;background:#fffbeb;border-color:#f5d692}.double-paths{display:grid;gap:8px;margin:0 0 18px}.double-paths p{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:start;margin:0;padding:10px 12px;background:#f8fafc;border-left:3px solid #94a3b8;font-size:12px}.double-paths code{overflow-wrap:anywhere;line-height:1.8;color:#334155}.double-node-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}.double-node{border:2px solid #cbd5e1;border-radius:6px;background:#fff;overflow:hidden;transition:border-color .18s ease,transform .18s ease}.double-node header{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 10px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.double-node header span{font-size:10px;color:#64748b}.double-node>div{display:grid;grid-template-columns:52px 1fr;align-items:center;min-height:38px;padding:6px 10px;border-bottom:1px solid #edf0f3}.double-node>div:last-child{border-bottom:0}.double-node small{color:#64748b}.double-node code{font-weight:700;color:#1e3a8a}.double-node>div.changed{background:#dbeafe}.double-node.changed{border-color:#2563eb}.double-node.detached{border-style:dashed;border-color:#d97706}.double-node.freed{opacity:.62;border-color:#dc2626;background:#fff1f2}.double-rule{margin:18px 0 0;padding:11px 13px;border-left:3px solid;font-size:13px}.double-rule.ok{color:#166534;background:#f0fdf4;border-color:#22c55e}.double-rule.broken{color:#92400e;background:#fffbeb;border-color:#f59e0b}@media(prefers-reduced-motion:no-preference){.double-node.changed{animation:double-change .35s cubic-bezier(.2,.8,.2,1)}}@keyframes double-change{0%{transform:translateY(-4px)}to{transform:translateY(0)}}@media(max-width:620px){.double-paths p{grid-template-columns:1fr}.double-node-grid{grid-template-columns:1fr 1fr}}@media(max-width:430px){.double-node-grid{grid-template-columns:1fr}}.merge-vars{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}.merge-vars span{padding:10px 13px;background:#fff;border:1px solid #dce2e8;border-radius:5px}.merge-body{padding:20px}.merge-lanes{display:grid;gap:8px;margin-bottom:18px}.merge-lanes p{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;margin:0;padding:10px 12px;background:#f8fafc;border-left:3px solid #94a3b8;font-size:12px}.merge-lanes p:first-child{background:#eff6ff;border-color:#2563eb}.merge-lanes code{overflow-wrap:anywhere;line-height:1.8}.merge-nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:9px}.merge-nodes>div{display:flex;flex-direction:column;gap:6px;padding:11px;border:2px solid #cbd5e1;border-radius:6px;background:#fff}.merge-nodes>div.merged{background:#eff6ff;border-color:#93c5fd}.merge-nodes>div.active{border-color:#d97706}.merge-nodes>div.freed{opacity:.58;background:#fff1f2;border-color:#dc2626}.merge-nodes small{color:#64748b}.merge-code-tabs{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid #e0e4e9}.merge-code-tabs button{font-size:12px;padding:6px 10px;box-shadow:none}@media(max-width:620px){.merge-lanes p{grid-template-columns:1fr}.merge-nodes{grid-template-columns:1fr 1fr}}:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#1f2937;background:#f3f4f6;font-synthesis:none;font-size:15px;--blue:#2563eb;--line:#e0e4e9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid #374151;border-radius:4px;background:#fff;color:#1f2937;padding:9px 14px;cursor:pointer;box-shadow:2px 2px #374151;white-space:nowrap}button:hover{background:#f0f4f9}button:active{transform:translate(1px,1px);box-shadow:1px 1px #374151}button:disabled{opacity:.4;cursor:default;transform:none}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.primary{background:var(--blue);color:#fff;border-color:#2563eb;box-shadow:2px 2px #1e3a8a}.primary:hover{background:#1d4ed8}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.5;letter-spacing:-.5px;margin-bottom:10px}h2{font-size:18px}h3{font-size:13px;color:#616d7f;font-weight:500}p{line-height:1.8}.shell{display:flex;min-height:100dvh}.sidebar{width:245px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;height:100dvh;position:sticky;top:0}.brand{padding:25px 22px 8px;display:flex;align-items:center;gap:12px;font-size:23px;font-weight:750}.pixel{display:block;width:17px;height:17px;background:#374151;box-shadow:5px 5px #cbd5e1}.brand-sub{font-size:12px;color:#6b7280;padding:0 22px 23px;border-bottom:1px solid var(--line)}nav{padding:18px 12px;overflow:auto;flex:1}.nav{width:100%;border:1px solid transparent;box-shadow:none;text-align:left;display:flex;align-items:center;gap:12px;margin-bottom:5px;padding:10px 12px;white-space:normal;font-size:14px}.nav.active{border:1px solid #374151;box-shadow:2px 2px #374151;background:#f3f4f6;font-weight:650}.nav small{margin-left:auto;font-size:10px;color:#788292}.chapter-no{font-family:monospace;color:#778292;font-size:11px}.nav-caption{font-size:11px;color:#788292;margin:24px 12px 10px}.sidebar-bottom{border-top:1px solid var(--line);padding:18px 22px;font-size:12px;line-height:1.8;color:#788292}main{flex:1;min-width:0}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:#fff;gap:20px;font-size:13px}.connection{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#6b7280;font-size:12px}.connection button{padding:5px 9px;font-size:11px;box-shadow:1px 1px #374151}.workspace{padding:30px;max-width:1600px;margin:auto}.page-heading{padding:15px 0 25px}.page-heading>p:first-child{font-size:13px;color:#2563eb;margin-bottom:8px}.page-heading>p:last-child{color:#697586;font-size:14px;margin-bottom:0}.page-heading.compact{padding-top:0}.card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 8px #1f293705;padding:26px;margin-bottom:22px}.start-card{display:flex;gap:25px;align-items:center;justify-content:space-between;padding:35px}.start-card p{max-width:580px;color:#697586}.eyebrow{font-size:12px;color:#2563eb;display:block;margin-bottom:15px}.mini-chain{display:flex;align-items:center;gap:10px}.mini-chain span{border:2px solid #374151;padding:17px;background:#f9fafb;font-family:monospace;font-size:19px}.mini-chain b{color:#2563eb}.muted{color:#697586;font-size:13px}.record-row{display:flex;gap:30px;margin:20px 0}.config{display:flex;align-items:end;gap:16px;flex-wrap:wrap;padding:18px}.config label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#616d7f}.config label:first-child{flex:1;min-width:180px}.config input,.config select,select{padding:8px 10px;border:1px solid #cbd2dc;border-radius:4px;background:#fff;color:#1f2937;min-height:37px}.config input[type=number]{width:90px}.config .check{flex-direction:row;align-items:center;width:100%}.check input{min-height:initial}.error{color:#991b1b;background:#fef2f2;padding:12px;width:100%;margin-bottom:0}.toolbar{display:flex;align-items:center;gap:18px;margin:0 0 20px;flex-wrap:wrap}.toolbar>div{display:flex;gap:10px;flex-wrap:wrap}.toolbar label{margin-left:auto;font-size:12px}.toolbar select{margin-left:8px}.step-count{font-family:monospace;color:#697586}.explanation{background:#eff6ff;border:1px solid #bfdbfe;border-left:3px solid #2563eb;padding:15px 18px;border-radius:4px;margin-bottom:22px;min-height:94px;color:#1e3a8a}.explanation strong{font-size:12px}.explanation p{margin:5px 0 0;font-size:14px}.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.panel{background:#fff;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f9fafb;border-bottom:1px solid var(--line);gap:12px}.panel-heading h2{font-size:14px;margin:0}.panel-heading span{font-size:11px;color:#6b7280}.panel-heading button{font-size:12px;padding:5px 10px}.diagram-scroll{overflow:auto;padding:15px 0}.diagram-scroll svg{width:100%;display:block;height:270px}.svg-label{font-size:12px;fill:#697586}.svg-value{font-size:18px;fill:#1f2937;font-family:monospace}.panel-note{font-size:12px;color:#697586;padding:0 18px}.code{margin:0;background:#1e1e1e;color:#d4d4d4;padding:18px 0;font-size:13px;line-height:1.8;overflow:auto;min-height:316px;font-family:JetBrains Mono,Consolas,monospace}.code-line{display:block;padding:0 15px 0 8px;border-left:3px solid transparent;min-width:max-content}.code-line b{font-weight:400;color:#888;display:inline-block;width:25px;margin-right:16px;text-align:right}.executing{background:#ffffff15;border-left-color:#f59e0b}details{font-size:12px;padding:12px 16px}summary{cursor:pointer}.preamble{white-space:pre-wrap;line-height:1.8}.memory{grid-column:1/-1}.memory-content{display:grid;grid-template-columns:240px 1fr;gap:25px;padding:20px}.variables{display:flex;flex-direction:column;gap:8px}.variables>div{border:1px solid var(--line);padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;font-size:12px;gap:5px}.variables code{font-weight:700;color:#2563eb}.variables span{color:#788292;font-size:10px;text-align:right}.variables strong{grid-column:1/-1;font-family:monospace}.variables em{grid-column:1/-1;font-style:normal;color:#b91c1c;font-size:11px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-family:Consolas,monospace;font-size:13px}th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line)}th{font-size:11px;font-weight:500;color:#697586;background:#f9fafb}.highlight{background:#fef3c7}.freed{color:#b91c1c;background:#fef2f2}.lesson-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;color:#697586;font-size:13px}.lesson-footer p{margin:0}.lesson-footer small{font-size:11px}.scope-list{line-height:2.8;max-width:600px}.scope-list span{float:right;color:#788292;font-size:12px}@media(max-width:1150px){.sidebar{width:205px}.workspace{padding:22px}.lab-grid{grid-template-columns:1fr}.memory{grid-column:1}.mini-chain{display:none}.memory-content{grid-template-columns:190px 1fr}}@media(max-width:740px){.sidebar{width:165px}.brand{font-size:18px;padding:20px 12px 8px}.brand-sub,.sidebar-bottom{padding:12px}.nav{font-size:12px;padding:8px 5px;gap:6px}.nav small{display:none}.workspace{padding:15px}.topbar{padding:15px;height:auto;flex-wrap:wrap;gap:5px}.connection{width:100%;justify-content:flex-start;flex-wrap:wrap}h1{font-size:22px}.memory-content{grid-template-columns:1fr}.variables{flex-direction:row;flex-wrap:wrap}.toolbar label{margin-left:0}.card{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}body{min-width:320px;overflow-x:hidden;background:#f3f4f6;-webkit-text-size-adjust:100%}.topbar-title{display:flex;align-items:center;gap:12px;min-width:0}.menu-button{display:none;box-shadow:1px 1px #374151}.sidebar-backdrop{display:none}.install-guide{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:16px 28px 0;padding:16px 18px;border:1px solid #93c5fd;border-left:4px solid #2563eb;border-radius:6px;background:#eff6ff;color:#1e3a8a}.install-guide p{margin:6px 0 0;font-size:13px}.install-guide button{flex:none}.code,.diagram-scroll,.table-scroll,.foundation-table-wrap,.product-table,.bank-table,.expression-table{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}@media(pointer:coarse){button,input,select,summary{min-height:44px}button{touch-action:manipulation}summary{display:flex;align-items:center}.order-actions button{min-width:52px}.nav{padding-block:12px}}@media(max-width:900px),(max-width:1100px)and (orientation:portrait){button,input:not([type=checkbox]),select,summary{min-height:44px}.config input:not([type=checkbox]),.config select{min-height:44px}.shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(84vw,320px);height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-shadow:10px 0 30px #1f29372b;transform:translate(-105%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{transform:translate(0);visibility:visible;transition:transform .2s ease}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#11182766;box-shadow:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.sidebar-backdrop.visible{opacity:1;visibility:visible;transition:opacity .2s ease}.menu-button{display:inline-flex;align-items:center}.topbar{position:sticky;top:0;z-index:20;height:auto;min-height:64px;padding:calc(10px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));flex-wrap:nowrap;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.connection{width:auto;margin-left:auto;justify-content:flex-end;flex-wrap:wrap}.workspace{padding:22px max(20px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.lesson-tabs{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:14px}.lesson-tabs button{flex:none;scroll-snap-align:start}.toolbar{top:calc(64px + env(safe-area-inset-top))}.install-guide{margin:14px max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left))}.memory-content{grid-template-columns:1fr}.variables{flex-direction:row;flex-wrap:wrap}.variables>div{flex:1 1 155px}}@media(max-width:620px){.topbar{align-items:flex-start;flex-wrap:wrap}.connection{width:100%;justify-content:flex-start;margin-left:0}.workspace{padding-inline:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.install-guide{margin-inline:max(14px,env(safe-area-inset-left));flex-direction:column}.install-guide button{align-self:flex-start}.card{padding:18px}.config label,.config label:first-child{min-width:min(100%,180px);width:100%}.config input:not([type=checkbox]),.config select{width:100%}.toolbar>div{width:100%}.toolbar>div button{flex:1}.lesson-footer{align-items:flex-start;flex-direction:column}.record-row{gap:14px;flex-wrap:wrap}}.lesson-tabs{padding:0 0 22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;overflow:visible}.lesson-tabs button{box-shadow:none;border-color:#d1d5db;font-size:13px}.lesson-tabs button[aria-current=page]{background:#eff6ff;border-color:#2563eb;color:#1e40af}.lesson-tabs span{font-size:12px;color:#697586}.relation-row{display:flex;gap:16px;margin:24px 0;flex-wrap:wrap}.relation-row button{min-width:100px;padding:16px}.relation-row small,.relation-row strong{display:block}.relation-row strong{font-size:24px;margin-top:8px;font-family:Consolas,monospace}.concepts{display:grid;grid-template-columns:100px 1fr;gap:20px;line-height:1.8}.concepts dt{font-weight:650}.concepts dd{margin:0;color:#4b5563}.slots{display:flex;overflow:auto;padding:25px 20px;gap:0;min-height:175px}.slot{flex:0 0 88px;border:1px solid #374151;box-shadow:none;border-radius:0;display:flex;flex-direction:column;gap:8px;padding:12px 5px;transition:background-color .2s,border-color .2s}.slot strong{font-size:22px}.slot code{font-size:11px}.slot small{font-size:10px}.slot.unused{background:#f3f4f6;color:#6b7280;border-style:dashed}.slot.read{border:2px solid #2563eb}.slot.written{background:#dcfce7;border:2px solid #15803d}.slot.selected{outline:2px solid #f59e0b;outline-offset:-4px}.address-equation{font-family:Consolas,monospace;font-size:13px;padding:14px 20px;background:#f9fafb;border-top:1px solid #e5e7eb;overflow:auto}.growth{margin-top:22px}.growth-controls{display:flex;gap:30px;align-items:center;flex-wrap:wrap}.growth-controls label{display:flex;align-items:center;gap:14px;font-size:13px}.growth-controls input{accent-color:#2563eb}.bar-track{height:20px;background:#e5e7eb;margin:25px 0 15px;border-radius:3px;overflow:hidden}.bar-track>div{height:100%;background:#3b82f6;transition:width .2s ease}.pointer-path{stroke-dasharray:1;stroke-dashoffset:0;animation:connect-pointer .38s ease-out}.pointer-focused{stroke:#d97706;stroke-width:3}.diagram-scroll g rect{transition:fill .15s ease}.diagram-scroll g:focus{outline:none}.diagram-scroll g:focus rect{stroke:#d97706;stroke-width:3}.variables>div{transition:background .15s ease}.explanation{animation:reveal-feedback .2s ease-out}@keyframes connect-pointer{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes reveal-feedback{0%{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.pointer-path,.explanation{animation:none}.slot,.bar-track>div,.diagram-scroll g rect,.variables>div{transition:none}}.syntax-keyword{color:#79b8ff}.syntax-type{color:#70d6c2}.syntax-literal{color:#b5cea8}.syntax-function{color:#e5dca5}.syntax-string{color:#e6a07b}.syntax-comment{color:#93b987}.code-related{background:#23416155}.code-line.executing{background:#ffffff15;border-left-color:#f59e0b}.code-line.executing.code-related{background:#31527888}.memory tr{transition:background-color .18s ease}.memory tr:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.panel{box-shadow:0 2px 5px #1f293706}.toolbar{position:sticky;top:0;z-index:3;background:#f3f4f6f5;padding:12px 0;border-bottom:1px solid #e0e4e9}.lesson-tabs{border-bottom:1px solid #e0e4e9;margin-bottom:24px}.lesson-tabs button[aria-current=page]{box-shadow:0 2px #2563eb}.diagram-scroll{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.panel-note{line-height:1.7}.variables>div.variable-highlight{background:#fef3c7;border-color:#f59e0b}.diagram-scroll g{cursor:crosshair}.diagram-scroll g rect{transition:fill .18s ease,stroke .18s ease}.code{scrollbar-width:thin;scrollbar-color:#616161 #1e1e1e}@media(min-width:1400px){.lab-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.memory tr,.diagram-scroll g rect{transition:none}}.toolbar{background:#f3f4f6f5}.practice-filters{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}.practice-filters .lesson-tabs{display:flex;flex-wrap:wrap}.chapter-filter{justify-content:flex-end}.practice-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.question-list{padding:0;display:flex;flex-direction:column;gap:8px;position:sticky;top:80px;max-height:calc(100dvh - 100px);overflow:auto;scrollbar-width:thin}.question-list button{box-shadow:none;border-color:#d1d5db;text-align:left;white-space:normal;padding:14px}.question-list button[aria-current=page]{background:#eff6ff;border-color:#2563eb}.question-list small{display:block;margin-top:7px;color:#697586;font-size:11px}.question-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.question-heading h2{margin:0}.question-heading button{font-size:12px}.question-prompt{font-size:17px}.answer-options{display:flex;flex-direction:column;gap:12px}.answer-options button{text-align:left;white-space:normal;box-shadow:none;border-color:#cbd5e1;line-height:1.7;padding:15px}.answer-options button:disabled{opacity:1}.answer-options .answer-correct{background:#ecfdf5;border-color:#15803d}.answer-options .answer-wrong{background:#fef2f2;border-color:#b91c1c}.answer-options span{font-weight:700;margin-right:8px}.answer-input{display:block;border:1px solid #9ca3af;border-radius:4px;padding:10px;margin:8px 0 15px}.hint-button{box-shadow:none;border:0;color:#1d4ed8;padding:10px 0;margin-top:12px;background:transparent}.hint{background:#fffbeb;border-left:3px solid #d97706;padding:15px;margin:10px 0 20px;font-size:14px}.hint p{margin:6px 0 0}.answer-feedback{border-left:4px solid;padding:20px;margin:18px 0;animation:reveal-feedback .2s ease-out}.answer-feedback.success{background:#ecfdf5;border-color:#15803d}.answer-feedback.mistake{background:#fef2f2;border-color:#b91c1c}.answer-feedback p{margin:10px 0 18px}.feedback-actions{display:flex;gap:14px;flex-wrap:wrap}.feedback-actions button{white-space:normal;font-size:13px}.lesson-tabs button[aria-pressed=true]{background:#eff6ff;border-color:#2563eb;color:#1e40af}.question>.muted{margin-top:20px;margin-bottom:0}@media(max-width:1150px){.practice-filters{grid-template-columns:1fr}.chapter-filter{justify-content:flex-start}}@media(max-width:1000px){.practice-layout{grid-template-columns:1fr}.question-list{display:grid;grid-template-columns:1fr 1fr;position:static;max-height:none;overflow:visible}}@media(max-width:620px){.question-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.answer-feedback{animation:none}}.practice-overview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.practice-overview-heading h2{margin-bottom:7px}.practice-overview-heading p{margin:0;color:#697586;font-size:13px}.practice-total-grid{display:grid;grid-template-columns:1.35fr repeat(4,1fr);margin:0;border:1px solid var(--line);border-radius:6px;background:#f9fafb}.practice-total-grid>div{padding:17px 18px;border-left:1px solid var(--line)}.practice-total-grid>div:first-child{border-left:0}.practice-total-grid dt,.chapter-practice-list dt{color:#697586;font-size:11px}.practice-total-grid dd{margin:7px 0 0;color:#1e3a8a;font-family:Consolas,monospace;font-size:24px;font-weight:700}.chapter-practice-list{margin:22px 0 0;padding:0;list-style:none}.chapter-practice-list>li{display:grid;grid-template-columns:minmax(155px,1.2fr) minmax(430px,2fr);align-items:center;gap:24px;padding:16px 2px;border-top:1px solid var(--line)}.chapter-practice-name{display:flex;align-items:baseline;gap:12px}.chapter-practice-name span{color:#697586;font-size:12px}.chapter-practice-list dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}.chapter-practice-list dl>div{display:flex;align-items:baseline;justify-content:flex-end;gap:8px}.chapter-practice-list dd{margin:0;font-family:Consolas,monospace;font-weight:700}.practice-record-note{margin:2px 0 0;color:#697586;font-size:12px}@media(max-width:1150px){.chapter-practice-list>li{grid-template-columns:1fr}.chapter-practice-list dl>div{justify-content:flex-start}}@media(max-width:740px){.practice-overview-heading{align-items:stretch;flex-direction:column}.practice-overview-heading button{align-self:flex-start}.practice-total-grid{grid-template-columns:repeat(2,1fr)}.practice-total-grid>div{border-top:1px solid var(--line);border-left:0}.practice-total-grid>div:first-child{grid-column:1 / -1;border-top:0}.chapter-practice-list dl{grid-template-columns:repeat(2,1fr);gap:10px 18px}.chapter-practice-name{align-items:flex-start;flex-direction:column;gap:3px}}.step-changes{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:12px 0 20px;padding:14px 18px;border:1px solid #dbe3ee;border-left:3px solid #3b82f6;border-radius:6px;background:#fff;font-size:13px}.step-changes>strong{color:#334155;white-space:nowrap}.step-changes p{margin:0;color:#64748b;line-height:1.7}.step-changes dl{display:flex;gap:10px 24px;flex-wrap:wrap;margin:0}.step-changes dl>div{display:flex;gap:10px;align-items:baseline}.step-changes dt{font-family:Consolas,monospace;color:#475569}.step-changes dd{margin:0;font-family:Consolas,monospace;line-height:1.8}.step-changes dd>span:first-child{color:#64748b}.step-changes dd>strong{color:#166534;background:#dcfce7;padding:2px 5px;border-radius:3px}.slot:focus-visible{outline:3px solid #2563eb;outline-offset:3px}@media(max-width:600px){.step-changes dl{display:grid;gap:8px}.step-changes{gap:10px}}
