:root{--bg:#f7f3e8;--bg-soft:#efe7d2c9;--panel-bg:#ffffff47;--panel-bg-focus:#ffffff8c;--surface:#ffffff47;--surface-strong:#ffffff8c;--text:#1f1a17;--text-dim:#534d5f;--text-muted:#8b7f6a;--accent:#1d6b3c;--accent-dim:#1d6b3c1a;--border:#b9aa8fbe;--hover:#ffffff8c;--danger:#b5121b;--gold:#b08a1f;--gold-dim:#b08a1f1f;--important-load-bg:color-mix(in srgb, var(--surface-strong) 88%, var(--accent) 12%);--link:#0039a6;--link-hover:#b5121b;--drop-bg:#ffffff8c;--drop-border:var(--text);--shadow-panel:3px 3px 0 #1f1a1714;--shadow-button:2px 2px 0 #1f1a1714;--shadow-button-active:1px 1px 0 #1f1a1714;--scrollbar-thumb:#b9aa8fbe;--scrollbar-track:transparent;--font-family:"Comic Mono", "Cascadia Code", "Fira Code", monospace}@font-face{font-family:Comic Mono;src:url(/fonts/comic_mono/comic-mono-latin-400-normal.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}[data-theme=light]{--bg:#f7f3e8;--bg-soft:#efe7d2c9;--panel-bg:#ffffff47;--panel-bg-focus:#ffffff8c;--surface:#ffffff47;--surface-strong:#ffffff8c;--text:#1f1a17;--text-dim:#534d5f;--text-muted:#8b7f6a;--accent:#1d6b3c;--accent-dim:#1d6b3c1a;--border:#b9aa8fbe;--hover:#ffffff8c;--danger:#b5121b;--gold:#b08a1f;--gold-dim:#b08a1f1f;--drop-bg:#ffffff8c;--drop-border:var(--text);--scrollbar-thumb:#b9aa8fbe;--scrollbar-track:transparent}[data-panel-opacity=opaque][data-theme=light]{--panel-bg:#fffaf0;--panel-bg-focus:#fffef8;--surface:#fffaf0;--surface-strong:#fffef8;--bg-soft:#efe7d2;--hover:#fffef8;--drop-bg:#fffaf0}[data-theme=dark]{--bg:#1f1a17;--bg-soft:#3e362dd1;--panel-bg:#29231eb8;--panel-bg-focus:#3e362deb;--surface:#29231eb8;--surface-strong:#3e362deb;--text:#f7f3e8;--text-dim:#cabda5;--text-muted:#998b73;--accent:#72bf8a;--accent-dim:#72bf8a29;--border:#cabda57a;--hover:#ffffff14;--danger:#ff777d;--gold:#f0c76a;--gold-dim:#f0c76a29;--link:#9ebcff;--link-hover:#ff9ca1;--drop-bg:#29231edb;--drop-border:var(--text);--scrollbar-thumb:#cabda585;--scrollbar-track:transparent;--shadow-panel:3px 3px 0 #00000038;--shadow-button:2px 2px 0 #0000003d;--shadow-button-active:1px 1px 0 #0000003d}[data-panel-opacity=opaque][data-theme=dark]{--panel-bg:#29231e;--panel-bg-focus:#3e362d;--surface:#29231e;--surface-strong:#3e362d;--bg-soft:#3e362d;--hover:#3e362d;--drop-bg:#29231e}html,body,button,input,select,textarea,optgroup,option{font-family:var(--font-family)}body{background:linear-gradient(to bottom, #ffffff59, #ffffff26), var(--bg);color:var(--text);height:100vh;transition:background .3s,color .3s;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:0}::selection{background:var(--accent);color:#fff}.theme-icon-btn{box-shadow:none;cursor:pointer;background:0 0;border:none;outline:none;padding:4px}.theme-icon-btn img{width:20px;height:20px;display:block}#theme-toggle,#panel-opacity-toggle{padding:4px;box-shadow:none!important;background:0 0!important;border:none!important}#panel-opacity-toggle[aria-pressed=true] img{opacity:.92}body{--topbar-height:46px;--left-panel-width:280px;--right-panel-width:280px;--topbar-active-height:var(--topbar-height);--left-panel-active-width:var(--left-panel-width);--right-panel-active-width:var(--right-panel-width);display:block}body.panel-left-collapsed{--left-panel-active-width:0px}body.panel-right-collapsed{--right-panel-active-width:0px}body.panel-top-collapsed{--topbar-active-height:0px}#topbar{height:var(--topbar-height);box-sizing:border-box;background:var(--panel-bg);border-bottom:2px solid var(--text);box-shadow:var(--shadow-panel);z-index:80;align-items:center;gap:1rem;padding:0 1rem;display:flex;position:fixed;top:0;left:0;right:0}body.panel-top-collapsed #topbar{height:0;box-shadow:none;visibility:hidden;border-bottom:0;padding-top:0;padding-bottom:0;overflow:hidden}#topbar .logo{color:var(--text);letter-spacing:.01em;font-size:1.05rem;font-weight:700}#topbar .sep{color:var(--text-muted);-webkit-user-select:none;user-select:none}#topbar select{background:var(--bg-soft);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-button);cursor:pointer;border-radius:0;outline:none;padding:.35rem .6rem;font-size:.85rem}#topbar select:focus{border-color:var(--text)}#topbar .spacer{flex:1}#topbar #vertex-count{color:var(--text-dim);font-size:.78rem}#theme-toggle{background:var(--panel-bg);border:1px solid var(--text);color:var(--text);box-shadow:var(--shadow-button);cursor:pointer;border-radius:0;padding:.35rem .6rem;font-size:1rem;transition:background .2s}#theme-toggle:hover{background:var(--hover);color:var(--link-hover)}#theme-toggle:active{box-shadow:var(--shadow-button-active);transform:translate(1px,1px)}#task-panel{top:var(--topbar-active-height);width:var(--left-panel-width);box-sizing:border-box;background:var(--panel-bg);border-right:1px solid var(--border);box-shadow:var(--shadow-panel);z-index:10;flex-direction:column;gap:10px;min-width:0;padding:1rem;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto}body.panel-left-collapsed #task-panel{width:0;box-shadow:none;visibility:hidden;border-right:0;padding-left:0;padding-right:0;overflow:hidden}#task-panel h3{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin:0 0 2px;font-size:.85rem}#task-panel .hint{color:var(--text-dim);margin-top:-4px;font-size:.73rem;line-height:1.5}.task-mesh-loader{border:1px solid var(--border);background:var(--important-load-bg);border-radius:0;gap:5px;padding:8px;display:grid}.task-mesh-load-row{grid-template-columns:minmax(92px,116px) minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.task-mesh-load-row[hidden]{display:none!important}.task-mesh-load-row .btn{white-space:nowrap;width:100%;min-width:0}.task-mesh-load-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;color:var(--text-dim);font-size:.75rem;overflow:hidden}#task-load-symmetry-btn[hidden],#task-update-vertices-btn[hidden]{display:none!important}.task-mesh-loader #task-load-mesh-btn{padding:6px 10px}.task-mesh-loader input[type=file]{display:none}@media (width<=760px){.task-mesh-load-row{grid-template-columns:minmax(86px,108px) minmax(0,1fr)}}#drop-overlay{pointer-events:none;z-index:15;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#drop-message{color:var(--text);background:var(--drop-bg);box-shadow:var(--shadow-panel);pointer-events:auto;cursor:pointer;text-align:center;border:2px dashed var(--drop-border);border-radius:0;padding:22px 44px;font-size:1.4rem;transition:border-color .2s}#drop-message:hover{border-color:var(--text)}#drop-message small{color:var(--text-dim);font-size:.8rem}#file-input{display:none}#viz-panel{top:var(--topbar-active-height);width:var(--right-panel-width);box-sizing:border-box;background:var(--panel-bg);border-left:1px solid var(--border);box-shadow:var(--shadow-panel);z-index:10;min-width:0;padding:1rem;font-size:.82rem;position:fixed;bottom:0;right:0;overflow-y:auto}body.panel-right-collapsed #viz-panel{width:0;box-shadow:none;visibility:hidden;border-left:0;padding-left:0;padding-right:0;overflow:hidden}#viz-panel h3{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin:0 0 10px;font-size:.85rem}#viz-panel .section{border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:12px}#viz-panel .section:last-child{border-bottom:none}#viewport{background:linear-gradient(to bottom, #ffffff59, #ffffff26), var(--bg);z-index:5;min-width:0;min-height:0;position:fixed;inset:0;overflow:hidden}#viewport canvas{width:100%;height:100%;display:block}.panel-toggle{top:calc(var(--topbar-active-height) + (100vh - var(--topbar-active-height)) * .5);z-index:35;border:1px solid var(--border);background:var(--panel-bg-focus);width:24px;height:48px;color:var(--text);box-shadow:var(--shadow-button);font-family:var(--font-family);cursor:pointer;padding:0;font-size:1.15rem;line-height:1;position:fixed;transform:translateY(-50%)}.panel-toggle:hover{background:var(--hover);color:var(--link-hover)}.panel-toggle:active{box-shadow:var(--shadow-button-active);transform:translateY(-50%)translate(1px,1px)}.panel-toggle-left{left:calc(var(--left-panel-active-width) + 8px)}body.panel-left-collapsed .panel-toggle-left{left:8px}.panel-toggle-right{right:calc(var(--right-panel-active-width) + 8px)}body.panel-right-collapsed .panel-toggle-right{right:8px}.topbar-toggle{top:calc(var(--topbar-active-height) + 8px);z-index:90;border:1px solid var(--border);background:var(--panel-bg-focus);width:48px;height:24px;color:var(--text);box-shadow:var(--shadow-button);font-family:var(--font-family);cursor:pointer;padding:0;font-size:1.15rem;line-height:1;position:fixed;left:50%;transform:translate(-50%)}.topbar-toggle:before{content:"›";transform-origin:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;transform:rotate(-90deg)}body.panel-top-collapsed .topbar-toggle:before{transform:rotate(90deg)}.topbar-toggle:hover{background:var(--hover);color:var(--link-hover)}.topbar-toggle:active{box-shadow:var(--shadow-button-active);transform:translate(-50%)translate(1px,1px)}body.panel-top-collapsed .topbar-toggle{top:8px}#fps-counter{top:calc(var(--topbar-active-height) + 10px);left:calc(var(--left-panel-active-width) + 10px);z-index:30;pointer-events:none;border:1px solid var(--border);box-shadow:var(--shadow-button);background:var(--panel-bg-focus);color:var(--text);font-family:var(--font-family);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:0;padding:4px 7px;font-size:.72rem;line-height:1;position:absolute}#geomy-version{left:calc(var(--left-panel-active-width) + 10px);z-index:30;pointer-events:auto;color:var(--text-dim);font-family:var(--font-family);opacity:.58;text-shadow:0 1px 2px var(--bg);-webkit-user-select:none;user-select:none;font-size:.66rem;line-height:1;position:absolute;bottom:10px}#geomy-version a{color:inherit;text-decoration:none}#geomy-version a:hover{color:var(--accent);text-decoration:underline}#topbar .logo{align-items:center;gap:.45rem;display:inline-flex}.logo-icon{width:24px;height:24px;display:block}@media (width<=900px),(height<=520px){body{--left-panel-width:min(82vw, 320px);--right-panel-width:min(82vw, 320px);--topbar-height:40px;min-width:0}#topbar{scrollbar-width:none;gap:.45rem;min-width:0;padding:0 .45rem;overflow:auto hidden}#topbar::-webkit-scrollbar{display:none}#topbar .logo{flex:none}#topbar .sep,#topbar label{display:none}#topbar select{flex:auto;min-width:8rem;max-width:12.5rem;padding:.28rem .45rem;font-size:.78rem}#topbar #vertex-count{display:none}.theme-icon-btn,#theme-toggle,#panel-opacity-toggle{flex:none;width:32px;height:32px;padding:.25rem}#task-panel,#viz-panel{top:var(--topbar-active-height);width:var(--left-panel-width);z-index:50;overscroll-behavior:contain;align-self:auto;max-width:calc(100vw - 38px);padding:.65rem;position:fixed;bottom:0}#task-panel{left:0;right:auto}#viz-panel{width:var(--right-panel-width);left:auto;right:0}body.panel-left-collapsed #task-panel,body.panel-right-collapsed #viz-panel{visibility:hidden;width:0;padding-left:0;padding-right:0}#viewport{min-width:0;min-height:0}.panel-toggle{top:calc(var(--topbar-active-height) + (100vh - var(--topbar-active-height)) * .5);z-index:70;background:var(--panel-bg-focus);width:28px;height:56px;font-size:1.25rem}.panel-toggle-left{left:calc(var(--left-panel-active-width) + 6px)}body.panel-left-collapsed .panel-toggle-left{left:6px}.panel-toggle-right{right:calc(var(--right-panel-active-width) + 6px)}body.panel-right-collapsed .panel-toggle-right{right:6px}#fps-counter{top:calc(var(--topbar-active-height) + 8px);left:calc(var(--left-panel-active-width) + 8px);font-size:.66rem}.topbar-toggle{top:calc(var(--topbar-active-height) + 6px);z-index:95;width:44px;height:24px}body.panel-top-collapsed .topbar-toggle{top:6px}#drop-message{max-width:min(78vw,22rem);padding:16px 22px;font-size:1rem}}.display-color-picker{border:1px solid var(--border);width:22px;height:18px;box-shadow:none;cursor:pointer;background:0 0;border-radius:0;flex:none;margin-left:auto;padding:0}.display-color-picker::-webkit-color-swatch-wrapper{padding:0}.display-color-picker::-webkit-color-swatch{border:none;border-radius:0}.display-color-picker::-moz-color-swatch{border:none;border-radius:0}.btn{font-family:var(--font-family);background:var(--panel-bg);color:var(--text);border:1px solid var(--text);box-shadow:var(--shadow-button);cursor:pointer;text-align:center;border-radius:0;padding:.35rem .6rem;font-size:.84rem;transition:background .15s,border-color .15s,color .15s,transform 50ms,box-shadow 50ms}.btn:hover{background:var(--hover);border-color:var(--text);color:var(--link-hover)}.btn.active{border-color:var(--text);background:var(--panel-bg-focus);box-shadow:var(--shadow-button-active);transform:translate(1px,1px)}.btn-export{background:var(--accent);color:#fff;border-color:var(--text);font-weight:600}.btn-export:hover{filter:brightness(1.15)}.btn-danger{color:var(--danger)}.btn-row{gap:6px;display:flex}.btn-row .btn{flex:1}.btn-full{width:100%;margin-top:6px}.task-edit-compact{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:5px;margin-top:4px;display:grid}.task-edit-compact .btn{padding:5px 8px;font-size:.74rem;line-height:1.15}label.checkbox-label,label.radio-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;padding:5px 0;font-size:.84rem;display:flex}label.checkbox-label input,label.radio-label input{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}[data-theme=dark] input[type=checkbox],[data-theme=dark] input[type=radio]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--bg-soft);color:var(--text)}input[type=text],input[type=number],input[type=search],input[type=email],input[type=url],input[type=password],textarea,select{box-sizing:border-box;background:var(--panel-bg);color:var(--text);border:1px solid var(--border);border-radius:0}input[type=text]:focus,input[type=number]:focus,input[type=search]:focus,input[type=email]:focus,input[type=url]:focus,input[type=password]:focus,textarea:focus,select:focus{border-color:var(--accent);background:var(--panel-bg-focus);outline:none}select option{background:var(--bg);color:var(--text)}[data-theme=dark] input[type=text],[data-theme=dark] input[type=number],[data-theme=dark] input[type=search],[data-theme=dark] input[type=email],[data-theme=dark] input[type=url],[data-theme=dark] input[type=password],[data-theme=dark] textarea,[data-theme=dark] select,[data-theme=dark] select option{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);border-color:var(--border);background:#29231e}label.disabled{color:var(--text-muted);cursor:not-allowed}label.disabled input{cursor:not-allowed}.range-row{align-items:center;gap:10px;min-width:0;display:flex}.range-row label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.range-row input[type=range]{min-width:0;accent-color:var(--accent);flex:auto}.range-row .range-val{color:var(--text-dim);text-overflow:ellipsis;text-align:right;flex:none;min-width:34px;max-width:54px;font-size:.78rem;overflow:hidden}.pick-list{flex:1;max-height:280px;margin-top:6px;overflow-y:auto}.pick-row{border-bottom:1px solid var(--border);border-radius:0;justify-content:space-between;align-items:center;padding:4px 6px;font-size:.76rem;transition:background .1s;display:flex}.pick-row:hover{background:var(--hover)}.pick-row.highlight{background:var(--gold-dim)}.pick-row .idx{min-width:28px;font-weight:600}.pick-row button{cursor:pointer;background:0 0;border:none;border-radius:0;padding:2px 6px;font-size:.85rem;transition:background .15s}.pick-row .btn-del{color:var(--danger)}.pick-row button:hover{background:var(--border)}.info-row{color:var(--text-dim);text-align:center;padding:24px 8px;font-size:.78rem;font-style:italic;line-height:1.6}.section-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:10px 0 4px;font-size:.73rem}.material-mode-list{margin-top:8px}.material-properties-section{flex-direction:column;gap:10px;display:flex}.material-property{border:1px solid var(--border);background:var(--panel-bg);border-radius:0;padding:8px}.material-property-head{color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:.78rem;font-weight:700;display:flex}.material-mode-badge{border:1px solid var(--border);color:var(--text-dim);border-radius:0;flex:none;padding:2px 6px;font-size:.62rem;font-weight:500}.material-row{grid-template-columns:52px 1fr auto;align-items:center;gap:6px;margin-top:6px;display:grid}.material-row label{color:var(--text-dim);font-size:.73rem}.material-row input[type=color]{cursor:pointer;background:0 0;border:none;width:32px;height:24px}.material-row input[type=file]{color:#0000;width:100%;min-width:0;font-size:.68rem}.material-row input[type=file]::file-selector-button{color:var(--text);margin-right:0}.material-range-row{margin-top:7px}.btn-mini{padding:2px 7px;font-size:.72rem;line-height:1.2}.task-data-dialog-backdrop{z-index:70;padding:calc(var(--topbar-active-height,46px) + 56px) 16px 24px;pointer-events:auto;background:#0000002e;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow:auto}.task-data-dialog{box-sizing:border-box;width:min(620px,100vw - 32px);max-height:calc(100vh - var(--topbar-active-height,46px) - 44px);background:var(--panel-bg);color:var(--text);border:1px solid var(--text);box-shadow:var(--shadow-panel);padding:12px;overflow:auto;transform:none}.task-data-dialog-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.task-data-dialog-header h3{text-transform:uppercase;letter-spacing:1px;margin:0;font-size:.86rem}.task-data-dialog-body{flex-direction:column;gap:10px;display:flex}.task-data-dialog-section{border:1px solid var(--border);background:var(--panel-bg);padding:9px}.task-data-dialog-section[hidden]{display:none!important}.task-data-dialog-section-title{color:var(--text);margin:0 0 6px;font-size:.76rem;font-weight:700}.task-data-dialog-grid{grid-template-columns:130px minmax(0,1fr);align-items:center;gap:7px 8px;display:grid}.task-data-dialog-grid label{color:var(--text-dim);font-size:.73rem}.task-data-dialog-grid input[type=file],.task-data-dialog-grid select{width:100%;min-width:0}.task-data-file-picker{align-items:center;gap:8px;min-width:0;display:flex}.task-data-file-picker[hidden]{display:none!important}.task-data-file-picker input[type=file]{flex:0 0 190px;width:190px;max-width:190px}.task-data-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);font-size:.72rem;overflow:hidden}.radio-label.is-disabled,.checkbox-label.is-disabled{opacity:.45;cursor:not-allowed}.radio-label.is-disabled input,.checkbox-label.is-disabled input{cursor:not-allowed}.task-data-dialog-actions{justify-content:flex-end;gap:7px;margin-top:8px;display:flex}.task-data-dialog-message{min-height:18px;color:var(--text-dim);margin-top:8px;font-size:.74rem;line-height:1.35}.task-data-dialog-message[data-type=error]{color:var(--danger)}.task-data-dialog-message[data-type=success]{color:var(--accent)}.material-scalar-control.is-hidden,.material-map-note.is-hidden{display:none}.material-map-note{color:var(--text-dim);margin-top:7px;font-size:.68rem;line-height:1.3}.inspect-texture-card{gap:5px;min-width:0;max-width:100%;margin-bottom:8px;display:grid;overflow:hidden}.inspect-texture-card:last-child{margin-bottom:0}.inspect-texture-thumb{object-fit:contain;border:1px solid var(--border);background:var(--bg-soft);border-radius:0;width:100%;max-width:100%;max-height:120px;display:block}.inspect-texture-meta{justify-content:space-between;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.inspect-texture-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:100%;overflow:hidden}.inspect-texture-meta .btn{flex:none}.material-light-controls.is-hidden,.material-property.is-hidden{display:none}.material-light-controls{margin-bottom:8px}.env-bg-controls.is-hidden{display:none}.env-bg-controls{border:1px solid var(--border);background:var(--panel-bg);border-radius:0;margin-top:8px;padding:8px}.viz-panel-section{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:6px}.viz-section-header{font-family:var(--font-family);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 0 6px;font-size:.9rem;font-weight:700;display:flex}.viz-section-header:hover{color:var(--accent)}.viz-section-arrow{justify-content:center;width:1em;transition:transform .15s;display:inline-flex}.viz-panel-section.is-collapsed .viz-section-arrow{transform:rotate(-90deg)}.viz-panel-section.is-collapsed .viz-section-body{display:none}.material-smooth-row{margin-bottom:8px}[data-visible-modes].is-hidden{display:none!important}.btn:active{box-shadow:var(--shadow-button-active);transform:translate(1px,1px)}button,input,select,textarea,optgroup,option{font-family:var(--font-family)}input[type=file]{color:#0000}input[type=file]::file-selector-button{background:var(--panel-bg);border:1px solid var(--text);color:var(--text);font-family:var(--font-family);cursor:pointer}[data-theme=dark] input[type=file]::file-selector-button{color:var(--text);border-color:var(--border);background:#29231e}input[type=file]::file-selector-button:hover{background:var(--hover)}.task-heading{justify-content:space-between;align-items:center;gap:.6rem;margin:0 0 .35rem;display:flex;overflow:visible}.task-heading h3{margin:0}.task-help,.section-help{width:auto;min-width:0;height:auto;color:var(--text-dim);font:inherit;box-shadow:none;cursor:help;-webkit-user-select:none;user-select:none;opacity:.62;background:0 0;border:none;border-radius:0;flex:none;padding:0;font-weight:700;line-height:1;display:inline;position:relative}.task-help:hover,.task-help:focus-visible,.section-help:hover,.section-help:focus-visible{color:var(--text);opacity:1;outline:none}.section-title-with-help{justify-content:space-between;align-items:center;gap:.5rem;display:flex;overflow:visible}.task-help:after,.section-help:after{content:attr(data-tip);z-index:999999;border:1px solid var(--text);width:min(18rem,100vw - 310px - 1rem);max-height:calc(100vh - 5.2rem);color:var(--text);box-shadow:var(--shadow-panel);text-align:left;white-space:normal;overflow-wrap:anywhere;text-transform:none;letter-spacing:normal;opacity:1;background:#e8dcc1;padding:.65rem .75rem;font-size:.73rem;font-weight:400;line-height:1.35;display:none;position:fixed;top:4.2rem;left:292px;overflow:auto}[data-theme=dark] .task-help:after,[data-theme=dark] .section-help:after{color:var(--text);background:#2f2922}.task-help:hover:after,.task-help:focus-visible:after,.section-help:hover:after,.section-help:focus-visible:after{display:block}.btn-icon{min-width:1.8rem;padding-left:.35rem;padding-right:.35rem;line-height:1}.inspect-texture-meta{grid-template-columns:minmax(0,1fr) auto;display:grid}.inspect-texture-name{overflow-wrap:anywhere;word-break:break-word;white-space:normal;min-width:0;max-width:100%;display:block}.range-row input[type=range]{min-width:0}.range-row .range-val{flex:none}.mesh-rigid-slider-label{color:var(--text-dim);margin:7px 0 3px;font-size:.73rem;display:block}#recenter-cursor-indicator{z-index:60;pointer-events:none;opacity:0;border:1px solid var(--accent);width:18px;height:18px;box-shadow:0 0 0 1px #00000059, 0 0 12px var(--accent-dim);border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.85)}#recenter-cursor-indicator:before,#recenter-cursor-indicator:after{content:"";background:var(--accent);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#recenter-cursor-indicator:before{width:2px;height:22px}#recenter-cursor-indicator:after{width:22px;height:2px}#recenter-cursor-indicator.is-visible{animation:.52s ease-out forwards recenter-cursor-pop}@keyframes recenter-cursor-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}18%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.45)}}.landmark-list{max-height:340px}.landmark-row{grid-template-columns:auto auto minmax(90px,1fr) auto auto;align-items:center;gap:6px;display:grid}.landmark-row.selected{outline:1px solid var(--accent);background:var(--accent-dim)}.landmark-row.dragging{opacity:.45}.landmark-row.drag-over{box-shadow:inset 0 2px 0 var(--accent)}.landmark-row .drag-handle{color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;font-size:.78rem}.landmark-row .drag-handle:active{cursor:grabbing}.landmark-name{background:var(--panel-bg-focus);width:100%;min-width:0;color:var(--text);border:1px solid #0000;border-radius:0;padding:3px 5px;font-size:.73rem}.landmark-name:focus{border-color:var(--accent);background:var(--panel-bg-focus);outline:none}.snap-badge,.keycap{border:1px solid var(--border);min-width:18px;height:18px;color:var(--text-dim);background:var(--panel-bg-focus);font-family:var(--font-family);border-radius:0;justify-content:center;align-items:center;font-size:.65rem;line-height:1;display:inline-flex}.keycap{min-width:20px;height:20px;margin-left:auto}.landmark-option-group{border:1px solid var(--border);background:var(--panel-bg-focus);border-radius:0;padding:6px 8px}.landmark-option-group .radio-label{justify-content:space-between;gap:8px}button:disabled.btn{opacity:.45;cursor:not-allowed}.landmark-export-hint{margin-top:6px}.landmark-file-input{display:none}.landmark-io-row{margin-top:6px}.landmark-symmetry-actions{margin-bottom:8px}.landmark-cursor-indicator{z-index:60;pointer-events:none;-webkit-user-select:none;user-select:none;border:1px solid var(--border);background:color-mix(in srgb, var(--panel-bg) 90%, transparent);min-height:18px;color:var(--text);font-family:var(--font-family);white-space:nowrap;border-radius:0;align-items:center;gap:4px;padding:3px 7px;font-size:.68rem;line-height:1;display:inline-flex;position:absolute;top:0;left:0;box-shadow:0 4px 12px #00000040}.landmark-cursor-indicator.is-hidden{display:none}.landmark-cursor-indicator.is-alt{border-color:var(--accent)}.landmark-cursor-indicator.is-shift{border-color:var(--accent);background:color-mix(in srgb, var(--accent-dim) 55%, var(--panel-bg))}.landmark-cursor-indicator.is-ctrl{border-color:var(--gold);background:color-mix(in srgb, var(--gold-dim) 55%, var(--panel-bg))}.landmark-cursor-indicator .cursor-plus{color:var(--accent);font-size:.9rem;font-weight:800}.landmark-cursor-indicator .cursor-minus{color:var(--danger);font-size:.9rem;font-weight:800}.landmark-cursor-indicator .cursor-separator{color:var(--text-dim)}.landmark-cursor-indicator .cursor-icon{text-transform:uppercase;letter-spacing:.02em;font-weight:700}.mesh-mask-cursor-indicator{z-index:60;pointer-events:none;-webkit-user-select:none;user-select:none;border:2px solid var(--accent);background:color-mix(in srgb, var(--accent-dim) 28%, transparent);box-shadow:0 0 0 1px #00000059, 0 0 12px var(--accent-dim);box-sizing:border-box;border-radius:999px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.mesh-mask-cursor-indicator.is-hidden{display:none}.mesh-mask-cursor-indicator.is-remove{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.mesh-mask-cursor-indicator.is-component{background:color-mix(in srgb, var(--panel-bg) 92%, transparent);min-width:96px;color:var(--text);font-family:var(--font-family);white-space:nowrap;border-width:1px;border-radius:0;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 8px;font-size:.68rem;line-height:1.15;display:inline-flex;box-shadow:0 4px 12px #00000040}.mesh-mask-cursor-indicator.is-component span{color:var(--accent);font-weight:700}.mesh-mask-cursor-indicator.is-component small{color:var(--text-dim);font-size:.62rem}.mesh-mask-option-group{border:1px solid var(--border);background:var(--panel-bg);border-radius:0;padding:8px}.mesh-mask-stat{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:.76rem;display:flex}.mesh-mask-stat:last-child{border-bottom:none}.mesh-mask-stat span:last-child{color:var(--text-dim);font-family:var(--font-family);text-align:right}.mesh-mask-file-input{display:none}.mesh-mask-io-row{margin-top:6px}.mesh-symmetry-group{gap:7px;display:grid}.mesh-symmetry-group .hint{min-height:1.2em}.mesh-mask-list{max-height:240px;margin-top:6px;overflow:hidden auto}.mesh-mask-combine{border:1px solid var(--border);background:var(--panel-bg);gap:6px;padding:8px;display:grid}.mesh-mask-combine-expression{color:var(--text-dim);grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;font-size:.74rem;display:grid}.mesh-mask-combine-expression label{color:var(--text);font-weight:700}.mesh-mask-combine-expression select{width:100%;min-width:0;padding:4px 6px;font-size:.74rem}.mesh-mask-operator-symbol{font-size:1.15em;line-height:0;display:inline-block}.mesh-mask-operator-symbol.is-intersection{transform:scale(1.15)}.mesh-mask-row{border-bottom:1px solid var(--border);box-sizing:border-box;border-radius:0;grid-template-columns:auto auto minmax(0,1fr) minmax(0,auto) auto;align-items:center;gap:6px;width:100%;min-width:0;padding:4px 6px;font-size:.76rem;transition:background .1s;display:grid}.mesh-mask-row:hover{background:var(--hover)}.mesh-mask-row.selected{outline:1px solid var(--accent);background:var(--accent-dim)}.mesh-mask-row.dragging{opacity:.45}.mesh-mask-row.drag-over{box-shadow:inset 0 2px 0 var(--accent)}.mesh-mask-row .drag-handle{color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;font-size:.78rem}.mesh-mask-row .drag-handle:active{cursor:grabbing}.mesh-mask-row .idx{min-width:28px;font-weight:600}.mesh-mask-name{background:var(--panel-bg);width:100%;min-width:0;color:var(--text);border:1px solid #0000;border-radius:0;padding:3px 5px;font-size:.73rem}.mesh-mask-name:focus{border-color:var(--accent);background:var(--panel-bg);outline:none}.mesh-mask-row-count{min-width:0;max-width:68px;color:var(--text-dim);font-family:var(--font-family);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;overflow:hidden}.btn-mask-delete{color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:0;padding:2px 5px;font-size:.82rem}.btn-mask-delete:hover{background:var(--border)}.mesh-seg-region-list{max-height:280px}.mesh-seg-region-row{grid-template-columns:auto auto auto minmax(0,1fr) minmax(0,auto) auto}.mesh-seg-region-color{cursor:pointer;background:0 0;border:none;width:28px;height:24px;padding:0}.mesh-seg-region-name{min-width:0}.mesh-seg-cursor-indicator{border-color:var(--gold);background:color-mix(in srgb, var(--gold-dim) 35%, transparent);box-shadow:0 0 0 1px #00000059, 0 0 12px var(--gold-dim)}.mesh-seg-cursor-indicator.is-remove{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.mesh-seg-cursor-indicator.is-component span{color:var(--gold)}.mesh-rigid-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.mesh-rigid-load-group{border:1px solid var(--border);background:var(--important-load-bg);border-radius:0;gap:5px;min-width:0;margin-bottom:10px;padding:8px;display:grid}.mesh-rigid-load-row{grid-template-columns:minmax(82px,110px) minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.mesh-rigid-load-row .btn{white-space:nowrap;width:100%;min-width:0}.mesh-rigid-load-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);font-size:.75rem;overflow:hidden}.mesh-rigid-view-buttons .btn.active,.mesh-rigid-mode-buttons .btn.active{border-color:var(--accent);background:var(--accent-dim)}.mesh-rigid-shortcut-hint{margin-top:6px}.mesh-rigid-option-group{border:1px solid var(--border);background:var(--panel-bg);border-radius:0;padding:8px}.mesh-rigid-interaction-group{gap:8px;min-width:0;display:grid;overflow:hidden}.mesh-rigid-mode-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mesh-rigid-mode-buttons .btn{width:100%;min-width:0;padding-left:6px;padding-right:6px}.mesh-rigid-interaction-title{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;font-size:.68rem;font-weight:700}.mesh-rigid-snap-options{border:1px solid var(--border);background:var(--panel-bg-focus);border-radius:0;min-width:0;padding:6px 8px}.mesh-rigid-snap-options .radio-label{justify-content:space-between;gap:8px;min-width:0}.mesh-rigid-snap-options .keycap{border:1px solid var(--border);min-width:20px;height:20px;color:var(--text-dim);background:var(--panel-bg-focus);font-family:var(--font-family);border-radius:0;justify-content:center;align-items:center;margin-left:auto;font-size:.65rem;line-height:1;display:inline-flex}.mesh-rigid-stat{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:.76rem;display:flex}.mesh-rigid-stat:last-child{border-bottom:none}.mesh-rigid-stat span:last-child{color:var(--text-dim);font-family:var(--font-family);text-align:right}.mesh-rigid-file-input{display:none}.mesh-rigid-cursor-indicator{z-index:70;pointer-events:none;-webkit-user-select:none;user-select:none;border:2px solid var(--accent);background:color-mix(in srgb, var(--accent-dim) 28%, transparent);box-shadow:0 0 0 1px #00000059, 0 0 12px var(--accent-dim);box-sizing:border-box;border-radius:999px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.mesh-rigid-cursor-indicator.is-hidden{display:none}.mesh-rigid-landmark-list{max-height:220px;margin-top:6px;overflow-y:auto}.mesh-rigid-badge{border:1px solid var(--border);min-width:24px;height:20px;color:var(--text-dim);background:var(--panel-bg);font-family:var(--font-family);border-radius:0;justify-content:center;align-items:center;font-size:.65rem;line-height:1;display:inline-flex}.mesh-rigid-badge.ready{color:var(--accent);border-color:var(--accent)}.mesh-rigid-result{background:var(--accent-dim);color:var(--text-dim);border-radius:0;margin-top:7px;padding:7px 8px;font-size:.72rem;line-height:1.35}.mesh-rigid-cursor-indicator.is-component{border-color:var(--gold);background:color-mix(in srgb, var(--gold-dim) 38%, transparent)}.mesh-rigid-compact-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0;display:grid}.mesh-rigid-compact-actions .btn{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-left:6px;padding-right:6px;overflow:hidden}.mesh-rigid-landmark-list.is-imbalanced{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, transparent);border-radius:0}.mesh-rigid-landmark-table{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px;display:grid}.mesh-rigid-landmark-head{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;padding:3px 5px;font-size:.68rem;font-weight:700}.mesh-rigid-landmark-row{display:contents}.mesh-rigid-landmark-cell{border:1px solid var(--border);background:var(--panel-bg);border-radius:0;align-items:center;gap:5px;min-width:0;padding:4px 5px;font-size:.72rem;display:flex}.mesh-rigid-landmark-cell.selected{outline:1px solid var(--accent);background:var(--accent-dim)}.mesh-rigid-landmark-cell.missing{color:var(--text-dim);background:color-mix(in srgb, var(--surface) 72%, transparent)}.mesh-rigid-landmark-row.incomplete .mesh-rigid-landmark-cell{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.mesh-rigid-landmark-placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mesh-rigid-option-group,.mesh-rigid-result,.mesh-rigid-grid>*{min-width:0}.mesh-rigid-option-group .range-row,.mesh-rigid-result .range-row,.mesh-rigid-option-group input[type=range],.mesh-rigid-result input[type=range]{min-width:0;max-width:100%}.mesh-rigid-option-group .range-val,.mesh-rigid-result .range-val{max-width:48px}
