:root{--bg:#fff;--panel:#fff;--code-bg:#fff;--ink:#111;--ink-soft:#555;--green:#2e8b3d;--red:#d6322a;--blue:#2452cc;--blue-pale:#dbe6ff;--blue-deep:#13276b;--yellow:#f2b100;--border-dotted:1px dotted #000;--border-thin:1px solid var(--ink);--radius:0;--sans:"JetBrains Mono", ui-monospace, Consolas, monospace;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:15px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{width:100%;max-width:100%;height:100svh;margin:0;padding:0;overflow:hidden}h1{font-family:var(--sans);letter-spacing:-1.5px;color:var(--ink);margin:40px 0 28px;font-size:48px;font-weight:700}h3{font-family:var(--sans);letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);margin:0 0 14px;font-size:14px;font-weight:700}p{margin:0}.app{flex-direction:column;height:100svh;display:flex}.topbar{border-bottom:1px solid var(--ink);background:#fff;justify-content:space-between;align-items:center;padding:4px 16px;display:flex}.topbar h1{letter-spacing:2px;text-transform:uppercase;color:var(--ink);margin:0;font-size:13px;font-weight:500}.workspace{flex:auto;min-height:0;display:flex}.left-col,.right-col{flex-direction:column;min-width:0;min-height:0;display:flex}.left-col{flex:0 0 var(--split,50%);border-right:var(--border-dotted)}.right-col{flex:1 1 0}.divider{cursor:col-resize;flex:0 0 6px}.left-col .codepanel{flex:auto;min-height:0;overflow:auto}.left-col .vcr{border-top:var(--border-dotted);flex:none;padding:8px 12px}.stdout-region{min-height:var(--stdout-min,10%);max-height:var(--stdout-max,60%);background:var(--code-bg);border-bottom:var(--border-dotted);flex-direction:column;flex:0 auto;display:flex}.stdout-title{letter-spacing:1px;text-transform:uppercase;color:#9a9a9a;flex:none;margin:0;padding:8px 12px 0;font-size:11px}.stdout-bar{min-height:0;font-family:var(--mono);color:var(--ink);white-space:pre-wrap;flex:auto;margin:0;padding:8px 12px;font-size:12px;overflow:auto}.divider-h{cursor:row-resize;flex:0 0 6px}.limit-notice{font-family:var(--sans);color:var(--ink);border-bottom:var(--border-dotted);background:#ffef9f;flex:none;margin:0;padding:8px 12px;font-size:13px}.mem-region{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:auto}.empty-hint{color:var(--ink-soft);justify-content:center;align-items:center;display:flex}.codepanel{border:none;border-radius:0;height:100%}.codepanel .cm-editor{height:100%}.cm-exec-gutter{width:18px}.exec-arrow{cursor:pointer;padding:0 2px;font-size:11px;font-weight:700}.exec-arrow.green{color:var(--green)}.exec-arrow.red{color:var(--red)}.cm-line.cm-just-executed{background:#2e8b3d1f}.cm-line.cm-bp{box-shadow:inset 3px 0 0 var(--red)}.cm-line.cm-bp-dead{box-shadow:inset 3px 0 0 var(--ink-soft);opacity:.75}.cm-line.cm-error-line{box-shadow:inset 3px 0 0 var(--red);background:#d6322a29}.error-marker{color:var(--red);font-weight:700}.editor{border-radius:var(--radius);background:var(--panel);overflow:hidden}.editor .cm-editor{background:var(--panel);font-size:14px}.editor .cm-scroller{font-family:var(--mono);font-variant-ligatures:contextual;font-feature-settings:"liga" 1, "calt" 1}.editor .cm-editor.cm-focused{outline:none}.editor .cm-gutters{background:var(--code-bg);border-right:var(--border-thin);color:var(--ink-soft)}.editor .cm-lineNumbers .cm-gutterElement{color:#5555558c;min-width:0;padding:0 4px 0 6px}.editor .cm-lineNumber-current{color:var(--ink);font-weight:700}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:#f4c20d2e}.editor .cm-foldGutter .cm-gutterElement{color:var(--ink-soft);cursor:pointer}.editor .cm-foldPlaceholder{background:var(--panel);border:var(--border-dotted);color:var(--ink-soft);font-family:var(--mono);border-radius:0;margin:0 2px;padding:0 4px}.cm-tooltip.cm-tooltip-autocomplete{background:var(--panel);border:var(--border-dotted);font-family:var(--mono);border-radius:0}.cm-tooltip.cm-tooltip-autocomplete>ul{font-family:var(--mono);font-size:12px}.codepanel .cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--ink);color:#fff}.codepanel .cm-tooltip.cm-tooltip-autocomplete .cm-completionIcon{display:none}.run{font-family:var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);cursor:pointer;background:#fff;align-self:center;padding:8px 18px;font-size:13px;font-weight:500;transition:background .15s,color .15s,transform 50ms}.run:hover:not(:disabled){background:var(--ink);color:#fff}.run:active{transform:translateY(1px)}.run:disabled{color:var(--ink-soft);border-color:var(--ink-soft);cursor:default}.error{font-family:var(--mono);color:var(--ink);border:var(--border-dotted);border-color:var(--red);border-radius:var(--radius);white-space:pre-wrap;background:#d6322a1a;margin:0;padding:16px;font-size:13px}.stdout{font-family:var(--mono);color:#fff;background:var(--ink);border:none;border-top:var(--border-thin);white-space:pre-wrap;border-radius:0;max-height:25%;margin:0;padding:12px 16px;font-size:13px;overflow:auto}.var-name{color:var(--ink-soft);width:40%}.var-val{color:var(--ink);font-weight:500}.vcr{flex-direction:column;gap:8px;display:flex}.bp-dead-notice{font-family:var(--sans);color:var(--ink);background:#ffef9f;margin:6px 0 0;padding:4px 8px;font-size:12px}.vcr-buttons{justify-content:center;gap:6px;display:flex}.vcr button{font-family:var(--sans);color:var(--ink);background:var(--panel);border:var(--border-dotted);cursor:pointer;border-radius:0;padding:5px 10px;font-size:13px}.vcr button:hover:not(:disabled){background:var(--ink);color:#fff}.vcr button:disabled{opacity:.35;cursor:not-allowed}.counter{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.timeline{align-items:center;gap:10px;width:100%;display:flex}.timeline label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.track{flex:1;position:relative}.track input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0;display:block}.track input[type=range]::-webkit-slider-runnable-track{border-top:1px dotted var(--ink);height:0}.track input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ink);border:none;border-radius:0;width:11px;height:11px;margin-top:-6px}.track input[type=range]::-moz-range-track{border-top:1px dotted var(--ink);height:0}.track input[type=range]::-moz-range-thumb{background:var(--ink);border:none;border-radius:0;width:11px;height:11px}.step-marks{pointer-events:none;position:absolute;inset:0}.step-mark{background:var(--ink-soft);width:1px;height:7px;position:absolute;top:50%;transform:translate(-50%,-50%)}.ticks{pointer-events:none;position:absolute;inset:0}.tick{background:var(--red);width:2px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%)}.memory{padding:0;position:relative}.panes{min-height:100%;display:flex}.stack-pane{flex:0 0 var(--mem-split,50%);border-right:var(--border-dotted);min-width:0;padding:10px}.heap-pane{flex:1 1 0;min-width:0;padding:10px}.stack-pane h3,.heap-pane h3{letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);margin:0 0 10px;font-size:11px}.frame{border:var(--border-dotted);margin-bottom:10px}.frame-current{border-color:var(--blue);border-style:solid}.frame:last-child{margin-bottom:0}.frame-name{font-family:var(--mono);text-transform:uppercase;color:var(--blue);border-bottom:var(--border-dotted);padding:4px 8px;font-size:11px;font-weight:700}.frame-cells{flex-direction:column;padding:4px 8px;display:flex}.stack-pane .frame-cells>.cell{border:var(--border-dotted);margin-bottom:6px;padding:6px 8px}.stack-pane .frame-cells>.cell:last-child{margin-bottom:0}.cell{font-family:var(--mono);padding:4px 2px;font-size:12px}.cell-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cell-name{color:var(--ink);font-weight:600}.cell-type{color:var(--ink-soft);border:var(--border-dotted);padding:0 4px;font-size:10px}.cell-value{color:var(--ink);margin-left:auto;font-weight:600}.cell-value.summary{font-weight:700}.cell-note{color:var(--ink-soft);font-style:italic;font-weight:400}.cell-value.ref{color:var(--blue);position:relative}.port{background:var(--blue);vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-left:6px;display:inline-block}.cell-value.ref.unresolved{color:var(--red)}.cell-value.ref.unresolved .port{border:2px dashed var(--red);background:0 0}.cell-children{border-left:var(--border-dotted);margin-top:6px;padding-left:8px}.cell-children.grid{border-left:none;flex-wrap:wrap;gap:4px;padding-left:0;display:flex}.cell-children.grid .cell{border:var(--border-dotted);padding:2px 6px}.cell-children.kv{border-left:none;padding-left:0}.cell-children.kv .cell{border-bottom:var(--border-dotted)}.matrix{gap:4px;margin-top:6px;display:grid}.matrix .cell{border:var(--border-dotted);text-align:center;padding:2px 6px}.matrix-slices{flex-direction:column;gap:8px;margin-top:6px;display:flex}.matrix-slices>.cell{border:var(--border-dotted);padding:4px 6px}.more-toggle{font-family:var(--sans);color:var(--ink);background:var(--panel);border:var(--border-dotted);cursor:pointer;padding:1px 8px;font-size:11px}.connectors{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.connector{fill:none;stroke-width:1.5px}.connector.resolved{stroke:var(--blue)}.connector.selected{stroke-width:3px}.connector.inactive{opacity:.38}.connector-hit{fill:none;stroke:#0000;stroke-width:14px;pointer-events:stroke;cursor:pointer}.connectors marker path{fill:var(--blue)}.cell.cell-highlight{outline:2px solid var(--blue);outline-offset:1px}.cell.cell-changed,.cell-head.cell-changed,.dp-cell.cell-changed{box-shadow:inset 2px 0 0 var(--yellow);background:#f2b10038}.internals-toggle{color:var(--ink-soft);font-family:var(--mono);text-align:left;cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:11px}.internals-toggle:hover{color:var(--ink)}.cell-internal{opacity:.55}.char-view-toggle{font-family:var(--mono);color:var(--ink-soft);background:var(--panel);border:var(--border-dotted);cursor:pointer;margin-left:auto;padding:0 4px;font-size:10px;line-height:1.4}.char-view-toggle:hover{color:var(--ink)}.char-view-toggle.char-view-on{color:var(--blue);border-color:var(--blue)}.heap-badge{font:12px var(--mono);border:1px dotted var(--ink);color:var(--ink-soft);margin-left:6px;padding:0 4px}.heap-view-toggle{font-family:var(--mono);color:var(--ink-soft);background:var(--panel);border:var(--border-dotted);cursor:pointer;margin-left:6px;padding:0 4px;font-size:10px;line-height:1.4}.heap-view-toggle:hover{color:var(--ink)}.heap-view-toggle.heap-view-on{color:var(--blue);border-color:var(--blue)}.trace-hint{font:400 .8rem var(--sans);color:var(--ink-soft);margin-left:.75rem}.help-backdrop{z-index:50;background:#1a1a1a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-panel{background:var(--panel);border:2px solid var(--ink);border-radius:var(--radius);min-width:300px;max-width:420px;padding:14px 18px}.help-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.help-head h2{letter-spacing:1px;text-transform:uppercase;color:var(--ink);margin:0;font-size:12px;font-weight:500}.help-close{cursor:pointer;color:var(--ink);background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.help-table{border-collapse:collapse;width:100%;color:var(--ink);font-size:12px}.help-table td{border-bottom:var(--border-thin);padding:5px 10px 5px 0}.help-table tr:last-child td{border-bottom:none}.help-keys{font-family:var(--mono);white-space:nowrap}.heap-overlay-panel{z-index:40;background:var(--panel);border:var(--border-dotted);max-width:min(90vw,480px);max-height:70vh;font:12px var(--mono);color:var(--ink);padding:8px 10px;position:fixed;bottom:8px;right:8px;overflow:auto}.heap-overlay-head{border-bottom:var(--border-dotted);align-items:center;gap:8px;margin-bottom:6px;padding-bottom:4px;display:flex}.heap-overlay-step{color:var(--ink-soft)}.heap-overlay-close{margin-left:auto}.topbar-actions{align-items:center;gap:12px;display:flex}.panel-tabs{flex:none;gap:4px;margin-bottom:8px;display:flex}.panel-tabs [role=tab]{font:13px var(--sans);color:var(--ink);border:var(--border-thin);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.panel-tabs [role=tab][aria-selected=true]{background:var(--ink);color:var(--bg)}.tab-dot{background:var(--yellow);border-radius:50%;width:8px;height:8px}.calltree{flex:1;min-height:0;position:relative}.calltree-svg{cursor:grab;touch-action:none;background:var(--code-bg);border:var(--border-thin);width:100%;height:100%}.calltree-svg:active{cursor:grabbing}.ct-edge{stroke:var(--ink-soft);stroke-width:1.5px}.ct-edge-future{opacity:.25}.ct-edge-current{stroke:var(--blue);stroke-width:2px}.ct-node{cursor:pointer}.ct-node rect{fill:var(--panel);stroke:var(--ink);stroke-width:1px;stroke-dasharray:1 3}.ct-node text{font:12px var(--mono);fill:var(--ink);text-anchor:middle;dominant-baseline:central}.ct-current rect{fill:var(--blue-pale);stroke:var(--blue);stroke-dasharray:none;stroke-width:2px}.ct-on-stack rect{stroke:var(--blue);stroke-dasharray:none;stroke-width:2px}.ct-future{opacity:.25}.ct-node.ct-preview-lit{opacity:1}.ct-selected rect{stroke:var(--blue-deep);stroke-width:2px;stroke-dasharray:none}.ct-detail{background:var(--panel);border:var(--border-dotted);min-width:180px;max-width:280px;font:12px var(--mono);color:var(--ink);padding:8px 10px;position:absolute;bottom:8px;right:8px}.ct-detail-head{border-bottom:var(--border-dotted);align-items:center;gap:8px;margin-bottom:6px;padding-bottom:4px;display:flex}.ct-detail-title{overflow-wrap:anywhere;font-weight:600}.ct-detail-head button{background:var(--panel);border:var(--border-dotted);font:12px var(--mono);cursor:pointer;margin-left:auto;padding:0 6px}.ct-detail-rows{margin:0}.ct-detail-rows div{gap:8px;display:flex}.ct-detail-rows dt{color:var(--ink-soft)}.ct-detail-rows dd{overflow-wrap:anywhere;margin-left:auto;font-weight:600}.ct-detail-var{cursor:pointer;flex-wrap:wrap}.ct-detail-var:hover dt,.ct-detail-var:focus-visible dt{color:var(--ink)}.ct-detail-inspect{border:var(--border-dotted);background:var(--panel);cursor:default;flex-basis:100%;max-height:220px;margin:4px 0 6px;padding:6px;overflow:auto}.ct-detail-inspect-head{color:var(--ink-soft);margin-bottom:4px;font-style:italic}.ct-detail-steps{color:var(--ink-soft);margin-top:6px;font-style:italic}.calltree-zoom{gap:4px;display:flex;position:absolute;top:8px;right:8px}.calltree-zoom button{width:28px;height:28px;font:16px var(--mono);background:var(--panel);color:var(--ink);border:var(--border-thin);cursor:pointer}.shape-panel{border:1px dotted var(--border);background:var(--panel);margin-bottom:8px}.shape-head{font:12px var(--mono);border-bottom:1px dotted var(--border);justify-content:space-between;align-items:center;padding:2px 6px;display:flex}.shape-head button{font:11px var(--mono);border:1px dotted var(--border);cursor:pointer;background:0 0;padding:0 4px}.shape-scroll{max-height:340px;padding:12px;overflow:auto}.shape-canvas{position:relative}.shape-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.shape-edge{stroke:var(--ink);fill:none}.shape-edge-changed{stroke:var(--blue);stroke-width:2px}.shape-edges marker path{fill:var(--ink)}.shape-edge-label{font:12px var(--mono);fill:var(--ink-soft);paint-order:stroke;stroke:var(--panel);stroke-width:3px}.shape-node{box-sizing:border-box;border:1px dotted var(--border);background:var(--panel);height:30px;font:12px var(--mono);cursor:pointer;justify-content:center;align-items:center;transition:left .2s,top .2s;display:flex;position:absolute}.shape-node-changed{background:var(--yellow)}.shape-node-selected{outline:2px solid var(--blue);outline-offset:-1px}.shape-node-detached{opacity:.55}.shape-node-terminal{border-style:double;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}.shape-detail{border-top:1px dotted var(--border);font:12px var(--mono);padding:6px}.shape-detail-head{justify-content:space-between;margin-bottom:4px;display:flex}.shape-detail-head button{cursor:pointer;font:14px var(--mono);background:0 0;border:none}.shape-detail-steps{color:var(--ink-soft);margin-top:4px}.dp-panel{border:1px dotted var(--border);background:var(--panel);font-family:var(--mono);margin:4px 0;padding:6px;font-size:12px}.dp-header{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.dp-name{font-weight:700}.dp-mode{color:var(--ink-soft)}.dp-generic-toggle{font:inherit;border:1px dotted var(--border);cursor:pointer;background:0 0;margin-left:auto}.dp-grid-wrap{position:relative}.dp-grid{display:grid}.dp-cell{border:1px dotted var(--border);cursor:pointer;background:color-mix(in srgb, var(--yellow) calc(var(--dp-heat,0) * 55%), var(--panel));justify-content:center;align-items:center;width:36px;height:36px;display:flex}.dp-ghost{opacity:.3}.dp-write{outline:2px solid var(--yellow);outline-offset:-2px;font-weight:700}.dp-read{box-shadow:inset 0 0 0 2px var(--blue)}.dp-arrows{pointer-events:none;position:absolute;inset:0}.dp-arrows path{fill:none;stroke:var(--blue);stroke-width:1.5px;marker-end:none}.dp-indices{color:var(--ink-soft);display:flex}.dp-indices span{text-align:center;display:inline-block}.dp-detail{border:1px dotted var(--border);align-items:baseline;gap:10px;margin-top:4px;padding:4px;display:flex}.dp-detail button{font:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto}.heap-tree-scroll{padding:4px 0;overflow-x:auto}.heap-tree{margin:0 auto}.heap-edges{pointer-events:none;position:absolute;inset:0}.heap-edges line{stroke:var(--blue);stroke-width:1px}.heap-node{z-index:1;width:max-content}.heap-node>.cell{border:var(--border-dotted);background:var(--panel);white-space:nowrap;padding:4px 6px}.heap-node-top>.cell{border-color:var(--blue)}.heap-node-top>.cell>.cell-head{background:var(--yellow)}
