.lab{color-scheme:light;color:#172132;width:100%;min-width:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;line-height:normal}.lab *{box-sizing:border-box}.lab [hidden]{display:none!important}.lab button,.lab input,.lab select{font:inherit}.lab button{cursor:pointer}.lab button:focus-visible,.lab input:focus-visible,.lab select:focus-visible{outline-offset:3px;outline:3px solid #e9a34a}.lab.shell{max-width:1160px;width:min(1160px, calc(100vw - 2 * var(--space-5)));margin:0;padding:0}.lab .intro{color:#4d5b69;max-width:720px;margin:0 0 28px;line-height:1.5}.lab .panel{background:#fff;border:1px solid #dcdedb;border-radius:18px;box-shadow:0 9px 28px #1830480b}.lab .setup{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px 28px;padding:22px;display:grid}.lab .setup>div{min-width:0}.lab .label{color:#344457;margin-bottom:9px;font-size:.85rem;font-weight:800;display:block}.lab .switch{background:#edf1f3;border-radius:12px;flex-wrap:wrap;gap:6px;width:fit-content;padding:5px;display:flex}.lab .switch button{color:#405163;background:0 0;border:0;border-radius:9px;padding:10px 16px;font-weight:700}.lab .switch button[aria-pressed=true]{color:#fff;background:#164e63;box-shadow:0 2px 7px #1d40542b}.lab .entry{gap:8px;display:flex}.lab .entry input{border:1px solid #bbc7cc;border-radius:10px;flex:1;min-width:0;padding:11px 12px}.lab .primary{color:#fff;background:#164e63;border:0;border-radius:10px;padding:10px 16px;font-weight:800}.lab .primary:hover,.lab .switch button[aria-pressed=true]:hover{background:#0d3a4d}.lab .hint{color:#61707a;margin:8px 0 0;font-size:.82rem}.lab .error{color:#a02d2d;min-height:1.4em;margin:6px 0 0;font-weight:650}.lab .presets{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.lab .presets span{color:#52616e;margin-right:3px;font-size:.85rem;font-weight:700}.lab .presets button{color:#304959;background:#f8faf9;border:1px solid #cbd4d8;border-radius:999px;padding:6px 11px;font-size:.83rem}.lab .presets button:hover{background:#e9f3f4;border-color:#164e63}.lab .workspace{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;margin-top:18px;display:grid}.lab .main-panel{min-width:0;overflow:hidden}.lab .stage{border-bottom:1px solid #e3e6e4;padding:24px}.lab .stage-head{justify-content:space-between;align-items:start;gap:16px;display:flex}.lab .stage h3{margin:0;font-size:1.28rem}.lab .stage p{color:#415363;min-height:3em;margin:8px 0 0;line-height:1.5}.lab .step-badge{white-space:nowrap;color:#164e63;background:#e6f0f1;border-radius:999px;padding:7px 11px;font-size:.82rem;font-weight:800}.lab .indices{flex-wrap:wrap;gap:7px;min-height:33px;margin-top:12px;display:flex}.lab .indices span{background:#f3f7f7;border:1px solid #d6e1e4;border-radius:7px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem}.lab .array-wrap{padding:20px 24px 30px;overflow-x:auto}.lab .array{justify-content:center;align-items:end;gap:9px;width:max-content;min-width:100%;min-height:118px;display:flex}.lab .cell{text-align:center;flex:none;width:clamp(55px,7vw,78px)}.lab .cell-markers{justify-content:center;align-items:end;gap:3px;height:29px;display:flex}.lab .marker{color:#fff;background:#355e74;border-radius:5px 5px 0 0;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-weight:800}.lab .marker.minimum{background:#8a4f18}.lab .value{background:#f6f9f8;border:2px solid #b9c9ce;border-radius:11px;place-items:center;height:66px;font-size:1.5rem;font-weight:800;transition:background .15s,border-color .15s;display:grid}.lab .cell.compare .value{background:#dbeef1;border-color:#237b92}.lab .cell.swap .value{background:#ffe7c2;border-color:#c47218}.lab .cell.fixed .value{background:#e5efe5;border-color:#6b9c77}.lab .cell.fixed.compare .value{background:#dbeef1;border-color:#237b92}.lab .cell.fixed.swap .value{background:#ffe7c2;border-color:#c47218}.lab .cell-index{color:#65727c;margin-top:5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}.lab .empty-array{color:#697985;align-self:center;font-style:italic}.lab .legend{color:#4f5d69;flex-wrap:wrap;gap:15px;padding:0 24px 20px;font-size:.81rem;display:flex}.lab .legend span{align-items:center;gap:6px;display:inline-flex}.lab .swatch{border:1px solid;border-radius:3px;width:13px;height:13px}.lab .swatch.compare{background:#dbeef1;border-color:#237b92}.lab .swatch.swap{background:#ffe7c2;border-color:#c47218}.lab .swatch.fixed{background:#e5efe5;border-color:#6b9c77}.lab .transport{border-top:1px solid #e3e6e4;padding:19px 24px 23px}.lab .buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lab .buttons button{color:#23465a;background:#fff;border:1px solid #c3d0d3;border-radius:9px;padding:9px 12px;font-weight:700}.lab .buttons button:hover:not(:disabled){background:#edf5f5}.lab .buttons .play{color:#fff;background:#164e63;border-color:#164e63;min-width:112px}.lab .buttons .play:hover:not(:disabled){background:#0d3a4d}.lab .buttons button:disabled{opacity:.42;cursor:default}.lab .speed{color:#48596a;margin-left:auto;font-size:.85rem;font-weight:700}.lab .speed select{background:#fff;border:1px solid #c3d0d3;border-radius:7px;margin-left:5px;padding:6px}.lab .progress{accent-color:#164e63;cursor:pointer;width:100%;margin:18px 0 0}.lab .side{gap:18px;display:grid}.lab .stats,.lab .journal{padding:20px}.lab .side h3{margin:0 0 15px;font-size:1.1rem}.lab .stat{color:#405160;border-top:1px solid #e5e9e8;justify-content:space-between;align-items:baseline;gap:8px;padding:13px 0;display:flex}.lab .stat strong{color:#173e50;font-variant-numeric:tabular-nums;font-size:1.8rem}.lab .stats-note{color:#65727c;margin:7px 0 0;font-size:.78rem;line-height:1.5}.lab .journal ol{border-top:1px solid #e5e9e8;max-height:330px;margin:0;padding:0;list-style:none;overflow-y:auto}.lab .journal li{color:#52616e;border-bottom:1px solid #eef0ef;padding:9px 0;font-size:.82rem;line-height:1.42}.lab .journal li.current{color:#172132;font-weight:700}.lab .journal .number{color:#70808c;font-variant-numeric:tabular-nums;margin-right:7px}.lab .journal .placeholder{color:#71808a;font-style:italic}.lab .experiment{margin-top:18px;padding:24px}.lab .experiment h3{margin:0 0 8px;font-size:1.28rem}.lab .experiment p{color:#415363;line-height:1.5}.lab .experiment .entry{max-width:320px}.lab .experiment .entry input{flex:0 100px;width:100px}.lab .experiment-result{min-height:1.5em;margin:15px 0 0;font-weight:700}.lab .chart-key{color:#405160;flex-wrap:wrap;gap:20px;margin:15px 0 8px;font-size:.9rem;font-weight:700;display:flex}.lab .chart-key span{align-items:center;gap:7px;display:inline-flex}.lab .chart-key i{background:var(--series-color);border-radius:2px;width:18px;height:4px}.lab .chart-wrap,.lab .table-wrap{overflow-x:auto}.lab .chart{width:100%;min-width:560px;height:auto;display:block}.lab .chart text{fill:#52616e;font:13px system-ui,sans-serif}.lab .chart .axis{stroke:#82939a;stroke-width:1.5px}.lab .chart .grid{stroke:#e3e9e9}.lab .chart .series{fill:none;stroke-width:3px;stroke-linejoin:round}.lab .experiment table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:14px}.lab .experiment th,.lab .experiment td{text-align:right;border-bottom:1px solid #e3e9e9;padding:9px 12px}.lab .experiment th:first-child,.lab .experiment td:first-child{text-align:left}.lab .experiment th{color:#344457}.lab footer{color:#65727c;margin-top:20px;font-size:.8rem;line-height:1.5}@media (width<=860px){.lab .workspace{grid-template-columns:1fr}.lab .side{grid-template-columns:1fr 1fr}}@media (width<=630px){.lab.shell{width:calc(100vw - 2 * var(--space-4))}.lab .setup{grid-template-columns:minmax(0,1fr);padding:17px}.lab .presets{grid-column:1}.lab .side{grid-template-columns:1fr}.lab .stage,.lab .transport,.lab .array-wrap{padding-left:17px;padding-right:17px}.lab .legend{padding-left:17px}.lab .speed{width:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){.lab .value{transition:none}}
