@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color-scheme:dark;--backdrop: #0d0d0c;--ink: #171716;--stage: #1c1c1b;--chip: #1f1f1e;--surface: #222220;--panel: #292927;--card: #30302e;--raised: #373734;--line: #41413d;--line-bright: #55554f;--control-height: 32px;--control-width: clamp(260px, 32vw, 410px);--topbar-gap: clamp(6px, 1.2vw, 17px);--faint: #77776e;--muted: #97978e;--paper-dim: #b9b9af;--paper-soft: #d7d3c8;--paper: #f3f0e6;--accent: #8b5cf6;--accent-hover: color-mix(in srgb, var(--accent) 88%, white);--on-accent: #fff;--pattern-dot: #ddd;--pattern-dot-soft: #bbb;--pattern-dot-mid: #aaa;--pattern-dot-dim: #888;font-family:Manrope,system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable]{user-select:text;-webkit-user-select:text}html{background:var(--ink)}html,body,#app{height:100%;margin:0}body{overflow:hidden}body{background:var(--ink);color:var(--paper)}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button{border:0;color:inherit}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) var(--control-width);height:100%;min-width:0}.main-column{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;min-width:0;overflow:hidden}.topbar{align-items:center;background:color-mix(in srgb,var(--ink) 96%,transparent);display:flex;container-type:inline-size;gap:var(--topbar-gap);min-height:72px;min-width:0;overflow:hidden;padding:0 clamp(16px,2.4vw,28px);backdrop-filter:blur(12px)}.brand{align-items:center;color:var(--paper);display:flex;font-size:18px;font-weight:800;gap:12px;letter-spacing:-.04em;text-decoration:none;width:fit-content}.brand>span:nth-child(2)>span{color:var(--accent)}.build-version{align-items:center;background:var(--card);color:var(--muted);display:inline-flex;font:500 8px DM Mono,monospace;height:var(--control-height);letter-spacing:.04em;padding:0 6px}.brand-mark{display:grid;grid-template-columns:repeat(2,7px);gap:2px;transform:rotate(45deg)}.brand-mark i{background:var(--paper);display:block;height:7px}.brand-mark i:last-child{background:var(--accent)}.button{align-items:center;border:0;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:14px;justify-content:center;padding:12px 17px}.button,.orient-sun-button{background:var(--raised)}.button-quiet{background:transparent;color:var(--muted);justify-self:end;padding-right:0}.button-quiet:hover{color:var(--paper)}.topbar-actions{align-items:center;display:flex;gap:var(--topbar-gap);margin-left:auto;min-width:0}.topbar-actions .button{height:var(--control-height);padding:0 var(--topbar-gap)}.brand-group{align-items:center;display:flex;gap:var(--topbar-gap);min-width:0}.brand-group .build-version{flex:none}.circle-link{align-items:center;background:var(--card);color:var(--muted);display:inline-flex;flex:0 1 auto;gap:8px;height:var(--control-height);justify-content:center;min-width:0;padding:0 12px;text-decoration:none;white-space:nowrap;transition:background-color .22s ease,color .22s ease}.circle-link svg{flex:none}.circle-link .circle-label{font-size:11px;font-weight:700;letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis}.circle-link:hover,.circle-link:focus-visible{background:var(--raised);color:var(--paper)}.circle-link:active{background:var(--chip)}.circle-kofi{color:var(--accent)}.circle-kofi:hover,.circle-kofi:focus-visible{color:var(--accent-hover)}.circle-kofi:active{color:var(--paper)}@container (max-width: 420px){.build-version{display:none}}.button:disabled{cursor:not-allowed;opacity:.35}.icon-button{align-items:center;background:var(--chip);color:var(--paper-soft);cursor:pointer;display:flex;justify-content:center;padding:0}.icon-button:hover,.icon-button:focus-visible{background:var(--accent);color:var(--on-accent)}.workspace{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden}.preview-column{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0;overflow:hidden}.preview-toolbar{align-items:center;display:flex;gap:24px;min-height:86px;min-width:0;overflow:hidden;padding:18px clamp(16px,2.4vw,28px)}.eyebrow{color:var(--accent);font-family:DM Mono,monospace;font-size:9px;font-weight:500;letter-spacing:.15em;margin:0 0 7px}.toolbar-actions{align-items:flex-end;display:flex;flex-direction:column;gap:6px;margin-left:auto}.value-pill{background:var(--card);color:var(--paper-dim);font-family:DM Mono,monospace;font-size:9px;letter-spacing:.08em;padding:9px 11px}.uv-control{align-items:center;display:flex;gap:6px}.uv-control span{color:var(--muted);font:500 8px DM Mono,monospace;text-transform:uppercase}.select{appearance:none;background:var(--card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 3L4 5.5 6.5 3' fill='none' stroke='%2397978e' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:none;color:var(--paper);font:500 9px DM Mono,monospace;outline:none;padding:7px 22px 7px 8px}.select:focus,.select:focus-visible{outline:none}.select::picker(select){border:none;outline:none}select option{background:var(--card);color:var(--paper)}.uv-overlap-control{align-items:center;display:flex;gap:6px}.uv-overlap-control>span:first-child{color:var(--muted);font:500 8px DM Mono,monospace;text-transform:uppercase}.sun-overlay{align-items:center;background:color-mix(in srgb,var(--ink) 90%,transparent);display:grid;justify-items:center;left:8px;padding:7px;position:absolute;top:8px;z-index:10}.sun-overlay[hidden]{display:none}.sun-overlay-heading{align-items:center;display:flex;justify-content:space-between;width:100%}.sun-overlay-heading>span{color:var(--paper);font:600 8px DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.uv-overlap-control.is-disabled{opacity:.45;pointer-events:none}.orient-sun-button{color:inherit;cursor:pointer;font:600 8px DM Mono,monospace;margin:7px 0 3px;padding:7px 8px;text-transform:uppercase;width:84px}.orient-sun-button:disabled{cursor:not-allowed;opacity:.35}.orientation-readout{display:grid;gap:4px;margin-top:7px;padding-top:7px;width:86px}.orientation-row{align-items:center;display:flex;font:500 8px DM Mono,monospace;justify-content:space-between}.orientation-label{color:var(--muted);font-size:6px;text-transform:uppercase}.orientation-row output{color:var(--paper);font-size:6.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle{align-items:center;cursor:pointer;display:flex;gap:6px}.toggle input{appearance:none;background:var(--raised);cursor:pointer;height:10px;margin:0;position:relative;transition:background .15s ease;width:18px}.toggle input:after{background:var(--paper-dim);content:"";height:6px;left:1px;position:absolute;top:1px;transition:left .15s ease,background .15s ease;width:6px}.toggle input:checked{background:var(--accent)}.toggle input:checked:after{background:var(--ink);left:10px}.toggle input:focus-visible{background:color-mix(in srgb,var(--accent) 55%,var(--raised))}.toggle input:disabled{cursor:not-allowed;opacity:.35}.light-controls{display:grid;gap:5px;margin-top:3px;padding-top:7px;width:84px}.light-group{display:grid;gap:4px}.light-heading{align-items:center;display:flex;justify-content:space-between}.light-heading output{color:var(--paper);font:500 8px DM Mono,monospace}.light-label{color:var(--paper);font:600 7px DM Mono,monospace;text-transform:uppercase}.light-heading-end{align-items:center;display:flex;gap:4px}.light-swatch{position:relative}.light-swatch .color-chip{display:block;height:18px;width:28px}.hidden-input{cursor:pointer;height:1px;opacity:0;position:absolute;width:1px}.color-chip{background:var(--swatch);cursor:pointer;display:block}.light-controls input:disabled{cursor:not-allowed;opacity:.35}.light-controls input:disabled+span{opacity:.35}.canvas-stage{align-items:center;background-color:var(--stage);background-image:linear-gradient(45deg,var(--chip) 25%,transparent 25%),linear-gradient(-45deg,var(--chip) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--chip) 75%),linear-gradient(-45deg,transparent 75%,var(--chip) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;display:flex;justify-content:center;min-height:0;overflow:hidden;padding:22px;position:relative}.comparison-grid{align-items:center;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));max-height:100%;max-width:100%;width:100%}.preview-pane{display:grid;gap:8px;margin:0;min-width:0}.preview-pane figcaption{align-items:center;color:var(--paper);display:flex;font:500 9px DM Mono,monospace;gap:7px;letter-spacing:.1em;text-transform:uppercase}.preview-pane figcaption span{color:var(--accent)}.preview-pane figcaption .fig-dims{color:var(--muted);margin-left:auto}.fig-zoom{background:transparent;border:0;color:var(--muted);cursor:pointer;font:700 9px DM Mono,monospace;letter-spacing:.06em;padding:0 2px}.fig-zoom[hidden]{display:none}.fig-zoom:hover,.fig-zoom:focus-visible{color:var(--paper)}.canvas-frame{align-items:center;background:var(--backdrop);cursor:grab;display:flex;justify-content:center;min-width:0;overflow:hidden;position:relative}.preview-pane canvas{cursor:grab;display:block;image-rendering:pixelated;max-height:clamp(240px,52vh,560px);max-width:100%;min-width:0;object-fit:contain;touch-action:none;width:100%}.preview-pane canvas:active{cursor:grabbing}.canvas-frame:active{cursor:grabbing}.preview-pane canvas[hidden],.model-host[hidden],.uv-control[hidden],.uv-overlap-control[hidden]{display:none}.preview-pane canvas.wireframe-overlay{cursor:default;height:100%;image-rendering:auto;inset:0;max-height:none;max-width:none;min-width:0;object-fit:none;pointer-events:none;position:absolute;touch-action:auto;width:100%;z-index:5}.model-host{height:clamp(280px,52vh,560px);min-height:0;width:100%}.model-canvas{cursor:grab;display:block;height:100%;width:100%}.model-canvas:active{cursor:grabbing}.preview-mode-toggle{align-items:center;background:color-mix(in srgb,var(--ink) 92%,transparent);display:flex;gap:2px;padding:3px;position:absolute;right:8px;top:8px;z-index:10}.preview-mode-toggle[hidden]{display:none}#uvOverlapControl,#uvWireframeControl,#repeatTextureControl,#processedUVOverlapControl,#processedUVWireframeControl,#processedRepeatTextureControl{background:color-mix(in srgb,var(--ink) 92%,transparent);padding:3px 6px;position:absolute;right:8px;z-index:10}#uvOverlapControl,#repeatTextureControl,#processedUVOverlapControl,#processedRepeatTextureControl{top:42px}#uvWireframeControl,#processedUVWireframeControl{top:62px}.preview-mode-toggle button{background:transparent;border:0;color:inherit;cursor:pointer;font:700 9px Manrope,system-ui,sans-serif;letter-spacing:.08em;padding:6px 12px}.preview-view-toggle{align-items:center;background:color-mix(in srgb,var(--ink) 92%,transparent);bottom:8px;display:flex;gap:clamp(1px,.15vw,2px);left:8px;padding:clamp(2px,.3vw,3px);position:absolute;z-index:10}.preview-view-toggle[hidden]{display:none}.preview-view-toggle button{background:transparent;border:0;color:inherit;cursor:pointer;font:700 clamp(6px,.72vw,8px) "DM Mono",monospace;letter-spacing:.06em;padding:clamp(3px,.5vw,5px) clamp(4px,.7vw,8px);text-transform:uppercase;white-space:nowrap}.preview-view-toggle button:disabled{cursor:not-allowed;opacity:.35}.world-axis-toggle{bottom:8px;left:auto;right:8px}#exportButton{background:color-mix(in srgb,var(--ink) 92%,transparent);bottom:8px;color:var(--paper);font:700 16px DM Mono,monospace;gap:12px;left:8px;letter-spacing:.06em;padding:10px 16px;position:absolute;text-transform:uppercase;z-index:10}#exportButton svg{height:20px;width:20px}#exportButton:hover,#exportButton:focus-visible{background:var(--paper);color:var(--ink)}.texel-density{background:color-mix(in srgb,var(--ink) 92%,transparent);cursor:default;display:grid;gap:2px;justify-items:start;left:8px;padding:6px 8px;position:absolute;top:8px;z-index:10}.texel-density[hidden]{display:none}.texel-density>span{color:var(--muted);font:500 8px DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.texel-density output{color:var(--paper);font:700 12px DM Mono,monospace}.ao-bake-overlay{align-items:center;background:color-mix(in srgb,var(--backdrop) 55%,transparent);display:flex;inset:0;justify-content:center;position:fixed;z-index:40}.ao-bake-overlay[hidden]{display:none}.ao-bake-card{background:var(--card);border:1px solid var(--line);box-shadow:0 12px 40px #00000080;min-width:300px;padding:20px 22px}.ao-bake-title{color:var(--paper);font:700 9px DM Mono,monospace;letter-spacing:.12em;margin:0 0 12px;text-transform:uppercase}.ao-bake-track{background:var(--ink);border:1px solid var(--line);height:8px;overflow:hidden}.ao-bake-fill{background:var(--accent);height:100%;transition:width .12s ease;width:0}.ao-bake-percent{color:var(--muted);font:500 9px DM Mono,monospace;margin:8px 0 0;text-align:right}.texture-ribbon{align-items:center;display:flex;gap:10px}.texture-slot{align-items:center;background:var(--stage);cursor:pointer;display:flex;flex-direction:column;gap:5px;height:66px;justify-content:center;min-width:82px;padding:6px 8px;position:relative}.texture-slot:hover,.palette-card-new:hover,.custom-color-add:hover{color:var(--paper)}.texture-slot:focus-visible{background:var(--raised)}.texture-slot.dragging:after{border:2px solid #fff;content:"";inset:0;pointer-events:none;position:absolute;z-index:5}body.drag-active:before{background:#0000008c;content:"";inset:0;pointer-events:none;position:fixed;z-index:30}body.drag-active .texture-ribbon{position:relative;z-index:31}.texture-slot[hidden]{display:none}.texture-slot-model{max-width:150px}.texture-slot-preview{align-items:center;display:flex;height:30px;justify-content:center;overflow:hidden;width:40px}.texture-slot-preview canvas{display:block;image-rendering:pixelated;height:100%;object-fit:cover;width:100%}.texture-slot-empty-mark{color:var(--paper);font:500 18px DM Mono,monospace;line-height:1}.texture-slot-label{color:var(--muted);font:500 8px DM Mono,monospace;letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.texture-slot.filled .texture-slot-label{color:var(--paper)}.texture-slot-download{height:16px;position:absolute;right:4px;top:4px;width:16px}.texture-slot-download svg{display:block}.texture-slot-clear{bottom:4px;display:none;font:500 10px DM Mono,monospace;height:16px;line-height:1;position:absolute;right:4px;width:16px}.texture-slot.filled .texture-slot-clear{display:flex}.texture-slot-bake{font:500 8px DM Mono,monospace;height:16px;left:4px;letter-spacing:.04em;padding:0 4px;position:absolute;top:4px}.texture-slot-format{display:flex;gap:1px;left:4px;position:absolute;top:4px}.texture-slot-format button{background:var(--card);border:0;color:var(--muted);cursor:pointer;font:700 8px DM Mono,monospace;height:16px;letter-spacing:.04em;padding:0 4px}.texture-slot-format button:hover,.texture-slot-format button.active{background:var(--paper);color:var(--ink)}.texture-slot-format button:disabled{cursor:not-allowed;opacity:.35}.texture-slot .icon-button{background:var(--card)}.texture-slot .icon-button:hover,.texture-slot .icon-button:focus-visible{background:var(--accent);color:var(--on-accent)}.texture-slot[data-texture].filled .texture-slot-preview{height:100%;inset:0;position:absolute;width:100%}.texture-slot[data-texture].filled .texture-slot-label{bottom:3px;left:6px;max-width:calc(100% - 30px);position:absolute;text-shadow:0 1px 2px rgba(0,0,0,.85);width:auto}.control-column{background:var(--surface);min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:var(--line) var(--surface)}.panel{min-width:0;padding:12px 25px}.panel h2{font-size:17px;letter-spacing:-.03em;margin:0}.panel-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:22px}.panel-heading.compact{margin-bottom:17px}.range{appearance:none;background:transparent;cursor:pointer;height:14px;margin:0;touch-action:pan-y;width:100%}.range::-webkit-slider-runnable-track{background:var(--line);height:2px}.range::-webkit-slider-thumb{appearance:none;background:var(--paper);border:0;height:14px;margin-top:-6px;width:8px}.range::-moz-range-track{background:var(--line);border:0;height:2px}.range::-moz-range-progress{background:var(--line);height:2px}.range::-moz-range-thumb{background:var(--paper);border:0;height:14px;width:8px}.range-labels{color:var(--faint);display:flex;font:400 8px DM Mono,monospace;justify-content:space-between;margin-top:5px}.resolution-presets{display:grid;gap:5px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.resolution-presets button{background:var(--card);color:var(--muted);cursor:pointer;font:500 10px DM Mono,monospace;padding:8px}.resolution-presets button.active,.resolution-presets button:hover{background:var(--paper);color:var(--ink)}.resolution-block{margin-bottom:18px}.catalog-count{color:var(--muted);font:500 8px DM Mono,monospace;letter-spacing:.06em}.palette-filters{display:flex;flex-wrap:wrap;gap:4px;margin:-5px 0 0}.palette-filters button{background:transparent;border:0;color:var(--muted);cursor:pointer;font:500 8px DM Mono,monospace;padding:6px 8px;text-transform:uppercase}.palette-filters button:hover,.palette-filters button.active,.preview-view-toggle button:not(:disabled):hover,.preview-view-toggle button.active,.preview-mode-toggle button:not(:disabled):hover,.preview-mode-toggle button.active{background:var(--paper);color:var(--ink)}.palette-grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-height:340px;overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto;padding-right:10px;scrollbar-color:var(--line-bright) var(--panel);scrollbar-gutter:stable}.palette-card{background:var(--card);color:var(--paper-dim);cursor:pointer;display:flex;flex-direction:column;font-size:10px;gap:7px;min-width:0;overflow:hidden;padding:9px;position:relative;text-align:left}.palette-card:hover{background:var(--raised)}.palette-card.active{background:color-mix(in srgb,var(--accent) 25%,var(--card));color:var(--paper)}.palette-card-new{align-items:center;background:var(--card);color:var(--muted);gap:5px;justify-content:center;min-height:58px;text-align:center}.palette-card-new-icon{font:500 20px DM Mono,monospace;line-height:1}.palette-card-new-label{font-size:9px}.palette-card-actions{display:flex;flex:0 0 auto;gap:3px}.palette-card-duplicate,.palette-card-export,.palette-card-delete{font:500 11px DM Mono,monospace;height:18px;line-height:1;width:18px}.palette-card-export svg{width:10px;height:10px}.palette-card-label{align-items:center;display:flex;gap:6px;min-width:0}.palette-card-label>span:first-child{margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-card-label b{background:var(--chip);color:var(--muted);flex:0 0 auto;font:500 8px DM Mono,monospace;padding:2px 4px}.palette-card-name{background:var(--raised);border:1px solid transparent;color:inherit;flex:1 1 auto;font:inherit;line-height:1.4;min-width:0;padding:2px 5px;width:100%}.palette-card-name:hover{border-color:var(--line-bright)}.palette-card-name:focus{border-color:var(--accent)}.mini-swatches{display:flex;height:13px;overflow:hidden;width:100%}.mini-swatches i{background:var(--swatch);flex:1 1 0;min-width:0}.palette-editor{border:0;margin:0;min-width:0;padding:0}.palette-editor:disabled{filter:grayscale(1);opacity:.45;pointer-events:none}.custom-colors{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.custom-color{height:31px;position:relative;width:31px}.custom-color label{cursor:pointer;display:block;height:25px;position:relative;width:25px}.custom-color .color-chip{height:100%;width:100%}.custom-color button{font-size:10px;height:15px;position:absolute;right:0;top:16px;width:15px;z-index:3}.color-picker{border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:grid;gap:10px;margin:0 0 14px;padding:14px 0}.color-picker-body{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 32px;height:140px}.color-picker-field{background:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,var(--field-hue, #f00));cursor:default;touch-action:none}.color-picker-side{display:flex;flex-direction:column;gap:6px;min-height:0}.color-picker-hue{background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:default;flex:1 1 auto;min-height:0;touch-action:none}.color-picker-button{align-items:center;background:var(--chip);border:1px solid var(--line);color:var(--paper-soft);cursor:pointer;display:flex;flex:0 0 32px;justify-content:center;padding:0}.color-picker-button:hover,.color-picker-button:focus-visible{border-color:var(--accent);color:var(--paper)}body.eyedropping,body.eyedropping *{cursor:var(--eyedropper-cursor, crosshair)!important}.custom-color.active label:after{box-shadow:0 0 0 1px #000,0 0 0 3px #fff;content:"";inset:0;pointer-events:none;position:absolute;z-index:2}.custom-color-add{align-items:center;background:var(--card);color:var(--muted);cursor:pointer;display:flex;font:500 15px DM Mono,monospace;height:25px;justify-content:center;line-height:1;padding:0;width:25px}.mode-grid{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.mode-button{align-items:center;background:var(--card);cursor:pointer;display:grid;gap:2px;grid-template-columns:24px minmax(0,1fr);padding:4px 6px;text-align:left}.mode-button:hover{background:var(--raised)}.mode-button.active{background:color-mix(in srgb,var(--accent) 22%,var(--card))}.mode-button strong{font-size:9px;font-weight:600}.pattern{background-color:var(--ink);height:17px;width:17px}.pattern-noise{background-image:radial-gradient(var(--paper) 30%,transparent 33%);background-position:0 0,3px 3px;background-size:5px 5px}.pattern-atkinson{background-image:radial-gradient(var(--pattern-dot-mid) 22%,transparent 25%);background-size:7px 7px}.pattern-grid{background-image:linear-gradient(45deg,var(--pattern-dot) 25%,transparent 25%,transparent 75%,var(--pattern-dot) 75%),linear-gradient(45deg,var(--pattern-dot) 25%,transparent 25%,transparent 75%,var(--pattern-dot) 75%);background-position:0 0,3px 3px;background-size:6px 6px}.pattern-cross{background-image:linear-gradient(90deg,transparent 35%,var(--pattern-dot) 35%,var(--pattern-dot) 65%,transparent 65%),linear-gradient(transparent 35%,var(--pattern-dot) 35%,var(--pattern-dot) 65%,transparent 65%);background-size:12px 12px}.pattern-stripes{background-image:repeating-linear-gradient(135deg,var(--pattern-dot) 0 2px,transparent 2px 6px)}.pattern-random{background-image:radial-gradient(circle at 10% 20%,var(--pattern-dot) 0 1px,transparent 2px),radial-gradient(circle at 75% 15%,var(--pattern-dot-dim) 0 1px,transparent 2px),radial-gradient(circle at 35% 70%,var(--pattern-dot) 0 1px,transparent 2px),radial-gradient(circle at 85% 80%,var(--pattern-dot-soft) 0 1px,transparent 2px);background-size:11px 13px,13px 9px,9px 11px,15px 15px}.pattern-checker{background-image:linear-gradient(45deg,var(--pattern-dot) 25%,transparent 25%,transparent 75%,var(--pattern-dot) 75%),linear-gradient(45deg,var(--pattern-dot) 25%,transparent 25%,transparent 75%,var(--pattern-dot) 75%);background-position:0 0,4px 4px;background-size:8px 8px}.pattern-halftone{background-image:radial-gradient(var(--pattern-dot) 26%,transparent 29%);background-position:0 0,3.5px 3.5px;background-size:7px 7px}.pattern-none{background:linear-gradient(135deg,var(--ink) 50%,var(--paper-soft) 50%)}.control-row{margin-top:15px}.control-row>label{align-items:end;display:flex;justify-content:space-between;margin-bottom:7px}.control-row strong,.control-row small{display:block}.control-row strong{font-size:10px}.control-row small{color:var(--muted);font-size:8px;margin-top:3px}.control-row output{color:var(--paper);font:500 9px DM Mono,monospace}.panel-description{color:var(--muted);font-size:9px;line-height:1.5;margin:4px 0 0}.lightmap-status{background:var(--surface);color:var(--paper-dim);font:500 8px DM Mono,monospace;margin-top:13px;overflow:hidden;padding:8px;text-overflow:ellipsis;white-space:nowrap}:focus-visible{outline:none}button:focus-visible,[role=button]:focus-visible,select:focus-visible,input:focus-visible{background:color-mix(in srgb,var(--accent) 22%,transparent)}.range:focus-visible{background:transparent}.range:focus-visible::-webkit-slider-thumb{background:var(--accent)}.range:focus-visible::-moz-range-thumb{background:var(--accent)}.brand:hover,.brand:focus-visible{color:var(--accent)}.button-quiet:focus-visible{color:var(--paper)}.preview-mode-toggle button:focus-visible{color:var(--paper)}.palette-card-new:focus-visible,.custom-color-add:focus-visible{color:var(--paper)}.resolution-presets button:focus-visible,.palette-filters button:focus-visible,.preview-view-toggle button:focus-visible{background:var(--paper);color:var(--ink)}.palette-card:focus-visible,.mode-button:focus-visible{background:color-mix(in srgb,var(--accent) 22%,var(--card))}.hidden-input:focus-visible+.color-chip{background:color-mix(in srgb,var(--accent) 40%,var(--swatch))}@media(max-width:900px){.canvas-stage{padding:20px}.preview-pane canvas{max-height:48vh}.model-host{height:clamp(260px,48vh,480px)}.comparison-grid{grid-template-columns:1fr}.original-pane,.circle-link,.uv-control{display:none}.preview-toolbar{gap:12px;padding:12px}.toolbar-actions{display:none}.texture-ribbon{gap:8px}.texture-slot{height:56px;min-width:clamp(46px,calc(16.67vw - 56px),70px);padding:5px 6px}.texture-slot-preview{height:24px;width:32px}.resolution-presets{grid-template-columns:1fr}#exportButton{bottom:46px}#orientSunWithCamera{left:8px;margin:0;position:absolute;top:54px}}@media(max-width:620px){.topbar{min-height:62px}.preview-toolbar{gap:12px;min-height:74px;padding:10px 12px}.texture-ribbon{gap:6px;overflow-x:auto;scrollbar-color:var(--line-bright) var(--panel)}.texture-slot{height:50px;min-width:48px;padding:4px 5px}.texture-slot-preview{height:18px;width:28px}.canvas-stage{padding:10px}.model-host{height:clamp(240px,44vh,380px)}.comparison-grid{gap:8px}.preview-pane{gap:6px}.preview-pane figcaption{font-size:8px}.preview-pane canvas{min-width:0;width:100%}.button{padding:11px 12px}.panel{padding:12px 18px}.palette-grid,.mode-grid{gap:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
