@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;450;500;550;600;650;700;750&display=swap";:root{color:#27332b;font-synthesis:none;--accent:#52713c;--accent-dark:#34512a;--accent-light:#edf3e5;--muted:#657165;--border:#dfe5db;--pointer:#81938a;--mono:"DM Mono", ui-monospace, SFMono-Regular, monospace;background:#f7f8f5;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #7c9e62}h1,h2,h3,p{margin:0}h2{letter-spacing:-.2px;font-size:14px;font-weight:650}.icon{flex-shrink:0;width:18px;height:18px}[hidden]{display:none!important}.skip-link{z-index:20;background:var(--accent-dark);color:#fff;clip-path:inset(50%);border-radius:8px;padding:12px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{clip-path:none;top:12px}.sidebar{border-right:1px solid var(--border);z-index:5;background:#eff2eb;flex-direction:column;width:224px;padding:31px 16px 20px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{letter-spacing:-1.3px;align-items:center;gap:10px;padding:0 10px;font-size:26px;font-weight:750;display:flex}.brand-light{color:#6b7d61;font-weight:450}.brand small{font:8px var(--mono);letter-spacing:.9px;color:#66765e;margin-top:7px;display:block}.brand-symbol{width:33px;height:36px;color:var(--accent-dark);background:#dce7ce;border:1px solid #cfdbbf;border-radius:9px;flex-shrink:0;place-items:center;display:grid;transform:rotate(-6deg)}.brand-symbol .icon{width:24px;height:24px}.sidebar-section{font:9px var(--mono);letter-spacing:1.2px;color:#68775e;justify-content:space-between;gap:10px;margin:42px 12px 14px;display:flex}.structure-nav{gap:7px;display:grid}.structure-button{text-align:left;color:#64715c;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:11px;width:100%;padding:13px 11px;display:flex}.structure-button>.icon{width:20px;height:20px}.structure-button>span:nth-child(2){flex:1;font-weight:600}.structure-button small{margin-top:5px;font-size:10px;font-weight:400;display:block}.structure-button:hover{background:#e6ecdf}.structure-button.selected{color:var(--accent-dark);background:#fff;border-color:#d9e2d0;box-shadow:0 2px 5px #33492506}.nav-number{font:9px var(--mono);color:#748269}.lesson-navigation .sidebar-section{margin-top:36px}.lesson-link{text-align:left;color:#5d6c55;background:0 0;border:0;border-radius:8px;align-items:center;gap:11px;width:100%;padding:12px;font-size:12px;display:flex}.lesson-link.selected{color:#324d25;background:#e1e9d7}.lesson-link:hover{background:#e5ecdc}.lesson-link small{color:#68765f;margin-top:4px;font-size:10px;display:block}.lesson-marker{width:25px;height:25px;font:10px var(--mono);border:1px solid #bac8ae;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.lesson-link.selected .lesson-marker,.lesson-marker.done{background:var(--accent);color:#fff;border-color:var(--accent)}.lesson-marker .icon{width:13px;height:13px}.path-note{color:#77836e;border-top:1px solid #dbe3d3;margin:21px 12px;padding-top:19px;font-size:12px;line-height:1.8}.sidebar-bottom{margin-top:auto;padding:38px 10px 0}.plain{background:0 0;border:0;padding:0}.sidebar-help,.labs-back{color:#5e6b55;align-items:center;gap:8px;font-size:11px;display:flex}.sidebar-help{width:100%}kbd{font:10px var(--mono);background:#f9fbf6;border:1px solid #d1dac7;border-radius:4px;place-items:center;padding:3px 6px;display:inline-grid}.sidebar-help kbd{margin-left:auto}.labs-back{margin:23px 0}.labs-back .icon{width:15px}.labs-back .icon:last-child{margin-left:auto}.version{font:8px var(--mono);color:#6b7961;letter-spacing:.4px}.main-shell{margin-left:224px}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:62px;padding:0 32px;display:flex}.breadcrumbs{color:#707d69;align-items:center;gap:13px;font-size:12px;display:flex}.breadcrumbs strong{color:#394c33;font-weight:550}.breadcrumbs>span{color:#b1bcaa}.topbar-right{align-items:center;gap:20px;display:flex}.local-badge{color:#65765b;align-items:center;gap:7px;font-size:11px;display:flex}.local-badge i{background:#84a46a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #e8efdf}main{max-width:1536px;margin:0 auto;padding:28px 32px 0}main:focus{outline:none}.page-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.eyebrow{font:9px var(--mono);letter-spacing:1.1px;color:#667b59}h1{letter-spacing:-2px;margin:9px 0 10px;font-size:44px;font-weight:550;line-height:1.15}.heading-dot{color:#8aa56a}.page-heading p{color:#65725f;max-width:540px;font-size:13px;line-height:1.7}.outline-button,.guide-reset{white-space:nowrap;color:#536549;background:#fff;border:1px solid #d6dfce;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 13px;font-size:12px;font-weight:500;display:inline-flex}.outline-button:hover,.guide-reset:hover{background:#f0f5e9;border-color:#a5b795}.outline-button .icon,.guide-reset .icon{width:15px;height:15px}.compare-button{align-self:end;margin-bottom:2px}.learning-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:18px 0 12px;display:flex}.mode-switch{background:#edf0e8;border:1px solid #e0e5db;border-radius:9px;gap:3px;padding:4px;display:inline-flex}.mode-switch button{color:#68755f;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:8px 13px;font-size:12px;display:inline-flex}.mode-switch button.selected{color:#3e5733;background:#fff;border-color:#dde4d5;box-shadow:0 1px 3px #1c321c08}.mode-switch .icon{width:15px;height:15px}.session-note{font:10px var(--mono);color:#748168}.guide-banner{background:#eaf0df;border:1px solid #dae4ca;border-radius:12px;align-items:center;gap:24px;padding:18px 24px;display:flex}.guide-copy{flex:1;min-width:0}.guide-copy .eyebrow{color:#5e754b;font-size:8px}.guide-copy h2{letter-spacing:-.45px;color:#304824;margin:8px 0 6px;font-size:19px;font-weight:550;line-height:1.4}.guide-copy p{color:#5e7050;font-size:12px;line-height:1.65}.guide-reset{background:#f6f9ee;font-size:11px}.guide-illustration{align-items:center;gap:5px;padding:12px 0;display:flex;position:relative}.guide-illustration span{width:34px;height:39px;font:13px var(--mono);color:#506643;background:#f9fbf4;border:1px solid #c4d3b0;border-radius:6px;place-items:center;display:grid;box-shadow:0 3px #d5dfc7}.guide-illustration .new-value{color:#fff;background:#637f48;border-color:#637f48;transform:translateY(-10px)rotate(-6deg);box-shadow:0 3px #c0cfac}.guide-illustration i{color:#799561;font-size:16px;font-style:normal}.guide-illustration>i:last-child{position:absolute;top:-5px;right:10px}.journey{align-items:center;gap:0;margin:18px 0 16px;padding:0;list-style:none;display:flex}.journey li{color:#718068;flex:1;align-items:center;gap:8px;font-size:11px;display:flex}.journey li:not(:last-child):after{content:"";background:#dce3d5;flex:1;height:1px;margin:0 16px}.journey li:last-child{flex:initial}.journey li>span{width:22px;height:22px;font:10px var(--mono);border:1px solid #d1dcc6;border-radius:50%;place-items:center;display:grid}.journey .current{color:#39542c;font-weight:600}.journey .current>span{background:var(--accent);border-color:var(--accent);color:#fff}.workspace{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}.visual-column,.details-column{gap:18px;min-width:0;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 4px #283c2103}.panel-heading{border-bottom:1px solid #e9ede5;justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:0 20px;display:flex}.panel-heading>div,.panel-heading h2,.operation-heading h2{align-items:center;gap:9px;display:flex}.section-number{font:10px var(--mono);color:#728565}.small-tag{font:8px var(--mono);color:#6a7a60;white-space:nowrap;letter-spacing:.6px;background:#f1f4ed;border-radius:4px;padding:5px 6px}.operation-panel{padding:18px 20px}.operation-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.operation-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-bottom:18px;display:grid}.operation-tabs:has([data-operation=reverse]){grid-template-columns:repeat(6,minmax(0,1fr))}.operation-tab{color:#617158;text-align:center;background:#f6f8f3;border:1px solid #0000;border-radius:7px;padding:8px 5px}.operation-tab strong{font-size:12px;font-weight:550}.operation-tab small{margin-top:5px;font-size:9px;line-height:1.4;display:block}.operation-tab:hover{background:#edf2e7}.operation-tab.selected{color:#365526;background:#eaf1e1;border-color:#aebf99;box-shadow:inset 0 -2px #a7bb8d}.operation-inputs{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.input-field{color:#54654b;gap:7px;width:90px;font-size:11px;display:grid}.input-field>div{background:#fbfcf9;border:1px solid #cfdac5;border-radius:7px;align-items:center;height:40px;display:flex}.input-field div>span{font:12px var(--mono);color:#7a896f;margin-left:12px}.input-field input{width:100%;min-width:0;height:100%;font:13px var(--mono);background:0 0;border:0;border-radius:6px;padding:8px}.operation-actions{gap:8px;margin-left:auto;display:flex}.run-button{color:#fff;white-space:nowrap;background:#52713c;border:1px solid #466332;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 16px;font-size:12px;font-weight:500;display:inline-flex;box-shadow:0 2px 3px #3553220d}.run-button:hover{background:#3d5c2a}.run-button .icon{width:14px;height:14px}.input-hint{color:#6e7b65;margin-top:12px;font-size:11px;line-height:1.7}.form-error{color:#a43b28;font-size:12px;line-height:1.7}.form-error:not(:empty){background:#fff6f0;border-left:2px solid #bc6a52;margin-top:10px;padding:7px 10px}.icon-button{color:#5e7252;background:0 0;border:0;border-radius:6px;place-items:center;width:34px;height:36px;padding:6px;display:inline-grid}.icon-button:not(:disabled):hover{color:var(--accent-dark);background:#eaf0e1}.canvas-tools{gap:3px!important}.canvas-tools .icon{width:16px;height:16px}.tool-divider{background:var(--border);width:1px;height:18px;margin:0 4px}.canvas-meta{justify-content:space-between;align-items:center;gap:12px;padding:19px 20px 0;display:flex}#size-label{font:10px var(--mono);color:#6f7e65;align-items:center;gap:8px;display:flex}#size-label strong{color:#3d5532;margin-left:3px;font-weight:500}.meta-separator{color:#b3bfa9}.address-toggle{color:#5d7052;cursor:pointer;align-items:center;gap:7px;font-size:10px;display:inline-flex;position:relative}.address-toggle input{z-index:1;cursor:pointer;opacity:0;width:28px;height:16px;margin:0;position:absolute;left:0}.switch-track{background:#c9d2c1;border-radius:10px;flex-shrink:0;width:28px;height:16px;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:10px;height:10px;transition:transform .2s;position:absolute;top:3px;left:3px}.address-toggle input:checked+.switch-track{background:#64834b}.address-toggle input:checked+.switch-track:after{transform:translate(12px)}.address-toggle input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:4px}.canvas-scroll{scrollbar-width:thin;scrollbar-color:#becdb0 transparent;background:radial-gradient(#c6d1bb70 .8px,#0000 .8px) 50%/18px 18px;padding:0 12px;overflow-x:auto}.diagram{width:100%;padding-top:6px}.scene-context{background:linear-gradient(120deg,#f3f7ec,#fbfcf9);border:1px solid #e1e9d9;border-radius:10px;align-items:center;gap:12px;margin:18px 20px 0;padding:13px 15px;display:flex}.scene-action-icon{color:#527539;width:35px;height:35px;font:22px var(--mono);background:#e5eed9;border:1px solid #cad9bc;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.scene-action-icon.copy,.scene-action-icon.allocate{color:#906126;background:#fff1cf;border-color:#ead6a5}.scene-action-icon.remove{color:#a45037;background:#fff0e6;border-color:#ebcab9}.scene-action-icon.done{color:#2f7158;background:#e4f2e9;border-color:#bfdacb}.scene-context strong{color:#35522c;font-size:13px;font-weight:650}.scene-context p{color:#6b7b61;margin-top:3px;font-size:11px;line-height:1.7}.diagram svg{width:100%;min-width:740px;max-width:1000px;height:360px;margin:0 auto;display:block;overflow:visible}.diagram .linked-svg{min-width:784px;max-width:none}.dimensional-scene .memory-platform{fill:#e8eee1;stroke:#d9e2d0;stroke-width:1px}.dimensional-scene .slot-well{fill:#e4ebdc;stroke:#b8c8aa;stroke-width:1.2px}.dimensional-scene .empty .slot-well{fill:#f4f7ee;stroke:#bcccad;stroke-dasharray:5 5}.dimensional-scene .tile{transform-box:fill-box;transform-origin:50%}.dimensional-scene .tile-face{fill:url(#tile-light);stroke:#a4b995;stroke-width:1.3px}.dimensional-scene .tile-depth{fill:#b5c7a4;stroke:#9cb48b;stroke-width:1.2px}.dimensional-scene .tile-shadow{fill:#364a2721}.dimensional-scene .tile-shine{fill:none;stroke:#ffffffb3;stroke-width:2px;stroke-linecap:round}.dimensional-scene .cell-value,.dimensional-scene .ghost-value,.dimensional-scene .staged-value{font:24px var(--mono);fill:#3b552e;font-weight:500}.dimensional-scene .empty .cell-value{fill:#a4b596;font-size:20px}.dimensional-scene .empty-label{font:9px var(--mono);fill:#829673}.dimensional-scene .visited .tile-face{fill:#f3efdf;stroke:#c9bc95}.dimensional-scene .visited .tile-depth{fill:#d7cbb0;stroke:#c8b993}.dimensional-scene .changed .tile-face{fill:#dff0e8;stroke:#82ae97}.dimensional-scene .changed .tile-depth{fill:#9ebfae;stroke:#82a58f}.dimensional-scene .active .tile-face,.dimensional-scene .flying-tile .tile-face{fill:url(#tile-active);stroke:#45652e}.dimensional-scene .active .tile-depth,.dimensional-scene .flying-tile .tile-depth{fill:#355525;stroke:#2d4b1d}.dimensional-scene .active .cell-value,.dimensional-scene .flying-tile .ghost-value{fill:#fff}.dimensional-scene .active .node-field-label{fill:#ecf2e6}.dimensional-scene .active .node-divider{stroke:#8da977}.dimensional-scene .active .pointer-dot{fill:#e6f0c9;stroke:#355328}.dimensional-scene .found .tile-face{fill:#3e8468;stroke:#2c6b50}.dimensional-scene .found .tile-depth{fill:#296148;stroke:#215139}.dimensional-scene .found .cell-value{fill:#fff}.dimensional-scene .incoming-tile .tile-face,.dimensional-scene .pending .tile-face,.dimensional-scene .new-tile .tile-face{fill:url(#tile-new);stroke:#c49e4f}.dimensional-scene .incoming-tile .tile-depth,.dimensional-scene .pending .tile-depth,.dimensional-scene .new-tile .tile-depth{fill:#c4a258;stroke:#b59247}.dimensional-scene .pending .cell-value,.dimensional-scene .pending .node-field-label,.dimensional-scene .new-tile text,.dimensional-scene .staged-value{fill:#76521b}.dimensional-scene .pending .pointer-dot{fill:#a88337;stroke:none}.dimensional-scene .removing .tile-face,.dimensional-scene .departing-tile .tile-face{fill:#fbe2d5;stroke:#c78a6b}.dimensional-scene .removing .tile-depth,.dimensional-scene .departing-tile .tile-depth{fill:#cea086;stroke:#b88363}.dimensional-scene .removing .cell-value,.dimensional-scene .departing-tile .ghost-value{fill:#8a4b2c}.dimensional-scene .destination-cell .slot-well{stroke:#a88638;stroke-width:2px;stroke-dasharray:5 4}.dimensional-scene .chosen .tile-face{stroke:#648b46;stroke-width:2.4px}.dimensional-scene [data-index]{cursor:pointer}.dimensional-scene [data-index]:hover .tile-face,.dimensional-scene [data-index]:focus-visible .tile-face{stroke:#456c2c;stroke-width:3px}.dimensional-scene .index-label{font:12px var(--mono);fill:#617b50}.dimensional-scene .address-label{font:9px var(--mono);fill:#7b8a70}.dimensional-scene .scene-caption{font:9px var(--mono);fill:#708263;letter-spacing:.35px}.dimensional-scene .node-identity{font:9px var(--mono);fill:#6c835e}.dimensional-scene .node-field-label{font:9px var(--mono);fill:#6f865f}.dimensional-scene .node-divider{stroke:#b8cba8;stroke-width:1px}.dimensional-scene .pointer-dot{fill:#71925a;stroke:#577b3e;stroke-width:1px}.dimensional-scene .node-label{font:12px var(--mono);fill:#526d40}.dimensional-scene .pointer-path{fill:none;stroke:#859d77;stroke-width:2.3px;animation:none}.dimensional-scene .pointer-path.focused{stroke:#587c3d;stroke-width:3px;stroke-dasharray:none}.dimensional-scene .pointer-path.detached{stroke:#bd927c;stroke-dasharray:5 5}.dimensional-scene .old-connection{stroke:#bd927c;stroke-width:2px;stroke-dasharray:5 5}.dimensional-scene .traversal-particle{fill:#527b35;stroke:#f0f6e9;stroke-width:3px;filter:drop-shadow(0 0 5px #729a57)}.dimensional-scene .copy-guide{fill:none;stroke:#ac8c45;stroke-width:1.5px;stroke-dasharray:4 4}.dimensional-scene .scene-badge{transform-box:fill-box;transform-origin:50%}.dimensional-scene .scene-badge rect{fill:#edf3e5;stroke:#b8cba7;stroke-width:1px}.dimensional-scene .scene-badge text{font:10px var(--mono);fill:#4a6c34}.dimensional-scene .scene-badge.head rect,.dimensional-scene .scene-badge.cursor rect,.dimensional-scene .pointer-current rect{fill:#56783d;stroke:#46652f}.dimensional-scene .scene-badge.head text,.dimensional-scene .scene-badge.cursor text,.dimensional-scene .pointer-current text{fill:#fff}.dimensional-scene .scene-badge.destination rect,.dimensional-scene .pointer-new rect{fill:#fff1ce;stroke:#dcc186}.dimensional-scene .scene-badge.destination text,.dimensional-scene .pointer-new text{fill:#8d6929}.dimensional-scene .pointer-prev rect{fill:#edf0f9;stroke:#bac8e0}.dimensional-scene .pointer-prev text{fill:#586c94}.dimensional-scene .pointer-next rect{fill:#faedda;stroke:#dfc49c}.dimensional-scene .pointer-next text{fill:#9a7337}.dimensional-scene .scene-badge.success rect{fill:#e2f2e8;stroke:#95baa3}.dimensional-scene .scene-badge.success text{fill:#316d4b}.dimensional-scene .null-terminal rect{fill:#f3f4ef;stroke:#cfd9c6}.dimensional-scene .null-terminal text{font:12px var(--mono);fill:#7f8b76}.dimensional-scene .allocation-divider{stroke:#d9e2d0;stroke-dasharray:6 6}.dimensional-scene .allocation-caption{font:8px var(--mono);fill:#8d9b7f;letter-spacing:1px}.dimensional-scene .allocation-placeholder rect{fill:#f6f4e9;stroke:#d8cbab;stroke-dasharray:5 5}.dimensional-scene .allocation-placeholder text{font:10px var(--mono);fill:#ad9568}.motion-ghost{pointer-events:none}.legend .legend-new{background:#f6e0a2;border-color:#c49e4f}.canvas-footer{justify-content:space-between;align-items:center;gap:12px;padding:13px 20px 17px;display:flex}.legend{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.legend span{color:#68785d;align-items:center;gap:6px;font-size:10px;display:flex}.legend i{background:#fff;border:1px solid #b9c9ae;border-radius:3px;width:9px;height:9px}.legend .legend-active{background:#e5efcf;border-color:#64863f}.legend .legend-visited{background:#f2eee5;border-color:#c6bca5}.legend .legend-change{background:#e8f3ef;border-color:#6d9c87}.scroll-hint{color:#718168;white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:flex}.scroll-hint .icon{width:13px;height:13px}.live-explanation{background:#f0f5e9;border-top:1px solid #dee8d3;min-height:112px;padding:17px 20px}.explanation-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}#step-title{color:#3d592f;font-size:12px;font-weight:650}.status-badge{font:9px var(--mono);color:#587144;background:#fff;border:1px solid #d3dfc6;border-radius:4px;padding:4px 7px}.status-badge.complete{color:#2e6850;background:#e7f3ec;border-color:#b4d1bd}#narration{color:#566e46;font-size:13px;line-height:1.75}.pointer-state:empty{display:none}.pointer-state{flex-wrap:wrap;gap:6px;margin-top:11px;display:flex}.pointer-state span{font:10px var(--mono);color:#708663;background:#fff;border:1px solid #d5e1cb;border-radius:4px;padding:6px 8px}.pointer-state strong{color:#3f5d30;font-weight:400}.playback{background:#fafcf7;border-top:1px solid #dfe7d7;border-bottom:1px solid #dfe7d7;align-items:center;gap:16px;padding:13px 18px;display:flex}.playback-buttons{align-items:center;gap:5px;display:flex}.playback-buttons .icon-button{width:30px;height:36px}.playback-buttons .icon{width:16px;height:16px}.play-button{color:#fff;background:#52713c;border:1px solid #4f6b3d;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.play-button:hover{background:#3f5d2d}.play-button .icon{width:16px;height:16px}.timeline-group{flex:1;align-items:center;gap:12px;min-width:0;display:flex}#timeline{appearance:none;cursor:pointer;background:linear-gradient(to right, #78985a var(--progress,0%), #dce5d3 var(--progress,0%));border-radius:4px;flex:1;min-width:30px;height:5px;margin:12px 0}#timeline:disabled{cursor:default}#timeline::-webkit-slider-thumb{appearance:none;background:#617f47;border:3px solid #f8fbf3;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 1px #78985a}#timeline::-moz-range-thumb{background:#617f47;border:3px solid #f8fbf3;border-radius:50%;width:9px;height:9px}#step-count{font:10px var(--mono);color:#637655;white-space:nowrap}#speed{font:11px var(--mono);color:#536c43;cursor:pointer;background:#fff;border:1px solid #d3dfc7;border-radius:5px;width:60px;padding:8px 5px}.result-summary{background:#fbfdf7;border-top:1px solid #dce7d2;padding:21px}.result-heading{color:#436333;align-items:center;gap:8px;display:flex}.result-heading>.icon{background:#e3efd6;border-radius:50%;width:25px;height:25px;padding:5px}.result-heading h3{font-size:14px;font-weight:600}.before-after{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 12px;display:grid}.before-after>div{background:#fff;border:1px solid #dce5d3;border-radius:7px;min-width:0;padding:12px}.before-after span{font:9px var(--mono);text-transform:uppercase;color:#6a7e5c;margin-bottom:7px;display:block}.before-after code{font:11px/1.7 var(--mono);color:#436333;overflow-wrap:anywhere;display:block}.result-summary>p{color:#5c7250;font-size:12px;line-height:1.8}.result-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;display:flex}.insight{align-items:flex-start;gap:13px;padding:20px 4px;display:flex}.insight-icon{color:#68814e;background:#ecf2e2;border:1px solid #dce5d2;border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.insight .eyebrow{font-size:8px}.insight h3{color:#425e32;margin:7px 0;font-size:14px;font-weight:550}.insight p{color:#65775b;font-size:12px;line-height:1.9}.steps-panel .panel-heading{padding:0 16px}.steps-panel h2{font-size:13px}.step-trace{scrollbar-width:thin;scrollbar-color:#c0cfb3 transparent;min-height:234px;max-height:290px;padding:12px;position:relative;overflow-y:auto}.step-trace ol{margin:0;padding:0;list-style:none}.trace-step{text-align:left;color:#73806a;background:0 0;border:1px solid #0000;border-radius:7px;align-items:flex-start;gap:10px;width:100%;padding:11px 8px;font-size:11px;line-height:1.7;display:flex}.trace-marker{width:22px;height:22px;font:9px var(--mono);border:1px solid #d4deca;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.trace-marker .icon{width:12px;height:12px}.trace-step.current{color:#3c5b2b;background:#edf4e3;border-color:#d9e6cb}.trace-step.current .trace-marker{color:#fff;background:#64824b;border-color:#64824b}.trace-step.past{color:#5e7451}.trace-step:hover{background:#f1f5eb}.trace-empty{text-align:center;padding:19px 8px}.trace-empty-icon{color:#78915f;background:#f0f4e9;border:1px solid #dee8d3;border-radius:12px;place-items:center;width:40px;height:40px;display:inline-grid}.trace-empty h3{color:#465f38;margin:15px 0 8px;font-size:13px;font-weight:550}.trace-empty p{color:#6d7c64;font-size:11px;line-height:1.8}.trace-empty>div{font:8px var(--mono);color:#70845f;justify-content:center;align-items:center;gap:7px;margin-top:19px;display:flex}.trace-empty>div .icon{width:11px;height:11px}.metrics-panel{padding:19px}.metrics-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.metrics-heading .icon{color:#83996e;width:16px;height:16px}.complexity-row{color:#5c7351;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.complexity-row strong{font:12px var(--mono);color:#476433;background:#edf4e4;border:1px solid #d9e5cc;border-radius:5px;padding:6px 10px}.complexity-meaning{color:#6a7b61;margin:10px 0 17px;font-size:11px;line-height:1.8}.counters{border-top:1px solid #e4eadc;grid-template-columns:repeat(3,1fr);margin-bottom:16px;padding-top:17px;display:grid}.counters>div{border-right:1px solid #e4eadc;flex-direction:column;align-items:center;gap:7px;display:flex}.counters>div:last-child{border:0}.counters strong{font:25px var(--mono);color:#476433}.counters span{color:#6b805d;font-size:10px}.cost-details summary{cursor:pointer;color:#5a714e;padding:6px 0;font-size:10px}.cost-details p{color:#697e5d;margin-top:8px;font-size:11px;line-height:1.9}.execution-panel>summary{cursor:pointer;color:#455e36;padding:18px 16px;font-size:13px;font-weight:550}.execution-panel>summary .icon{vertical-align:middle;width:15px;height:15px;margin:0 5px}.execution-panel>summary .small-tag{margin-left:7px;font-size:7px}.code-lines{scrollbar-width:thin;border-top:1px solid #e5ecde;padding:15px 0;position:relative;overflow-x:auto}.code-line{border-left:2px solid #0000;align-items:center;gap:11px;width:max-content;min-width:100%;min-height:29px;padding:0 13px;display:flex;position:relative}.code-line.current{background:#edf4e2;border-left-color:#75994f}.line-number{font:9px var(--mono);color:#829478;text-align:right;min-width:9px}.code-line code{font:10px/1.7 var(--mono);color:#506b40;white-space:pre}.code-keyword{color:#9a643e}.line-arrow{font:12px var(--mono);color:#6e8d50;margin-left:auto;padding-left:5px}.code-caption{color:#6b805c;background:#f8faf4;border-top:1px solid #e7eddf;padding:12px 16px;font-size:10px;line-height:1.6}.page-footer{border-top:1px solid var(--border);color:#738268;justify-content:space-between;align-items:center;gap:16px;margin-top:25px;padding:20px 0 25px;font-size:10px;line-height:1.7;display:flex}dialog{color:#39542d;background:#fffefa;border:1px solid #d3dfc8;border-radius:14px;width:min(560px,100% - 32px);max-height:calc(100dvh - 48px);padding:32px;overflow-y:auto;box-shadow:0 24px 100px #26351e33}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#26341e66}#modal-content{position:relative}.modal-close{position:absolute;top:-17px;right:-15px}dialog h2{letter-spacing:-.7px;margin:12px 0;font-size:26px;font-weight:500;line-height:1.3}dialog p{color:#627553;font-size:13px;line-height:1.9}#data-form{margin-top:22px}#data-form>label{color:#536e42;margin-bottom:9px;font-size:12px;display:block}.data-input{color:#405e2f;width:100%;font:14px var(--mono);background:#f9fbf5;border:1px solid #cddcbe;border-radius:7px;padding:14px}.presets{flex-wrap:wrap;align-items:center;gap:7px;margin:18px 0 24px;display:flex}.presets>span{color:#667b58;margin-right:5px;font-size:11px}.presets button{color:#4e6a3d;background:#f4f8ed;border:1px solid #d8e3cd;border-radius:5px;padding:8px;font-size:11px}.shortcut-list{margin:25px 0}.shortcut-list>div{color:#587148;border-bottom:1px solid #e3ebda;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:13px;display:flex}.comparison-wrap{margin:22px 0 16px;overflow-x:auto}.comparison{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.comparison td,.comparison th{border-bottom:1px solid #dce7d1;padding:13px 8px}.comparison th{color:#4b6839;background:#f0f6e7;font-weight:550}.comparison td{color:#617a50}.comparison td:not(:first-child){font-family:var(--mono);color:#4c6938}.comparison-footnote{font-size:11px}.compare-takeaway{color:#5f794c;background:#f0f6e6;border-left:2px solid #a1b782;margin:20px 0;padding:15px;font-size:12px;line-height:1.8}@keyframes dash-flow{to{stroke-dashoffset:-22px}}@media (width>=1600px){.workspace{grid-template-columns:minmax(0,1fr) 330px}.diagram svg{height:390px}}@media (width<=1200px){.sidebar{width:202px;padding-left:12px;padding-right:12px}.main-shell{margin-left:202px}main{padding:25px 24px 0}.topbar{padding:0 24px}.workspace{grid-template-columns:minmax(0,1fr) 280px;gap:16px}.guide-illustration{display:none}.guide-banner{gap:15px;padding:20px}.operation-panel{padding:17px}.operation-tab small{display:none}.operation-tabs{gap:4px}.operation-actions{flex:100%;margin-left:0}.operation-actions>button{flex:1}.input-field{width:100px}.operation-tabs:has([data-operation=reverse]){grid-template-columns:repeat(3,1fr)}.canvas-meta{gap:8px;padding:17px 15px 0}.canvas-footer{flex-wrap:wrap;padding:12px 15px}.playback{flex-wrap:wrap;gap:10px;padding:12px}.playback-buttons{gap:2px}.timeline-group{gap:8px}#speed{width:53px}.compare-button{font-size:11px}}@media (width<=1040px){.workspace{grid-template-columns:minmax(0,1fr)}.details-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.steps-panel{grid-row:span 2}.execution-panel{grid-column:2}.step-trace{max-height:535px}.operation-actions{flex:initial;margin-left:auto}.operation-tab small{display:block}.operation-tabs:has([data-operation=reverse]){grid-template-columns:repeat(6,minmax(0,1fr))}.session-note{display:none}.guide-banner{align-items:flex-start}.guide-reset{padding:9px}.page-heading{flex-wrap:wrap;gap:14px}.page-heading p{max-width:none}.compare-button{align-self:initial}.journey li{gap:6px;font-size:10px}.journey li:not(:last-child):after{margin:0 9px}.legend{gap:15px}}@media (width<=700px){.sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;padding:17px 18px 0;position:static;overflow:visible}.brand{padding:0 3px;font-size:25px}.brand small{margin-top:4px;font-size:7px}.brand-symbol{width:30px;height:32px}.sidebar-section,.sidebar-bottom,.path-note{display:none}.structure-nav{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.structure-button{border-radius:8px 8px 0 0;padding:11px}.structure-button small{display:none}.structure-button.selected{background:#f9fbf5;border-bottom-width:2px;border-bottom-color:#709151}.lesson-navigation{background:#f9fbf6;border-top:1px solid #e1e8d9;margin:0 -18px;padding:0 12px}.lesson-navigation nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:8px 0;display:grid}.lesson-link{gap:5px;padding:8px 5px;font-size:10px}.lesson-link small{display:none}.lesson-marker{width:21px;height:21px;font-size:9px}.main-shell{margin-left:0}.topbar{height:46px;padding:0 18px}.breadcrumbs{gap:10px;font-size:10px}.local-badge{font-size:9px}.topbar-right{gap:8px}.topbar .icon-button{width:28px;height:32px}main{padding:23px 16px 0}h1{font-size:39px}.eyebrow{font-size:8px}.page-heading{gap:12px}.page-heading p{font-size:12px}.compare-button{min-height:36px;padding:8px 11px;font-size:11px}.learning-toolbar{margin:20px 0 12px}.mode-switch{width:100%}.mode-switch button{flex:1;padding:9px 6px;font-size:11px}.guide-banner{padding:17px;display:block}.guide-copy h2{font-size:18px}.guide-copy p{font-size:12px}.guide-reset{min-height:36px;margin-top:13px}.journey{margin:20px 0 16px}.journey li{align-items:flex-start;font-size:10px;line-height:1.5}.journey li>span{flex-shrink:0;width:20px;height:20px}.journey li:not(:last-child):after{display:none}.journey li:last-child{flex:1}.workspace,.visual-column{gap:16px}.operation-panel{padding:16px 14px}.operation-heading{margin-bottom:13px}.operation-heading h2{font-size:13px}.operation-tabs{gap:4px;margin-bottom:15px}.operation-tab{padding:10px 3px}.operation-tab strong{font-size:11px}.operation-tab small{display:none}.operation-tabs:has([data-operation=reverse]){grid-template-columns:repeat(3,minmax(0,1fr))}.operation-inputs{gap:10px}.input-field{width:calc(50% - 5px)}.operation-actions{flex:100%;margin:0}.operation-actions>button{flex:1;min-height:44px;padding:10px 8px;font-size:12px}.panel-heading{min-height:56px;padding:0 14px}.panel-heading h2{gap:7px;font-size:13px}.canvas-tools{gap:0!important}.canvas-tools .icon-button{width:30px;height:36px}.tool-divider{margin:0 2px}.canvas-meta{flex-wrap:wrap;gap:12px;padding:17px 14px 5px}#size-label{gap:7px;font-size:9px}.address-toggle{font-size:9px}.canvas-scroll{padding:0 8px}.diagram svg{min-width:740px}.scene-context{gap:10px;margin:16px 14px 0;padding:12px}.scene-context strong{font-size:12px}.scene-context p{font-size:10px}.diagram .linked-svg{min-width:700px}.canvas-footer{gap:10px;padding:12px 14px}.legend{gap:11px}.legend span{gap:4px;font-size:9px}.live-explanation{min-height:130px;padding:16px}#narration{font-size:12px}#step-title{font-size:11px}.playback{gap:10px;padding:12px}.playback-buttons{gap:2px}.playback-buttons .icon-button{width:30px;height:40px}.play-button{width:40px;height:40px}.timeline-group{flex:100%;order:3}#speed{height:36px;margin-left:auto}#timeline{height:6px;margin:10px 0}#step-count{text-align:right;min-width:42px}.result-summary{padding:17px}.before-after{grid-template-columns:1fr}.result-actions .outline-button,.result-actions .run-button{font-size:11px}.insight{padding:12px 2px}.details-column{grid-template-columns:1fr;gap:16px}.steps-panel{grid-row:auto}.execution-panel{grid-column:auto}.step-trace{min-height:210px;max-height:290px}.trace-step{font-size:12px}.code-line code{font-size:11px}.page-footer{flex-wrap:wrap;gap:8px;margin-top:23px;font-size:10px}dialog{padding:27px 22px}dialog h2{font-size:23px}.comparison{font-size:11px}.comparison td,.comparison th{padding:11px 6px}}@media (width<=360px){.local-badge{display:none}.lesson-link{gap:4px;font-size:9px}.lesson-marker{width:18px;height:18px}.small-tag{font-size:7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.operation-panel{margin-bottom:18px}.workbench{--toolbar-height:65px;scroll-margin-top:12px}.workbench-toolbar{z-index:4;background:#fafcf7;border:1px solid #d8e3cf;border-radius:10px;margin-bottom:16px;position:sticky;top:12px;box-shadow:0 3px 12px #2c421c0b}.workbench-toolbar .playback{border:0;border-radius:10px;padding:12px 16px}.workbench-toolbar .timeline-group{max-width:520px}.workbench-toolbar .setup-shortcut{background:0 0;min-height:36px;margin-left:auto;font-size:11px}.workspace-switch{display:none}.workbench .workspace{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px}.workbench .details-column{top:calc(var(--toolbar-height) + 28px);min-width:0;max-height:calc(100dvh - var(--toolbar-height) - 44px);scrollbar-width:thin;display:block;position:sticky;overflow-y:auto}.inspector-panel{overflow:hidden}.inspector-panel>.panel{box-shadow:none;border:0;border-radius:0}.inspector-panel .execution-panel{border-top:1px solid var(--border)}.inspector-panel .step-trace{min-height:175px;max-height:min(245px,28dvh);padding:9px 12px}.inspector-panel .trace-empty{padding:13px 8px}.inspector-panel .trace-empty-icon{width:32px;height:32px}.inspector-panel .trace-empty h3,.inspector-panel .trace-empty>div{margin-top:11px}.inspector-panel .code-lines{max-height:min(255px,30dvh);padding:11px 0}.inspector-panel .code-line code{font-size:11px}.inspector-panel .code-line{min-height:28px}.inspector-panel .code-caption{padding:10px 16px}.workbench .metrics-panel{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:12px 24px;display:grid}.workbench .metrics-heading{grid-column:1/-1;margin:0}.workbench .complexity-row{grid-column:1}.workbench .complexity-meaning{grid-column:1;margin:0}.workbench .counters{border:0;grid-area:2/2/4;margin:0;padding:5px 0}.workbench .cost-details{border-top:1px solid #e5ebde;grid-column:1/-1;padding-top:6px}.workbench .insight{padding-top:5px}@media (width>=1250px){.operation-panel{grid-template-columns:minmax(0,1fr) minmax(435px,.9fr);align-items:center;gap:12px 24px;display:grid}.operation-heading{grid-column:1/-1;margin:0}.operation-tabs{margin:0}.operation-panel .operation-actions{gap:6px}.operation-panel .input-hint{margin-top:8px}.operation-panel .input-field{width:72px}}@media (width>=1600px){.workbench .workspace{grid-template-columns:minmax(0,1fr) 370px}}@media (width<=1250px) and (width>=1101px){.workbench .workspace{grid-template-columns:minmax(0,1fr) 310px;gap:16px}}@media (width<=1100px){.workbench-toolbar{margin-bottom:14px;top:8px}.workbench .workspace{display:block}.workspace-switch{border-top:1px solid #dfe7d7;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px;display:grid}.workspace-switch button{color:#627757;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:9px 5px;font-size:12px;display:flex}.workspace-switch button[aria-pressed=true]{color:#38572b;background:#eaf1e2;border-color:#ccdcbc}.workspace-switch .icon{width:15px;height:15px}.workbench .details-column{max-height:none;position:static}.workbench .workspace[data-view=simulation] .details-column,.workbench .workspace[data-view=inspector] .visual-column,.workbench .workspace[data-view=cost] .details-column,.workbench .workspace[data-view=cost] .visualization,.workbench .workspace[data-view=cost] .insight{display:none}.inspector-panel .step-trace{min-height:180px;max-height:30dvh}.inspector-panel .code-lines{max-height:32dvh}.workbench-toolbar .setup-shortcut{padding:8px}}@media (width<=700px){.workbench{scroll-margin-top:8px}.workbench-toolbar .playback{gap:8px;padding:8px 10px}.workbench-toolbar .setup-shortcut{order:1;padding:6px 8px;font-size:10px}.workbench-toolbar #speed{order:2;margin-left:0}.workbench-toolbar .timeline-group{order:3;max-width:none}.workbench-toolbar .playback-buttons{gap:0}.workspace-switch button{padding:8px 4px;font-size:11px}.workbench .metrics-panel{display:block}.workbench .metrics-heading{margin-bottom:17px}.workbench .complexity-meaning{margin:10px 0 18px}.workbench .counters{border-top:1px solid #e5ebde;margin-bottom:6px;padding:15px 0}.workbench .cost-details{padding-top:10px}.inspector-panel .step-trace{min-height:150px;max-height:27dvh}.inspector-panel .code-lines{max-height:28dvh}.inspector-panel .panel-heading{min-height:50px}.inspector-panel .execution-panel>summary{padding:15px}}@media (width<=360px){.setup-shortcut .icon{display:none}.workbench-toolbar .setup-shortcut{padding:5px;font-size:9px}}@media (width<=1100px){.workbench .workspace{min-height:calc(100dvh - var(--toolbar-height) - 48px)}}@media (width<=360px){.workbench-toolbar .setup-shortcut{width:30px;padding:6px;font-size:0}.workbench-toolbar .setup-shortcut .icon{width:14px;height:14px;display:block}.workspace-switch button{gap:4px;font-size:10px}.workspace-switch .icon{width:12px;height:12px}}
