html,body{height:100%;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#3a3a42;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#5a5a66}*{scrollbar-width:thin;scrollbar-color:#3a3a42 transparent}:root{--bg:#0f0f10;--surface:#1a1a1e;--surface2:#222226;--border:#2e2e34;--text:#d4d4d8;--text-dim:#71717a;--accent:#7c5cfc;--accent-h:#9b7eff;--danger:#f43f5e;--input-bg:#141416;--radius:6px;--toolbar-h:44px;--panel-w:256px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;overflow:hidden}.studio-root{flex-direction:column;width:100vw;height:100vh;display:flex}.studio-toolbar{height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;display:flex}.studio-body{flex:1;min-height:0;display:flex;overflow:hidden}.studio-outliner{width:var(--panel-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;min-width:180px;display:flex;overflow:hidden}.studio-canvas-wrap{flex:1;position:relative;overflow:hidden}.studio-canvas-wrap canvas{display:block;width:100%!important;height:100%!important}.studio-properties{width:var(--panel-w);background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;min-width:200px;display:flex;overflow:hidden auto}.tb-sep{background:var(--border);width:1px;height:22px;margin:0 4px}.tb-label{color:var(--text-dim);margin-right:2px;font-size:11px}.btn{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:12px;transition:background .1s,border-color .1s;display:inline-flex}.btn:hover{background:#2a2a30;border-color:#404048}.btn.active{background:var(--accent);border-color:var(--accent-h);color:#fff}.btn.danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}.btn.primary{background:var(--accent);border-color:var(--accent-h);color:#fff}.btn.primary:hover{background:var(--accent-h)}.panel-header{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 12px;font-size:11px;font-weight:600}.outliner-list{flex:1;overflow-y:auto}.outliner-item{cursor:pointer;border-bottom:1px solid #0000;align-items:center;gap:8px;padding:6px 10px;transition:background .1s;display:flex}.outliner-item:hover{background:var(--surface2)}.outliner-item.selected{background:#7c5cfc2e;border-color:#7c5cfc4d}.outliner-item .obj-icon{flex-shrink:0;font-size:14px}.outliner-item .obj-name{flex:1;font-size:12px}.outliner-item .vis-btn{cursor:pointer;color:var(--text-dim);opacity:0;background:0 0;border:none;padding:2px;font-size:13px;line-height:1;transition:opacity .1s}.outliner-item:hover .vis-btn{opacity:1}.outliner-item.hidden .obj-name{opacity:.35}.props-section{border-bottom:1px solid var(--border);padding:10px 12px}.props-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px;font-size:11px;font-weight:600}.props-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.props-label{width:14px;color:var(--text-dim);flex-shrink:0;font-size:11px;font-weight:600}.props-input{background:var(--input-bg);border:1px solid var(--border);min-width:0;color:var(--text);text-align:right;border-radius:4px;flex:1;padding:3px 4px;font-size:12px}.props-input:focus{border-color:var(--accent);outline:none}.props-slider-row{align-items:center;gap:4px;margin-bottom:7px;display:flex}.props-slider-label{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:64px;font-size:10px;overflow:hidden}.props-slider{min-width:0;accent-color:var(--accent);cursor:pointer;flex:1}.props-slider-val{color:var(--text-dim);text-align:right;flex-shrink:0;width:28px;font-size:10px}.props-select{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:4px;margin-bottom:6px;padding:4px 6px;font-size:12px}.props-select:focus{border-color:var(--accent);outline:none}.props-color-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.props-color-input{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:32px;height:24px;padding:0}.props-color-label{color:var(--text-dim);font-size:11px}.props-empty{color:var(--text-dim);text-align:center;padding:24px 12px;font-size:12px}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:min(860px,92vw);max-height:80vh;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-title{font-size:14px;font-weight:600}.modal-actions{gap:8px;display:flex}.modal-body{flex:1;overflow-y:auto}.modal-code{color:#a5d6ff;white-space:pre;background:#0d1117;margin:0;padding:16px;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.6;overflow-x:auto}
