:root{--bg-app: #050505;--bg-panel: rgba(20, 20, 20, .65);--bg-panel-hover: rgba(30, 30, 30, .75);--bg-input: rgba(255, 255, 255, .05);--bg-input-focus: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .08);--border-light: rgba(255, 255, 255, .15);--border-focus: rgba(255, 255, 255, .3);--text-main: #f0f0f0;--text-muted: #a0a0a0;--text-dim: #606060;--accent-primary: #3b82f6;--accent-glow: rgba(59, 130, 246, .5);--accent-success: #10b981;--accent-danger: #ef4444;--shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .15);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .2);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .25);--font-family: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg-app);color:var(--text-main);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}#root{min-height:100vh;isolation:isolate}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 0%,#1a1a1a,var(--bg-app) 60%);color:var(--text-main);overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:transparent;z-index:100;position:relative}.brand{font-weight:700;letter-spacing:-.02em;font-size:18px;color:var(--text-main);background:linear-gradient(135deg,#fff,#a0a0a0);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 10px rgba(255,255,255,.1)}.topbar-actions{display:flex;gap:12px;align-items:center}.topbar-spacer{width:1px;height:24px;background:var(--border-subtle);margin:0 8px}.ghost{background:#ffffff08;color:var(--text-muted);border:1px solid var(--border-subtle);padding:8px 16px;border-radius:99px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.2,.8,.2,1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ghost:disabled{opacity:.4;cursor:not-allowed}.ghost:not(:disabled):hover{background:#ffffff14;border-color:var(--border-light);color:var(--text-main);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.ghost:not(:disabled):active{transform:translateY(0)}.content{flex:1;display:grid;grid-template-columns:280px 1fr 340px;gap:20px;padding:0 24px 24px;min-height:0}.panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:20px;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden;transition:border-color .2s ease}.panel:hover{border-color:var(--border-light)}.panel-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);font-weight:600;font-size:14px;letter-spacing:.01em;color:var(--text-main);display:flex;align-items:center;justify-content:space-between;background:#ffffff05}.panel-body{padding:20px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1}.panel-hint{margin:0;color:var(--text-muted);font-size:13px;line-height:1.6}.block-list{display:grid;gap:12px}.block-button{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:12px;padding:12px 16px;color:var(--text-muted);text-align:left;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.block-button:hover{background:var(--bg-input-focus);border-color:var(--border-light);color:var(--text-main);transform:translateY(-1px)}.block-button[data-active=true]{background:#3b82f626;border-color:var(--accent-primary);color:#fff;box-shadow:0 0 0 1px var(--accent-glow)}.block-title{font-weight:600;font-size:14px;margin-bottom:2px;display:block}.block-detail{font-size:12px;color:var(--text-dim);transition:color .2s ease}.block-button:hover .block-detail{color:var(--text-muted)}.block-button[data-active=true] .block-detail{color:#ffffffb3}.placeholder-box{border:1px dashed var(--border-light);border-radius:12px;padding:24px;color:var(--text-muted);text-align:center;background:#ffffff03;font-size:13px}.viewport{background:#000;border:1px solid var(--border-subtle);border-radius:20px;min-height:560px;position:relative;box-shadow:var(--shadow-lg);overflow:hidden}.viewport canvas{border-radius:20px;display:block;outline:none}.viewport-toolbar{position:absolute;top:20px;right:160px;display:flex;gap:12px;align-items:center;z-index:10}.transform-buttons{display:flex;gap:6px;padding:6px;background:#141414d9;border-radius:16px;border:1px solid var(--border-light);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .2s ease}.transform-buttons.disabled{opacity:.4;pointer-events:none}.toolbar-btn{width:44px;height:44px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s cubic-bezier(.2,.8,.2,1);display:grid;place-items:center}.toolbar-btn:hover:not(:disabled){background:#ffffff1a;color:var(--text-main)}.toolbar-btn.active{background:#3b82f633;border-color:var(--accent-primary);color:#fff;box-shadow:0 0 0 1px var(--accent-glow)}.toolbar-btn:disabled{cursor:not-allowed;color:var(--text-dim)}.toolbar-btn.edit-btn{width:52px;height:52px;border-radius:16px;border:1px solid var(--border-light);background:#141414d9;color:var(--text-main);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toolbar-btn.edit-btn:hover{border-color:var(--accent-primary);transform:scale(1.05)}.toolbar-btn.edit-btn.active{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff;box-shadow:0 0 20px var(--accent-glow)}.viewport-bottom-toolbar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:10}.toolbar-btn.snap-btn{width:48px;height:48px;border-radius:14px;border:1px solid var(--border-light);background:#141414d9;color:var(--text-muted);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toolbar-btn.snap-btn:hover{border-color:var(--accent-success);color:var(--text-main);transform:translateY(-2px)}.toolbar-btn.snap-btn.active{border-color:var(--accent-success);background:#10b98133;color:var(--accent-success);box-shadow:0 0 15px #10b9814d}.inspector-grid{display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:13px}.inspector-label{color:var(--text-muted);font-weight:500}.inspector-value{word-break:break-word;color:var(--text-main)}.transform-mode-section{margin-bottom:20px}.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:10px}.transform-mode-buttons{display:flex;gap:8px;background:var(--bg-input);padding:4px;border-radius:12px;border:1px solid var(--border-subtle)}.transform-mode-btn{flex:1;background:transparent;border:none;border-radius:8px;padding:8px;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .2s ease}.transform-mode-btn:hover{color:var(--text-main);background:#ffffff0d}.transform-mode-btn[data-active=true]{background:var(--bg-panel);color:var(--accent-primary);box-shadow:var(--shadow-sm)}.shortcut-hint{font-size:10px;color:var(--text-dim);font-weight:400;opacity:.7}.transform-mode-btn[data-active=true] .shortcut-hint{color:var(--accent-primary);opacity:.6}.inspector-properties{display:flex;flex-direction:column;gap:16px}.type-badge{display:inline-block;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);color:var(--accent-primary);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.vec3-inputs{display:flex;gap:8px}.vec3-input-wrapper{flex:1;display:flex;flex-direction:column;gap:4px}.vec3-axis{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text-dim);margin-left:2px}.vec3-input{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px;color:var(--text-main);font-size:13px;font-family:SF Mono,Fira Code,Consolas,monospace;transition:all .2s ease}.vec3-input:hover{border-color:var(--border-light);background:var(--bg-input-focus)}.vec3-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-input-focus);box-shadow:0 0 0 2px var(--accent-glow)}.vec3-input::-webkit-outer-spin-button,.vec3-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.vec3-input[type=number]{-moz-appearance:textfield;appearance:textfield}.vec3-input:disabled{background:#0003;color:var(--text-dim);cursor:not-allowed;border-color:transparent}.inspector-properties.disabled{opacity:.5;pointer-events:none;filter:grayscale(.5)}.transform-hint{margin-top:16px;padding:12px 16px;background:#3b82f60d;border:1px dashed rgba(59,130,246,.2);border-radius:12px;font-size:12px;color:var(--text-muted);text-align:center;line-height:1.5}.back-btn{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;padding:6px 10px;border-radius:8px;transition:all .2s ease;margin-left:-8px}.back-btn:hover{color:var(--text-main);background:#ffffff0d}.back-btn svg{flex-shrink:0;width:16px;height:16px}.material-selector{display:flex;align-items:center;gap:12px}.material-preview-inline{width:40px;height:40px;border-radius:10px;border:1px solid var(--border-subtle);flex-shrink:0;box-shadow:var(--shadow-sm)}.material-dropdown{flex:1;padding:10px 36px 10px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-main);font-size:13px;cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.material-dropdown:hover{border-color:var(--border-light);background-color:var(--bg-input-focus)}.material-dropdown:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.edit-material-btn{width:40px;height:40px;display:grid;place-items:center;background:transparent;border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:all .2s ease}.edit-material-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#3b82f61a}.material-menu{position:relative;flex:1}.material-menu-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-main);font-size:13px;cursor:pointer;transition:all .2s ease}.material-menu-button:hover{border-color:var(--border-light);background-color:var(--bg-input-focus)}.material-menu-button:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.material-menu-label{display:inline-flex;align-items:center;gap:10px;min-width:0}.material-menu-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-muted);flex-shrink:0}.material-menu-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-menu-placeholder{color:var(--text-muted)}.material-menu-list{position:absolute;top:calc(100% + 6px);left:0;width:100%;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:12px;padding:6px;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:900;max-height:360px;overflow-y:auto;animation:dropdown-appear .15s ease-out}.material-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;background:transparent;color:var(--text-main);font-size:13px;border-radius:8px;cursor:pointer;text-align:left;transition:background-color .15s ease,color .15s ease}.material-menu-item:hover{background:#ffffff0f}.material-menu-item.active{background:#3b82f626;color:#fff}.material-menu-item.active .material-menu-icon{color:#fff}.material-menu-check{margin-left:auto;color:var(--accent-primary);display:inline-flex;align-items:center}.material-editor{display:flex;flex-direction:column;gap:20px}.material-editor.empty{flex:1;justify-content:center}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;color:var(--text-dim);text-align:center}.empty-icon{font-size:48px;opacity:.3;margin-bottom:8px}.empty-text{font-size:14px;max-width:200px;line-height:1.5}.material-editor-header{display:flex;flex-direction:column;gap:12px}.material-name-input{width:100%;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:12px;color:var(--text-main);font-size:16px;font-weight:600;transition:all .2s ease}.material-name-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-input-focus);box-shadow:0 0 0 2px var(--accent-glow)}.material-editor-description{font-size:13px;color:var(--text-muted);padding:0 4px}.material-params,.common-params{display:flex;flex-direction:column;gap:16px}.section-divider{height:1px;background:var(--border-subtle);margin:8px 0}.editor-field{display:flex;flex-direction:column;gap:8px}.editor-label{display:flex;justify-content:space-between;font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.slider-value{color:var(--accent-primary);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;background:#3b82f61a;padding:2px 6px;border-radius:4px}.editor-input{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-main);font-size:13px;transition:all .2s ease}.editor-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-input-focus);box-shadow:0 0 0 2px var(--accent-glow)}.editor-input.small{padding:8px 10px;font-size:12px;font-family:SF Mono,Fira Code,Consolas,monospace}.editor-select{width:100%;padding:10px 32px 10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-main);font-size:13px;cursor:pointer;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.editor-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow)}.editor-slider{width:100%;height:6px;border-radius:3px;background:var(--bg-input);appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid var(--border-subtle)}.editor-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--text-main);border:2px solid var(--bg-app);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 2px 5px #0000004d;margin-top:-7px}.editor-slider::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:transparent;border-radius:2px}.editor-slider::-webkit-slider-thumb:hover{transform:scale(1.1);background:#fff;box-shadow:0 0 0 4px #ffffff1a}.editor-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--text-main);border:2px solid var(--bg-app);cursor:pointer;box-shadow:0 2px 5px #0000004d}.color-input-wrapper{display:flex;gap:10px;align-items:center}.color-picker{width:48px;height:36px;padding:0;border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;background:transparent;overflow:hidden}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none;border-radius:0}.color-hex-input{flex:1;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-main);font-size:13px;font-family:SF Mono,Fira Code,Consolas,monospace;text-transform:uppercase;transition:all .2s ease}.color-hex-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-input-focus);box-shadow:0 0 0 2px var(--accent-glow)}.vec2-inputs{display:flex;gap:8px}.vec2-inputs .editor-input{flex:1}.texture-upload-area{width:100%;min-height:100px;border:2px dashed var(--border-light);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;background:#ffffff03}.texture-upload-area:hover{border-color:var(--accent-primary);background:#3b82f60d}.texture-upload-area.dragging{border-color:var(--accent-primary);background:#3b82f61a;transform:scale(.99)}.texture-upload-area.has-image{border-style:solid;border-color:var(--border-subtle);padding:4px}.texture-upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-muted);font-size:13px}.texture-upload-placeholder svg{opacity:.5;width:24px;height:24px}.texture-preview-container{position:relative;width:100%;height:100px}.texture-preview-img{width:100%;height:100%;object-fit:cover;border-radius:8px}.texture-clear-btn{position:absolute;top:6px;right:6px;width:28px;height:28px;display:grid;place-items:center;background:#0009;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;font-size:16px;cursor:pointer;transition:background-color .15s ease}.texture-clear-btn:hover{background:#ff6b6bcc}.hidden-file-input{display:none}.editor-message{padding:12px;color:#6d84a3;font-size:13px;text-align:center}.inspector-body{overflow-y:auto;max-height:calc(100vh - 200px)}.material-list::-webkit-scrollbar,.inspector-body::-webkit-scrollbar{width:6px}.material-list::-webkit-scrollbar-track,.inspector-body::-webkit-scrollbar-track{background:transparent}.material-list::-webkit-scrollbar-thumb,.inspector-body::-webkit-scrollbar-thumb{background:#2c3a50;border-radius:3px}.material-list::-webkit-scrollbar-thumb:hover,.inspector-body::-webkit-scrollbar-thumb:hover{background:#3a4a60}.panel-tabs{display:flex;border-bottom:1px solid #1c2735}.panel-tab{flex:1;padding:12px 14px;background:transparent;border:none;color:#8fa4c3;font-size:13px;font-weight:600;cursor:pointer;transition:color .15s ease,background-color .15s ease;position:relative}.panel-tab:hover{color:#d8e4f7;background:#5ad7ff0d}.panel-tab.active{color:#5ad7ff}.panel-tab.active:after{content:"";position:absolute;bottom:-1px;left:10%;width:80%;height:2px;background:#5ad7ff;border-radius:1px 1px 0 0}.lights-panel{display:flex;flex-direction:column;gap:16px}.lights-section{display:flex;flex-direction:column;gap:8px}.lights-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6d84a3}.light-count{background:#1a2436;padding:2px 8px;border-radius:10px;font-size:10px;color:#8fa4c3}.lights-list{display:flex;flex-direction:column;gap:6px}.lights-empty{padding:16px;text-align:center;color:#5a6a80;font-size:12px;border:1px dashed #2c3a50;border-radius:8px}.light-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#111926;border:1px solid #1c2735;border-radius:8px;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.light-item:hover{border-color:#2c3a50;transform:translate(2px)}.light-item.selected{border-color:#5ad7ff;box-shadow:0 0 0 1px #5ad7ff33}.light-item-icon{width:28px;height:28px;display:grid;place-items:center;background:#ffffff0d;border-radius:6px;flex-shrink:0}.light-item-info{flex:1;min-width:0}.light-item-type{font-size:13px;font-weight:500;color:#e8edf6}.light-item-intensity{font-size:11px;color:#6d84a3}.light-item-delete{width:28px;height:28px;display:grid;place-items:center;background:transparent;border:none;color:#5a6a80;cursor:pointer;border-radius:6px;transition:color .15s ease,background-color .15s ease;opacity:0}.light-item:hover .light-item-delete{opacity:1}.light-item-delete:hover{color:#ff6b6b;background:#ff6b6b1a}.add-light-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.add-light-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:#111926;border:1px solid #1c2735;border-radius:8px;color:#8fa4c3;font-size:11px;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .15s ease}.add-light-btn:hover{border-color:#3a6dd8;color:#fff;transform:translateY(-1px)}.add-light-btn svg{opacity:.8}.light-inspector{display:flex;flex-direction:column;gap:12px}.light-description{font-size:12px;color:#6d84a3;padding-bottom:8px;border-bottom:1px solid #1c2735}.color-input-row{display:flex;gap:8px;align-items:center}.color-input-row .color-picker{width:40px;height:32px;flex-shrink:0}.color-input-row .color-text{width:90px;flex-shrink:0;padding:8px 10px;background:#111926;border:1px solid #1c2735;border-radius:6px;color:#e8edf6;font-size:12px;font-family:SF Mono,Fira Code,Consolas,monospace;text-transform:uppercase}.color-input-row .color-text:focus{outline:none;border-color:#5ad7ff}.color-input-row.disabled{opacity:.5;pointer-events:none}.color-input-row.disabled .color-picker,.color-input-row.disabled .color-text{cursor:not-allowed}.inspector-label.disabled{opacity:.5}.slider-row{display:flex;gap:10px;align-items:center}.slider-input{flex:1;height:6px;border-radius:3px;background:#1c2735;appearance:none;cursor:pointer}.slider-input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#5ad7ff;border:2px solid #0b0f14;cursor:pointer;transition:transform .15s ease}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.1)}.slider-input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#5ad7ff;border:2px solid #0b0f14;cursor:pointer}.slider-row .slider-value{width:52px;padding:6px 8px;background:#111926;border:1px solid #1c2735;border-radius:6px;color:#e8edf6;font-size:12px;font-family:SF Mono,Fira Code,Consolas,monospace;text-align:center}.slider-row .slider-value:focus{outline:none;border-color:#5ad7ff}.slider-row .slider-value::-webkit-outer-spin-button,.slider-row .slider-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider-row .slider-value[type=number]{-moz-appearance:textfield}.environment-inspector{display:flex;flex-direction:column;gap:12px}.viewport.box-select-mode{cursor:crosshair}.viewport-toolbar-left{position:absolute;top:20px;left:20px;display:flex;gap:12px;align-items:center;z-index:10}.toolbar-btn.box-select-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--border-light);background:#141414d9;color:var(--text-muted);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toolbar-btn.box-select-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--text-main);transform:scale(1.05)}.toolbar-btn.box-select-btn.active{border-color:var(--accent-primary);background:#3b82f633;color:var(--accent-primary);box-shadow:0 0 15px var(--accent-glow)}.toolbar-btn.box-select-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn-wrapper{position:relative;display:inline-flex}.toolbar-tooltip{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 12px;background:#141414f2;border:1px solid var(--border-light);border-radius:10px;color:var(--text-main);font-size:12px;font-weight:500;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;z-index:100;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.viewport-toolbar-left .toolbar-tooltip{left:0;transform:translate(0)}.viewport-toolbar-left .toolbar-tooltip:before,.viewport-toolbar-left .toolbar-tooltip:after{left:22px;transform:translate(0)}.toolbar-tooltip kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:5px;color:var(--accent-primary);font-size:11px;font-weight:600;font-family:SF Mono,Fira Code,Consolas,monospace}.toolbar-btn-wrapper:hover .toolbar-tooltip{opacity:1;visibility:visible}.toolbar-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:var(--border-light)}.toolbar-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#141414f2}.box-select-overlay{position:absolute;border:2px dashed var(--accent-primary);background:#3b82f61a;pointer-events:none;z-index:100;border-radius:4px}.multi-selection-info{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:var(--bg-input);border-radius:10px;border:1px solid var(--border-subtle)}.selection-count{font-size:14px;font-weight:600;color:var(--text-main)}.selection-detail{font-size:12px;color:var(--text-muted)}.material-selector.disabled{opacity:.5}.material-disabled-message{font-size:12px;color:var(--text-dim);text-align:center;padding:12px;border:1px dashed var(--border-light);border-radius:8px;background:#ffffff03}.multi-edit-notice{padding:10px 14px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;font-size:12px;color:var(--accent-primary);text-align:center;font-weight:500}.file-menu-container{position:relative}.file-menu-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:12px;padding:8px;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:1000;animation:dropdown-appear .15s ease-out}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.file-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;background:transparent;border:none;border-radius:8px;color:var(--text-main);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background-color .15s ease}.file-menu-item:hover{background:#ffffff14}.file-menu-item svg{color:var(--text-muted);flex-shrink:0}.file-menu-item:hover svg{color:var(--accent-primary)}.file-menu-divider{height:1px;background:var(--border-subtle);margin:6px 0}.dialog-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:overlay-appear .2s ease-out}@keyframes overlay-appear{0%{opacity:0}to{opacity:1}}.dialog{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:20px;padding:28px;max-width:420px;width:90%;box-shadow:var(--shadow-lg);animation:dialog-appear .25s cubic-bezier(.2,.8,.2,1)}@keyframes dialog-appear{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog.error .dialog-header svg{color:#ff6b6b}.dialog.restore-dialog .dialog-header svg{color:var(--accent-primary)}.dialog-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}.dialog-header svg{color:#f59e0b;flex-shrink:0}.dialog-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-main)}.dialog-message{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--text-muted)}.dialog-message strong{color:var(--text-main);font-weight:600}.dialog-submessage{margin:0 0 20px;font-size:13px;color:var(--text-dim)}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.dialog-btn{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.dialog-btn.primary{background:var(--accent-primary);color:#fff}.dialog-btn.primary:hover{background:#4a8fe8;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.dialog-btn.secondary{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-muted)}.dialog-btn.secondary:hover{background:var(--bg-input-focus);border-color:var(--border-light);color:var(--text-main)}.autosave-indicator{position:fixed;bottom:20px;left:20px;display:flex;align-items:center;gap:8px;padding:8px 14px;background:#141414e6;border:1px solid var(--border-subtle);border-radius:20px;font-size:12px;color:var(--text-muted);opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease;pointer-events:none;z-index:100}.autosave-indicator.visible{opacity:1;transform:translateY(0)}.autosave-indicator.success{border-color:var(--accent-success)}.autosave-indicator.success:before{content:"";width:8px;height:8px;background:var(--accent-success);border-radius:50%;animation:pulse 1s ease infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.content{transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1)}.panel-wrapper{position:relative;height:100%;min-width:0;display:flex;flex-direction:column}.panel-wrapper.collapsed .panel{opacity:0;pointer-events:none}.panel-wrapper .panel{height:100%;transition:opacity .2s ease;min-width:280px}.panel-wrapper.right .panel{min-width:340px}.panel-toggle{position:absolute;top:50%;transform:translateY(-50%);width:24px;height:48px;background:var(--bg-panel);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;z-index:20;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel-toggle:hover{background:var(--bg-input-focus);color:var(--text-main);border-color:var(--border-light)}.panel-toggle-left{right:-24px;border-left:none;border-radius:0 8px 8px 0}.panel-toggle-right{left:-24px;border-right:none;border-radius:8px 0 0 8px}.panel-wrapper.collapsed .panel-toggle-left{right:-24px;border-left:1px solid var(--border-subtle)}.panel-wrapper.collapsed .panel-toggle-right{left:-24px;border-right:1px solid var(--border-subtle)}.hotkey-menu-container{position:relative}.hotkey-btn{display:flex;align-items:center;gap:8px}.hotkey-btn svg{opacity:.7;transition:opacity .2s ease}.hotkey-btn:hover svg{opacity:1}.hotkey-btn.active{background:#ffffff1a;border-color:var(--accent-primary);color:var(--text-main)}.hotkey-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:260px;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:16px;padding:0;box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:10000;animation:dropdown-appear .15s ease-out;overflow:hidden}.hotkey-dropdown-header{padding:14px 18px;border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);background:#ffffff05}.hotkey-list{padding:10px;display:flex;flex-direction:column;gap:4px;--hotkey-pill-height: 28px}.hotkey-item{display:grid;grid-template-columns:max-content 1fr;align-items:center;column-gap:14px;padding:10px 12px;border-radius:10px;transition:background-color .15s ease}.hotkey-item:hover{background:#ffffff0a}.hotkey-keys{display:flex;align-items:center;gap:8px;min-height:var(--hotkey-pill-height)}.hotkey-modifier{display:inline-flex;align-items:center;justify-content:center;height:var(--hotkey-pill-height);box-sizing:border-box;min-width:52px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim);padding:0 10px;background:#ffffff0a;border-radius:6px;line-height:1}.hotkey-key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:var(--hotkey-pill-height);padding:0 10px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:var(--accent-primary);font-size:12px;font-weight:600;font-family:SF Mono,Fira Code,Consolas,monospace;line-height:1}.hotkey-description{font-size:13px;color:var(--text-muted);font-weight:500;white-space:nowrap}.sky-dome-controls{margin-top:8px;padding-top:16px;border-top:1px solid #1c2735}.sky-dome-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sky-dome-title{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6d84a3}.sky-dome-icon{width:24px;height:24px;display:grid;place-items:center;background:linear-gradient(135deg,#87ceeb,#f96);border-radius:6px;color:#0b0f14}.sky-dome-toggle{padding:4px 10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:10px;border:1px solid #2c3a50;background:#111926;color:#5a6a80;cursor:pointer;transition:all .2s ease}.sky-dome-toggle:hover{border-color:#3a6dd8;color:#8fa4c3}.sky-dome-toggle.active{background:linear-gradient(135deg,#87ceeb33,#f963);border-color:#87ceeb;color:#87ceeb;box-shadow:0 0 8px #87ceeb4d}.sky-dome-sliders{display:flex;flex-direction:column;gap:12px;padding:12px;background:#111926;border:1px solid #1c2735;border-radius:10px}.sky-dome-slider{display:flex;flex-direction:column;gap:6px}.sky-dome-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8fa4c3}.sky-dome-value{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;color:#5ad7ff;background:#5ad7ff1a;padding:2px 6px;border-radius:4px}.sky-dome-tip{margin:4px 0 0;font-size:11px;color:#5a6a80;line-height:1.4;font-style:italic}
