:root{--film:#eef1f0e6;--film-solid:#eef1f0;--graphite:#23282c;--pencil:#6b7378;--rule:#23282c29;--cobalt:#2350c8;--redline:#c8372d;--clay:#c9c2b6;--room:#f7f8f6;--gap:12px;--radius-chip:10px;--radius-sheet:18px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--font:"Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{overscroll-behavior:none;background:#c9cdca;height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--graphite);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.4}canvas.view{touch-action:none;outline:none;width:100vw;height:100dvh;display:block;position:fixed;inset:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.hud{pointer-events:none;z-index:10;position:fixed;inset:0}.hud>*{pointer-events:auto}.film{background:var(--film);-webkit-backdrop-filter:blur(14px)saturate(1.1)}.top{top:calc(var(--safe-t) + var(--gap));left:calc(var(--safe-l) + var(--gap));border-radius:var(--radius-chip);background:var(--film);-webkit-backdrop-filter:blur(14px);pointer-events:none;max-width:min(62vw,420px);padding:9px 13px 10px;position:absolute}.address{color:var(--pencil);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12.5px;overflow:hidden}.address .city{color:var(--pencil)}.room{flex-wrap:wrap;align-items:baseline;column-gap:10px;margin:2px 0 0;display:flex}.room-name{letter-spacing:-.01em;font-size:19px;font-weight:650}.room-dims{font-variation-settings:"wdth" 72;font-variant-numeric:tabular-nums;border-bottom:1.5px solid var(--graphite);padding-bottom:1px;font-size:16px;font-weight:560}.room-dims:empty{display:none}.room-dims.conf-derived,.room-dims.conf-inferred{border-bottom-style:dashed}.room-dims.conf-assumed{border-bottom-color:var(--redline)}.badge{font-variation-settings:"wdth" 80;color:var(--pencil);margin:3px 0 0;font-size:11.5px}.staging-chip{font-variation-settings:"wdth" 80;width:-moz-fit-content;width:fit-content;color:var(--film-solid);background:var(--redline);border-radius:6px;margin:5px 0 0;padding:2px 7px;font-size:11.5px;font-weight:600}.minimap{top:calc(var(--safe-t) + var(--gap));right:calc(var(--safe-r) + var(--gap));aspect-ratio:1.45;border-radius:var(--radius-chip);background:var(--film);-webkit-backdrop-filter:blur(14px);cursor:pointer;border:0;width:clamp(112px,30vw,190px);padding:6px;position:absolute}.minimap svg{width:100%;height:100%;display:block}.rail{right:calc(var(--safe-r) + var(--gap));bottom:calc(var(--safe-b) + var(--gap) + var(--notice-h,64px) + 10px);flex-direction:column;gap:8px;display:flex;position:absolute}.rail button{background:var(--film);-webkit-backdrop-filter:blur(14px);cursor:pointer;border:0;border-radius:24px;justify-content:flex-start;align-items:center;gap:8px;min-width:52px;height:48px;padding:0 14px 0 12px;font-size:14px;font-weight:560;transition:background-color .15s;display:flex}.rail button svg{flex:none;width:22px;height:22px}.rail button[aria-pressed=true]{background:var(--graphite);color:var(--film-solid)}.notice{left:calc(var(--safe-l) + var(--gap));bottom:calc(var(--safe-b) + var(--gap));right:calc(var(--safe-r) + var(--gap));text-align:left;border-radius:var(--radius-chip);background:var(--film);-webkit-backdrop-filter:blur(14px);cursor:pointer;border:0;flex-direction:column;gap:1px;max-width:560px;padding:7px 12px;display:flex;position:absolute}.notice-state{font-size:13px;font-weight:620}.notice-state:before{content:"";background:var(--graphite);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.notice-state.bad{color:var(--redline)}.notice-state.bad:before{background:var(--redline)}.notice-text{color:var(--pencil);font-size:12px}.toast{left:50%;bottom:calc(var(--safe-b) + var(--gap) + var(--notice-h,64px) + 12px);opacity:0;max-width:calc(100vw - 2 * var(--gap) - 80px);background:var(--graphite);color:var(--film-solid);pointer-events:none;text-align:center;border-radius:20px;padding:8px 14px;font-size:13.5px;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-50%,8px)}.toast.show{opacity:1;transform:translate(-50%)}.tour{left:calc(var(--safe-l) + var(--gap));bottom:calc(var(--safe-b) + var(--gap) + var(--notice-h,64px) + 10px);max-width:min(440px, calc(100vw - 2 * var(--gap) - 84px - var(--safe-l) - var(--safe-r)));border-radius:var(--radius-chip);color:var(--film-solid);opacity:0;pointer-events:none;transition:opacity .25s;position:absolute}.tour.on{opacity:1;-webkit-backdrop-filter:blur(10px);background:#23282cd6;padding:10px 14px 11px}.tour-now{letter-spacing:-.005em;margin:0;font-size:16.5px;font-weight:640;line-height:1.3}.tour-count{letter-spacing:.06em;text-transform:uppercase;opacity:.72;font-variant-numeric:tabular-nums;margin-bottom:1px;font-size:11.5px;font-weight:600;display:block}.tour-hint{opacity:.72;margin:3px 0 0;font-size:12.5px}.tour-bar{background:#eef1f03d;border-radius:1px;height:2px;margin-top:9px;display:block;overflow:hidden}.tour-bar i{background:var(--film-solid);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.tour-start{background:var(--graphite);width:100%;min-height:56px;color:var(--film-solid);text-align:left;cursor:pointer;border:0;border-radius:14px;align-items:center;gap:12px;margin:0 0 12px;padding:10px 16px 10px 14px;display:flex}.tour-start svg{flex:none;width:26px;height:26px}.tour-start>span{flex-direction:column;gap:1px;display:flex}.tour-start-title{font-size:16.5px;font-weight:650}.tour-start-sub{opacity:.78;font-size:12.5px}.sheet{background:var(--film-solid);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;max-height:86dvh;box-shadow:0 -1px 0 var(--rule);padding-bottom:var(--safe-b);flex-direction:column;animation:.22s cubic-bezier(.2,.8,.2,1) rise;display:flex;position:absolute;bottom:0;left:0;right:0}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.sheet-head{justify-content:space-between;align-items:center;padding:14px 14px 6px 20px;display:flex}.sheet-head h2{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:680}.close{cursor:pointer;background:0 0;border:0;border-radius:22px;width:44px;height:44px}.close svg{width:22px;height:22px}.sheet-body{-webkit-overflow-scrolling:touch;padding:0 20px 18px;overflow:auto}.sheet-plan{top:calc(var(--safe-t) + 8px);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;max-height:none}.sheet-plan .sheet-body{flex-direction:column;flex:1;padding:0 8px 12px;display:flex}.plan-wrap{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.plan-zoom{gap:6px;display:flex;position:absolute;bottom:8px;right:8px}.plan-zoom button{border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:22px;min-width:44px;height:44px;padding:0 12px;font-size:18px;font-weight:600}.plan-zoom button[data-z=fit]{font-size:14px}.level-tabs{gap:6px;padding:0 12px 8px;display:flex}.level-tabs button{border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:18px;min-height:40px;padding:8px 14px;font-size:14px}.level-tabs button[aria-selected=true]{background:var(--graphite);color:var(--film-solid);border-color:var(--graphite)}.plan-wrap svg{width:100%;height:100%;min-height:260px}.legend{padding:4px 12px 0}.legend .hint{margin:2px 0 6px;font-weight:600}.legend ul{color:var(--pencil);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.lg{vertical-align:4px;border-top:1.5px solid var(--graphite);width:22px;height:0;margin-right:6px;display:inline-block}.lg-open{border-top:1.5px dotted var(--pencil)}.lg-assumed{border:1.5px solid var(--redline);background:var(--clay);vertical-align:0;border-radius:6px;height:10px}.lede{color:var(--graphite);max-width:62ch;margin:0 0 12px}.list{margin:0;padding:0;list-style:none}.list li+li{border-top:1px solid var(--rule)}.list button{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:12px;width:100%;padding:13px 2px;display:flex}.li-title{font-weight:600}.li-sub{color:var(--pencil);font-variation-settings:"wdth" 80;white-space:nowrap;font-size:13px}.table-wrap{margin:0 -4px 6px;overflow-x:auto}table.dims{border-collapse:collapse;width:100%;font-size:14px}table.dims th,table.dims td{text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap;padding:8px 4px}table.dims thead th{color:var(--pencil);font-size:12.5px;font-weight:560}table.dims td{font-variation-settings:"wdth" 76;font-variant-numeric:tabular-nums;font-size:15px}table.dims tbody th{font-weight:600}table.dims tr.bad td:last-child{color:var(--redline);font-weight:700}table.dims td:last-child{text-align:right}.sheet h3{margin:18px 0 6px;font-size:15px;font-weight:680}.facts,.requests{max-width:64ch;margin:0;padding-left:18px}.facts li,.requests li{margin:4px 0}.requests li.pri-high::marker{color:var(--redline)}.fine{color:var(--pencil);max-width:64ch;margin:16px 0 4px;font-size:12.5px}.seg{border:0;margin:4px 0 12px;padding:0}.seg legend{margin-bottom:8px;font-weight:650}.seg-row{flex-wrap:wrap;gap:6px;display:flex}.seg-row label{position:relative}.seg-row input{opacity:0;position:absolute;inset:0}.seg-row span{border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:18px;padding:9px 14px;font-size:14px;display:inline-block}.seg-row input:checked+span{background:var(--graphite);color:var(--film-solid);border-color:var(--graphite)}.seg-row input:focus-visible+span{outline:2px solid var(--cobalt);outline-offset:2px}.status{color:var(--pencil);margin:8px 0 0;font-size:13px}.row{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--graphite)}.row input[type=range]{width:46%;accent-color:var(--graphite)}.switch-backend{border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:18px;padding:8px 14px}svg.plan{font-family:var(--font)}.plan .room{fill:var(--room);stroke:none;cursor:pointer;transition:fill .15s}.plan .room-closet,.plan .room-utility{fill:#eceeec}.plan .room-patio{fill:#e4e6e3}.plan .room.current{fill:#dfe7fb}.plan .room.conf-inferred{stroke:var(--graphite);stroke-dasharray:.12 .08;stroke-width:.03px}.plan .room.conf-assumed{fill:var(--clay)}.plan .virtual-edge{stroke:var(--pencil);stroke-width:.025px;stroke-dasharray:.02 .09;stroke-linecap:round}.plan .walls{fill:var(--graphite)}.plan .mass{fill:var(--clay)}.plan .footprint{fill:none;stroke:var(--pencil);stroke-width:.03px;stroke-dasharray:.18 .1;pointer-events:none}.plan .footprint-label{text-anchor:middle;fill:var(--pencil);pointer-events:none;font-size:.22px}.plan .cloud{fill:none;stroke:var(--redline);stroke-width:.045px}.plan .mass-label{text-anchor:middle;fill:var(--graphite);font-size:.34px;font-weight:600}.plan .mass-note{text-anchor:middle;fill:var(--redline);font-size:.24px}.plan .window{stroke:var(--graphite);stroke-width:.018px}.plan .door-leaf{stroke:var(--graphite);stroke-width:.03px}.plan .door-arc{fill:none;stroke:var(--pencil);stroke-width:.014px}.plan .slider{stroke:var(--graphite);stroke-width:.03px}.plan .room-name{text-anchor:middle;fill:var(--graphite);pointer-events:none;font-size:.3px;font-weight:640}.plan .room-name.small{fill:var(--pencil);font-size:.2px;font-weight:520}.plan .room-dims{font-variation-settings:"wdth" 72;font-variant-numeric:tabular-nums;text-anchor:middle;fill:var(--graphite);pointer-events:none;font-size:.27px;font-weight:560}.plan .room-note{text-anchor:middle;fill:var(--pencil);pointer-events:none;font-size:.2px;font-style:italic}.plan .dimline,.plan .tick{stroke:var(--pencil);stroke-width:.012px;pointer-events:none}.plan .tick{stroke:var(--graphite);stroke-width:.022px}.plan .me-cone{fill:#2350c82e}.plan .me-halo{fill:#fff}.plan .me-dot{fill:var(--cobalt)}.plan .spot-cone{fill:#c8372d24}.plan .spot-dot{fill:var(--redline)}.plan .underlay{opacity:.45}.plan .ghost{fill:#23282c1f;pointer-events:none}.plan .stair{fill:#fbfbf9;stroke:var(--graphite);stroke-width:.02px}.plan .tread{stroke:var(--pencil);stroke-width:.012px}.plan .walkline{stroke:var(--graphite);stroke-width:.018px;fill:none;stroke-linecap:round}.plan .stair-label{letter-spacing:.04em;text-anchor:middle;fill:var(--graphite);pointer-events:none;font-size:.2px;font-weight:650}.plan .room-dims.scaled{font-style:normal}.plan .door-leaf.garage{stroke-dasharray:.16 .06}.plan .door-leaf.pocket{stroke-dasharray:.08 .05;stroke-width:.02px}.plan-mini .stair{fill:#e3e5e2;stroke:none}.plan-mini .room{cursor:inherit}.plan-mini .walls{fill:var(--graphite)}.plan-mini .me-cone{fill:#2350c847}.joy{z-index:20;pointer-events:none;background:#eef1f038;border:1.5px solid #eef1f0bf;border-radius:50%;width:112px;height:112px;position:fixed;top:0;left:0}.joy-knob{background:#eef1f0eb;border-radius:50%;width:44px;height:44px;position:absolute;top:34px;left:34px;box-shadow:0 1px 3px #00000040}.coach{z-index:30;color:var(--film-solid);background:#14181a61;display:flex;position:fixed;inset:0}.coach>div{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.coach b{font-size:19px;font-weight:650}.coach span{max-width:30ch;font-size:14px}.coach.touch .coach-left{border-right:1px dashed #eef1f099;justify-content:flex-end;padding-bottom:28dvh}.coach.touch .coach-right{justify-content:flex-end;padding-bottom:28dvh}.loader{z-index:40;background:var(--film-solid);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;transition:opacity .5s;display:flex;position:fixed;inset:0}.loader.out{opacity:0;pointer-events:none}.loader svg{width:min(78vw,520px);height:auto}.loader-address{text-align:center;margin:0;font-size:20px;font-weight:680}.loader-msg{color:var(--pencil);text-align:center;max-width:40ch;margin:0}.loader-msg.err{color:var(--redline);font-weight:600}.loader .walls{fill:none;stroke:var(--graphite);stroke-width:.05px;stroke-dasharray:60;stroke-dashoffset:60px;animation:1.6s ease-out forwards draw}.loader .room{fill:#0000}.loader .me{display:none}@keyframes draw{to{stroke-dashoffset:0}}.hud.sheet-open .rail,.hud.sheet-open .notice,.hud.sheet-open .tour{visibility:hidden}@media (max-width:480px){.rail button{padding:0 13px}.rail button span{display:none}}@media (orientation:landscape) and (max-height:500px){.sheet{width:min(460px,60vw);left:auto;top:calc(var(--safe-t) + 8px);border-radius:var(--radius-sheet) 0 0 var(--radius-sheet);max-height:none;right:var(--safe-r)}.sheet-plan{width:min(720px,72vw)}.rail{bottom:calc(var(--safe-b) + var(--gap));flex-direction:row}.toast{bottom:calc(var(--safe-b) + var(--gap) + 66px)}.rail button span{display:none}.notice{max-width:46vw;right:auto}.notice-text{display:none}.minimap{width:150px}}@media (prefers-reduced-motion:reduce){.loader .walls{stroke-dashoffset:0;animation:none}.sheet{animation:none}.toast,.tour{transition:none}}
