*{box-sizing:border-box;margin:0;padding:0}body{color:#ccc;background:#0a0a1a;height:100vh;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}.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;background:#2e1a1a;border-color:#a33}#sound-btn.active{color:#4f8;background:#1a2e1a;border-color:#3a6}#perf-btn.active{color:#4fffb0;background:#1a2e2a;border-color:#3a8}.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}#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:160px;margin-top:2px;padding:4px 0;display:none;position:absolute;top:100%;left:0;box-shadow:0 6px 20px #00000080}.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-files-section button{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#99a!important;padding-left:16px!important;font-size:11px!important}.recent-files-section button:hover{color:#ddf!important}.recent-files-section button .recent-file-time{float:right;color:#556;margin-left:8px;font-size:9px}#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-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-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}#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-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-beginner{color:#4f4;background:#1a3a1a}.eb-badge-intermediate{color:#ff4;background:#3a3a1a}.eb-badge-advanced{color:#f44;background:#3a1a1a}.eb-badge-state{color:#6cf;background:#1a2a3a}.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-panel{background:#1a1a2e;flex-direction:column;height:100%;overflow:hidden}.tutorial-header{background:#12122a;border-bottom:1px solid #2a2b5e;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.tutorial-title{color:#9ca3af;font-size:13px;font-weight:600}.tutorial-close{color:#666;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.tutorial-close:hover{color:#ccc}.tutorial-body{flex:1;min-height:0;display:flex;overflow:hidden}.tutorial-nav{background:#141430;border-right:1px solid #2a2b5e;flex-shrink:0;width:180px;padding:12px 8px;overflow-y:auto}.tutorial-nav:empty{display:none}.tutorial-nav-title{color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:0 6px;font-size:11px;font-weight:600}.tutorial-nav-link{color:#9ca3af;border-radius:3px;margin-bottom:2px;padding:4px 6px;font-size:12px;text-decoration:none;display:block}.tutorial-nav-link:hover{color:#e5e7eb;background:#252545}.tutorial-nav-link.h3{padding-left:18px;font-size:11px}.tutorial-content{flex:1;min-width:0;padding:24px 32px;overflow-y:auto}.tutorial-content h1{color:#e5e7eb;margin:0 0 16px;font-size:24px;font-weight:700}.tutorial-content h2{color:#d1d5db;border-bottom:1px solid #2a2b5e;margin:32px 0 12px;padding-bottom:6px;font-size:18px;font-weight:600}.tutorial-content h3{color:#c4c8d0;margin:24px 0 8px;font-size:15px;font-weight:600}.tutorial-content p{color:#b0b4bc;margin:0 0 12px;font-size:14px;line-height:1.7}.tutorial-content ul,.tutorial-content ol{color:#b0b4bc;margin:0 0 12px;padding-left:24px;font-size:14px;line-height:1.7}.tutorial-content code{color:#93c5fd;background:#252545;border-radius:3px;padding:2px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.tutorial-content a{color:#60a5fa;text-decoration:none}.tutorial-content a:hover{text-decoration:underline}.tutorial-content details{background:#1e1e3a;border:1px solid #2a2b5e;border-radius:6px;margin:12px 0;padding:0}.tutorial-content details summary{cursor:pointer;color:#9ca3af;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:13px;font-weight:500}.tutorial-content details summary:hover{color:#e5e7eb}.tutorial-content details[open] summary{border-bottom:1px solid #2a2b5e;margin-bottom:8px}.tutorial-content details>:not(summary){padding:0 14px}.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-block-wrapper{margin:12px 0 16px}.tutorial-code-block{position:relative}.tutorial-editor-container{border-radius:6px;overflow:hidden}.tutorial-run-btn{color:#6ee76e;cursor:pointer;z-index:10;opacity:.7;background:#2d4a2d;border:1px solid #3d6a3d;border-radius:4px;padding:3px 10px;font-size:11px;transition:opacity .15s;position:absolute;top:6px;right:6px}.tutorial-run-btn:hover{opacity:1;background:#3a5a3a}.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-block-wrapper:hover .tutorial-insert-btn,.tutorial-content>.tutorial-insert-btn:hover{opacity:1}.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}#tutorial-btn{font-size:14px}.tutorial-toc-toggle{color:#666;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:2px 6px;font-size:16px;line-height:1}.tutorial-toc-toggle:hover{color:#ccc;background:#252545}.tutorial-toc-toggle.active{color:#9ca3af}.tutorial-console-wrapper{border-top:1px solid #2a2b5e;flex-direction:column;flex-shrink:0;height:170px;min-height:80px;display:flex}.tutorial-console-header{color:#666;background:#0f0f22;border-bottom:1px solid #1a1a3a;flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 10px;font-size:11px;display:flex}.tutorial-console-clear{color:#888;cursor:pointer;background:0 0;border:1px solid #333;border-radius:3px;padding:1px 8px;font-size:10px}.tutorial-console-clear:hover{color:#ccc;border-color:#555}.tutorial-console{color:#b0b4bc;background:#0d0d1a;flex:1;min-height:0;padding:8px 10px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;overflow-y:auto}.tutorial-console .tc-line{white-space:pre-wrap;word-break:break-word;padding:1px 0;line-height:1.5}.tutorial-console .tc-line.err{color:#f88}.tutorial-console .tc-line.info{color:#88f}.tutorial-console .tc-line.warn{color:#fd8}.tutorial-console .tc-line.repl-result{color:#8d8}.tutorial-console .tc-code-block{margin:3px 0}.tutorial-console-resize{flex-shrink:0}
