:root{--ink:#2b2620;--ink-soft:#6f675c;--paper:#fbfaf7;--line:#e6e0d6;--brass:#9a7b3f;--brass-soft:#f3ead9;--sans:-apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--serif:"Iowan Old Style", "Palatino", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:14px/1.45 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.app{height:100%;display:flex}.viewport{flex:1;min-width:0;position:relative}.viewport canvas{display:block}.hint{border:1px solid var(--line);color:var(--ink-soft);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbfaf7d9;border-radius:999px;padding:7px 12px;font-size:12px;position:absolute;bottom:14px;left:16px}.panel{background:var(--paper);border-right:1px solid var(--line);flex-shrink:0;width:320px;padding:22px 20px 28px;overflow-y:auto}.acc{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:12px;overflow:hidden}.acc-head{cursor:pointer;width:100%;font:13px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;padding:13px 14px;font-weight:700;display:flex}.acc-head em{font:11px var(--sans);letter-spacing:.03em;text-transform:none;color:var(--ink-soft);text-align:left;margin-top:2px;font-style:normal;font-weight:400;display:block}.acc-arrow{color:var(--ink-soft);transition:transform .15s}.acc.open .acc-arrow{transform:rotate(180deg)}.acc.open .acc-head{border-bottom:1px solid var(--line);background:var(--brass-soft)}.acc-body{padding:16px 14px 6px}.subacc-group{flex-direction:column;gap:7px;margin-bottom:8px;display:flex}.subacc{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.subacc-head{cursor:pointer;width:100%;font:12px var(--sans);color:var(--ink);background:0 0;border:none;align-items:center;gap:8px;padding:9px 11px;display:flex}.subacc-title{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px;font-weight:600}.subacc-value{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:130px;margin-left:auto;font-size:12px;overflow:hidden}.subacc .acc-arrow{font-size:11px}.subacc.open .subacc-head{border-bottom:1px solid var(--line)}.subacc-body{padding:10px 11px}.sel-popup{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbfaf7f7;border-radius:12px;width:252px;max-height:calc(100% - 70px);padding:12px;position:absolute;top:16px;left:16px;overflow-y:auto;box-shadow:0 6px 24px #2b26201a}.sel-popup-head{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.sel-popup-close{border:1px solid var(--line);cursor:pointer;width:22px;height:22px;color:var(--ink-soft);background:#fff;border-radius:6px;flex-shrink:0}.sel-popup-close:hover{border-color:var(--brass);color:var(--ink)}.sel-popup .footnote{margin-top:8px}.cart-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbfaf7f5;border-radius:12px;width:250px;padding:14px 14px 12px;position:absolute;top:16px;right:16px;box-shadow:0 6px 24px #2b262014}.cart-head{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.cart-badge{background:var(--brass);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;display:inline-flex}.cart-finish{color:var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:7px;margin-bottom:6px;padding-bottom:8px;font-size:12px;display:flex}.cart-lines{max-height:180px;margin:0 0 10px;padding:0;list-style:none;overflow-y:auto}.cart-lines li{justify-content:space-between;align-items:baseline;gap:8px;padding:4px 0;font-size:12px;display:flex}.cart-lines em{color:var(--ink-soft);white-space:nowrap;font-size:10.5px;font-style:normal}.cart-add{background:var(--brass);color:#fff;width:100%;font:600 13px var(--sans);letter-spacing:.04em;cursor:pointer;border:none;border-radius:8px;margin-bottom:7px;padding:9px 0;transition:background .15s}.cart-add:hover{background:#86682f}.panel-brand{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:16px}.brand-name{font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;font-size:19px}.brand-sub{letter-spacing:.06em;color:var(--ink-soft);margin-top:3px;font-size:11.5px}.section{margin-bottom:20px}.section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:9px;font-size:11px;font-weight:600}.swatch-row{gap:8px;display:flex}.swatch{border:2px solid var(--line);cursor:pointer;border-radius:8px;flex:1;height:64px;padding:0;position:relative;overflow:hidden}.swatch span{color:var(--ink);letter-spacing:.02em;background:#fbfaf7e0;padding:3px 4px;font-size:10px;position:absolute;bottom:0;left:0;right:0}.swatch.active{border-color:var(--brass);box-shadow:0 0 0 2px var(--brass-soft)}.swatch-white-oak{background:repeating-linear-gradient(94deg,#92795247 0 1.5px,#0000 1.5px 9px),linear-gradient(100deg,#d3c09e,#c8b28c 55%,#d8c7a6)}.swatch-walnut{background:repeating-linear-gradient(94deg,#261a1066 0 1.5px,#0000 1.5px 8px),linear-gradient(100deg,#5e4630,#4a3623 55%,#6a5138)}.swatch-off-white{background:#efece2}.chip-row{flex-wrap:wrap;gap:7px;display:flex}.chip-col{flex-direction:column;gap:6px;display:flex}.chip{font:13px var(--sans);border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:7px;padding:8px 12px;transition:border-color .12s,background .12s}.chip:hover:not(:disabled){border-color:var(--brass)}.chip.active{border-color:var(--brass);background:var(--brass-soft)}.chip:disabled{opacity:.45;cursor:default}.chip-col.disabled{opacity:.55}.chip-col+.footnote,.seg+.chip-col{margin-top:8px}.finish-chip,.dot-chip{align-items:center;gap:9px;display:flex}.dot-chip .finish-dot{width:13px;height:13px}.disabled-block{opacity:.45;pointer-events:none}.finish-dot{border:1px solid #0000002e;border-radius:50%;flex-shrink:0;width:16px;height:16px}.seg{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.seg button{font:13px var(--sans);color:var(--ink-soft);cursor:pointer;background:#fff;border:none;flex:1;padding:8px 0}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--brass-soft);color:var(--ink);font-weight:600}.sku-line{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:12px;display:flex}.sku-line code{color:var(--ink);font-size:12px}.footnote{color:var(--ink-soft);font-size:11px;line-height:1.5}.placeholder-note{background:var(--brass-soft);color:#6d5a35;border:1px solid #e8d9bc;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:11.5px;line-height:1.5}@media (width<=640px){.app{flex-direction:column}.panel{border-left:none;border-top:1px solid var(--line);width:100%;max-height:45%}}
