:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e4e4e4;font-synthesis:none;--panel:#212121;--line:#ffffff0c;--muted:#a5a5a5;--active:#303030;--pen:#ffb02e;--strip:#b17aff;--patch:#ff7961;--select:#8bd345;background:#181818;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 10px;display:inline-flex}button:hover:not(:disabled){background:var(--active)}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true]{background:var(--active)}button:focus-visible,summary:focus-visible,input:focus-visible,a:focus-visible{outline-offset:3px;outline:2px solid #b48aff}svg{flex:none;width:18px;height:18px}[hidden]{display:none!important}#app{flex-direction:column;height:100dvh;min-height:560px;display:flex}.app-header{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:18px;height:58px;padding:10px 20px;display:flex}.brand{color:#e4e4e4;letter-spacing:-1px;flex-shrink:0;align-items:center;font-size:23px;font-weight:600;text-decoration:none;display:flex}.brand-mark{flex:none;width:32px;height:32px;margin-right:8px}.brand span{color:#d0d0d0}.model-menu-button{color:var(--muted);border-left:1px solid var(--line);min-width:0;padding-left:18px}#file-name{text-overflow:ellipsis;max-width:min(38vw,340px);overflow:hidden}.header-actions{gap:4px;margin-left:auto;display:flex}.icon-button{padding:8px}.workspace{flex:1;min-height:0;display:flex}.viewport-shell{background:radial-gradient(at 48% 42%,#2c2c2c,#181818 72%);flex:1;min-width:0;position:relative;overflow:hidden}#viewport{position:absolute;inset:0}#viewport canvas{touch-action:none;width:100%;height:100%;display:block}.floating-pane{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px #00000018}.tool-switcher{flex-direction:column;gap:3px;padding:5px;display:flex;position:absolute;top:16px;left:14px}.tool-switcher button{flex-direction:column;gap:5px;min-width:54px;min-height:56px;padding:8px 5px;font-size:11px;position:relative}.tool-switcher kbd{color:var(--muted);pointer-events:none;font-family:inherit;font-size:10px;line-height:1;position:absolute;top:4px;right:4px}.tool-switcher svg{width:20px;height:20px}[data-tool=pen] svg{color:var(--pen)}#make-face-button svg{color:#49adff}[data-tool=select] svg{color:var(--select)}[data-tool=strip] svg{color:var(--strip)}[data-tool=patch] svg{color:var(--patch)}.viewport-top{pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;display:grid;position:absolute;top:16px;left:16px;right:16px}.view-label{color:var(--muted);margin-left:78px;padding:8px 0;font-size:12px}.view-actions{pointer-events:auto;justify-self:end;gap:6px;display:flex}.view-controls{pointer-events:auto;align-items:center;gap:3px;padding:3px;display:flex}.display-modes{border-left:1px solid var(--line);gap:2px;padding-left:4px;display:flex}#view-button svg:last-child{width:12px}.display-modes label{cursor:pointer;border-radius:5px;align-items:center;gap:6px;padding:7px 8px;font-size:12px;display:flex}.display-modes label:has(:checked){background:var(--active)}.display-modes label:has(:disabled){opacity:.4;cursor:default}.display-modes label:hover:not(:has(:disabled)){background:var(--active)}.display-modes input{accent-color:#b17aff;width:12px;height:12px;cursor:inherit;margin:0}#view-panel{top:126px;left:50%;right:auto;transform:translate(-50%)}.model-controls{border:0;margin:0;padding:0;display:contents}.tool-context{pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:24px;left:94px;right:24px}.tool-panel{pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:100%;padding:8px 12px;display:flex}#pen-panel{--tool-color:var(--pen)}#strip-panel{--tool-color:var(--strip)}#patch-panel{--tool-color:var(--patch)}#selection-panel{--tool-color:var(--select)}.tool-title{color:var(--tool-color);white-space:nowrap;font-weight:500}.tool-primary,.tool-primary:hover:not(:disabled){background:var(--tool-color);color:#181818;font-weight:500}.tool-primary:disabled{opacity:.6}.tool-primary kbd{background:#00000012;border-radius:3px;padding:2px 4px;font-family:inherit;font-size:10px;line-height:1.2}.creation-hint{color:var(--tool-color);align-items:center;gap:8px;font-size:12px;display:inline-flex}.gesture-hint{background:var(--active);color:var(--muted);border-radius:3px;padding:3px 5px;font-size:10px}.tool-status{text-align:center;color:var(--muted);flex-basis:100%;font-size:12px}#pen-status{color:var(--muted);white-space:nowrap}.inline-field{align-items:center;gap:7px;display:inline-flex}input[type=number]{appearance:textfield;background:#181818;border:1px solid #ffffff12;border-radius:5px;width:86px;min-width:0;padding:6px 7px}input[type=number]:not(:disabled):not([readonly]){cursor:ew-resize}input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}html[data-number-scrubbing],html[data-number-scrubbing] *{cursor:ew-resize!important;-webkit-user-select:none!important;user-select:none!important}.inline-field input{width:60px}#strip-spacing{color:var(--strip)}input[type=checkbox]{accent-color:#b48aff;flex:none;width:15px;height:15px}.mirror-badge{color:var(--muted);pointer-events:none;font-size:11px;position:absolute;bottom:100px;right:20px}.status-bar{border-top:1px solid var(--line);background:var(--panel);flex:none;align-items:center;gap:10px;min-height:42px;padding:5px 14px;display:flex}.viewport-hints{color:var(--muted);flex:1;font-size:12px}.mesh-stats-button{font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.mesh-stats-button svg{width:14px;transform:rotate(180deg)}.mesh-stats-button strong{font-weight:500}.muted,.microcopy{color:var(--muted)}.workspace-popover{background:var(--panel);color:#e4e4e4;border:1px solid var(--line);border-radius:9px;width:296px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 130px);margin:0;padding:18px;position:fixed;inset:108px 16px auto auto;overflow:auto;box-shadow:0 12px 36px #00000040}.auto-panel{z-index:20;max-height:calc(100dvh - 185px);position:fixed;inset:130px 286px auto auto;overflow-y:auto}.layers-panel{z-index:19;width:250px;max-height:calc(100dvh - 200px);padding:14px;inset:108px 18px auto auto}.layers-panel fieldset{border:0;min-width:0;margin:0;padding:0}.layer-list{gap:5px;max-height:35dvh;margin:12px 0;display:grid;overflow-y:auto}.layer-row{border:1px solid var(--line);border-radius:6px;align-items:center;gap:8px;min-width:0;padding:3px 7px;display:flex}.layer-row:has([aria-pressed=true]){background:#aa88ee16;border-color:#a58aea}.layer-select{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1 1 0;display:block}.layer-select strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.layer-row input[type=checkbox]{accent-color:#a58aea;flex:none}.layer-rename{border:1px solid var(--line);width:0;min-width:0;color:inherit;background:#181818;border-radius:5px;flex:1 1 0;padding:5px}.layer-delete{flex:none;width:26px;height:28px}#add-layer-button{margin-top:8px}#layer-status:empty{display:none}.layers-help{inset:108px 280px auto auto}@media (width>=761px){#symmetry-panel,#view-panel{right:286px}}@media (width<=760px){.layers-help{max-width:calc(100vw - 20px);inset:170px 10px auto auto}.layers-panel{width:200px;max-height:42dvh;top:170px;right:10px}.auto-panel{inset:170px 10px auto auto}}.auto-panel fieldset{border:0;min-width:0;margin:0;padding:0}.auto-panel progress{accent-color:#a58aea;width:100%;margin-top:16px}.workspace-popover::backdrop{background:0 0}.popover-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.popover-heading h2{margin:0;font-size:14px;font-weight:500}.popover-heading .icon-button{padding:3px}.model-menu{inset:54px auto auto 124px}.export-panel{top:54px}.bottom-popover{top:auto;bottom:48px}.help-panel{width:365px;left:14px;right:auto}.control-label{margin:14px 0 8px;display:block}.segmented{border:1px solid var(--line);background:#181818;border-radius:6px;gap:2px;padding:3px;display:flex}.segmented button{flex:1;padding:6px 8px;font-size:12px}#axis-buttons [data-axis=x]{--axis-color:#ff625e}#axis-buttons [data-axis=y]{--axis-color:#8bd345}#axis-buttons [data-axis=z]{--axis-color:#49adff}#axis-buttons button:not([data-axis=none]){color:var(--axis-color)}#axis-buttons button:not([data-axis=none])[aria-pressed=true]{background:color-mix(in srgb, var(--axis-color) 18%, #181818);border-color:color-mix(in srgb, var(--axis-color) 30%, transparent)}#axis-buttons button:not([data-axis=none]):hover:not(:disabled){background:color-mix(in srgb, var(--axis-color) 24%, #181818)}.check-row,.stat-row{justify-content:space-between;align-items:center;gap:12px;margin:14px 0;display:flex}.stat-row{font-variant-numeric:tabular-nums}.color-presets{flex-wrap:wrap;gap:6px;margin:-4px 0 18px;display:flex}.color-swatch{border:1px solid #ffffff20;width:32px;height:32px;padding:5px}.color-swatch:before{content:"";background:var(--swatch-color);border-radius:3px;width:20px;height:20px;box-shadow:inset 0 0 0 1px #ffffff30}.color-swatch[aria-pressed=true]{border-color:#e4e4e4}#overlay-wireframe-color{background:var(--panel);cursor:pointer;border:1px solid #ffffff30;border-radius:5px;width:36px;height:28px;padding:2px}.opacity-slider{width:100%;accent-color:var(--strip);cursor:pointer;margin:-4px 0 18px;display:block}#overlay-wireframe-opacity-value{color:var(--muted);font-variant-numeric:tabular-nums}.stat-row strong{font-weight:500}.menu-actions{flex-direction:column;gap:4px;display:flex}.menu-actions button{white-space:normal;text-align:left;justify-content:flex-start}.full-width{width:100%}.microcopy{font-size:12px;line-height:1.6}details{margin:14px 0 0}summary{cursor:pointer;color:var(--muted)}details p{font-size:12px;line-height:1.6}hr{border:0;border-top:1px solid var(--line);margin:16px 0}.mesh-legend{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin-top:14px;font-size:11px;display:flex}.negative-side{color:#54dcc5}.positive-side{color:#c3abff}.seam-side{color:#ffd098}.shortcuts{grid-template-columns:1fr auto;gap:10px 14px;font-size:12px;display:grid}.shortcuts dd{color:var(--muted);text-align:right;margin:0}.empty-state{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:90px 100px 40px}.empty-state button{pointer-events:auto}.upload-area{background:radial-gradient(at top,#ffb02e14,#0000 65%),linear-gradient(145deg,#28232f,#211f25);border:2px dashed #b17aff70;border-radius:10px;flex-direction:column;align-items:center;gap:16px;width:min(440px,100%);padding:40px 20px;display:flex;box-shadow:0 16px 48px #00000024}.upload-icon{color:var(--pen);background:#ffb02e14;border-radius:14px;padding:12px;display:flex}.upload-icon svg{width:32px;height:32px}.empty-state h1{letter-spacing:-.6px;margin:0;font-size:27px;font-weight:500}.empty-state p,.empty-state small{color:var(--muted);margin:0}.primary{background:#393939}.upload-area .primary{background:var(--pen);color:#241a0a;font-weight:600}.upload-area .primary:hover:not(:disabled){background:#ffc25c}.upload-area .text-button{color:#c9a3ff}.upload-area .text-button:hover:not(:disabled){background:#b17aff18}.empty-state small{margin-top:8px;font-size:12px}.drop-overlay{pointer-events:none;z-index:5;background:#212121ed;border:1px dashed #8c8c8c;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:12px}.drop-overlay strong{font-size:24px;font-weight:500}.loading{z-index:6;background:#181818da;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.spinner{border:2px solid #444;border-top-color:#ccc;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fly-crosshair{color:#eee;pointer-events:none;font-size:18px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.notice{z-index:10;color:#efcf94;background:#302b22;border:1px solid #b08c4540;border-radius:8px;align-items:flex-start;gap:14px;max-width:min(560px,100vw - 40px);padding:12px 15px;line-height:1.6;display:flex;position:fixed;bottom:55px;left:20px;box-shadow:0 8px 30px #0003}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.unsupported{max-width:560px;margin:15vh auto;padding:30px;line-height:1.7}#app[data-editing=true] .viewport-hints{display:none}#app[data-editing=true] #status-message{clip-path:none;white-space:normal;width:auto;height:auto;color:var(--muted);flex:1;margin:0;font-size:12px;position:static}@media (width<=760px){.app-header{gap:10px;padding:9px 12px}.brand{font-size:21px}.model-menu-button{padding-left:10px}#file-name{max-width:26vw}.tool-switcher{left:9px}.tool-switcher button{min-width:42px}.view-label,.viewport-hints{display:none}.viewport-hints:has(#fly-hint:not([hidden])){display:block}.viewport-top{grid-template-columns:1fr;gap:8px;left:75px;right:10px}.view-controls{grid-row:2;justify-self:center;max-width:100%}#view-button{gap:2px;padding:6px 4px}#view-button span{display:none}.display-modes{grid-template-columns:repeat(2,auto);gap:0;padding-left:2px;display:grid}.display-modes label{gap:4px;padding:7px 4px;font-size:11px}#view-panel{max-height:calc(100dvh - 190px);top:170px}.view-actions{gap:4px}.view-actions button{gap:5px;padding:7px;font-size:12px}.tool-context{bottom:15px;left:75px;right:12px}.tool-panel{gap:7px;padding:8px}.tool-panel .inline-field{font-size:12px}.mirror-badge{display:none}.empty-state{inset:95px 20px 50px 75px}.empty-state h1{font-size:23px}.model-menu{left:12px}.status-bar{gap:4px;padding:5px 10px}.shortcuts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=400px){.app-header{gap:4px}.header-actions{gap:0}.model-menu-button{gap:4px;padding-right:4px}.view-actions button{gap:4px}.view-actions svg{width:15px}#symmetry-label{text-overflow:ellipsis;max-width:85px;overflow:hidden}}@media (pointer:coarse){button,.display-modes label{min-height:44px}input[type=number]{font-size:16px}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
