:root{--neutral-0:#fff;--neutral-50:#eee;--neutral-100:#d9d9d9;--neutral-200:#b8b8b8;--neutral-300:#949494;--neutral-400:#888;--neutral-500:#606060;--neutral-600:#414141;--neutral-700:#2e2e2e;--neutral-750:#242424;--neutral-800:#282828;--neutral-850:#212121;--neutral-900:#171717;--neutral-950:#1c1c1c;--neutral-975:#161616;--indigo-500:#704ce0;--jade-500:#00beab;--red-500:#ed5866;--amber-500:#f0a43a;--studio-font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", system-ui, sans-serif;--display-font:"SF Pro Display", -apple-system, BlinkMacSystemFont, "Inter", system-ui, sans-serif;--mono-font:"SF Mono", ui-monospace, "JetBrains Mono", Menlo, monospace;--font-meta:600 10.5px/14px var(--mono-font);--tracking-meta:.07em;--radius-xs:2px;--radius-small:4px;--radius-medium:6px;--radius-row:8px;--radius-tile:10px;--radius-popup:12px;--radius-card:14px;--surface-radius:16px;--radius-pill:999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1)}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas-bg:#141414;--canvas-grid:#ffffff29;--canvas-part:#d8d8d8;--canvas-part-fill:#141414;--canvas-wire:#8f8f8f;--canvas-hover:#ffffff0a;--surface:#1d1d1d;--surface-raised:#262626;--surface-sunken:#111;--surface-hover:#ffffff0f;--surface-pressed:#ffffff1a;--text-primary:#eee;--text-secondary:#a8a8a8;--text-muted:#7c7c7c;--text-disabled:#555;--hairline:#ffffff14;--border-default:#ffffff1f;--accent:#8d70f0;--accent-strong:#704ce0;--accent-soft:#8d70f024;--accent-marquee:#8d70f014;--signal:#2fd0bf;--chip-bg:#8d70f01a;--chip-line:#8d70f052;--probe:#f0a43a;--danger:var(--red-500);--warn:var(--amber-500);--shadow-color:0 0 0;--shadow-float:0 1px 0 #ffffff0a inset, 0 0 0 1px #ffffff12, 0 12px 32px #00000073, 0 2px 6px #0000004d;--shadow-popup:0 0 0 1px #ffffff14, 0 18px 48px #0000008c;--material-raised:linear-gradient(180deg, #343434, #2a2a2a);--material-raised-hover:linear-gradient(180deg, #3b3b3b, #303030);--bevel:inset 0 1px 0 #ffffff17, 0 0 0 1px #0000008c, 0 1px 2px #00000080;--bevel-sunk:inset 0 1px 3px #0009, 0 0 0 1px #00000080;--field:#121212;--field-shadow:inset 0 1px 2px #0000008c, 0 0 0 1px #ffffff0f;--tooltip-bg:#080808f0;--scrim:#00000080}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas-bg:#f6f6f4;--canvas-grid:#0003;--canvas-part:#262626;--canvas-part-fill:#f6f6f4;--canvas-wire:#7a7a7a;--canvas-hover:#00000009;--surface:#fff;--surface-raised:#fff;--surface-sunken:#f0f0ee;--surface-hover:#0000000d;--surface-pressed:#00000014;--text-primary:#1b1b1b;--text-secondary:#555;--text-muted:#8a8a8a;--text-disabled:#bbb;--hairline:#00000014;--border-default:#0000001f;--accent:#6a46da;--accent-strong:#5b38cc;--accent-soft:#6a46da1c;--accent-marquee:#6a46da0f;--signal:#00a090;--chip-bg:#6a46da12;--chip-line:#6a46da47;--probe:#d9822b;--shadow-float:0 0 0 1px #0000000f, 0 10px 30px #0000001a, 0 2px 6px #0000000f;--shadow-popup:0 0 0 1px #00000012, 0 18px 48px #00000029;--material-raised:linear-gradient(180deg, #fff, #f3f3f1);--material-raised-hover:linear-gradient(180deg, #fff, #ebebe9);--bevel:inset 0 1px 0 #fff, 0 0 0 1px #0000001a, 0 1px 2px #00000014;--bevel-sunk:inset 0 1px 3px #00000024, 0 0 0 1px #0000001a;--field:#f1f1ef;--field-shadow:inset 0 1px 2px #00000014, 0 0 0 1px #00000012;--tooltip-bg:#141414f0;--scrim:#0000002e}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--canvas-bg);color:var(--text-primary);font:500 13px/1.4 var(--studio-font);letter-spacing:-.003em;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit}.app{--dock-h:0px;position:fixed;inset:0}.canvas{width:100%;height:calc(100% - var(--dock-h));touch-action:none;outline:none;display:block;position:absolute;top:0;left:0}.meta{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted)}.float{z-index:10;background:var(--surface);border-radius:var(--surface-radius);box-shadow:var(--shadow-float);align-items:center;gap:4px;padding:5px;display:flex;position:absolute}.float.pill{border-radius:22px}.sep{background:var(--hairline);flex:none;width:1px;height:20px;margin:0 4px}.sep.h{width:24px;height:1px;margin:4px auto}.topleft{gap:10px;padding:5px 12px 5px 5px;top:14px;left:14px}.mark{border-radius:var(--radius-tile);color:#fff;background:linear-gradient(160deg,#8566f0,#5a37cf);flex:none;place-items:center;width:32px;height:32px;display:grid;box-shadow:inset 0 1px #ffffff40,0 1px 3px #0006}.doc-title{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-row);cursor:default;background:0 0;border:0;max-width:280px;padding:4px 6px;font-size:13.5px;font-weight:600;overflow:hidden}.doc-title:hover{background:var(--surface-hover)}.title-input{font:600 13.5px var(--studio-font);color:var(--text-primary);background:var(--field);box-shadow:var(--field-shadow);border-radius:var(--radius-row);border:0;outline:none;width:240px;padding:4px 6px}.topright{top:14px;right:14px}.ib{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:background .15s var(--ease-out), color .15s, transform .12s var(--ease-out), box-shadow .15s;background:0 0;border:0;border-radius:11px;flex:none;place-items:center;padding:0;display:grid;position:relative}.ib:hover{background:var(--material-raised-hover);box-shadow:var(--bevel);color:var(--text-primary)}.ib:active{box-shadow:var(--bevel-sunk);background:var(--surface-pressed);transform:translateY(.5px)scale(.96)}.ib[data-on=true]{color:var(--text-primary);background:var(--surface-pressed);box-shadow:var(--bevel-sunk)}.ib[data-on=true]:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:5px;right:5px}.ib:disabled{opacity:.35;pointer-events:none}.ib svg{transition:transform .25s var(--spring)}.ib:hover svg{transform:scale(1.07)}.ib.rot:hover svg{transform:rotate(90deg)}.btn{border-radius:var(--radius-tile);background:var(--material-raised);height:32px;box-shadow:var(--bevel);color:var(--text-primary);cursor:pointer;transition:transform .12s var(--ease-out), background .15s;border:0;align-items:center;gap:7px;padding:0 12px;font-size:12.5px;font-weight:600;display:inline-flex}.btn:hover{background:var(--material-raised-hover)}.btn:active{box-shadow:var(--bevel-sunk);transform:translateY(.5px)scale(.98)}.btn.ghost{box-shadow:none;color:var(--text-secondary);background:0 0;font-weight:500}.btn.ghost:hover{background:var(--surface-hover);color:var(--text-primary)}.btn.primary{color:#fff;background:linear-gradient(#8467ee,#6a46da);box-shadow:inset 0 1px #fff3,0 0 0 1px #00000059,0 2px 6px #5032c859}.btn.primary:hover{background:linear-gradient(#8d72f2,#714de0)}.kc{font:600 10.5px/1 var(--mono-font);background:var(--surface-hover);box-shadow:inset 0 0 0 1px var(--hairline);color:var(--text-secondary);border-radius:5px;padding:3px 5px}.palette{left:14px;top:calc((100% - var(--dock-h)) / 2);max-height:calc(100% - var(--dock-h) - 150px);scrollbar-width:none;border-radius:18px;grid-template-columns:repeat(2,38px);gap:2px;padding:6px;display:grid;overflow-y:auto;transform:translateY(-50%)}.palette .sep.h{grid-column:1/-1;width:auto;margin:4px 6px}.palette .ib{width:38px;height:38px;color:var(--text-secondary);touch-action:none}.palette .ib svg{overflow:visible}.tip{z-index:100;background:var(--tooltip-bg);color:#f2f2f2;border-radius:var(--radius-row);font:500 12px/1.3 var(--studio-font);transform-origin:var(--transform-origin);transition:opacity .12s, transform .12s var(--ease-out);align-items:center;gap:8px;padding:6px 9px;display:flex;box-shadow:0 0 0 1px #ffffff14,0 6px 18px #00000059}.tip[data-starting-style],.tip[data-ending-style]{opacity:0;transform:scale(.96)}.tip .kc{color:#ddd;background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff14}.zoom{right:14px;bottom:calc(var(--dock-h) + 14px);gap:0}.zoom .val{text-align:center;min-width:52px;font:600 11.5px var(--mono-font);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:10px;height:36px}.zoom .val:hover{background:var(--surface-hover);color:var(--text-primary)}.sound{left:50%;bottom:calc(var(--dock-h) + 14px);border-radius:24px;gap:6px;padding:6px;transform:translate(-50%)}.play{cursor:pointer;color:#fff;width:40px;height:40px;transition:transform .18s var(--spring), background .2s;background:linear-gradient(#8467ee,#6a46da);border:0;border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff38,0 0 0 1px #00000059,0 3px 10px #5a37cf73}.play:hover{transform:scale(1.05)}.play:active{transform:scale(.94)}.play[data-on=true]{background:linear-gradient(#24d3c0,#00ae9c);box-shadow:inset 0 1px #ffffff40,0 0 0 1px #00000059,0 3px 12px #00beab66}.seg{background:var(--field);box-shadow:var(--field-shadow);border-radius:12px;gap:2px;padding:2px;display:inline-flex}.seg button{min-width:34px;height:30px;color:var(--text-muted);font:600 12px var(--studio-font);cursor:pointer;transition:color .15s, background .2s var(--ease-out);background:0 0;border:0;border-radius:10px;place-items:center;padding:0 10px;display:grid}.seg button:hover{color:var(--text-primary)}.seg button[data-on=true]{background:var(--material-raised);box-shadow:var(--bevel);color:var(--text-primary)}.seg.icons button{min-width:32px;padding:0 7px}.scope{background:var(--field);width:132px;height:34px;box-shadow:var(--field-shadow);cursor:pointer;border-radius:10px;display:block}.scope:hover{box-shadow:var(--field-shadow), 0 0 0 1px var(--accent)}.status{border-radius:var(--radius-pill);height:28px;box-shadow:inset 0 0 0 1px var(--hairline);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.status .dot{background:var(--text-disabled);border-radius:50%;width:7px;height:7px}.status[data-s=ok] .dot{background:var(--jade-500);box-shadow:0 0 0 3px #00beab2e}.status[data-s=error],.status[data-s=diverged]{box-shadow:inset 0 0 0 1px #ed586666}.status[data-s=error] .dot,.status[data-s=diverged] .dot{background:var(--danger)}.status[data-s=no-output] .dot{background:var(--warn)}.status-msg{text-overflow:ellipsis;max-width:260px;color:var(--text-secondary);font-size:12px;overflow:hidden}.tray{left:50%;bottom:calc(var(--dock-h) + 76px);border-radius:var(--surface-radius);animation:rise .32s var(--ease-out);align-items:flex-start;gap:14px;max-width:calc(100vw - 140px);padding:10px 14px 8px;overflow-x:auto;transform:translate(-50%)}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}}.knob{width:var(--knob-w,56px);cursor:ns-resize;touch-action:none;border-radius:var(--radius-row);flex-direction:column;align-items:center;gap:4px;display:flex}.knob svg{display:block}.knob .kl{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.knob .kv{font:600 11px var(--mono-font);color:var(--text-secondary);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.knob[data-hl]{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent)}:root[data-knob-hl=on] .react-flow__node:has(.pm-knobs .knob:hover){outline:1px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:3px;border-radius:14px}.knob:hover .kv{color:var(--text-primary)}.mini-knob{cursor:ns-resize;touch-action:none;align-items:center;gap:6px;padding:0 4px 0 2px;display:flex}.dock{z-index:8;height:var(--dock-h);background:var(--surface);box-shadow:0 -1px 0 var(--hairline);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.dock header{flex:none;align-items:center;gap:10px;height:40px;padding:0 10px 0 6px;display:flex}.dock .dock-title{border-radius:var(--radius-row);height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.dock .dock-title:hover{background:var(--surface-hover);color:var(--text-primary)}.dock .dim{color:var(--text-disabled)}.dock .grow{text-align:right;font-variant-numeric:tabular-nums;flex:1}.dock-body{min-height:0;animation:fade .3s var(--ease-out);flex:1;grid-template-columns:3fr 2fr;gap:10px;padding:0 12px 12px;display:grid}.dock-body canvas{border-radius:var(--radius-tile);background:var(--field);width:100%;height:100%;min-height:0;box-shadow:var(--field-shadow);display:block}.ib.sm{border-radius:9px;width:28px;height:28px}.ib.sm[data-on=true]:after{background:var(--probe);width:4px;height:4px;top:3px;right:3px}.probe-tag{border-radius:var(--radius-pill);height:28px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--probe) 45%, transparent);align-items:center;gap:6px;padding:0 2px 0 10px;display:inline-flex}.probe-tag .dot{background:var(--probe);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--probe) 22%, transparent);border-radius:50%}.probe-tag .net{font:600 12px var(--mono-font)}.probe-tag .v{font:500 11.5px var(--mono-font);color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:52px}.probe-tag[data-listening]{background:color-mix(in srgb, var(--probe) 12%, transparent)}.ib.probe-listen[data-listening]{background:var(--probe);color:var(--surface)}.listening{color:var(--probe);box-shadow:var(--shadow-float), inset 0 0 0 1.5px color-mix(in srgb, var(--probe) 70%, transparent);animation:rise .24s var(--ease-out);gap:8px;padding:4px 4px 4px 14px;top:14px;left:50%;transform:translate(-50%)}.listening .meta{color:var(--text-secondary)}.listening .net{font:600 12.5px var(--mono-font);color:var(--text-primary)}@media (prefers-reduced-motion:reduce){.listening{animation:none}}@media (max-width:640px){.listening{top:64px}}.crumbs{animation:fade .25s var(--ease-out);align-items:center;gap:2px;display:flex}.crumbs button{color:var(--text-muted);font:600 13.5px var(--studio-font);border-radius:var(--radius-row);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:200px;padding:4px 6px;overflow:hidden}.crumbs button:hover{background:var(--surface-hover);color:var(--text-primary)}.crumbs svg{color:var(--text-disabled);flex:none}.crumbs .here{color:var(--text-primary);font:600 13.5px var(--studio-font);align-items:baseline;gap:8px;padding:4px 6px;display:inline-flex}.crumbs .here .meta{color:var(--accent)}.sheet-frame{inset:0 0 var(--dock-h) 0;pointer-events:none;z-index:1;box-shadow:inset 0 0 0 2px var(--accent-soft);border-radius:0;position:absolute}.selbar{animation:pop .2s var(--ease-out);border-radius:14px;gap:2px;padding:4px;transform:translate(-50%,-100%)}@keyframes pop{0%{opacity:0;transform:scale(.97)}}.selbar .meta{padding:0 8px 0 6px}.value-editor{z-index:30;font:600 13px var(--mono-font);color:var(--text-primary);background:var(--surface);border-radius:var(--radius-tile);box-shadow:var(--shadow-popup), 0 0 0 1.5px var(--accent);width:190px;animation:pop2 .16s var(--ease-out);border:0;outline:none;padding:7px 10px;position:absolute}@keyframes pop2{0%{opacity:0;transform:scale(.97)}}.value-hint{z-index:30;font:500 11px var(--studio-font);color:var(--text-muted);position:absolute}.qa{z-index:40;background:var(--surface);border-radius:var(--surface-radius);width:300px;box-shadow:var(--shadow-popup);animation:pop2 .16s var(--ease-out);padding:6px;position:absolute}.qa input{border-radius:var(--radius-tile);background:var(--field);width:100%;height:36px;box-shadow:var(--field-shadow);color:var(--text-primary);font:500 13.5px var(--studio-font);border:0;outline:none;margin-bottom:4px;padding:0 12px}.qa .row{border-radius:var(--radius-row);height:34px;color:var(--text-secondary);cursor:pointer;align-items:center;gap:10px;padding:0 8px;display:flex}.qa .row svg{color:var(--text-muted);flex:none}.qa .row[data-active=true]{background:var(--accent-strong);color:#fff}.qa .row[data-active=true] svg{color:#fff}.qa .row .grow{flex:1}.netlist{z-index:9;top:66px;right:14px;bottom:calc(var(--dock-h) + 76px);background:var(--surface);border-radius:var(--surface-radius);width:420px;box-shadow:var(--shadow-float);animation:slide .32s var(--ease-out);flex-direction:column;display:flex;position:absolute;overflow:hidden}@keyframes slide{0%{opacity:0;transform:translate(16px)}}.netlist header{align-items:center;gap:8px;padding:10px 10px 8px 16px;display:flex}.netlist header h2{font:600 13.5px var(--studio-font);flex:1;align-items:center;gap:8px;margin:0;display:flex}.netlist .cm{border-radius:var(--radius-tile);background:var(--field);min-height:0;box-shadow:var(--field-shadow);flex:1;margin:0 8px;overflow:hidden}.netlist footer{min-height:34px;color:var(--text-muted);align-items:center;gap:8px;padding:8px 16px 10px;font-size:12px;display:flex}.netlist footer.err{color:var(--danger)}:root,:root[data-theme=dark]{--nl-card:#b9a3ff;--nl-letter:#d2c4ff;--nl-node:#7cc4ff;--nl-num:#f2bd6b;--nl-unit:#c9955a;--nl-param:#f08fd0;--nl-dir:#ff9b7a;--nl-model:#a8d672;--nl-attr:#9aa6b2;--nl-at:#2fd0bf;--nl-label:#e8e8e8;--nl-comment:#858585;--nl-sel:#8d70f029;--nl-sel-edge:#8d70f0;--nl-annot-band:#2fd0bf0b}:root[data-theme=light]{--nl-card:#5b38cc;--nl-letter:#3d1fa8;--nl-node:#1166c4;--nl-num:#a35f00;--nl-unit:#b07a3a;--nl-param:#b3268f;--nl-dir:#c2410c;--nl-model:#4b7a0d;--nl-attr:#66707a;--nl-at:#00897b;--nl-label:#1b1b1b;--nl-comment:#8a8a8a;--nl-sel:#6a46da1a;--nl-sel-edge:#6a46da;--nl-annot-band:#00a0900d}.cm .cm-editor{height:100%;font:12.5px/1.65 var(--mono-font);background:0 0}.cm .cm-editor.cm-focused{outline:none}.cm .cm-scroller{font-family:var(--mono-font)}.cm .cm-content{padding:6px 0 24px}.cm .cm-gutters{color:var(--text-disabled);background:0 0;border:0}.cm .cm-lineNumbers .cm-gutterElement{padding:0 6px 0 10px;font-size:11px}.cm .cm-activeLine,.cm .cm-activeLineGutter{background:var(--surface-hover)}.cm .cm-cursor{border-left:1.5px solid var(--accent)}.cm .cm-selectionBackground,.cm .cm-focused .cm-selectionBackground{background:var(--accent-soft)!important}.cm .cm-matchingBracket{background:var(--accent-soft);outline:1px solid var(--chip-line);border-radius:2px;color:inherit!important}.cm .cm-nonmatchingBracket{color:var(--danger)!important}.nl-letter{color:var(--nl-letter);font-weight:700}.nl-card{color:var(--nl-card);font-weight:600}.nl-node{color:var(--nl-node)}.nl-num{color:var(--nl-num)}.nl-unit{color:var(--nl-unit)}.nl-brace{color:var(--nl-param);opacity:.7}.nl-param{color:var(--nl-param)}.nl-def{font-weight:600}.nl-fn{color:var(--nl-param);font-style:italic}.nl-op{color:var(--text-muted)}.nl-dir{color:var(--nl-dir);font-weight:600}.nl-model{color:var(--nl-model)}.nl-mtype{color:var(--nl-model);letter-spacing:.02em;font-weight:600}.nl-attr{color:var(--nl-attr)}.nl-src{color:var(--nl-dir)}.nl-word{color:var(--text-secondary)}.nl-at{color:var(--nl-at);opacity:.65}.nl-akw{color:var(--nl-at);font-weight:650}.nl-aopt{color:var(--nl-at);opacity:.85}.nl-label{color:var(--nl-label);font-style:italic}.nl-unknown{color:var(--warn)}.nl-comment{color:var(--nl-comment);font-family:var(--studio-font);font-size:12px;font-style:normal}.nl-layout{color:var(--text-disabled)}.netlist{z-index:11}.cm .nl-star{opacity:.35}.cm .nl-section{padding-top:8px}.cm .nl-section .nl-comment{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted)}.cm .nl-annot-line{background:var(--nl-annot-band)}.cm .nl-sel-line{background:var(--nl-sel);box-shadow:inset 2px 0 0 var(--nl-sel-edge)}.nl-about-wrap{padding:4px 10px 10px 4px}.nl-about{border-radius:var(--radius-tile);background:var(--surface);box-shadow:0 0 0 1px var(--hairline);font:500 13px/1.55 var(--studio-font);color:var(--text-secondary);white-space:normal;cursor:default;-webkit-user-select:text;user-select:text;padding:12px 14px 10px}.nl-about-head{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.nl-about-kicker{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted)}.nl-about-btn{border-radius:var(--radius-small);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;margin:-4px -6px -4px 0;display:grid}.nl-about-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.nl-about-title{font:650 15px/1.3 var(--display-font);letter-spacing:-.01em;color:var(--text-primary);margin:2px 0 6px}.nl-about-body{max-height:4.65em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}.nl-about.open .nl-about-body{max-height:none;-webkit-mask-image:none;mask-image:none}.nl-about-body p,.nl-about-body .li{text-wrap:pretty;margin:0 0 8px}.nl-about-body .li{padding-left:14px;position:relative}.nl-about-body .li:before{content:"";background:var(--text-muted);border-radius:50%;width:4px;height:4px;position:absolute;top:.65em;left:3px}.nl-about-body h4{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-primary);margin:14px 0 4px}.nl-about-body pre{font:11px/1.45 var(--mono-font);color:var(--text-secondary);background:var(--field);border-radius:var(--radius-small);margin:0 0 8px;padding:8px 10px;overflow-x:auto}.nl-about code{font:11.5px var(--mono-font);color:var(--nl-node);background:var(--field);border-radius:3px;padding:0 4px}.nl-about a{color:var(--accent);text-decoration:none}.nl-about a:hover{text-decoration:underline}.nl-about-more{border-radius:var(--radius-small);color:var(--accent);font:600 12px var(--studio-font);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;margin:2px 0 0 -6px;padding:2px 6px;display:inline-flex}.nl-about-more:hover{background:var(--accent-soft)}.nl-about.open .nl-about-more svg{transform:rotate(180deg)}.cm .cm-gutter-lint{width:12px}.cm .cm-gutter-lint .cm-gutterElement{padding:0}.cm .cm-lint-marker{content:none;border-radius:50%;width:7px;height:7px;margin:7px 0 0 3px}.cm .cm-lint-marker-error{background:var(--danger)}.cm .cm-lint-marker-warning{background:var(--warn)}.cm .cm-lint-marker-info{background:var(--accent)}.cm .cm-lintRange-error{-webkit-text-decoration:wavy underline var(--danger) 1px;text-decoration:wavy underline var(--danger) 1px;text-underline-offset:3px;background-image:none}.cm .cm-lintRange-warning{-webkit-text-decoration:wavy underline color-mix(in srgb, var(--warn) 75%, transparent) 1px;text-decoration:wavy underline color-mix(in srgb, var(--warn) 75%, transparent) 1px;text-underline-offset:3px;background-image:none}body .nl-tips .cm-tooltip{z-index:200;border-radius:var(--radius-popup);background:var(--surface-raised);box-shadow:var(--shadow-popup);color:var(--text-primary);border:0;overflow:hidden}body .nl-tips .cm-tooltip-hover{max-width:320px}.nl-hover{font:500 12px/1.45 var(--studio-font);padding:8px 11px 9px}.nl-hover-h{align-items:baseline;gap:8px;margin-bottom:3px;display:flex}.nl-hover-h b{font:650 12.5px var(--mono-font)}.nl-hover-h span{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted)}.nl-hover-r{color:var(--text-secondary);gap:10px;display:flex}.nl-hover-r>span:first-child:not(.d){min-width:36px;color:var(--text-muted)}.nl-hover-r .v{font-family:var(--mono-font);color:var(--text-primary);overflow-wrap:anywhere}body .nl-tips .cm-diagnostic{font:500 12px/1.45 var(--studio-font);border:0;padding:7px 11px}body .nl-tips .cm-diagnostic-error{box-shadow:inset 2px 0 0 var(--danger)}body .nl-tips .cm-diagnostic-warning{box-shadow:inset 2px 0 0 var(--warn)}body .nl-tips .cm-diagnosticAction{border-radius:var(--radius-small);background:var(--accent);color:#fff;font:600 11.5px var(--studio-font);cursor:pointer;border:0;margin-left:8px;padding:2px 8px}body .nl-tips .cm-diagnosticSource{display:none}body .nl-tips .cm-tooltip-autocomplete>ul{font:12.5px var(--mono-font);max-height:260px;padding:4px}body .nl-tips .cm-tooltip-autocomplete>ul>li{border-radius:var(--radius-small);align-items:baseline;gap:10px;padding:3px 8px;line-height:1.5;display:flex}body .nl-tips .cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--accent);color:#fff}body .nl-tips .cm-tooltip-autocomplete>ul>li[aria-selected] .cm-completionDetail{color:#fffc}body .nl-tips .cm-completionLabel{color:inherit}body .nl-tips .cm-completionMatchedText{font-weight:700;text-decoration:none}body .nl-tips .cm-completionDetail{font:italic 500 11.5px var(--studio-font);color:var(--text-muted);margin-left:auto;padding-left:12px}body .nl-tips .cm-completionInfo{font:500 12px var(--studio-font);padding:7px 11px}.cm .cm-snippetField{background:var(--accent-soft);border-radius:2px}.netlist footer .msg{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nl-count{font:var(--font-meta);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--danger) 14%, transparent);flex:none;padding:1px 6px}@media (max-width:639px){.cm .cm-editor{font-size:13.5px}.netlist.reading .cm-activeLine,.netlist.reading .cm-activeLineGutter{background:0 0}.netlist.reading .cm-cursor{display:none!important}.nl-about{font-size:14px}.netlist.reading .cm-gutters,.netlist.reading .nl-about-btn{display:none}}.empty{pointer-events:none;z-index:5;place-items:center;display:grid;position:absolute;inset:0}.empty-inner{pointer-events:auto;animation:fade .5s var(--ease-out);flex-direction:column;align-items:center;gap:22px;display:flex}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}.empty h1{font:650 30px/1.1 var(--display-font);letter-spacing:-.02em;margin:0}.empty p{color:var(--text-secondary);margin:-12px 0 0;font-size:14.5px}.starters{gap:12px;display:flex}.starter{text-align:left;background:var(--surface);border-radius:var(--radius-card);width:196px;box-shadow:var(--shadow-float);cursor:pointer;transition:transform .25s var(--spring), box-shadow .2s;border:0;padding:0;overflow:hidden}.starter:hover{box-shadow:var(--shadow-float), 0 0 0 1.5px var(--accent);transform:translateY(-2px)}.starter canvas{background:var(--canvas-bg);width:100%;height:112px;display:block}.starter .cap{flex-direction:column;gap:2px;padding:10px 12px 11px;display:flex}.starter .cap b{font-size:13px;font-weight:600}.starter .cap span{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted)}.demo-link{color:var(--accent);font:600 13px var(--studio-font);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:-10px;padding:6px 10px;display:inline-flex}.demo-link:hover{background:var(--accent-soft)}.demo-dialog{background:#000;width:min(1120px,100vw - 32px);padding:0}.demo-dialog video{background:#000;width:100%;height:auto;max-height:calc(100vh - 64px);display:block}.demo-dialog[data-phone]{width:min(420px,100vw)}.demo-close{color:#fff;background:#00000080;position:absolute;top:10px;right:10px}.empty .hints{color:var(--text-muted);align-items:center;gap:18px;font-size:12px;display:flex}.empty .hints span{align-items:center;gap:6px;display:inline-flex}.scrim{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;transition:opacity .2s;position:fixed;inset:0}.scrim[data-starting-style],.scrim[data-ending-style]{opacity:0}.dialog{z-index:51;background:var(--surface);width:min(980px,100vw - 32px);max-height:min(760px,100vh - 48px);box-shadow:var(--shadow-popup);transition:opacity .2s, transform .25s var(--ease-out);border-radius:20px;outline:none;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.dialog[data-starting-style],.dialog[data-ending-style]{opacity:0;transform:translate(-50%,-48%)scale(.98)}.dialog header{align-items:center;gap:12px;padding:18px 18px 10px 24px;display:flex}.dialog header h2{font:650 18px var(--display-font);letter-spacing:-.01em;flex:1;margin:0}.dialog .body{padding:4px 24px 24px;overflow-y:auto}.dialog .group{align-items:baseline;gap:8px;margin:14px 0 10px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.card{text-align:left;background:var(--surface-sunken);border-radius:var(--radius-card);box-shadow:inset 0 0 0 1px var(--hairline);cursor:pointer;transition:box-shadow .15s, transform .2s var(--ease-out);border:0;padding:0;overflow:hidden}.card:hover{box-shadow:inset 0 0 0 1.5px var(--accent);transform:translateY(-1px)}.card canvas{width:100%;height:118px;display:block}.card .cap{padding:8px 12px 11px}.card .cap b{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.card .cap span{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.menu{z-index:60;background:var(--surface);border-radius:var(--radius-popup);min-width:220px;box-shadow:var(--shadow-popup);transform-origin:var(--transform-origin);transition:opacity .12s, transform .14s var(--ease-out);outline:none;padding:5px}.menu[data-starting-style],.menu[data-ending-style]{opacity:0;transform:scale(.97)}.menu-pos{z-index:80}.mi{border-radius:var(--radius-row);min-height:32px;color:var(--text-primary);cursor:default;font:500 13px var(--studio-font);-webkit-user-select:none;user-select:none;outline:none;align-items:center;gap:10px;padding:0 10px;display:flex}.mi>*{pointer-events:none}.mi .mi-ic{flex:none;width:18px}.mi .mi-l{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mi[data-disabled],.mi[data-disabled] svg{color:var(--text-disabled)}.mi[data-danger][data-highlighted]{background:var(--danger);color:#fff}.mi[data-popup-open]:not([data-highlighted]){background:var(--field)}.mi svg{color:var(--text-muted)}.mi .sc{color:var(--text-muted);font:500 11.5px var(--mono-font);margin-left:auto}.mi[data-highlighted]{background:var(--accent-strong);color:#fff}.mi[data-highlighted] svg,.mi[data-highlighted] .sc{color:#ffffffd9}.msep{background:var(--hairline);height:1px;margin:4px 8px}.toast{z-index:70;background:var(--tooltip-bg);color:#f2f2f2;border-radius:var(--radius-pill);animation:drop .25s var(--ease-out);padding:8px 14px;font-size:12.5px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}@keyframes drop{0%{opacity:0;transform:translate(-50%,-6px)}}.drop-hint{z-index:80;border:1.5px dashed var(--accent);background:var(--accent-marquee);font:600 15px var(--studio-font);color:var(--accent);pointer-events:none;border-radius:20px;place-items:center;display:grid;position:absolute;inset:10px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:1180px){.zoom{bottom:calc(var(--dock-h) + 80px)}}@media (max-width:900px){.netlist{z-index:11;width:auto;height:46vh;top:auto;left:14px}:is(.app:has(.netlist) .tray,.app:has(.netlist) .zoom){display:none}.doc-title{max-width:140px}.topleft .meta{display:none}.empty .starters{flex-direction:column}.starter{width:260px}.starter canvas{height:80px}.empty .hints{display:none}}@media (pointer:coarse){.ib{border-radius:13px;width:44px;height:44px}.ib.sm{width:40px;height:40px}.seg button,.seg.icons button{min-width:44px;height:40px}.palette .ib{width:44px;height:44px}.palette{grid-template-columns:repeat(2,44px)}.mi{min-height:44px}.zoom .val{height:44px}.ib:hover svg{transform:none}.dock .dock-title{height:40px}}.sheet-scrim{z-index:44;background:var(--scrim);animation:fade .2s var(--ease-out);position:fixed;inset:0}.sheet-scrim[data-hidden],.bsheet[data-hidden]{opacity:0;pointer-events:none}.bsheet{z-index:45;background:var(--surface);max-height:72vh;box-shadow:var(--shadow-popup);padding:8px 14px calc(18px + env(safe-area-inset-bottom));animation:sheet .3s var(--ease-out);border-radius:22px 22px 0 0;transition:opacity .15s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}@keyframes sheet{0%{opacity:0;transform:translateY(24px)}}.bsheet .grab{background:var(--border-default);border-radius:3px;width:38px;height:5px;margin:4px auto 12px}.bsheet-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.tile{border-radius:var(--radius-tile);background:var(--surface-sunken);height:76px;color:var(--text-secondary);font:500 11px var(--studio-font);touch-action:none;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.tile:active{background:var(--surface-pressed)}.tile span{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.bsheet-list{flex-direction:column;display:flex}.bsheet-list .row{height:48px;color:var(--text-primary);font:500 14px var(--studio-font);border-radius:var(--radius-row);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0 8px;display:flex}.bsheet-list .row svg{color:var(--text-muted)}.ctx{flex-direction:column;width:220px;display:flex}.mi[data-danger]{color:var(--danger)}.inspector{z-index:12;left:8px;right:8px;bottom:calc(var(--dock-h) + 84px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:var(--shadow-float);animation:sheet .25s var(--ease-out);border-radius:18px;align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex;position:absolute}.inspector .ins-head{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.inspector .ins-head b{font:600 14px var(--mono-font);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inspector .ins-actions{gap:2px;display:flex}.inspector .ib[data-danger]{color:var(--danger)}.inspector .ins-val{font:500 12.5px var(--studio-font);color:var(--text-secondary)}.app:has(.inspector) .tray{display:none}@media (max-width:639px){.sound .scope,.sound .status-msg,.zoom{display:none}.topleft{top:calc(10px + env(safe-area-inset-top));left:10px}.topright{top:calc(10px + env(safe-area-inset-top));padding:3px;right:10px}.doc-title{max-width:150px}.sound.phone{left:8px;right:8px;bottom:calc(var(--dock-h) + 8px + env(safe-area-inset-bottom));border-radius:26px;justify-content:space-between;padding:6px 8px;transform:none}.sound.phone .play{width:58px;height:58px}.phone-status{background:var(--tooltip-bg);color:#eee;border-radius:12px;padding:8px 12px;font-size:12px;position:absolute;bottom:calc(100% + 8px);left:12px;right:12px}.tray{bottom:calc(var(--dock-h) + 88px + env(safe-area-inset-bottom));gap:6px;max-width:calc(100vw - 16px);padding:8px 10px}.dock-body{grid-template-columns:1fr}.dock-body canvas+canvas{display:none}.netlist{top:calc(64px + env(safe-area-inset-top));left:8px;right:8px;bottom:calc(var(--dock-h) + 88px);width:auto;height:auto}.crumbs button{max-width:90px}.value-editor{width:calc(100vw - 24px);height:48px;font-size:16px}.qa{width:auto;right:8px;bottom:calc(96px + env(safe-area-inset-bottom));top:auto!important;left:8px!important}.qa input{height:44px;font-size:16px}.qa .row{height:44px}.dialog{border-radius:0;width:100vw;height:100dvh;max-height:100dvh}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.toast{top:calc(64px + env(safe-area-inset-top))}.empty h1{font-size:26px}.empty{padding-top:calc(84px + env(safe-area-inset-top));place-items:start center;overflow-y:auto}.empty-inner{gap:18px;padding:0 16px 120px}.starter canvas{height:72px}.starter{width:min(320px,100vw - 32px)}}.ctx{width:240px}.ctx-title{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted);padding:6px 10px 4px}@media (prefers-reduced-motion:reduce){.menu{transition:none}}.knob{position:relative}.knob .kcc{font:600 9px var(--mono-font);color:var(--accent);background:var(--surface-raised);border-radius:4px;padding:0 3px;line-height:13px;position:absolute;top:-2px;right:2px}.knob[data-learn] svg{animation:1s ease-in-out infinite learn}@keyframes learn{50%{opacity:.35}}.knob .kl-input{width:64px;font:var(--font-meta);text-transform:uppercase;text-align:center;background:var(--field);color:var(--text-primary);outline:1px solid var(--accent);border:0;border-radius:4px;padding:1px 2px}.tray .tray-more{align-self:center}.tray .tray-sep{background:var(--hairline);align-self:stretch;width:1px;margin:2px 0}.knob-pop{grid-template-columns:repeat(4, var(--knob-w,56px));gap:12px 10px;padding:12px;display:grid}.knob-pop .hidden-row{border-top:1px solid var(--hairline);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;padding-top:8px;display:flex}.knob-pop .hidden-row .lbl{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted);margin-right:4px}.chip-btn{white-space:nowrap;background:var(--field);height:26px;color:var(--text-secondary);font:500 12px var(--studio-font);cursor:pointer;border:0;border-radius:13px;flex:none;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.chip-btn:hover{color:var(--text-primary)}.range-form{gap:10px;width:240px;padding:12px;display:grid}.range-form label{font:500 12px var(--studio-font);color:var(--text-secondary);grid-template-columns:52px 1fr;align-items:center;gap:8px;display:grid}.range-form input{background:var(--field);height:30px;color:var(--text-primary);font:500 13px var(--mono-font);border:0;border-radius:8px;padding:0 8px;box-shadow:inset 0 1px 2px #00000040}.range-form .row{justify-content:flex-end;gap:8px;display:flex}.preset-trigger{color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:4px 6px;display:inline-flex}.preset-trigger:hover,.preset-trigger[data-popup-open]{background:var(--field)}.preset-trigger svg{color:var(--text-muted)}.preset-menu{flex-direction:column;width:396px;max-width:calc(100vw - 16px);max-height:min(560px,100vh - 120px);padding:0;display:flex;overflow:hidden}.preset-menu .pm-search{border-bottom:1px solid var(--hairline);color:var(--text-muted);flex:none;align-items:center;gap:8px;padding:10px 12px;display:flex}.preset-menu .pm-search input{color:var(--text-primary);font:500 14px var(--studio-font);background:0 0;border:0;outline:none;flex:1;min-width:0}.preset-menu .pm-list{overscroll-behavior:contain;flex:auto;min-height:0;padding:4px 6px 8px;overflow-y:auto}.preset-menu .pm-group{font:var(--font-meta);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--text-muted);padding:10px 8px 4px}.preset-menu .pm-item{border-radius:var(--radius-row);min-height:40px;color:var(--text-primary);cursor:pointer;font:500 13px var(--studio-font);-webkit-user-select:none;user-select:none;outline:none;grid-template-columns:28px minmax(0,1fr) 18px;align-items:center;column-gap:10px;padding:5px 8px;display:grid}.preset-menu .pm-item>*{pointer-events:none}.preset-menu .pm-badge{background:var(--field);width:28px;height:28px;color:var(--text-secondary);border-radius:8px;place-items:center;display:grid}.preset-menu .pm-text{flex-direction:column;min-width:0;display:flex}.preset-menu .pm-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preset-menu .pm-item .d{font:400 11.5px var(--studio-font);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.preset-menu .pm-check{color:var(--accent);place-items:center;display:grid}.preset-menu .pm-item[data-highlighted]{background:var(--accent-strong);color:#fff}.preset-menu .pm-item[data-highlighted] .d,.preset-menu .pm-item[data-highlighted] .pm-check{color:#ffffffd9}.preset-menu .pm-item[data-highlighted] .pm-badge{color:#fff;background:#ffffff29}.preset-menu .pm-item[data-selected]:not([data-highlighted]) .pm-badge{color:var(--accent)}@media (pointer:coarse){.preset-menu .pm-item{min-height:48px}}.preset-menu .pm-empty{color:var(--text-muted);font:500 13px var(--studio-font);padding:16px}.preset-menu .pm-empty:empty{display:none}.preset-menu .pm-foot{scrollbar-width:none;border-top:1px solid var(--hairline);flex:none;gap:6px;padding:8px 10px;display:flex;overflow-x:auto}.toast .toast-act{color:var(--accent);font:600 13px var(--studio-font);cursor:pointer;background:0 0;border:0;margin-left:10px}@media (max-width:639px){.preset-menu{width:calc(100vw - 16px)}}.dirty-dot{background:var(--text-muted);border-radius:3px;width:6px;height:6px}.preset-trigger.doc-title{cursor:pointer;overflow:visible}.preset-trigger>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.scrim-clear{z-index:79;position:fixed;inset:0}@media (min-width:640px) and (max-width:1180px){.tray{bottom:calc(var(--dock-h) + 136px)}}.dc-notice{z-index:65;background:var(--surface-raised);max-width:min(560px,100vw - 32px);color:var(--text-primary);border:1px solid color-mix(in srgb, var(--warn) 55%, transparent);border-radius:var(--radius-card);box-shadow:var(--shadow-float);animation:drop .25s var(--ease-out);align-items:center;gap:10px;padding:8px 10px 8px 12px;font-size:12.5px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.dc-notice>svg{color:var(--warn);flex:none}.dc-notice .dc-text{flex:1;min-width:0;line-height:1.45}.dc-notice code{font:12px var(--mono-font)}.dc-notice .dc-more{color:var(--text-muted)}.dc-notice .dc-link{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.dc-notice .btn{white-space:nowrap;flex:none}
