@font-face{font-family:Manrope;src:url(assets/Manrope-Variable.ttf);font-weight:200 800;font-display:swap}
@font-face{font-family:SignImpact;src:url(assets/BarlowCondensed-Bold-Latin.woff2);font-weight:700;font-display:swap}
:root{--ink:#201f1d;--muted:#68645f;--orange:#f4540a;--paper:#efeeeb;--line:#dedbd5;--field:#f8f7f4;--error:#a32b20;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}html{height:100%;overflow:hidden}body{margin:0;height:100dvh;display:grid;grid-template-rows:64px minmax(0,1fr) auto;overflow:hidden}button,input,select{font:inherit;color:inherit}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled),a:hover{color:#a53505}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:3px}input{caret-color:var(--orange)}input[type=checkbox]{accent-color:var(--ink)}::selection{background:#ffb995;color:var(--ink)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}p,h1,h2,h3{margin:0}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;width:100%}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.skip{position:fixed;top:8px;left:8px;z-index:20;padding:12px;background:#fff;transform:translateY(-200%)}.skip:focus{transform:none}
.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:#fff;gap:16px}.line-signature{display:grid;text-decoration:none}.line-signature strong{font-size:21px;font-weight:800;letter-spacing:-.035em;line-height:1.25;display:flex;gap:5px}.line-signature small{font-size:10px;font-weight:650;line-height:1.4}.brand-dot{width:7px;height:7px;background:var(--orange);margin-top:4px}.choices-link{display:flex;align-items:center;gap:9px;min-height:44px;font-size:12px;font-weight:700;padding:0}.choices-link span{display:grid;place-items:center;min-width:23px;height:23px;border-radius:50%;font-size:10px;background:var(--paper);font-variant-numeric:tabular-nums}
main{min-height:0}.workspace{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 380px;max-width:1800px;margin:auto}.showroom{min-width:0;min-height:0;display:flex;flex-direction:column;padding:12px 24px}.scene{position:relative;flex:1;min-height:0;isolation:isolate}#webgl-stage{position:absolute;inset:0;touch-action:none;cursor:grab}#webgl-stage:active{cursor:grabbing}#webgl-stage:focus-visible{outline-offset:-4px}.scene canvas{display:block;width:100%;height:100%;touch-action:none}.stage-reset{position:absolute;top:0;right:0;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#ffffffb3}.stage-reset:hover{background:#fff}.stage-reset svg{width:18px;height:18px}.gesture-help{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);white-space:nowrap;pointer-events:none}.scene.has-interacted .gesture-help{visibility:hidden}.object-summary{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.scene-message{position:absolute;left:15%;right:15%;top:35%;text-align:center;color:var(--muted);font-size:13px;line-height:1.65;pointer-events:none}.scene-message p+p{font-size:11px;margin-top:6px}.scene-message button{pointer-events:auto;min-height:44px;text-decoration:underline;text-underline-offset:4px}#chopp-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12px}
.editor{min-width:0;min-height:0;display:flex;flex-direction:column;justify-content:center;background:#fff;border-left:1px solid var(--line)}.editor-tabs{display:flex;gap:3px;padding:0 15px 8px;flex-shrink:0}.editor-tabs button{flex:1;min-width:0;min-height:44px;padding:5px;font-size:12px;font-weight:600;color:var(--muted);border-radius:5px;white-space:nowrap}.editor-tabs button[aria-selected=true]{background:var(--paper);color:var(--ink);font-weight:800}.editor-content{height:286px;max-height:calc(100% - 52px);flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 24px;scrollbar-width:thin;scrollbar-color:#bbb7b0 transparent}.control-section{margin:0 0 12px}.control-section:last-child{margin-bottom:0}.control-section legend,.section-label{display:block;font-size:12px;font-weight:750;margin-bottom:8px}.text-input{width:100%;height:52px;border:1px solid #bbb7b0;border-radius:4px;background:var(--field);font-weight:700;font-size:22px;padding:0 13px;text-transform:uppercase;letter-spacing:.01em}.text-input[aria-invalid=true]{border-color:var(--error)}.input-meta{display:flex;justify-content:space-between;gap:8px;margin-top:7px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.draft-note{font-size:11px;line-height:1.6;color:var(--muted);margin-top:14px}.draft-note:empty{display:none}.error{font-size:11px;color:var(--error);line-height:1.5;margin-top:7px}.dimension-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dimension-grid label{font-size:11px;font-weight:600;min-width:0}.unit-input{display:flex;align-items:center;border:1px solid var(--line);background:var(--field);border-radius:4px;margin-top:7px;height:44px;overflow:hidden}.unit-input:focus-within{outline:2px solid var(--orange);outline-offset:2px}.unit-input input{width:100%;min-width:0;border:0;background:none;font-size:14px;font-weight:650;padding:10px 0 10px 12px;font-variant-numeric:tabular-nums;outline:none}.unit-input span{font-size:11px;color:var(--muted);padding:0 12px 0 6px}.dimension-grid select{display:block;width:100%;height:44px;margin-top:7px;border:1px solid var(--line);background:var(--field);padding:8px;border-radius:4px;font-size:12px}.fine-tune{margin-top:12px}.fine-tune summary{cursor:pointer;font-size:11px;min-height:36px;align-content:center;color:var(--muted);list-style:disclosure-closed inside}.fine-tune[open] summary{list-style-type:disclosure-open}.fine-tune summary span{float:right;font-size:10px;font-variant-numeric:tabular-nums}.fine-tune .dimension-grid{padding-top:5px}#dimensions>legend{display:none}
.legend-note{float:right;font-size:10px;font-weight:500;color:var(--muted)}.face-colors{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.face-colors button{min-height:53px;padding:4px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px}.color-swatch{position:relative;width:28px;height:28px;border-radius:50%;background:var(--swatch);border:1px solid #201f1d25;outline:2px solid transparent;outline-offset:3px}.face-colors button[aria-pressed=true]{font-weight:800}.face-colors button[aria-pressed=true] .color-swatch{outline-color:var(--ink)}.color-swatch svg{position:absolute;inset:5px;width:16px;height:16px;stroke:var(--check)}.segmented{display:grid;grid-template-columns:1fr 1fr .8fr;gap:3px;padding:3px;border:1px solid var(--line);border-radius:4px;background:var(--field)}.segmented button{min-height:38px;font-size:10px;line-height:1.3;padding:3px;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:2px}.segmented button[aria-pressed=true]{background:#fff;font-weight:800;color:var(--ink)}.light-dot{height:8px;width:8px;border:1px solid #201f1d25;border-radius:50%;flex-shrink:0}.branco-frio{background:#d9edff}.branco-quente{background:#ffe1a3}.rgb{background:conic-gradient(#f45,#ffdb35,#43c788,#4285f4,#c35bfb,#f45)}.rgb-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:3px}.rgb-presets{display:flex;gap:0}.rgb-presets button{width:34px;height:36px;border:6px solid #fff;border-radius:50%;outline:1px solid var(--line);outline-offset:-5px;background:var(--rgb);display:grid;place-items:center;padding:0}.rgb-presets button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:-5px}.rgb-presets svg{height:12px;width:12px;stroke:#fff}.custom-rgb{font-size:10px;display:flex;align-items:center;gap:6px;min-height:36px}.custom-rgb input{height:29px;width:29px;padding:2px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer}.light-switch{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:36px;font-size:11px;cursor:pointer;margin-top:2px}.light-switch input{position:absolute;right:0;width:35px;height:22px;margin:0;opacity:0;z-index:1;cursor:pointer}.switch-track{position:relative;width:33px;height:19px;border-radius:20px;background:#b5b1aa}.switch-track:before{content:'';position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;transition:transform 160ms}.light-switch input:checked+.switch-track{background:var(--ink)}.light-switch input:checked+.switch-track:before{transform:translateX(14px)}.light-switch input:focus-visible+.switch-track{outline:3px solid var(--orange);outline-offset:3px}#light-note{display:none}.mounts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mounts button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:76px;border:1px solid var(--line);border-radius:4px;font-size:11px;padding:8px 4px}.mounts svg{width:38px;height:29px;stroke-width:1.2}.mounts button[aria-pressed=true]{border-color:var(--ink);background:var(--field);font-weight:800}.mount-description{font-size:11px;color:var(--muted);line-height:1.6;margin-top:10px}.explode-control{display:flex;align-items:center;gap:8px;min-height:44px;font-size:11px;color:var(--muted);cursor:pointer;margin-top:8px}.explode-control input{height:16px;width:16px;margin:0}.text-button{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:0}#fixed-copy p{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:8px}
.purchase-bar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 54px 44px 220px;align-items:center;gap:12px;padding:12px 28px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;z-index:2}.price{display:grid;gap:4px}.price span{font-size:10px;color:var(--muted)}.price strong{font-size:15px;font-weight:750;white-space:nowrap}.quantity-control{display:grid;gap:3px;font-size:9px;color:var(--muted);text-align:center}.quantity-control input{width:100%;height:29px;text-align:center;border:1px solid var(--line);border-radius:4px;background:var(--field);color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;padding:3px}.share-button{height:44px;width:44px;display:grid;place-items:center}.share-button svg{width:19px;height:19px}.primary-button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:48px;padding:12px 17px;border-radius:4px;background:var(--orange);color:var(--ink);font-size:13px;font-weight:750}.primary-button:hover:not(:disabled){background:#c83e00;color:#fff}.primary-button svg{width:17px;height:17px}.storage-note{grid-column:1/-1;font-size:11px;line-height:1.5;color:var(--error)}.storage-note:empty{display:none}
dialog{width:min(590px,calc(100vw - 24px));max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 20px 80px #201f1d30;overflow:hidden}dialog::backdrop{background:#201f1d66}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 22px;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:18px;letter-spacing:-.02em}.dialog-header button{width:44px;height:44px;display:grid;place-items:center}.dialog-body{max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain;padding:20px 24px 28px}#selection-count{font-size:11px;font-weight:600;padding:3px 7px;margin-left:6px;border-radius:3px;background:var(--paper)}#empty{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:12px}.saved-item{display:grid;grid-template-columns:1fr;gap:7px;padding:14px 0;border-bottom:1px solid var(--line)}.saved-item h3{font-size:15px;overflow-wrap:anywhere;margin-bottom:5px}.saved-item p{font-size:11px;line-height:1.7;color:var(--muted)}.saved-actions{display:flex;gap:20px}.saved-actions button{min-height:44px;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:0}#download{margin-top:10px}.new-config{margin:8px 0 12px}.real-work{border-top:1px solid var(--line);padding-top:8px}.real-work summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;font-size:12px;font-weight:700}.real-work summary::-webkit-details-marker{display:none}.real-work summary svg{width:16px;height:16px}.real-work[open] summary svg{transform:rotate(180deg)}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}.photo-pair figure{margin:0}.photo-pair img{display:block;width:100%;max-height:300px;object-fit:contain;background:var(--paper)}.photo-pair figcaption{font-size:10px;line-height:1.6;margin-top:6px;color:var(--muted)}.configuration-note{font-size:11px;line-height:1.7;color:var(--muted);margin-top:12px}#share-fallback{margin-bottom:18px;font-size:12px}#share-url{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:4px;font-size:12px}.status{position:fixed;left:20px;bottom:90px;z-index:30;max-width:calc(100vw - 40px);background:var(--ink);color:#fff;padding:12px 16px;border-radius:5px;font-size:12px;line-height:1.5;box-shadow:0 8px 24px #201f1d20;visibility:hidden;pointer-events:none}.status.visible{visibility:visible}
@media(min-width:1400px){.workspace{grid-template-columns:minmax(0,1fr) 420px}.editor-content{padding:16px 30px}}
@media(max-width:799px){body{grid-template-rows:56px minmax(0,1fr) auto}.app-header{padding:0 18px}.line-signature strong{font-size:18px}.line-signature small{font-size:9px}.choices-link{font-size:11px;gap:6px}.choices-link span{height:21px;min-width:21px}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(110px,1fr) auto}.showroom{padding:7px 16px 0}.object-summary{font-size:9px;min-height:24px}.gesture-help{font-size:9px;bottom:2px}.stage-reset{top:0;right:0}.editor{border-left:0;border-top:1px solid var(--line)}.editor-tabs{padding:6px 12px 0}.editor-tabs button{font-size:12px}.editor-content{height:254px;max-height:none;padding:12px 20px}.control-section{margin-bottom:10px}.control-section legend,.section-label{font-size:12px}.face-colors button{font-size:10px}.light-switch{min-height:36px}.segmented button{min-height:38px;font-size:11px}.purchase-bar{grid-template-columns:minmax(58px,1fr) 42px 40px minmax(112px,1.4fr);gap:6px;padding:10px 16px max(10px,env(safe-area-inset-bottom))}.price{min-width:0}.price span{font-size:9px}.price strong{min-width:0;font-size:12px;white-space:normal;overflow-wrap:anywhere;line-height:1.2}.quantity-control input{height:29px}.share-button{width:40px}.primary-button{font-size:12px;padding:11px 12px;min-height:46px}.primary-button svg{display:none}.status{bottom:84px;font-size:11px;left:16px;max-width:calc(100vw - 32px)}}
@media(max-height:650px) and (max-width:799px){.editor-content{height:230px;padding-top:10px;padding-bottom:10px}#light-controls legend{display:none}.gesture-help{display:none}}
@media(max-height:500px) and (max-width:799px){.workspace{grid-template-rows:minmax(50px,.65fr) minmax(0,1fr)}.editor-content{height:auto;flex:1;min-height:0}.editor{justify-content:start}.object-summary{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.editor-tabs button.has-error{color:var(--error)}

/* All touch controls keep a 44px target; light type is already named by the choices. */
#light-controls>legend{display:none}.light-switch{min-height:44px}.rgb-presets button{width:44px;height:44px;border-width:8px;outline-offset:-6px}.rgb-presets button[aria-pressed=true]{outline-offset:-6px}.custom-rgb{min-height:44px}.custom-rgb input{height:44px;width:44px}

.face-colors button{min-height:44px;gap:2px;padding:2px;font-size:10px;line-height:12px}.color-swatch{width:22px;height:22px}.color-swatch svg{inset:2px}.segmented button{min-height:44px}#appearance-controls{margin-bottom:6px}.primary-button{white-space:nowrap}
@media(max-height:650px) and (max-width:799px){#appearance-controls{margin-bottom:2px}.segmented{padding:0;gap:0}.control-section legend{margin-bottom:6px}}

/* Seven inventory colors stay in one compact row, including on the 320px editor. */
.face-colors{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.face-colors button{min-width:0;min-height:44px;padding:2px;gap:3px;font-size:9px;line-height:1.1}
.color-swatch{width:24px;height:24px}
.color-swatch svg{inset:4px;width:15px;height:15px}
.custom-rgb{white-space:nowrap}
