:root{--paper:#eceee8;--paper-2:#f4f5f1;--sheet:#fbfbf8;--ink:#1b2220;--ink-2:#5a645f;--line:#cdd2c9;--line-2:#e2e5de;--accent:#2346c8;--accent-soft:#e2e7fa;--on-accent:#fff;--ok:#2d7a4c;--ok-soft:#dfefe5;--warn:#9a5f0c;--warn-soft:#f5e9d3;--bad:#b23a3a;--bad-soft:#f6e0de;--shadow:0 1px 2px #1b222014;--shadow-lg:0 12px 32px #1b222024;--site:#e3e9da;--street:#d3d6cf;--hatch:#c9d2bf;--r-living:#f1e0be;--r-kitchen:#eed3b5;--r-bed:#d6e0f1;--r-wet:#cbe6df;--r-circ:#e6e7e1;--r-service:#e5ddeb;--r-garage:#dcddd6;--r-terrace:#d8e8c6;--r-stairs:#e0e1da;--e-ground:#d9ddd2;--glass:#40525e;--e-shadow:#9aa3a0;--modern-wall:#e8e8e3;--modern-trim:#2a2f2d;--modern-acc:#a9774a;--med-wall:#f0e4ce;--med-trim:#6f5134;--med-acc:#b9603c;--min-wall:#f6f6f2;--min-trim:#3b3f3d;--min-acc:#8e9590;--and-wall:#f7f4ec;--and-trim:#1f6a73;--and-acc:#2c7a84;--f-display:"Bricolage Grotesque","Archivo",system-ui,sans-serif;--f-body:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#111513;--paper-2:#161b19;--sheet:#1b201e;--ink:#e5eae4;--ink-2:#99a39d;--line:#2f3733;--line-2:#252b28;--accent:#8199ff;--accent-soft:#1f2847;--on-accent:#0d1330;--ok:#6cc48f;--ok-soft:#173225;--warn:#e3ae5b;--warn-soft:#382a14;--bad:#f08a80;--bad-soft:#3a1e1c;--shadow:0 1px 2px #0006;--shadow-lg:0 12px 32px #00000080;--site:#18201a;--street:#262a27;--hatch:#2a3529;--r-living:#3b3322;--r-kitchen:#3c2f22;--r-bed:#233049;--r-wet:#1e3a35;--r-circ:#262b28;--r-service:#322839;--r-garage:#2a2c29;--r-terrace:#25331f;--r-stairs:#2b302d;--e-ground:#262b27;--glass:#5d7482;--e-shadow:#3a403e;--modern-wall:#c9c9c3;--modern-trim:#1e2221;--modern-acc:#9a6c43;--med-wall:#cfc2ab;--med-trim:#5e432a;--med-acc:#a35535;--min-wall:#d6d6d1;--min-trim:#2e3230;--min-acc:#7b827d;--and-wall:#d7d3c9;--and-trim:#1b5c64;--and-acc:#24676f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--paper);margin:0}body{color:var(--ink);font-family:var(--f-body);padding-block:0 56px;padding-inline:16px;font-size:14px;line-height:1.45}img{max-width:100%}a{color:var(--accent)}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.wrap{max-width:1500px;margin:0 auto}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-block:14px;display:flex}.brand{font-family:var(--f-display);letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.brand svg{flex:none;width:28px;height:28px}.nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nav a.link{color:var(--ink-2);border-radius:6px;padding:6px 10px;font-weight:500;text-decoration:none}.nav a.link:hover{color:var(--ink);background:var(--paper-2)}.plan-chip{font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line);border-radius:99px;padding:4px 9px;text-decoration:none}.btn{border:1px solid var(--line);background:var(--sheet);cursor:pointer;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink);background:var(--paper-2)}.btn.sm{padding:5px 10px;font-size:13px}.btn.danger{color:var(--bad)}.intro{grid-template-columns:minmax(0,1fr);align-items:end;gap:18px;padding-block:28px 22px;display:grid}@media (min-width:980px){.intro{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.eyebrow{font:500 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}h1{font-family:var(--f-display);letter-spacing:-.025em;text-wrap:balance;max-width:16ch;margin:0;font-size:clamp(28px,4.2vw,46px);font-weight:700;line-height:1.02}.lede{color:var(--ink-2);max-width:58ch;margin:12px 0 0;font-size:15px}.howto{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:560px){.howto{grid-template-columns:1fr}}.howto li{border-top:2px solid var(--ink);color:var(--ink-2);padding-top:8px;font-size:13px}.howto b{color:var(--ink);font-size:14px;font-weight:600;display:block}.howto .n{font:500 11px var(--f-mono);color:var(--accent);margin-bottom:2px;display:block}.cta-row{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.studio{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (min-width:900px){.studio{grid-template-columns:288px minmax(0,1fr)}.rightcol{grid-column:1/-1}}@media (min-width:1320px){.studio{grid-template-columns:288px minmax(0,1fr) 372px}.rightcol{grid-column:auto}}.panel{background:var(--sheet);border:1px solid var(--line);border-radius:12px;min-width:0}.ctl{align-content:start;gap:22px;padding:18px;display:grid}.sec{gap:10px;display:grid}.sec-h{font:500 11px var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);justify-content:space-between;gap:8px;margin:0;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field{gap:4px;min-width:0;display:grid}.field label,.lbl-sm{color:var(--ink-2);font-size:12px}.inp{border:1px solid var(--line);background:var(--paper-2);border-radius:8px;align-items:center;min-width:0;display:flex}.inp input,.inp select{width:100%;min-width:0;font:500 14px var(--f-mono);color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;padding:8px 0 8px 10px}.inp select{cursor:pointer;padding-right:6px}.inp .u{color:var(--ink-2);font:12px var(--f-mono);white-space:nowrap;padding:0 10px 0 4px}.inp:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.seg{border:1px solid var(--line);background:var(--paper-2);border-radius:9px;gap:3px;padding:3px;display:flex}.seg button{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;min-width:0;padding:7px 4px;font-size:13px;font-weight:500}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--sheet);color:var(--ink);box-shadow:var(--shadow), inset 0 0 0 1px var(--line)}.row{justify-content:space-between;align-items:center;gap:10px;display:flex}.step{border:1px solid var(--line);background:var(--paper-2);border-radius:8px;align-items:center;display:flex}.step button{cursor:pointer;width:32px;height:32px;color:var(--ink-2);background:0 0;border:0;border-radius:7px;font-size:17px}.step button:hover{color:var(--ink);background:var(--line-2)}.step output{text-align:center;min-width:26px;font:500 14px var(--f-mono)}.switch{flex:none;width:38px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch span{background:var(--line);pointer-events:none;border-radius:99px;transition:background .15s;position:absolute;inset:0}.switch span:after{content:"";background:var(--sheet);width:16px;height:16px;box-shadow:var(--shadow);border-radius:50%;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.styles{grid-template-columns:1fr 1fr;gap:8px;display:grid}.styles button{text-align:left;border:1px solid var(--line);background:var(--paper-2);cursor:pointer;border-radius:9px;justify-items:start;gap:6px;padding:9px 10px;font-size:13px;font-weight:500;display:grid}.styles button svg{width:44px;height:28px;color:var(--ink-2)}.styles button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--sheet)}.styles button[aria-pressed=true] svg{color:var(--accent)}.hint{color:var(--ink-2);margin:0;font-size:12px}.sizes{gap:8px;display:grid}.sizes .row span:first-child{font-size:13px}.sizes input[type=range]{width:92px;accent-color:var(--accent)}.board{align-content:start;gap:14px;padding:16px;display:grid;container-type:inline-size}.variants{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.vcard{text-align:left;border:1px solid var(--line);background:var(--paper-2);cursor:pointer;border-radius:10px;grid-template-columns:52px minmax(0,1fr);align-items:start;gap:12px;padding:10px;display:grid}.vcard:hover{border-color:var(--ink-2)}.vcard[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--sheet)}.vthumb{place-items:center;width:52px;height:64px;display:grid}.vthumb svg{max-width:52px;max-height:64px}.vtop{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.vkey{font:500 11px var(--f-mono);color:var(--ink-2);letter-spacing:.06em}.vscore{font:500 12px var(--f-mono);color:var(--ink)}.vname{margin-top:2px;font-size:14px;font-weight:600;line-height:1.25;display:block}.vblurb{color:var(--ink-2);margin-top:3px;font-size:12px;line-height:1.35;display:block}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;display:flex}.tabs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-weight:500}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.legend{color:var(--ink-2);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{border:1px solid var(--line);border-radius:3px;width:11px;height:11px;display:inline-block}.sheetgrid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.plan-wrap{border:1px solid var(--line-2);background:var(--sheet);border-radius:10px;min-width:0;padding:8px}.plan-wrap svg{width:100%;height:auto;max-height:700px;display:block}.side{align-content:start;gap:14px;min-width:0;display:grid}.elev-wrap{border:1px solid var(--line-2);background:var(--sheet);border-radius:10px;padding:10px 10px 6px}.elev-wrap svg{width:100%;height:auto;max-height:340px;display:block}.cap{font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.tblock{border:1px solid var(--ink);border-radius:2px;grid-template-columns:repeat(2,minmax(0,1fr));font-size:12px;display:grid}.tblock div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;padding:6px 8px}.tblock div:nth-child(2n){border-right:0}.tblock div:nth-last-child(-n+2){border-bottom:0}.tblock small{font:500 10px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);display:block}.tblock b{overflow-wrap:anywhere;font-weight:600}@container (min-width:760px){.elev-wrap{padding:12px 16px 8px}.elev-wrap svg{max-height:460px}.tblock{grid-template-columns:repeat(3,minmax(0,1fr))}.tblock div:nth-child(2n){border-right:1px solid var(--line)}.tblock div:nth-child(3n){border-right:0}.tblock div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.tblock div:nth-last-child(-n+3){border-bottom:0}}.error{border:1px solid var(--bad);background:var(--bad-soft);color:var(--ink);border-radius:10px;padding:14px 16px}.error b{color:var(--bad)}.plot{fill:var(--site);stroke:var(--ink-2);stroke-width:.05px;stroke-dasharray:.35 .2}.envl{fill:none;stroke:var(--accent);stroke-width:.04px;stroke-dasharray:.2 .15;opacity:.8}.street{fill:var(--street)}.street-t,.yard-t{font:500 .34px var(--f-mono);fill:var(--ink-2);letter-spacing:.06em}.wall-i{fill:none;stroke:var(--ink);stroke-width:.1px}.wall-e{fill:none;stroke:var(--ink);stroke-width:.25px}.gap-i{stroke:var(--sheet);stroke-width:.16px}.gap-e{stroke:var(--sheet);stroke-width:.32px}.leaf{stroke:var(--ink);stroke-width:.05px}.swing{fill:none;stroke:var(--ink-2);stroke-width:.03px;stroke-dasharray:.1 .07}.win{fill:var(--sheet);stroke:var(--ink);stroke-width:.035px}.winl{stroke:var(--ink);stroke-width:.03px}.rail{stroke:var(--ink);stroke-width:.06px;stroke-dasharray:.15 .1}.garl{stroke:var(--ink);stroke-width:.04px;stroke-dasharray:.25 .12}.tread{stroke:var(--ink-2);stroke-width:.025px}.st-arrow{fill:none;stroke:var(--ink);stroke-width:.04px}.st-head{fill:var(--ink)}.rl{font-family:var(--f-body);fill:var(--ink);font-weight:600}.ra{font-family:var(--f-mono);fill:var(--ink-2)}.dim line{stroke:var(--ink-2);stroke-width:.025px}.dim text{font-family:var(--f-mono);fill:var(--ink-2);font-size:.32px}.pad{fill:none;stroke:var(--ink-2);stroke-width:.04px;stroke-dasharray:.2 .12}.pad-t{font:600 .7px var(--f-display);fill:var(--ink-2)}.na circle{fill:var(--sheet);stroke:var(--ink-2);stroke-width:.03px}.na path{fill:var(--ink)}.na text{font:600 .34px var(--f-mono);fill:var(--ink)}.sb-a{fill:var(--ink)}.sb-b{fill:var(--sheet);stroke:var(--ink);stroke-width:.03px}.sb-t{font:.28px var(--f-mono);fill:var(--ink-2)}.elev-svg[data-style=modern]{--w:var(--modern-wall);--t:var(--modern-trim);--a:var(--modern-acc)}.elev-svg[data-style=mediterranean]{--w:var(--med-wall);--t:var(--med-trim);--a:var(--med-acc)}.elev-svg[data-style=minimal]{--w:var(--min-wall);--t:var(--min-trim);--a:var(--min-acc)}.elev-svg[data-style=andalusian]{--w:var(--and-wall);--t:var(--and-trim);--a:var(--and-acc)}.e-ground{fill:var(--e-ground)}.e-gline{stroke:var(--ink);stroke-width:.06px}.e-fence{stroke:var(--ink-2);stroke-width:.05px;stroke-dasharray:.15 .1}.e-wall{fill:var(--w);stroke:var(--t);stroke-width:.05px}.e-trim{fill:var(--t)}.e-acc{fill:var(--a)}.e-roof{fill:var(--a);stroke:var(--t);stroke-width:.05px}.e-tile{stroke:var(--t);stroke-width:.025px;opacity:.55}.e-glass{fill:var(--glass);stroke:var(--t);stroke-width:.06px}.e-frame{fill:none;stroke:var(--t);stroke-width:.16px}.e-mull{stroke:var(--w);stroke-width:.05px;opacity:.7}.e-shut{fill:var(--t);opacity:.9}.e-slat{stroke:var(--t);stroke-width:.03px;opacity:.45}.e-door{fill:var(--a);stroke:var(--t);stroke-width:.05px}.e-gar{fill:var(--e-shadow);stroke:var(--t);stroke-width:.05px}.e-garl{stroke:var(--t);stroke-width:.025px;opacity:.6}.e-recess{fill:var(--e-shadow)}.e-railing{stroke:var(--t);stroke-width:.05px}.e-zel{fill:var(--a)}.e-shade{fill:var(--t);opacity:.16}.e-soffit{fill:var(--t);opacity:.3}.e-slab{fill:var(--w);stroke:var(--t);stroke-width:.04px}.e-bglass{fill:var(--glass);opacity:.3;stroke:var(--t);stroke-width:.03px}.e-rail{fill:var(--t)}.e-bal{stroke:var(--t);stroke-width:.035px}.e-sill{fill:var(--t);opacity:.85}.e-plinth{fill:var(--t);opacity:.1}.e-handle,.e-door-min{fill:var(--t)}.e-handle-l{fill:var(--w)}.e-shine{fill:none;stroke:#fff;stroke-width:.04px;stroke-linecap:round;opacity:.22}.e-lvl{font-family:var(--f-mono);fill:var(--ink-2);font-size:.3px}.e-lvll{stroke:var(--ink-2);stroke-width:.02px;stroke-dasharray:.12 .1}.rightcol{align-content:start;gap:0;display:grid;overflow:hidden}.rightcol>.tabs{padding:8px 12px 0}.rc-body{align-content:start;gap:22px;padding:18px;display:grid;container-type:inline-size}.ins-grid{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}@container (min-width:720px){.ins-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.ins-col{align-content:start;gap:22px;min-width:0;display:grid}.score{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;display:grid}.score-n{font-family:var(--f-display);letter-spacing:-.03em;font-size:52px;font-weight:700;line-height:.9}.score-n small{font:500 13px var(--f-mono);color:var(--ink-2);letter-spacing:0;margin-left:2px}.bars{gap:7px;display:grid}.bar{color:var(--ink-2);grid-template-columns:78px minmax(0,1fr) 28px;align-items:center;gap:8px;font-size:12px;display:grid}.bar .t{background:var(--line-2);border-radius:99px;height:6px;overflow:hidden}.bar .t i{background:var(--accent);border-radius:99px;height:100%;display:block}.bar .v{font:500 12px var(--f-mono);color:var(--ink);text-align:right}.metrics{background:var(--line);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.metrics div{background:var(--sheet);min-width:0;padding:10px 12px}.metrics small{color:var(--ink-2);font-size:12px;display:block}.metrics b{font:500 17px var(--f-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:2px;display:block}.metrics em{color:var(--ink-2);font-size:11px;font-style:normal;font-family:var(--f-mono)}.metrics .wide{grid-column:1/-1}.notes{gap:8px;margin:0;padding:0;list-style:none;display:grid}.notes li{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;font-size:13px;line-height:1.45;display:grid}.chip{font:500 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:2px 6px;display:inline-block}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.info{background:var(--accent-soft);color:var(--accent)}.h2{font-family:var(--f-display);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700}.sub-h{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.tbl-wrap{overflow-x:auto}.sched{border-collapse:collapse;width:100%;font-size:13px}.sched th{font:500 10px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);text-align:left;border-bottom:1px solid var(--line);padding:6px}.sched td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:6px}.sched td.n{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.sched th.n{text-align:right}.sched tr.fl td{font:500 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line);padding-top:12px}.sched tr.tot td{border-bottom:0;border-top:1px solid var(--ink);font-weight:600}.sw{border:1px solid var(--line);border-radius:2px;width:9px;height:9px;margin-right:7px;display:inline-block}.copyrow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.status-ok{color:var(--ok);font-size:12px}.status-err{color:var(--bad);font-size:12px}.chat{grid-template-rows:auto minmax(0,1fr) auto;gap:12px;min-height:520px;display:grid}.chat-log{align-content:start;gap:12px;max-height:560px;padding-right:4px;display:grid;overflow-y:auto}.msg{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;max-width:92%;padding:10px 12px;font-size:13.5px;line-height:1.5}.msg.user{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px;justify-self:end}.msg.ai{background:var(--paper-2);border:1px solid var(--line);border-bottom-left-radius:4px;justify-self:start}.msg .change{font:500 11px var(--f-mono);color:var(--ok);margin-top:8px;display:block}.chat-empty{color:var(--ink-2);gap:10px;font-size:13px;display:grid}.suggest{flex-wrap:wrap;gap:6px;display:flex}.suggest button{border:1px solid var(--line);background:var(--paper-2);cursor:pointer;border-radius:99px;padding:5px 10px;font-size:12.5px}.suggest button:hover{border-color:var(--accent);color:var(--accent)}.chat-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.chat-form textarea{resize:vertical;border:1px solid var(--line);background:var(--paper-2);min-height:44px;max-height:160px;color:var(--ink);font:14px var(--f-body);border-radius:10px;padding:10px 12px}.chat-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.usage{font:500 11px var(--f-mono);color:var(--ink-2)}.typing{gap:4px;display:inline-flex}.typing i{background:var(--ink-2);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite blink}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.render-make{gap:10px;display:grid}.render-opts{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.render-opts button{text-align:left;border:1px solid var(--line);background:var(--paper-2);cursor:pointer;border-radius:10px;gap:2px;padding:10px;display:grid}.render-opts button:hover:not(:disabled){border-color:var(--accent)}.render-opts button:disabled{opacity:.55;cursor:wait}.render-opts b{font-size:13px}.render-opts span{color:var(--ink-2);font-size:12px}.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.gallery figure{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;margin:0;overflow:hidden}.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.gallery figcaption{color:var(--ink-2);justify-content:space-between;gap:6px;padding:6px 8px;font-size:12px;display:flex}.gallery a{font-size:12px}.render-pending{aspect-ratio:4/3;color:var(--ink-2);background:repeating-linear-gradient(45deg, var(--paper-2) 0 10px, var(--line-2) 10px 20px);place-items:center;font-size:12px;display:grid}.lock{border:1px dashed var(--line);background:var(--paper-2);border-radius:10px;gap:8px;padding:14px;display:grid}.lock b{font-size:14px}.projbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-block:14px;display:flex}.projbar .name{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.projbar input{font:700 22px var(--f-display);letter-spacing:-.01em;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;width:100%;min-width:0;max-width:520px;padding:4px 8px}.projbar input:hover{border-color:var(--line)}.projbar input:focus{border-color:var(--accent);outline:none}.save-state{font:500 11px var(--f-mono);color:var(--ink-2);white-space:nowrap}.dash{gap:22px;padding-block:28px;display:grid}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.pcard{color:var(--ink);gap:10px;padding:14px;text-decoration:none;display:grid}.pcard:hover{border-color:var(--ink-2)}.pcard .thumb{background:var(--paper-2);border-radius:8px;place-items:center;height:120px;display:grid}.pcard .thumb svg{max-height:104px}.pcard b{font-size:15px}.pcard small{color:var(--ink-2);font-size:12px}.pcard-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.empty{text-align:center;color:var(--ink-2);justify-items:center;gap:10px;padding:32px;display:grid}.quota{color:var(--ink-2);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.quota b{color:var(--ink);font-family:var(--f-mono);font-weight:500}.banner{border:1px solid var(--accent);background:var(--accent-soft);color:var(--ink);border-radius:10px;padding:12px 14px}.auth{place-items:center;min-height:70vh;padding-block:40px;display:grid}.auth .panel{gap:16px;width:100%;max-width:420px;padding:28px;display:grid}.auth h1{font-size:28px}.auth .or{color:var(--ink-2);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.auth .or:before,.auth .or:after{content:"";background:var(--line);height:1px}.auth input[type=email],.auth input#otp{border:1px solid var(--line);background:var(--paper-2);width:100%;color:var(--ink);font:15px var(--f-body);border-radius:8px;padding:10px 12px}.auth input[type=email]:focus,.auth input#otp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth input#otp{font:600 22px var(--f-mono);letter-spacing:.35em;text-align:center}.auth .btn{width:100%;padding:11px 14px}.pricing{gap:20px;padding-block:56px 8px;display:grid}.pricing h2{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(24px,3vw,32px);font-weight:700}.tiers{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.tier{align-content:start;gap:12px;padding:20px;display:grid}.tier.feat{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tier.current{border-color:var(--ok)}.tier h3{justify-content:space-between;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.price{font-family:var(--f-display);letter-spacing:-.02em;font-size:34px;font-weight:700;line-height:1}.price small{font:500 13px var(--f-body);color:var(--ink-2);letter-spacing:0}.tier ul{color:var(--ink-2);gap:7px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.tier li{padding-left:18px;position:relative}.tier li:before{content:"";border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);width:8px;height:5px;position:absolute;top:7px;left:2px;transform:rotate(-45deg)}.foot{border-top:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-top:16px;font-size:12px;display:flex}.print-set{display:none}@media print{@page{size:A4 portrait;margin:12mm}body{background:#fff;padding:0}body *{visibility:hidden}.print-set,.print-set *{visibility:visible}.print-set{color:#111;display:block;position:absolute;inset:0}.print-page{page-break-after:always;break-after:page;gap:8mm;display:grid}.print-page svg{width:100%;height:auto;max-height:230mm}.print-head{font:500 10pt var(--f-mono);border-bottom:1px solid #111;justify-content:space-between;padding-bottom:2mm;display:flex}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.print-set{--ink:#1b2220;--ink-2:#5a645f;--sheet:#fff;--line:#cdd2c9;--line-2:#e2e5de;--accent:#2346c8;--site:#eef2ea;--street:#e3e5e0;--r-living:#f1e0be;--r-kitchen:#eed3b5;--r-bed:#d6e0f1;--r-wet:#cbe6df;--r-circ:#eeefea;--r-service:#e5ddeb;--r-garage:#e4e5df;--r-terrace:#d8e8c6;--r-stairs:#e8e9e3;--e-ground:#d9ddd2;--glass:#40525e;--e-shadow:#9aa3a0;--modern-wall:#e8e8e3;--modern-trim:#2a2f2d;--modern-acc:#a9774a;--med-wall:#f0e4ce;--med-trim:#6f5134;--med-acc:#b9603c;--min-wall:#f6f6f2;--min-trim:#3b3f3d;--min-acc:#8e9590;--and-wall:#f7f4ec;--and-trim:#1f6a73;--and-acc:#2c7a84;color:#111;background:#fff}}.prefs{align-items:center;gap:6px;display:flex}.pref{border:1px solid var(--line);background:var(--sheet);color:var(--ink-2);border-radius:8px;align-items:center;gap:4px;height:34px;padding:0 8px;display:inline-flex;position:relative}.pref:hover{border-color:var(--ink-2);color:var(--ink)}.pref:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pref svg{flex:none;width:16px;height:16px}.pref-cur{font:600 13px var(--f-mono);text-align:center;min-width:14px}.pref select{appearance:none;color:var(--ink);font:500 13px var(--f-body);cursor:pointer;background:0 0;border:0;outline:none;max-width:150px;padding:6px 2px}select option,select optgroup{background-color:var(--sheet);color:var(--ink)}.inp select{background-color:var(--paper-2)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prefs[aria-busy=true]{opacity:.6}html[data-lang=ar]{--f-body:"IBM Plex Sans Arabic", "Archivo", system-ui, sans-serif;--f-display:"IBM Plex Sans Arabic", "Bricolage Grotesque", system-ui, sans-serif}html[data-lang=hi]{--f-body:"Noto Sans Devanagari", "Archivo", system-ui, sans-serif;--f-display:"Noto Sans Devanagari", "Bricolage Grotesque", system-ui, sans-serif}html[data-lang=ru]{--f-body:"Noto Sans", "Archivo", system-ui, sans-serif;--f-display:"Noto Sans", "Bricolage Grotesque", system-ui, sans-serif}html[data-lang=zh]{--f-body:"Archivo", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--f-display:"Bricolage Grotesque", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif}html[data-lang=ar] h1,html[data-lang=hi] h1,html[data-lang=ru] h1,html[data-lang=zh] h1{letter-spacing:0;line-height:1.15}html[data-lang=ar] .eyebrow,html[data-lang=ar] .sec-h,html[data-lang=ar] .cap{letter-spacing:0}[dir=rtl] .sched th,[dir=rtl] .vcard,[dir=rtl] .styles button,[dir=rtl] .render-opts button{text-align:right}[dir=rtl] .sched td.n,[dir=rtl] .sched th.n{text-align:left}[dir=rtl] .tier li{padding-left:0;padding-right:18px}[dir=rtl] .tier li:before{left:auto;right:2px}[dir=rtl] .msg.user{border-bottom-right-radius:12px;border-bottom-left-radius:4px}[dir=rtl] .msg.ai{border-bottom-right-radius:4px;border-bottom-left-radius:12px}[dir=rtl] .bar .v{text-align:left}[dir=rtl] .sw{margin-left:7px;margin-right:0}.ltr{direction:ltr;unicode-bidi:isolate}[dir=rtl] .flip{display:inline-block;transform:scaleX(-1)}html[data-lang=ar]{--f-mono:"JetBrains Mono", "IBM Plex Sans Arabic", ui-monospace, monospace}html[data-lang=hi]{--f-mono:"JetBrains Mono", "Noto Sans Devanagari", ui-monospace, monospace}html[data-lang=ru]{--f-mono:"JetBrains Mono", "Noto Sans", ui-monospace, monospace}html[data-lang=ar] :is(.eyebrow,.sec-h,.cap,.chip,.vkey,.usage,.tblock small,.sched th,.sched tr.fl td,.plan-chip,.howto .n,.save-state,.street-t,.yard-t),html[data-lang=hi] :is(.eyebrow,.sec-h,.cap,.chip,.vkey,.usage,.tblock small,.sched th,.sched tr.fl td,.plan-chip,.howto .n,.save-state,.street-t,.yard-t),html[data-lang=zh] :is(.eyebrow,.sec-h,.cap,.chip,.vkey,.usage,.tblock small,.sched th,.sched tr.fl td,.plan-chip,.howto .n,.save-state,.street-t,.yard-t){letter-spacing:0;text-transform:none;font-family:var(--f-body)}[dir=rtl] .metrics b{text-align:right;direction:ltr}[dir=rtl] .metrics b em{margin-right:4px}
