:root{--panel-bg: rgba(20, 22, 28, .85);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .6);--panel-text: var(--text-primary);--panel-text-secondary: var(--text-secondary);--panel-border: rgba(255, 255, 255, .1);--accent: #4fc3f7;--accent-hover: #81d4fa;--accent-active: #29b6f6;--accent-10: color-mix(in srgb, var(--accent) 10%, transparent);--accent-15: color-mix(in srgb, var(--accent) 15%, transparent);--accent-20: color-mix(in srgb, var(--accent) 20%, transparent);--accent-25: color-mix(in srgb, var(--accent) 25%, transparent);--accent-30: color-mix(in srgb, var(--accent) 30%, transparent);--accent-50: color-mix(in srgb, var(--accent) 50%, transparent);--panel-tint-1: color-mix(in srgb, var(--panel-text) 5%, transparent);--panel-tint-2: color-mix(in srgb, var(--panel-text) 10%, transparent);--panel-tint-3: color-mix(in srgb, var(--panel-text) 18%, transparent);--panel-tint-4: color-mix(in srgb, var(--panel-text) 26%, transparent);--panel-well: color-mix(in srgb, var(--panel-text) 7%, transparent);--panel-hover: var(--panel-tint-2);--panel-selected: var(--accent-20);--panel-shadow: 0 4px 20px rgba(0, 0, 0, .4);--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--panel-radius: 8px;--panel-spacing: var(--space-4);--radius-control: 4px;--radius-pill: 999px;--control-height: 32px;--text-meta: calc(10px * var(--ui-font-scale));--text-section: calc(11px * var(--ui-font-scale));--text-label: calc(12px * var(--ui-font-scale));--text-body: calc(13px * var(--ui-font-scale));--text-meta-touch: calc(12px * var(--ui-font-scale));--text-label-touch: calc(13px * var(--ui-font-scale));--text-body-touch: calc(14px * var(--ui-font-scale));--text-lg-touch: calc(15px * var(--ui-font-scale));--text-icon-touch: calc(16px * var(--ui-font-scale));--text-input-touch: max(16px, calc(16px * var(--ui-font-scale)));--text-display: calc(24px * var(--ui-font-scale));--leading-tight: 1;--leading-normal: 1.4;--leading-loose: 1.6;--panel-header-height: 36px;--menubar-height: 28px;--outliner-row-height: 28px;--outliner-type-row-height: 34px;--outliner-row-height-touch: 44px;--outliner-type-row-height-touch: 52px;--touch-target: 44px;--touch-control-size: 24px;--touch-slider-thumb: 28px;--touch-slider-track: 6px;--mobile-bar-height: 56px;--mobile-bar-height-landscape: 48px;--mobile-sheet-transition: .22s;--transition-fast: .15s ease;--transition-normal: .2s ease;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", "Fira Code", Consolas, "Liberation Mono", monospace;--ui-font-scale: 1;--panel-blur-scale: 1;--panel-bg-solid: rgb(20, 22, 28);--panel-bevel-size: 0px;--panel-bevel-light: transparent;--panel-bevel-dark: transparent;--panel-sheen: none;--panel-bevel: inset var(--panel-bevel-size) var(--panel-bevel-size) 0 0 var(--panel-bevel-light), inset calc(-1 * var(--panel-bevel-size)) calc(-1 * var(--panel-bevel-size)) 0 0 var(--panel-bevel-dark), inset 0 0 calc(var(--panel-bevel-size) * 5) 0 var(--panel-bevel-light)}@media(prefers-reduced-transparency:reduce){.graph3d,.menu__dropdown,.select-dropdown,.tooltip,.modal-content{--panel-bg: var(--panel-bg-solid);--panel-blur-scale: 0}}.stats-panel,.outliner-panel{position:absolute;z-index:100;min-width:160px;max-width:280px;font-family:var(--font-family);font-size:var(--text-body);color:var(--panel-text);background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow),var(--panel-bevel);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%)}.stats-panel{top:var(--panel-spacing);left:var(--panel-spacing)}.stats-panel[data-collapsed=true],.outliner-panel[data-collapsed=true]{max-height:var(--panel-header-height)}@keyframes panelSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.stats-panel{min-width:140px}.stats-panel__row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0}.stats-panel__row:not(:last-child){border-bottom:1px solid var(--panel-border)}.stats-panel__label{color:var(--panel-text-secondary);font-size:var(--text-label)}.stats-panel__value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent)}.outliner-panel{min-width:200px;max-width:280px}.outliner-panel__section{margin-bottom:var(--space-3)}.outliner-panel__section:last-of-type{margin-bottom:0}.outliner-panel__section-header{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);box-sizing:border-box;padding:0 var(--space-3);margin:0 -4px;border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--transition-fast)}.outliner-panel__section-header:hover{background:var(--panel-hover)}.outliner-panel__section-chevron{display:flex;align-items:center;justify-content:center;width:12px;height:12px;font-size:var(--text-meta);font-weight:600;color:var(--panel-text-secondary);transition:color var(--transition-fast)}.outliner-panel__section-header:hover .outliner-panel__section-chevron{color:var(--accent-hover)}.outliner-panel__section-title{flex:1;font-size:var(--text-section);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--panel-text-secondary)}.outliner-panel__section-count{flex-shrink:0;min-width:20px;padding:var(--space-1) var(--space-2);font-size:var(--text-meta);font-weight:500;font-variant-numeric:tabular-nums;text-align:center;color:var(--panel-text-secondary);background:var(--panel-tint-1);border-radius:var(--radius-pill)}.outliner-panel__section-content{padding-top:var(--space-2);padding-left:var(--space-5)}.outliner-panel__type-list{max-height:170px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--panel-tint-3) transparent}.outliner-panel__type-list::-webkit-scrollbar{width:6px}.outliner-panel__type-list::-webkit-scrollbar-track{background:transparent}.outliner-panel__type-list::-webkit-scrollbar-thumb{background:var(--panel-tint-3);border-radius:var(--radius-control)}.outliner-panel__type-list::-webkit-scrollbar-thumb:hover{background:var(--panel-tint-4)}.outliner-panel__type-list-spacer{position:relative;width:100%}.outliner-panel__type-item{position:absolute;left:0;right:0;box-sizing:border-box;height:calc(var(--outliner-type-row-height) - 4px);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);margin:2px -6px;border-radius:var(--radius-control);transition:background-color var(--transition-fast)}.outliner-panel__type-item:hover{background:var(--panel-hover)}.outliner-panel__type-swatch{flex-shrink:0;box-shadow:0 0 0 1px var(--panel-tint-3),inset 0 1px 2px #0003}.outliner-panel__type-swatch--node{width:12px;height:12px;border-radius:50%}.outliner-panel__type-swatch--edge{width:16px;height:4px;border-radius:var(--radius-pill)}.outliner-panel__type-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-label);color:var(--panel-text)}.outliner-panel__type-count{flex-shrink:0;min-width:24px;padding:var(--space-1) var(--space-2);font-size:var(--text-meta);font-weight:500;font-variant-numeric:tabular-nums;text-align:center;color:var(--panel-text-secondary);background:var(--panel-tint-1);border-radius:var(--radius-pill)}.outliner-panel__type-item .control-group{flex:0 0 auto;width:96px;margin-bottom:0}.outliner-panel__type-item .select-trigger{height:24px;padding:var(--space-1) var(--space-3);font-size:var(--text-label)}.outliner-panel__type-item[data-stale=true] .outliner-panel__type-swatch{background:transparent;box-shadow:none;border:1px dashed var(--text-tertiary);opacity:.45}.outliner-panel__type-item[data-stale=true] .outliner-panel__type-label,.outliner-panel__type-item[data-stale=true] .outliner-panel__type-count{opacity:.45}.outliner-panel__type-visibility{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:var(--radius-control);background:transparent;color:var(--panel-text-secondary);cursor:pointer}.outliner-panel__type-visibility:hover{background:var(--panel-hover);color:var(--panel-text)}.outliner-panel__type-item[data-hidden=true] .outliner-panel__type-swatch,.outliner-panel__type-item[data-hidden=true] .outliner-panel__type-label,.outliner-panel__type-item[data-hidden=true] .outliner-panel__type-count{opacity:.45}.outliner-panel__search{display:block;width:100%;box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-label);color:var(--panel-text);background:var(--panel-well);border:1px solid var(--panel-border);border-radius:var(--radius-control);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.outliner-panel__search::placeholder{color:var(--panel-text-secondary)}.outliner-panel__search:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-20)}.outliner-panel__list{max-height:200px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--panel-tint-3) transparent}.outliner-panel__list::-webkit-scrollbar{width:6px}.outliner-panel__list::-webkit-scrollbar-track{background:transparent}.outliner-panel__list::-webkit-scrollbar-thumb{background:var(--panel-tint-3);border-radius:var(--radius-control)}.outliner-panel__list::-webkit-scrollbar-thumb:hover{background:var(--panel-tint-4)}.outliner-panel__list-spacer{position:relative;width:100%}.outliner-panel__item{position:absolute;left:0;right:0;box-sizing:border-box;height:calc(var(--outliner-row-height) - 2px);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-3);margin:1px -4px;border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--transition-fast)}.outliner-panel__item:hover{background:var(--panel-hover)}.outliner-panel__item[data-selected=true]{background:var(--panel-selected)}.outliner-panel__item[data-selected=true] .outliner-panel__name{color:var(--accent);font-weight:500}.outliner-panel__color{flex-shrink:0;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1px var(--panel-tint-3)}.outliner-panel__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-label);color:var(--panel-text)}.outliner-panel__empty{padding:var(--space-5) var(--space-3);text-align:center;font-size:var(--text-label);color:var(--panel-text-secondary);font-style:italic}.graph3d{position:relative;width:100%;height:100%;overflow:hidden;background:#0a0a0f}.graph3d__error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#000000d9;color:#f44;padding:var(--space-5);text-align:center;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.graph3d__error-title{font-size:var(--text-display);font-weight:600;margin-bottom:var(--space-4);color:#f66}.graph3d__error-message{font-size:var(--text-body);opacity:.8;max-width:400px;line-height:var(--leading-normal)}.graph3d__loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,var(--panel-bg) 55%,transparent);color:var(--panel-text);font-family:var(--font-family);z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.graph3d__loading-text{font-size:var(--text-body);animation:loadingPulse 1.5s ease-in-out infinite}@keyframes loadingPulse{0%,to{opacity:.6}50%{opacity:1}}.palette-swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;background:none;outline:none;cursor:pointer}.palette-swatch::-webkit-color-swatch-wrapper{padding:0}.palette-swatch::-webkit-color-swatch{border:none;border-radius:var(--radius-control)}.palette-swatch::-moz-color-swatch{border:none;border-radius:var(--radius-control)}@media(prefers-contrast:high){.stats-panel,.outliner-panel{border-width:2px;border-color:currentColor}.outliner-panel__item[data-selected=true]{outline:2px solid var(--accent);outline-offset:-2px}}@media(prefers-reduced-motion:reduce){.stats-panel,.outliner-panel,.outliner-panel__search,.outliner-panel__item,.outliner-panel__type-item{transition:none}.graph3d__loading-text{animation:none;opacity:1}}.navigation-panel{width:220px}.tools-panel{width:260px}.display-panel{width:280px}.audio-panel{width:200px}.panel-button{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-4);margin-top:var(--space-3);font-family:var(--font-family);font-size:var(--text-label);font-weight:500;color:var(--panel-text);background:linear-gradient(135deg,var(--accent-25) 0%,var(--accent-10) 100%);border:1px solid var(--accent-50);border-radius:var(--radius-control);cursor:pointer;transition:all var(--transition-fast)}.panel-button:hover{background:linear-gradient(135deg,var(--accent-50) 0%,var(--accent-20) 100%);border-color:var(--accent-hover);color:var(--accent-hover)}.panel-button:active{transform:scale(.98);border-color:var(--accent-active);color:var(--accent-active)}.panel-button:disabled{opacity:.5;cursor:not-allowed}.panel-button:disabled:hover{background:linear-gradient(135deg,var(--accent-25) 0%,var(--accent-10) 100%);border-color:var(--accent-50);color:var(--panel-text);transform:none}.control-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0}.control-label{font-size:var(--text-label);color:var(--panel-text-secondary);white-space:nowrap}.control-input{width:80px;box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-3);font-size:var(--text-label);font-family:inherit;font-variant-numeric:tabular-nums;color:var(--panel-text);background:var(--panel-well);border:1px solid var(--panel-border);border-radius:var(--radius-control);outline:none;text-align:right;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);color-scheme:dark}.control-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-20)}.control-input::-webkit-inner-spin-button,.control-input::-webkit-outer-spin-button{opacity:1}.control-group{position:relative;margin-bottom:var(--space-4)}.control-group:last-child{margin-bottom:0}.control-group label{display:block;font-size:var(--text-label);color:var(--text-secondary);margin-bottom:var(--space-2)}.control-group small{display:block;font-size:var(--text-meta);color:var(--text-tertiary);margin-top:var(--space-2)}.control-group--stack{display:flex;flex-direction:column;gap:var(--space-1)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--panel-tint-3);border-radius:var(--radius-pill);outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 1px var(--panel-tint-4);cursor:pointer;transition:transform var(--transition-fast),background-color var(--transition-fast)}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15);background:var(--accent-hover)}input[type=range]:active::-webkit-slider-thumb{background:var(--accent-active)}input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border:none;border-radius:50%;box-shadow:0 0 0 1px var(--panel-tint-4);cursor:pointer}input[type=range]:hover::-moz-range-thumb{background:var(--accent-hover)}input[type=range]:active::-moz-range-thumb{background:var(--accent-active)}input[type=range]::-moz-range-track{background:var(--panel-tint-3);border-radius:var(--radius-pill);height:4px}input[type=range]:disabled{opacity:.5;cursor:not-allowed}input[type=range]:disabled::-webkit-slider-thumb{cursor:not-allowed}input[type=range]:disabled::-moz-range-thumb{cursor:not-allowed}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;min-width:16px;min-height:16px;background:var(--panel-well);border:1px solid var(--panel-border);border-radius:var(--radius-control);cursor:pointer;position:relative;transition:all var(--transition-fast)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:hover{background:var(--accent-hover);border-color:var(--accent-hover)}input[type=checkbox]:checked:active{background:var(--accent-active);border-color:var(--accent-active)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:hover{border-color:var(--accent-hover)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:disabled:hover{border-color:var(--panel-border)}input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;min-width:16px;min-height:16px;background:var(--panel-well);border:1px solid var(--panel-border);border-radius:50%;cursor:pointer;position:relative;transition:all var(--transition-fast)}input[type=radio]:checked{background:var(--panel-well);border-color:var(--accent)}input[type=radio]:checked:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;background:var(--accent);border-radius:50%;transform:translate(-50%,-50%)}input[type=radio]:hover{border-color:var(--accent-hover)}input[type=radio]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-20)}input[type=radio]:disabled{opacity:.5;cursor:not-allowed}input[type=radio]:disabled:hover{border-color:var(--panel-border)}.radio-group{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.radio-group label{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-label);color:var(--panel-text);cursor:pointer}.radio-group input[type=radio]+label{margin-bottom:0}.select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-3);font-size:var(--text-label);font-family:var(--font-family);color:var(--panel-text);background:var(--panel-well);border:1px solid var(--panel-border);border-radius:var(--radius-control);outline:none;cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.select-trigger:hover{border-color:var(--panel-tint-3)}.select-trigger:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-20)}.select-trigger:disabled{opacity:.5;cursor:not-allowed}.select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-arrow{display:flex;align-items:center;justify-content:center;margin-left:var(--space-3);color:var(--text-tertiary);transition:transform var(--transition-fast)}.select-trigger[aria-expanded=true] .select-arrow{transform:rotate(180deg)}.select-dropdown{z-index:10000;margin:0;padding:var(--space-2) 0;list-style:none;background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--radius-control);box-shadow:0 4px 12px #0006,var(--panel-bevel);max-height:200px;overflow-y:auto;font-family:var(--font-family);color:var(--panel-text);-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);scrollbar-width:thin;scrollbar-color:var(--panel-tint-3) transparent}.select-dropdown::-webkit-scrollbar{width:6px}.select-dropdown::-webkit-scrollbar-track{background:transparent}.select-dropdown::-webkit-scrollbar-thumb{background:var(--panel-tint-3);border-radius:var(--radius-control)}.select-dropdown::-webkit-scrollbar-thumb:hover{background:var(--panel-tint-4)}.select-option{padding:var(--space-3) var(--space-4);font-size:var(--text-label);color:var(--panel-text);cursor:pointer;transition:background-color var(--transition-fast)}.select-option:hover,.select-option--focused{background:var(--panel-hover)}.select-option--selected{color:var(--accent);background:var(--accent-10)}.select-option--selected.select-option--focused,.select-option--selected:hover{background:var(--accent-20)}.select-option--disabled{color:var(--text-tertiary);font-style:italic;cursor:not-allowed}.select-option--disabled:hover,.select-option--disabled.select-option--focused{background:transparent}@media print{.stats-panel,.outliner-panel,.draggable-panel,.graph-menubar{display:none!important}}.draggable-panel{position:absolute;z-index:100;min-width:160px;max-width:320px;font-family:var(--font-family);font-size:var(--text-body);color:var(--panel-text);background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow),var(--panel-bevel);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%)}.draggable-panel[data-dragging=true]{box-shadow:0 8px 32px #00000080,var(--panel-bevel);opacity:.95}.draggable-panel[data-collapsed=true]{max-height:var(--panel-header-height)}.draggable-panel__header{display:flex;align-items:center;justify-content:space-between;height:var(--panel-header-height);padding:0 var(--space-3) 0 var(--space-4);background:var(--panel-tint-1);border-bottom:1px solid var(--panel-border);cursor:grab;transition:background-color var(--transition-fast)}.draggable-panel__header:active{cursor:grabbing}.draggable-panel__header:hover{background:var(--panel-hover)}.draggable-panel__title-area{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;cursor:pointer}.draggable-panel__title{font-weight:600;font-size:var(--text-section);text-transform:uppercase;letter-spacing:.5px;color:var(--panel-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draggable-panel__toggle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:var(--text-label);font-weight:500;color:var(--panel-text-secondary);transition:color var(--transition-fast)}.draggable-panel__title-area:hover .draggable-panel__toggle{color:var(--accent-hover)}.draggable-panel__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:var(--space-2);padding:0;background:transparent;border:none;border-radius:var(--radius-control);color:var(--panel-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.draggable-panel__close:hover{background:var(--panel-hover);color:var(--panel-text)}.draggable-panel__close:active{background:var(--panel-tint-3)}.draggable-panel__content{padding:var(--panel-spacing);animation:panelSlideDown var(--transition-normal) ease-out;contain:layout paint}.draggable-panel__resize-edge{position:absolute;top:var(--panel-header-height);right:0;bottom:0;width:6px;cursor:ew-resize;z-index:10;transition:background-color var(--transition-fast)}.draggable-panel__resize-edge:hover{background:var(--accent-20)}.draggable-panel[data-resizing=true] .draggable-panel__resize-edge{background:var(--accent-30)}.draggable-panel__resize-handle{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:se-resize;z-index:11;transition:opacity var(--transition-fast)}.draggable-panel__resize-handle:before{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid var(--panel-text-secondary);border-bottom:2px solid var(--panel-text-secondary);opacity:.5;transition:opacity var(--transition-fast),border-color var(--transition-fast)}.draggable-panel__resize-handle:hover:before{opacity:1;border-color:var(--accent-hover)}.draggable-panel[data-resizing=true] .draggable-panel__resize-handle:before{opacity:1;border-color:var(--accent-active)}.draggable-panel[data-collapsed=true] .draggable-panel__resize-edge,.draggable-panel[data-collapsed=true] .draggable-panel__resize-handle{display:none}.draggable-panel[data-resizing=true]{-webkit-user-select:none;user-select:none}.graph-menubar{position:absolute;top:0;left:0;right:0;height:var(--menubar-height);z-index:200;display:flex;align-items:center;padding:0 var(--space-2);background:var(--panel-bg);background-image:var(--panel-sheen);border-bottom:1px solid var(--panel-border);font-family:var(--font-family);font-size:var(--text-body);color:var(--panel-text);box-shadow:var(--panel-bevel);-webkit-backdrop-filter:blur(calc(8px * var(--panel-blur-scale)));backdrop-filter:blur(calc(8px * var(--panel-blur-scale)))}.menu{position:relative}.menu__trigger{display:flex;align-items:center;height:24px;padding:0 var(--space-3);margin:var(--space-1);background:transparent;border:none;border-radius:var(--radius-control);color:var(--panel-text);font-family:inherit;font-size:var(--text-body);cursor:pointer;transition:background-color var(--transition-fast)}.menu__trigger:hover,.menu[data-open=true] .menu__trigger{background:var(--panel-hover)}.menu__trigger:disabled{opacity:.5;cursor:default}.menu__dropdown{min-width:180px;padding:var(--space-2) 0;background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:0 8px 24px #0006,var(--panel-bevel);z-index:9999;font-family:var(--font-family);color:var(--panel-text);-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);animation:menuFadeIn .15s ease-out}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);margin:0 var(--space-2);border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--transition-fast)}.menu-item:hover{background:var(--panel-hover)}.menu-item[data-disabled=true]{opacity:.5;cursor:default}.menu-item[data-disabled=true]:hover{background:transparent}.menu-item__check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--accent)}.menu-item__icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--panel-text-secondary)}.menu-item__label{flex:1;min-width:0;font-size:var(--text-body);color:var(--panel-text)}.menu-item__shortcut{flex-shrink:0;font-size:var(--text-meta);color:var(--panel-text-secondary);margin-left:var(--space-5)}.menu-separator{height:1px;margin:var(--space-2) var(--space-3);background:var(--panel-border)}@media(prefers-reduced-motion:reduce){.menu__dropdown,.draggable-panel__content{animation:none}.menu__trigger,.menu-item,.draggable-panel__header,.draggable-panel__close,.draggable-panel__toggle{transition:none}}.modal-backdrop{display:flex;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:10000;align-items:center;justify-content:center;animation:modalFadeIn .15s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow),var(--panel-bevel);padding:var(--space-5);min-width:350px;max-width:450px;animation:modalSlideIn .15s ease-out;-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);font-family:var(--font-family);font-size:var(--text-body)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-title{margin:0 0 var(--space-5) 0;color:var(--panel-text);font-size:1.2em;font-weight:500}.modal-field{margin-bottom:var(--space-5)}.modal-row{display:flex;gap:var(--space-5);margin-bottom:var(--space-5)}.modal-label{display:block;margin-bottom:var(--space-3);color:var(--panel-text-secondary);font-size:.9em}.modal-hint{margin:var(--space-2) 0 0;color:var(--text-tertiary, var(--panel-text-secondary));font-size:.8em;line-height:var(--leading-normal)}.modal-list{margin:var(--space-2) 0 0;padding-left:var(--space-5);color:var(--panel-text);font-size:.85em;line-height:var(--leading-loose)}.modal-list li[data-status=rejected]{color:var(--text-tertiary, var(--panel-text-secondary))}.modal-input{width:100%;min-height:var(--control-height);padding:0 var(--space-3);background:var(--panel-well);border:1px solid var(--panel-border);border-radius:var(--radius-control);color:var(--panel-text);font-size:.95em;transition:border-color .15s ease;box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--accent-color, #4fc3f7)}.modal-input::placeholder{color:var(--panel-text-secondary);opacity:.6}.modal-select{cursor:pointer}.modal-select option{background:var(--panel-bg);color:var(--panel-text)}.modal-status{padding:var(--space-4);margin-bottom:var(--space-5);border-radius:var(--radius-control);font-size:.9em}.modal-status--info{background:var(--accent-15);border:1px solid var(--accent-30);color:var(--accent)}.modal-status--warning{background:#ffcc0026;border:1px solid rgba(255,204,0,.3);color:#fc0}.modal-status--error{background:#ff525226;border:1px solid rgba(255,82,82,.3);color:#ff5252}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-5)}.modal-button{min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-control);font-size:.9em;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease;border:1px solid transparent}.modal-button--primary{background:var(--accent-color, #4fc3f7);color:#000;border-color:var(--accent-color, #4fc3f7)}.modal-button--primary:hover{background:color-mix(in srgb,var(--accent-color, #4fc3f7) 80%,white)}.modal-button--secondary{background:var(--panel-hover);color:var(--panel-text);border-color:var(--panel-border)}.modal-button--secondary:hover{background:var(--panel-border)}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-content{animation:none}}.theme-panel{width:280px}.theme-panel__button{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-4);margin-top:var(--space-3);font-size:var(--text-label);font-weight:500;color:var(--panel-text);background:linear-gradient(135deg,var(--accent-25) 0%,var(--accent-10) 100%);border:1px solid var(--accent-50);border-radius:var(--radius-control);cursor:pointer;transition:all var(--transition-fast)}.theme-panel__button:hover{background:linear-gradient(135deg,var(--accent-50) 0%,var(--accent-20) 100%);border-color:var(--accent-hover);color:var(--accent-hover)}.theme-panel__button:active{transform:scale(.98);border-color:var(--accent-active);color:var(--accent-active)}.theme-panel__color-section{margin-bottom:var(--space-4)}.theme-panel__color-section:last-child{margin-bottom:0}.theme-panel__color-label{font-size:var(--text-section);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.theme-panel__color-grid{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(28px,1fr))}.theme-panel__color-grid--8{grid-template-columns:repeat(auto-fit,minmax(24px,1fr))}.theme-panel__color-grid--3{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}.theme-panel__bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:var(--space-3)}.theme-panel__swatch-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);min-width:0}.theme-panel__bg-swatch{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0}.theme-panel__swatch{width:100%;aspect-ratio:1;min-width:24px;min-height:24px;padding:0;border:1px solid var(--panel-tint-3);border-radius:var(--radius-control);cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}.theme-panel__swatch::-webkit-color-swatch-wrapper{padding:0}.theme-panel__swatch::-webkit-color-swatch{border:none;border-radius:var(--radius-control)}.theme-panel__swatch::-moz-color-swatch{border:none;border-radius:var(--radius-control)}.theme-panel__swatch:hover{border-color:var(--accent-hover);transform:scale(1.1);z-index:1}.theme-panel__swatch:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-30)}.theme-panel__swatch--wide{width:100%;height:32px;aspect-ratio:auto}.theme-panel__swatch-label{font-size:var(--text-meta);color:var(--text-tertiary);text-align:center;line-height:var(--leading-tight);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matcap-gallery{display:flex;flex-direction:column;gap:var(--space-3)}.matcap-gallery__grid{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.matcap-gallery__scroll{max-height:216px;overflow-y:auto;padding:var(--space-1)}.matcap-gallery__tile{position:relative;width:100%;aspect-ratio:1;min-width:40px;min-height:40px;padding:0;border:1px solid var(--panel-tint-3);border-radius:50%;background:transparent;cursor:pointer;overflow:hidden;-moz-appearance:none;appearance:none;-webkit-appearance:none;color:var(--panel-text-secondary);font-size:var(--text-body);line-height:var(--leading-tight)}.matcap-gallery__tile:hover{border-color:var(--accent-hover)}.matcap-gallery__tile:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-30)}.matcap-gallery__tile[data-selected=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-30)}.matcap-gallery__thumb{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;background:#00000040}.matcap-gallery__custom-input{width:100%}.matcap-gallery__note{font-size:var(--text-meta);color:var(--text-tertiary)}.matcap-gallery__search{width:100%}.matcap-gallery__caption{min-height:calc(var(--text-meta) * var(--leading-tight) + 2px);font-size:var(--text-meta);line-height:var(--leading-tight);color:var(--panel-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matcap-gallery__reveal{padding:0;border:none;background:none;color:var(--text-tertiary);font-size:var(--text-meta);line-height:var(--leading-tight);text-align:left;cursor:pointer}.matcap-gallery__reveal:hover{color:var(--panel-text-secondary)}.matcap-gallery__reveal:focus-visible{outline:none;color:var(--accent);text-decoration:underline}.matcap-gallery__tile[data-duplicate=true]{opacity:.55;border-style:dashed}.matcap-gallery__tile[data-duplicate=true]:hover,.matcap-gallery__tile[data-duplicate=true][data-selected=true]{opacity:1}.tooltip-trigger{display:inline-flex;align-items:center;max-width:100%}.tooltip-trigger--block{display:flex;width:100%}.tooltip{position:fixed;top:0;left:0;z-index:10001;font-family:var(--font-family);font-size:var(--text-label);color:var(--panel-text);background:var(--panel-bg);background-image:var(--panel-sheen);border:1px solid var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow),var(--panel-bevel);pointer-events:none;-webkit-backdrop-filter:blur(calc(8px * var(--panel-blur-scale)));backdrop-filter:blur(calc(8px * var(--panel-blur-scale)));animation:tooltipFadeIn .15s ease-out}.tooltip[data-placed=false]{visibility:hidden}@keyframes tooltipFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tooltip__content{padding:var(--space-3) var(--space-4);line-height:var(--leading-normal)}.tooltip strong{color:var(--panel-text);font-weight:600}.tooltip__keys{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin:0}.tooltip__keys dt{font-family:var(--font-family-mono);font-size:var(--text-section);color:var(--accent);white-space:nowrap}.tooltip__keys dd{margin:0;color:var(--panel-text-secondary)}.tooltip__arrow{position:absolute;width:8px;height:8px;background:var(--panel-bg);border:1px solid var(--panel-border);transform:rotate(45deg);pointer-events:none}.tooltip--top .tooltip__arrow{bottom:-5px;left:calc(var(--tooltip-arrow-x, 50%) - 4px);border-top:none;border-left:none}.tooltip--bottom .tooltip__arrow{top:-5px;left:calc(var(--tooltip-arrow-x, 50%) - 4px);border-bottom:none;border-right:none}.tooltip--left .tooltip__arrow{right:-5px;top:calc(var(--tooltip-arrow-y, 50%) - 4px);border-bottom:none;border-left:none}.tooltip--right .tooltip__arrow{left:-5px;top:calc(var(--tooltip-arrow-y, 50%) - 4px);border-top:none;border-right:none}.tooltip:not(.tooltip--has-arrow) .tooltip__arrow{display:none}.tooltip--hoverable{pointer-events:auto}@media(prefers-reduced-motion:reduce){.tooltip{animation:none}}.control-label--hinted,.subsection-title-collapsible__text{cursor:help}.control-label--hinted{text-decoration:underline dotted var(--panel-border);text-underline-offset:3px}.control-label--hinted:hover,.control-label--hinted:focus-visible{color:var(--panel-text);text-decoration-color:var(--accent-hover)}.control-label--hinted:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-30);border-radius:var(--radius-control)}.control-group__label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.control-group__label-row label{margin-bottom:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-group__label-row .checkbox-label{flex:1 1 auto;overflow:visible}.control-group__label-row .checkbox-label__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-group__value{font-size:var(--text-meta);color:var(--panel-text-secondary);font-variant-numeric:tabular-nums}.control-help-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.help-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-family:inherit;font-size:var(--text-section);line-height:var(--leading-normal);color:var(--panel-text-secondary);background:var(--panel-tint-1);border:1px solid var(--panel-border);border-radius:var(--radius-pill);cursor:help;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:all var(--transition-fast)}.help-chip:hover,.help-chip:focus-visible{color:var(--accent-hover);border-color:var(--accent-50);background:var(--accent-10)}.help-chip:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-30)}.help-chip__icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:var(--text-meta);font-weight:600;border:1px solid currentColor;border-radius:50%;opacity:.7}.panel-group-heading{margin:var(--space-5) 0 var(--space-3);padding:0 var(--space-1) var(--space-2);font-size:var(--text-meta);font-weight:500;letter-spacing:.3px;color:var(--text-tertiary);border-bottom:1px solid var(--panel-border)}.panel-group-heading:first-child{margin-top:0}.subsection-collapsible{margin-bottom:var(--space-3);border:1px solid var(--panel-border);border-radius:var(--radius-control);overflow:hidden}.subsection-collapsible:last-child{margin-bottom:0}.subsection-title-collapsible{display:flex;align-items:center;min-height:var(--control-height);box-sizing:border-box;padding:0 var(--space-3);font-size:var(--text-section);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--panel-text-secondary);background:var(--panel-tint-1);cursor:pointer;transition:all var(--transition-fast);list-style:none}.subsection-title-collapsible::-webkit-details-marker{display:none}.subsection-title-collapsible:before{content:"";display:inline-block;width:0;height:0;margin-right:var(--space-3);border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid var(--panel-text-secondary);transition:transform var(--transition-fast)}.subsection-collapsible[open] .subsection-title-collapsible:before{transform:rotate(90deg)}.subsection-title-collapsible:hover{color:var(--panel-text);background:var(--panel-hover)}.subsection-title-collapsible:hover:before{border-left-color:var(--accent-hover)}.subsection-toggle{flex-shrink:0;margin-right:var(--space-3);cursor:pointer}.subsection-title-collapsible__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subsection-collapsible:has(>.subsection-title-collapsible>.subsection-toggle:not(:checked))>.subsection-title-collapsible>.subsection-title-collapsible__text{opacity:.55}.subsection-content{padding:var(--space-4);border-top:1px solid var(--panel-border)}.control-note{margin:calc(-1 * var(--space-1)) 0 var(--space-3);font-size:var(--text-meta);line-height:var(--leading-normal);color:var(--panel-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.control-note--wrap{white-space:normal;overflow:visible}.dock-zone{position:absolute;top:var(--menubar-height);bottom:0;z-index:50;pointer-events:none}.dock-zone--left{left:0}.dock-zone--right{right:0}.dock-zone__stack{pointer-events:auto;display:flex;flex-direction:column;gap:1px;max-height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--panel-tint-3) transparent}.dock-zone__stack:empty{display:none}.dock-zone__stack::-webkit-scrollbar{width:6px}.dock-zone__stack::-webkit-scrollbar-track{background:transparent}.dock-zone__stack::-webkit-scrollbar-thumb{background:var(--panel-tint-3);border-radius:var(--radius-control)}.dock-zone__stack::-webkit-scrollbar-thumb:hover{background:var(--panel-tint-4)}.dock-zone__splitter{position:absolute;top:0;width:6px;pointer-events:auto;cursor:ew-resize;z-index:10}.dock-zone__splitter--left{right:-3px}.dock-zone__splitter--right{left:-3px}.dock-zone__splitter:hover{background:var(--accent-20)}.dock-zone__highlight{position:absolute;top:0;right:0;bottom:0;left:0;z-index:400;pointer-events:none;background:var(--accent-10);border:1px solid var(--accent-50)}.dock-zone__insert-line{position:absolute;left:0;right:0;height:2px;background:var(--accent);pointer-events:none}.dock-drag-ghost{position:absolute;height:36px;z-index:450;pointer-events:none;border:1px dashed var(--accent);border-radius:var(--panel-radius);background:var(--accent-10)}.dock-zone .draggable-panel{position:static;width:100%;max-width:none;min-width:0;border-radius:0;box-shadow:var(--panel-bevel);border-left:none;border-right:none;flex:0 0 auto}.graph-menubar__extra{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);height:100%;padding-right:var(--space-2)}.data-source-controls{display:flex;flex-direction:column;gap:var(--space-3);padding:0 0 var(--space-3);border-bottom:1px solid var(--panel-border, rgba(255, 255, 255, .08))}.data-source-controls .panel-button{width:100%}.graph3d__data-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:color-mix(in srgb,var(--panel-bg) 55%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);-webkit-user-select:none;user-select:none}.graph3d__data-loading-spinner{width:34px;height:34px;border:3px solid var(--accent-25);border-top-color:var(--accent);border-radius:50%;animation:graph3d-data-loading-spin .9s linear infinite}.graph3d__data-loading-message{color:var(--panel-text);font-size:.9rem;font-family:var(--font-family)}@keyframes graph3d-data-loading-spin{to{transform:rotate(360deg)}}.graph3d[data-shell=mobile]{--mobile-safe-bottom: env(safe-area-inset-bottom, 0px)}.mobile-shell__bar{position:absolute;left:0;right:0;bottom:0;z-index:230;display:flex;align-items:stretch;gap:var(--space-1);height:calc(var(--mobile-bar-height) + var(--mobile-safe-bottom));padding:0 var(--space-1);padding-bottom:var(--mobile-safe-bottom);box-sizing:border-box;background:var(--panel-bg);background-image:var(--panel-sheen);border-top:1px solid var(--panel-border);font-family:var(--font-family);color:var(--panel-text);-webkit-backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);backdrop-filter:blur(calc(12px * var(--panel-blur-scale))) saturate(180%);-webkit-user-select:none;user-select:none;box-shadow:var(--panel-bevel)}.mobile-shell__bar-strip{display:flex;align-items:stretch;gap:var(--space-1);flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mobile-shell__bar-strip::-webkit-scrollbar{display:none}.graph3d[data-shell=mobile] .mobile-shell__bar-item{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);min-width:56px;min-height:var(--touch-target);padding:var(--space-2);background:transparent;border:none;border-radius:var(--panel-radius);color:var(--panel-text-secondary);font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.graph3d[data-shell=mobile] .mobile-shell__bar-item[data-active=true]{background:var(--accent-15);color:var(--accent)}.mobile-shell__bar-item--menu{border-right:1px solid var(--panel-border);border-radius:var(--panel-radius) 0 0 var(--panel-radius)}.mobile-shell__bar-icon{font-size:var(--text-icon-touch);line-height:var(--leading-tight)}.mobile-shell__bar-label{font-size:var(--text-meta);line-height:1.1;letter-spacing:.2px;white-space:nowrap}.mobile-shell__sheet{position:absolute;left:0;right:0;z-index:220;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;background:var(--panel-bg);background-image:var(--panel-sheen);border-top:1px solid var(--panel-border);border-radius:var(--panel-radius) var(--panel-radius) 0 0;box-shadow:0 -8px 28px #00000073,var(--panel-bevel);font-family:var(--font-family);font-size:var(--text-body);color:var(--panel-text);-webkit-backdrop-filter:blur(calc(18px * var(--panel-blur-scale))) saturate(160%);backdrop-filter:blur(calc(18px * var(--panel-blur-scale))) saturate(160%);transition:height var(--mobile-sheet-transition) ease,width var(--mobile-sheet-transition) ease,transform var(--mobile-sheet-transition) ease}.mobile-shell__sheet[data-dragging=true]{transition:none}.mobile-shell__sheet[data-state=closed]{visibility:hidden;pointer-events:none;transform:translateY(100%)}.mobile-shell__sheet[data-presentation=side]{left:auto;right:0;top:0;border-top:none;border-left:1px solid var(--panel-border);border-radius:var(--panel-radius) 0 0 var(--panel-radius);box-shadow:-8px 0 28px #00000073,var(--panel-bevel)}.mobile-shell__sheet[data-presentation=side][data-state=closed]{transform:translate(100%)}.mobile-shell__sheet-header{position:relative;display:flex;align-items:center;gap:var(--space-3);flex:0 0 auto;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--panel-border);background:var(--panel-tint-1);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.mobile-shell__grabber{position:absolute;top:6px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:var(--radius-pill);background:var(--panel-text-secondary);opacity:.4}.mobile-shell__sheet-title{flex:1;min-width:0;margin-top:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-body);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.graph3d[data-shell=mobile] .mobile-shell__sheet-action{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:var(--touch-target);min-height:var(--touch-target);margin-top:var(--space-2);padding:0;background:transparent;border:none;border-radius:var(--panel-radius);color:var(--panel-text-secondary);font-size:var(--text-lg-touch);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.graph3d[data-shell=mobile] .mobile-shell__sheet-action:active{background:var(--panel-hover);color:var(--panel-text)}.mobile-shell__sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--panel-tint-3) transparent}.mobile-shell__sheet-content{height:auto;padding:var(--panel-spacing)}.mobile-shell__sheet-body::-webkit-scrollbar{width:6px}.mobile-shell__sheet-body::-webkit-scrollbar-thumb{background:var(--panel-tint-3);border-radius:var(--radius-control)}.mobile-sheet-panel{width:100%;max-width:none;min-width:0}.mobile-shell__menu,.mobile-shell__menu-extra{display:flex;flex-direction:column;gap:var(--space-3)}.mobile-shell__menu-note{margin:0;font-size:var(--text-section);line-height:var(--leading-normal);color:var(--panel-text-secondary)}.mobile-shell__scrim{position:absolute;z-index:210;background:transparent;touch-action:none}.graph3d[data-shell=mobile] .control-group>label{display:flex;align-items:center;min-height:var(--touch-target);font-size:var(--text-label-touch);cursor:pointer}.graph3d[data-shell=mobile] .control-group__label-row>.checkbox-label{display:flex;align-items:center;min-height:var(--touch-target);font-size:var(--text-label-touch);cursor:pointer}.graph3d[data-shell=mobile] input[type=checkbox],.graph3d[data-shell=mobile] input[type=radio]{width:var(--touch-control-size);height:var(--touch-control-size);min-width:var(--touch-control-size);min-height:var(--touch-control-size)}.graph3d[data-shell=mobile] input[type=checkbox]:checked:after{left:8px;top:3px;width:6px;height:12px}.graph3d[data-shell=mobile] input[type=radio]:checked:after{width:12px;height:12px}.graph3d[data-shell=mobile] .radio-group label{min-height:var(--touch-target);font-size:var(--text-label-touch)}.graph3d[data-shell=mobile] input[type=range]{height:var(--touch-target);background:transparent;touch-action:none}.graph3d[data-shell=mobile] input[type=range]::-webkit-slider-runnable-track{height:var(--touch-slider-track);background:var(--panel-tint-3);border-radius:var(--radius-control)}.graph3d[data-shell=mobile] input[type=range]::-webkit-slider-thumb{width:var(--touch-slider-thumb);height:var(--touch-slider-thumb);margin-top:calc((var(--touch-slider-track) - var(--touch-slider-thumb)) / 2);box-shadow:0 1px 4px #00000073}.graph3d[data-shell=mobile] input[type=range]::-moz-range-track{height:var(--touch-slider-track)}.graph3d[data-shell=mobile] input[type=range]::-moz-range-thumb{width:var(--touch-slider-thumb);height:var(--touch-slider-thumb)}.graph3d[data-shell=mobile] .control-group__value{font-size:var(--text-meta-touch)}.graph3d[data-shell=mobile] .select-trigger,.graph3d[data-shell=mobile] .panel-button,.graph3d[data-shell=mobile] .theme-panel__button,.graph3d[data-shell=mobile] .modal-button{min-height:var(--touch-target);font-size:var(--text-body-touch)}.graph3d[data-shell=mobile] .control-input,.graph3d[data-shell=mobile] .outliner-panel__search,.graph3d[data-shell=mobile] .modal-input{min-height:var(--touch-target);font-size:var(--text-input-touch)}.graph3d[data-shell=mobile] .draggable-panel__close,.graph3d[data-shell=mobile] .help-chip{min-width:var(--touch-target);min-height:var(--touch-target)}.graph3d[data-shell=mobile] .subsection-title-collapsible,.graph3d[data-shell=mobile] .outliner-panel__section-header{display:flex;align-items:center;min-height:var(--touch-target);font-size:var(--text-label-touch)}.graph3d[data-shell=mobile] .theme-panel__swatch,.graph3d[data-shell=mobile] .palette-swatch{min-width:var(--touch-target);min-height:var(--touch-target)}.graph3d[data-shell=mobile] .theme-panel__color-grid--8{grid-template-columns:repeat(auto-fit,minmax(var(--touch-target),1fr))}.graph3d[data-shell=mobile] .matcap-gallery__tile{min-width:var(--touch-target);min-height:var(--touch-target)}.graph3d[data-shell=mobile] .matcap-gallery__grid{grid-template-columns:repeat(auto-fill,minmax(var(--touch-target),1fr))}.graph3d[data-shell=mobile] .outliner-panel__item{height:calc(var(--outliner-row-height-touch) - 2px);font-size:var(--text-body-touch)}.graph3d[data-shell=mobile] .outliner-panel__type-item{height:calc(var(--outliner-type-row-height-touch) - 4px)}.graph3d[data-shell=mobile] .outliner-panel__type-visibility{min-width:var(--touch-target);width:auto;height:100%}.graph3d[data-shell=mobile] .outliner-panel__type-label,.graph3d[data-shell=mobile] .outliner-panel__name{font-size:var(--text-body-touch)}.graph3d[data-shell=mobile] .outliner-panel__list{max-height:45vh;max-height:45dvh}.graph3d[data-shell=mobile] .outliner-panel__type-list{max-height:28vh;max-height:28dvh}:root[data-viz-shell=mobile] .select-option{display:flex;align-items:center;min-height:var(--touch-target);padding:var(--space-3) var(--space-4);font-size:var(--text-lg-touch)}:root[data-viz-shell=mobile] .select-dropdown{max-height:50vh;max-height:50dvh}:root[data-viz-shell=mobile] .menu-item{min-height:var(--touch-target);font-size:var(--text-lg-touch)}:root[data-viz-shell=mobile] .menu__dropdown{max-height:70vh;max-height:70dvh;overflow-y:auto}:root[data-viz-shell=mobile] .tooltip{font-size:var(--text-label-touch)}:root[data-viz-shell=mobile] .modal-button{min-height:var(--touch-target);font-size:var(--text-lg-touch)}:root[data-viz-shell=mobile] .modal-input{min-height:var(--touch-target);font-size:var(--text-input-touch)}.graph3d[data-shell=mobile][data-orientation=landscape] .mobile-shell__bar{height:calc(var(--mobile-bar-height-landscape) + var(--mobile-safe-bottom))}@media(prefers-reduced-motion:reduce){.mobile-shell__sheet{transition:none}}
