:root{--primary:#0f5132;--accent:#d4a017;--ink:#14171f;--muted:#5d6472;--line:#e3e6ec;--bg:#f5f6f8;--card:#ffffff;--radius:14px}*{box-sizing:border-box}body,html{margin:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:15px;margin-top:20px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}a{color:var(--primary)}.shell{min-height:100vh}.shell.embed{min-height:0;background:transparent}.top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--primary);color:#fff}.top a{color:#fff;text-decoration:none;font-weight:600;white-space:nowrap}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.brand img{height:36px;max-width:160px;object-fit:contain;background:#fff;border-radius:6px;padding:2px}.mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--primary);font-weight:800}main{padding:24px 16px 48px}.embed main{padding:8px}.wizard{max-width:1180px;margin:0 auto}.card{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.04)}.narrow{max-width:560px;margin:0 auto}.center{text-align:center}.muted{margin:0 0 16px}.fine,.muted{color:var(--muted)}.fine{font-size:12px;margin:10px 0 0}.error{max-width:560px;margin:0 auto 12px;background:#fdecec;color:#8a1c1c;padding:10px 14px;border-radius:10px}label{display:block;font-size:14px;font-weight:600;margin:0 0 14px;flex:1 1;min-width:0}input,select,textarea{display:block;width:100%;margin-top:6px;padding:12px;font:inherit;font-weight:400;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}input[type=color]{height:46px;padding:4px}input[type=checkbox],input[type=radio]{display:inline-block;width:18px;height:18px;flex:0 0 18px;margin:0;padding:0;border-radius:4px;accent-color:var(--primary)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:transparent}textarea{resize:vertical;font-size:14px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}details{margin:0 0 16px}summary{cursor:pointer;color:var(--muted);font-size:14px;margin-bottom:10px}.primary,.secondary,button{font:inherit;cursor:pointer;border-radius:10px;border:0;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary{background:var(--primary);color:#fff}.primary:hover{filter:brightness(1.1)}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.secondary:hover{border-color:var(--primary)}.big{padding:14px 20px;font-size:16px;flex:1 1}button:disabled{opacity:.55;cursor:default}.link{background:none;color:var(--muted);text-decoration:underline;padding:6px 4px;font-weight:500}.spinner{width:44px;height:44px;margin:8px auto 16px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.check{width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:28px}.photo{width:100%;border-radius:10px;display:block;margin:0 0 16px}.upload input{display:none}.upload span{display:block;text-align:center;padding:40px 16px;border:2px dashed var(--line);border-radius:12px;color:var(--primary);font-size:17px;cursor:pointer}.upload span:hover{border-color:var(--primary)}.tracer-img{position:relative;touch-action:none;cursor:crosshair;margin-bottom:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tracer-img img{width:100%;display:block;border-radius:10px}.tracer-img svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.design{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);grid-gap:20px;gap:20px;align-items:start}.preview{position:-webkit-sticky;position:sticky;top:12px}.tabs{display:flex;gap:6px;margin-bottom:8px}.tabs button{background:#fff;border:1px solid var(--line);padding:6px 12px;font-size:14px}.tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.preview-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.ba{position:relative;border-radius:var(--radius);overflow:hidden;background:#000;box-shadow:0 10px 30px rgba(0,0,0,.18)}.ba-before{width:100%;display:block}.ba-after{position:absolute;inset:0}.ba-after canvas,.ba-after img{width:100%;height:100%;display:block;object-fit:cover}.ba-handle{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.5);pointer-events:none}.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.ba-label{position:absolute;bottom:10px;font-size:12px;font-weight:600;color:#fff;background:rgba(0,0,0,.5);padding:4px 8px;border-radius:6px;pointer-events:none}.ba-label.left{left:10px}.ba-label.right{right:10px}.options{background:var(--card);border-radius:var(--radius);padding:4px 20px 20px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.products{display:grid;grid-gap:8px;gap:8px}.product{position:relative;display:grid;grid-template-columns:auto 1fr;grid-column-gap:12px;column-gap:12px;text-align:left;background:#fff;border:2px solid var(--line);padding:12px;font-weight:400}.product.on{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.product b{grid-column:2}.product small{grid-column:2;color:var(--muted);font-size:13px}.swatches{grid-row:1/span 2;width:64px;display:flex;gap:3px;align-items:center;justify-content:center;align-self:center;background:#1a1f2e;padding:8px 6px;border-radius:8px}.swatches i{width:11px;height:14px;border-radius:50% 50% 45% 45%;display:block}.tag{position:absolute;top:8px;right:8px;font-style:normal;font-size:11px;background:var(--accent);color:#111;padding:2px 6px;border-radius:99px;font-weight:700}.seg{display:flex;background:var(--bg);border-radius:10px;padding:4px}.seg button{flex:1 1;background:none;font-weight:500}.seg button.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1);font-weight:700}.addon{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.addon small{display:block;color:var(--muted);font-size:13px}.stepper{display:flex;align-items:center;gap:4px}.stepper button{width:32px;height:32px;padding:0;background:var(--bg);font-size:18px}.stepper span{min-width:44px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote{margin-top:20px;padding:16px;border-radius:12px;background:color-mix(in srgb,var(--primary) 7%,#fff)}.quote .price{font-size:32px;font-weight:800;color:var(--primary);margin:2px 0 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote small{display:block}.quote details{margin:10px 0 14px}.quote table{width:100%;font-size:14px;border-collapse:collapse}.quote td{padding:5px 0;vertical-align:top}.quote td:last-child{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote td small{color:var(--muted);font-size:12px}.quote .primary{width:100%}@media (max-width:860px){.design{grid-template-columns:1fr}.preview{position:static}h1{font-size:24px}.brand{font-size:16px}.top{padding:12px 16px;gap:10px}.card{padding:18px}}.scene .ba{touch-action:none}.editor{position:absolute;inset:0;width:100%;height:100%;cursor:default}.editor.tool-bush,.editor.tool-outline,.editor.tool-roofline,.editor.tool-scale,.editor.tool-tree{cursor:crosshair}.editor .el .shape{fill:none;stroke:transparent;stroke-width:3;vector-effect:non-scaling-stroke}.editor .el path.shape{pointer-events:none}.editor .el .hitline{fill:none;stroke:transparent;stroke-width:26px;vector-effect:non-scaling-stroke;cursor:pointer}.editor .el ellipse.shape{fill:transparent;cursor:pointer}.editor .el.on .shape{stroke:rgba(255,255,255,.35);stroke-width:1px;stroke-dasharray:1 5}.editor .el.off .shape{stroke:rgba(255,255,255,.75);stroke-width:1.5px;stroke-dasharray:5 5;filter:drop-shadow(0 0 1px rgba(0,0,0,.6))}.editor .el.off ellipse.shape{fill:rgba(255,255,255,.06)}.editor .el.sel .shape{stroke:var(--accent);stroke-dasharray:none;stroke-width:2px}.editor .el.draft .shape,.editor .el.scale .shape{stroke:var(--accent);stroke-width:3}.editor .el.scale .shape{stroke:#22d3ee}.editor .dot{fill:#fff;stroke:var(--primary);stroke-width:3}.editor .dot,.editor .mid{vector-effect:non-scaling-stroke;pointer-events:none}.editor .mid{fill:var(--accent);stroke:#fff;stroke-width:2;opacity:.9}.editor .grab{fill:transparent;cursor:-webkit-grab;cursor:grab}.chip{position:absolute;transform:translate(-50%,-100%);height:22px;padding:0 8px;border-radius:99px;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;letter-spacing:.01em;background:rgba(15,18,26,.55);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:pointer}.chip:hover{background:rgba(15,18,26,.75)}.toolbar{background:var(--card);border-radius:12px;padding:12px;margin-top:10px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.toolbar .help{margin:0 0 10px;font-size:14px;color:var(--muted)}.toolbar .tools{display:flex;flex-wrap:wrap;gap:8px}.toolbar .row,.toolbar .tools{align-items:center}.sel-info{font-weight:600;flex:1 1}label.inline{display:flex;align-items:center;gap:6px;margin:0;flex:0 1 auto;font-weight:500}label.inline input{width:80px;margin:0;padding:8px}.upload.small{display:inline-block;margin:0;flex:0 0 auto}.upload.small span{display:inline-block;padding:6px 12px;font-size:14px;border-width:1px;border-radius:8px}.tabs{flex-wrap:wrap;align-items:center}.small{font-size:13px}.seg.mini{padding:3px}.seg.mini button{padding:6px 12px;font-size:14px}.fine.note{margin:0 0 6px}.selbar{margin-bottom:10px}.studio .top .brand{color:#fff;text-decoration:none}.who{font-size:14px;color:#fff}.link.light{color:#fff;padding:0}.wide{max-width:820px}.spread{justify-content:space-between;align-items:center;margin-bottom:12px}.installers{list-style:none;padding:0;margin:0}.installers li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.installers li>div{flex:1 1;min-width:0}.installers small{display:block;color:var(--muted)}.installers .dot{width:14px;height:14px;border-radius:50%;flex:none}.builder{max-width:880px;margin:0 auto;display:grid;grid-gap:16px;gap:16px;padding-bottom:140px}.builder h2{margin-bottom:4px}.builder .item{border:1px solid var(--line);border-radius:12px;padding:14px 14px 6px;margin-bottom:12px}.builder .item.row{padding-bottom:0}.builder label.short{flex:0 1 150px}.builder label.color{flex:0 0 110px}.builder label.checkline{display:flex;width:auto;height:auto;margin:0 0 12px;border-radius:0;background:none;color:inherit;font-size:14px;gap:8px;align-items:center;font-weight:600}.builder label.checkline input{margin:0}.builder label.checkline span{flex:1 1}.builder .seg{margin-bottom:14px}.prefixed{display:flex;align-items:center;margin-top:6px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.prefixed span{padding:0 4px 0 12px;color:var(--muted);font-weight:400}.prefixed input{margin:0;border:0;padding-left:0}.prefixed input:disabled{background:#fff;color:var(--muted)}.logo-preview{height:46px;max-width:140px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:4px;margin-bottom:14px}.pattern{flex:1 1 260px;margin-bottom:14px}.pattern .label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.bulbs{display:flex;gap:6px;flex-wrap:wrap;background:#1a1f2e;padding:10px;border-radius:10px;min-height:42px}.bulbs button{width:18px;height:22px;padding:0;border-radius:50% 50% 45% 45%}.palette{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.palette .custom,.palette button{width:26px;height:26px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.palette .custom{display:grid;place-items:center;margin:0;font-weight:700;cursor:pointer;flex:none;background:conic-gradient(red,yellow,lime,aqua,blue,magenta,red);color:#fff;text-shadow:0 0 2px #000;position:relative;overflow:hidden}.palette .custom input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0;padding:0}.link.danger{color:#b42318}select.add{max-width:320px}.savebar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:12px;justify-content:flex-end;align-items:center;padding:12px 20px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);z-index:5;flex-wrap:wrap}.savebar .big{flex:0 0 auto}.savebar .ok{color:#067647;font-weight:600}.error.inline{margin:0;flex:1 1}.swatches .rainbow{width:44px;height:14px;border-radius:99px;background:linear-gradient(90deg,#ff2b2b,#ffb000,#26d94a,#2f6bff,#8a3dff,#ff5fa8)}.product.other b{color:var(--ink)}label.other-colors{margin:10px 0 0}.mobile-cta{display:none}@media (max-width:860px){.mobile-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;gap:12px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.08)}.mobile-cta div{flex:1 1;min-width:0}.mobile-cta small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-cta b{font-size:20px;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mobile-cta .primary{padding:12px 18px;flex:none}.design{padding-bottom:76px}main{padding:16px 12px 40px}.options{padding:4px 16px 16px}.toolbar .tools{display:grid;grid-template-columns:1fr 1fr}.toolbar .tools .link{grid-column:1/-1;justify-self:start}.preview-actions>button:first-child,.toolbar .row button{flex:1 1}.quote .price{font-size:28px}.stepper button{width:40px;height:40px}.ba-label{font-size:11px;bottom:8px}input,select,textarea{font-size:16px}}.packages{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px;gap:8px}.package{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px;text-align:left;background:#fff;border:2px solid var(--line);padding:14px 12px 12px;font-weight:400}.package.on{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.package b{font-size:16px}.package .pkg-price{font-size:20px;font-weight:800;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.package small{color:var(--muted);font-size:12px;line-height:1.35}.package small.save{color:#067647;font-weight:700}.package .tag{top:-9px;right:8px}.schedule h3{margin-top:18px}.schedule .seg{margin:-4px 0 6px}.methods{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.method{background:#fff;border:2px solid var(--line);padding:12px;font-weight:600}.method.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,#fff)}.schedule .actions{margin-top:20px;flex-wrap:nowrap}.pay{display:grid;grid-gap:8px;gap:8px;justify-items:center;margin:16px 0;padding:16px;border-radius:12px;background:color-mix(in srgb,var(--primary) 7%,#fff)}.pay small{color:var(--muted)}.builder .includes{align-items:center;gap:4px 16px;margin-bottom:8px}.builder .includes .fine{margin:0}.builder .includes label.checkline{margin:0;flex:0 0 auto}