:root{--bg:#e9e5dd;--panel:#fbfaf7;--panel-2:#f2efe8;--panel-3:#e8e4db;--ink:#1d1e20;--ink-soft:#5c5f65;--ink-faint:#8b8e94;--line:#1d1e2014;--line-strong:#1d1e202b;--scrollbar:#1d1e2047;--accent:#1d7a4c;--accent-hover:#166640;--accent-ink:#fff;--accent-soft:#1d7a4c18;--danger:#c13f2b;--danger-soft:#c13f2b14;--warn:#a8670f;--ok:#2f9e57;--warn-soft:#e8a2361f;--info:#2d62d6;--board:#f5f2ea;--shadow:0 1px 2px #0000000f, 0 8px 24px #0000001a;--radius:10px;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--code-keyword:#8a3ab9;--code-type:#1f6f8b;--code-function:#2d62d6;--code-number:#b4561a;--code-string:#1d7a4c;--code-macro:#a8670f;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#151618;--panel:#1e1f22;--panel-2:#26272b;--panel-3:#2f3035;--ink:#ecebe7;--ink-soft:#a6a8ad;--ink-faint:#7a7c82;--line:#ffffff12;--line-strong:#ffffff24;--scrollbar:#ffffff38;--accent:#36a96f;--accent-hover:#42bb7d;--accent-ink:#0d1a12;--accent-soft:#36a96f22;--danger:#ec6a55;--danger-soft:#ec6a551c;--warn:#e2a64a;--ok:#4cc27a;--warn-soft:#e2a64a1c;--info:#6d97ef;--board:#2a2b2f;--code-keyword:#c792ea;--code-type:#6cc3d8;--code-function:#82aaff;--code-number:#f2a36b;--code-string:#8fd6a4;--code-macro:#e2c06a;--shadow:0 1px 2px #00000040, 0 10px 28px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#151618;--panel:#1e1f22;--panel-2:#26272b;--panel-3:#2f3035;--ink:#ecebe7;--ink-soft:#a6a8ad;--ink-faint:#7a7c82;--line:#ffffff12;--line-strong:#ffffff24;--scrollbar:#ffffff38;--accent:#36a96f;--accent-hover:#42bb7d;--accent-ink:#0d1a12;--accent-soft:#36a96f22;--danger:#ec6a55;--danger-soft:#ec6a551c;--warn:#e2a64a;--ok:#4cc27a;--warn-soft:#e2a64a1c;--info:#6d97ef;--board:#2a2b2f;--code-keyword:#c792ea;--code-type:#6cc3d8;--code-function:#82aaff;--code-number:#f2a36b;--code-string:#8fd6a4;--code-macro:#e2c06a;--shadow:0 1px 2px #00000040, 0 10px 28px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}input,textarea,[contenteditable],.cm-editor,.serial-out{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}input[type=checkbox],input[type=radio],input[type=range],input[type=button],input[type=submit]{-webkit-user-select:none;user-select:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.38}:focus-visible{outline:2px solid var(--info);outline-offset:2px}kbd{font:500 11px/1 var(--mono);background:var(--panel-2);border:1px solid var(--line-strong);color:var(--ink);border-bottom-width:2px;border-radius:4px;padding:3px 5px}.hint{color:var(--ink-soft);margin:0;font-size:12.5px}.note{color:var(--ink-soft);border-left:2px solid var(--line-strong);margin:0;padding-left:10px;font-size:12.5px}.sub{color:var(--ink-soft);margin:2px 0 0;font-size:12.5px}.error-text{color:var(--danger);margin:4px 0 0;font-size:12px}.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100%;display:grid}.main{min-height:0;display:flex}.stage{flex-direction:column;flex:1;min-width:0;display:flex}.viewport{touch-action:none;flex:1;min-height:0;position:relative}.viewport canvas{display:block}.btn{border:1px solid var(--line-strong);background:var(--panel);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--panel-2)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.danger{color:var(--danger)}.btn.danger-solid{background:var(--danger);color:#fff;border-color:#0000}.btn.block{width:100%;height:40px}.icon-btn{width:34px;height:34px;color:var(--ink-soft);background:0 0;border:0;border-radius:8px;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--panel-3);color:var(--ink)}.icon-btn[aria-pressed=true]{color:var(--accent)}.icon-btn.small{border-radius:6px;width:26px;height:26px}.topbar{height:52px;padding-left:max(8px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--line-strong);z-index:20;align-items:center;gap:12px;display:flex;position:relative}.topbar-group{flex:none;align-items:center;gap:4px;min-width:0;display:flex}.topbar-group.start{flex:0 auto}.topbar-group.tools{flex:1 0 auto;justify-content:center}.topbar-group.end{gap:2px;margin-left:auto}.brand{flex:none;align-items:center;gap:8px;margin:0 6px 0 2px;display:flex}.brand-name{letter-spacing:-.01em;white-space:nowrap;font-weight:600}.topbar.no-brand .brand-name,.topbar.no-labels .tool-label{display:none}.file-name{border-left:1px solid var(--line-strong);min-width:0;max-width:320px;color:var(--ink-soft);align-items:center;gap:6px;padding-left:12px;display:flex}.topbar.no-brand .file-name{padding-left:10px}.file-name-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.dirty-dot{background:var(--warn);border-radius:50%;flex:none;width:7px;height:7px}.tool{height:34px;color:var(--ink-soft);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.tool:hover:not(:disabled){background:var(--panel-3);color:var(--ink)}.divider{background:var(--line-strong);width:1px;height:20px;margin:0 6px}.run-control{align-items:center;gap:10px;margin-right:8px;display:flex}.run-btn{color:#fff;background:var(--accent);border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-width:88px;height:36px;padding:0 18px 0 14px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:inset 0 -2px #00000026}.run-btn:hover{background:var(--accent-hover)}.run-btn.stop{background:var(--danger)}.run-btn.resume{color:#2a1c02;background:#f2b230;animation:1.6s ease-in-out infinite paused-glow}.run-btn.resume:hover{background:#f5c055}@keyframes paused-glow{50%{box-shadow:inset 0 -2px #00000026,0 0 0 4px #f2b23040}}.run-stop{border:1px solid var(--line-strong);background:var(--panel);width:36px;height:36px;color:var(--danger);border-radius:9px;place-items:center;margin-left:-4px;display:inline-grid}.run-stop:hover{background:var(--danger-soft)}.run-paused{color:var(--warn);align-items:center;gap:5px;font-size:13.5px;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:reduce){.run-btn.resume{animation:none}}.run-status{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;align-items:flex-end;width:92px;line-height:1.15;display:flex;overflow:hidden}.run-time{font:500 14px var(--mono)}.sim-time{color:var(--ink-soft);align-items:center;gap:5px;font-size:11px;display:inline-flex}.pace{background:var(--ok);border-radius:50%;flex:none;width:7px;height:7px;transition:background-color .4s}.pace.tight{background:var(--warn)}.pace.behind{background:var(--danger)}.pulse{color:var(--ink-soft);font-size:12.5px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.more{position:relative}.menu{background:var(--panel);border:1px solid var(--line-strong);min-width:180px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu button{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;height:40px;padding:0 10px;display:flex}.menu button:hover:not(:disabled){background:var(--panel-2)}@media (width<=760px){.topbar{gap:8px}.run-control{margin-right:0}}.topbar.no-run-label .run-btn{width:44px;min-width:0;padding:0}.topbar.no-run-label .run-label,.topbar.no-run-label .run-status:empty{display:none}.left-pane{display:contents}.pane-head,.pane-resizer{display:none}@media (width<=760px){.left-pane.closed .side-panel{display:none}}@media (width>=761px){.left-pane.open{width:var(--pane-width);background:var(--panel);border-right:1px solid var(--line-strong);flex-direction:column;flex:none;min-height:0;display:flex;position:relative}.left-pane.closed{display:none}.left-pane .side-panel{border-right:0;flex:1;width:auto}.left-pane .side-head{display:none}.left-pane .code-editor{border-right:0}.left-pane.tab-code .side-panel,.left-pane.tab-objects .code-editor,.left-pane.tab-memory .side-panel,.left-pane.tab-memory .code-editor{display:none}.pane-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:8px;height:44px;padding:0 8px;display:flex}.pane-head h2{align-items:center;gap:6px;margin:0 0 0 8px;font-size:13px;font-weight:600;display:inline-flex}.pane-tabs{align-self:stretch;gap:2px;display:flex}.pane-tabs button{color:var(--ink-soft);font:600 13px var(--font);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:0 12px;display:inline-flex}.pane-tabs button:hover{color:var(--ink)}.pane-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.pane-resizer{z-index:5;cursor:col-resize;touch-action:none;width:8px;display:block;position:absolute;top:0;bottom:0;right:-4px}.pane-resizer:after{content:"";background:var(--accent);opacity:0;width:2px;transition:opacity .15s;position:absolute;top:0;bottom:0;left:3px}.pane-resizer:hover:after,.pane-resizer:active:after{opacity:1}}.resizing-x,.resizing-x *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.resizing-y,.resizing-y *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.side-panel{background:var(--panel);border-right:1px solid var(--line-strong);flex-direction:column;flex:none;width:296px;min-height:0;display:flex}@media (width<=760px){.side-panel{z-index:15;box-shadow:var(--shadow);position:absolute;top:52px;bottom:0;left:0}}.side-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:44px;padding:0 8px 0 16px;display:flex}.side-head h2{align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;display:inline-flex}.objects{flex:1;padding:8px 8px 16px;overflow-y:auto}.group h3{margin:10px 0 2px}.group h3 button{width:100%;font:600 11px/1 var(--font);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);background:0 0;border:0;align-items:center;gap:6px;padding:4px 6px;display:flex}.group .count{letter-spacing:0;margin-left:auto;font-weight:500}.group ul,.library{margin:0;padding:0;list-style:none}.row{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:6px 8px;display:flex}.row:hover{background:var(--panel-2)}.row.on{background:var(--accent-soft)}.row-icon{width:30px;height:30px;color:var(--ink-soft);flex:none;place-items:center;display:grid}.row-icon img{width:30px;height:30px}.row-text{flex-direction:column;flex:1;min-width:0;display:flex}.row-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.row-detail{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.live{font:500 12px var(--mono);color:var(--accent);white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.live.hot{color:var(--danger)}.plug-dot{border:1.5px solid var(--ink-faint);border-radius:50%;flex:none;width:7px;height:7px}.plug-dot.in{background:var(--accent);border-color:var(--accent)}.wire-dot{border:1px solid var(--line-strong);border-radius:50%;width:14px;height:14px}.empty-state{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 8px;display:flex}.empty-state p{margin:0}.drawer{background:var(--panel);border-top:1px solid var(--line-strong);padding-bottom:env(safe-area-inset-bottom,0px);z-index:10;position:relative}.drawer-head{align-items:center;gap:12px;min-width:0;padding:6px 12px;display:flex}.drawer-toggle{background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;font-weight:600;display:inline-flex}.drawer-toggle:hover{background:var(--panel-2)}.chips{scrollbar-width:none;gap:4px;min-width:0;display:flex;overflow-x:auto}.chip{border:1px solid var(--line-strong);white-space:nowrap;height:28px;color:var(--ink-soft);background:0 0;border-radius:14px;padding:0 11px;font-size:12.5px}.chip.on{background:var(--ink);color:var(--panel);border-color:#0000}.search{background:var(--panel-2);height:30px;color:var(--ink-faint);border-radius:8px;flex:0 200px;align-items:center;gap:6px;min-width:120px;margin-left:auto;padding:0 10px;display:flex}.search input{width:100%;min-width:0;color:var(--ink);appearance:none;background:0 0;border:0;outline:none}.search input::-webkit-search-decoration{appearance:none}.search input::-webkit-search-cancel-button{appearance:none}.drawer.over-keyboard{padding-bottom:0;box-shadow:0 -8px 24px #0000001f}.drawer-items{--card-h:calc(46px + 2 * 1.2 * 12.5px + 2 * 1.2 * 11px + 8px + 18px + 2px);--card-top:4px;height:calc(var(--card-top) + var(--card-h) + 12px);box-sizing:border-box;overscroll-behavior-x:contain;touch-action:pan-x;padding:var(--card-top) 12px 0;scrollbar-width:thin;align-items:flex-start;gap:8px;display:flex;overflow:auto hidden}.part-card{width:112px;height:var(--card-h);border-radius:var(--radius);border:1px solid var(--line);background:var(--panel-2);touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;flex:none;grid-template-rows:46px 30px 26.4px;place-items:start center;row-gap:4px;padding:10px 6px 8px;transition:border-color .12s,transform .12s;display:grid}@media (hover:hover){.part-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}}.part-card.active{border-color:var(--accent);background:var(--accent-soft)}.part-icon{height:46px;color:var(--ink-soft);place-items:center;display:grid}.part-icon img{pointer-events:none;width:44px;height:44px}:root[data-theme=dark] .part-icon img,:root[data-theme=dark] .row-icon img{filter:invert(.88)hue-rotate(180deg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .part-icon img,:root:not([data-theme=light]) .row-icon img{filter:invert(.88)hue-rotate(180deg)}}.part-label{text-align:center;-webkit-line-clamp:2;text-wrap:balance;-webkit-box-orient:vertical;align-self:center;font-size:12.5px;font-weight:500;line-height:1.2;display:-webkit-box;overflow:hidden}.part-hint{color:var(--ink-faint);text-align:center;text-wrap:balance;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.2;display:-webkit-box;overflow:hidden}.drawer .empty{color:var(--ink-soft);margin:0;padding:20px 4px}.info-pane{background:var(--panel);border:1px solid var(--line-strong);width:300px;max-height:calc(100% - 24px);box-shadow:var(--shadow);z-index:5;border-radius:12px;position:absolute;top:12px;right:12px;overflow-y:auto}.info-head{justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 12px 8px 16px;display:flex}.info-head h2{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.info-body{flex-direction:column;gap:14px;padding:6px 16px 14px;display:flex}.info-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:10px 16px 14px;display:flex}.callout{background:var(--panel-2);border-radius:8px;align-items:flex-start;gap:8px;margin:0 12px 8px;padding:9px 11px;font-size:12.5px;display:flex}.callout svg{flex:none;margin-top:1px}.callout.danger{background:var(--danger-soft);color:var(--danger)}.readout{background:var(--line);border-radius:8px;grid-template-columns:1fr 1fr;gap:1px;margin:0 12px 6px;display:grid;overflow:hidden}.readout div{background:var(--panel-2);padding:8px 10px}.readout dt{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.readout dd{font:500 16px var(--mono);font-variant-numeric:tabular-nums;margin:2px 0 0}.field{flex-direction:column;gap:6px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);font-size:11px;font-weight:600}.field input:not([type]),.field select,.value-row select{border:1px solid var(--line-strong);background:var(--panel);border-radius:7px;min-width:0;height:34px;padding:0 10px}.field textarea{border:1px solid var(--line-strong);background:var(--panel);font:inherit;color:inherit;resize:vertical;border-radius:7px;min-width:0;min-height:110px;padding:8px 10px}.bug-report .setting{padding:2px 0}.report-privacy{flex-direction:column;gap:4px;display:flex}.report-privacy p{margin:0}.report-error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:10px 12px;font-size:13px}.report-error p,.report-error ul{margin:0}.report-error ul{margin-top:4px;padding-left:18px}.report-sent{color:var(--ok);align-items:center;gap:8px;margin:4px 0;font-weight:600;display:flex}.value-row{gap:6px;display:flex}.value-row select{flex:0 0 104px}.value-input{border:1px solid var(--line-strong);background:var(--panel);border-radius:7px;flex:1;align-items:center;min-width:0;height:34px;padding-right:10px;display:flex}.value-input:focus-within{border-color:var(--info)}.value-input.bad{border-color:var(--danger)}.field .value-input input{height:100%;font:500 14px var(--mono);background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0 10px}.value-input .unit{color:var(--ink-soft);font-family:var(--mono)}.bands{background:#d7c49e;border-radius:11px;align-self:flex-start;align-items:center;gap:5px;height:22px;padding:0 14px;display:flex}.bands span{border-radius:1px;width:7px;height:22px}.bands span:last-child{margin-left:8px}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid var(--panel);width:28px;height:28px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.segmented{border:1px solid var(--line-strong);border-radius:8px;display:flex;overflow:hidden}.segmented button{background:var(--panel);height:32px;font:500 12.5px var(--mono);border:0;flex:1}.segmented button.on{background:var(--ink);color:var(--panel)}.key-field{align-items:center;gap:8px;margin-top:8px;display:flex}.key-field .key-label{color:var(--ink-soft);flex:1;font-size:13px}.key-refused{color:var(--danger);margin:4px 0 0}.key-btn{justify-content:center;min-width:96px;height:32px}.key-btn.waiting{border-color:var(--accent);color:var(--accent)}.key-btn kbd{font:600 12.5px var(--mono);border:1px solid var(--line-strong);background:var(--panel-2);border-bottom-width:2px;border-radius:5px;padding:1px 7px}.stick-row{align-items:stretch;gap:12px;display:flex}.stick-pad{border:1px solid var(--line-strong);background:radial-gradient(circle, var(--panel) 0%, var(--panel-2) 70%);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:50%;flex:none;width:112px;height:112px;position:relative}.stick-pad:active{cursor:grabbing}.stick-cross{border-top:1px dashed var(--line-strong);position:absolute;inset:50% 12px auto}.stick-cross:after{content:"";border-left:1px dashed var(--line-strong);height:88px;position:absolute;top:-44px;left:calc(50% - .5px)}.stick-dot{background:var(--ink);pointer-events:none;border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;position:absolute;box-shadow:0 2px 6px #00000040}.stick-read{font:500 12.5px var(--mono);color:var(--ink-soft);flex-direction:column;flex:1;gap:4px;display:flex}.stick-read .btn.hold{margin-top:auto}.btn.hold{-webkit-user-select:none;user-select:none;touch-action:none;height:44px}.btn.hold:active{background:var(--accent);color:var(--accent-ink)}.pot{align-items:center;gap:16px;display:flex}.pot svg{touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent;border-radius:50%}.pot svg:focus:not(:focus-visible){outline:none}.pot-track{fill:none;stroke:var(--panel-3);stroke-width:6px;stroke-linecap:round}.pot-fill{fill:none;stroke:var(--accent);stroke-width:6px;stroke-linecap:round}.pot-knob{fill:var(--panel-2);stroke:var(--line-strong);stroke-width:1.5px}.pot-mark{stroke:var(--ink);stroke-width:4px;stroke-linecap:round}.pot-value{font:500 22px var(--mono)}.pinout.dip{grid-template-columns:1fr 44px 1fr;gap:0 6px;display:grid}.dip-col{flex-direction:column;gap:2px;display:flex}.dip-body{background:#2b2c2f;border-radius:4px;place-items:center;display:grid;position:relative}.notch{background:var(--panel);border-radius:0 0 7px 7px;width:14px;height:7px;margin-left:-7px;position:absolute;top:-1px;left:50%}.dip-label{writing-mode:vertical-rl;font:500 11px var(--mono);color:#d9d9d9;letter-spacing:.05em}.pin{align-items:center;gap:5px;height:22px;font-size:12px;display:flex}.pin.left{justify-content:flex-end}.pin-no{background:var(--panel-3);width:20px;height:18px;font:500 10.5px var(--mono);color:var(--ink-soft);border-radius:3px;flex:none;place-items:center;display:grid}.pin-name{white-space:nowrap;font-weight:500}.pin-v{font:11px var(--mono);white-space:nowrap;color:var(--accent)}.pinout.inline{flex-direction:column;gap:2px;display:flex}.mode-banner{background:var(--ink);color:var(--panel);box-shadow:var(--shadow);white-space:nowrap;z-index:6;border-radius:10px;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:6px 6px 6px 14px;font-size:13px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.mode-banner .keys{color:color-mix(in srgb, var(--panel) 70%, transparent);align-items:center;gap:5px;font-size:12px;display:flex}.mode-banner kbd{background:color-mix(in srgb, var(--panel) 16%, transparent);border-color:color-mix(in srgb, var(--panel) 30%, transparent);color:var(--panel);margin-left:6px}.mode-banner .icon-btn{color:inherit}.mode-banner .icon-btn:hover{background:color-mix(in srgb, var(--panel) 16%, transparent)}.hole-tag{font:500 12px var(--mono);background:var(--accent);color:#fff;border-radius:5px;padding:2px 7px}@media (width<=760px){.mode-banner .keys{display:none}.mode-banner{white-space:normal;gap:6px;width:max-content;padding:4px 4px 4px 12px;line-height:1.3;top:8px}.mode-banner .icon-btn{flex:none;width:36px;height:36px}}.view-controls{z-index:4;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;left:12px}.fab-wrap{position:relative}.fab-menu{background:var(--panel);border:1px solid var(--line-strong);width:190px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;font-size:13px;display:flex;position:absolute;bottom:0;left:calc(100% + 8px)}.fab-menu label{cursor:pointer;align-items:center;gap:8px;display:flex}.fab-menu p{color:var(--ink-soft);margin:0;font-size:12px}@media (width<=760px){.fab-menu{inset:0 calc(100% + 8px) auto auto}}.fab{border:1px solid var(--line-strong);background:var(--panel);width:40px;height:40px;color:var(--ink-soft);box-shadow:var(--shadow);border-radius:10px;place-items:center;display:grid}.fab:hover{color:var(--ink)}.fab.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.notices{z-index:7;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(420px,100% - 80px);display:flex;position:absolute;bottom:12px;right:12px}.notice{background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow);pointer-events:auto;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 6px 10px 12px;font-size:13px;animation:.18s ease-out rise;display:flex}.notice>svg{flex:none;margin-top:1px}.notice span{flex:1}.notice .notice-action{flex:none;height:28px;margin-top:-4px;padding:0 10px;font-size:12.5px}.notice.error>svg{color:var(--danger)}.notice.warning>svg{color:var(--warn)}.notice.success>svg{color:var(--accent)}.notice.info>svg{color:var(--info)}.notice.error{border-color:color-mix(in srgb, var(--danger) 45%, transparent)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.drop-zone{z-index:50;background:color-mix(in srgb, var(--accent) 22%, transparent);border:3px dashed var(--accent);pointer-events:none;place-content:center;justify-items:center;gap:10px;font-size:16px;font-weight:600;display:grid;position:fixed;inset:0}.modal-backdrop{z-index:40;background:#0d0e1066;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;width:min(460px,100%);max-height:calc(100% - 32px);overflow-y:auto;box-shadow:0 24px 64px #00000040}.modal.wide{width:min(760px,100%)}.modal-head{justify-content:space-between;align-items:center;padding:16px 14px 8px 20px;display:flex}.modal-head h2{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:17px;font-weight:600}.modal-body{flex-direction:column;gap:12px;padding:6px 20px 20px;display:flex}.modal-body h3{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);margin:8px 0 0;font-size:11px;font-weight:600}.modal-body p{margin:0}.modal-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.modal.samples-modal{flex-direction:column;width:min(1040px,100%);height:min(760px,100% - 32px);display:flex;overflow:hidden}.sample-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:2px 20px 10px;display:flex}.sample-bar .chips{flex:auto;min-width:0}.chip-count{opacity:.6;font-variant-numeric:tabular-nums;margin-left:5px;font-size:11px}.modal-body.samples{flex:auto;gap:16px;min-height:0;padding-top:12px;overflow-y:auto}.sample-group{flex-direction:column;gap:8px;display:flex}.sample-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.sample-card{text-align:left;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--panel-2);flex-direction:column;gap:4px;padding:0 0 12px;display:flex;overflow:hidden}.sample-card:hover{border-color:var(--accent)}.sample-thumb{aspect-ratio:8/5;object-fit:cover;background:var(--line);border-bottom:1px solid var(--line);width:100%;height:auto;margin-bottom:6px;display:block}.sample-title{padding:0 14px;font-weight:600}.sample-desc{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0 14px;font-size:12.5px;display:-webkit-box;overflow:hidden}.library li{align-items:center;gap:4px;display:flex}.settings .setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.settings .setting>span{flex-direction:column;gap:2px;display:flex}.setting-label{font-weight:500}.settings .setting.stacked{flex-direction:column;align-items:stretch;gap:8px}.setting input[type=checkbox]{appearance:none;background:var(--panel-3);border:1px solid var(--line-strong);cursor:pointer;border-radius:11px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.setting input[type=checkbox]:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0000004d}.setting input[type=checkbox]:checked{background:var(--accent)}.setting input[type=checkbox]:checked:after{transform:translate(16px)}.setting input[type=range]{width:160px;accent-color:var(--accent)}.inline-icon{vertical-align:-3px;color:var(--accent)}.steps{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.quickstart-modal{width:min(720px,100%)}.controls{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px 32px;display:grid}.control-group h4{color:var(--ink);margin:0 0 6px;font-size:12.5px;font-weight:600}.shortcuts{grid-template-columns:fit-content(50%) 1fr;align-items:baseline;gap:7px 12px;margin:0;display:grid}.shortcuts div{display:contents}.shortcuts dt{flex-wrap:wrap;align-items:baseline;gap:4px;line-height:1.6;display:flex}.key-alt,.key-combo{white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.shortcuts kbd{white-space:nowrap}.key-sep,.key-plus{color:var(--ink-faint);font-size:11px}.shortcuts dd{color:var(--ink-soft);margin:0;font-size:12.5px;line-height:1.45}.meter{color:#dfe9e3;width:256px;max-height:calc(100% - 24px);box-shadow:var(--shadow);z-index:5;background:#171c1a;border:1px solid #2c3632;border-radius:12px;flex-direction:column;display:flex;position:absolute;bottom:12px;left:64px;overflow-y:auto}.meter-head{color:#b8c7bf;cursor:grab;touch-action:none;align-items:center;gap:8px;padding:5px 6px 5px 12px;display:flex}.meter-head:active{cursor:grabbing}.meter-head h2{color:#e6efe9;margin:0 auto 0 0;font-size:13px;font-weight:600}.meter .icon-btn{color:inherit}.meter .icon-btn:hover{background:#ffffff14}.meter-card{padding:2px 10px 10px}.meter-card+.meter-card{border-top:1px solid #2c3632;padding-top:10px}.meter-display{color:#18211a;background:#b9cbb0;border-radius:8px;justify-content:flex-end;align-items:baseline;padding:8px 12px;display:flex;position:relative;box-shadow:inset 0 2px 4px #00000040}.meter-display output{font:600 28px var(--mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.meter-display.idle output{color:#18211a70}.meter-display.fuse output{color:#a3241b}.meter-index{font:600 11px var(--mono);color:#18211a99;position:absolute;top:6px;left:10px}.meter-row{align-items:center;gap:6px;margin-top:8px;display:flex}.meter-mode{flex:1}.meter .segmented{background:#1f2623;border-color:#36423d}.meter .segmented button{color:#8fa59a;height:30px;font-family:var(--font);cursor:pointer;background:0 0}.meter .segmented button:hover{background:#28312d}.meter .segmented button.on{color:#171c1a;background:#dfe9e3}.meter-probes{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.meter-probe{align-items:center;min-width:0;display:flex}.meter-probe-btn{color:#e6efe9;min-width:0;height:30px;font:500 12px var(--font);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#1f2623;border:1px solid #36423d;border-radius:7px;flex:1;align-items:center;gap:6px;padding:0 8px;display:flex;overflow:hidden}.meter-probe-btn:hover{background:#28312d}.meter-probe-btn.on{border-color:#7fe0a6}.meter-dot{border:1px solid #fff5;border-radius:50%;flex:none;width:10px;height:10px}.meter-probe.red .meter-dot{background:#d7262b}.meter-probe.black .meter-dot{background:#26272a}.meter-note{color:#8fa59a;margin:8px 2px 0;font-size:12px;line-height:1.4}.meter-note.warn{color:#ffb4a8}.meter-foot{padding:0 12px 10px}.meter-foot .link-btn,.meter .link-btn{font:inherit;color:#8fa59a;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.meter-foot .link-btn:disabled{display:none}@media (width<=760px){.meter{width:auto;max-height:50%;right:8px;top:auto!important;bottom:8px!important;left:8px!important}.meter-head{cursor:default}.meter-display output{font-size:24px}}.scope{color:#dfe9e3;width:min(540px,100% - 24px);max-height:calc(100% - 24px);box-shadow:var(--shadow);z-index:5;--sc-line:#36423d;--sc-btn:#1f2623;--sc-btn-hover:#28312d;--sc-soft:#8fa59a;background:#171c1a;border:1px solid #2c3632;border-radius:12px;flex-direction:column;display:flex;position:absolute;top:12px;left:12px;overflow:hidden}.scope.floating{min-width:380px}.scope-head{color:#b8c7bf;flex:none;align-items:center;gap:8px;padding:5px 6px 5px 12px;display:flex}.scope.floating .scope-head{cursor:grab;touch-action:none}.scope.floating .scope-head:active{cursor:grabbing}.scope-head h2{color:#e6efe9;white-space:nowrap;margin:0;font-size:13px;font-weight:600}.scope-status{font:500 11px var(--mono);color:var(--sc-soft);white-space:nowrap}.scope-status.ok{color:#7fe0a6}.scope-status.stop{color:#ff8a7a}.scope-head-btns{cursor:default;align-items:center;gap:4px;margin-left:auto;display:flex}.scope .icon-btn{color:inherit}.scope .icon-btn:hover,.scope .icon-btn.on{background:#ffffff14}.scope-btn{border:1px solid var(--sc-line);background:var(--sc-btn);color:#e6efe9;height:26px;font:500 12px var(--font);white-space:nowrap;border-radius:7px;padding:0 10px}.scope-btn:hover:not(:disabled){background:var(--sc-btn-hover)}.scope-btn:disabled{opacity:.4}.scope-btn.on{color:#f2d77a;border-color:#e8c75a}.scope-btn.run{color:#a6f0c4;background:#1d3a2b;border-color:#2f7a52;min-width:48px}.scope-btn.run.stopped{color:#ffb3a8;background:#3a201c;border-color:#8a3a30}.scope-screen{aspect-ratio:10/6.4;border-radius:6px;flex:none;margin:0 8px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #96c8af2e}.scope:not(.floating) .scope-screen{max-height:34vh}.scope-screen canvas{touch-action:none;width:100%;height:100%;display:block}.scope-idle{color:#a9bdb2;pointer-events:none;background:#0c14118c;place-items:center;margin:0;font-size:13px;display:grid;position:absolute;inset:0}.scope-review{color:#dcebe38c;pointer-events:none;margin:0;font-size:10px;position:absolute;top:4px;left:6px}.scope-tabs{scrollbar-width:none;flex:none;gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.scope-tabs button{height:26px;color:var(--sc-soft);font:500 12px var(--font);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;flex:1 0 auto;padding:0 8px}.scope-tabs button:hover{color:#dfe9e3}.scope-tabs button.on{color:#e6efe9;background:#1f2623;border-bottom-color:#7fe0a6}.scope-body{border-top:1px solid #252e2a;min-height:0;padding:8px 10px 10px;overflow-y:auto}.scope select,.scope input[type=text]{border:1px solid var(--sc-line);background:var(--sc-btn);color:#e6efe9;height:26px;font:12px var(--mono);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:7px;min-width:0;padding:0 4px}.scope input[type=text]{width:64px;padding:0 6px}.scope input[type=range]{accent-color:#7fe0a6;width:100%}.scope-chs{flex-direction:column;gap:4px;display:flex}.scope-ch{flex-wrap:wrap;align-items:center;gap:4px 5px;min-width:0;display:flex}.scope-ch.off .scope-read{opacity:.4}.scope-probe{border:1px solid var(--sc-line);background:var(--sc-btn);color:#e6efe9;min-width:74px;height:26px;font:500 12px var(--mono);border-radius:7px;align-items:center;gap:6px;padding:0 8px 0 7px;display:inline-flex}.scope-probe .dot{background:var(--ch);width:10px;height:10px;box-shadow:0 0 6px var(--ch);border-radius:50%}.scope-ch.off .scope-probe .dot{box-shadow:inset 0 0 0 1.5px var(--ch);background:0 0}.scope-probe.on{border-color:var(--ch);background:color-mix(in srgb, var(--ch) 16%, #1f2623)}.scope-gap{width:24px}.scope-tog{border:1px solid var(--sc-line);background:var(--sc-btn);min-width:34px;height:26px;color:var(--sc-soft);font:500 11px var(--mono);border-radius:7px;padding:0 6px}.scope-tog.on{color:#e6efe9;background:#2a3530;border-color:#5d7368}.scope-nudge{display:inline-flex}.scope-nudge button{border:1px solid var(--sc-line);background:var(--sc-btn);color:#c9d8d0;width:24px;height:26px;font-size:9px}.scope-nudge button:first-child{border-radius:7px 0 0 7px}.scope-nudge button:last-child{border-left:0;border-radius:0 7px 7px 0}.scope-nudge button:hover,.scope-tog:hover{background:var(--sc-btn-hover)}.scope-read{font:11.5px var(--mono);color:var(--ch);white-space:nowrap;margin-left:auto}.scope-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:start;gap:8px 12px;display:grid}.scope-grid .wide{grid-column:1/-1}.scope-field{flex-direction:column;gap:4px;min-width:0;display:flex}.scope-field>span{font:11px var(--mono);color:var(--sc-soft);text-transform:uppercase;letter-spacing:.04em}.scope-inline{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.scope-inline.nowrap{flex-wrap:nowrap}.scope-inline.nowrap select{flex:1}.scope-unit{font:12px var(--mono);color:var(--sc-soft)}.scope-seg{border:1px solid var(--sc-line);border-radius:7px;display:flex;overflow:hidden}.scope-seg button{background:var(--sc-btn);height:26px;color:var(--sc-soft);font:500 12px var(--mono);white-space:nowrap;border:0;flex:1;padding:0 8px}.scope-seg button+button{border-left:1px solid var(--sc-line)}.scope-seg button.on{color:#e6efe9;background:#2f4a3c}.scope-chips{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.scope-chips button{border:1px solid var(--sc-line);height:24px;color:var(--sc-soft);font:500 11px var(--mono);background:0 0;border-radius:12px;padding:0 9px}.scope-chips button.on{color:#e6efe9;background:#2a3530;border-color:#5d7368}.scope-table-wrap{overflow-x:auto}.scope-table{border-collapse:collapse;font:11.5px var(--mono);white-space:nowrap}.scope-table th,.scope-table td{text-align:right;padding:3px 10px 3px 0}.scope-table thead th{color:var(--sc-soft);font-weight:500}.scope-table tbody th{text-align:left}.scope-readouts{font:12px var(--mono);color:#e6efe9;flex-wrap:wrap;gap:4px 16px;display:flex}.scope-hint{color:var(--sc-soft);margin:4px 0 0;font-size:11.5px;line-height:1.4}.scope-decoded{min-width:0}.scope-text{color:#ffd2a6;max-height:64px;font:12px var(--mono);white-space:pre-wrap;word-break:break-all;-webkit-user-select:text;user-select:text;background:#0c1411;border-radius:6px;margin:0 0 6px;padding:6px 8px;overflow:auto}.scope-frames{max-height:150px;font:11.5px var(--mono);background:#0c1411;border-radius:6px;margin:0;padding:0;list-style:none;overflow-y:auto}.scope-frames li{color:#ffd2a6;gap:12px;padding:2px 8px;display:flex}.scope-frames li:nth-child(2n){background:#ffffff06}.scope-frames .t{text-align:right;width:76px;color:var(--sc-soft);flex:none}.scope-frames li.addr{color:#ffe08a}.scope-frames li.start,.scope-frames li.stop{color:#9ee6b4}.scope-frames li.error,.scope-frames li.nak,.scope-frames .e{color:#ff8a7a}.scope-resize{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,#0000 50%,#96c8af59 50%,#0000 60% 70%,#96c8af59 70%,#0000 80%);width:16px;height:16px;position:absolute;bottom:0;right:0}.seg-pins{flex-direction:column;align-items:center;gap:4px;display:flex}.seg-row{grid-template-columns:repeat(5,1fr);gap:4px;width:100%;display:grid}.seg-row span{background:var(--panel-2);font:500 12px var(--mono);border-radius:6px;flex-direction:column;align-items:center;padding:3px 0;display:flex}.seg-row span b{color:var(--ink-faint);font-size:10px;font-weight:400}.seg-row span.com{color:var(--accent)}.seg-digit{font:600 40px/1 var(--mono);color:#e0403a;transform:skew(-8deg)}.share-url{font:12px var(--mono)}@media (width<=760px){.part-card{grid-template-rows:36px 30px;width:92px;padding:8px 4px 6px}.part-hint{display:none}.drawer-items{--card-h:calc(36px + 2 * 1.2 * 12.5px + 4px + 14px + 2px);--card-top:2px}.part-icon{height:36px}.part-icon img{width:34px;height:34px}.chips{display:none}.search{flex:1;height:36px}.search input{font-size:16px}.drawer-items{padding:var(--card-top) 10px 0;gap:6px}.info-pane{width:auto;max-height:46%;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);overscroll-behavior:contain;border-width:1px 0 0;border-radius:14px 14px 0 0;inset:auto 0 0}.stage{position:relative}.drawer{position:absolute;bottom:0;left:0;right:0}.stage.has-selection .drawer{display:none}.view-controls{inset:12px 12px auto auto}.info-head{padding-top:10px}.info-body{gap:10px;padding-bottom:10px}.info-actions{padding-top:8px;padding-bottom:10px}.notices{max-width:none;inset:12px 64px auto 12px}.mode-banner{max-width:calc(100% - 76px);left:12px;transform:none}.scope{border-width:0 0 1px;border-radius:0 0 12px 12px;width:100%;max-height:62%;top:0;left:0}.scope-head{gap:6px;padding-block:2px}.scope-head h2{display:none}.scope-btn{padding:0 8px}.scope-screen{aspect-ratio:auto;height:clamp(150px,26vh,260px);max-height:none}.scope-btn{height:30px}.scope-tabs{padding-top:4px}.scope-tabs button{height:30px;padding:0 6px;font-size:11.5px}.scope-body{overscroll-behavior:contain;max-height:28vh}.scope-compact{flex-direction:column;gap:6px;display:flex}.scope-chans{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.scope-chan{border:1px solid var(--sc-line);background:var(--sc-btn);color:#e6efe9;min-width:0;font:500 11px var(--mono);text-align:left;border-radius:7px;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 6px;display:flex}.scope-chan .name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:5px;max-width:100%;display:flex;overflow:hidden}.scope-chan .dot{background:var(--ch);width:8px;height:8px;box-shadow:0 0 5px var(--ch);border-radius:50%;flex:none}.scope-chan.off .dot{box-shadow:inset 0 0 0 1.5px var(--ch);background:0 0}.scope-chan .val{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--ch);font-size:10.5px;overflow:hidden}.scope-chan.off .val{opacity:.45}.scope-chan.sel{border-color:var(--ch);background:color-mix(in srgb, var(--ch) 14%, #1f2623)}.scope-chan.picking{border-style:dashed}.scope-compact .scope-ch{flex-wrap:nowrap;gap:4px}.scope-compact .scope-ch select{flex:auto;min-width:0}.scope-compact .scope-probe{min-width:0}.scope-compact .scope-read{margin:0}.scope-compact .scope-ch .scope-probe,.scope-compact .scope-ch .scope-tog,.scope-compact .scope-ch select,.scope-compact .scope-nudge button{height:32px}.scope-nudge button{width:28px}.scope select,.scope-tog,.scope-seg button,.scope-probe{height:30px}.scope-chips button{height:28px}.scope-body{padding:6px 8px 8px}.scope select,.scope-probe,.scope-tog,.scope-seg button{font-size:11px}.scope-probe{min-width:64px;padding:0 6px}.scope-read{flex-basis:100%;margin-left:2px;font-size:10.5px}.scope-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.stage.scope-open .info-pane{max-height:min(50%, calc(100% - var(--scope-h,62%) - 6px))}.stage.scope-open.has-selection .view-controls{bottom:calc(var(--info-h,46%) + 8px);flex-direction:row}.info-pane.phone .info-head{touch-action:none;z-index:1;background:var(--panel);padding-top:2px;position:sticky;top:16px}.sheet-handle{z-index:2;background:var(--panel);cursor:grab;touch-action:none;border:0;justify-content:center;align-items:center;width:100%;height:16px;padding:0;display:flex;position:sticky;top:0}.sheet-handle span{background:var(--line-strong);border-radius:2px;width:36px;height:4px}.info-pane.min{cursor:pointer;overflow:hidden}.info-pane.dragging{-webkit-user-select:none;user-select:none;overflow:hidden}.info-pane.min:not(.dragging)>:not(.info-head):not(.sheet-handle){display:none}.info-pane.min .info-head{padding-bottom:10px}.stage.scope-open .view-controls,.stage.scope-open .notices,.stage.scope-open .mode-banner{top:auto;bottom:calc(var(--drawer-h,190px) + 12px)}}.crash,.gl-lost{padding-block:24px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--bg);color:var(--ink);text-align:center;z-index:30;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.crash h2{margin:0;font-size:17px}.crash pre{white-space:pre-wrap;background:var(--panel-2);max-width:min(560px,100%);font:12px/1.5 var(--mono);text-align:left;border-radius:8px;margin:0;padding:10px 12px;overflow:auto}.crash-actions{gap:8px;display:flex}.link-btn{color:var(--ink-soft);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-right:auto;padding:0 4px;font-size:13px;text-decoration:underline}.link-btn:hover{color:var(--ink)}.about{line-height:1.55}.about-lede{color:var(--ink);font-size:15px}.about p:not(.about-lede){color:var(--ink-soft)}.about .about-offline{background:var(--accent-soft);color:var(--ink);border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.about .about-offline svg{color:var(--accent);flex:none;margin-top:3px}.about .about-offline.unavailable{background:var(--line)}.about .about-offline.unavailable svg{color:var(--ink-faint)}.credits{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.credits li{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:0 12px;padding:8px 0;display:grid}.credits li:last-child{border-bottom:1px solid var(--line)}.credits a{color:var(--ink);font-weight:500;text-decoration:none}.credits a:hover{text-decoration:underline}.credit-what{color:var(--ink-soft);grid-column:1;font-size:13px}.credit-licence{font-family:var(--mono,"IBM Plex Mono", monospace);color:var(--ink-faint);text-align:right;grid-area:1/2/span 2;align-self:center;font-size:11.5px}.about .about-version{font-family:var(--mono,"IBM Plex Mono", monospace);color:var(--ink-faint);font-size:12px}.about .about-licences{color:var(--ink-soft);font-size:12.5px}@media (width<=600px){.sample-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.sample-bar{flex-wrap:wrap;padding:2px 16px 10px}.sample-bar .search{flex:100%;order:-1;margin-left:0}.sample-bar .chips{flex:100%;display:flex}.sample-title,.sample-desc{padding:0 10px}}.link-button{color:var(--accent);font:500 12.5px var(--font);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0}.code-view,.serial-out{background:var(--panel-2);border:1px solid var(--line);font:12px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:10px 11px;overflow:auto}.code-view{max-height:260px}.serial-out{height:150px;color:var(--ink)}.serial-empty{color:var(--ink-faint);font-family:var(--font)}.serial-send{gap:6px;display:flex}.serial-send input{border:1px solid var(--line-strong);background:var(--panel);min-width:0;height:34px;font:13px var(--mono);border-radius:7px;flex:1;padding:0 10px}.danger-text{color:var(--danger)}.mcu-pins{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:8px;grid-template-columns:1fr 1fr;gap:2px 10px;padding:8px;display:grid}.mcu-col{flex-direction:column;gap:2px;display:flex}.mcu-pin{font:11.5px/1.5 var(--mono);justify-content:space-between;gap:6px;display:flex}.mcu-col.right .mcu-pin{flex-direction:row-reverse}.mcu-pin .pin-v{color:var(--ink-soft);font-variant-numeric:tabular-nums}.code-editor{background:var(--panel);border-right:1px solid var(--line-strong);flex-direction:column;flex:1;min-width:0;min-height:0;animation:.15s ease-out fade;display:flex}.code-editor.peek{display:none}.code-head{background:var(--panel-2);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px 0;display:flex}.code-boards{scrollbar-width:none;flex:1;align-self:stretch;align-items:flex-end;gap:4px;min-width:0;display:flex;overflow-x:auto}.code-boards::-webkit-scrollbar{display:none}.code-board{height:38px;color:var(--ink-soft);font:500 13px var(--font);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:8px 8px 0 0;flex:none;align-items:center;gap:8px;margin-bottom:-1px;padding:0 12px 0 10px;display:inline-flex}.code-board:hover{color:var(--ink);background:var(--line)}.code-board.on{background:var(--panel);border-color:var(--line);height:46px;color:var(--ink);padding-right:10px}.code-switch{border:1px solid var(--line-strong);background:var(--panel);height:32px;color:var(--ink-soft);white-space:nowrap;cursor:pointer;border-radius:7px;flex:none;align-self:center;align-items:center;gap:4px;margin:0 0 6px 6px;padding:0 8px 0 10px;font-size:13px;font-weight:500;display:inline-flex;position:relative}.code-switch:hover,.code-switch:focus-within{color:var(--ink)}.code-switch select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.code-board-icon{flex:none;width:22px;height:22px}.code-board-text{flex-direction:column;align-items:flex-start;line-height:1.2;display:flex}.code-board.on .code-board-name{font-size:14px;font-weight:600}.code-board-lang{color:var(--ink-faint);font-size:11.5px}.code-board-locate{color:var(--ink-faint);margin-left:4px;transition:color .15s}.code-board.on:hover .code-board-locate,.code-board.on:focus-visible .code-board-locate{color:var(--accent)}.code-head .code-close{align-self:center;margin-top:-6px;display:none}.code-bar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px;display:flex}.code-bar .spacer{flex:1}.code-peek-bar{z-index:36;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));animation:.15s ease-out fade;position:fixed;transform:translate(-50%)}.code-peek-bar .btn{height:46px;box-shadow:var(--shadow);white-space:nowrap;border-radius:23px;padding:0 18px;font-size:15px}.code-tag-anchor{pointer-events:none}.code-tag{background:var(--accent);color:var(--accent-ink);font:600 12px var(--font);white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;display:inline-flex;transform:translateY(-14px);box-shadow:0 2px 8px #0003}button.code-tag{pointer-events:auto;cursor:pointer;padding:7px 12px;font-size:13px}.code-tag:after{content:"";border:4px solid #0000;border-bottom:0;border-top-color:var(--accent);margin-left:-4px;position:absolute;bottom:-4px;left:50%}.code-tag{position:relative}.code-tag.brief{animation:3.2s forwards code-tag-brief}@keyframes code-tag-brief{0%,80%{opacity:1}to{opacity:0}}.code-tools{align-items:center;gap:2px;display:flex}.code-tools .icon-btn{width:32px;height:32px}.code-keys{scrollbar-width:none;border-top:1px solid var(--line);background:var(--panel-2);flex:none;gap:5px;padding:6px 8px;display:flex;overflow-x:auto}.code-keys::-webkit-scrollbar{display:none}.code-keys button{background:var(--panel);min-width:38px;height:38px;box-shadow:0 1px 0 var(--line-strong);font:500 17px var(--mono);color:var(--ink);touch-action:pan-x;-webkit-tap-highlight-color:transparent;border:0;border-radius:7px;flex:none;place-items:center;padding:0 8px;display:inline-grid}.code-keys button:active{background:var(--panel-3)}.code-keys .wide{font:600 13px var(--font);padding:0 12px}.code-keys .flip svg{transform:scaleX(-1)}.code-keys .done{color:var(--accent);margin-left:auto}.code-host{flex:1;min-width:0;min-height:0}.code-body{flex:1;align-items:stretch;min-height:0;display:flex;position:relative}.file-tree{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;flex:none;width:196px;max-width:calc(100% - 200px);min-height:0;display:flex;position:relative}.code-body.narrow .file-tree{z-index:3;width:min(270px,82%);max-width:none;box-shadow:var(--shadow);animation:.12s ease-out fade;position:absolute;top:0;bottom:0;left:0}.tree-resizer{z-index:2;cursor:col-resize;touch-action:none;width:8px;position:absolute;top:0;bottom:0;right:-4px}.tree-resizer:after{content:"";background:var(--accent);opacity:0;width:2px;transition:opacity .15s;position:absolute;top:0;bottom:0;left:3px}.tree-resizer:hover:after,.tree-resizer:active:after{opacity:1}.tree-scrim{z-index:2;background:#0000002e;border:0;position:absolute;inset:0}.tree-head{align-items:center;gap:2px;padding:6px 6px 4px 12px;display:flex}.tree-title{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);flex:1;font-size:11px;font-weight:600}.tree,.tree ul{margin:0;padding:0;list-style:none}.tree{flex:1;padding-bottom:16px;overflow-y:auto}.tree-row{align-items:center;height:28px;padding-right:4px;display:flex;position:relative}.tree-row:hover{background:var(--panel-3)}.tree-row.on{background:var(--accent-soft)}.tree-open{min-width:0;height:100%;color:var(--ink-soft);font:13px var(--font);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:4px;padding:0;display:flex}.tree-row.on .tree-open{color:var(--ink);font-weight:500}.tree-row.sel{background:color-mix(in srgb, var(--accent) 16%, transparent)}.tree-row.sel.on{background:color-mix(in srgb, var(--accent) 26%, transparent)}.tree-row.drop,.file-tree.drop .tree{background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}.tree-row.lifted{opacity:.5}.file-tree.dragging,.file-tree.dragging .tree-open{cursor:grabbing}.tree-row{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tree-ghost{z-index:60;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow);font:500 12px var(--font);white-space:nowrap;pointer-events:none;border-radius:6px;align-items:center;gap:5px;padding:4px 9px;display:flex;position:fixed}.tree-ghost-to{color:var(--ink-faint);font-weight:400}.tree-chevron{width:13px;color:var(--ink-faint);flex:none;display:inline-block}.tree-icon{color:var(--ink-faint);flex:none}.tree-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-name.error{color:var(--danger)}.tree-tag{background:var(--panel-3);color:var(--ink-faint);border-radius:4px;flex:none;margin-left:2px;padding:1px 5px;font-size:10px;font-weight:500}.tree-actions{flex:none;display:none}.tree-row:hover .tree-actions,.tree-row:focus-within .tree-actions{display:flex}@media (hover:none){.tree-row.on .tree-actions{display:flex}}.tree-actions .icon-btn.small{width:22px;height:22px}.tree-input{flex:1;min-width:0;margin-left:4px;position:relative}.tree-input input{border:1px solid var(--accent);background:var(--panel);width:100%;height:22px;color:var(--ink);font:13px var(--font);border-radius:4px;outline:none;padding:0 5px}.tree-input input[aria-invalid=true]{border-color:var(--danger)}.tree-problem{z-index:4;border:1px solid var(--danger);background:var(--panel);color:var(--danger);border-radius:4px;padding:4px 6px;font-size:11.5px;line-height:1.3;position:absolute;top:25px;left:0;right:0}.code-more .menu{z-index:20;width:260px;max-height:min(480px,70vh)}.code-menu .menu-label{border-top:1px solid var(--line);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin-top:4px;padding:10px 10px 4px;font-size:11px;font-weight:600;display:flex}.code-menu-examples{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.code-menu-examples button{flex:none;height:34px;padding-left:32px;font-size:13.5px}.code-files-btn{border:1px solid var(--line-strong);background:var(--panel);max-width:200px;height:32px;color:var(--ink-soft);font:500 13px var(--font);white-space:nowrap;cursor:pointer;border-radius:7px;align-items:center;gap:6px;margin-right:4px;padding:0 8px 0 9px;display:inline-flex}.code-files-btn:hover{background:var(--panel-2)}.code-files-btn.on{background:var(--accent-soft);color:var(--accent);border-color:#0000}.code-file-name{text-overflow:ellipsis;color:var(--ink);font-family:var(--mono);font-size:12.5px;overflow:hidden}.code-file-count{background:var(--panel-3);min-width:18px;color:var(--ink-soft);text-align:center;border-radius:9px;flex:none;padding:0 5px;font-size:11px;line-height:18px}.code-host .cm-editor{height:100%}.code-status{max-height:34%;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);flex-direction:column;gap:8px;font-size:13px;display:flex;overflow-y:auto}.code-status:empty{display:none}.code-console{border-top:1px solid var(--line-strong);background:var(--panel);flex-direction:column;flex:none;display:flex;position:relative}.code-console.open{height:min(220px,32%);max-height:max(120px,100% - 220px)}.console-resizer{z-index:2;cursor:row-resize;touch-action:none;height:8px;position:absolute;top:-4px;left:0;right:0}.console-resizer:after{content:"";background:var(--accent);opacity:0;height:2px;transition:opacity .15s;position:absolute;top:3px;left:0;right:0}.console-resizer:hover:after,.resizing-y .console-resizer:after{opacity:1}.code-console-tabs{background:var(--panel-2);flex:none;align-items:center;gap:2px;height:36px;padding:0 6px 0 8px;display:flex}.code-console.open .code-console-tabs{border-bottom:1px solid var(--line)}.code-console-tabs .spacer{flex:1}.code-console-tabs [role=tab]{height:26px;color:var(--ink-soft);font:600 12px var(--font);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px}.code-console-tabs [role=tab]:hover{color:var(--ink)}.code-console-tabs [role=tab].on{background:var(--panel);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong)}.console-serial{min-height:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;gap:6px;display:flex}.console-serial .serial-out{flex:1;height:auto;min-height:0}.code-status p{margin:0}.code-progress{color:var(--ink-soft);align-items:center;gap:8px;display:flex}.code-progress .spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.code-ok{color:var(--ok)}.code-log{font:12px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--danger);margin:0}.code-diags{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.code-diag{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;gap:10px;padding:5px 8px;display:flex}.code-diag:hover{background:var(--line)}.code-diag-line{flex:none;min-width:56px;font-weight:600}.code-diag.error .code-diag-line{color:var(--danger)}.code-diag.warning .code-diag-line{color:var(--warn)}@media (width<=760px){.code-editor{z-index:35;width:100%;padding-top:env(safe-area-inset-top,0px);border-right:0;position:fixed;top:0;bottom:0;left:0}.code-editor.over-keyboard .code-status{padding-bottom:10px}.code-editor.over-keyboard .code-console{display:none}.code-console.open{height:min(200px,30%)}.code-head{padding:6px 6px 0 8px}.code-board{height:40px}.code-board.on{height:48px}.code-head .code-close{margin-top:-4px;display:inline-grid}.code-bar{padding:6px 8px}.code-tools{flex:1;min-width:0}.code-bar .spacer{display:none}.code-files-btn{max-width:60%;height:38px}.tree-row{height:38px}.tree-open{font-size:14px}.tree-actions .icon-btn.small{width:32px;height:32px}.tree-input input{height:30px;font-size:16px}.tree-problem{top:33px}.code-tools .icon-btn,.code-more>.icon-btn,.code-close{width:40px;height:40px}.code-upload{height:38px;padding:0 14px;font-size:14px}.code-host .cm-foldGutter{display:none!important}.code-host .cm-lineNumbers .cm-gutterElement{min-width:24px;padding:0 6px 0 4px!important}.code-host .cm-content{padding-right:6px}.code-status{max-height:30%}}.mcu-actions{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.sensor-slider input[type=range]{width:100%;accent-color:var(--accent)}.sensor-ends{color:var(--ink-faint);justify-content:space-between;font-size:11.5px;display:flex}.lcd-text{background:var(--panel-2);border:1px solid var(--line);font:500 13px/1.45 var(--mono);white-space:pre;border-radius:8px;min-height:calc(2.9em + 16px);margin:0 0 8px;padding:8px 10px;overflow-x:auto}.debug-bar{bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--panel);border:1px solid var(--line-strong);max-width:calc(100% - 32px);box-shadow:var(--shadow);z-index:7;border-radius:12px;align-items:center;gap:10px;padding:6px 6px 6px 14px;font-size:13px;animation:.15s ease-out fade;display:flex;position:absolute;left:50%;transform:translate(-50%)}.debug-bar>svg{color:var(--warn);flex:none}.debug-where{flex-direction:column;min-width:0;line-height:1.3;display:flex}.debug-where strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.debug-where{flex:auto}.debug-code{flex:none}.debug-short{display:none}.debug-where code{font:12px var(--mono);color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.debug-buttons{flex:none;gap:6px;display:flex}.code-debug{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--warn) 12%, var(--panel));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px 8px 16px;font-size:13px;display:flex}.code-debug .sub{color:var(--ink-soft)}.cm-debug-gutter{cursor:pointer}.cm-debug-gutter .cm-gutterElement{justify-content:center;align-items:center;width:16px;padding:0 2px;display:flex}.cm-debug-mark{border-radius:50%;width:10px;height:10px;display:block}.cm-debug-mark.bp{background:var(--danger)}.cm-debug-mark.here{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid var(--warn);border-radius:0;width:0;height:0}.cm-debug-mark.bp.here{width:10px;height:10px;box-shadow:0 0 0 2.5px var(--warn);border:0;border-radius:50%}@media (hover:hover){.cm-debug-gutter .cm-gutterElement:hover:empty:before{content:"";background:color-mix(in srgb, var(--danger) 35%, transparent);border-radius:50%;width:10px;height:10px}}.cm-debug-current{background:color-mix(in srgb, var(--warn) 22%, transparent)!important}@media (width<=760px){.debug-bar{gap:8px;max-width:none;padding:4px 4px 4px 12px;inset:12px 60px auto 12px;transform:none}.debug-bar .btn{height:34px}.debug-bar .debug-code{width:34px;height:34px}.cm-debug-gutter .cm-gutterElement{width:22px}.code-debug .sub{display:none}}@media (width<=560px){.debug-bar .debug-label{display:none}.debug-bar .btn{width:40px;padding:0}}@media (width<=380px){.debug-bar .debug-long{display:none}.debug-bar .debug-short{display:inline}}.bench{box-sizing:border-box;height:100%;padding:24px 16px 48px;overflow-y:auto}.bench-head,.bench-table{max-width:720px;margin:0 auto}.bench h1{margin:0 0 8px;font-size:22px}.bench-hint{color:var(--ink-soft);margin:0 0 8px}.bench-device{font:12px/1.4 var(--mono);color:var(--ink-faint);overflow-wrap:anywhere;margin:0 0 16px}.bench-actions{flex-wrap:wrap;gap:8px;display:flex}.bench-actions a.btn{color:inherit;text-decoration:none}.bench-progress{color:var(--ink-soft);margin:12px 0 0}.bench-error{color:var(--danger);margin:12px 0 0}.bench-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:20px}.bench-table th,.bench-table td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 6px}.bench-table th:first-child,.bench-table td:first-child{text-align:left;white-space:normal}.bench-table th{color:var(--ink-soft);font-size:12px;font-weight:600}.bench-level{color:var(--ink-faint);font-size:12px;display:block}.bench-table tr.slow td:nth-child(2){color:var(--danger);font-weight:600}.bench-table tr.tight td:nth-child(2){color:var(--warn);font-weight:600}.run-btn.nudge{animation:1.6s ease-in-out infinite run-nudge;position:relative}.run-btn.nudge:after{content:"";border-radius:inherit;box-shadow:0 0 0 0 var(--accent);pointer-events:none;animation:1.6s ease-out infinite run-ring;position:absolute;inset:0}@keyframes run-nudge{0%,60%,to{transform:scale(1)}20%{transform:scale(1.1)}40%{transform:scale(.97)}}@keyframes run-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 70%, transparent)}70%,to{box-shadow:0 0 0 12px color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.run-btn.nudge{animation:none}}.left-pane:not(.tab-memory) .memory-editor{display:none}.memory-editor{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}@media (width<=760px){.memory-editor{z-index:40;position:fixed;inset:0}}.memory-meta{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.memory-meta .sub{margin:0}.memory-name{color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.memory-name input{flex:1;min-width:0}.memory-actions{flex-wrap:wrap;gap:6px;display:flex}.memory-error{color:var(--danger);margin:0;font-size:12px}.memory-hex{resize:none;background:var(--panel);min-height:0;color:var(--ink);font:12px/1.6 var(--mono);white-space:pre;tab-size:2;border:0;outline:none;flex:1;margin:0;padding:10px 12px;overflow:auto}.memory-field{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.memory-field .field-label{flex-basis:100%}.memory-field>span:not(.field-label){flex:1;min-width:0}@media (pointer:coarse){.pane-resizer,.tree-resizer{width:24px;right:-12px}.pane-resizer:after,.tree-resizer:after{left:11px}.console-resizer{height:24px;top:-12px}.console-resizer:after{top:11px}.pane-resizer:before,.tree-resizer:before,.console-resizer:before{content:"";background:var(--ink-faint);opacity:.55;border-radius:3px;position:absolute}.pane-resizer:before,.tree-resizer:before{width:4px;height:36px;margin-top:-18px;top:50%;left:10px}.console-resizer:before{width:36px;height:4px;margin-left:-18px;top:10px;left:50%}.scope-resize{width:30px;height:30px}}
