*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a12;--panel: rgba(12, 12, 24, .85);--panel-border: rgba(100, 120, 255, .15);--accent: #6c8aff;--accent-hover: #8ea4ff;--text: #d0d4e8;--text-dim: #6b7094;--danger: #ff5c6c;--success: #4cff9f;--radius: 8px;--bar-h: 44px}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px}#app{width:100%;height:100%;position:relative}canvas#canvas{display:block;position:absolute;top:0;left:0;width:100%;height:100%}canvas#canvas.sized{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid var(--panel-border);border-radius:4px}#canvas-fade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:5}#canvas-fade.active{opacity:1}#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);z-index:1000;gap:16px;transition:opacity .5s}#loading.fade-out{opacity:0;pointer-events:none}.loader-glow{position:absolute;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(100,120,255,.3),transparent 70%);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:1}}.loader-ring{width:48px;height:48px;border:3px solid var(--panel-border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-title{font-size:28px;font-weight:800;letter-spacing:3px;background:linear-gradient(135deg,var(--accent),#c084fc,#ff6b9d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-top:20px}.loader-subtitle{font-size:12px;color:var(--text-dim);letter-spacing:1px}#top-bar{position:fixed;top:0;left:0;right:0;height:var(--bar-h);display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:var(--panel);backdrop-filter:blur(16px);border-bottom:1px solid var(--panel-border);z-index:100;gap:12px}.bar-left,.bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.bar-center{display:flex;align-items:center;gap:4px;flex:1;min-width:0;justify-content:center;padding:0 4px}.bar-separator{width:1px;height:20px;background:var(--panel-border);flex-shrink:0}.app-title{font-weight:700;font-size:15px;letter-spacing:1px;background:linear-gradient(135deg,var(--accent),#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;user-select:none}button{background:#6478ff1a;border:1px solid var(--panel-border);color:var(--text);padding:6px 12px;border-radius:var(--radius);cursor:pointer;font-size:12px;font-family:inherit;transition:all .15s;white-space:nowrap}button:hover{background:#6478ff33;border-color:var(--accent);color:#fff}button:active{transform:scale(.96)}#btn-editor{display:flex;align-items:center;gap:6px;padding:5px 12px;font-size:12px}#btn-editor.active{background:#6478ff40;border-color:var(--accent);color:#fff}#scene-trigger{display:flex;align-items:center;gap:8px;padding:5px 16px;border-radius:20px;font-size:13px;font-weight:600;letter-spacing:.5px;background:#6478ff26;border:1px solid var(--accent);color:#fff}#scene-trigger:hover{background:#6478ff40}#scene-dropdown{position:fixed;top:calc(var(--bar-h) + 8px);left:50%;transform:translate(-50%);width:520px;max-height:calc(100vh - var(--bar-h) - 40px);background:#0c0c1ef2;backdrop-filter:blur(24px);border:1px solid var(--panel-border);border-radius:12px;z-index:150;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:dropdownIn .15s ease-out}#scene-dropdown.hidden{display:none}@keyframes dropdownIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dropdown-search{padding:12px;border-bottom:1px solid var(--panel-border)}#scene-search{width:100%;background:#6478ff14;border:1px solid var(--panel-border);color:var(--text);padding:8px 12px;border-radius:8px;font-size:13px;font-family:inherit;outline:none}#scene-search:focus{border-color:var(--accent)}#scene-search::placeholder{color:var(--text-dim)}#scene-grid{overflow-y:auto;padding:8px 12px 12px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.scene-category{margin-top:12px}.scene-category:first-child{margin-top:4px}.scene-category-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);padding:4px 8px;margin-bottom:4px}.scene-category-items{display:grid;grid-template-columns:1fr 1fr;gap:4px}.scene-item{padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;color:var(--text);background:transparent;border:1px solid transparent;text-align:left;transition:all .1s}.scene-item:hover{background:#6478ff1a;border-color:var(--panel-border)}.scene-item.active{background:#6478ff33;border-color:var(--accent);color:#fff}#scene-backdrop{position:fixed;inset:0;background:#0000004d;backdrop-filter:blur(2px);z-index:140}#scene-backdrop.hidden{display:none}#canvas-size{appearance:none;-webkit-appearance:none;background:#6478ff1a url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%236b7094' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 8px center;border:1px solid var(--panel-border);color:var(--text);padding:4px 24px 4px 8px;border-radius:var(--radius);font-size:11px;font-family:inherit;cursor:pointer;outline:none}#canvas-size:hover{border-color:var(--accent)}#canvas-size option{background:#1a1a2e;color:var(--text)}#fps{font-family:Consolas,monospace;font-size:11px;min-width:64px;text-align:center;padding:2px 8px;border-radius:10px;transition:all .3s}#fps.fps-good{color:#4cff9f;background:#4cff9f1a}#fps.fps-warn{color:#ffd94c;background:#ffd94c1a}#fps.fps-bad{color:#ff5c6c;background:#ff5c6c1a}#editor-panel{position:fixed;top:var(--bar-h);left:0;width:520px;bottom:0;background:var(--panel);backdrop-filter:blur(16px);border-right:1px solid var(--panel-border);z-index:90;display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}#editor-panel.hidden{transform:translate(-100%);opacity:0;pointer-events:none}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--panel-border);flex-shrink:0}.editor-header-info{display:flex;flex-direction:column;gap:2px}.editor-meta{font-size:11px;color:var(--text-dim);font-weight:400}#editor-title{font-weight:600;font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.editor-actions{display:flex;gap:6px}.editor-actions button{font-size:11px;padding:3px 10px}#btn-run{background:#4cff9f1a;border-color:#4cff9f4d;color:var(--success)}#btn-run:hover{background:#4cff9f33}#editor-container{flex:1;overflow:hidden}#editor-container .cm-editor{height:100%}#editor-container .cm-scroller{font-family:Consolas,JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.6}#editor-error{padding:8px 12px;background:#ff5c6c1a;border-top:1px solid rgba(255,92,108,.3);color:var(--danger);font-family:Consolas,monospace;font-size:11px;max-height:80px;overflow-y:auto;flex-shrink:0;white-space:pre-wrap}#editor-error.hidden{display:none}#custom-size-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:20px;z-index:200;display:flex;flex-direction:column;gap:12px;backdrop-filter:blur(16px)}#custom-size-dialog.hidden{display:none}#custom-size-dialog label{display:flex;align-items:center;gap:8px;font-size:13px}#custom-size-dialog input{background:#6478ff14;border:1px solid var(--panel-border);color:var(--text);padding:6px 10px;border-radius:4px;width:100px;font-family:Consolas,monospace;font-size:13px;outline:none}#custom-size-dialog input:focus{border-color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#6478ff4d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#6478ff80}@media(max-width:768px){#editor-panel{width:100%}.app-title{display:none}}
