.book-layout{grid-template-columns:18rem minmax(0,1fr);align-items:start;gap:2rem;display:grid}.book-sidebar{max-height:calc(100vh - 2rem);padding-right:.5rem;position:sticky;top:1rem;overflow:auto}.book-menu-toggle{display:none}.book-search{margin-bottom:1rem;position:relative}.book-search input{border:1px solid var(--line);width:100%;font:inherit;box-sizing:border-box;border-radius:8px;padding:.55rem .75rem}.book-search-results{border:1px solid var(--line);background:var(--card);border-radius:8px;max-height:24rem;margin-top:.4rem;overflow:auto;box-shadow:0 8px 24px #0e1b2e1f}.book-search-results>p{margin:0;padding:.6rem .75rem}.book-search-hit{border-bottom:1px solid var(--line);color:inherit;gap:.1rem;padding:.55rem .75rem;text-decoration:none;display:grid}.book-search-hit:last-child{border-bottom:0}.book-search-hit:hover,.book-search-hit:focus-visible{background:var(--paper)}.book-search-chapter,.book-search-snippet{color:var(--muted);font-size:.8rem}.book-contents details{border-left:4px solid var(--group,var(--brand-3));border-radius:8px;margin:0 0 .35rem;transition:background .15s}.book-contents details[open]{background:var(--group-tint,var(--paper));padding-bottom:.25rem}.book-contents details.current-group>summary{color:var(--group,var(--ink))}.book-chevron{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:.55rem;height:.55rem;margin-left:.35rem;transition:transform .15s;transform:rotate(-45deg)}.book-contents details[open]>summary .book-chevron{transform:rotate(45deg)}.book-contents summary:hover .book-chevron,.book-contents summary:focus-visible .book-chevron{border-color:var(--group,var(--ink))}.book-contents summary{cursor:pointer;align-items:center;gap:.5rem;padding:.35rem .25rem;font-size:.92rem;font-weight:600;list-style:none;display:flex}.book-contents summary::-webkit-details-marker{display:none}.book-chapter-number{white-space:nowrap;background:var(--group,var(--brand-3));color:#fff;border-radius:999px;flex:none;place-items:center;min-width:1.5rem;height:1.5rem;padding:0 .45rem;font-size:.75rem;font-weight:700;display:inline-grid}.book-glossary-link{border:1px dashed var(--line);color:var(--ink);border-radius:8px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.45rem .5rem;font-size:.92rem;font-weight:600;text-decoration:none;display:flex}.book-glossary-link .book-chapter-number{background:var(--brand)}.book-glossary-link:hover,.book-glossary-link:focus-visible,.book-glossary-link.current{background:var(--paper);border-style:solid}.book-chapter-number.big{min-width:2.25rem;height:2.25rem;padding:0 .7rem;font-size:.95rem}.book-contents ol{margin:0 0 .5rem;padding:0 0 0 2rem;list-style:none}.book-contents ol a{color:var(--ink);border-radius:6px;padding:.25rem .5rem;font-size:.9rem;text-decoration:none;display:block}.book-contents ol a:hover,.book-contents ol a:focus-visible{background:var(--paper)}.book-contents ol a[aria-current=page]{background:var(--group,var(--brand));color:#fff;font-weight:600}.book-main{min-width:0}.book-overview>p{max-width:44rem}.book-chapter-cards{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.book-chapter-card a{border:1px solid var(--line);background:var(--card);color:inherit;box-sizing:border-box;border-left:4px solid var(--group,var(--line));border-radius:10px;align-items:flex-start;gap:.9rem;height:100%;padding:.9rem 1rem;text-decoration:none;display:flex}.book-chapter-card a:hover,.book-chapter-card a:focus-visible{border-color:var(--group,var(--accent));background:var(--group-tint,var(--card))}.book-chapter-card a>span:last-child{gap:.15rem;display:grid}.book-page{max-width:46rem}.book-crumb{color:var(--muted);margin:0 0 .25rem;font-size:.9rem}.book-page h1{margin:0 0 .5rem;font-size:1.8rem}.book-spec{flex-wrap:wrap;gap:.35rem;margin:0 0 1rem;display:flex}.chip{background:var(--paper);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:.78rem;display:inline-block}.on-this-page{border-left:3px solid var(--line);margin:0 0 1.25rem;padding:.6rem .9rem;font-size:.9rem}.on-this-page ol{margin:.25rem 0 0;padding-left:1.2rem}.on-this-page a{min-height:24px;padding:.15rem 0;display:inline-block}.eyebrow-dark{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.72rem;font-weight:600}.book-body{font-size:1.02rem;line-height:1.6}.book-body h2{margin:1.75rem 0 .5rem;font-size:1.35rem}.book-body h3{margin:1.25rem 0 .4rem;font-size:1.1rem}.book-body p,.book-body li{max-width:44rem}.book-body code{background:var(--paper);border-radius:4px;padding:.05rem .3rem;font-size:.92em}.book-body pre{color:#f4f6fa;background:#1b2430;border-radius:8px;padding:.75rem 1rem;font-size:.9rem;overflow:auto}.book-body pre code{color:inherit;background:0 0;padding:0}.book-body .table-wrap{margin:.75rem 0 1rem;overflow-x:auto}.book-body table{border-collapse:collapse;min-width:20rem}.book-body th,.book-body td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.35rem .65rem}.book-body th{background:var(--paper)}.book-body dfn.term{border-bottom:2px solid var(--spark);font-style:normal;font-weight:600}.callout{border:1px solid var(--line);background:var(--card);border-radius:10px;margin:1rem 0;padding:.75rem 1rem}.callout>:last-child{margin-bottom:0}.callout-title{text-transform:uppercase;letter-spacing:.06em;margin:0 0 .25rem;font-size:.85rem;font-weight:700}.callout-plain{background:var(--meadow-light);border-color:#bfe3cf}.callout-plain .callout-title{color:var(--meadow-ink)}.callout-tip{background:#eef4fb;border-color:#c9dcf3}.callout-tip .callout-title{color:var(--accent)}.callout-warning{background:#fff4ec;border-color:#f4cfb8}.callout-warning .callout-title{color:var(--ember-ink)}.callout-note .callout-title{color:var(--muted)}.check-yourself{border:1px solid var(--line);background:var(--card);border-radius:8px;margin:.5rem 0;padding:.5rem .85rem}.check-yourself>summary{cursor:pointer;font-weight:600}.check-yourself .answer{border-top:1px dashed var(--line);margin-top:.4rem;padding-top:.4rem}.check-yourself .answer>:last-child{margin-bottom:0}.key-terms{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-top:2rem;padding:1rem 1.25rem}.key-terms h2,.book-videos h2{margin:0 0 .5rem;font-size:1.15rem}.key-terms dl{gap:.5rem;margin:0;display:grid}.key-terms dt{font-weight:700}.key-terms dd{margin:0}.book-videos{border:1px solid var(--line);background:var(--card);border-radius:10px;margin-top:1.5rem;padding:1rem 1.25rem}.book-videos ul{margin:.25rem 0 0;padding-left:1.2rem}.book-page .pager{margin-top:2rem}.widget{border:1px solid var(--line);background:var(--card);border-radius:12px;margin:1.25rem 0;padding:1rem;overflow:hidden}.widget-info{background:var(--paper);border-radius:8px;margin:.75rem 0 0;padding:.6rem .8rem}.widget-info p{margin:.25rem 0 0}.widget-help{color:var(--muted);margin:.5rem 0 0;font-size:.85rem}.widget-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.widget-row label{color:var(--muted);gap:.2rem;font-size:.85rem;display:grid}.widget-row input:not([type=checkbox]),.widget-row select{font:inherit;border:1px solid var(--line);border-radius:6px;width:9rem;padding:.35rem .5rem}.widget-row select{width:auto;min-width:9rem;max-width:100%}.widget-steps ol{margin:.25rem 0 0}.widget-cpu svg{width:100%;max-width:660px;height:auto;margin:0 auto;font-family:inherit;display:block}.widget-cpu .cpu-box{fill:#eef4fb;stroke:#c9dcf3}.widget-cpu .cpu-title{fill:var(--brand-3);font-size:13px;font-weight:700}.widget-cpu .cpu-part{cursor:pointer}.widget-cpu .cpu-part rect{fill:#fff;stroke:var(--brand-3);stroke-width:1.5px}.widget-cpu .cpu-memory rect{fill:#fff7ee;stroke:var(--ember-dark)}.widget-cpu .cpu-part text{fill:var(--ink);pointer-events:none;font-size:14px;font-weight:600}.widget-cpu .cpu-part.selected rect{fill:var(--brand);stroke:var(--brand)}.widget-cpu .cpu-part.selected text{fill:#fff}.widget-cpu .cpu-part:focus-visible rect,.widget-cpu .cpu-bus:focus-visible line{outline:3px solid var(--spark)}.widget-cpu .cpu-bus{cursor:pointer}.widget-cpu .cpu-bus line{stroke:var(--muted);stroke-width:4px}.widget-cpu .cpu-bus polygon{fill:var(--muted)}.widget-cpu .cpu-bus text{fill:var(--muted);font-size:11px}.widget-cpu .cpu-bus.selected line,.widget-cpu .cpu-bus.selected polygon{stroke:var(--ember);fill:var(--ember)}.widget-cpu .cpu-bus.selected text{fill:var(--ember-dark);font-weight:700}.fde-controls{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.fde-phase{background:var(--paper);border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:700}.fde-fetch{color:var(--accent);background:#eef4fb}.fde-decode{color:var(--ember-dark);background:#fff4ec}.fde-execute{background:var(--meadow-light);color:var(--meadow-ink)}.fde-grid{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.75rem;display:grid}.fde-cpu,.fde-memory{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem}.fde-title{color:var(--muted);margin:0 0 .35rem;font-size:.85rem;font-weight:700}.fde-registers{gap:.25rem;margin:0;display:grid}.fde-registers div{grid-template-columns:3rem 1fr;align-items:center;display:grid}.fde-registers dt{font-size:.85rem;font-weight:700}.fde-registers dd{background:var(--paper);border-radius:4px;min-height:1.4rem;margin:0;padding:.15rem .5rem;font-family:ui-monospace,monospace}.fde-buses{color:var(--muted);text-align:center;align-content:center;gap:.75rem;font-size:.75rem;display:grid}.fde-bus{border:1px dashed var(--line);border-radius:4px;padding:.2rem .5rem}.fde-bus.active{background:var(--ember);border-color:var(--ember);color:#fff;font-weight:700}.fde-memory table{border-collapse:collapse;width:100%;font-size:.9rem}.fde-memory th,.fde-memory td{border:1px solid var(--line);text-align:left;padding:.15rem .5rem;font-family:ui-monospace,monospace}.fde-memory tr.active td{background:#fff4ec;font-weight:700}.bits{border-collapse:collapse;margin:.25rem 0}.bits th{color:var(--muted);text-align:center;padding:0 .15rem .2rem;font-size:.75rem;font-weight:600}.bits td{padding:0 .15rem}.bit{border:2px solid var(--line);background:var(--card);width:2.4rem;height:2.4rem;font:inherit;color:var(--muted);border-radius:8px;place-items:center;font-family:ui-monospace,monospace;font-size:1.1rem;font-weight:700;display:inline-grid}button.bit{cursor:pointer}.bit.on{background:var(--brand);border-color:var(--brand);color:#fff}.nibbles{flex-wrap:wrap;gap:1.5rem;display:flex}.nibbles p{margin:.25rem 0 0}.addition{border-collapse:collapse;font-family:ui-monospace,monospace;font-size:1.1rem}.addition th{text-align:right;color:var(--muted);white-space:nowrap;padding:.1rem .75rem .1rem 0;font-family:inherit;font-size:.9rem;font-weight:600}.addition td{text-align:center;width:2rem;padding:.1rem .15rem}.addition .carries td{color:var(--ember-dark);height:1rem;font-size:.8rem}.addition .second td{border-bottom:2px solid var(--ink)}.addition .result td{font-weight:700}.addition td.current{background:#fff4ec}@media (width<=860px){.book-layout{grid-template-columns:1fr}.book-menu-toggle{margin-bottom:.75rem;display:inline-block}.book-sidebar{max-height:none;display:none;position:static}.book-sidebar.open{margin-bottom:1.5rem;display:block}.fde-grid{grid-template-columns:1fr}.fde-buses{grid-auto-flow:column}}.book-order{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .9rem;display:flex}.book-order-option{border:1px solid var(--line);color:var(--ink);background:var(--card);border-radius:999px;padding:.2rem .6rem;font-size:.8rem;text-decoration:none}.book-order-option.active{background:var(--brand);border-color:var(--brand);color:#fff}.book-page-spec{min-width:2.6rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.4rem;font-size:.75rem;display:inline-block}.book-contents ol a[aria-current=page] .book-page-spec{color:#fffc}.book-figure{margin:1.25rem 0}.book-figure img{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;max-width:44rem;height:auto;display:block}.book-figure figcaption{color:var(--muted);margin-top:.4rem;font-size:.85rem}.book-figure.photo img{object-fit:contain;background:var(--paper);width:auto;max-width:100%;max-height:22rem}.book-figure.photo .photo-credit{font-size:.78rem;display:block}.multitask-cpu{margin:.5rem 0}.multitask-table{border-collapse:collapse;font-size:.85rem}.multitask-table th,.multitask-table td{border:1px solid var(--line);text-align:center;min-width:1.6rem;padding:.2rem .35rem}.multitask-table th[scope=row]{text-align:left;white-space:nowrap}.multitask-table .current{background:#fff4ec}.multitask-table .slice{border-radius:3px;height:1rem;display:block}.defrag-disk{grid-template-columns:repeat(12,1fr);gap:3px;max-width:30rem;margin:.5rem 0;display:grid}.defrag-block{aspect-ratio:1;border:1px solid #00000014;border-radius:4px;display:block}.defrag-block.chosen{outline-offset:-3px;outline:3px solid #1b2430}.defrag-legend{color:var(--muted);flex-wrap:wrap;gap:.75rem;font-size:.8rem;display:flex}.defrag-swatch{vertical-align:middle;border-radius:3px;width:.8rem;height:.8rem;display:inline-block}.ascii-table{border-collapse:collapse;font-size:.9rem}.ascii-table th,.ascii-table td{border:1px solid var(--line);text-align:center;padding:.25rem .5rem}.ascii-table th{text-align:left;white-space:nowrap;background:var(--paper)}.ascii-table .ascii-char{font-size:1.2rem;font-weight:700}.ascii-table .mono{font-family:ui-monospace,monospace;font-size:.8rem}.bitmap-palette{align-items:center;gap:.35rem;display:flex}.bitmap-swatch{border:2px solid var(--line);cursor:pointer;border-radius:6px;width:1.8rem;height:1.8rem}.bitmap-swatch.chosen{outline:3px solid var(--ember);outline-offset:1px}.bitmap-layout{flex-wrap:wrap;align-items:flex-start;gap:1.25rem;display:flex}.bitmap-grid{background:var(--line);border-radius:6px;gap:2px;width:16rem;padding:2px;display:grid}.bitmap-pixel{aspect-ratio:1;cursor:pointer;border:0;padding:0}.bitmap-binary{background:var(--paper);border-radius:8px;margin:0;padding:.6rem .8rem;font-size:.85rem;line-height:1.5}.sound-svg{width:100%;max-width:640px;height:auto;display:block}.sound-level{stroke:#e3e8ee;stroke-width:1px}.sound-wave{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:5 4}.sound-steps{fill:none;stroke:var(--accent);stroke-width:3px}.sound-dot{fill:var(--ember)}.sound-label{fill:var(--muted);font-size:12px}.rle-runs{flex-wrap:wrap;gap:.35rem;margin:.5rem 0;display:flex}.rle-run{border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:.2rem .55rem;font-family:ui-monospace,monospace}.rle-count{color:var(--ember-ink);font-weight:700}.topology-svg{width:100%;max-width:660px;height:auto;margin:0 auto;font-family:inherit;display:block}.topology-svg .link{stroke:var(--muted);stroke-width:3px}.topology-svg .link-hit{stroke:#0000;stroke-width:16px}.topology-svg .link-group{cursor:pointer}.topology-svg .link-group:hover .link,.topology-svg .link-group:focus-visible .link{stroke:var(--accent)}.topology-svg .link-group.broken .link{stroke:var(--ember);stroke-dasharray:6 8}.topology-svg .bus-line{stroke:var(--muted);stroke-width:6px}.topology-svg .terminator{fill:var(--ink)}.topology-svg .bus-break{cursor:pointer}.topology-svg .bus-break circle{fill:#fff;stroke:var(--muted);stroke-width:2px}.topology-svg .bus-break text{pointer-events:none;font-size:13px}.topology-svg .bus-break.broken circle{fill:var(--ember);stroke:var(--ember)}.topology-svg .node rect{fill:#fff;stroke:var(--brand-3);stroke-width:2px}.topology-svg .node text{fill:var(--ink);pointer-events:none;font-size:13px;font-weight:600}.topology-svg .node.server rect{fill:#eef4fb}.topology-svg .node.switch{cursor:pointer}.topology-svg .node.switch rect{fill:var(--brand);stroke:var(--brand)}.topology-svg .node.switch text{fill:#fff}.topology-svg .node.switch.broken rect{fill:var(--ember);stroke:var(--ember)}.topology-svg .node.cut rect{fill:#fff4ec;stroke:var(--ember);stroke-dasharray:4 4}.topology-svg .node.cut text{fill:var(--ember-dark)}.topology-notes{grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem;font-size:.92rem;display:grid}.topology-notes ul{margin:.25rem 0 0;padding-left:1.1rem}.layers-grid{grid-template-columns:1fr auto 1fr;align-items:start;gap:1rem;display:grid}.layers-stack{gap:.4rem;display:grid}.layer{border:2px solid var(--line);background:var(--card);border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-weight:600;transition:background .2s;display:flex}.layer.active{background:#fff4ec;box-shadow:0 0 0 3px #f06a2f40}.packet{font-size:1.2rem}.layers-wire{text-align:center;align-self:end;padding-bottom:.5rem}.wire{border:1px dashed var(--line);color:var(--muted);white-space:nowrap;border-radius:6px;padding:.3rem .6rem}.wire.active{background:var(--ember);border-color:var(--ember);color:#fff;font-weight:700}@media (width<=720px){.topology-notes,.layers-grid{grid-template-columns:1fr}}.phish-email{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.75rem 1rem;font-family:Georgia,serif}.phish-subject{border-bottom:1px solid var(--line);margin:0 0 .5rem;padding-bottom:.5rem;font-family:inherit}.phish-line{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;margin:.2rem 0;padding:.35rem .5rem;display:block}.phish-line:hover,.phish-line:focus-visible{border-color:var(--line);background:var(--paper)}.phish-line.found{border-color:var(--ember);text-decoration:line-through;-webkit-text-decoration-color:var(--ember);text-decoration-color:var(--ember);background:#fff4ec}.phish-why{margin:.5rem 0 0;padding-left:1.2rem;font-size:.92rem}.widget-password .checkbox{color:var(--ink);align-items:center;gap:.35rem;display:inline-flex}.widget-password .checkbox input{width:1rem;height:1rem;margin:0}.error-code{background:#1b2430;border-radius:8px;margin:0;padding:.5rem 0;overflow:auto}.error-line{text-align:left;color:#f4f6fa;width:100%;font:inherit;white-space:pre;cursor:pointer;background:0 0;border:0;padding:.2rem .75rem;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;display:block}.error-line:hover,.error-line:focus-visible{background:#2a3648}.error-line.right{box-shadow:inset 4px 0 0 var(--ember);background:#3c2418}.error-line.wrong{box-shadow:inset 4px 0 0 var(--muted);opacity:.8;background:#1f2f3f}.error-no{color:#7f8b99;width:2rem;display:inline-block}.validation-table{border-collapse:collapse;font-size:.92rem}.validation-table th,.validation-table td{border:1px solid var(--line);text-align:left;padding:.3rem .6rem}.validation-table tr.ok td:last-child{color:var(--meadow-ink);font-weight:700}.validation-table tr.fail td:last-child{color:var(--ember-dark);font-weight:700}.book-body .algo-table{border-collapse:collapse;min-width:0;margin:.5rem 0;font-size:.9rem}.book-body .algo-table th,.book-body .algo-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.3rem .6rem}.algo-table thead th{background:var(--paper)}.algo-table tr.current td,.algo-table tr.current th{background:#fff4e5}.algo-cells{flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .5rem;display:flex}.algo-cell{border:2px solid var(--line);background:var(--card);border-radius:8px;justify-items:center;min-width:2.6rem;padding:.4rem .4rem .2rem;transition:background .2s,border-color .2s,opacity .2s;display:grid}.algo-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.algo-note{color:var(--muted);font-size:.7rem}.algo-cell.checking{border-color:var(--accent);background:#e6efff}.algo-cell.swapped{border-color:var(--ember);background:#fff0e8}.algo-cell.found,.algo-cell.sorted,.in-order .algo-cell{border-color:var(--meadow);background:var(--meadow-light)}.algo-cell.seen,.algo-cell.gone{opacity:.35}.in-order .algo-cell{border-width:1px}.flow-layout svg{width:100%;height:auto;color:var(--muted)}.flow-symbol rect,.flow-symbol polygon{fill:var(--card);stroke:var(--ink);stroke-width:1.5px}.flow-symbol text{fill:var(--ink);text-anchor:middle;font-family:ui-monospace,Consolas,monospace;font-size:13px}.flow-symbol text.flow-small{font-size:12px}.flow-symbol.active rect,.flow-symbol.active polygon{fill:#fff4e5;stroke:var(--ember);stroke-width:3px}.flow-label{fill:var(--muted);font-size:11px}.trace-layout{gap:.75rem;display:grid}.trace-code{background:#1b2430;border-radius:8px;margin:0;padding:.5rem 0;overflow:auto}.trace-code:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.trace-line{color:#f4f6fa;white-space:pre;padding:.2rem .75rem;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;display:block}.trace-line.active{background:#3d5a99}.trace-line.done{color:#9fc9a8}.trace-line.bad{background:#7a2d2d}.trace-table-wrap{overflow-x:auto}.trace-table{font-variant-numeric:tabular-nums;width:100%}.race-table td,.race-table th{font-variant-numeric:tabular-nums}.merge-rows{gap:.35rem;margin:.5rem 0;display:grid}.merge-row{border-radius:8px;grid-template-columns:4.5rem 1fr;align-items:center;gap:.5rem;padding:.25rem .4rem;display:grid}.merge-row.current{background:#fff4e5}.merge-label{color:var(--muted);font-size:.8rem}.merge-groups{flex-wrap:wrap;gap:.6rem;display:flex}.merge-groups .algo-cells{border:1px dashed var(--line);border-radius:8px;gap:.2rem;margin:0;padding:.2rem}.merge-groups .algo-cell{min-width:2.1rem;padding:.25rem .3rem .15rem}.merge-groups .algo-value{font-size:.95rem}.logic-toggle,.logic-lamp{border:2px solid var(--line);background:var(--card);font:inherit;color:var(--ink);border-radius:999px;grid-auto-flow:column;align-items:center;gap:.4rem;padding:.3rem .6rem;display:inline-grid}.logic-toggle{cursor:pointer}.logic-toggle.on,.logic-lamp.on{border-color:var(--meadow);background:var(--meadow-light)}.logic-bit{background:var(--line);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;font-weight:700;display:inline-grid}.logic-toggle.on .logic-bit,.logic-lamp.on .logic-bit{background:var(--meadow);color:#fff}.logic-name{font-size:.85rem}.gate-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.gate-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:.5rem}.gate-card svg,.circuit-layout svg{width:100%;height:auto;display:block}.gate-rule{margin:.25rem 0;font-size:.85rem}.gate-shape,.gate-shape path,.gate-shape circle{fill:var(--card);stroke:var(--ink);stroke-width:2px}.gate-shape.live,.gate-shape.live path,.gate-shape.live circle{fill:var(--meadow-light);stroke:var(--meadow)}.logic-wire{stroke:#9aa5b1;stroke-width:2.5px}.logic-wire.live{stroke:var(--meadow);stroke-width:3.5px}.wire-label{fill:var(--ink);font-size:12px;font-weight:700}.wire-label.small{fill:var(--muted);font-weight:400}.book-body .logic-table td,.book-body .logic-table th{text-align:center;font-variant-numeric:tabular-nums}.gate-card .logic-table{width:100%}.circuit-layout{justify-items:start;gap:1rem;display:grid}.circuit-layout svg{max-width:480px}.truth-cell{border:2px solid var(--line);background:var(--card);width:2.2rem;height:1.8rem;font:inherit;cursor:pointer;border-radius:6px;font-weight:700}.truth-cell.right{border-color:var(--meadow);background:var(--meadow-light)}.truth-cell.wrong{background:#fdecea;border-color:#c62828}.levels-layout,.translate-layout{grid-template-columns:minmax(200px,1fr) minmax(0,1.3fr);align-items:start;gap:1rem;display:grid}.levels-code,.translate-out{color:#f4f6fa;white-space:pre-wrap;background:#1b2430;border-radius:8px;min-height:5rem;margin:0;padding:.75rem;font-family:ui-monospace,Consolas,monospace;font-size:.9rem}.levels-points{margin:0;padding-left:1.2rem;font-size:.9rem}.translate-layout p.small{margin:0 0 .25rem}@media (width<=640px){.flow-layout,.levels-layout,.translate-layout{grid-template-columns:1fr}}.book-body .algo-table tr.fail td{color:#a33}.mono,.algo-value.mono{font-family:ui-monospace,Consolas,monospace}.divmod-rows{gap:.25rem;margin:.5rem 0;display:grid}.divmod-row{background:var(--paper);border-radius:6px;grid-template-columns:6rem 1fr;align-items:center;gap:.5rem;padding:.2rem .5rem;display:grid}.divmod-row.left{background:#fff4e5}.divmod-label{color:var(--muted);font-size:.85rem}.divmod-sweets{letter-spacing:.1em;word-break:break-all;font-size:1.1rem}.dice-bars{grid-template-columns:repeat(6,1fr);align-items:end;gap:.5rem;height:9rem;margin:.75rem 0 .25rem;display:grid}.dice-bar{text-align:center;font-variant-numeric:tabular-nums;grid-template-rows:auto 1fr auto;height:100%;display:grid}.dice-count{color:var(--muted);font-size:.8rem}.dice-fill{background:var(--accent);border-radius:6px 6px 0 0;align-self:end;min-height:2px;transition:height .2s}.dice-face{border-top:2px solid var(--line);padding-top:.2rem;font-weight:700}.turtle-layout{grid-template-columns:auto 1fr;align-items:start;gap:1rem;display:grid}.turtle-canvas{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:100%}.widget-makeover .error-line:disabled{cursor:default}.testplan-table select,.law-item select{font:inherit;padding:.25rem .4rem}.book-body .algo-table tr.right td{background:var(--meadow-light)}.book-body .algo-table tr.wrong td{background:#fdecea}.law-list{margin:.5rem 0;padding-left:1.4rem}.law-item{background:var(--paper);border-radius:8px;margin:0 0 .6rem;padding:.5rem .75rem}.law-item p{margin:0 0 .35rem}.law-item.right{background:var(--meadow-light)}.law-item.wrong{background:#fdecea}.law-why{color:var(--muted);margin-top:.35rem!important}.assembler-table input[type=number]{width:4rem;font:inherit;padding:.2rem .3rem}.assembler-table select{font:inherit;padding:.2rem .3rem;font-family:ui-monospace,Consolas,monospace}@media (width<=640px){.turtle-layout{grid-template-columns:1fr}}.storage-layout{grid-template-columns:minmax(240px,1fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.storage-layout svg{width:100%;height:auto}.storage-labels,.storage-labels text{fill:var(--muted);font-size:11px}.bit-one{color:#b0431a;font-weight:700}.bit-zero{color:var(--meadow-ink);font-weight:700}.ssd-grid{border:2px solid var(--line);background:#1b2430;border-radius:10px;grid-template-columns:repeat(8,minmax(0,1fr));gap:.3rem;min-width:0;padding:.5rem;display:grid}.ssd-cell{aspect-ratio:1;color:#f4f6fa;background:#34435a;border-radius:6px;place-items:center;min-width:0;font-size:.8rem;transition:background .2s;display:grid}.ssd-cell.charged{background:#d2521c}.ssd-cell.busy{outline:3px solid var(--focus)}.ssd-dots{min-height:1.1rem;font-size:.9rem}.ssd-bit{font-variant-numeric:tabular-nums;font-weight:700}@media (width<=640px){.storage-layout{grid-template-columns:1fr}}.term-zh{color:var(--muted);margin-left:.6rem;font-weight:500}.glossary-group{border-left:4px solid var(--group,var(--line));margin-top:1.75rem;padding-left:.9rem}.glossary-group h2{align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.15rem;display:flex}.glossary-list{gap:.6rem;margin:0;display:grid}.glossary-list>div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem}.glossary-list dt{font-weight:700}.glossary-list dd{margin:0}.glossary-page{color:var(--muted);font-size:.8rem}.cache-layout{grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:.5rem;margin:.5rem 0;display:grid}.cache-box{border:2px solid var(--line);background:var(--card);text-align:center;border-radius:10px;gap:.25rem;min-width:6rem;padding:.6rem .8rem;font-size:.85rem;display:grid}.cache-box.cpu.hit{border-color:var(--meadow);background:var(--meadow-light)}.cache-box.cpu.miss{border-color:var(--ember);background:#fff0e8}.cache-box.ram{background:var(--paper)}.cache-lines{gap:.2rem;display:grid}.cache-line{background:var(--paper);border-radius:4px;padding:.15rem .4rem;font-family:ui-monospace,Consolas,monospace;font-size:.8rem}.cache-line.current{background:var(--meadow-light);outline:2px solid var(--meadow)}.cache-arrow{text-align:center;color:var(--muted);min-height:1.2rem;font-size:.78rem}.cache-arrow.hit{color:var(--meadow-ink);font-weight:700}.cache-arrow.miss{color:var(--ember-ink);font-weight:700}.widget-packets svg{width:100%;height:auto;margin:.25rem 0;display:block}@media (width<=640px){.cache-layout{grid-template-columns:1fr}}.marble-run{border:1px solid var(--line);background:#f7f9fc;border-radius:10px;width:100%;max-width:620px;height:auto;margin:0 auto;display:block}.marble-feeder{fill:#5b6673}.marble-tray{fill:#dfe5ee;stroke:#b8c2d0}.marble-pivot{fill:#6e4a26}.marble-rocker{transition:transform .25s ease-out}.marble-bit{fill:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:700}.marble-bit.on{fill:var(--brand)}.marble-label{fill:#5b6673;font-size:10px}.marble{filter:drop-shadow(0 2px 2px #0000004d)}.odometer{background:#1b2430;border-radius:12px;justify-content:center;gap:.6rem;margin:.5rem 0 .75rem;padding:1rem .75rem;display:flex}.odo-column{justify-items:center;gap:.35rem;display:grid}.odo-place{color:#aeb8c6;font-size:.72rem}.odo-wheel{perspective:240px;background:#0d131b;border-radius:6px;width:3.4rem;position:relative;overflow:hidden}.odo-wheel:after{content:"";pointer-events:none;background:linear-gradient(#0d131bd9 0%,#0d131b00 32% 68%,#0d131bd9 100%);position:absolute;inset:0}.odo-drum{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.9,.4,1.05);position:relative}.odo-drum.snap{transition:none}.odo-face{backface-visibility:hidden;color:#1b2430;background:linear-gradient(#fbfcfe 0%,#dfe5ee 100%);border-top:1px solid #b8c2d0;place-items:center;width:100%;font-family:ui-monospace,Consolas,monospace;font-size:1.5rem;font-weight:700;display:grid;position:absolute;left:0}.odo-drum.carried .odo-face{background:linear-gradient(#fff1e9 0%,#ffd7c2 100%)}@media (prefers-reduced-motion:reduce){.odo-drum,.marble-rocker{transition:none}}.pattern-bits{flex-wrap:wrap;gap:.3rem;margin:.25rem 0 .75rem;display:flex}.pattern-bits .bit:nth-child(4){margin-right:.75rem}.pattern-table{border-collapse:collapse;width:100%;font-size:.95rem}.pattern-table th,.pattern-table td{text-align:left;border-top:1px solid var(--line);vertical-align:top;padding:.4rem .5rem}.pattern-table th{width:10rem;color:var(--muted);font-weight:600}.pattern-char{border:1px solid var(--line);background:var(--card);border-radius:6px;place-items:center;min-width:1.8rem;height:1.8rem;padding:0 .3rem;font-family:ui-monospace,Consolas,monospace;display:inline-grid}.pattern-swatch{vertical-align:middle;border:1px solid var(--line);border-radius:4px;width:1.5rem;height:1.5rem;display:inline-block}.flow-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:.75rem;display:grid}@media (width<=640px){.flow-layout{grid-template-columns:1fr}}.flow-side{gap:.6rem;display:grid}.flow-vars td:first-child{font-family:ui-monospace,Consolas,monospace}.flow-console{color:#d9e2ec;white-space:pre-wrap;background:#0d131b;border-radius:8px;min-height:2.6rem;padding:.5rem .7rem;font-family:ui-monospace,Consolas,monospace;font-size:.88rem}.flow-console-title,.file-title{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem;font-size:.72rem;font-weight:600}.flow-console .muted{color:#aeb8c6}.flow-console .flow-console-title,.http-panel .flow-console-title,.login-file .flow-console-title{color:var(--muted)}.flow-console .flow-console-title{color:#aeb8c6}.widget-info.flow-error{border-left:4px solid var(--ember);background:#fff0ec}.var-boxes{flex-wrap:wrap;gap:.75rem;min-height:4rem;display:flex}.var-box{border:2px solid var(--line);background:var(--card);border-radius:10px;min-width:6rem;transition:border-color .2s;overflow:hidden}.var-box.changed{border-color:var(--ember);box-shadow:0 0 0 3px #f06a2f40}.var-box-name{background:var(--paper);color:var(--muted);border-bottom:1px solid var(--line);padding:.2rem .6rem;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.var-box-value{align-items:baseline;gap:.5rem;padding:.5rem .6rem;font-size:1.1rem;display:flex}.var-box-old{color:var(--muted);opacity:.7;font-size:.85rem}.var-working{background:var(--paper);border-radius:8px;padding:.45rem .6rem;font-size:.95rem}.frame-stack{gap:.5rem;min-height:4rem;display:grid}.frame{border:2px solid var(--line);background:var(--card);border-radius:10px;overflow:hidden}.frame.top{border-color:var(--ember)}.frame.global{border-style:dashed}.frame-name{background:var(--paper);border-bottom:1px solid var(--line);padding:.25rem .6rem;font-size:.85rem;font-weight:600}.frame.top .frame-name{background:#fff0ec}.frame .small{padding:.3rem .6rem}.frame-vars{border-collapse:collapse;width:100%;font-size:.92rem}.frame-vars td{padding:.2rem .6rem}.frame-vars td:first-child{width:40%;font-family:ui-monospace,Consolas,monospace}.frame-vars tr.current td{background:#fff4ec;font-weight:700}.file-view{border:2px solid var(--line);background:#fffdf7;border-radius:10px;padding:.5rem .6rem;font-family:ui-monospace,Consolas,monospace;font-size:.9rem}.file-line{border-radius:4px;gap:.3rem;padding:.1rem .2rem;display:flex}.file-line.at-pointer{background:#fff4ec}.file-pointer{width:1.1rem;color:var(--ember)}.file-newline{color:#6b7684;margin-left:.15rem}.file-end{border-top:1px dashed var(--line);margin-top:.2rem}.http-stage{grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;margin:.5rem 0;display:grid}.http-end{text-align:center;font-size:.85rem;font-weight:600}.http-icon{font-size:2rem;line-height:1}.http-wire{height:6.5rem;position:relative}.http-line{background:var(--line);height:3px;position:absolute;top:1.1rem;left:0;right:0}.http-packet{background:var(--brand);color:#fff;white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:600;animation:.9s ease-in-out forwards http-travel;position:absolute;top:0}.http-packet.to-browser{animation-name:http-travel-back}.http-packet.locked{background:#1f6446}@keyframes http-travel{0%{left:0;transform:translate(0)}to{left:100%;transform:translate(-100%)}}@keyframes http-travel-back{0%{left:100%;transform:translate(-100%)}to{left:0;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.http-packet{animation-duration:10ms}}.http-ear{text-align:center;color:var(--muted);position:absolute;top:2.2rem;left:50%;transform:translate(-50%)}.http-ear .http-icon{font-size:1.6rem}.http-panels{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}@media (width<=640px){.http-panels{grid-template-columns:1fr}}.http-panel pre{color:#d9e2ec;white-space:pre-wrap;background:#0d131b;border-radius:8px;min-height:4.5rem;margin:0;padding:.5rem .7rem;font-size:.82rem}.http-panel.scrambled pre{color:#8fb8a3;word-break:break-all}.malware-net{width:100%;max-width:520px;height:auto;margin:.25rem auto;display:block}.malware-link{stroke:#b8c2d0;stroke-width:3px}.malware-pc rect{fill:#dfe5ee;stroke:#5b6673;stroke-width:1.5px;transition:fill .3s}.malware-pc .malware-screen{fill:#1b2430;stroke:none}.malware-pc .malware-stand{fill:#5b6673;stroke:none}.malware-pc text{fill:#9fd6ff;pointer-events:none;font-size:13px;font-weight:700}.malware-pc.infected .malware-screen{fill:#7a2d2d}.malware-pc.infected text{fill:#ffd6c2;font-size:16px}.malware-pc.clickable{cursor:pointer}.malware-pc.clickable:hover rect:first-of-type,.malware-pc.clickable:focus-visible rect:first-of-type{fill:#fff0ec;stroke:#b0431a}.malware-pc:focus{outline:none}.malware-pc:focus-visible rect:first-of-type{stroke:var(--focus);stroke-width:3px}.pseudo-table select{max-width:100%;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.pseudo-table tr.right td{background:#eaf6ee}.pseudo-table tr.wrong td{background:#fff0ec}.pseudo-mark{text-align:center;width:2rem;font-weight:700}.decompose-tasks{gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.decompose-tasks li{border:1px solid var(--line);background:var(--card);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.92rem;display:flex}.decompose-tasks li.right{border-color:var(--meadow);background:#eaf6ee}.decompose-tasks li.wrong{border-color:var(--ember);background:#fff0ec}.decompose-tasks select{flex:none;max-width:45%;font-size:.85rem}.decompose-tree{background:var(--paper);border-radius:10px;padding:.5rem}.decompose-root{background:var(--brand);color:#fff;border-radius:8px;width:max-content;max-width:100%;margin:0 auto .5rem;padding:.35rem .9rem;font-weight:700}.decompose-parts{border-top:2px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;padding-top:.5rem;display:grid}@media (width<=640px){.decompose-parts{border-top:0;grid-template-columns:1fr}}.decompose-part{align-content:start;gap:.3rem;display:grid}.decompose-part-name{background:var(--card);border:2px solid var(--brand);text-align:center;border-radius:6px;padding:.3rem .5rem;font-size:.9rem;font-weight:600}.decompose-leaf{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;font-size:.82rem}.decompose-leaf.right{border-color:var(--meadow)}.decompose-leaf.wrong{border-color:var(--ember);background:#fff0ec}.login-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}@media (width<=640px){.login-layout{grid-template-columns:1fr}}.login-form{align-content:start;gap:.5rem;display:grid}.login-form label{color:var(--muted);gap:.2rem;font-size:.85rem;display:grid}.login-form input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem}.login-hash{word-break:break-all;font-size:.9rem}.login-file pre{color:#d9e2ec;white-space:pre-wrap;background:#0d131b;border-radius:8px;margin:0 0 .5rem;padding:.5rem .7rem;font-size:.85rem}.login-row.match{color:#ffd6c2;font-weight:700}.wifi-controls{gap:.5rem;margin-bottom:.75rem;display:grid}.wifi-controls label{font-size:.92rem;display:block}.wifi-controls input[type=range]{width:100%;max-width:28rem;margin-top:.15rem;display:block}.wifi-controls .checkbox{align-items:center;gap:.4rem;display:flex}.wifi-readout{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}@media (width<=640px){.wifi-readout{grid-template-columns:1fr}}.wifi-card{border:1px solid var(--line);background:var(--card);border-radius:10px;align-items:center;gap:.9rem;padding:.6rem .8rem;display:flex}.wifi-bars{flex:none;align-items:flex-end;gap:3px;width:2.4rem;height:2.4rem;display:flex}.wifi-bar{background:var(--line);border-radius:2px;flex:1;transition:background .2s}.wifi-bar.on{background:var(--meadow)}.wifi-cable{background:var(--brand);border-radius:4px;flex:none;width:2.4rem;height:.5rem}.al-columns{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));align-items:start;gap:1rem;display:grid}.al-table{width:100%;font-size:.9rem}.al-table th,.al-table td{text-align:left;vertical-align:top;padding:.3rem .5rem}.al-table tr.bad td{background:#fde8e8}.al-table td.bad,.mono.bad{color:#b91c1c;font-weight:700}.al-table tr.muted td,.al-table tr.muted th,.muted{color:var(--muted)}.mono{font-family:Consolas,Menlo,monospace}.al-pre{color:#e6ebf2;white-space:pre;background:#1b2430;border-radius:8px;margin:.5rem 0;padding:.6rem .8rem;font-size:.85rem;line-height:1.45;overflow-x:auto}.al-pre.bad{background:#3b1111}.al-code{box-sizing:border-box;border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);resize:vertical;border-radius:8px;padding:.5rem .6rem;font-family:Consolas,Menlo,monospace;font-size:.85rem;line-height:1.4}.al-frame{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;min-height:15rem}.al-chip{color:var(--accent);background:#eef4fb;border:1px solid #c7d7f2;border-radius:999px;padding:.1rem .55rem;font-size:.85rem;font-weight:700;display:inline-block}.al-chip.bad{color:#b91c1c;background:#fde8e8;border-color:#f3b4b4;text-decoration:line-through}.al-chip.tok-operator{color:var(--ember-dark);background:#fff4ec;border-color:#f2c9b0}.al-chip.tok-constant{background:var(--meadow-light);color:var(--meadow-ink);border-color:#b6dcc6}.al-chip.tok-keyword{color:#6d28d9;background:#efe8ff;border-color:#d6c6f7}.al-phases{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.fde-phase.on{background:var(--accent);color:#fff}.al-cells{flex-wrap:wrap;align-items:stretch;gap:.4rem;margin:.4rem 0;display:flex}.al-cell{border:1px solid var(--line);background:var(--paper);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;min-width:4.5rem;padding:.35rem .6rem;font-size:.9rem;display:inline-flex}.al-cell.num{min-width:2.6rem;font-size:1rem;font-weight:700}.al-cell.empty{color:var(--muted);min-width:2rem}.al-cell.dashed{border-style:dashed}.al-cell.top{outline:2px solid var(--accent)}.al-cell-label{color:var(--muted);letter-spacing:.02em;font-size:.7rem;font-weight:600}.al-cell-input{width:3.5rem;font:inherit;text-align:center;border:1px solid var(--line);background:#fff;border-radius:4px}.al-cell.proc-a,.al-chip.proc-a,.al-gantt-slot.proc-a,.al-timeline-task.proc-a,.al-track-cell.proc-a{color:#143f8f;background:#e6efff;border-color:#9fbdf0}.al-cell.proc-b,.al-chip.proc-b,.al-gantt-slot.proc-b,.al-timeline-task.proc-b,.al-track-cell.proc-b{color:#8a3410;background:#fff4ec;border-color:#f2c9b0}.al-cell.proc-c,.al-chip.proc-c,.al-gantt-slot.proc-c,.al-timeline-task.proc-c,.al-track-cell.proc-c{color:#1f5a3e;background:#e2f4ea;border-color:#b6dcc6}.al-cell.proc-d,.al-chip.proc-d,.al-gantt-slot.proc-d,.al-timeline-task.proc-d,.al-track-cell.proc-d{color:#4c1d95;background:#efe8ff;border-color:#d6c6f7}.al-cell.bad{color:#7f1d1d;background:#fde8e8;border-color:#f3b4b4}.al-cell.sorted{background:#e2f4ea;border-color:#2a7f5a}.al-cell.current{border-color:var(--ember-dark);outline:2px solid var(--ember-dark);background:#fff4ec}.al-cell.placed{border-color:var(--accent);outline:2px solid var(--accent);background:#e6efff}.al-cell.range{background:#f4f6fa;border-color:#9aa4b1}.al-cell.range2{background:#f4f6fa;border-style:dashed;border-color:#9aa4b1}.al-stack,.al-stack-vis{flex-direction:column;gap:.3rem;max-width:22rem;display:flex}.al-stack-vis .al-cell{text-align:left;min-height:2.4rem}.al-gantt{flex-wrap:wrap;gap:2px;margin:.4rem 0;display:flex}.al-gantt-slot{border:1px solid var(--line);border-radius:4px;flex-direction:column;align-items:center;min-width:1.9rem;padding:.2rem .1rem;font-size:.85rem;font-weight:700;display:flex}.al-gantt-slot small{color:var(--muted);font-size:.65rem;font-weight:400}.al-gantt-slot.idle{background:var(--paper);color:var(--muted)}.lmc-layout{grid-template-columns:minmax(14rem,1fr) minmax(18rem,2fr)}.lmc-memory{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.3rem;display:grid}.lmc-box{border:1px solid var(--line);background:var(--paper);border-radius:6px;grid-template-columns:auto auto 1fr;align-items:center;gap:.4rem;padding:.25rem .5rem;font-family:Consolas,Menlo,monospace;font-size:.8rem;display:grid}.lmc-box.pc{border-color:var(--ember-dark);outline:2px solid var(--ember-dark);background:#fff4ec}.lmc-box.changed{background:#e2f4ea;border-color:#2a7f5a}.lmc-addr{color:var(--muted)}.lmc-val{font-weight:700}.lmc-src{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lmc-regs td{font-family:Consolas,Menlo,monospace}.al-objects{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;margin-top:.75rem;display:grid}.al-object{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:.6rem .8rem}.al-track-list{gap:.4rem;display:grid}.al-track-row{grid-template-columns:9rem 1fr;align-items:center;gap:.5rem;display:grid}.al-track{gap:2px;display:flex}.al-track-cell{border:1px solid var(--line);background:var(--paper);text-align:center;border-radius:4px;flex:1;height:1.8rem;line-height:1.8rem}.al-wide{flex:18rem}.al-wide input{width:100%!important}.al-bits span.diff{color:#b91c1c;background:#fde8e8;font-weight:700}.al-er{flex-wrap:wrap;align-items:center;gap:.25rem;margin:.75rem 0;display:flex}.al-er-box{border:2px solid var(--accent);background:#e6efff;border-radius:8px;padding:.4rem .9rem;font-weight:700}.al-er-box.link{background:#efe8ff;border-color:#6d28d9}.al-er-line{background:var(--ink);width:4rem;height:2px;display:inline-block}.al-crow{text-align:center;width:1rem;font-size:1.2rem;font-weight:700;display:inline-block}.al-tables{flex-wrap:wrap;gap:.75rem;margin:.5rem 0;display:flex}.al-dbtable{border:1px solid var(--line);background:var(--paper);border-radius:8px;min-width:10rem;padding:.4rem .7rem}.al-dbtable ul{margin:0;padding-left:1rem;font-size:.85rem}.al-dbtable li.key{font-weight:700}.al-dbtable li.bad{color:#b91c1c}.al-schema p{margin:.2rem 0;font-size:.85rem}.al-scroll{overflow-x:auto}.al-dns-nodes{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.al-messages{margin:.5rem 0;padding-left:1.4rem;font-size:.9rem}.al-messages li.current{font-weight:600}.al-msg-from{color:var(--muted)}.al-bitstrip{flex-wrap:wrap;align-items:center;gap:.15rem;display:inline-flex}.al-bitwrap{align-items:center;display:inline-flex}.al-point{margin:0 .1rem;font-size:1.4rem;font-weight:900}.bit.sign{border-color:#6d28d9}.bit.ro{cursor:default}.bit.clk{min-width:5.5rem}.al-bitstable td{vertical-align:middle}.al-layers{flex-wrap:wrap;gap:1rem;display:flex}.al-grid-table{border-collapse:collapse}.al-grid-table td{text-align:center;border:1px solid var(--line);background:var(--paper);width:2.6rem;height:2.2rem;font-family:Consolas,Menlo,monospace}.al-grid-table td.hit{outline:2px solid var(--ember-dark);background:#fff4ec;font-weight:700}.al-chain{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.al-chain-item{align-items:center;gap:.3rem;display:inline-flex}.al-arrow{color:var(--muted);font-weight:700}.al-svg{width:100%;max-width:36rem;height:auto}.al-hash{gap:.2rem;display:grid}.al-hash-row{align-items:center;gap:.3rem;display:flex}.al-hash-row .al-cell-label{text-align:right;width:1.4rem}.al-hash-row .al-cell{min-width:3rem;padding:.2rem .5rem}.al-steps{margin:.5rem 0;padding-left:1.4rem}.al-steps li{margin:.25rem 0}.al-steps li.current .mono{font-weight:700}.al-rule{color:var(--muted);font-size:.8rem;display:block}.al-kmap{border-collapse:separate;border-spacing:4px;margin:.5rem 0}.al-kmap th{color:var(--muted);padding:.2rem .4rem;font-size:.85rem}.al-kcell{width:3.4rem;height:2.8rem;font:inherit;border:2px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;border-radius:8px;font-size:1.1rem;font-weight:700}.al-kcell.one{color:var(--ink);background:#fff}.al-kcell.sel{outline:3px solid var(--accent)}.al-kcell.g0{border-color:var(--ember-dark);background:#fff4ec}.al-kcell.g1{background:#e2f4ea;border-color:#2a7f5a}.al-kcell.g2{background:#efe8ff;border-color:#6d28d9}.al-kcell.g3{border-color:var(--accent);background:#e6efff}.al-adder td{text-align:center}.al-ff{grid-template-columns:auto auto auto;justify-content:start;align-items:center;gap:.6rem;display:grid}.al-ff-inputs,.al-ff-outputs{gap:.4rem;display:grid}.al-ff-box{border:2px solid var(--ink);background:var(--paper);border-radius:8px;padding:1.2rem 1rem;font-weight:700}.al-log{margin:.3rem 0;padding-left:1.2rem;font-size:.85rem}.al-checklist{margin:.5rem 0;padding:0;list-style:none}.al-checklist li{border-radius:6px;padding:.25rem .5rem}.al-checklist li.ok{background:#e2f4ea}.al-checklist li.bad{background:#fde8e8}.al-true{border-left:4px solid #2a7f5a}.al-false{border-left:4px solid #b91c1c}.al-timeline{gap:.3rem;margin:.5rem 0;display:grid}.al-timeline-row{grid-template-columns:4rem 1fr;align-items:center;gap:.4rem;display:grid}.al-timeline-track{border:1px solid var(--line);background:var(--paper);border-radius:6px;height:1.9rem;position:relative}.al-timeline-task{white-space:nowrap;text-overflow:ellipsis;border:1px solid;border-radius:4px;padding:0 .3rem;font-size:.7rem;line-height:1.5rem;position:absolute;top:2px;bottom:2px;overflow:hidden}.al-range{border:1px solid var(--line);background:var(--paper);border-radius:6px;height:1.6rem;margin:.5rem 0;position:relative}.al-range-live{border-left:1px solid var(--accent);border-right:1px solid var(--accent);background:#e6efff;position:absolute;top:0;bottom:0}.al-range-mid{background:var(--ember-dark);width:3px;position:absolute;top:0;bottom:0}.al-maze{gap:2px;margin:.5rem 0;display:inline-grid}.al-maze-row{gap:2px;display:flex}.al-maze-cell{border:1px solid var(--line);text-align:center;background:#fff;border-radius:4px;width:1.9rem;height:1.9rem;font-size:.85rem;font-weight:700;line-height:1.9rem}.al-maze-cell.wall{background:#1b2430;border-color:#1b2430}.al-maze-cell.path{color:#fff;background:#2a7f5a}.al-maze-cell.dead{background:#d9dee5}.al-maze-cell.here{outline:3px solid var(--ember-dark)}.al-memory{flex-wrap:wrap;align-items:flex-start;gap:.6rem;display:flex}.al-dbg-code{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.3rem 0;font-size:.85rem}.al-dbg-line{grid-template-columns:1.6rem 1.6rem 1fr;align-items:center;padding:.1rem .4rem;display:grid}.al-dbg-line.active{background:#fff4ec}.al-dbg-no{color:var(--muted);font-size:.75rem}.al-bp{font:inherit;color:#d9dee5;cursor:pointer;background:0 0;border:none;padding:0;line-height:1}.al-bp.on{color:#b91c1c}.al-watch{color:var(--muted);gap:.2rem;font-size:.85rem;display:grid}.al-watch input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem}.al-inline{align-items:center;gap:.3rem;display:inline-flex!important}.widget-row input[type=range]{width:12rem}@media (width<=600px){.lmc-layout,.al-track-row{grid-template-columns:1fr}}.widget-row label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:.35rem;display:inline-flex}.widget-fp .al-columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.widget-fp .al-bitstrip{flex-wrap:nowrap}.widget-fp .bit{width:2rem;height:2rem;font-size:1rem}.al-columns.al-graph{grid-template-columns:minmax(0,3fr) minmax(12rem,2fr)}@media (width<=40rem){.widget-fp .al-columns,.al-columns.al-graph{grid-template-columns:1fr}}.book-body dfn.term-defined{cursor:help;border-bottom-style:dotted;border-radius:2px}.book-body dfn.term-defined:hover,.book-body dfn.term-defined:focus-visible{background:#e6efff;outline:none}.book-body dfn.term-defined:focus-visible{box-shadow:0 0 0 3px var(--focus)}.term-tip{z-index:80;background:var(--card);max-width:22rem;color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--spark);pointer-events:none;border-radius:8px;padding:.6rem .8rem;font-size:.92rem;line-height:1.45;position:fixed;box-shadow:0 8px 24px #0e1b2e2e}.term-tip strong{display:block}.term-tip-other{color:var(--muted);margin-top:.1rem;display:block}.term-tip p{margin:.3rem 0 0}.book-gallery{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;margin:1.25rem 0;display:grid}.book-gallery .book-figure{margin:0}.book-gallery .book-figure.photo img{object-fit:contain;background:#fff;width:100%;height:11rem;max-height:none}.book-gallery .book-figure figcaption{font-size:.82rem}.al-scenario{background:var(--paper);border-left:4px solid var(--group,var(--accent));border-radius:6px;margin:.25rem 0 .75rem;padding:.6rem .8rem;font-size:1.02rem}.al-scenario .al-cell-label{margin-bottom:.2rem;display:block}.al-choices{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.al-choice.right{background:var(--meadow-light);border-color:var(--meadow);color:var(--meadow-ink);font-weight:700}.al-choice.wrong{color:#7f1d1d;background:#fde8e8;border-color:#b91c1c}.al-choice.dim{opacity:.55}.al-warn{color:#92400e;font-weight:600}.widget-brute-force input[type=range]{width:14rem}.al-canvas-figure{margin:0}.al-pixel-canvas{width:100%;max-width:24rem;image-rendering:pixelated;border:1px solid var(--line);background:#fff;border-radius:6px}.al-canvas-figure figcaption{color:var(--muted);margin-top:.3rem;font-size:.85rem}.race-lanes{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:.75rem;margin:.5rem 0;display:grid}.race-lane{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.4rem .6rem .5rem}.race-lane.done{border-color:var(--meadow);background:#f3faf6}.race-lane-head{flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;margin-bottom:.3rem;font-size:.85rem;display:flex}.race-counts{color:var(--muted)}.race-bars{background:var(--paper);border-radius:6px;align-items:flex-end;gap:2px;height:7rem;padding:.2rem;display:flex}.race-bar{background:#9fbdf0;border-radius:2px 2px 0 0;flex:1;min-width:2px;transition:height .12s linear}.race-bar.comparing{background:#f4c542}.race-bar.moving{background:var(--ember)}.race-bar.sorted{background:var(--meadow)}@media (prefers-reduced-motion:reduce){.race-bar{transition:none}}
