@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans+Condensed:wght@500&family=IBM+Plex+Sans:wght@400;500&display=swap";:root{color-scheme:dark;--canvas: #14181d;--panel: #1b2027;--ink: #e6eaf0;--ink-muted: #98a2b3;--hairline: #2a313b;--focus: #85b7eb;--diff: #fac775;--diff-ink: #412402;--warn: #fac775;--own-0: transparent;--own-1: #6b7380;--own-2: #afa9ec;--own-3: #5dcaa5;--own-4: #5dcaa5;--own-5: #f0997b;--own-6: #ed93b1;--own-7: #85b7eb;--own-8: #97c459;--own-9: #fac775;--own-10: #cecbf6;--own-11: #d4a017;--font-display: "IBM Plex Sans Condensed", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--row-h: 17px;--dump-size: 11px;--radius: 4px}:root[data-theme=light]{color-scheme:light;--canvas: #eef1f4;--panel: #ffffff;--ink: #111827;--ink-muted: #5b6472;--hairline: #d5dae1;--focus: #378add;--diff: #ef9f27;--diff-ink: #854f0b;--warn: #854f0b;--own-1: #8b93a1;--own-2: #7f77dd;--own-3: #1d9e75;--own-10: #afa9ec;--own-11: #b7791f}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--canvas);color:var(--ink);font:13px/1.45 var(--font-body)}button,input,textarea,select{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);padding:4px 10px;cursor:pointer}select{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);padding:4px 8px}button:hover{border-color:var(--ink-muted)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.panel{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);padding:8px 10px;min-width:0}.panel>h2{margin:0 0 6px;font:500 15px/1.2 var(--font-display)}.mono{font-family:var(--font-mono);font-size:var(--dump-size)}.muted{color:var(--ink-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.app{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr);grid-auto-rows:var(--term-h, 220px);height:100vh;gap:8px;padding:8px}.app.term-side{grid-auto-columns:var(--term-w, 500px)}.workspace:not([hidden]){display:contents}.app.term-side>.terminal-drawer{grid-column:2;grid-row:1 / -1;position:relative}.topbar{display:flex;align-items:center;gap:16px}.topbar h1{font:500 18px var(--font-display);margin:0}.tabbar{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--canvas)}.tab{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:3px 14px;border-radius:calc(var(--radius) - 1px);font:500 13px var(--font-display);color:var(--ink-muted)}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{background:var(--panel);color:var(--ink);box-shadow:inset 0 -2px 0 var(--focus)}.tab-badge{padding:0 4px;border:1px solid var(--focus);border-radius:var(--radius);font:500 10px var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--focus)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.switch{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 4px;font:500 12px var(--font-display);color:var(--ink-muted)}.switch:hover{color:var(--ink)}.switch-track{position:relative;width:28px;height:16px;border-radius:8px;background:var(--hairline);border:1px solid var(--ink-muted);transition:background .15s,border-color .15s}.switch-knob{position:absolute;top:1px;left:1px;width:12px;height:12px;border-radius:50%;background:var(--ink);transition:left .15s,background .15s}.switch[aria-checked=true] .switch-track{background:var(--focus);border-color:var(--focus)}.switch[aria-checked=true] .switch-knob{left:13px;background:var(--canvas)}.grid{display:grid;grid-template-columns:220px minmax(0,1fr) 340px;gap:8px;min-height:0}.col{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto}.col>.panel{flex:0 0 auto}.col>.dirtree{flex:1 1 auto;min-height:160px}.col>.inspector{flex:1 1 auto}.center{overflow:hidden}@media(max-width:1100px){.grid{grid-template-columns:220px minmax(0,1fr)}.right{grid-column:1}.topbar{flex-wrap:wrap;row-gap:6px}.topbar>.status{order:1;flex-basis:100%}}@media(max-width:760px){.grid{grid-template-columns:minmax(0,1fr)}.left,.right{max-height:40vh}.app{grid-auto-rows:min(var(--term-h, 220px),40vh)}.topbar>.switch{order:1}.topbar>.tabbar{order:2;display:flex;flex:1 0 100%}.tab{flex:1 1 0;justify-content:center;min-height:36px}#terminal-toggle,#scenario-slot{order:3}.topbar>.status{order:4}.opbar-summary{flex-basis:100%}}.ribbon-slot{display:flex}.ribbon{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);padding:6px 10px 8px}.ribbon-canvas-wrap{width:100%}.ribbon-canvas-wrap canvas{display:block;width:100%;height:28px;cursor:pointer}.ribbon-legend{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;font:500 12px var(--font-display)}.ribbon-swatch{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:2px 4px;border-radius:var(--radius);cursor:pointer;font:inherit;color:var(--ink)}.ribbon-swatch:hover{background:color-mix(in srgb,var(--ink-muted) 12%,transparent);border-color:transparent}.ribbon-swatch .dot{width:8px;height:8px;border-radius:50%;background:var(--sw, var(--ink-muted));flex-shrink:0}.ribbon-caption{flex:1 0 100%;min-height:1.4em;font-size:12px;text-align:right}.hexview{overflow:auto;height:100%;position:relative;padding:0}.spacer{position:relative}.window{position:absolute;left:0;right:0;will-change:transform}.row{display:grid;grid-template-columns:8ch 48ch 16ch minmax(0,1fr);gap:12px;height:var(--row-h);line-height:var(--row-h);padding-left:10px;padding-right:8px;border-left:3px solid transparent;white-space:pre;font:var(--dump-size)/var(--row-h) var(--font-mono)}.row.sector-start{border-top:1px solid var(--hairline)}.row.unit-start{border-top-color:var(--ink-muted)}.row.own-1{border-left-color:var(--own-1)}.row.own-1 .b{background:color-mix(in srgb,var(--own-1) 14%,transparent)}.row.own-2{border-left-color:var(--own-2)}.row.own-2 .b{background:color-mix(in srgb,var(--own-2) 14%,transparent)}.row.own-3{border-left-color:var(--own-3)}.row.own-3 .b{background:color-mix(in srgb,var(--own-3) 14%,transparent)}.row.own-4{border-left-color:var(--own-4)}.row.own-4 .b{background:color-mix(in srgb,var(--own-4) 14%,transparent)}.row.own-5{border-left-color:var(--own-5)}.row.own-5 .b{background:color-mix(in srgb,var(--own-5) 14%,transparent)}.row.own-6{border-left-color:var(--own-6)}.row.own-6 .b{background:color-mix(in srgb,var(--own-6) 14%,transparent)}.row.own-7{border-left-color:var(--own-7)}.row.own-7 .b{background:color-mix(in srgb,var(--own-7) 14%,transparent)}.row.own-8{border-left-color:var(--own-8)}.row.own-8 .b{background:color-mix(in srgb,var(--own-8) 14%,transparent)}.row.own-9{border-left-color:var(--own-9)}.row.own-9 .b{background:color-mix(in srgb,var(--own-9) 14%,transparent)}.row.own-10{border-left-color:var(--own-10)}.row.own-10 .b{background:color-mix(in srgb,var(--own-10) 14%,transparent)}.row.own-11{border-left-color:var(--own-11)}.row.own-11 .b{background:color-mix(in srgb,var(--own-11) 14%,transparent)}.hex .b{display:inline-block;width:3ch;text-align:center}.asc .b{display:inline-block;width:1ch}.is-str{text-decoration:underline dotted}.is-sel{outline:1px solid var(--focus);outline-offset:-1px}.is-diff{background:var(--diff)!important;color:var(--diff-ink);animation:diffin .15s ease-out}.is-remnant{background-image:repeating-linear-gradient(45deg,transparent 0 3px,color-mix(in srgb,var(--ink-muted) 35%,transparent) 3px 4px)}.is-cur{outline:2px solid var(--focus)}.gap{display:block;width:100%;height:var(--row-h);border:0;background:transparent;color:var(--ink-muted);text-align:left;padding-left:10px}.lbl{grid-column:4;font:11px/var(--row-h) var(--font-display);text-align:right;overflow:hidden;text-overflow:ellipsis}@keyframes diffin{0%{background:transparent}}.stale-note{margin:0 0 6px;font-size:12px}.facts{display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.selected-file{border-top:1px solid var(--hairline);margin-top:8px;padding-top:8px}.selected-file h3{margin:0 0 4px;font:500 13px var(--font-display)}.selected-file .path{margin:0 0 4px;overflow-wrap:anywhere}.selected-file .trace{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:2px;font-size:12px}.selected-file .trace .link{text-align:left}.annotations{list-style:none;padding:0;margin:8px 0 0;max-height:40vh;overflow:auto;font:11px/1.5 var(--font-mono)}.annotations li{overflow-wrap:anywhere;padding-left:1.5em;text-indent:-1.5em}.annotations li.hit{background:color-mix(in srgb,var(--focus) 15%,transparent)}.link{border:0;padding:0;background:none;color:var(--focus);cursor:pointer}.status{display:flex;align-items:center;gap:8px}.status .err{color:var(--diff-ink)}.dirtree{overflow:auto}.remnants{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12px}.tree-row{display:flex;align-items:center;gap:2px}.disclosure{width:18px;height:18px;padding:0;border:0;background:none;color:var(--ink-muted);display:flex;align-items:center;justify-content:center}.disclosure:hover{border:0;color:var(--ink)}.disclosure-spacer{display:inline-block;width:18px}.row-btn{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;background:none;border:0;border-left:3px solid transparent;border-radius:0;padding:2px 6px;text-align:left}.row-btn:hover{border-left-color:var(--hairline)}.row-btn .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-btn .meta{flex-shrink:0;font-size:11px}.row-btn.selected,.row-btn[aria-selected=true]{border-left-color:var(--focus);background:color-mix(in srgb,var(--focus) 10%,transparent)}.fatmap-wrap{overflow-y:auto;overflow-x:hidden}.fatmap-wrap canvas{display:block;cursor:pointer}.fatmap-caption{margin:6px 0 0;font-size:11px;min-height:14px}.bgmap-wrap{overflow-y:auto;overflow-x:hidden}.bgmap-wrap canvas{display:block;cursor:pointer;position:sticky;top:0}.bgmap-caption{margin:6px 0 0;font-size:11px;min-height:14px}.journal .facts{margin:0 0 6px}.journal .facts dd{margin:0}.journal-flag{margin:0 0 6px;font-size:12px;color:var(--diff-ink)}.journal-wrap{overflow-y:auto;overflow-x:hidden}.journal-wrap canvas{display:block;cursor:pointer}.journal-caption{margin:6px 0 0;font-size:11px;min-height:14px}.journal-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12px}.journal-controls select{flex:1 1 100%;min-width:0}.journal-armed{flex-basis:100%}.journal-none{margin:0;font-size:12px}.opbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:5px 10px}.opbar-controls{display:flex;align-items:center;gap:6px}.opbar .tl-range{flex:1 1 160px;min-width:120px}.opbar-summary{margin:0;min-width:0;overflow-wrap:anywhere}.opbar-summary .counter{color:var(--ink-muted)}.changed p{margin:0}.changed .changed-label{margin-bottom:4px;font-size:12px}.changed .ranges{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.changed .ranges button{padding:1px 6px}.changed .phase{border-top:1px solid var(--hairline);padding:4px 0}.changed .phase summary{cursor:pointer;font:500 12px var(--font-display)}.changed .phase ol{list-style:none;padding:0;margin:4px 0 2px;display:flex;flex-direction:column;gap:2px;font-size:12px}.changed .phase .link{text-align:left}.changed .warn{color:var(--warn)}.strings .toggle{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:12px}.strings .strings-controls{display:flex;gap:8px;margin-bottom:6px}.strings .field{display:flex;flex-direction:column;gap:2px;font-size:12px;flex:1;min-width:0}.strings .field input,.strings .field select{width:100%;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--panel);padding:3px 6px}.strings .hit-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:2px;max-height:40vh;overflow:auto;font-size:12px}.strings .hit-list .link{display:block;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-controls{display:flex;align-items:center;gap:6px}.scenario-label{font:500 12px var(--font-display);color:var(--ink-muted)}.lesson{position:fixed;z-index:30;width:340px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;border:2px solid var(--focus);box-shadow:0 10px 30px color-mix(in srgb,black 35%,transparent)}.lesson.docked{left:8px;right:8px;bottom:8px;width:auto;max-height:50vh}.lesson-bar{display:flex;align-items:center;gap:8px;margin:-8px -10px 6px;padding:5px 10px;border-bottom:1px solid var(--hairline);cursor:grab;touch-action:none;user-select:none}.lesson.dragging .lesson-bar{cursor:grabbing}.lesson.docked .lesson-bar{cursor:default}.lesson-bar .eyebrow{flex:1;margin:0}.lesson-bar .handle,.lesson-bar .minimize{padding:0 5px;font:12px/1 var(--font-mono);color:var(--ink-muted);background:none;border:1px solid transparent}.lesson-bar .handle{letter-spacing:-2px;cursor:grab}.lesson-bar .minimize{min-width:20px;cursor:pointer}.lesson-bar .handle:hover,.lesson-bar .minimize:hover{border-color:var(--hairline);color:var(--ink)}.lesson .btn-row.compact{margin-bottom:0}.lesson .eyebrow{margin:0 0 2px;font:500 11px var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}.lesson h2{margin:0 0 6px;font:500 16px/1.2 var(--font-display)}.lesson h2:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.lesson .lesson-step-title{margin:8px 0 4px;font:500 13px var(--font-display)}.lesson .look-at{font-size:12px}.lesson .btn-row{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.actions fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.actions fieldset:disabled{opacity:.5}.actions .field{display:flex;flex-direction:column;gap:2px;font-size:12px}.actions .field input,.actions .field textarea,.actions .field select{width:100%;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--panel);padding:3px 6px}.actions .btn-row{display:flex;flex-wrap:wrap;gap:6px}.actions .format{border-top:1px solid var(--hairline);padding-top:6px}.actions .format summary{cursor:pointer;font:500 12px var(--font-display);margin-bottom:6px}.actions .format .field{margin-bottom:6px}.actions .cluster-count,.actions .format-check{margin:0 0 6px;font-size:12px}.actions .warn{color:var(--warn)}.actions .using-bytes{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}.actions .load-hint{margin:-4px 0 0;font-size:12px}.terminal-drawer{display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden}.terminal-drawer[hidden]{display:none}.terminal-drawer:focus-within{border-color:var(--focus)}.term-bar{display:flex;align-items:center;gap:8px;padding:4px 10px;border-bottom:1px solid var(--hairline);cursor:row-resize;user-select:none;touch-action:none;font:500 12px var(--font-display)}.term-bar button{margin-left:auto;cursor:pointer}.terminal-drawer.side .term-bar{cursor:default}.term-grip{position:absolute;top:0;bottom:0;left:0;width:6px;cursor:col-resize;touch-action:none;z-index:1}.term-grip:hover,.term-grip.dragging{background:color-mix(in srgb,var(--focus) 40%,transparent)}.term-note{margin:4px 10px;font-size:12px}.terminal-drawer .err{color:var(--diff-ink)}.terminal-mount{flex:1;min-height:0;position:relative}.terminal-mount .xterm:focus-visible,.terminal-mount .xterm textarea:focus-visible{outline:none}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}
