*{box-sizing:border-box;margin:0;padding:0}body{color:#ccc;background:#0a0a1a;height:100dvh;font-family:SF Mono,Menlo,Consolas,monospace;overflow:hidden}#app{flex-direction:column;gap:8px;height:100vh;padding:8px 12px;display:flex}header{flex-shrink:0;align-items:center;gap:16px;display:flex;position:relative}header h1{color:#aaf;font-size:16px;font-weight:500}#toolbar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}#toolbar button,#toolbar select{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:3px;padding:4px 10px;font-family:inherit;font-size:12px}#toolbar button:hover:not(:disabled){background:#2a2b5e;border-color:#555}#toolbar button:disabled{opacity:.4;cursor:default}#run-btn{color:#6f6;border-color:#363}#run-btn:hover:not(:disabled){background:#1a2e1a}#stop-btn{color:#f66;border-color:#633}#stop-btn:hover:not(:disabled){background:#2e1a1a}#toolbar select{max-width:200px}.theme-menu-items{min-width:200px;padding:8px!important}.theme-menu-row{align-items:center;gap:8px;padding:4px 0;display:flex}.theme-menu-row label{color:#aaa;min-width:40px;font-size:11px}.theme-menu-row select{flex:1;padding:3px 6px;font-size:11px}.toolbar-sep{background:#333;flex-shrink:0;width:1px;height:16px}#help-btn{min-width:22px;padding:2px 6px;font-weight:700}#record-btn.recording{color:#f44}.audio-control{align-items:stretch;display:flex}#sound-btn{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;align-items:center;gap:5px;display:flex;padding-right:5px!important}#sound-btn.active{color:#4f8;background:#12281c;border-color:#3a6}.sound-icon{font-size:11px;line-height:1}.sound-engines{gap:2px;display:flex}.sound-badge{text-align:center;color:#55587a;letter-spacing:0;background:#1c1c38;border-radius:2px;width:12px;padding:2px 0;font-size:9px;font-weight:700;line-height:1}.sound-badge.on{color:#0a1a10;background:#4fd48a}.sound-badge.unavailable{opacity:.3;text-decoration:line-through}.audio-caret{border-top-left-radius:0;border-bottom-left-radius:0;padding:4px 5px!important;font-size:9px!important}.audio-menu-items{min-width:240px}.audio-engine-item{position:relative;padding-left:26px!important}.audio-engine-item.active{color:#4fd48a}.audio-engine-item.active:before{content:"✓";color:#4fd48a;font-size:11px;position:absolute;left:10px}.audio-engine-item:disabled{opacity:.4;cursor:default}.panel-toggle{letter-spacing:0;min-width:22px;transition:color .15s,border-color .15s;color:#888!important;border-color:#333!important;padding:3px 6px!important;font-size:10px!important}.panel-toggle.active{color:#6cf!important;border-color:#46a!important}.panel-toggle:hover:not(:disabled){color:#adf!important}.settings-menu-items button{position:relative;padding-left:26px!important}.settings-menu-items button.active{color:#6cf}.settings-menu-items button.active:before,#record-btn.recording:before{content:"✓";color:#6cf;font-size:11px;position:absolute;left:10px}#record-btn.recording:before{content:"●";color:#f44}#editor-panel.panel-hidden,#params-panel.panel-hidden,.resize-handle-v.panel-hidden{display:none!important}.toolbar-menu{position:relative}.toolbar-menu-trigger{letter-spacing:.3px;color:#aaa!important;padding:4px 8px!important;font-size:11px!important}.toolbar-menu-trigger:hover{color:#ddd!important}.toolbar-menu-items{z-index:100;background:#151530;border:1px solid #333;border-radius:4px;min-width:224px;max-width:calc(100vw - 12px);margin-top:2px;padding:4px 0;display:none;position:absolute;top:100%;left:0;box-shadow:0 6px 20px #00000080}.toolbar-menu-items.align-right{left:auto;right:0}.toolbar-menu-items.floating{position:fixed}.toolbar-menu-items button{white-space:nowrap}.toolbar-menu.open .toolbar-menu-items{display:block}.toolbar-menu-items button,.toolbar-menu-items select{text-align:left;color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:0;width:100%;padding:5px 12px;font-family:inherit;font-size:12px;display:block}.toolbar-menu-items button:hover,.toolbar-menu-items select:hover{color:#fff;background:#2a2b5e}.toolbar-menu-items select{background:#1a1a3a;border:1px solid #333;border-radius:3px;width:calc(100% - 16px);margin:2px 8px;padding:3px 6px}.menu-divider{background:#2a2a4a;height:1px;margin:4px 8px}.recent-files-header{color:#667;text-transform:uppercase;letter-spacing:.5px;padding:2px 12px 1px;font-size:10px}.recent-row{align-items:stretch;display:flex}.recent-row:hover{background:#2a2b5e}.toolbar-menu-items .recent-open{text-overflow:ellipsis;white-space:nowrap;flex:auto;width:auto;min-width:0;overflow:hidden;color:#99a!important;padding-left:16px!important;font-size:11px!important}.recent-row:hover .recent-open{color:#ddf!important}.recent-open .recent-file-time{float:right;color:#556;margin-left:8px;font-size:9px}.toolbar-menu-items .recent-side{opacity:0;flex:0 0 26px;width:26px;text-align:center!important;color:#556!important;padding:0!important;font-size:11px!important}.recent-row:hover .recent-side{opacity:1}.recent-side:hover{color:#adf!important;background:#34356e!important}.recent-del:hover{color:#e77!important;background:#4a2222!important}.menu-key{float:right;color:#667;margin-left:12px;font-size:10px}.menu-primary{font-weight:600;color:#dde!important}#workspace{flex:1;min-height:0;display:flex}#editor-panel{flex-direction:column;width:45%;min-width:200px;display:flex;position:relative}#tab-bar{scrollbar-width:none;background:#111;flex-shrink:0;align-items:center;gap:1px;padding:0 2px;display:flex;overflow-x:auto}#tab-bar::-webkit-scrollbar{display:none}.tab{color:#777;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#151530;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;align-items:center;gap:4px;max-width:140px;padding:4px 8px;font-size:11px;display:flex;overflow:hidden}.tab:hover{color:#bbb;background:#1a1a3a}.tab.active{color:#ddf;background:#1e1e40;border-color:#2a2b5e}.tab-close{color:#555;cursor:pointer;border-radius:2px;padding:0 2px;font-size:9px;line-height:1}.tab-close:hover{color:#f66;background:#ff646426}.tab-add{color:#555;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:3px 8px;font-size:14px}.tab-add:hover{color:#aaf}.tab-lang-badge{color:#68a;cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.3px;background:#64b4ff26;border:1px solid #0000;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:700;line-height:1.2;transition:all .15s}.tab-lang-badge:hover{color:#8bf;background:#64b4ff40;border-color:#64b4ff4d}.tab-lang-badge.cljs{color:#6a6;background:#78dc7826}.tab-lang-badge.cljs:hover{color:#8d8;background:#78dc7840;border-color:#78dc784d}.tab-context-menu{z-index:10000;color:#ccc;background:#1e1e3a;border:1px solid #3a3a6e;border-radius:4px;min-width:160px;padding:3px 0;font-size:12px;position:fixed;box-shadow:0 4px 16px #00000080}.tab-context-menu-item{cursor:pointer;white-space:nowrap;padding:5px 14px}.tab-context-menu-item:hover{color:#eef;background:#648cff33}.tab-context-menu-item.disabled{color:#555;pointer-events:none}.tab-context-menu-sep{background:#2a2a5a;height:1px;margin:3px 8px}.tab-tooltip{z-index:10001;color:#aab;white-space:pre;text-overflow:ellipsis;pointer-events:none;background:#1a1a38;border:1px solid #3a3a6e;border-radius:4px;max-width:350px;padding:4px 8px;font-size:11px;position:fixed;overflow:hidden;box-shadow:0 2px 8px #0006}.resize-handle-v{cursor:col-resize;background:0 0;flex-shrink:0;width:6px;position:relative}.resize-handle-v:after{content:"";background:#333;border-radius:2px;width:3px;height:32px;transition:background .15s;position:absolute;top:50%;left:1px;transform:translateY(-50%)}.resize-handle-v:hover:after{background:#4a4bae}.resize-handle-h{cursor:row-resize;background:0 0;flex-shrink:0;height:6px;position:relative}.resize-handle-h:after{content:"";background:#333;border-radius:2px;width:32px;height:3px;transition:background .15s;position:absolute;top:1px;left:50%;transform:translate(-50%)}.resize-handle-h:hover:after{background:#4a4bae}#editor{border:1px solid #2a2b5e;border-radius:4px;flex:1;min-height:0;overflow:hidden}#editor .cm-editor{height:100%;font-size:13px}#editor .cm-editor.cm-focused{outline:none}#editor:focus-within{border-color:#4a4bae}#console{color:#8a8;white-space:pre-wrap;word-break:break-all;background:#080810;border:1px solid #222;border-radius:4px;height:140px;min-height:80px;padding:8px 10px;font-size:12px;line-height:1.4;overflow-y:auto}#console .err{color:#f88}#console .info{color:#88f}#console .warn{color:#fd8}#console .repl-result{color:#8d8}.console-table{border-collapse:collapse;width:100%;margin:4px 0;font-size:11px}.console-table th,.console-table td{text-align:left;white-space:nowrap;border:1px solid #333;padding:2px 6px}.console-table th{color:#aaf;background:#1a1a3e;font-weight:600}.console-table .ct-idx{color:#666;font-size:10px}.console-table tr:hover td{background:#1e1e40}.console-note{color:#888;margin:2px 0;font-size:11px;font-style:italic}.console-group{margin:2px 0}.console-group>summary{cursor:pointer;color:#aaf;-webkit-user-select:none;user-select:none;font-weight:600}.console-group>summary:hover{color:#ccf}.console-group-content{border-left:1px solid #333;margin-left:4px;padding-left:14px}.console-object{margin:2px 0}.console-object>summary{cursor:pointer;color:#8cf;-webkit-user-select:none;user-select:none}.console-object>summary:hover{color:#aef}.console-object-body{color:#ccc;border-left:1px solid #333;max-height:300px;margin:2px 0 2px 14px;padding:4px 8px;font-size:11px;overflow-y:auto}.console-copyable{align-items:flex-start;gap:6px;display:flex}.console-copyable span{flex:1}.console-copy-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #444;border-radius:3px;flex-shrink:0;padding:0 4px;font-size:12px;line-height:1.4}.console-copy-btn:hover{color:#ccc;border-color:#666}#canvas-panel{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}#params-panel{background:#0e0e22;border-left:1px solid #222;flex-direction:column;width:260px;min-width:180px;font-size:11px;display:flex;overflow:hidden}.pp-header{border-bottom:1px solid #222;flex-shrink:0;align-items:center;padding:6px 10px;display:flex}.pp-title{color:#aaf;letter-spacing:.3px;font-size:12px;font-weight:600}.pp-scroll{scrollbar-width:thin;scrollbar-color:#333 transparent;flex:1;overflow:hidden auto}.pp-section{border-bottom:1px solid #1a1a30}.pp-subsection-label{color:#6a7baa;text-transform:uppercase;letter-spacing:.4px;border-top:1px solid #1a1a30;padding:4px 10px 2px;font-size:10px;font-weight:600}.pp-species-mute-row{flex-wrap:wrap;align-items:center;gap:2px;padding:4px 10px;display:flex}.pp-randomize-row{border-top:1px solid #1a1a30;flex-wrap:wrap;align-items:center;gap:3px;margin-top:2px;padding:4px 10px;display:flex}.pp-section-title{color:#89c;text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 10px;font-size:10px;font-weight:600;display:flex}.pp-collapse-arrow{color:#555;text-align:center;width:10px;font-size:8px}.pp-active-dot{opacity:0;background:#6bcf7f;border-radius:50%;width:6px;height:6px;margin-left:2px;transition:opacity .2s;display:inline-block}.pp-active-dot.active{opacity:1}.pp-section-content{padding:0 6px 6px}.pp-theme-row{gap:8px;margin-bottom:6px;display:flex}.pp-theme-select-wrap{flex-direction:column;flex:1;gap:2px;display:flex}.pp-theme-select-wrap label{color:var(--text-muted,#aaa);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.pp-theme-select{background:var(--surface,#1a1a2e);width:100%;color:var(--text,#ccc);border:1px solid var(--accent,#2a2b6e);border-radius:3px;padding:3px 4px;font-size:11px}.te-edit-row,.te-name-row,.te-labeled-color,.te-labeled-select,.te-octave-row{align-items:center;gap:6px;margin:4px 0;display:flex}.te-edit-row label,.te-name-row label,.te-labeled-color label,.te-labeled-select label,.te-octave-row label{color:var(--text-muted,#aaa);white-space:nowrap;min-width:50px;font-size:10px}.te-select,.te-name-input{background:var(--surface,#1a1a2e);color:var(--text,#ccc);border:1px solid var(--accent,#2a2b6e);border-radius:3px;flex:1;padding:3px 4px;font-size:11px}.te-group-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim,#888);border-top:1px solid var(--accent,#2a2b6e);margin:6px 0 2px;padding-top:4px;font-size:9px}.te-color-row{flex-wrap:wrap;gap:4px;margin:3px 0;display:flex}.te-color-swatch{border:1px solid var(--accent,#2a2b6e);cursor:pointer;background:0 0;border-radius:3px;width:28px;height:24px;padding:0}.te-color-swatch::-webkit-color-swatch-wrapper{padding:1px}.te-color-swatch::-webkit-color-swatch{border:none;border-radius:2px}.te-instr-row{align-items:center;gap:4px;margin:2px 0;display:flex}.te-instr-label{min-width:18px;font-size:10px;font-weight:700}.te-instr-select{background:var(--surface,#1a1a2e);color:var(--text,#ccc);border:1px solid var(--accent,#2a2b6e);border-radius:3px;flex:1;padding:2px 3px;font-size:11px}.te-num-input{text-align:center;background:var(--surface,#1a1a2e);width:40px;color:var(--text,#ccc);border:1px solid var(--accent,#2a2b6e);border-radius:3px;padding:2px 4px;font-size:11px}.te-dash{color:var(--text-dim,#888);font-size:11px}.te-action-row{gap:4px;margin:8px 0 4px;display:flex}.te-btn{cursor:pointer;border:1px solid var(--accent,#2a2b6e);background:var(--surface,#1a1a2e);color:var(--text,#ccc);border-radius:3px;flex:1;padding:4px 6px;font-size:10px}.te-btn:hover{background:var(--surface-hover,#2a2b5e)}.te-btn-primary{background:var(--accent,#2a2b6e);color:#fff}.te-btn-primary:hover{background:var(--accent-hover,#3a3b9e)}.te-btn-danger{color:#e66}.te-btn-danger:hover{background:#422}.te-btn:disabled{opacity:.4;cursor:default}.pp-section-content.pp-collapsed{display:none}.pp-slider{border-radius:3px;outline:none;align-items:center;gap:4px;padding:2px 4px;display:flex}.pp-slider:focus{background:#4a4bae33;box-shadow:inset 0 0 0 1px #4a4bae66}.pp-slider-label{color:#889;text-overflow:ellipsis;white-space:nowrap;width:62px;min-width:62px;font-size:10px;overflow:hidden}.pp-slider-label:hover{z-index:10;background:#1a1a2e;position:relative;overflow:visible}.pp-slider input[type=range]{appearance:none;cursor:pointer;background:0 0;flex:1;min-width:0;height:14px}.pp-slider input[type=range]::-webkit-slider-runnable-track{background:#2a2b5e;border-radius:2px;height:4px}.pp-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#6a6bce;border:none;border-radius:50%;width:10px;height:10px;margin-top:-3px}.pp-slider input[type=range]:disabled::-webkit-slider-thumb{background:#444}.pp-slider-num{color:#aaf;text-align:right;background:#111;border:1px solid #2a2b5e;border-radius:3px;width:48px;min-width:48px;padding:1px 3px;font-family:inherit;font-size:10px}.pp-slider-num:disabled{color:#555;border-color:#222}.pp-override-slider{padding-left:2px}.pp-override-check{accent-color:#6a6bce;cursor:pointer;width:12px;min-width:12px;height:12px}.pp-override-slider:not(.overridden) .pp-slider-label{color:#555}.pp-spawn-section .pp-section-title{margin-bottom:2px}.pp-spawn-row{color:#889;grid-template-columns:auto 1fr auto 1fr auto 1fr;align-items:center;gap:4px 6px;padding:4px 10px 8px;font-size:10px;display:grid}.pp-spawn-row label{white-space:nowrap}.pp-select{color:#ccc;cursor:pointer;background:#151530;border:1px solid #2a2b5e;border-radius:3px;min-width:0;padding:2px 4px;font-family:inherit;font-size:10px}.pp-species-select option{font-weight:600}.pp-species-section{border-left:3px solid #0000}.pp-species-title{gap:4px}.pp-species-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.pp-species-vis-btn{cursor:pointer;opacity:.85;filter:saturate();background:0 0;border:none;padding:0 2px;font-size:11px;line-height:1;transition:opacity .15s,filter .15s}.pp-species-vis-btn:hover{opacity:1}.pp-species-vis-btn.pp-species-hidden{opacity:.3;filter:saturate(0)}.pp-interaction-label{color:#667;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:4px 4px 2px;font-size:9px;display:flex}.pp-interaction-details{border-top:1px solid #1a1a30;margin-top:2px}.pp-interaction-details summary{list-style:none}.pp-interaction-details summary::-webkit-details-marker{display:none}.pp-interaction-details summary:before{content:"▶";color:#445;margin-right:4px;font-size:7px;transition:transform .15s;display:inline-block}.pp-interaction-details[open] summary:before{transform:rotate(90deg)}.pp-species-container{border-top:1px solid #1a1a30}.pp-filter-bar{border-bottom:1px solid #1a1a30;flex-direction:column;gap:4px;padding:6px 8px;display:flex}.pp-filter-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pp-filter-label{color:#667;white-space:nowrap;margin-right:2px;font-size:10px}.pp-filter-chip{color:#667;cursor:pointer;background:0 0;border:1px solid #333;border-radius:8px;padding:1px 6px;font-size:10px;line-height:1.4;transition:background .1s,color .1s,border-color .1s}.pp-filter-chip:hover{color:#aab;border-color:#556}.pp-filter-chip.active{color:#ccd;background:#2a2a50;border-color:#4a4a8a}.pp-filter-species{border-left-style:solid;border-left-width:3px;padding-left:4px}.pp-filter-chip-all,.pp-filter-chip-none{font-style:italic}.pp-changed-section{border-left:2px solid #6a6aff}.pp-changed-section .pp-section-title{color:#aaf}.pp-queried-section{border-left:2px solid #5fbf8f}.pp-queried-section .pp-section-title{color:#8fd}.pp-queried-label{color:#6a8;font-size:10px;font-family:var(--mono,monospace);opacity:.85;margin-left:6px}.pp-queried-note{color:#778;padding:4px 6px;font-size:10px;font-style:italic;line-height:1.4}.pp-changed-subgroup{margin:2px 0}.pp-changed-subgroup-header{color:#89b;-webkit-user-select:none;user-select:none;padding:2px 4px;font-size:10px}.pp-changed-subgroup-header:hover{color:#abd}.pp-changed-subgroup-content{padding-left:4px}.pp-changed-subgroup-content.pp-collapsed{display:none}.pp-expand-all-btn{float:right;color:#556;cursor:pointer;opacity:.6;padding:0 4px;font-size:11px}.pp-expand-all-btn:hover{color:#adf;opacity:1}.pp-changed-species-group{margin-top:2px}.pp-changed-species-header{color:#99a;-webkit-user-select:none;user-select:none;cursor:pointer;border-top:1px solid #333;padding:4px 4px 2px;font-size:11px}.pp-changed-species-header:hover{color:#cde}.pp-changed-species-content.pp-collapsed{display:none}.pp-changed-pair-group{margin-top:1px}.pp-changed-pair-header{color:#778;-webkit-user-select:none;user-select:none;padding:2px 4px 1px 12px;font-size:10px}.pp-changed-pair-header:hover{color:#abd}.pp-changed-pair-count{color:#556;font-size:9px}.pp-changed-pair-content.pp-collapsed{display:none}.pp-slider-track-wrap{flex:1;align-items:center;display:flex;position:relative}.pp-slider-track-wrap input[type=range]{width:100%}.pp-ref-tick{opacity:.7;pointer-events:none;background:#f80;border-radius:1px;width:2px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%)}.pp-ref-select-row{align-items:center;gap:4px;display:flex}.pp-ref-select{color:#dde;background:#1a1a2e;border:1px solid #334;border-radius:3px;flex:1;max-width:120px;padding:2px 4px;font-size:10px}.pp-ref-select:focus{border-color:#668;outline:none}.pp-ref-indicator{color:#f80;opacity:.7;white-space:nowrap;text-overflow:ellipsis;max-width:70px;font-size:9px;overflow:hidden}.pp-ref-checkbox-row{align-items:center;gap:4px;display:flex}.pp-ref-checkbox{accent-color:#668}#fullscreen-btn,#popout-btn{z-index:10;color:#888;cursor:pointer;background:#141428b3;border:1px solid #333;border-radius:4px;padding:4px 8px;font-size:16px;line-height:1;position:absolute;top:8px}#fullscreen-btn{right:8px}#popout-btn{right:44px}#fullscreen-btn:hover,#popout-btn:hover{color:#ddd;background:#1e1e3ce6;border-color:#555}.canvas-placeholder{color:#556;cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex}.canvas-placeholder:hover{color:#88a}.canvas-placeholder-icon{font-size:36px}.canvas-placeholder-hint{color:#445;font-size:11px}#perf-overlay{pointer-events:none;z-index:10;display:none;position:absolute;top:8px;right:80px}#shape-preview{pointer-events:none;z-index:10;background:#0a0a1ae6;border:1px solid #333;border-radius:6px;display:none;position:absolute;bottom:8px;left:8px}#canvas-panel:fullscreen #perf-overlay{z-index:100;position:fixed;top:12px;right:56px}#canvas-panel:fullscreen #shape-preview{z-index:100;position:fixed;bottom:12px;left:12px}#canvas-panel:fullscreen{background:#000}#canvas-panel:fullscreen #c{border-radius:0}#canvas-panel:fullscreen #fullscreen-btn{z-index:100;position:fixed;top:12px;right:12px}#canvas-panel:fullscreen #popout-btn{display:none}.waveform-wrap{border-top:1px solid #ffffff0f;padding:4px 8px 6px}.waveform-canvas{border-radius:3px;width:100%;height:48px;display:block}#c{touch-action:none;background:#0d0d20;border-radius:4px;flex:1;width:100%;min-height:0;display:block}#touch-modes{z-index:20;background:#0a0a1ad9;border:1px solid #ffffff1a;border-radius:8px;gap:4px;padding:4px;display:none;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.touch-mode{color:#aaa;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:background .15s,border-color .15s;display:flex}.touch-mode:hover{background:#ffffff1a}.touch-mode.active{color:#ddf;background:#5078c84d;border-color:#5078c899}#status{color:#666;text-align:center;min-height:1.4em;padding:4px 0;font-size:11px}.arena-canvas{touch-action:none;background:#0d0d20;border-radius:4px;flex:1;width:100%;min-height:0;display:block}.arena-labels{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.arena-label{color:#aaf;text-shadow:0 0 4px #000,0 0 8px #000;white-space:nowrap;padding:4px 6px;font-size:10px;line-height:1.2;position:absolute;overflow:hidden}.arena-label .params{color:#888;font-size:9px}.nav-hamburger{cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;margin-right:4px;padding:6px 8px;display:flex}.nav-hamburger:hover{background:#ffffff14}.hamburger-icon{background:#aaa;width:16px;height:2px;display:block;position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";background:#aaa;width:16px;height:2px;display:block;position:absolute;left:0}.hamburger-icon:before{top:-5px}.hamburger-icon:after{top:5px}.nav-hamburger:hover .hamburger-icon,.nav-hamburger:hover .hamburger-icon:before,.nav-hamburger:hover .hamburger-icon:after{background:#fff}.app-nav{z-index:1000;background:#1a1a2e;border:1px solid #2a2b5e;border-radius:6px;flex-direction:column;gap:2px;padding:8px 6px;font-size:12px;position:absolute;top:100%;left:8px;box-shadow:0 4px 12px #00000080}.app-nav a{color:#aaa;white-space:nowrap;border-radius:3px;padding:5px 12px;text-decoration:none}.app-nav a:hover{color:#fff;background:#ffffff14}.app-nav a.active{color:#aaf;background:#5078c833}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{color:#ccc;background:#1a1a2e;border:1px solid #4a4bae;border-radius:8px;min-width:360px;max-width:90vw;padding:16px;font-family:inherit}.modal h3{color:#aaf;margin-bottom:10px;font-size:14px}.modal textarea{color:#8a8;resize:vertical;background:#080810;border:1px solid #333;border-radius:4px;width:100%;height:200px;padding:8px;font-family:inherit;font-size:12px}.modal .modal-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.modal button{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:3px;padding:4px 14px;font-family:inherit;font-size:12px}.modal button:hover{background:#2a2b5e}.modal button.primary{color:#6f6;border-color:#363}.sweep-viz-overlay{z-index:20;background:#080810f2;border-radius:4px;flex-direction:column;display:flex;position:absolute;inset:0}.sweep-viz-overlay .sweep-header{border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.sweep-viz-overlay .sweep-header h3{color:#aaf;margin:0;font-size:13px}.sweep-viz-overlay .sweep-controls{align-items:center;gap:8px;padding:4px 12px;font-size:11px;display:flex}.sweep-viz-overlay .sweep-controls select{color:#ccc;background:#1a1a2e;border:1px solid #333;border-radius:3px;padding:2px 6px;font-family:inherit;font-size:11px}.sweep-viz-overlay canvas{flex:1;width:100%;min-height:0}.sweep-viz-overlay .sweep-close{color:#ccc;cursor:pointer;background:0 0;border:1px solid #333;border-radius:3px;padding:2px 8px;font-size:12px}.sweep-viz-overlay .sweep-close:hover{background:#2a2b5e}.sweep-tooltip{color:#ccc;pointer-events:none;z-index:25;white-space:pre;background:#141428f2;border:1px solid #4a4bae;border-radius:4px;padding:6px 10px;font-size:11px;position:absolute}.timeline-scrubber{z-index:15;background:#141428d9;border:1px solid #333;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;bottom:28px;left:16px;right:16px}.timeline-scrubber input[type=range]{flex:1}.timeline-scrubber span{color:#888;text-align:center;min-width:60px;font-size:11px}.timeline-scrubber button{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:3px;padding:2px 8px;font-size:11px}.timeline-scrubber button:hover{background:#2a2b5e}.pp-watch-table{border-collapse:collapse;width:100%;font-size:11px}.pp-watch-table tr:not(:last-child){border-bottom:1px solid #222}.pp-watch-table td{padding:3px 8px}.pp-watch-name{color:#8cf;white-space:nowrap}.pp-watch-value{color:#ccc;text-align:right;font-variant-numeric:tabular-nums}#yield-panel{z-index:15;background:#141428e6;border:1px solid #333;border-radius:4px;min-width:180px;max-width:340px;max-height:200px;font-size:10px;position:absolute;bottom:30px;right:4px;overflow-y:auto}.yield-header{color:#af8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #333;padding:4px 8px;font-size:10px;font-weight:500}#yield-panel table{border-collapse:collapse;width:100%}#yield-panel tr:not(:last-child){border-bottom:1px solid #1a1a2a}.yield-idx{color:#666;white-space:nowrap;width:1%;padding:2px 6px}.yield-val{color:#ccc;font-variant-numeric:tabular-nums;padding:2px 6px}#guide-panel{z-index:15;color:#ccc;background:#141428eb;border:1px solid #444;border-radius:5px;padding:10px 14px;font-size:12px;position:absolute;bottom:28px;left:16px;right:16px}.guide-title{color:#aaf;margin-bottom:4px;font-size:13px;font-weight:600}.guide-step-label{color:#eee;margin-bottom:2px;font-size:12px}.guide-step-desc{color:#999;margin-bottom:8px;font-size:11px;line-height:1.3}.guide-btn-bar{align-items:center;gap:6px;display:flex}.guide-btn-bar button{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #444;border-radius:3px;padding:3px 10px;font-size:11px}.guide-btn-bar button:hover:not(:disabled){background:#2a2b5e}.guide-btn-bar button:disabled{opacity:.4;cursor:default}.guide-indicator{color:#888;font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.cm-eval-flash{background:#64c8ff26;transition:background .3s ease-out}.cm-inline-result{color:#82c882d9;pointer-events:none;padding-left:1ch;font-style:italic}.cm-inline-result-err{color:#e67878d9}.cm-debug-line{background:#ffc8001f!important}.cm-debug-line:after{content:"";background:#ffc800;width:3px;position:absolute;top:0;bottom:0;left:0}#debug-btn{color:#8cf}#step-btn,#continue-btn{font-size:12px}.debug-active #step-btn,.debug-active #continue-btn{display:inline-block!important}.debug-active #run-btn,.debug-active #debug-btn{display:none!important}.cheat-sheet-overlay{z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cheat-sheet{color:#ddd;background:#1e1e2e;border:1px solid #444;border-radius:10px;width:90vw;max-width:680px;padding:28px 36px;font-family:system-ui,-apple-system,sans-serif;position:relative;box-shadow:0 12px 40px #00000080}.cheat-sheet h2{color:#fff;margin:0 0 18px;font-size:18px}.cheat-sheet-close{color:#888;cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:14px;right:18px}.cheat-sheet-close:hover{color:#fff}.cheat-sheet-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.cheat-sheet-col h3{text-transform:uppercase;letter-spacing:.5px;color:#8cf;margin:12px 0 6px;font-size:13px}.cheat-sheet-col h3:first-child{margin-top:0}.cheat-sheet-note{color:#8a8aa0;margin:0 0 6px;font-size:12px}.cheat-sheet-col dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}.cheat-sheet-col dt{color:#ffb86c;white-space:nowrap;text-align:right;background:#2a2a3a;border-radius:4px;padding:2px 7px;font-family:SF Mono,Fira Code,monospace}.cheat-sheet-col dd{color:#ccc;margin:0;padding:2px 0}@media (width<=600px){.cheat-sheet-columns{grid-template-columns:1fr}}.tour-overlay{z-index:9000;background:#00000080;position:fixed;inset:0}.tour-highlight{z-index:9001;pointer-events:none;border:2px solid #6c8cff;border-radius:6px;transition:all .3s;position:fixed;box-shadow:0 0 0 9999px #00000080,0 0 20px #6c8cff66}.tour-tooltip{color:#e0e0f0;z-index:9002;background:#1a1a3a;border:1px solid #6c8cff;border-radius:10px;padding:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:left .3s,top .3s;position:fixed;box-shadow:0 8px 30px #00000080}.tour-title{color:#6c8cff;margin-bottom:6px;font-size:14px;font-weight:700}.tour-text{color:#bbb;margin-bottom:12px;font-size:12px;line-height:1.5}.tour-footer{justify-content:space-between;align-items:center;display:flex}.tour-counter{color:#666;font-size:11px}.tour-buttons{gap:8px;display:flex}.tour-buttons button{cursor:pointer;border:none;border-radius:5px;padding:5px 14px;font-size:12px;font-weight:600}.tour-skip{color:#888;background:0 0;border:1px solid #333!important}.tour-skip:hover{color:#ccc;border-color:#555!important}.tour-next{color:#0a0a1a;background:#6c8cff}.tour-next:hover{background:#8aa4ff}#history-panel{z-index:100;background:#1a1a2e;border-left:1px solid #333;flex-direction:column;width:300px;font-size:12px;display:flex;position:absolute;top:40px;bottom:0;right:0}#history-panel-header{color:#aaa;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:8px 12px;font-weight:600;display:flex}#history-panel-header button{color:#888;cursor:pointer;background:0 0;border:none;font-size:16px}#history-list{flex:1;min-height:0;padding:4px 0;overflow-y:auto}.history-item{cursor:pointer;border-bottom:1px solid #222;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.history-item:hover{background:#252545}.history-item.active{background:#2a2a55;border-left:2px solid #6c8cff}.history-time{color:#888;font-size:10px}.history-trigger{color:#999;background:#333;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px}.history-trigger.run{color:#4f4;background:#1a3a1a}.history-trigger.save{color:#ff4;background:#3a3a1a}#history-preview{white-space:pre-wrap;color:#ccc;background:#12122a;border-top:1px solid #333;height:40%;min-height:0;padding:8px;font-family:monospace;font-size:11px;overflow:auto}.history-restore-btn{color:#0a0a1a;cursor:pointer;background:#6c8cff;border:none;border-radius:4px;flex-shrink:0;margin:8px;padding:6px 16px;font-size:12px;font-weight:600}.history-restore-btn:hover:not(:disabled){background:#8aa4ff}.history-restore-btn:disabled{opacity:.4;cursor:default}.history-diff{color:#888;flex-shrink:0;padding:4px 12px;font-size:10px}.history-diff .added{color:#4f4}.history-diff .removed{color:#f44}#examples-browser{z-index:100;background:#1a1a2e;border-right:1px solid #333;flex-direction:column;width:300px;font-size:12px;display:flex;position:absolute;top:40px;bottom:0;left:0}.eb-header{color:#aaa;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:8px 12px;font-weight:600;display:flex}.eb-close{color:#888;cursor:pointer;background:0 0;border:none;font-size:16px}.eb-search{color:#ddd;background:#12122a;border:1px solid #333;border-radius:4px;outline:none;margin:8px;padding:6px 10px;font-size:12px}.eb-search:focus{border-color:#6c8cff}.eb-tree{flex:1;padding:4px 0;overflow-y:auto}.eb-folder{margin:0}.eb-folder-name{cursor:pointer;color:#ccc;padding:6px 12px;font-weight:600;list-style:none}.eb-folder-name::-webkit-details-marker{display:none}.eb-folder-icon{font-size:8px;transition:transform .2s;display:inline-block}.eb-folder[open] .eb-folder-icon{transform:rotate(0)}.eb-folder:not([open]) .eb-folder-icon{transform:rotate(-90deg)}.eb-count{color:#666;margin-left:6px;font-size:10px}.eb-folder-desc{color:#666;padding:2px 12px 6px 24px;font-size:10px}.eb-item{cursor:pointer;border-bottom:1px solid #1a1a3a;justify-content:space-between;align-items:center;padding:5px 12px 5px 24px;display:flex}.eb-item:hover{background:#252545}.eb-item-name{color:#ccc}.eb-badge{border-radius:3px;padding:1px 6px;font-size:9px}.eb-badge-script{color:#7ab;background:#1a2a3a}.eb-badge-notebook{color:#b8f;background:#2a1a3a}.eb-badge-state{color:#6ca;background:#1a3a2a}.eb-section-sep{color:#888;text-transform:uppercase;letter-spacing:.5px;border-top:1px solid #444;margin-top:8px;padding:8px 12px 4px;font-size:10px;font-weight:600}.tutorial-callout{color:#b0b4bc;background:#1e1e3a;border-left:3px solid #4b5563;border-radius:0 6px 6px 0;margin:12px 0;padding:10px 14px;font-size:13px;line-height:1.6}.tutorial-callout .callout-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.tutorial-callout.tip{border-left-color:#34d399}.tutorial-callout.tip .callout-label{color:#34d399}.tutorial-callout.note{border-left-color:#60a5fa}.tutorial-callout.note .callout-label{color:#60a5fa}.tutorial-callout.warning{border-left-color:#fbbf24}.tutorial-callout.warning .callout-label{color:#fbbf24}.has-tooltip{border-bottom:1px dotted #60a5fa;position:relative}.has-tooltip:after{content:attr(data-tooltip);color:#d1d5db;white-space:nowrap;white-space:normal;pointer-events:none;opacity:0;z-index:100;background:#1e1e3a;border:1px solid #3a3b6e;border-radius:4px;max-width:300px;padding:6px 10px;font-size:12px;transition:opacity .15s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.has-tooltip:hover:after{opacity:1}.tutorial-code-block{position:relative}.tutorial-editor-container{border-radius:6px;overflow:hidden}.nb-cell-head{flex-wrap:wrap;align-items:center;gap:8px;min-height:22px;margin-bottom:3px;display:flex}.nb-cell-actions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.nb-cell-btn{cursor:pointer;color:#9ca3af;white-space:nowrap;background:#22224a;border:1px solid #3a3b6e;border-radius:4px;padding:2px 9px;font-size:11px;line-height:1.4;transition:opacity .15s,background .15s,color .15s}.nb-cell-btn:hover:not(:disabled){color:#ccc;background:#2a2b5e}.tutorial-run-btn{color:#6ee76e;opacity:.7;background:#2d4a2d;border-color:#3d6a3d}.tutorial-run-btn:hover{opacity:1;background:#3a5a3a}.tutorial-run-btn.is-queued{opacity:1;color:#d8d88a;background:#3a3a2d;border-color:#6a6a3d}.tutorial-run-btn.is-running{opacity:1;color:#9ac4ff;background:#2d3d5a;border-color:#4a6a9a}.tutorial-run-btn.is-ok{opacity:.75;color:#8fc98f;background:#24361f;border-color:#3a5a32}.tutorial-run-btn.is-error{opacity:1;color:#ff9a9a;background:#4a2020;border-color:#8a3a3a}.tutorial-run-btn:disabled{cursor:default}.tutorial-run-btn:disabled:hover{background:inherit}.tutorial-run-btn.clicked{opacity:1;background:#4a7a4a;transition:transform .1s,background .1s;transform:scale(.92)}.tutorial-code-block.eval-success{border-left:3px solid #34d399;padding-left:2px}.tutorial-code-block.eval-error{border-left:3px solid #f87171;padding-left:2px}.tutorial-insert-btn{color:#444;cursor:pointer;opacity:0;background:0 0;border:1px dashed #0000;border-radius:4px;width:100%;margin:4px 0;padding:2px 0;font-size:14px;transition:opacity .15s;display:block}.tutorial-insert-btn:hover{opacity:1;color:#7a7bae;background:#1a1a30;border-color:#3a3b6e}.tutorial-result{color:#93c5fd;white-space:pre-wrap;word-break:break-word;background:#12122a;border:1px solid #2a2b5e;border-radius:4px;margin-top:4px;padding:8px 12px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.tutorial-result.error{color:#f87171;background:#1a1020;border-color:#5a2020}@media (pointer:coarse){#toolbar button,#toolbar select{min-height:36px;padding:8px 12px;font-size:13px}.panel-toggle{min-width:32px;min-height:36px;padding:6px 10px!important;font-size:11px!important}#sound-btn{min-height:36px;padding:8px 6px 8px 10px!important}.audio-caret{min-height:36px;padding:8px!important;font-size:11px!important}.sound-badge{width:14px;padding:3px 0;font-size:10px}.toolbar-sep{height:24px}.toolbar-menu-items button,.toolbar-menu-items select{min-height:44px;padding:10px 16px;font-size:13px}.resize-handle-v{width:24px}.resize-handle-v:after{width:4px}.resize-handle-h{height:24px}.resize-handle-h:after{height:4px}}@media (pointer:coarse) and (width>=768px){header{gap:8px;padding:0 8px}header h1{font-size:14px}#app{gap:4px;padding:4px 0 0}.resize-handle-v,.resize-handle-h,#console-resize,#params-resize,#panel-resize{display:none!important}#canvas-panel{flex:1;min-width:0}#editor-panel{z-index:900;background:#0a0a1a;border-top:2px solid #3a3b6e;height:50vh;transition:transform .25s ease-out;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -4px 20px #00000080;width:100%!important}#editor-panel.panel-hidden{transform:translateY(100%);display:flex!important}#editor-panel:not(.panel-hidden){transform:translateY(0)}#params-panel{transition:width .2s ease-out,min-width .2s ease-out;overflow:hidden;width:260px!important;min-width:0!important}#params-panel.panel-hidden{border:none!important;width:0!important;display:flex!important}#console{height:100px;min-height:60px}#editor .cm-editor{font-size:15px}.tab{min-height:36px;padding:8px 12px;font-size:13px}.tab-close{justify-content:center;align-items:center;min-width:28px;min-height:28px;padding:2px 6px;font-size:12px;display:flex}.tab-add{min-width:36px;padding:6px 12px;font-size:18px}#examples-browser,#history-panel{z-index:950;width:320px;max-width:80vw;top:0;bottom:0;left:0;box-shadow:4px 0 20px #00000080;position:fixed!important}.pp-header{padding:8px 12px}.pp-title{font-size:13px}#params-panel .lil-gui .controller{min-height:28px}#params-panel .lil-gui .controller .name{font-size:12px}#toolbar{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:2px;overflow-x:auto}#toolbar::-webkit-scrollbar{display:none}#debug-btn,#step-btn,#continue-btn,#undo-sim-btn,#redo-sim-btn,#open-3d-btn,#perf-btn,#help-btn{display:none!important}#toolbar .toolbar-sep{display:none}#touch-modes{display:flex!important}#editor-panel:before{content:"";background:#555;border-radius:2px;flex-shrink:0;width:40px;height:4px;margin:6px auto 2px;display:block}}.mobile-warning{z-index:10000;align-items:center;gap:12px;padding:10px 48px 10px 16px;font-size:13px;line-height:1.4;animation:.3s ease-out mw-slide-in;display:flex;position:fixed;top:0;left:0;right:0}.mobile-warning--info{color:#9ce;background:#0f1e32f2;border-bottom:1px solid #246}.mobile-warning--warn{color:#ed8;background:#28230af2;border-bottom:1px solid #540}.mobile-warning--block{color:#f99;background:#320f0ff2;border-bottom:1px solid #622}.mobile-warning__text{flex:1}.mobile-warning__close{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:18px;line-height:1}.mobile-warning__close:active{opacity:1}.mobile-warning--hiding{animation:.2s ease-in forwards mw-slide-out}@keyframes mw-slide-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes mw-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@media (pointer:coarse){.mobile-warning{padding:12px 52px 12px 16px;font-size:14px}.mobile-warning__close{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:4px 12px;font-size:22px;display:flex}}.pattern-editor-overlay{z-index:100;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pattern-editor-card{color:#ccc;background:#1a1a2e;border:1px solid #4a4bae;border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:16px 20px;font-family:inherit;display:flex}.pattern-editor-card h3{color:#aaf;align-self:flex-start;margin:0;font-size:14px}.pattern-editor-subtitle{color:#888;align-self:flex-start;font-size:11px}.pattern-editor-canvas{cursor:crosshair;image-rendering:pixelated;touch-action:none;border:1px solid #333;border-radius:4px;width:280px;height:280px}.pattern-editor-presets{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.pattern-editor-presets button{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:3px;min-width:30px;padding:3px 10px;font-family:inherit;font-size:13px}.pattern-editor-presets button:hover{background:#2a2b5e}.pattern-editor-counter{color:#8a8;font-size:12px}.pattern-editor-counter.warning{color:#da6}.pattern-editor-counter.empty{color:#666}.pattern-editor-actions{align-self:flex-end;gap:8px;display:flex}.pattern-editor-actions button{color:#ccc;cursor:pointer;background:#1a1a2e;border:1px solid #333;border-radius:3px;padding:4px 14px;font-family:inherit;font-size:12px}.pattern-editor-actions button:hover{background:#2a2b5e}.pattern-editor-actions button.primary{color:#6f6;border-color:#363}.pattern-editor-actions button.primary:hover{background:#1a3a1a}#notebook-panel{background:#1a1a2e;flex-direction:column;height:100%;display:none;overflow:hidden}.nb-header{background:#12122a;border-bottom:1px solid #2a2b5e;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.nb-title{color:#9ca3af;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.nb-dirty{color:#fa4;font-size:14px}.nb-header-spacer{flex:1}.nb-header button{color:#9ca3af;cursor:pointer;white-space:nowrap;background:#22224a;border:1px solid #3a3b6e;border-radius:3px;padding:3px 8px;font-size:11px}.nb-header button:hover{color:#ccc;background:#2a2b5e}.nb-header .nb-close{background:0 0;border:none;padding:0 4px;font-size:18px}.nb-content{flex:1;min-width:0;padding:14px 18px 40px;overflow-y:auto}.nb-prose{color:#c0c4d0;max-width:720px;font-size:13.5px;line-height:1.55}.nb-body{flex:1;min-height:0;display:flex;overflow:hidden}.nb-toc{scrollbar-width:thin;scrollbar-color:#333 transparent;background:#15152e;border-right:1px solid #24244a;flex-direction:column;flex:0 0 190px;width:190px;transition:flex-basis .12s,width .12s;display:flex;overflow:hidden auto}.nb-body.nb-toc-shut>.nb-toc{flex-basis:26px;width:26px}.nb-body.nb-toc-shut .nb-toc-title,.nb-body.nb-toc-shut .nb-toc-list,.nb-body.nb-no-toc>.nb-toc{display:none}.nb-toc-head{z-index:1;background:#15152e;align-items:center;gap:5px;padding:8px 6px 6px;display:flex;position:sticky;top:0}.nb-toc-title{color:#6a70a0;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;font-size:10px;font-weight:600}.nb-toc-toggle{color:#6a70a0;cursor:pointer;background:0 0;border:none;border-radius:3px;flex:none;width:16px;height:16px;padding:0;font-size:11px;line-height:1}.nb-toc-toggle:hover{color:#cdd2ff;background:#26264e}.nb-toc-list{flex-direction:column;padding:0 4px 10px;display:flex}.nb-toc-item{color:#9aa0c8;-webkit-line-clamp:2;border-left:2px solid #0000;border-radius:3px;-webkit-box-orient:vertical;padding:3px 5px;font-size:11.5px;line-height:1.35;text-decoration:none;display:-webkit-box;overflow:hidden}.nb-toc-item:hover{color:#cdd2ff;background:#1d1d3e}.nb-toc-item.nb-toc-active{color:#e0e4ff;background:#23234a;border-left-color:#6c72d8}.nb-toc-d0{color:#b0b6e0;font-weight:600}.nb-toc-d1{padding-left:13px}.nb-toc-d2{padding-left:24px;font-size:11px}.nb-body.nb-toc-cramped>.nb-toc{flex-basis:26px;width:26px}.nb-body.nb-toc-cramped .nb-toc-title,.nb-body.nb-toc-cramped .nb-toc-list{display:none}.nb-prose h1{color:#e0e4f0;margin:12px 0 8px;font-size:20px}.nb-prose h2{color:#d0d4e0;margin:16px 0 6px;font-size:16px}.nb-prose h3{color:#c8ccd8;margin:12px 0 4px;font-size:14px}.nb-prose code{background:#22224a;border-radius:3px;padding:1px 4px;font-size:12px}.nb-prose pre{background:#12122a;border-radius:4px;padding:10px 12px;overflow-x:auto}.nb-prose pre code{background:0 0;padding:0}.nb-prose details{background:#1e1e3a;border:1px solid #2a2b5e;border-radius:6px;margin:12px 0;padding:0}.nb-prose details summary{cursor:pointer;color:#9ca3af;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:13px;font-weight:500}.nb-prose details summary:hover{color:#e5e7eb}.nb-prose details[open] summary{border-bottom:1px solid #2a2b5e;margin-bottom:8px}.nb-prose details>:not(summary){padding:0 14px}.nb-cell{max-width:720px;margin:10px 0;position:relative}.nb-cell-id{color:#55588a;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:10px;overflow:hidden}.nb-tohere-btn,.nb-pin-btn,.nb-del-btn{opacity:0}.nb-cell:hover .nb-tohere-btn,.nb-cell:hover .nb-pin-btn,.nb-cell:hover .nb-del-btn{opacity:1}.nb-tohere-btn:disabled,.nb-pin-btn:disabled,.nb-del-btn:disabled{cursor:default;opacity:0!important}.nb-del-btn{padding:2px 7px}.nb-del-btn:hover:not(:disabled){color:#e77;background:#4a2222;border-color:#6a3a3a}.nb-assets{margin-top:4px}.nb-asset{background:#141430;border:1px solid #2a2b5e;border-radius:4px;max-width:720px;margin:6px 0;padding:8px 10px}.nb-asset-label{color:#55588a;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:10px}.nb-stale-badge{color:#fa4;text-transform:none;letter-spacing:0;margin-left:6px}.nb-output-pre{color:#9fd49f;white-space:pre-wrap;word-break:break-word;max-height:200px;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;overflow-y:auto}.nb-thumb-img{border-radius:4px;max-width:240px;display:block}.nb-plot-canvas{border-radius:4px;max-width:100%;display:block}.nb-state-card button{color:#9ca3af;cursor:pointer;background:#22224a;border:1px solid #3a3b6e;border-radius:3px;margin-right:6px;padding:3px 8px;font-size:11px}.nb-state-card button:hover{color:#ccc;background:#2a2b5e}.nb-state-size{color:#55588a;text-transform:none}.nb-hidden-cell .tutorial-editor-container{display:none}.nb-hidden-cell .nb-cell-id:after{content:" · hidden"}.nb-cell .tutorial-insert-btn{margin-top:2px}.nb-add-cell-end{margin:12px 0 30px;display:block}.nb-source-modal{width:min(760px,92vw)}.nb-source-modal textarea{white-space:pre;height:60vh;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.pp-sonif-group{margin-top:0}.pp-sonif-head{cursor:pointer;-webkit-user-select:none;user-select:none;border-top:1px solid #1a1a30;align-items:baseline;gap:5px;padding:5px 10px 4px;display:flex}.pp-sonif-head:hover{background:#16162c}.pp-sonif-head:focus-visible{outline-offset:-1px;outline:1px solid #9aa0e0}.pp-sonif-head-label{color:#6a7baa;text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:600}.pp-sonif-sum{color:#55588a;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-left:auto;font-size:9px;overflow:hidden}.pp-sonif-body{padding-bottom:4px}.pp-sonif-body.pp-collapsed{display:none}.pp-sonif-error{line-height:1.4}.pp-sonif-species{padding:0 10px 4px}.pp-sonif-btn-row{flex-wrap:wrap;align-items:center;gap:3px;margin-bottom:4px;display:flex}.pp-sonif-btn-label{color:#667;margin-right:2px;font-size:9px}.pp-sonif-mini-btn{color:#aaf;cursor:pointer;background:#2a2a40;border:1px solid #445;border-radius:3px;padding:2px 6px;font-size:9px}.pp-sonif-mini-btn:hover{background:#35355a}.pp-sonif-mini-btn.active{color:#ffd58a;background:#4a3a1a;border-color:#8a6a2a}.pp-sonif-sp-meter-row{align-items:center;gap:4px;margin:-1px 0 3px 26px;display:flex}.pp-sonif-sp-vol{cursor:pointer;flex:0 0 58px;width:58px;height:10px;margin:0}.pp-sonif-sp-meter{background:#1a1a2e;border-radius:2px;flex:1;min-width:0;height:4px;overflow:hidden}.pp-sonif-sp-meter-fill{border-radius:2px;width:0%;height:100%}.pp-sonif-sp-row{grid-template-columns:26px 30px minmax(0,1fr) 46px 46px;align-items:center;gap:3px;margin-bottom:2px;display:grid}.pp-sonif-sp-row input[type=checkbox]{justify-self:center}.pp-sonif-sp-row select{min-width:0}.pp-sonif-sp-inst{align-items:center;gap:4px;margin:-1px 0 4px 26px;display:flex}.pp-sonif-sp-inst select{flex:1;min-width:0;font-size:10px}.pp-sonif-sp-inst-label{color:#55588a;font-size:10px}.pp-sonif-sp-head{color:#55588a;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.pp-sonif-mute-all{cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px dotted #55588a}.pp-sonif-mute-all:hover{color:#9aa0e0;border-bottom-color:#9aa0e0}.pp-sonif-mute-all:focus-visible{outline-offset:2px;outline:1px solid #9aa0e0}.pp-sonif-mute-all.is-all-muted{color:#f0a05a;border-bottom-color:#f0a05a}.pp-sonif-sp-chip{font-size:10px;font-weight:600}.pp-sonif-map{padding:0 10px 4px}.pp-sonif-map-row{border-bottom:1px solid #1a1b3a;margin-bottom:5px;padding-bottom:4px}.pp-sonif-map-top{grid-template-columns:1fr 10px 1fr 18px;align-items:center;gap:3px;display:grid}.pp-sonif-map-bottom{grid-template-columns:1fr 1fr 12px 1fr 1fr 1.2fr;align-items:center;gap:3px;margin-top:2px;display:grid}.pp-sonif-map-row .pp-slider-num{width:100%;min-width:0}.pp-sonif-map-row .te-btn{padding:0;line-height:1}.pp-sonif-arrow{color:#55588a;text-align:center;font-size:9px}.pp-sonif-readout{line-height:1.5}.pp-sonif-name{color:#ccc;background:#151530;border:1px solid #2a2b5e;border-radius:3px;flex:1;min-width:0;padding:2px 4px;font-family:inherit;font-size:10px}.pp-audio-status{color:#8a8fc0;letter-spacing:.02em;padding:2px 10px 4px;font-size:10px}.pp-audio-status.pp-audio-silent{color:#55588a}.pp-engine-unavailable>.pp-subsection-label{opacity:.45}.op-overlay{z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04041099;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.op-dialog{background:#12122c;border:1px solid #3a3a6a;border-radius:8px;flex-direction:column;width:min(680px,92vw);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 18px 60px #000000a6}.op-search-row{padding:10px 12px 6px}.op-search{color:#e8e8ff;background:#1a1a3a;border:1px solid #3a3a6a;border-radius:5px;outline:none;width:100%;padding:8px 10px;font-family:inherit;font-size:15px}.op-search:focus{border-color:#5c7cff}.op-filters{flex-wrap:wrap;gap:6px;padding:0 12px 8px;display:flex}.op-filter{color:#8a8ab0;cursor:pointer;background:#1a1a3a;border:1px solid #2c2c55;border-radius:999px;padding:3px 10px;font-family:inherit;font-size:11px}.op-filter:hover{color:#ccd}.op-filter.active{color:#cfe;background:#24264f;border-color:#4a5c9a}.op-list{padding:0 6px 6px;overflow-y:auto}.op-group{text-transform:uppercase;letter-spacing:.06em;color:#5b5b80;padding:8px 10px 3px;font-size:10px}.op-item{cursor:pointer;border-radius:5px;padding:6px 10px}.op-item.selected{background:#26295c}.op-item-main{align-items:center;gap:8px;display:flex}.op-item-title{color:#dde;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.op-item.selected .op-item-title{color:#fff}.op-item-folder{color:#5b5b80;flex:none;margin-left:auto;font-size:10px}.op-kind{color:#7ab;background:#1a2a3a;border-radius:3px;flex:none;padding:1px 6px;font-size:9px}.op-kind-notebook{color:#b8f;background:#2a1a3a}.op-kind-state{color:#6ca;background:#1a3a2a}.op-origin-browser{color:#d9a24a;background:#332a12}.op-origin-file{color:#99a;background:#24243f}.op-item-desc{color:#6a6a92;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.op-item-history{color:#667;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex:none;padding:1px 6px;font-family:inherit;font-size:11px}.op-item-history:hover{color:#adf;border-color:#46a}.op-empty{color:#6a6a92;text-align:center;padding:18px 12px;font-size:12px}.op-footer{background:#0e0e24;border-top:1px solid #2a2a4a;align-items:center;gap:10px;padding:8px 12px;display:flex}.op-file-btn{color:#aab;cursor:pointer;background:#1a1a3a;border:1px solid #333;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:11px}.op-file-btn:hover{color:#dde;border-color:#4a4a7a}.op-hint{color:#4b4b70;margin-left:auto;font-size:10px}@media (pointer:coarse){.op-dialog{max-height:80vh;padding-top:0}.op-item{padding:10px}.op-hint{display:none}}.ref-overlay{z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#04041099;justify-content:center;align-items:flex-start;padding-top:8vh;display:flex;position:fixed;inset:0}.ref-dialog{background:#12122c;border:1px solid #3a3a6a;border-radius:8px;flex-direction:column;width:min(920px,94vw);height:min(620px,78vh);display:flex;overflow:hidden;box-shadow:0 18px 60px #000000a6}.ref-head{align-items:center;gap:10px;padding:10px 12px 8px;display:flex}.ref-search{color:#e8e8ff;background:#1a1a3a;border:1px solid #3a3a6a;border-radius:5px;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:15px}.ref-search:focus{border-color:#5c7cff}.ref-filters{flex:none;gap:6px;display:flex}.ref-filter{color:#8a8ab0;cursor:pointer;background:#1a1a3a;border:1px solid #2c2c55;border-radius:999px;padding:3px 10px;font-family:inherit;font-size:11px}.ref-filter:hover{color:#ccd}.ref-filter.active{color:#cfe;background:#24264f;border-color:#4a5c9a}.ref-body{flex:1;min-height:0;display:flex}.ref-list{border-right:1px solid #2a2a4a;flex:none;width:260px;padding:0 6px 8px;overflow-y:auto}.ref-group{text-transform:uppercase;letter-spacing:.06em;color:#5b5b80;padding:8px 8px 3px;font-size:10px}.ref-item{cursor:pointer;color:#cbcbe4;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.ref-item.selected{color:#fff;background:#26295c}.ref-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ref-surface{color:#7ab;background:#1a2a3a;border-radius:3px;flex:none;margin-left:auto;padding:1px 5px;font-size:9px}.ref-surface-ctx3d{color:#b8f;background:#2a1a3a}.ref-detail{flex:1;min-width:0;padding:12px 16px;overflow-y:auto}.ref-detail-name{color:#fff;font-family:monospace;font-size:17px}.ref-detail-meta{text-transform:uppercase;letter-spacing:.06em;color:#5b5b80;margin-top:2px;font-size:10px}.ref-detail-sig{color:#9fd;white-space:pre;background:#0e0e24;border:1px solid #2a2a4a;border-radius:5px;margin:10px 0 0;padding:8px 10px;font-family:monospace;font-size:12px;overflow-x:auto}.ref-detail-desc{color:#b6b6d2;margin-top:10px;font-size:13px;line-height:1.5}.ref-detail-example{color:#cbd;white-space:pre-wrap;background:#0e0e24;border:1px solid #2a2a4a;border-radius:5px;margin:10px 0 0;padding:8px 10px;font-family:monospace;font-size:12px;overflow-x:auto}.ref-detail-actions{align-items:center;gap:10px;margin-top:14px;display:flex}.ref-insert-btn{color:#cfe;cursor:pointer;background:#24264f;border:1px solid #4a5c9a;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:11px}.ref-insert-btn:hover{color:#fff;border-color:#6c8cff}.ref-detail-src{color:#4b4b70;margin-left:auto;font-family:monospace;font-size:10px}.ref-empty{color:#6a6a92;text-align:center;padding:18px 12px;font-size:12px}.ref-footer{background:#0e0e24;border-top:1px solid #2a2a4a;align-items:center;gap:10px;padding:8px 12px;display:flex}.ref-count{color:#5b5b80;font-size:10px}.ref-hint{color:#4b4b70;margin-left:auto;font-size:10px}@media (pointer:coarse){.ref-dialog{height:84vh}.ref-body{flex-direction:column}.ref-list{border-bottom:1px solid #2a2a4a;border-right:none;width:auto;max-height:40%}.ref-item{padding:8px}.ref-hint{display:none}}.hover-card{max-width:420px;padding:5px 9px 7px;font-family:monospace;font-size:12px}.hover-card-sig{color:#cfe}.hover-card-desc{color:#aaa;white-space:pre-wrap;margin-top:3px;font-family:inherit}.hover-card-link{color:#7ab6ff;cursor:pointer;text-align:left;background:0 0;border:none;margin-top:6px;padding:0;font-family:inherit;font-size:11px;display:block}.hover-card-link:hover{color:#adf;text-decoration:underline}.op-kind-api{color:#6cc;background:#1a3a3a}.op-item-api{font-family:monospace}
