:root,:root[data-theme=dark]{--bg-canvas:#1b1b1b;--bg-panel:#232323;--bg-panel-alt:#2a2a2a;--bg-field:#1a1a1a;--bg-field-hover:#303030;--border-color:#3f3f3f;--text-primary:#dcdcdc;--text-secondary:#8a8a8a;--accent:#e8792e;--accent-hover:#f5883c;--danger:#d0483e;--danger-hover:#e0564b;--font:"Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif}:root[data-theme=light]{--bg-canvas:#e7e9ee;--bg-panel:#fff;--bg-panel-alt:#f1f3f8;--bg-field:#fff;--bg-field-hover:#eaedf5;--border-color:#d7dce7;--text-primary:#1c1f26;--text-secondary:#6d7685;--accent:#e8792e;--accent-hover:#f5883c;--danger:#d0483e;--danger-hover:#e0564b}html,body{background-color:var(--bg-canvas);width:100%;height:100%;font-family:var(--font);margin:0;padding:0;overflow:hidden}*{box-sizing:border-box}button{cursor:pointer;font-family:inherit}#renderCanvas{touch-action:none;width:100%;height:100%;display:block}body.spectator-mode #scene-hierarchy,body.spectator-mode #object-inspector,body.spectator-mode #gizmo-mode-toolbar,body.spectator-mode #toolbar,body.spectator-mode #history-toolbar{display:none!important}#auth-rooms-panel{color:var(--text-primary);z-index:50;background:#161616;place-items:center;display:grid;position:fixed;inset:0}#auth-rooms-panel[hidden]{display:none!important}#auth-rooms-panel>div{border:1px solid var(--border-color);background:var(--bg-panel);width:min(420px,100vw - 32px);padding:24px}#auth-rooms-panel h1{margin-top:0;font-weight:600}#auth-rooms-panel form,.room-list{gap:10px;display:grid}#auth-rooms-panel input,#auth-rooms-panel button{border:1px solid var(--border-color);background:var(--bg-field);color:var(--text-primary);font:inherit;padding:9px 11px}#auth-rooms-panel button{background:var(--bg-field-hover)}#auth-rooms-panel button:hover{background:#12bddb}#auth-rooms-panel button[data-action=login]{background:var(--accent);color:#1a1a1a;font-weight:600}#auth-rooms-panel button[data-action=login]:hover{background:var(--accent-hover)}.auth-actions{gap:8px;display:flex}.auth-error{color:var(--danger);min-height:14px;font-size:12px}#auth-rooms-panel.login-mode{background:#dfe3ee;overflow:hidden}#auth-rooms-panel.login-mode>div{background:0 0;border:none;grid-template-rows:auto 1fr;align-content:start;justify-items:center;width:100%;max-width:none;height:100vh;padding:0;display:grid;position:relative;overflow:hidden}.login-bubbles{z-index:-1;filter:blur(70px);position:absolute;inset:0;overflow:hidden}.login-bubbles .blob{opacity:.35;border-radius:46% 54% 60% 40%/42% 46% 54% 58%;animation:40s ease-in-out infinite alternate blob-drift;position:absolute}.blob-1{background:#6d8bf5;width:55vh;height:55vh;top:-15vh;left:-10vw}.blob-2{background:#b98af0;width:45vh;height:45vh;animation-direction:alternate-reverse;top:-10vh;right:-5vw}.blob-3{background:#f0a8d0;width:50vh;height:50vh;animation-duration:55s;bottom:-15vh;left:10vw}.blob-4{background:#8ad0e8;width:40vh;height:40vh;animation-duration:48s;animation-direction:alternate-reverse;bottom:-10vh;right:15vw}.blob-5{background:#a8f0c8;width:35vh;height:35vh;animation-duration:60s;top:30vh;left:40vw}.blob-6{background:#f5e08a;width:30vh;height:30vh;animation-duration:52s;animation-direction:alternate-reverse;top:45vh;left:5vw}@keyframes blob-drift{0%{transform:translate(0)scale(1)}to{transform:translate(5vw,4vh)scale(1.08)}}#auth-rooms-panel.login-mode h1{color:#1c1f26;margin:80px 0 40px;font-size:3rem;font-weight:800}.login-cards{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px;padding:0 24px 40px;display:flex}.login-card,.guest-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#1c1f26;background:#ffffff73;border-radius:16px;width:300px;padding:24px;box-shadow:0 8px 30px #1e28461f}.login-card h2,.guest-card h2{margin:0 0 18px;font-size:20px;font-weight:700}.login-card label{color:#3a3f4d;margin-bottom:14px;font-size:13px;font-weight:600;display:block}.login-card input{color:#1c1f26;width:100%;font:inherit;background:#e8ecfad9;border:none;border-radius:8px;margin-top:6px;padding:10px 12px;display:block}.login-card-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.login-card-actions button,.guest-card button{color:#1c1f26;background:#e6e9f0e6;border:none;border-radius:8px;padding:9px 16px;font-weight:600}.login-card-actions button:hover,.guest-card button:hover{background:#fff}.login-card-actions button[data-action=login]{color:#fff;background:#2a4bd7}.login-card-actions button[data-action=login]:hover{background:#3a5be0}.guest-card{text-align:center;margin-top:74px}.guest-card button{width:100%}#auth-rooms-panel.rooms-mode{background:#eef1f7;display:block;overflow:auto}#auth-rooms-panel.rooms-mode>div{background:0 0;border:none;width:100%;max-width:none;min-height:100vh;padding:0}.rooms-header{background:#fff;border-bottom:1px solid #e2e6ef;align-items:center;gap:28px;height:62px;padding:0 28px;display:flex}.rooms-brand{color:#1c1f26;font-size:19px;font-weight:700}.rooms-header-tab{color:#1c1f26;border-bottom:2px solid #6d8bf5;margin-bottom:-21px;padding-bottom:20px;font-size:14px;font-weight:600}.rooms-header-user{color:#1c1f26;align-items:center;gap:8px;margin-left:auto;font-size:14px;font-weight:600;display:flex}.rooms-header-user img{filter:invert(15%);width:22px;height:22px}.rooms-logout{color:#6d7685;background:0 0;border:none;font-size:15px}.rooms-filters{gap:10px;padding:20px 28px 0;display:flex}.rooms-filters button{color:#1c1f26;background:#fff;border:1px solid #d7dce7;padding:8px 16px;font-size:13px;font-weight:500}.rooms-filters button.active{color:#2a4bd7;background:#dbe3fd;border-color:#6d8bf5}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;padding:24px 28px 40px;display:grid}.room-card{color:#1c1f26;text-align:left;background:#c3cef7;border:none;align-content:start;gap:6px;min-height:108px;padding:18px;display:grid;position:relative}.room-card:disabled{opacity:.5;cursor:not-allowed}.room-card:not(:disabled):hover{background:#12bddb}.room-card strong{font-size:17px;font-weight:700}.room-card span{color:#3a3f4d;font-size:13px}.room-card-badge{color:#fff;background:#2a4bd7;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:600;display:flex;position:absolute;top:14px;right:14px}.room-card-create{color:#4a5060;cursor:pointer;text-align:center;background:#f7f8fb;border:2px dashed #c7ccd8;place-items:center;gap:10px}.room-card-create-icon{border:2px solid #4a5060;border-radius:50%;place-items:center;width:34px;height:34px;font-size:20px;font-weight:700;display:grid}.room-card-create span{color:#1c1f26;font-size:14px;font-weight:600}.room-card-create form{flex-direction:column;gap:8px;width:100%;display:flex}.room-card-create input{color:#1c1f26;font:inherit;background:#fff;border:1px solid #c7ccd8;padding:8px}.room-card-create button{color:#fff;background:#2a4bd7;border:none;padding:8px;font-weight:600}#scene-hierarchy,#object-inspector{background-color:var(--bg-panel);border:1px solid var(--border-color);width:260px;color:var(--text-primary);z-index:10;font-size:12px;position:fixed;left:12px;overflow:auto}#scene-hierarchy{height:34vh;top:12px}#object-inspector{top:calc(34vh + 20px);bottom:56px}.hierarchy-header{border-bottom:1px solid var(--border-color);background:var(--bg-panel-alt);letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary);justify-content:space-between;align-items:center;padding:7px 10px;font-size:11px;font-weight:600;display:flex}.hierarchy-count{color:var(--text-secondary);font-weight:500}#scene-hierarchy ul{gap:1px;margin:0;padding:4px;list-style:none;display:grid}#scene-hierarchy button{width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;border-left:2px solid #0000;justify-content:space-between;padding:5px 8px;display:flex}#scene-hierarchy button:hover{background-color:var(--bg-field-hover)}#scene-hierarchy button.active{border-left-color:var(--accent);background-color:#e8792e26}#scene-hierarchy button.locked .object-type:after{content:"  •";color:var(--accent)}.inspector-header{border-bottom:1px solid var(--border-color);background:var(--bg-panel-alt);letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary);padding:7px 10px;font-size:11px;font-weight:600}.inspector-empty{color:var(--text-secondary);padding:16px 10px}.inspector-content{padding:0 10px}.inspector-section{border-bottom:1px solid var(--border-color);padding:9px 0}.inspector-section h3{color:var(--text-secondary);letter-spacing:.4px;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:700}.property-row,.color-value{justify-content:space-between;align-items:center;gap:12px;padding:2px 0;display:flex}.property-row span,.color-value span:last-child{color:var(--text-secondary)}.property-row strong{color:var(--text-primary);font-weight:500}.property-row input,.field-label input{border:1px solid var(--border-color);background:var(--bg-field);width:100%;color:var(--text-primary);font:inherit;padding:4px 6px}.property-row input:focus,.field-label input:focus{border-color:var(--accent);outline:none}.field-label{color:var(--text-secondary);gap:4px;margin-bottom:7px;display:grid}.color-value{justify-content:flex-start}.color-value input[type=color]{border:1px solid var(--border-color);background:0 0;width:32px;height:24px;padding:1px}.color-palette{grid-template-columns:repeat(8,1fr);gap:5px;margin-top:8px;display:grid}.color-palette button{border:1px solid var(--border-color);width:20px;height:20px;padding:0}.object-type{font-size:12px}.object-id{color:var(--text-secondary);font-size:10px}#gizmo-mode-toolbar{z-index:10;background:var(--bg-panel);border:1px solid var(--border-color);flex-direction:column;gap:2px;padding:3px;display:flex;position:fixed;top:12px;left:284px}#gizmo-mode-toolbar button{background-color:#0000;border:none;place-items:center;width:30px;height:30px;padding:0;display:grid}#gizmo-mode-toolbar button img{object-fit:contain;width:18px;height:18px}#gizmo-mode-toolbar button:hover{background-color:var(--bg-field-hover)}#gizmo-mode-toolbar button.active{background-color:var(--accent)}#toolbar{z-index:10;background:var(--bg-panel);border:1px solid var(--border-color);align-items:center;gap:2px;padding:3px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}#toolbar>button,#toolbar>label{background-color:#0000;border:none;place-items:center;width:34px;height:34px;padding:0;display:grid}#toolbar>button img,#toolbar>label img{object-fit:contain;width:20px;height:20px}#toolbar>button:hover,#toolbar>label:hover{background-color:var(--bg-field-hover)}#toolbar>button.active{background-color:var(--accent)}.toolbar-dropdown{display:flex;position:relative}.toolbar-dropdown>button{background:0 0;border:none;align-items:center;gap:2px;width:auto;height:34px;padding:0 8px 0 6px;display:flex}.toolbar-dropdown>button img{object-fit:contain;width:20px;height:20px}.toolbar-dropdown>button:hover{background-color:var(--bg-field-hover)}.dropdown-caret{color:var(--text-secondary);font-size:9px}.toolbar-dropdown-menu{background:var(--bg-panel);border:1px solid var(--border-color);flex-direction:column;min-width:140px;padding:3px;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.toolbar-dropdown-menu.open{display:flex}.toolbar-dropdown-menu button{color:var(--text-primary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:7px 9px;display:flex}.toolbar-dropdown-menu button img{width:16px;height:16px}.toolbar-dropdown-menu button:hover{background-color:var(--bg-field-hover)}#room-menu{z-index:20;gap:6px;display:flex;position:fixed;top:12px;right:12px}.room-menu-wrapper{position:relative}.room-menu-button{border:1px solid var(--border-color);background-color:var(--bg-panel);place-items:center;width:34px;height:34px;padding:0;display:grid}.room-menu-button img{width:18px;height:18px}.room-menu-button:hover{background-color:var(--bg-field-hover)}.room-menu-dropdown{background:var(--bg-panel);border:1px solid var(--border-color);width:320px;max-height:60vh;color:var(--text-primary);flex-direction:column;padding:12px;display:none;position:absolute;top:calc(100% + 6px);right:0;overflow:auto}.room-menu-dropdown.open{display:flex}.room-menu-user-icon{place-items:center;margin:4px 0 10px;display:grid}.room-menu-user-icon img{width:40px;height:40px}.room-menu-username{text-align:center;font-size:15px;font-weight:600}.room-menu-role{text-align:center;color:var(--text-secondary);margin-bottom:14px;font-size:12px}.room-menu-danger{background:var(--danger);color:#fff;border:none;margin-top:6px;padding:9px;font-weight:600}.room-menu-danger:hover{background:var(--danger-hover)}.room-menu-title{text-align:center;font-size:16px;font-weight:700}.room-menu-subtitle{color:var(--text-secondary);text-align:center;margin:4px 0 10px;font-size:11px}.room-menu-section-title{border-top:1px solid var(--border-color);margin-top:14px;padding-top:10px}.scene-snapshots-panel,.snapshot-list{gap:8px;display:grid}.snapshot-empty{color:var(--text-secondary);text-align:center;padding:8px 0;font-size:12px}.snapshot-row{border:1px solid var(--border-color);background:var(--bg-panel-alt);gap:5px;padding:8px;display:grid}.snapshot-row input{border:1px solid var(--border-color);background:var(--bg-field);width:100%;color:var(--text-primary);font:inherit;padding:6px 7px}.snapshot-meta{color:var(--text-secondary);font-size:10px}.snapshot-actions{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.snapshot-actions button{background:var(--bg-field-hover);min-width:0;color:var(--text-primary);border:none;padding:6px 5px;font-size:11px}.snapshot-actions button:hover{background:var(--accent);color:#1a1a1a}.snapshot-actions button.snapshot-danger{color:#fff;background:var(--danger)}.snapshot-actions button.snapshot-danger:hover{background:var(--danger-hover)}.members-feedback{color:#7ee787;min-height:14px;margin-bottom:6px;font-size:11px}.members-feedback.error{color:var(--danger)}.member-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:6px;padding:7px 0;display:flex}.member-name{font-size:13px}.member-role-static{color:var(--text-secondary);font-size:11px}.member-gear-wrapper{position:relative}.member-gear{background:0 0;border:none;place-items:center;width:26px;height:26px;padding:0;display:grid}.member-gear img{width:16px;height:16px}.member-gear:hover{background-color:var(--bg-field-hover)}.member-role-menu{z-index:5;background:var(--bg-panel-alt);border:1px solid var(--border-color);flex-direction:column;min-width:110px;display:none;position:absolute;top:calc(100% + 4px);right:0}.member-role-menu.open{display:flex}.member-role-menu button{color:var(--text-primary);text-align:left;background:0 0;border:none;padding:7px 9px;font-size:12px}.member-role-menu button:hover{background-color:var(--bg-field-hover)}.member-role-menu button.active{color:var(--accent);font-weight:600}.member-role-menu button.member-remove{border-top:1px solid var(--border-color);color:var(--danger)}#room-menu form{gap:6px;margin-top:10px;display:flex}#room-menu form input{border:1px solid var(--border-color);background:var(--bg-field);color:var(--text-primary);font:inherit;flex:1;padding:8px}#room-menu form button{color:#fff;white-space:nowrap;background:#2f8fd8;border:none;padding:8px 12px;font-weight:600}#room-menu form button:hover{background:#3d9be3}#status-panel{border:1px solid var(--border-color);background-color:var(--bg-panel);width:168px;color:var(--text-primary);z-index:10;padding:7px 9px;font-size:11px;position:fixed;bottom:12px;left:12px}.status-row{grid-template-columns:1fr auto;align-items:center;gap:6px;min-height:18px;display:grid}.status-row strong{color:var(--text-secondary);font-weight:500}[data-status=lock][data-state=owned]{color:#56d364}[data-status=lock][data-state=other]{color:var(--accent)}#history-toolbar{z-index:10;border:1px solid var(--border-color);gap:1px;display:flex;position:fixed;bottom:12px;left:188px}#history-toolbar button{background-color:var(--bg-panel);width:41px;height:34px;color:var(--text-primary);border:none;font-size:16px;line-height:1}#history-toolbar button:hover{background-color:var(--bg-field-hover)}:root[data-theme=light] #gizmo-mode-toolbar button img,:root[data-theme=light] #toolbar>button img,:root[data-theme=light] #toolbar>label img,:root[data-theme=light] .toolbar-dropdown>button img,:root[data-theme=light] .toolbar-dropdown-menu button img,:root[data-theme=light] .room-menu-button img,:root[data-theme=light] .member-gear img{filter:invert()}.theme-toggle{gap:6px;margin-top:10px;display:flex}.theme-toggle button{border:1px solid var(--border-color);background:var(--bg-field);color:var(--text-primary);flex:1;padding:8px;font-size:12px;font-weight:600}.theme-toggle button.active{border-color:var(--accent);color:var(--accent);background:#e8792e26}
