.command-bar{position:absolute;top:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;flex-shrink:0;z-index:30;background:var(--panel-glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:6px 14px;box-shadow:var(--shadow-lg);pointer-events:all;max-width:calc(100% - 40px);white-space:nowrap}.command-bar-row1{display:flex;align-items:center;height:auto;padding:0;gap:6px}.command-bar-row2{display:none}.command-bar-row2-left{display:flex;align-items:center;gap:4px;flex:1}.command-bar-row2-right{display:flex;align-items:center;gap:2px}.command-bar-left,.command-bar-center,.command-bar-right{display:flex;align-items:center;gap:6px}.command-bar-left{flex:1}.command-bar-right{flex:1;justify-content:flex-end}.command-bar-menus{display:flex;align-items:center}.command-bar-separator{width:1px;height:16px;background:var(--border);margin:0 4px}.menu-btn{background:none;border:none;color:var(--text-secondary);font-size:var(--text-base);padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.menu-btn:hover,.menu-btn.active{background:var(--bg-hover);color:var(--text-primary)}.menu-root{position:relative}.dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;gap:1px}.dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:6px 10px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;text-align:left;transition:background var(--transition-fast);white-space:nowrap}.dropdown-item:hover:not(:disabled){background:var(--bg-hover)}.dropdown-item:disabled{opacity:.35;cursor:not-allowed}.dropdown-item.danger{color:var(--danger)}.dropdown-item kbd{font-size:var(--text-xs);color:var(--text-secondary)}.dropdown-separator{height:1px;background:var(--border);margin:3px 0}.project-name{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);letter-spacing:.2px;cursor:text;border-radius:var(--radius-sm);padding:2px 6px;transition:background var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.project-name:hover{background:var(--bg-hover)}.project-name-input{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-focus);border-radius:var(--radius-sm);padding:2px 6px;outline:none;width:180px;font-family:inherit}.icon-btn{display:flex;align-items:center;justify-content:center;width:var(--sz-icon-btn);height:var(--sz-icon-btn);padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.icon-btn:disabled{opacity:.3}.command-bar-undo-group,.mode-switcher{display:flex;gap:2px}.mode-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.mode-btn kbd{font-size:9px;padding:0 3px;min-width:14px}.mode-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.mode-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.export-btn{display:flex;align-items:center;gap:4px;width:auto;padding:0 8px;font-size:var(--text-sm);color:var(--text-secondary)}.export-btn span{font-size:var(--text-sm)}.export-btn:hover{color:var(--text-primary)}.export-print-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;letter-spacing:.2px}.export-print-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.export-print-btn:disabled{opacity:.35;cursor:not-allowed}.share-btn{border-radius:999px;color:var(--text-primary)}.share-btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.share-btn.sharing{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.share-btn.sharing:hover{background:var(--accent-dim);color:var(--accent)}.share-live-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:currentColor;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}.viewer-badge{background:var(--info);color:var(--accent-b-text);padding:2px 10px;border-radius:var(--radius-md);font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.5px;transition:background var(--transition-fast)}.viewer-badge.viewer-badge-fork{background:var(--accent);color:var(--accent-text);animation:badge-fork-pulse 2s ease-in-out infinite}@keyframes badge-fork-pulse{0%,to{opacity:1}50%{opacity:.7}}.viewer-disconnect-banner{position:fixed;top:60px;left:50%;transform:translate(-50%);background:var(--danger-bg);color:var(--text-on-color);padding:10px 24px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);z-index:100;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.disconnect-sub{font-size:var(--text-xs);font-weight:var(--weight-normal);opacity:.8}.floating-toolbar{display:flex;align-items:center;gap:3px;background:var(--panel-glass);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:5px;box-shadow:var(--shadow-lg);user-select:none;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);pointer-events:all}.ftb-group{display:flex;align-items:center;gap:1px}.ftb-sep{width:1px;height:28px;background:var(--border);margin:0 4px;flex-shrink:0}.ftb-btn{display:flex;align-items:center;justify-content:center;width:var(--sz-ftb-btn);height:var(--sz-ftb-btn);padding:0;background:none;border:1px solid transparent;border-radius:15px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.ftb-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.ftb-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.ftb-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;line-height:1}.ftb-icon svg{width:20px;height:20px}.ftb-shape-root{display:flex;align-items:center;border-radius:var(--radius-md);position:relative}.ftb-shape-root.active{background:var(--accent-dim);outline:1px solid var(--accent-dim)}.ftb-shape-main{border-radius:var(--radius-md) var(--radius-xs) var(--radius-xs) var(--radius-md)}.ftb-shape-root.active .ftb-shape-main,.ftb-shape-root.active .ftb-shape-chevron{border-color:transparent;background:transparent}.ftb-shape-root.active .ftb-shape-main:hover,.ftb-shape-root.active .ftb-shape-chevron:hover{background:var(--bg-hover)}.ftb-shape-chevron{width:24px;height:var(--sz-ftb-btn);border-radius:var(--radius-xs) var(--radius-md) var(--radius-md) var(--radius-xs);color:var(--text-muted)}.ftb-shape-chevron:hover{color:var(--text-primary)}.ftb-shapes-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);padding:4px;box-shadow:var(--shadow-lg);z-index:50;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ftb-shapes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.ftb-shapes-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 6px 5px;background:none;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);min-width:60px}.ftb-shapes-item:hover{background:var(--bg-hover);color:var(--text-primary)}.ftb-shapes-item.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.ftb-shapes-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;line-height:1}.ftb-shapes-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.3px;color:inherit;white-space:nowrap}.ftb-shapes-item kbd{font-size:8px;padding:0 3px;min-width:13px}.csg-context-bar{display:flex;align-items:center;gap:8px;background:var(--panel-glass);border:1px solid var(--accent-b);border-radius:var(--radius-2xl);padding:6px 12px;box-shadow:0 4px 24px #00000059,0 0 0 1px var(--accent-b-dim);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);pointer-events:all;white-space:nowrap;animation:csg-bar-in .22s cubic-bezier(.22,1,.36,1) both}.csg-context-bar--closing{animation:csg-bar-out .18s cubic-bezier(.55,0,1,.45) both;pointer-events:none}@keyframes csg-bar-in{0%{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes csg-bar-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.95)}}.csg-context-label{display:flex;align-items:center;gap:5px;font-size:var(--text-sm)}.csg-obj-chip{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 7px;font-size:var(--text-xs);color:var(--text-secondary);max-width:90px;overflow:hidden;text-overflow:ellipsis}.csg-obj-chip-target{border-color:var(--success);color:var(--success);background:var(--target-bg)}.csg-context-plus{color:var(--text-muted);font-size:var(--text-xs)}.csg-context-separator{width:1px;height:20px;background:var(--border);margin:0 2px;flex-shrink:0}.csg-context-ops{display:flex;gap:2px}.csg-op-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--transition-fast)}.csg-op-btn:hover{background:var(--accent-b-dim);border-color:var(--accent-b);color:var(--accent-b)}.csg-op-btn kbd{font-size:9px;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 3px}.csg-cancel-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.csg-cancel-btn:hover{background:var(--danger-bg);color:var(--text-on-color)}.vp-cam-overlay{position:absolute;right:16px;bottom:11px;display:flex;align-items:center;gap:2px;background:var(--panel-glass);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:4px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:var(--shadow-lg);z-index:20;pointer-events:all;user-select:none}.vp-cam-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;border:1px solid transparent;border-radius:10px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.3px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.vp-cam-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.command-palette-overlay{position:fixed;inset:0;background:var(--overlay-scrim);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;animation:palette-overlay-in .12s ease-out}@keyframes palette-overlay-in{0%{opacity:0}to{opacity:1}}.command-palette{width:var(--sz-palette);max-height:420px;background:var(--panel-glass-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),inset 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;animation:palette-slide-in .2s cubic-bezier(.16,1,.3,1)}@keyframes palette-slide-in{0%{opacity:0;transform:scale(.96) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.command-palette-input-wrap{display:flex;align-items:center;padding:14px 18px;gap:10px;border-bottom:1px solid var(--border)}.command-palette-search-icon{color:var(--text-muted);flex-shrink:0}.command-palette-input{flex:1;background:none;border:none;color:var(--text-primary);font-size:var(--text-lg);outline:none;font-family:inherit}.command-palette-input::placeholder{color:var(--text-muted)}.command-palette-list{overflow-y:auto;padding:8px 10px;max-height:360px}.command-palette-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:var(--text-base)}.command-palette-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:var(--text-base);text-align:left;transition:background .06s}.command-palette-item:hover,.command-palette-item.selected{background:var(--bg-hover)}.command-palette-item.selected{background:var(--accent-dim)}.command-palette-category{font-size:var(--text-xs);color:var(--text-muted);min-width:52px;text-transform:uppercase;letter-spacing:.4px}.command-palette-label{flex:1}.command-palette-shortcut{font-size:var(--text-xs);color:var(--text-muted)}.property-panel{--axis-x: #e05c5c;--axis-y: #4daa77;--axis-z: #5c8ce0;position:absolute;right:10px;top:58px;width:var(--sz-panel-props);max-height:calc(100% - 120px);background:var(--panel-glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-xl);padding:10px;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;gap:2px;z-index:12;box-shadow:var(--shadow-lg);pointer-events:all}.property-panel::-webkit-scrollbar{width:4px}.property-panel::-webkit-scrollbar-track{background:transparent}.property-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}.prop-section{border-radius:var(--radius-md)}.prop-section-header{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.6px;transition:background var(--transition-fast),color var(--transition-fast)}.prop-section-header:hover{background:var(--bg-hover);color:var(--text-secondary)}.prop-section-header:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.prop-section-chevron{flex-shrink:0;transition:transform var(--transition-fast)}.prop-section.open .prop-section-chevron{transform:rotate(90deg)}.prop-section-title{flex:1;text-align:left}.prop-section-body{padding:4px 8px 8px;display:flex;flex-direction:column;gap:6px}@media(prefers-reduced-motion:reduce){.prop-section-chevron,.prop-section-header{transition:none}}.prop-node-header{display:flex;align-items:center;gap:6px;padding:8px 8px 6px;margin-bottom:2px}.prop-type-icon{font-size:var(--text-lg);line-height:1;opacity:.6}.prop-node-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-name-input{flex:1;min-width:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);padding:1px 4px;outline:none;transition:border-color var(--transition-fast),background var(--transition-fast)}.property-name-input:hover{background:var(--bg-hover);border-color:var(--border)}.property-name-input:focus{background:var(--bg-primary);border-color:var(--accent)}.prop-type-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.4px;color:var(--accent);background:var(--accent-dim);padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap}.prop-vis-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.prop-vis-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.prop-vis-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.prop-vis-btn.hidden-state{color:var(--text-muted);opacity:.5}@media(prefers-reduced-motion:reduce){.property-name-input,.prop-vis-btn{transition:none}}.prop-appearance-row{display:flex;align-items:center;gap:10px;padding:4px 8px 6px}.prop-color-wrap{display:flex;align-items:center;gap:6px}.property-color-hex{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase}.prop-opacity-wrap{display:flex;align-items:center;gap:6px;flex:1;justify-content:flex-end}.property-list{display:flex;flex-direction:column;gap:6px;padding:0 8px}.property-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);min-height:22px}.property-row label{color:var(--text-muted);font-size:var(--text-xs)}.prop-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary)}.property-divider{border:none;border-top:1px solid var(--border);margin:2px 0}.property-anchor-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.property-anchor-presets button{padding:4px 2px;font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;text-align:center;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-anchor-presets button:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-dim)}.property-anchor-presets button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.property-anchor-presets button.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.property-anchor-reset{grid-column:span 4}@media(prefers-reduced-motion:reduce){.property-anchor-presets button{transition:none}}.property-transform-group{display:flex;flex-direction:column;gap:4px}.property-transform-header{display:flex;align-items:center;justify-content:space-between}.property-transform-group>label,.property-transform-header>label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:var(--weight-medium);display:flex;align-items:center;gap:4px}.property-lock-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1;transition:color .15s,border-color .15s,background .15s}.property-lock-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text-secondary)}.property-lock-btn.active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.property-lock-btn[aria-pressed=true]{color:var(--accent)}.property-lock-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.property-transform-inputs{display:flex;gap:3px}.property-transform-field{display:flex;align-items:center;gap:2px;flex:1}.axis-label{font-size:var(--text-xs);font-weight:var(--weight-bold);min-width:12px;text-align:center}.property-transform-field input{width:100%;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);padding:4px 5px;border-radius:var(--radius-xs);font-size:var(--text-sm);font-family:var(--font-mono);transition:border-color var(--transition-fast)}.property-transform-field input:hover{border-color:color-mix(in srgb,var(--text-muted) 40%,var(--border))}.property-transform-field input:focus{border-color:var(--accent);outline:none}@media(prefers-reduced-motion:reduce){.property-lock-btn,.property-transform-field input{transition:none}}.property-color-input{width:28px;height:22px;border:1px solid var(--border);border-radius:var(--radius-sm);background:none;cursor:pointer;padding:2px;transition:border-color var(--transition-fast)}.property-color-input:hover{border-color:var(--text-muted)}.property-color-input::-webkit-color-swatch-wrapper{padding:0}.property-color-input::-webkit-color-swatch{border:none;border-radius:2px}@media(prefers-reduced-motion:reduce){.property-color-input{transition:none}}.property-csg-target{margin:4px 0;padding:8px;background:var(--target-bg);border:1px solid var(--target-ring);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:2px}.prop-csg-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--success)}.prop-csg-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.property-hint{color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}.property-params{display:flex;flex-direction:column;gap:5px}.property-param-field{display:flex;align-items:center;justify-content:space-between;gap:8px}.property-param-field label{font-size:var(--text-sm);color:var(--text-secondary);min-width:48px}.property-param-input-wrap{display:flex;align-items:center;gap:4px}.property-param-field input{width:60px;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);padding:4px 5px;border-radius:var(--radius-xs);font-size:var(--text-sm);font-family:var(--font-mono);transition:border-color var(--transition-fast)}.property-param-field input:hover{border-color:color-mix(in srgb,var(--text-muted) 40%,var(--border))}.property-param-field input:focus{border-color:var(--accent);outline:none}@media(prefers-reduced-motion:reduce){.property-param-field input{transition:none}}.property-unit-tag{font-size:var(--text-2xs);color:var(--text-muted);font-weight:var(--weight-medium);letter-spacing:.2px;margin-left:2px}.property-mesh-info .property-row span{font-family:var(--font-mono);font-size:var(--text-sm)}.prop-tri-warn{color:var(--warning)!important}.prop-tri-danger{color:var(--danger)!important}.prop-tri-indicator{font-weight:var(--weight-bold)}.prop-quick-actions{display:flex;flex-direction:column;gap:6px}.prop-action-group{display:flex;align-items:center;gap:6px}.prop-action-label{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--text-muted);min-width:52px;white-space:nowrap}.prop-axis-btns{display:flex;gap:3px;flex:1}.prop-axis-btns button{flex:1;height:24px;padding:0;font-size:var(--text-xs);font-weight:var(--weight-bold);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--axis-clr, var(--text-secondary));cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.prop-axis-btns button:hover{background:color-mix(in srgb,var(--axis-clr, var(--accent)) 14%,transparent);border-color:var(--axis-clr, var(--accent))}.prop-axis-btns button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.prop-reset-btns{display:flex;gap:3px;flex:1}.prop-reset-btns button{flex:1;height:24px;padding:0 6px;font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.prop-reset-btns button:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.prop-reset-btns button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.prop-placement-btns{display:flex;gap:3px}.prop-placement-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;height:28px;padding:0 8px;font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.prop-placement-btn svg{opacity:.5;flex-shrink:0}.prop-placement-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.prop-placement-btn:hover svg{opacity:1}.prop-placement-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){.prop-axis-btns button,.prop-reset-btns button,.prop-placement-btn{transition:none}}.property-shortcuts-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:center}.property-shortcuts-grid kbd{font-size:var(--text-2xs);font-family:var(--font-mono);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 5px;color:var(--text-muted);text-align:center;min-width:24px}.property-shortcuts-grid span{font-size:var(--text-xs);color:var(--text-muted)}.property-opacity-slider{-webkit-appearance:none;appearance:none;width:64px;height:3px;border-radius:2px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) calc(var(--val, 100) * 1%),var(--border) calc(var(--val, 100) * 1%),var(--border) 100%);outline:none;cursor:pointer;border:none;padding:0}.property-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-elevated);box-shadow:0 1px 3px var(--shadow);cursor:pointer}.property-opacity-slider::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-elevated);box-shadow:0 1px 3px var(--shadow);cursor:pointer}.property-opacity-value{font-size:var(--text-xs);color:var(--text-muted);min-width:26px;text-align:right;font-family:var(--font-mono)}.property-empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 12px 16px;text-align:center}.prop-empty-icon{color:var(--text-muted);opacity:.6;margin-bottom:4px}.prop-empty-text{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary)}.prop-empty-sub{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5;max-width:200px}.property-multiselect{padding:8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.property-multiselect-count{display:block;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:8px}.property-multiselect-actions{display:flex;gap:6px;margin-bottom:6px}.prop-action-btn{flex:1;padding:4px 8px;font-size:var(--text-xs);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.prop-action-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.prop-action-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-text)}.prop-action-btn--danger:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);border-color:var(--danger);color:var(--danger)}@media(prefers-reduced-motion:reduce){.prop-action-btn{transition:none}}.scene-outliner{position:absolute;left:10px;top:58px;width:var(--sz-panel-outline);max-height:calc(100% - 120px);background:var(--panel-glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-xl);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;z-index:12;box-shadow:var(--shadow-lg);pointer-events:all}.outliner-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--border)}.outliner-header h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);font-weight:var(--weight-semibold)}.outliner-count{font-size:var(--text-xs);color:var(--text-muted);background:var(--chip-bg);padding:1px 6px;border-radius:var(--radius-full)}.outliner-csg-bar{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--border);background:transparent}.outliner-csg-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 2px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);min-width:0;overflow:hidden}.outliner-csg-btn:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.csg-symbol{font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:1}.csg-label{font-size:9px;text-transform:uppercase;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.outliner-list{flex:1;overflow-y:auto;padding:10px 12px}.outliner-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;text-align:center}.outliner-empty-icon{color:var(--text-muted);opacity:.5}.outliner-empty-text{font-size:var(--text-base);color:var(--text-secondary)}.outliner-empty-hint{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.outliner-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);user-select:none}.outliner-item:hover{background:var(--bg-hover)}.outliner-item.selected{background:var(--accent-dim)}.outliner-item.multi-selected{background:var(--accent-dim);opacity:.85}.outliner-item.csg-target{background:var(--target-bg);outline:1px solid var(--target-ring)}.outliner-item.hidden-node{opacity:.4}.outliner-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.outliner-name{flex:1;font-size:var(--text-base);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outliner-type{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.outliner-vis-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-base);cursor:pointer;padding:0;flex-shrink:0;transition:color var(--transition-fast)}.outliner-vis-btn:hover{color:var(--text-primary)}.outliner-rename-input{flex:1;font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-xs);padding:1px 6px;outline:none;min-width:0}.outliner-group{margin-bottom:2px}.outliner-group-header{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;user-select:none;transition:background var(--transition-fast)}.outliner-group-header:hover{background:var(--bg-hover)}.outliner-group-arrow{font-size:var(--text-3xs);color:var(--text-muted);transition:transform .15s ease;display:inline-block;width:12px;text-align:center}.outliner-group-arrow.open{transform:rotate(90deg)}.outliner-group-name{flex:1;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outliner-group-count{font-size:var(--text-xs);color:var(--text-muted);background:var(--chip-bg);padding:0 5px;border-radius:var(--radius-full)}.outliner-group-delete{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-xs);color:var(--text-muted);font-size:14px;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast)}.outliner-group-header:hover .outliner-group-delete{opacity:1}.outliner-group-delete:hover{color:var(--color-error, #f87171)}.outliner-item-indented{padding-left:28px}.outliner-create-group-btn{width:100%;padding:6px 10px;margin-top:6px;background:var(--accent-dim);border:1px dashed var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast)}.outliner-create-group-btn:hover{background:var(--accent);color:var(--bg-primary)}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--panel-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0;height:var(--sz-status-bar)}.status-left,.status-center,.status-right{display:flex;align-items:center;gap:10px}.status-left{flex:1}.status-right{flex:1;justify-content:flex-end}.status-item strong{color:var(--text-secondary);font-weight:var(--weight-semibold)}.status-selection strong{color:var(--accent)}.status-mode{color:var(--text-secondary);font-weight:var(--weight-medium);letter-spacing:.3px}.status-shortcut-hint{color:var(--text-muted);font-size:var(--text-xs)}.status-attribution{color:var(--text-muted);text-decoration:none;font-size:var(--text-xs);opacity:.6;transition:opacity var(--transition-fast);border-left:1px solid var(--border);padding-left:10px}.status-attribution:hover{opacity:1;color:var(--text-secondary)}.status-attribution:focus-visible{outline:2px solid var(--border-focus);border-radius:var(--radius-xs)}.status-axis-lock{display:inline-flex;align-items:center}.status-axis-badge{font-weight:var(--weight-semibold);font-size:10px;padding:0 5px;border-radius:3px;line-height:16px;letter-spacing:.5px;animation:axis-pulse .3s ease-out}.status-axis-badge.axis-x{background:#ed505033;color:#ed5050}.status-axis-badge.axis-y{background:#50c87833;color:#50c878}.status-axis-badge.axis-z{background:#4a90e233;color:#4a90e2}@keyframes axis-pulse{0%{transform:scale(1.3);opacity:.5}to{transform:scale(1);opacity:1}}.status-shortcut-hint kbd{font-size:9px;padding:0 3px;min-width:14px}.status-indicator{font-size:var(--text-xs)}.status-indicator.ready{color:var(--success)}.status-indicator.loading{color:var(--accent)}.status-autosaved{color:var(--success);font-size:var(--text-xs);animation:autosaved-fade 3s ease-out forwards}@keyframes autosaved-fade{0%{opacity:1}60%{opacity:1}to{opacity:0}}.status-collab{color:var(--accent);font-size:var(--text-xs)}.status-suggestions-badge{color:var(--warning, #f39c12);font-weight:var(--weight-semibold)}.status-revision{font-family:var(--font-mono, monospace);font-size:var(--text-xs);color:var(--text-muted);opacity:.7}.status-grid-control{display:inline-flex;align-items:center;gap:6px}.status-grid-label{font-size:var(--text-xs);color:var(--text-muted);user-select:none}.status-grid-value{font-size:var(--text-xs);font-family:var(--font-mono, monospace);color:var(--accent);font-weight:var(--weight-semibold);min-width:2.8ch;text-align:right;animation:grid-value-pop .22s cubic-bezier(.34,1.56,.64,1) both}.status-grid-slider-wrap{position:relative;display:flex;flex-direction:column;gap:2px}.status-grid-slider{-webkit-appearance:none;appearance:none;width:80px;height:16px;background:transparent;margin:0;padding:0;cursor:pointer;outline:none;display:block}.status-grid-slider::-webkit-slider-runnable-track{height:3px;border-radius:var(--radius-full);background:linear-gradient(to right,var(--accent) calc(var(--gi, 0) / 3 * 100%),var(--border) calc(var(--gi, 0) / 3 * 100%));transition:background .15s ease}.status-grid-slider::-moz-range-track{height:3px;border-radius:var(--radius-full);background:var(--border);border:none}.status-grid-slider::-moz-range-progress{height:3px;border-radius:var(--radius-full);background:var(--accent)}.status-grid-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:var(--radius-full);background:var(--accent);margin-top:-3.5px;cursor:grab;box-shadow:0 0 0 2.5px var(--accent-dim),0 0 10px 1px var(--accent-dim);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .15s ease}.status-grid-slider:hover::-webkit-slider-thumb{box-shadow:0 0 0 3.5px var(--accent-dim),0 0 16px 2px var(--accent-dim)}.status-grid-slider:active::-webkit-slider-thumb{transform:scale(1.4);cursor:grabbing;box-shadow:0 0 0 4.5px var(--accent-dim),0 0 20px 3px var(--accent-dim)}.status-grid-slider:focus-visible::-webkit-slider-thumb{outline:2px solid var(--border-focus);outline-offset:2px}.status-grid-slider::-moz-range-thumb{width:10px;height:10px;border-radius:var(--radius-full);background:var(--accent);border:none;cursor:grab;box-shadow:0 0 0 2.5px var(--accent-dim),0 0 10px 1px var(--accent-dim);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .15s ease}.status-grid-slider:hover::-moz-range-thumb{box-shadow:0 0 0 3.5px var(--accent-dim),0 0 16px 2px var(--accent-dim)}.status-grid-slider:active::-moz-range-thumb{transform:scale(1.4);cursor:grabbing}.status-grid-slider:focus-visible::-moz-range-thumb{outline:2px solid var(--border-focus);outline-offset:2px}.status-grid-ticks{display:flex;justify-content:space-between;padding:0 5px;pointer-events:none;line-height:1}.status-grid-ticks span{font-size:9px;font-family:var(--font-mono, monospace);color:var(--text-muted);opacity:.45;transition:color var(--transition-fast),opacity var(--transition-fast);text-align:center;min-width:0;user-select:none}.status-grid-ticks span.active{color:var(--accent);opacity:1;font-weight:var(--weight-semibold)}@keyframes grid-value-pop{0%{transform:scale(1.3) translateY(-1px);opacity:.5}to{transform:scale(1) translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.status-grid-slider::-webkit-slider-thumb,.status-grid-slider::-moz-range-thumb{transition:none}.status-grid-slider::-webkit-slider-runnable-track{transition:none}.status-grid-value{animation:none}}.toast-container{position:fixed;bottom:32px;right:12px;display:flex;flex-direction:column-reverse;gap:6px;z-index:1000;pointer-events:none}.toast{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);backdrop-filter:blur(8px);animation:toast-in .2s ease-out;pointer-events:auto;box-shadow:var(--shadow-md)}.toast-success{background:var(--success-bg);color:#fff}.toast-error{background:var(--danger-bg);color:#fff}.toast-info{background:var(--toast-info-bg);border:1px solid var(--border)}.toast-warning{background:#d9976a2e;border:1px solid var(--warning);color:var(--warning)}.toast-icon{font-weight:var(--weight-bold);font-size:var(--text-lg)}.toast-message{white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.toast-action,.toast-copy,.toast-dismiss{background:transparent;border:1px solid currentColor;border-radius:var(--radius-sm);color:inherit;cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px 6px;white-space:nowrap;opacity:.85;transition:opacity var(--transition-fast);flex-shrink:0}.toast-action:hover,.toast-copy:hover,.toast-dismiss:hover{opacity:1}.toast-dismiss{font-size:var(--text-base);padding:2px 5px;line-height:1}@media(prefers-reduced-motion:reduce){.toast-action,.toast-copy,.toast-dismiss{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-gate-loading{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-canvas)}.auth-spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);animation:spin .7s linear infinite}.auth-gate{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-canvas)}.auth-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),inset 0 1px #ffffff0f;width:420px;max-width:94vw;overflow:hidden;animation:modal-slide-in .2s cubic-bezier(.16,1,.3,1)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 36px 28px;border-bottom:1px solid var(--border);color:var(--accent)}.auth-brand-icon{display:flex;align-items:center}.auth-brand-name{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:-.2px}.auth-copy{padding:32px 40px 28px;text-align:center}.auth-copy h2{margin:0 0 10px;font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary)}.auth-copy p{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.65}.auth-form{padding:0 40px;display:flex;flex-direction:column;gap:20px}.auth-field{display:flex;flex-direction:column;gap:7px}.auth-label{display:block;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px}.auth-input{display:block;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-ui);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.auth-input:focus-visible{outline:none}.auth-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-ui);cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.auth-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn.primary{background:var(--accent);color:var(--accent-text);box-shadow:0 2px 8px #0003}.auth-btn.primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px #00000047}.auth-btn.secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.auth-btn.secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-error{padding:0 40px;margin:0;font-size:var(--text-xs);color:var(--danger);text-align:center}.auth-footer-hint{padding:20px 40px 36px;text-align:center;font-size:var(--text-xs);color:var(--text-muted);line-height:1.5;margin:0}.auth-sent{padding:40px 40px 44px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0}.auth-sent-icon{width:60px;height:60px;border-radius:var(--radius-full);background:#4daa771f;border:1px solid rgba(77,170,119,.25);display:flex;align-items:center;justify-content:center;color:var(--success);margin-bottom:20px}.auth-sent-heading{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0 0 8px}.auth-sent-sub{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;margin:0 0 24px}.auth-sent .auth-btn.secondary{width:auto;padding:9px 24px}.inline-signin{display:flex;flex-direction:column;gap:20px}.inline-signin-desc{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.65;margin:0}.inline-signin form{display:flex;flex-direction:column;gap:14px}.inline-signin-label{display:block;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px}.inline-signin input{display:block;width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-ui);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.inline-signin input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.inline-signin input:focus-visible{outline:none}.inline-signin button{display:block;width:100%;padding:11px 14px;border:none;border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-ui);cursor:pointer;box-shadow:0 2px 8px #0000002e;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.inline-signin button:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px #0000003d}.inline-signin button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.inline-signin button:disabled{opacity:.6;cursor:not-allowed}.inline-signin-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5;margin:0;text-align:center}.inline-signin-sent{background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;gap:0;text-align:center}.inline-signin-sent-icon{width:48px;height:48px;border-radius:var(--radius-full);background:#4daa771f;border:1px solid rgba(77,170,119,.25);display:flex;align-items:center;justify-content:center;color:var(--success);margin-bottom:16px}.inline-signin-sent-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0 0 6px}.inline-signin-sent-sub{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0}.user-avatars{display:flex;flex-direction:row-reverse;align-items:center}.user-avatar{width:24px;height:24px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-2xs);font-weight:var(--weight-bold);border:2px solid var(--bg-elevated);margin-left:-6px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.user-avatar:hover{transform:scale(1.15)}.user-avatar--following{box-shadow:0 0 0 2px var(--accent, #4a90d9);transform:scale(1.15)}.user-avatar:last-child{margin-left:0}.user-avatar.overflow{background:var(--bg-surface);color:var(--text-muted);font-size:var(--text-3xs)}.collab-bar{position:absolute;top:10px;right:10px;z-index:30;display:flex;align-items:center;gap:4px;padding:5px 8px;background:var(--panel-glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);pointer-events:all;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);transition:border-color .2s ease;overflow:visible}.collab-bar--live{border-color:#48b7c74d}.collab-bar--reconnecting{border-color:#f7b73373}.collab-reconnect-spinner{width:8px;height:8px;border-width:1.5px;border-color:var(--warning);border-style:solid;border-top-color:transparent;border-radius:var(--radius-full);animation:fork-spin .8s linear infinite;flex-shrink:0}.collab-bar-sep{display:inline-block;width:1px;height:14px;background:var(--border);margin:0 2px;flex-shrink:0}.collab-live-pill{display:flex;align-items:center;gap:5px;padding:2px}.collab-live-dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--success);flex-shrink:0;animation:collab-pulse 2s ease-in-out infinite}@keyframes collab-pulse{0%,to{opacity:1}50%{opacity:.5}}.collab-live-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--success);letter-spacing:.2px}.collab-viewer-count{font-size:var(--text-3xs);font-weight:var(--weight-bold);color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-full);padding:0 5px;min-width:18px;text-align:center;line-height:16px}.collab-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);font-family:var(--font-ui);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;line-height:1.4;user-select:none}.collab-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.collab-btn:active{transform:scale(.97)}.collab-btn:disabled{opacity:.5;cursor:not-allowed}.collab-btn--share{background:var(--accent-a-dim);color:var(--accent-a);border-color:color-mix(in srgb,var(--accent-a) 28%,transparent);font-weight:var(--weight-semibold)}.collab-btn--share:hover:not(:disabled){background:var(--accent-a);color:var(--accent-a-text);border-color:var(--accent-a)}.collab-btn--busy{opacity:.7}.collab-btn--copied{color:var(--success);background:#4daa771a;border-color:#4daa7738}.collab-btn--copied:hover{background:#4daa772e;color:var(--success)}.collab-sug-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:var(--radius-lg);background:var(--accent-b-dim);color:var(--accent-b);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-ui);white-space:nowrap;line-height:1.4;user-select:none;cursor:default}.collab-btn--sug{color:var(--accent-b);background:var(--accent-b-dim);border-color:#48b7c738}.collab-btn--sug:hover{background:var(--accent-b);color:var(--accent-b-text);border-color:var(--accent-b)}.collab-btn--active{background:var(--accent-b)!important;color:var(--accent-b-text)!important;border-color:var(--accent-b)!important}.collab-btn--active .collab-sug-dot{background:var(--accent-b-text);animation:none}.collab-btn--stop{color:var(--text-muted);font-size:10px;padding:4px 8px}.collab-btn--stop:hover{color:var(--danger);background:#e05c5c17;border-color:#e05c5c38}.collab-sug-dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;flex-shrink:0;animation:collab-pulse 1.5s ease-in-out infinite}.collab-sug-count{font-size:var(--text-3xs);font-weight:var(--weight-bold);min-width:13px;text-align:center}.collab-spinner{display:inline-block;width:11px;height:11px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:spin .6s linear infinite;flex-shrink:0}.collab-signin-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:320px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:20px;animation:collab-popover-in .15s cubic-bezier(.34,1.56,.64,1)}@keyframes collab-popover-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.collab-signin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.collab-signin-heading{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.collab-signin-close{width:24px;height:24px;flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.collab-signin-close:hover{color:var(--text-primary);background:var(--bg-hover)}.collab-signin-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.collab-follow-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-lg);background:var(--accent-dim);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;animation:collab-popover-in .15s cubic-bezier(.34,1.56,.64,1)}.collab-follow-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.collab-follow-stop{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1;padding:0 2px;margin-left:2px}.collab-follow-stop:hover{color:var(--text-primary)}.collab-share-dialog{position:absolute;top:calc(100% + 6px);right:0;width:320px;background:var(--panel-glass-strong, var(--bg-elevated));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:12px;display:flex;flex-direction:column;gap:10px;z-index:50}.collab-share-dialog-header{display:flex;align-items:center;justify-content:space-between}.collab-share-dialog-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary)}.collab-share-url-row{display:flex;align-items:center;gap:6px}.collab-share-url-input{flex:1;padding:5px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-mono, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;cursor:text}.collab-share-url-input:focus{outline:2px solid var(--border-focus);outline-offset:-1px}.collab-share-preset-row{display:flex;align-items:center;gap:8px}.collab-share-preset-label{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.collab-share-preset-select{flex:1;padding:5px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);font-size:var(--text-xs);font-family:var(--font-ui);cursor:pointer}.collab-share-preset-select:focus{outline:2px solid var(--border-focus);outline-offset:-1px}.collab-share-fork-row{display:flex;align-items:center;gap:8px;cursor:pointer}.collab-share-fork-checkbox{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.collab-share-fork-label{font-size:var(--text-xs);color:var(--text-secondary);user-select:none}.collab-share-reset-btn{background:none;border:none;color:var(--text-muted);font-size:var(--text-xs);cursor:pointer;padding:0;text-align:left;font-family:var(--font-ui)}.collab-share-reset-btn:hover{color:var(--text-secondary);text-decoration:underline}.collab-share-reset-confirm{display:flex;flex-direction:column;gap:8px}.collab-share-reset-warning{font-size:var(--text-xs);color:var(--text-secondary)}.collab-share-reset-actions{display:flex;gap:6px}.collab-btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.collab-btn--danger:disabled{opacity:.4;cursor:not-allowed}.collab-share-revoke-btn{background:none;border:none;color:var(--danger);font-size:var(--text-xs);cursor:pointer;padding:0;text-align:left;font-family:var(--font-ui)}.collab-share-revoke-btn:hover{text-decoration:underline}@media(prefers-reduced-motion:reduce){.collab-share-dialog{backdrop-filter:none;-webkit-backdrop-filter:none}}.suggestions-panel{position:absolute;top:56px;right:8px;z-index:55;width:280px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:var(--font-ui);overflow:hidden;animation:sug-panel-in .2s cubic-bezier(.34,1.56,.64,1)}@keyframes sug-panel-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.suggestions-panel.is-previewing{border-color:var(--accent-b);box-shadow:0 0 0 2px var(--accent-b-dim),var(--shadow-lg)}.suggestions-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border)}.suggestions-title{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-primary);display:flex;align-items:center;gap:6px}.suggestions-badge{background:var(--accent-b);color:var(--accent-b-text);font-size:var(--text-3xs);font-weight:var(--weight-extrabold);border-radius:var(--radius-full);padding:1px 6px;min-width:18px;text-align:center;display:inline-block}.suggestions-preview-label{font-size:var(--text-3xs);color:var(--accent-b);font-weight:var(--weight-semibold);animation:pulse-accent 1.5s ease-in-out infinite}@keyframes pulse-accent{0%,to{opacity:1}50%{opacity:.6}}.suggestions-preview-bar{display:flex;gap:6px;padding:8px 12px 0}.preview-toggle{flex:1;padding:5px 0;text-align:center;background:none;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-2xs);font-family:var(--font-ui);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.preview-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.preview-toggle.active{background:var(--accent-b);color:var(--accent-b-text);border-color:var(--accent-b)}.suggestions-list{list-style:none;margin:0;padding:6px 0;max-height:260px;overflow-y:auto}.suggestions-list::-webkit-scrollbar{width:4px}.suggestions-list::-webkit-scrollbar-track{background:transparent}.suggestions-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.suggestion-item{padding:8px 12px;border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.suggestion-item:last-child{border-bottom:none}.suggestion-item.previewing{background:var(--accent-b-dim)}.suggestion-item.stale{opacity:.7}.suggestion-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px}.suggestion-avatar{width:26px;height:26px;border-radius:var(--radius-full);color:#fff;font-size:var(--text-2xs);font-weight:var(--weight-extrabold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.suggestion-info{display:flex;flex-direction:column;gap:1px}.suggestion-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary)}.suggestion-time{font-size:var(--text-3xs);color:var(--text-secondary);display:flex;align-items:center;gap:5px}.suggestion-stale-badge{display:inline-block;padding:0 5px;background:#f7b7332e;color:var(--warning, #f7b733);border:1px solid rgba(247,183,51,.35);border-radius:var(--radius-sm);font-size:9px;font-weight:var(--weight-bold);letter-spacing:.3px;text-transform:uppercase}.suggestion-actions{display:flex;gap:5px}.sug-btn{border:none;border-radius:var(--radius-sm);padding:4px 9px;font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-family:var(--font-ui);cursor:pointer;transition:opacity var(--transition-fast),transform .1s}.sug-btn:active{transform:scale(.96)}.sug-btn-preview{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border)}.sug-btn-preview:hover{background:var(--bg-hover)}.sug-btn-accept{background:var(--success);color:#fff}.sug-btn-accept:hover{opacity:.85}.sug-btn-dismiss{background:transparent;color:var(--text-secondary);padding:4px 6px}.sug-btn-dismiss:hover{color:var(--danger);background:var(--diff-removed-dim)}.sug-btn-ghost{background:transparent;color:var(--text-secondary);padding:4px 6px}.sug-btn-ghost:hover{color:var(--text-primary)}.diff-legend{display:flex;flex-wrap:wrap;gap:5px;padding:7px 12px 6px;border-bottom:1px solid var(--border);background:var(--chip-bg)}.diff-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--text-secondary)}.diff-legend-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;flex-shrink:0}.diff-legend-item--added .diff-legend-swatch{background:var(--diff-added)}.diff-legend-item--added{color:var(--diff-added)}.diff-legend-item--moved .diff-legend-swatch{background:var(--info)}.diff-legend-item--moved{color:var(--info)}.diff-legend-item--renamed .diff-legend-swatch{background:var(--accent)}.diff-legend-item--renamed{color:var(--accent)}.diff-legend-item--param .diff-legend-swatch{background:var(--diff-modified)}.diff-legend-item--param{color:var(--diff-modified)}.diff-legend-item--modified .diff-legend-swatch{background:var(--diff-modified)}.diff-legend-item--modified{color:var(--diff-modified)}.diff-legend-item--removed .diff-legend-swatch{background:var(--diff-removed)}.diff-legend-item--removed{color:var(--diff-removed)}.diff-legend-item--unchanged{color:var(--text-muted)}.suggestion-diff-chips{display:flex;gap:4px;margin-bottom:6px}.diff-chip{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:.2px}.diff-chip--added{background:var(--diff-added-dim);color:var(--diff-added)}.diff-chip--moved{background:var(--accent-b-dim);color:var(--info)}.diff-chip--renamed{background:var(--accent-dim);color:var(--accent)}.diff-chip--param,.diff-chip--modified{background:var(--diff-modified-dim);color:var(--diff-modified)}.diff-chip--removed{background:var(--diff-removed-dim);color:var(--diff-removed)}.diff-chip--unchanged{background:var(--chip-bg);color:var(--text-muted);font-weight:var(--weight-medium)}@media(prefers-reduced-motion:reduce){.suggestions-panel,.sug-btn-accept{animation:none}.suggestion-item,.sug-btn,.diff-chip{transition:none}}.snapshots-panel{position:absolute;top:52px;right:8px;z-index:55;width:300px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:var(--font-ui);overflow:hidden;animation:snap-panel-in .18s cubic-bezier(.34,1.56,.64,1)}@keyframes snap-panel-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.snapshots-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border)}.snapshots-title{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-primary)}.snapshots-close{background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);cursor:pointer;padding:0 3px;border-radius:var(--radius-xs);transition:color var(--transition-fast),background var(--transition-fast)}.snapshots-close:hover{color:var(--text-primary);background:var(--bg-hover)}.snapshots-add-btn{display:block;width:calc(100% - 24px);margin:10px 12px 6px;padding:6px 0;background:var(--accent-b-dim);color:var(--accent-b);border:1px dashed rgba(72,183,199,.35);border-radius:var(--radius-md);font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-family:var(--font-ui);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.snapshots-add-btn:hover{background:var(--accent-b);color:var(--accent-b-text)}.snapshots-create-row{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);align-items:center}.snapshots-name-input{flex:1;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-2xs);font-family:var(--font-ui);outline:none;transition:border-color var(--transition-fast)}.snapshots-name-input:focus{border-color:var(--border-focus)}.snapshots-empty{padding:16px 12px;font-size:var(--text-2xs);color:var(--text-muted);line-height:1.55;text-align:center}.snapshots-list{list-style:none;margin:0;padding:4px 0;max-height:340px;overflow-y:auto}.snapshots-list::-webkit-scrollbar{width:4px}.snapshots-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.snapshot-item{padding:8px 12px;border-bottom:1px solid var(--border)}.snapshot-item:last-child{border-bottom:none}.snapshot-meta{display:flex;align-items:baseline;gap:6px;margin-bottom:5px;flex-wrap:wrap}.snapshot-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snapshot-time,.snapshot-node-count{font-size:var(--text-3xs);color:var(--text-muted);flex-shrink:0}.snapshot-diff-chips{display:flex;gap:4px;margin-bottom:6px}.snapshot-actions{display:flex;align-items:center;gap:5px}.snapshot-confirm-text{font-size:var(--text-2xs);color:var(--text-secondary);margin-right:2px}.snap-btn{border:none;border-radius:var(--radius-sm);padding:4px 9px;font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-family:var(--font-ui);cursor:pointer;transition:opacity var(--transition-fast),transform .1s}.snap-btn:active{transform:scale(.96)}.snap-btn-primary{background:var(--accent-b);color:var(--accent-b-text)}.snap-btn-primary:hover{background:var(--accent-b-hover)}.snap-btn-ghost{background:transparent;color:var(--text-secondary);padding:4px 6px}.snap-btn-ghost:hover{color:var(--text-primary)}.snap-btn-danger{background:var(--diff-removed-dim);color:var(--danger)}.snap-btn-danger:hover{background:#e05c5c38}.snapshot-thumbnail{display:block;width:100%;height:72px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:6px;border:1px solid var(--border);background:var(--bg-canvas)}.project-list-overlay{position:fixed;inset:0;background:var(--overlay-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modal-overlay-in .12s ease-out}.project-list-dialog{background:var(--panel-glass-strong);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),inset 0 1px #ffffff0d;width:440px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;animation:modal-slide-in .2s cubic-bezier(.16,1,.3,1)}.project-list-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.project-list-header h3{margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary)}.project-list-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--text-lg);line-height:1;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.project-list-close:hover{color:var(--text-primary);background:var(--bg-hover)}.project-list-signin{padding:24px}.project-list-loading,.project-list-empty{text-align:center;color:var(--text-secondary);padding:32px 20px;font-size:var(--text-sm)}.project-list-hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:6px}.project-list-items{overflow-y:auto;flex:1;padding:8px 10px}.project-list-item{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:var(--radius-md);transition:background var(--transition-fast)}.project-list-item:hover{background:var(--bg-hover)}.project-list-info{display:flex;flex-direction:column;gap:3px;min-width:0}.project-list-name{color:var(--text-primary);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-list-date{color:var(--text-muted);font-size:var(--text-2xs)}.project-list-actions{display:flex;gap:6px;flex-shrink:0;margin-left:12px}.project-list-open{padding:5px 14px;border:none;border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.project-list-open:hover{background:var(--accent-hover);box-shadow:0 2px 8px #0003}.project-list-delete{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:var(--text-base);transition:border-color var(--transition-fast),color var(--transition-fast)}.project-list-delete:hover{border-color:var(--danger);color:var(--danger)}.welcome-overlay{position:fixed;inset:0;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:welcome-overlay-in .2s ease-out}@keyframes welcome-overlay-in{0%{opacity:0}to{opacity:1}}.welcome-card{background:var(--panel-glass-strong);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:32px 36px;max-width:480px;width:calc(100% - 48px);display:flex;flex-direction:column;gap:24px;box-shadow:var(--shadow-xl),inset 0 1px #ffffff0d;animation:welcome-card-in .25s cubic-bezier(.16,1,.3,1)}@keyframes welcome-card-in{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.welcome-header{display:flex;align-items:center;gap:14px}.welcome-logo{color:var(--accent);flex-shrink:0;opacity:.9}.welcome-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0 0 2px;line-height:1.2}.welcome-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.welcome-steps{list-style:none;display:flex;flex-direction:column;gap:14px}.welcome-step{display:flex;gap:14px;align-items:flex-start}.welcome-step-num{width:26px;height:26px;border-radius:50%;background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.welcome-step-body{display:flex;flex-direction:column;gap:3px}.welcome-step-body strong{font-size:var(--text-base);color:var(--text-primary);font-weight:var(--weight-semibold)}.welcome-step-body span{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.welcome-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.welcome-demo-btn{padding:8px 20px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.welcome-demo-btn:hover{border-color:var(--accent);color:var(--accent)}.welcome-hint{font-size:var(--text-xs);color:var(--text-muted);margin:0}.welcome-hint kbd{font-size:10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 4px;color:var(--text-secondary)}.welcome-start-btn{padding:8px 20px;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent-text);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.welcome-start-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.welcome-templates{padding:0}.welcome-templates-grid{display:flex;gap:8px}.welcome-template-btn{flex:1;padding:10px 8px;background:var(--chip-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.welcome-template-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.history-timeline{position:absolute;bottom:36px;left:50%;transform:translate(-50%);max-width:min(600px,80vw);background:var(--panel-glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:20;display:flex;align-items:center;padding:6px 8px;gap:2px;overflow-x:auto;scrollbar-width:thin}.history-timeline::-webkit-scrollbar{height:3px}.history-timeline::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px}.history-toggle{position:absolute;bottom:36px;left:50%;transform:translate(-50%);background:var(--panel-glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px 12px;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;z-index:19;transition:color var(--transition-fast)}.history-toggle:hover{color:var(--text-primary)}.history-entry{flex-shrink:0;padding:3px 8px;border-radius:var(--radius-xs);font-size:var(--text-2xs);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap;border:1px solid transparent}.history-entry:hover{background:var(--bg-hover);color:var(--text-secondary)}.history-entry:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.history-entry.current{background:var(--accent-dim);color:var(--accent);font-weight:var(--weight-semibold);border-color:var(--accent)}.history-entry.future{opacity:.4}.history-origin{flex-shrink:0;padding:3px 6px;font-size:var(--text-2xs);color:var(--text-muted);opacity:.6}.insights-panel{position:absolute;top:48px;right:0;bottom:28px;width:380px;background:var(--bg-elevated);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:50;color:var(--text-primary);font-size:12px}.insights-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border)}.insights-title{font-weight:600;font-size:13px}.insights-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px}.insights-close:hover{color:var(--text-primary)}.insights-body{overflow-y:auto;flex:1;padding:8px 12px 16px}.insights-section{margin-bottom:16px}.insights-section-title{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px}.insights-stats-row{display:flex;gap:8px}.insights-stat{flex:1;background:var(--bg-primary);border-radius:6px;padding:8px;text-align:center}.insights-stat-value{display:block;font-size:18px;font-weight:700;color:var(--accent)}.insights-stat-label{display:block;font-size:10px;color:var(--text-muted);margin-top:2px}.insights-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.insights-kpi-card{background:var(--bg-primary);border-radius:6px;padding:8px;border-left:3px solid transparent;cursor:help}.insights-kpi-good{border-left-color:var(--diff-added)}.insights-kpi-warn{border-left-color:var(--warning)}.insights-kpi-bad{border-left-color:var(--danger)}.insights-kpi-name{font-weight:600;font-size:11px;margin-bottom:2px}.insights-kpi-value{font-size:20px;font-weight:700;color:var(--text-primary)}.insights-kpi-category{font-size:9px;color:var(--text-muted);text-transform:uppercase}.insights-kpi-target{font-size:9px;color:var(--text-muted);margin-top:2px;opacity:.7}.insights-counters{background:var(--bg-primary);border-radius:6px;padding:6px 8px}.insights-counter-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--border)}.insights-counter-row:last-child{border-bottom:none}.insights-counter-label{color:var(--text-muted)}.insights-counter-value{font-weight:600;font-variant-numeric:tabular-nums}.insights-api-key-row{margin-bottom:6px}.insights-api-input{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:6px 8px;color:var(--text-primary);font-size:11px;font-family:inherit;box-sizing:border-box}.insights-api-input:focus{outline:none;border-color:var(--accent)}.insights-model-note{font-size:10px;color:var(--text-muted);margin-bottom:8px}.insights-actions{display:flex;gap:6px}.insights-btn{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font-size:11px;font-family:inherit}.insights-btn:hover:not(:disabled){background:var(--border)}.insights-btn:disabled{opacity:.5;cursor:wait}.insights-btn-accent{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.insights-btn-accent:hover:not(:disabled){opacity:.9}.insights-error{margin-top:6px;color:var(--danger);font-size:11px}.insights-classification{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.insights-label{display:inline-block;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.insights-label-power_user{background:var(--success);color:var(--bg-canvas)}.insights-label-casual_explorer{background:var(--info);color:var(--bg-canvas)}.insights-label-bounced{background:var(--danger);color:var(--text-on-color)}.insights-label-collaborator{background:var(--accent);color:var(--accent-text)}.insights-score{font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums}.insights-insight{font-size:11px;color:var(--text-primary);flex:1;min-width:200px}.insights-report-summary{margin:0 0 8px;line-height:1.5}.insights-subsection{font-weight:600;font-size:11px;margin:8px 0 4px}.insights-risk{color:var(--danger)}.insights-list{margin:0;padding-left:16px;line-height:1.6}.insights-list-risk li{color:var(--warning)}.insights-footer{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.insights-btn-sm{padding:4px 8px;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font-size:10px;font-family:inherit}.insights-btn-sm:hover{background:var(--border)}.insights-btn-danger{color:var(--danger);border-color:var(--danger)}.insights-btn-danger:hover{background:color-mix(in srgb,var(--danger) 15%,transparent)}.irp-panel{position:absolute;bottom:48px;right:8px;width:272px;border-radius:10px;backdrop-filter:blur(12px) saturate(160%);box-shadow:0 4px 24px #00000047,0 1px 4px #00000029;font-size:12px;line-height:1.45;z-index:120;overflow:hidden;animation:irp-slide-in .18s cubic-bezier(.16,1,.3,1) both}@keyframes irp-slide-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.irp-panel-clean{background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.irp-panel-warn{background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);border:1px solid color-mix(in srgb,var(--warning) 45%,transparent)}.irp-header{display:flex;align-items:center;gap:6px;padding:9px 10px 8px;border-bottom:1px solid rgba(255,255,255,.07)}.irp-icon{font-size:13px;flex-shrink:0}.irp-panel-clean .irp-icon{color:var(--accent)}.irp-panel-warn .irp-icon{color:var(--warning)}.irp-title{flex:1;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.irp-close{flex-shrink:0;background:none;border:none;color:var(--text-secondary);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;border-radius:4px;transition:color .12s,background .12s}.irp-close:hover{color:var(--text-primary);background:#ffffff14}.irp-rows{padding:6px 0}.irp-row{display:flex;justify-content:space-between;align-items:center;padding:3px 12px;gap:8px}.irp-row-label{color:var(--text-secondary);flex-shrink:0}.irp-row-value{font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.irp-row-neutral .irp-row-value{color:var(--text-primary)}.irp-row-ok .irp-row-value{color:var(--success)}.irp-row-warn .irp-row-value{color:var(--warning)}.irp-advice{margin:0;padding:6px 12px 10px;font-size:11px;color:var(--warning);border-top:1px solid color-mix(in srgb,var(--warning) 20%,transparent);line-height:1.5}.app-layout{display:flex;flex-direction:column;height:100%}.main-area,.canvas-area{display:flex;flex:1;overflow:hidden;position:relative}.toolbar-stack{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;z-index:20;max-width:calc(100vw - 32px)}.toolbar-stack>*{pointer-events:all}.viewport-empty-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}.viewport-empty-card{pointer-events:all;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:36px 48px;box-shadow:0 16px 48px var(--shadow);text-align:center;max-width:480px}.viewport-empty-icon{color:var(--accent);opacity:.8;margin-bottom:4px}.viewport-empty-title{font-size:var(--text-5xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0}.viewport-empty-sub{font-size:var(--text-base);color:var(--text-secondary);margin:0}.viewport-empty-actions{display:flex;gap:8px;margin-top:4px}.viewport-empty-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--text-base);cursor:pointer;transition:all .12s}.viewport-empty-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.viewport-empty-btn kbd{font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-primary);padding:1px 4px;border-radius:var(--radius-xs);border:1px solid var(--border)}.viewport-empty-hint{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px}.viewport-empty-demo-btn{padding:6px 16px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:all .12s}.viewport-empty-demo-btn:hover{border-color:var(--accent);color:var(--accent)}.viewport-empty-hint kbd{font-size:var(--text-xs);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 4px;color:var(--text-secondary)}.viewport-nav-hint{position:absolute;bottom:84px;left:50%;transform:translate(-50%);font-size:var(--text-sm);color:var(--text-muted);background:var(--panel-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:6px 16px;pointer-events:all;opacity:.85;white-space:nowrap;z-index:4;transition:opacity .6s ease;animation:nav-hint-in .4s ease-out}@keyframes nav-hint-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:.85;transform:translate(-50%) translateY(0)}}.comment-input-overlay{position:fixed;z-index:200;transform:translate(-50%,calc(-100% - 12px));background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px;box-shadow:var(--shadow-lg);font-family:var(--font-ui);width:240px;animation:comment-input-above .18s cubic-bezier(.34,1.56,.64,1) both;pointer-events:all}.comment-input-overlay--below{transform:translate(-50%,12px);animation:comment-input-below .18s cubic-bezier(.34,1.56,.64,1) both}@keyframes comment-input-above{0%{opacity:0;transform:translate(-50%,calc(-100% - 4px)) scale(.96)}to{opacity:1;transform:translate(-50%,calc(-100% - 12px)) scale(1)}}@keyframes comment-input-below{0%{opacity:0;transform:translate(-50%,4px) scale(.96)}to{opacity:1;transform:translate(-50%,12px) scale(1)}}.comment-input-textarea{width:100%;resize:none;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:7px 8px;font-size:var(--text-xs);font-family:inherit;outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.comment-input-textarea:focus{border-color:var(--border-focus)}.comment-input-actions{display:flex;gap:6px;margin-top:7px;justify-content:flex-end}.comment-input-submit{background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-sm);padding:4px 11px;font-size:var(--text-2xs);font-weight:var(--weight-semibold);font-family:inherit;cursor:pointer;transition:opacity var(--transition-fast)}.comment-input-submit:disabled{opacity:.4;cursor:not-allowed}.comment-input-submit:not(:disabled):hover{background:var(--accent-hover)}.comment-input-cancel{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 9px;font-size:var(--text-2xs);font-family:inherit;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.comment-input-cancel:hover{color:var(--text-primary);background:var(--bg-hover)}.ews-not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100dvh;color:var(--text-secondary);font-size:var(--text-sm);background:var(--bg-primary)}.ews-not-found p{margin:0;color:var(--text-muted)}.ews-not-found a{color:var(--accent-text);text-decoration:none;font-size:var(--text-xs);padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.ews-not-found a:hover{background:var(--bg-elevated)}@media(prefers-reduced-motion:reduce){.ews-not-found a{transition:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark light;--bg-canvas: #081e33;--bg-primary: #071726;--bg-surface: #0d2238;--bg-elevated: #132a44;--bg-hover: rgba(140, 200, 255, .06);--text-primary: #e6f0f6;--text-secondary: #9bb3c2;--text-muted: #5f7a8c;--copper: #f07a1a;--copper-dim: rgba(240, 122, 26, .16);--copper-hover: #ff933d;--copper-ink: #1a0d00;--cyan-cad: #6fe0ff;--cyan-cad-dim: rgba(111, 224, 255, .16);--cyan-cad-hover: #8ae8ff;--cyan-cad-ink: #001018;--accent-a: var(--copper);--accent-a-dim: var(--copper-dim);--accent-a-hover: var(--copper-hover);--accent-a-text: var(--copper-ink);--accent-b: var(--cyan-cad);--accent-b-dim: var(--cyan-cad-dim);--accent-b-hover: var(--cyan-cad-hover);--accent-b-text: var(--cyan-cad-ink);--accent: var(--accent-a);--accent-dim: var(--accent-a-dim);--accent-hover: var(--accent-a-hover);--accent-text: var(--accent-a-text);--info: var(--accent-b);--success: #4daa77;--success-bg: rgba(77, 170, 119, .88);--danger: #e05c5c;--danger-bg: rgba(224, 92, 92, .9);--warning: #d9976a;--border: #1c3446;--border-focus: var(--accent-a);--snap-color: var(--accent-b);--shadow: rgba(0, 0, 0, .7);--grid-major: rgba( 180, 220, 255, .2 );--grid-minor: rgba(120, 180, 255, .1);--grid-section: rgba(180, 220, 255, .2);--edge-default: #79aecd;--edge-selected: var(--accent-b);--toast-info-bg: rgba(13, 31, 45, .97);--panel-glass: rgba(13, 31, 45, .7);--panel-glass-strong: rgba(13, 31, 45, .85);--chip-bg: rgba(255, 255, 255, .06);--selection-bg: var(--accent-a-dim);--selection-ring: var(--accent-a);--target-bg: rgba(77, 170, 119, .1);--target-ring: rgba(77, 170, 119, .3);--overlay-scrim: rgba(0, 0, 0, .55);--diff-added: var(--success);--diff-added-dim: rgba(77, 170, 119, .12);--diff-modified: var(--warning);--diff-modified-dim: rgba(217, 151, 106, .12);--diff-removed: var(--danger);--diff-removed-dim: rgba(224, 92, 92, .12);--bg-secondary: var(--bg-surface);--bg-tertiary: var(--bg-elevated);--text-3xs: 10px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 15px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--text-5xl: 40px;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 10px;--radius-xl: 14px;--radius-2xl: 20px;--radius-full: 9999px;--sz-rail: 56px;--sz-tool-btn: 44px;--sz-icon-btn: 32px;--sz-ftb-btn: 36px;--sz-status-bar: 32px;--sz-panel: 280px;--sz-panel-outline: 200px;--sz-panel-props: 280px;--sz-cmdbar: 40px;--sz-cmdbar-sub: 36px;--sz-palette: 560px;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", "Fira Code", "Cascadia Code", monospace;--transition-fast: .12s ease;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .65);--text-on-color: #ffffff}@media(prefers-color-scheme:light){:root{--bg-canvas: #e6f0f6;--bg-primary: #f4f8fb;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-hover: rgba(0, 120, 180, .05);--text-primary: #142028;--text-secondary: #4f6b7a;--text-muted: #7f97a3;--accent-a: #e85d04;--accent-a-dim: rgba(232, 93, 4, .12);--accent-a-hover: #ff7a1a;--accent-a-text: #ffffff;--accent-b: #007ea7;--accent-b-dim: rgba(0, 126, 167, .12);--accent-b-hover: #0096c7;--accent-b-text: #ffffff;--border: #d4e1ea;--border-focus: var(--accent-a);--snap-color: var(--accent-b);--edge-default: #9fb6c4;--edge-selected: var(--accent-b);--success: #2e8f58;--success-bg: rgba(46, 143, 88, .9);--danger: #c42828;--danger-bg: rgba(196, 40, 40, .9);--warning: #a06020;--shadow: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .16);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .22);--grid-major: rgba(0, 126, 167, .28);--grid-minor: rgba(0, 126, 167, .08);--grid-section: rgba(0, 126, 167, .35);--panel-glass: rgba(255, 255, 255, .78);--panel-glass-strong: rgba(255, 255, 255, .9);--chip-bg: rgba(13, 31, 45, .05);--selection-bg: var(--accent-a-dim);--target-bg: rgba(46, 143, 88, .1);--target-ring: rgba(46, 143, 88, .3);--toast-info-bg: rgba(255, 255, 255, .97)}}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:var(--font-ui);background:var(--bg-primary);color:var(--text-primary)}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);padding:6px 12px;border-radius:var(--radius-md);font-size:var(--text-base);transition:all .12s}button:hover{background:var(--bg-hover)}button:disabled{opacity:.3;cursor:not-allowed}button:disabled:hover{background:var(--bg-surface)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}button:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}input:focus-visible{outline:1px solid var(--border-focus);outline-offset:0}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover{background:var(--accent-hover)}kbd{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 5px;font-size:var(--text-sm);font-family:monospace;color:var(--text-primary);margin-right:4px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes obj-spawn{0%{transform:scale(.95);opacity:.6}to{transform:scale(1);opacity:1}}.obj-spawn{animation:obj-spawn .08s ease-out both}@keyframes snap-pulse{0%{opacity:1}60%{opacity:.3}to{opacity:1}}.snap-pulse{animation:snap-pulse .25s ease-out both}@keyframes tool-press{0%{transform:scale(1)}40%{transform:scale(.9)}to{transform:scale(1)}}.tool-press{animation:tool-press .1s ease-out both}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:scale(.96) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes item-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.outliner-item-new{animation:item-in .12s ease-out both}
