*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#172328;background:#fff}header{height:86px;border-bottom:1px solid #dce2e5;display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{color:inherit;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:2px}.brand span{color:#e46d37;font-size:12px;vertical-align:top;margin-right:14px}.header-note{font-size:14px;color:#66737a}main{display:grid;grid-template-columns:minmax(0,1fr) 430px;min-height:calc(100vh - 137px)}.stage{position:relative;background:radial-gradient(ellipse at 48% 40%,#fdfefe,#e3eaee);min-height:690px;overflow:hidden}.stage-label{position:absolute;top:30px;left:32px;right:32px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.6px;color:#61727c;z-index:1}#viewer{position:absolute;inset:0;outline-offset:-4px}canvas{display:block;width:100%;height:100%;touch-action:none}#status{position:absolute;top:48%;left:10%;right:10%;text-align:center;color:#425864;pointer-events:none}#status.hidden{display:none}.view-actions{position:absolute;bottom:69px;left:0;right:0;display:flex;justify-content:center;gap:8px}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #1a778d;outline-offset:4px}.view-actions button{border:1px solid #cad4da;border-radius:30px;padding:12px 20px;background:#ffffffdc;color:#263e49;font-size:14px}.gesture{position:absolute;bottom:18px;text-align:center;width:100%;color:#67777f;font-size:13px;pointer-events:none}.gesture span{margin:0 10px}aside{padding:42px 36px 28px;border-left:1px solid #dce2e5}.eyebrow{font-size:12px;letter-spacing:2px;color:#94713d;font-weight:700}h1{font-size:32px;line-height:1.12;letter-spacing:-1.3px;margin:19px 0 16px}.intro{font-size:16px;line-height:1.6;color:#6a767c;margin-bottom:31px}.color-group{border-top:1px solid #e2e7e9;padding:24px 0 20px}.group-title{display:flex;gap:12px;align-items:baseline}.number{font-size:12px;color:#7f8b91}h2{font-size:17px;margin:0;font-weight:600}.description{font-size:14px;margin:8px 0 20px 27px;color:#768087}.swatches{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.swatch{width:33px;height:33px;border-radius:50%;border:1px solid #0002;box-shadow:0 0 0 4px #fff;background:var(--color)}.swatch[aria-pressed=true]{outline:1px solid #294552;outline-offset:4px}.custom{display:flex;align-items:center;background:#f6f8f9;border:1px solid #e2e7e9;border-radius:6px;padding:9px 12px;gap:10px}.custom label{font-size:14px;flex:1}.custom input[type=color]{border:0;padding:0;width:26px;height:28px;background:none;cursor:pointer}.hex{font-family:monospace;font-size:14px;width:83px;background:transparent;border:0;color:#394e58;text-transform:uppercase}.reset{border:0;background:none;color:#61727b;font-size:14px;padding:8px 0}.selection{margin-top:27px;padding-top:23px;border-top:1px solid #e2e7e9}.selection>span{font-size:11px;letter-spacing:1.5px;color:#768087}.selection>div{display:flex;align-items:center;margin-top:13px;gap:6px}.selection i{width:23px;height:23px;border:1px solid #0001;border-radius:50%}.selection code{margin-left:10px;font-size:12px;color:#485c66}.note{font-size:12px;line-height:1.6;color:#899299;margin:24px 0 0}footer{height:51px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #dce2e5;font-size:11px;letter-spacing:1px;color:#829097}@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) 480px}aside{padding:55px 48px}}@media(max-width:850px){main{grid-template-columns:1fr}.stage{min-height:570px;height:65vh}aside{border-left:0;padding:32px 24px}h1 br{display:none}.header-note{display:none}header{height:68px}.stage-label{left:20px;right:20px}footer span:last-child{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.stage{position:sticky;top:0;height:calc(100vh - 86px);min-height:620px;align-self:start}.swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.swatch-option{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 5px;border:1px solid #e2e7e9;border-radius:6px;background:white;color:#344952;min-width:0}.swatch-option i{display:block;background:var(--color);width:30px;height:30px;border-radius:50%;border:1px solid #0002}.swatch-option span{font-size:12px;line-height:1.35}.swatch-option[aria-pressed=true]{border-color:#294552;box-shadow:inset 0 0 0 1px #294552;background:#eff4f5}.palette-label{font-size:13px;font-weight:600;margin:18px 0 12px;color:#52676f}.chosen{font-size:14px;line-height:1.5;font-weight:600;color:#315b4a}.custom-details summary{font-size:14px;cursor:pointer;padding:8px 0}.custom-details .custom{margin-top:8px}.custom-note,.filament-note{font-size:14px;line-height:1.6;color:#536b74}.filament-note{background:#eef4f5;padding:14px;border-left:3px solid #7d9ca7}.selection code{white-space:normal;line-height:1.7}.selection i{flex-shrink:0}@media(max-width:850px){.stage{position:relative;top:auto;min-height:440px;height:58vh}.swatches{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:420px){.swatches{grid-template-columns:repeat(3,minmax(0,1fr))}}

.scene-picker{position:absolute;top:65px;left:32px;z-index:2;max-width:calc(100% - 64px)}.scene-picker label{font-size:14px;margin-right:10px;color:#425864}.scene-picker select{font:inherit;font-size:14px;color:#263e49;background:#fff;border:1px solid #b7c5cd;border-radius:8px;padding:10px 32px 10px 12px;max-width:100%;min-height:44px}.scene-picker select:focus-visible{outline:3px solid #1a778d;outline-offset:3px}.scene-picker p{font-size:12px;line-height:1.5;color:#52646e;margin:9px 0 0;max-width:310px}@media(max-width:850px){.scene-picker{left:20px;top:60px;max-width:calc(100% - 40px)}.scene-picker p{max-width:260px}.stage{min-height:510px}}

.stage[data-background="dark"] .stage-label,.stage[data-background="dark"] .scene-picker label,.stage[data-background="dark"] .scene-picker p,.stage[data-background="dark"] .gesture,.stage[data-background="dark"] #status{color:#e4edf2}

.scene-picker{background:rgba(255,255,255,.94);padding:12px 14px;border-radius:10px;box-shadow:0 2px 14px #0000000d}.scene-picker p{margin-bottom:0}.stage-label span,.gesture{background:rgba(255,255,255,.9);padding:6px 10px;border-radius:5px}.gesture{width:max-content;max-width:90%;left:50%;transform:translateX(-50%)}

.parallax-backdrop{position:absolute;inset:-12%;background-size:cover;background-position:center;pointer-events:none;will-change:transform;transform-origin:center}.parallax-backdrop[hidden]{display:none}.stage{isolation:isolate}.stage-label,.gesture,.view-actions{z-index:2}#viewer{z-index:1}#status{z-index:2}

@font-face{font-family:Lato;src:url('./brand/lato.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:'Work Sans';src:url('./brand/work-sans.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--ink:#182537;--paper:#fffffb;--accent:#c4846f}body{font-family:Lato,Arial,sans-serif;background:var(--paper);color:var(--ink)}header{background:#fafaf8;border-color:#e0ddd7}.brand{display:flex;align-items:center}.brand img{display:block;width:240px;height:auto;max-width:44vw}.shop-link{color:var(--ink);font-size:14px;text-underline-offset:4px}h1,h2,.eyebrow{font-family:'Work Sans',sans-serif;font-weight:500}h1{font-size:38px;letter-spacing:-1.4px}.eyebrow{color:#945e4b;font-size:12px;letter-spacing:1.3px}aside{background:var(--paper);border-color:#deded6}.intro{color:#4c5661;margin-bottom:22px}.filament-note{background:#f4ebe5;border-color:#c4846f;color:#583f34;border-radius:0 8px 8px 0}.swatch-option{border-color:#deded7;background:#fffffb;color:#182537;border-radius:9px;padding:12px 5px}.swatch-option i{width:35px;height:35px;box-shadow:inset 0 0 0 1px #0000000c}.swatch-option span{font-size:13px}.swatch-option[aria-pressed=true]{border-color:#182537;box-shadow:inset 0 0 0 1px #182537;background:#e9edf1}.swatch-option:hover{border-color:#7d8894}.chosen{color:#182537}.palette-label,.description,.custom-note{color:#525961}.custom{background:#f5f4ee}.view-actions button{background:#182537;color:white;border-color:#182537;padding:12px 22px}.scene-picker{border:1px solid #e2dfd7;background:#fffffbf5}.scene-picker label{color:#182537}.note{color:#66707a;font-size:13px}.selection code{font-family:Lato,sans-serif;font-size:14px}.reset{color:#182537;text-decoration:underline;text-underline-offset:4px}footer{color:#53606e;background:#fafaf8;font-size:12px}@media(max-width:850px){h1{font-size:34px}.brand img{width:190px}}

.sourcing-notice{background:#fff3db;border:2px solid #a97632;border-radius:10px;padding:18px;margin:14px 0 20px;color:#503b20;font-size:15px;line-height:1.6}.sourcing-notice[hidden]{display:none}.sourcing-notice>strong{font-size:17px}.sourcing-notice p{margin:10px 0 0}.custom-note{background:#f4ebe5;padding:13px;border-left:3px solid #c4846f;border-radius:0 6px 6px 0}.custom-note strong{font-weight:700}

.pairings,.accessory-options,.order-actions{padding:22px 0;border-top:1px solid #deded7}.pairings h2,.accessory-options h2,.order-actions h2{margin-bottom:16px}.pairing-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pairing-buttons button{font:inherit;font-size:14px;padding:11px;border:1px solid #c8c5ba;border-radius:8px;background:#f6f3ea;color:#182537}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;font-size:16px}.toggle-row input{width:22px;height:22px;accent-color:#627451}.accessory-options p,.order-help{font-size:14px;line-height:1.6;color:#5d6670}.order-actions button{width:100%;border:1px solid #182537;background:#182537;color:white;border-radius:8px;padding:12px;margin:5px 0;font:inherit}.order-actions button:disabled{opacity:.5;cursor:wait}.order-actions button+button{background:transparent;color:#182537}#order-review{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.6 Lato,sans-serif;padding:14px;background:#f3f2eb;border-radius:8px}#order-feedback{font-size:14px;line-height:1.5}#copy-fallback{width:100%;height:180px;font:14px/1.5 Lato,sans-serif}.view-actions{gap:6px}.view-actions button{padding:11px 14px;font-size:13px}
@media(max-width:850px){.stage{position:sticky;top:0;height:clamp(270px,42svh,380px);min-height:0;z-index:5;border-bottom:1px solid #d0d6d5}.stage-label{top:9px;left:12px;right:12px;font-size:10px;letter-spacing:1px}.scene-picker{top:42px;left:12px;padding:5px 8px}.scene-picker p{display:none}.scene-picker label{font-size:12px}.scene-picker select{font-size:12px;padding:5px;min-height:34px}.view-actions{bottom:10px}.view-actions button{padding:9px 11px;font-size:12px;min-height:38px}.gesture{display:none}aside{position:relative;z-index:1}.stage-label span{padding:4px 6px}}

/* Compact palette: generous tap targets without full-size color cards. */
aside{padding:26px 28px 24px}h1{margin:12px 0;font-size:34px}.intro{font-size:15px;line-height:1.45;margin:0 0 14px}.filament-note{font-size:13px;line-height:1.45;padding:10px 12px;margin:12px 0 16px}.color-group{padding:16px 0 12px}.description{font-size:13px;margin:6px 0 10px 27px}.palette-label{font-size:12px;line-height:1.4;margin:12px 0 8px}.swatches{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;margin-bottom:10px}.swatch-option{min-height:50px;padding:4px 2px;gap:2px;border-radius:7px}.swatch-option i{width:27px;height:27px;flex-shrink:0}.swatch-option span{font-size:11px;line-height:1.1}.chosen{font-size:13px;margin:9px 0 4px}.custom-details summary{font-size:13px;padding:7px 0}.pairings,.accessory-options,.order-actions{padding:16px 0}.pairings h2,.accessory-options h2,.order-actions h2{margin-bottom:10px}.pairing-buttons button{font-size:13px;padding:8px;min-height:40px}.toggle-row{font-size:14px;padding:9px 0;min-height:44px}.accessory-options p,.order-help{font-size:13px;line-height:1.45}.selection{margin-top:14px;padding-top:14px}.note{margin-top:14px}
@media(min-width:1500px){aside{padding:30px 32px}}
@media(max-width:850px){aside{padding:24px 20px}.swatches{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}}

.custom[hidden]{display:none}.custom-swatch i{background:conic-gradient(#eb8795,#f2cb78,#99cba7,#8cbcd5,#bc9cd1,#eb8795);color:#182537;font:22px/27px Arial,sans-serif}.custom-swatch span{font-size:10px}.custom{margin:8px 0}.sourcing-notice{font-size:13px;line-height:1.45;padding:12px;margin:8px 0 14px}.sourcing-notice>strong{font-size:14px}.sourcing-notice p{margin:7px 0 0}

.material-switch{display:flex;gap:4px;background:#eeeee6;border-radius:8px;padding:4px;margin-top:12px}.material-switch button{flex:1;min-height:40px;padding:7px;border:1px solid transparent;border-radius:6px;background:transparent;color:#525961;font-size:13px}.material-switch button[aria-pressed=true]{background:#fffffb;color:#182537;border-color:#b5baac;box-shadow:0 1px 3px #0000000d}#main-pla[hidden],#main-petg[hidden]{display:none}.custom-choice{display:flex;margin:6px 0}.custom-choice .custom-swatch{width:52px}.view-actions{padding:0 8px;flex-wrap:wrap}@media(max-width:420px){.view-actions{gap:4px}.view-actions button{font-size:11px;padding:8px}}

.logo-controls{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-top:10px}.logo-controls label{font-size:13px}.logo-controls select{font:inherit;font-size:13px;padding:8px;border:1px solid #c8c5ba;border-radius:6px;background:#fff}.logo-controls .upload-label,.logo-controls input,.logo-controls button,.logo-controls p{grid-column:1/-1}.logo-controls input{max-width:100%;font:13px Lato,sans-serif}.logo-controls p{margin:3px 0;font-size:12px}.logo-controls button{text-align:left}#logo-feedback:empty{display:none}

#measure-note{position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:116px;margin:0;padding:6px 10px;background:#fffff5ed;color:#203b32;font-size:12px;border-radius:5px;white-space:nowrap}#measure-note[hidden]{display:none}#measure-view[aria-pressed=true]{background:#e9eedf;color:#203b32;border-color:#64775d}@media(max-width:850px){#measure-note{bottom:98px;font-size:10px}}

/* Camera presets and independent measurement toggle have distinct selected states. */
.view-actions button{background:#fffffbf5;color:#203b32;border-color:#b7c2b5;box-shadow:0 2px 8px #142d2314}.view-actions button[aria-pressed=true],#measure-view[aria-pressed=true]{background:#324f3d;color:#fff;border-color:#324f3d;box-shadow:0 0 0 2px #fffffbbf,0 3px 10px #142d2333}
button,select,input::file-selector-button{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.toggle-row{border-radius:7px;cursor:pointer;transition:background-color .16s ease}.swatch-option{position:relative}.swatch-option i{transition:transform .16s ease}.shop-link{transition:color .16s ease}select{cursor:pointer}
@media(hover:hover) and (pointer:fine){.view-actions button:hover{background:#e8eedf;border-color:#64775d;transform:translateY(-2px);box-shadow:0 4px 12px #142d2329}.view-actions button[aria-pressed=true]:hover{background:#243e2e;color:white}.swatch-option:hover{background:#f0f2e9;box-shadow:0 3px 9px #142d231a;transform:translateY(-2px)}.swatch-option:hover i{transform:scale(1.08)}.pairing-buttons button:hover,.material-switch button:hover{background:#e5eadc;border-color:#7c8c70}.order-actions button:not(:disabled):hover{box-shadow:0 4px 12px #18253726;transform:translateY(-1px)}.toggle-row:hover{background:#eef1e6}.reset:hover,.shop-link:hover{color:#627451}.logo-controls select:hover,.scene-picker select:hover{border-color:#627451;box-shadow:0 0 0 2px #62745118}input::file-selector-button:hover{background:#e5eadc}}
button:not(:disabled):active{transform:translateY(0) scale(.97)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #b66f49;outline-offset:3px}#viewer{cursor:grab}#viewer:active{cursor:grabbing}
@media(prefers-reduced-motion:reduce){button,select,.swatch-option i,.toggle-row,.shop-link,input::file-selector-button{transition:none}button:hover,button:not(:disabled):active,.swatch-option:hover i{transform:none}}

/* Give the product its own viewport above the camera controls. */
#viewer{inset:0 0 120px}.view-actions{bottom:48px}.gesture{bottom:8px}#measure-note{bottom:132px}@media(max-width:850px){#viewer{inset:0 0 104px}.view-actions{bottom:10px}#measure-note{bottom:108px}}

/* Separate the camera controls from the interaction hint. */
@media(min-width:851px){#viewer{inset:0 0 140px}.view-actions{bottom:68px}.gesture{bottom:12px;margin:0}#measure-note{bottom:152px}}
#price-lines>div,.price-total{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:14px}#price-lines strong{white-space:nowrap}.price-total{border-top:1px solid #deded7;margin-top:8px;padding-top:12px;font-size:17px}#checkout-status{font-size:13px;line-height:1.5;background:#f4ebe5;padding:10px;border-radius:6px}.order-actions #checkout{background:#182537;color:white}.order-actions #checkout:disabled{cursor:not-allowed;opacity:.5}.order-actions #retry-prices{border:0;padding:5px;background:none;color:#182537;text-align:left;font-size:13px}.order-actions details{margin:12px 0;font-size:13px}.order-actions summary{cursor:pointer}button:focus-visible,summary:focus-visible{outline:2px solid #945e4b;outline-offset:3px}
