:root{--bg:#131009;--bg-2:#1d1811;--card:#221c13;--card-2:#2a2318;--ink:#f4ecdd;--ink-soft:#c7b99f;--ink-faint:#8f826b;--gold:#e3ba36;--gold-bright:#f3d843;--gold-deep:#c88916;--gold-tint:#e3ba3624;--clay:#e0665a;--ok:#25d366;--line:#f4ecdd1f;--r-8:8px;--r-13:13px;--r-20:20px;--r-28:28px;--r-pill:999px;--shadow:0 2px 10px #00000059, 0 14px 38px #0006;--rail:300px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}img{max-width:100%;display:block}a{color:var(--gold)}h1,h2,h3{margin:0 0 10px;line-height:1.2}.wrap{max-width:1320px;margin:0 auto;padding:0 18px;position:relative}.wrap.full{max-width:1800px}.bgfx{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}main,.topbar,footer{z-index:1;position:relative}main{z-index:2}.blob{filter:blur(70px);will-change:transform;border-radius:50%;position:absolute}.blob-1{background:radial-gradient(circle,#e3ba362e,#0000 65%);width:55vw;height:55vw;animation:80s ease-in-out infinite alternate drift-1;top:-22vw;right:-16vw}.blob-2{background:radial-gradient(circle,#f3d8431a,#0000 65%);width:45vw;height:45vw;animation:95s ease-in-out infinite alternate drift-2;bottom:-14vw;left:-14vw}@keyframes drift-1{to{transform:translate(-14vw,16vh)scale(1.15)}}@keyframes drift-2{to{transform:translate(12vw,-12vh)scale(1.1)}}.topbar{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#131009e6;position:sticky;top:0}.topbar .wrap{justify-content:space-between;align-items:center;gap:14px;height:62px;display:flex}body.planning .topbar{display:none}.logo{color:var(--ink);align-items:center;min-width:0;text-decoration:none;display:flex}.logo img{mix-blend-mode:screen;width:auto;height:44px}.topbar .spacer{flex:1}.btn{cursor:pointer;background:linear-gradient(160deg, var(--gold-bright), var(--gold-deep));color:#221703;border-radius:var(--r-pill);border:0;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-family:inherit;font-size:15px;font-weight:700;line-height:1;text-decoration:none;transition:filter .15s,transform .1s;display:inline-flex;box-shadow:0 4px 18px #e3ba3638}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn.big{padding:16px 30px;font-size:17px}.btn.sm{padding:9px 14px;font-size:13px}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.btn.ghost:hover{background:var(--bg-2);filter:none}.btn.wa{background:var(--ok);color:#06331a;box-shadow:0 4px 18px #25d36638}.btn.danger{color:var(--clay);background:0 0;box-shadow:inset 0 0 0 1.5px #e0665a73}.btn:disabled{opacity:.5;cursor:default;filter:none}.intro{text-align:center;padding:54px 0 70px}.intro .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);background:var(--gold-tint);border-radius:var(--r-pill);margin-bottom:18px;padding:7px 15px;font-size:12px;display:inline-block}.intro h1{letter-spacing:-.02em;font-size:clamp(30px,5vw,50px)}.intro h1 em{color:var(--gold);font-style:normal}.intro p.lede{color:var(--ink-soft);max-width:620px;margin:0 auto 30px;font-size:17px}.drop{background:var(--card);border-radius:var(--r-28);cursor:pointer;border:2px dashed #e3ba3661;max-width:640px;margin:0 auto;padding:42px 26px;transition:border-color .18s,background .18s,transform .18s}.drop:hover,.drop.over{border-color:var(--gold);background:var(--card-2);transform:translateY(-2px)}.drop .icon{margin-bottom:10px;font-size:40px}.drop b{margin-bottom:6px;font-size:19px;display:block}.drop span{color:var(--ink-faint);font-size:14px}.drop input{display:none}.collecting{background:var(--card);border:1px solid var(--line);border-radius:var(--r-28);max-width:520px;margin:40px auto;padding:40px 26px}.collecting .icon{margin-bottom:10px;font-size:40px;animation:1.6s ease-in-out infinite pulse}.collecting b{margin-bottom:6px;font-size:19px;display:block}.collecting span{color:var(--ink-faint);font-size:14px}@keyframes pulse{50%{opacity:.45;transform:scale(.94)}}.steps{grid-template-columns:repeat(3,1fr);gap:16px;max-width:860px;margin:44px auto 0;display:grid}.steps div{background:var(--card);border:1px solid var(--line);border-radius:var(--r-20);text-align:left;padding:20px 18px}.steps b{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;font-size:13px;display:block}.steps p{color:var(--ink-soft);margin:0;font-size:14px}.builder{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;padding:12px 0 40px;display:grid}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-20);box-shadow:var(--shadow)}.panel h2{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0;padding:16px 18px 12px;font-size:13px}.planpane{position:relative;overflow:hidden}.plantabs{scrollbar-width:none;gap:6px;padding:10px 10px 0;display:flex;overflow-x:auto}.plantabs::-webkit-scrollbar{display:none}.plantab{cursor:pointer;background:var(--bg-2);color:var(--ink-soft);border-radius:var(--r-pill);border:0;flex:none;align-items:center;gap:7px;max-width:220px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.plantab span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plantab.on{background:var(--gold);color:#221703}.plantab .count{border-radius:var(--r-pill);background:#00000038;padding:1px 6px;font-size:11px}.plantab.add{box-shadow:inset 0 0 0 1.5px var(--line);color:var(--gold);background:0 0}.stage{border-radius:var(--r-13);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#f6f1e8;height:max(480px,100dvh - 160px);margin:10px;position:relative;overflow:hidden}.stage.armed{cursor:crosshair}.stage.over{outline:3px solid var(--gold);outline-offset:-3px}.stage-inner{place-items:center;display:grid;position:absolute;inset:0}.stage.side-open .stage-inner{padding-right:246px}.plan-layer{transform-origin:50%;will-change:transform;position:relative}.plan-layer img{max-width:none;display:block;box-shadow:0 6px 30px #00000047}.pin{z-index:2;cursor:grab;width:34px;height:34px;transform:translate(-50%, -50%) scale(var(--inv,1));transform-origin:50%;border:2px solid #fff;border-radius:50%;place-items:center;padding:0;font-size:15px;transition:box-shadow .15s;display:grid;position:absolute;box-shadow:0 3px 10px #0006}.pin:active{cursor:grabbing}.pin.on{z-index:3;box-shadow:0 0 0 4px #e3ba368c,0 3px 10px #0006}.pin .n{color:#f4ecdd;border-radius:var(--r-pill);text-align:center;background:#1a1409;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:17px;position:absolute;top:-7px;right:-7px}.pin-tip{z-index:4;transform:translateX(-50%) scale(var(--inv,1));transform-origin:bottom;color:#f4ecdd;border:1px solid var(--line);white-space:nowrap;border-radius:var(--r-8);pointer-events:none;background:#1a1409;padding:4px 8px;font-size:11px;font-weight:600;position:absolute;bottom:calc(100% + 4px);left:50%}.shape>*{position:absolute}.shape .bar{transform-origin:0;opacity:.62;cursor:move;touch-action:none;border-radius:2px;place-items:center;display:grid;box-shadow:inset 0 0 0 1.5px #fffc}.shape .bar-glyph{pointer-events:none;font-size:13px;line-height:1}.shape .rect{cursor:move;touch-action:none;border:2.5px solid;border-radius:3px}.shape.on .bar{opacity:.8;box-shadow:inset 0 0 0 1.5px #fff,0 0 0 3px #e3ba368c}.shape.on .rect{box-shadow:0 0 0 3px #e3ba3680}.grip{border:2.5px solid var(--gold);cursor:grab;touch-action:none;width:20px;height:20px;transform:translate(-50%, -50%) scale(var(--inv,1));z-index:3;background:#fff;border-radius:50%;padding:0;box-shadow:0 2px 6px #00000073}.grip:active{cursor:grabbing;background:var(--gold)}.measure{transform:translate(-50%, -50%) scale(var(--inv,1));color:var(--gold-bright);border-radius:var(--r-pill);white-space:nowrap;pointer-events:none;z-index:4;background:#131009eb;border:1px solid #e3ba3680;padding:3px 8px;font-size:11px;font-weight:700}.shape-n{transform:translate(-50%, -50%) scale(var(--inv,1));color:#f4ecdd;border-radius:var(--r-pill);text-align:center;pointer-events:none;z-index:4;background:#1a1409;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:17px}.stage.tracing{cursor:crosshair}.plan-layer.locked .pin,.plan-layer.locked .shape{pointer-events:none}.traceline{transform-origin:0;background:var(--gold-bright);pointer-events:none;z-index:5;height:3px;position:absolute;box-shadow:0 0 0 1px #00000059,0 0 10px #f0c468cc}.scaletip{background:var(--gold-tint);border-radius:var(--r-13);color:var(--ink-soft);border:1px solid #e3ba3659;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 10px 0;padding:10px 14px;font-size:13px;display:flex}.scaletip b{color:var(--gold-bright)}.scaletip.on{border-color:var(--gold);color:var(--gold-bright)}.scaletip .acts{flex:none;gap:8px;margin-left:auto;display:flex}.scalecheck{color:var(--ink-soft);background:var(--bg-2);border-radius:var(--r-13);margin:0 0 4px;padding:10px 12px;font-size:13px}.scalecheck b{color:var(--gold-bright)}.measured{background:var(--bg-2);border-radius:var(--r-13);border:1px solid #e3ba364d;gap:3px;margin-bottom:12px;padding:12px 14px;display:grid}.measured .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.measured .val{color:var(--gold);font-size:24px;font-weight:800;line-height:1.1}.measured .exact{color:var(--ink-faint);font-size:12.5px}.measured .how{color:var(--ink-soft);margin-top:5px;font-size:12.5px}.plantab .scaled{opacity:.85;font-size:11px}.foot-acts{align-items:center;gap:14px;display:flex}.planpane .foot .scale-on{color:var(--gold)}.stage-tools{z-index:5;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.stage-tools button{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#131009d1;border-radius:10px;font-family:inherit;font-size:16px}.stage-tools button:hover{background:var(--bg-2)}.stage-hint{z-index:5;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r-pill);max-width:74%;color:var(--ink-soft);background:#131009d6;padding:7px 14px;font-size:12.5px;position:absolute;top:10px;left:10px}.stage-hint.armed{border-color:var(--gold);color:var(--gold-bright)}.planpane .foot{color:var(--ink-faint);justify-content:space-between;align-items:center;gap:10px;padding:0 14px 14px;font-size:13px;display:flex}.planpane .foot button{color:var(--clay);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.float{z-index:6;touch-action:auto;-webkit-user-select:text;user-select:text;cursor:default;position:absolute}.itempanel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#221c13f0;flex-direction:column;width:236px;max-width:calc(100% - 20px);max-height:min(60%,100% - 150px);font-size:12px;display:flex;top:10px;right:10px}.fhead{justify-content:space-between;align-items:center;padding-right:6px;display:flex}.fhead h2{flex:1;padding:12px 14px 8px;font-size:11px}.itempanel .catpick{padding:0 10px 8px}.itempanel .catselect{padding:7px 8px;font-size:12.5px}.itempanel .items{gap:4px;padding:0 10px 8px}.itempanel .item{border-radius:10px;gap:7px;padding:6px 8px}.itempanel .item .dot{width:24px;height:24px;font-size:12px}.itempanel .item b{font-size:12px}.itempanel .item small{font-size:10px}.fhide{cursor:pointer;width:30px;height:30px;color:var(--ink-faint);font:inherit;background:0 0;border:0;border-radius:50%;font-size:20px;line-height:1}.fhide:hover{background:var(--bg-2);color:var(--ink)}.itemsfab{border:1px solid var(--gold);border-radius:var(--r-pill);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--gold-bright);font:inherit;box-shadow:var(--shadow);background:#131009e0;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:700;display:inline-flex;top:10px;right:10px}.itemsfab em{background:var(--gold);color:#221703;border-radius:var(--r-pill);padding:1px 7px;font-size:11px;font-style:normal}.drawtools{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);max-width:calc(100% - 76px);box-shadow:var(--shadow);scrollbar-width:none;background:#131009e0;border-radius:14px;align-items:center;gap:10px;padding:6px 8px;display:flex;bottom:10px;left:50%;overflow-x:auto;transform:translate(-50%)}.drawtools::-webkit-scrollbar{display:none}.tgroup{flex:none;align-items:center;gap:4px;display:flex}.tgroup+.tgroup{border-left:1px solid var(--line);padding-left:10px}.tbtn{width:34px;height:34px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:none;place-items:center;font-size:17px;line-height:1;display:grid}.tbtn:hover{background:var(--bg-2)}.tbtn.on{background:var(--gold);color:#221703;border-color:var(--gold)}.tbtn:disabled{opacity:.35;cursor:default;background:0 0}.tbtn.tw i{background:currentColor;border-radius:2px;width:18px;display:block}.tbtn.ttext{font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:800}.tbtn.thide{color:var(--ink-faint);margin-left:2px;font-size:20px}.tswatch{cursor:pointer;border:2px solid #ffffff59;border-radius:50%;flex:none;width:22px;height:22px;padding:0;box-shadow:0 0 0 1px #0006}.tswatch.on{box-shadow:0 0 0 2px var(--gold);border-color:#fff;transform:scale(1.12)}.drawfab{border:1px solid var(--line);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:40px;height:40px;box-shadow:var(--shadow);background:#131009e0;border-radius:50%;font-size:18px;bottom:10px;left:10px}.drawfab:hover{border-color:var(--gold)}.sketchsvg{pointer-events:none;z-index:1;position:absolute;top:0;left:0}.sketchsvg .draft{opacity:.85}.sketchsvg .band{opacity:.5}.sketchsvg .band line{stroke-dasharray:8 6}.sketchsvg .chainstart{fill:#ffffffe6;stroke:var(--gold)}.stage.erasing .sketchsvg .hit{pointer-events:stroke}.stage.drawing,.stage.erasing{cursor:var(--cur-cross)}.stage.erasing{cursor:cell}.stage.texting{cursor:text}.stage.texting .sketchsvg .txt{pointer-events:all;cursor:pointer}.stage.walling .sketchsvg .hit.k-wall,.stage.opening .sketchsvg .hit.k-door,.stage.opening .sketchsvg .hit.k-window,.stage.lining .sketchsvg .hit.k-line{pointer-events:stroke}.measure.dim{color:#bfd7ff;border-color:#6094f0b3}.plan-layer>.measure{position:absolute}.tbtn.taid{place-items:center;gap:1px;width:auto;min-width:40px;padding:0 7px;font-size:14px;line-height:1;display:grid}.tbtn.taid small{letter-spacing:.06em;text-transform:uppercase;font-size:8.5px;font-weight:700}.segpop{z-index:8;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--gold);width:264px;max-width:calc(100% - 20px);box-shadow:var(--shadow);color:var(--ink);background:#131009f2;border-radius:12px;flex-direction:column;gap:6px;margin:0;padding:8px 10px 10px;font-size:12.5px;display:flex;bottom:142px;right:10px}.segpop .row{align-items:center;gap:6px;display:flex}.segpop .grow{flex:1}.segpop .head{margin-bottom:2px}.segpop b{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-size:10.5px}.segpop label>small:first-child{width:46px;color:var(--ink-soft);font-weight:700}.segpop button.conv{color:var(--gold-bright);border-color:#e3ba3680;font-weight:700}.segpop input{width:80px;font:inherit;color:var(--ink);background:var(--bg-2);border:1px solid var(--line);text-align:right;-moz-appearance:textfield;border-radius:8px;padding:5px 7px;font-size:13.5px;font-weight:700}.segpop input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.segpop input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.segpop input:focus{outline:2px solid var(--gold);border-color:#0000}.segpop small{color:var(--ink-faint);font-size:11px}.segpop button{cursor:pointer;border:1px solid var(--line);min-width:28px;height:28px;color:var(--ink);font:inherit;background:0 0;border-radius:8px;padding:0 8px;font-size:13px;line-height:1}.segpop button:hover{background:var(--bg-2)}.segpop button.go{background:var(--gold);color:#221703;border-color:var(--gold);font-weight:700}.segpop button.go:disabled{opacity:.45;cursor:default}.segpop button.del{color:var(--clay)}.stage.drawing .shape *,.stage.erasing .shape *,.stage.drawing .pin,.stage.erasing .pin{pointer-events:none!important}.builder>*{min-width:0}.catpick{align-items:center;gap:8px;padding:0 12px 12px;display:flex}.catdot{border-radius:50%;flex:none;width:12px;height:12px}.catselect{min-width:0;font:inherit;color:var(--ink);background:var(--bg-2);border:1.5px solid var(--line);cursor:pointer;border-radius:10px;outline:none;flex:1;padding:9px 10px;font-size:13.5px;font-weight:600}.catselect:focus{border-color:var(--gold)}.catselect option{background:var(--card);color:var(--ink)}.items{scrollbar-width:thin;flex:auto;grid-template-columns:1fr;gap:6px;min-height:0;padding:0 12px 12px;display:grid;overflow-y:auto}.item{text-align:left;background:var(--bg-2);border-radius:var(--r-13);cursor:grab;color:var(--ink);touch-action:none;border:1px solid #0000;align-items:center;gap:9px;padding:9px 10px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.item:hover{border-color:var(--gold);background:var(--card-2)}.item.armed{border-color:var(--gold);background:var(--gold-tint)}.item .dot{border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:14px;display:grid}.item .txt{min-width:0}.item b{font-size:12.5px;font-weight:600;line-height:1.25;display:block}.item small{color:var(--ink-faint);font-size:10.5px}.itempanel .note{color:var(--ink-faint);flex:none;margin:0;padding:0 14px 10px;font-size:11px;line-height:1.4}.dragghost{z-index:90;pointer-events:none;background:var(--card);border:1px solid var(--gold);border-radius:var(--r-pill);box-shadow:var(--shadow);align-items:center;gap:8px;padding:7px 14px 7px 8px;font-size:12.5px;font-weight:600;display:flex;position:fixed;transform:translate(-50%,-50%)}.dragghost .dot{border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.sum{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:8px 28px;padding:0 18px 18px;display:grid}.sum-side{border-left:1px solid var(--line);padding-left:28px}.sum-side .sum-total:first-child{border-top:0;margin-top:0;padding-top:0}.sum-export{border-top:1px solid var(--line);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:0 18px;padding:14px 0 18px;font-size:13px;display:flex}.sum .empty{color:var(--ink-faint);margin:0 0 6px;font-size:14px}.sum-group{margin-bottom:14px}.sum-group h3{letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:7px;margin:0 0 6px;font-size:11px;display:flex}.sum-group h3 i{border-radius:50%;width:8px;height:8px;display:inline-block}.sum-row{border-bottom:1px dashed #f4ecdd12;justify-content:space-between;align-items:baseline;gap:10px;padding:4px 0;font-size:13.5px;display:flex}.sum-row span{color:var(--ink-soft)}.sum-row b{white-space:nowrap;color:var(--ink);font-weight:600}.sum-total{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:14px;padding-top:14px;display:flex}.sum-total .lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-size:12px}.sum-total .val{color:var(--gold);font-size:26px;font-weight:800}.priced{color:var(--ink-faint);margin:10px 0 14px;font-size:12.5px}.scrim{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#080603ad;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.sheet{background:var(--card);border:1px solid var(--line);border-radius:var(--r-28);box-shadow:var(--shadow);width:min(520px,100%);max-height:90vh;padding:22px;position:relative;overflow-y:auto}.choosecolor{max-width:55%;position:absolute;top:20px;right:22px}.fabrics{border-radius:var(--r-13);background:var(--bg-2);border:1px solid #e3ba3659;margin-bottom:14px;padding:12px}.fabhint{color:var(--ink-faint);margin:0 0 10px;font-size:13px}.fabgroup{letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright);margin:12px 0 6px;font-size:12px;font-weight:800}.fabgrid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.fabgrid img{object-fit:cover;border:1px solid var(--line);cursor:pointer;border-radius:9px;width:100%;height:110px;display:block}.fabgrid img.big{object-fit:contain;grid-column:1/-1;height:auto;max-height:none}.swatchpicker{margin-bottom:14px}.swplabel{letter-spacing:.04em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800;display:block}.swseries{gap:6px;display:grid}.swgrouphead{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-13);width:100%;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:700;display:flex}.swgrouphead small{color:var(--ink-faint);font-weight:500}.swgrouphead.open{border-color:var(--gold);background:var(--gold-tint)}.swgrid{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 2px;display:grid}.swatchbtn{border:2px solid var(--line);cursor:pointer;background:0 0;border-radius:9px;justify-items:center;gap:3px;padding:0 0 4px;font-family:inherit;display:grid;overflow:hidden}.swatchbtn img{object-fit:cover;width:100%;height:46px;display:block}.swatchbtn small{color:var(--ink-faint);font-size:9px;line-height:1.1}.swatchbtn.on{border-color:var(--gold)}.swatchbtn.on small{color:var(--gold-bright);font-weight:700}.sheet h3{margin-bottom:4px;font-size:19px}.sheet .sub{color:var(--ink-faint);margin:0 0 16px;font-size:13.5px}.sheet .row{gap:10px;margin-top:16px;display:flex}.sheet .row .btn{flex:1}label.f{margin-bottom:12px;display:block}label.f>span{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-size:12px;display:block}input.f,select.f,textarea.f{background:var(--bg-2);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-13);padding:12px 14px;font-family:inherit;font-size:15px}input.f:focus,select.f:focus,textarea.f:focus{outline:2px solid var(--gold);border-color:#0000}textarea.f{resize:vertical;min-height:74px}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.stepper{align-items:center;gap:10px;display:flex}.stepper button{cursor:pointer;background:var(--bg-2);border:1px solid var(--line);width:42px;height:42px;color:var(--ink);border-radius:12px;flex:none;font-family:inherit;font-size:20px}.stepper button:hover{border-color:var(--gold)}.stepper input{text-align:center}.stepper .unit{color:var(--ink-faint);white-space:nowrap;min-width:56px;font-size:13px}.prefilled{color:#a7ecc4;border-radius:var(--r-13);background:#25d3661a;border:1px solid #25d36647;margin:0 0 14px;padding:9px 12px;font-size:13px}.msg{border-radius:var(--r-13);margin:14px 0 0;padding:12px 14px;font-size:14px}.msg.bad{color:#f5a79d;background:#e0665a24;border:1px solid #e0665a59}.msg.good{color:#a7ecc4;background:#25d3661f;border:1px solid #25d3664d}.mobar{display:none}footer{border-top:1px solid var(--line);color:var(--ink-faint);padding:26px 0 40px;font-size:13px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:10px 20px;display:flex}.tutorial{padding:6px 18px 44px}body.planning .tutorial{max-width:1800px}.tutorial-panel{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:28px;padding:26px 28px;display:grid}.tutorial-copy .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);background:var(--gold-tint);border-radius:var(--r-pill);margin-bottom:12px;padding:6px 13px;font-size:12px;display:inline-block}.tutorial-panel h2{letter-spacing:-.01em;text-transform:none;color:var(--ink);margin:0 0 8px;padding:0;font-size:clamp(22px,2.6vw,30px)}.tutorial-copy>p{color:var(--ink-soft);margin:0 0 16px;font-size:15px}.tutorial-steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tutorial-steps button{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-13);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s,background .15s;display:grid}.tutorial-steps button:hover{background:var(--card-2);border-color:#e3ba3680}.tutorial-steps .n{background:var(--gold-tint);width:28px;height:28px;color:var(--gold-bright);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.tutorial-steps .txt{min-width:0;display:grid}.tutorial-steps b{font-size:14px;line-height:1.3}.tutorial-steps small{color:var(--ink-faint);font-size:12.5px;line-height:1.4}.tutorial-steps .t{color:var(--gold);font-variant-numeric:tabular-nums;font-size:12px}.tutorial-video video{aspect-ratio:16/9;border-radius:var(--r-13);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);background:#000;display:block}.tutorial-video .note{color:var(--ink-faint);text-align:center;margin:10px 0 0;font-size:12.5px}@media (max-width:1080px){:root{--rail:280px}}@media (max-width:900px){.builder{grid-template-columns:1fr;gap:14px;padding-bottom:96px}.stage{height:max(380px,100dvh - 185px)}.stage.side-open .stage-inner{padding-right:0}.stage-hint{max-width:calc(100% - 130px)}.itempanel{width:min(290px,100% - 20px);max-height:calc(100% - 70px)}.drawtools{max-width:calc(100% - 66px);left:10px;transform:none}.sum{grid-template-columns:1fr;gap:0}.sum-side{border-left:0;padding-left:0}.sum-side .sum-total:first-child{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.steps{grid-template-columns:1fr}.tutorial-panel{grid-template-columns:1fr;gap:18px;padding:20px 16px}.tutorial-video{order:-1}.mobar{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#131009f0;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobar .n{color:var(--ink-soft);font-size:13px}.mobar .n b{color:var(--gold);font-size:16px}.sheet{border-radius:var(--r-28) var(--r-28) 0 0;align-self:end;max-height:88vh}.scrim{align-items:end;padding:0}}@media (max-width:560px){.logo img{height:40px}}@media (max-width:420px){.itempanel{width:calc(100% - 20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-13);min-width:96px;color:var(--ink);cursor:pointer;flex:1;justify-items:center;gap:2px;padding:10px 6px;font-family:inherit;font-size:13px;font-weight:600;display:grid}.seg button small{color:var(--ink-faint);font-size:11px;font-weight:500}.seg button.on{border-color:var(--gold);background:var(--gold-tint)}.seg button.on small{color:var(--gold-bright)}.quote{background:var(--bg-2);border-radius:var(--r-13);border:1px solid #e3ba364d;gap:4px;margin-bottom:12px;padding:12px 14px;display:grid}.quote .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.quote .qrow{color:var(--ink-soft);justify-content:space-between;gap:10px;font-size:12.5px;display:flex}.quote .qrow b{color:var(--ink);white-space:nowrap;font-weight:600}.quote .qtotal{border-top:1px dashed #f4ecdd26;justify-content:space-between;align-items:baseline;margin-top:4px;padding-top:8px;display:flex}.quote .qtotal b{color:var(--gold);font-size:22px;font-weight:800}.sum-row .rm{color:var(--gold);text-align:right;font-size:12px;font-style:normal;display:block}.renders{margin-bottom:12px}.rgrid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.rimg{border-radius:var(--r-13);border:1px solid var(--line);width:100%}.rslot{aspect-ratio:1;border-radius:var(--r-13);background:var(--bg-2)}.pulse{animation:1.2s ease-in-out infinite alternate rpulse}@keyframes rpulse{0%{opacity:.45}to{opacity:1}}.rnote{color:var(--ink-faint);margin:8px 0 0;font-size:12px;line-height:1.5}.rgrid.one{grid-template-columns:1fr}.rgrid.one .rslot{aspect-ratio:2}.shape.poly .polysvg,.shape.dots .polysvg{pointer-events:none;position:absolute;top:0;left:0}.shape.poly .polysvg polygon{pointer-events:all}.stage.armed .shape *,.stage.tracing .shape *,.stage.armed .pin,.stage.tracing .pin{pointer-events:none!important}.grip.first{border-color:var(--ok);box-shadow:0 0 0 4px #25d36659,0 2px 6px #00000073}.dotpt{width:13px;height:13px;transform:translate(-50%, -50%) scale(var(--inv,1));cursor:var(--cur-hand);touch-action:none;z-index:3;border:2px solid #fff;border-radius:50%;padding:0;position:absolute;box-shadow:0 0 0 1.5px #0000008c,0 1px 4px #0006}.dotpt:active{cursor:var(--cur-fist)}.dotpt.first{width:17px;height:17px;box-shadow:0 0 0 2px #000000a6,0 1px 4px #0006}.shape.dots.on .dotpt{box-shadow:0 0 0 3px #e3ba36cc,0 1px 4px #0006}.shape.dots .shape-n.dotn{transform:translate(30%, -130%) scale(var(--inv,1))}.linkgrip{width:22px;height:22px;transform:translate(-50%, -50%) scale(var(--inv,1));cursor:var(--cur-hand);touch-action:none;z-index:5;background:#ffffff59;border:2px dashed #4e9ad6;border-radius:50%;padding:0;position:absolute}.linkgrip:active{cursor:var(--cur-fist);background:#4e9ad64d;border-style:solid}.planpane .foot .del,.scaletip .del{color:var(--clay)}:root{--cur-cross:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cg stroke='white' stroke-width='4.6' stroke-linecap='round'%3E%3Cline x1='12' y1='2' x2='12' y2='9'/%3E%3Cline x1='12' y1='15' x2='12' y2='22'/%3E%3Cline x1='2' y1='12' x2='9' y2='12'/%3E%3Cline x1='15' y1='12' x2='22' y2='12'/%3E%3C/g%3E%3Cg stroke='%23E5484D' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='12' y1='2' x2='12' y2='9'/%3E%3Cline x1='12' y1='15' x2='12' y2='22'/%3E%3Cline x1='2' y1='12' x2='9' y2='12'/%3E%3Cline x1='15' y1='12' x2='22' y2='12'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='1.7' fill='%23E5484D'/%3E%3C/svg%3E") 12 12, crosshair;--cur-hand:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cg fill='%23F3D843' stroke='%234A3608' stroke-width='1.4'%3E%3Crect x='4.6' y='5.5' width='3.4' height='9' rx='1.7'/%3E%3Crect x='8.9' y='3.5' width='3.4' height='10' rx='1.7'/%3E%3Crect x='13.2' y='4' width='3.4' height='10' rx='1.7'/%3E%3Crect x='17.5' y='6' width='3.4' height='8' rx='1.7'/%3E%3Crect x='4.6' y='10.5' width='16.3' height='11' rx='5.5'/%3E%3C/g%3E%3C/svg%3E") 13 13, grab;--cur-fist:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cg fill='%23F3D843' stroke='%234A3608' stroke-width='1.4'%3E%3Crect x='4.6' y='8.5' width='3.4' height='6' rx='1.7'/%3E%3Crect x='8.9' y='7.5' width='3.4' height='6' rx='1.7'/%3E%3Crect x='13.2' y='7.8' width='3.4' height='6' rx='1.7'/%3E%3Crect x='17.5' y='8.8' width='3.4' height='5.5' rx='1.7'/%3E%3Crect x='4.6' y='11.5' width='16.3' height='10' rx='5'/%3E%3C/g%3E%3C/svg%3E") 13 13, grabbing}.stage{cursor:var(--cur-hand)}.stage.armed,.stage.tracing{cursor:var(--cur-cross)}.stage.grabbing{cursor:var(--cur-fist)}.pin,.grip{cursor:var(--cur-hand)}.pin:active,.grip:active{cursor:var(--cur-fist)}.swatches{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.swatch{border:2px solid var(--line);border-radius:var(--r-13);background:var(--bg-2);cursor:pointer;color:var(--ink);text-align:center;gap:1px;padding:0 0 6px;font-family:inherit;display:grid;overflow:hidden}.swatch img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.swatch b{margin-top:4px;font-size:11.5px;font-weight:600}.swatch small{color:var(--ink-faint);font-size:10px}.swatch.on{border-color:var(--gold);box-shadow:0 0 0 2px #e3ba3659}.swatch.on b{color:var(--gold-bright)}.catgrid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.catcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-13);color:var(--ink);text-align:center;gap:2px;padding:0 0 8px;text-decoration:none;display:grid;overflow:hidden}.catcard:hover{border-color:var(--gold)}.catcard img{object-fit:cover;object-position:top;background:#fff;width:100%;height:92px;display:block}.catcard b{margin-top:6px;font-size:13px}.catcard small{color:var(--ink-faint);font-size:11px}.catcard.on{border-color:var(--gold);background:var(--gold-tint)}.catcard{cursor:pointer;text-align:center;font-family:inherit}
