:root{--ivory-rgb:242 239 234;--paper-rgb:251 250 248;--stone-rgb:228 222 214;--ink-rgb:36 31 33;--night-rgb:43 38 37;--grey-300-rgb:152 143 139;--grey-500-rgb:122 113 109;--grey-700-rgb:82 73 69;--accent-rgb:43 60 203;--accent-soft-rgb:112 124 228;--sun-rgb:255 196 0;--ease:cubic-bezier(.19, 1, .22, 1);--ad-line:rgb(var(--ink-rgb) / .1);--ad-line-strong:rgb(var(--ink-rgb) / .17);--ad-hover:rgb(var(--ink-rgb) / .06);--ad-muted:rgb(var(--grey-700-rgb));--ad-shadow:0 18px 40px -22px rgb(var(--ink-rgb) / .5), inset 0 1px 0 #fff9;--bp-line:rgb(var(--ink-rgb) / .045);--bp-line-major:rgb(var(--ink-rgb) / .075);--bp-stroke:rgb(var(--ink-rgb) / .55);--font-sans:"Instrument Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gutter:24px;--side-w:300px;--col-w:360px;--corner-w:300px;--corner-h:136px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--font-sans);color:rgb(var(--ink-rgb));background-color:rgb(var(--ivory-rgb));background-image:linear-gradient(var(--bp-line-major) 1px, transparent 1px), linear-gradient(90deg, var(--bp-line-major) 1px, transparent 1px), linear-gradient(var(--bp-line) 1px, transparent 1px), linear-gradient(90deg, var(--bp-line) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-position:-1px -1px;background-size:120px 120px,120px 120px,24px 24px,24px 24px}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}#app{position:fixed;inset:0}#viewport{width:100%;height:100%;transition:opacity .55s var(--ease);outline:none;display:block;position:absolute;inset:0}#app[data-view=plan] #viewport{opacity:0;pointer-events:none}#markers{pointer-events:none;width:100%;height:100%;transition:opacity .4s var(--ease);position:absolute;inset:0;overflow:visible}#app[data-mode=plan] #markers,#app[data-transition=out] #markers{opacity:0;pointer-events:none}#app[data-mode=plan] #markers *{pointer-events:none!important}#plan-host{pointer-events:none;position:absolute;inset:0}#hud{pointer-events:none;transition:opacity .5s var(--ease);position:absolute;inset:0}#hud>*{pointer-events:auto}#app[data-hud=hidden] #hud>:not(.corner),#app[data-hud=hidden] .cartouche,#app[data-hud=hidden] #markers{opacity:0;pointer-events:none}#app[data-hud=hidden] #hud>:not(.corner) *{pointer-events:none}.ad-card{background:rgb(var(--paper-rgb));border:1px solid var(--ad-line);box-shadow:0 1px 2px rgb(var(--ink-rgb) / .04);border-radius:14px}.ad-glass{background:rgb(var(--ivory-rgb) / .8);border:1px solid var(--ad-line);box-shadow:var(--ad-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.3)}.overline{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ad-muted);align-items:center;gap:.5rem;font-size:10.5px;font-weight:500;display:inline-flex}.overline.sparkle:before{content:"";background:rgb(var(--sun-rgb));width:6px;height:6px;box-shadow:0 0 0 .5px rgb(var(--ink-rgb) / .12);flex-shrink:0}.mono{font-family:var(--font-mono)}.ad-seg{background:rgb(var(--ink-rgb) / .06);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.ad-seg>button{height:1.875rem;color:var(--ad-muted);white-space:nowrap;transition:background-color .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);border-radius:999px;padding:0 .8rem;font-size:.8125rem;font-weight:500}.ad-seg>button:hover{color:rgb(var(--ink-rgb))}.ad-seg>button[aria-pressed=true]{background:rgb(var(--paper-rgb));color:rgb(var(--ink-rgb));box-shadow:0 1px 2px rgb(var(--ink-rgb) / .12), 0 0 0 1px rgb(var(--ink-rgb) / .06)}.ad-badge{border:1px solid var(--ad-line);background:rgb(var(--paper-rgb));height:1.375rem;color:var(--ad-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:0 .55rem;font-size:.75rem;font-weight:500;display:inline-flex}.ad-badge:before{content:"";background:rgb(var(--grey-300-rgb));border-radius:50%;width:6px;height:6px}.ad-badge.is-on:before{background:rgb(var(--accent-rgb))}.ad-icon-btn{width:2.25rem;height:2.25rem;color:rgb(var(--ink-rgb));transition:background-color .3s var(--ease), color .3s var(--ease);border-radius:50%;place-items:center;display:grid;position:relative}.ad-icon-btn:hover{background:var(--ad-hover);color:rgb(var(--accent-rgb))}.ad-tip{white-space:nowrap;color:rgb(var(--ivory-rgb));background:rgb(var(--night-rgb));opacity:0;pointer-events:none;transition:opacity .35s var(--ease), transform .35s var(--ease);border-radius:6px;padding:.35rem .6rem;font-size:.75rem;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,6px)}@media (hover:hover){:hover>.ad-tip,:focus-visible>.ad-tip{opacity:1;transform:translate(-50%)}}.sidebar{top:var(--gutter);left:var(--gutter);bottom:var(--gutter);width:var(--side-w);flex-direction:column;gap:10px;display:flex;position:absolute;pointer-events:none!important}.sidebar>*{pointer-events:auto}.project{border-radius:14px;padding:16px 18px 14px}.project h1{letter-spacing:-.01em;margin:8px 0 6px;font-size:1.25rem;font-weight:500;line-height:1.15}.project .meta{font-family:var(--font-mono);color:var(--ad-muted);letter-spacing:.02em;font-size:11px;line-height:1.6}.items{border-radius:14px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.items-head{border-bottom:1px solid var(--ad-line);justify-content:space-between;align-items:center;padding:12px 16px 10px;display:flex}.items-head button{align-items:center;gap:8px;display:inline-flex}.items-head svg{transition:transform .4s var(--ease);transform:rotate(-90deg)}.items.is-collapsed .items-head svg{transform:rotate(90deg)}.items.is-collapsed .items-list{display:none}.items-list{scrollbar-width:thin;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.item-row{text-align:left;width:100%;transition:background-color .2s var(--ease);grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:7px 16px;display:grid}.item-row:hover,.item-row.is-hover{background:var(--ad-hover)}.item-row .ref{font-family:var(--font-mono);color:var(--ad-muted);font-size:11px}.item-row.is-selected .ref{color:rgb(var(--accent-rgb))}.item-row .name{font-size:.8125rem;font-weight:500;line-height:1.25}.item-row .sub{color:rgb(var(--grey-500-rgb));margin-top:1px;font-size:.6875rem;font-weight:400;display:block}.item-row .choices{font-family:var(--font-mono);color:var(--ad-muted);border:1px solid var(--ad-line-strong);border-radius:999px;padding:1px 7px;font-size:10px}.items-foot{border-top:1px solid var(--ad-line);color:var(--ad-muted);justify-content:space-between;align-items:baseline;padding:10px 16px 12px;font-size:.75rem;display:flex}.items-foot strong{font-family:var(--font-mono);color:rgb(var(--ink-rgb));font-weight:500}.sheet{top:var(--gutter);right:var(--gutter);width:var(--col-w);max-height:calc(100% - var(--gutter) * 2 - var(--corner-h) - 12px);opacity:0;transition:opacity .45s var(--ease), transform .6s var(--ease);border-radius:14px;flex-direction:column;display:flex;position:absolute;overflow:hidden;transform:translate(16px);pointer-events:none!important}.sheet.is-open{opacity:1;transform:none;pointer-events:auto!important}.sheet-head{border-bottom:1px solid var(--ad-line);padding:16px 18px 14px;position:relative}.sheet-head>.overline{padding-right:34px;line-height:1.5}.sheet-head .ad-icon-btn{width:2rem;height:2rem;position:absolute;top:10px;right:10px}.sheet-head h2{letter-spacing:-.01em;margin:10px 40px 0 0;font-size:1.25rem;font-weight:500;line-height:1.2}.sheet-body{scrollbar-width:thin;overflow-y:auto}.sheet-section{border-bottom:1px solid var(--ad-line);padding:14px 18px}.sheet-section:last-child{border-bottom:0}.sheet-section .label{margin-bottom:10px;display:block}.variant-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.variant-row .ad-seg{border-radius:18px;flex-wrap:wrap}.price{font-family:var(--font-mono);color:var(--ad-muted);font-size:11.5px}.price.is-extra{color:rgb(var(--accent-rgb))}.specs{grid-template-columns:auto 1fr;margin:0;display:grid}.specs dt,.specs dd{border-bottom:1px dashed var(--ad-line-strong);margin:0;padding:7px 0;font-size:.78rem}.specs dt{color:var(--ad-muted);padding-right:16px}.specs dd{font-family:var(--font-mono);text-align:right;color:rgb(var(--ink-rgb));font-size:.74rem}.specs dt:last-of-type,.specs dd:last-of-type{border-bottom:0}.sheet-foot{background:rgb(var(--ink-rgb) / .03);border-top:1px solid var(--ad-line);justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;display:flex}.sheet-foot .src{font-family:var(--font-mono);color:var(--ad-muted);letter-spacing:.02em;font-size:10.5px}.sheet-body.is-swapping{animation:swap .5s var(--ease)}@keyframes swap{0%{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.toolbar-wrap{left:calc(var(--gutter) + var(--side-w) + 16px);right:calc(var(--gutter) + var(--corner-w) + 16px);bottom:var(--gutter);justify-content:center;display:flex;position:absolute;pointer-events:none!important}.toolbar{pointer-events:auto;border-radius:26px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;padding:5px;display:flex}.toolbar .ad-seg{background:0 0}.toolbar .sep{background:rgb(var(--ink-rgb) / .12);width:1px;height:22px}.toolbar .modes{background:rgb(var(--ink-rgb) / .06)}.toolbar .modes>button{align-items:center;gap:6px;padding:0 .75rem 0 .6rem;display:inline-flex}.toolbar .modes svg{opacity:.7}.toolbar .modes>button[aria-pressed=true] svg{opacity:1;color:rgb(var(--accent-rgb))}#app[data-transition=in] .toolbar,#app[data-transition=out] .toolbar{pointer-events:none}.status{left:calc(var(--gutter) + var(--side-w) + 16px);right:calc(var(--gutter) + var(--corner-w) + 16px);width:max-content;max-width:calc(100% - var(--gutter) * 2 - var(--side-w) - var(--corner-w) - 32px);bottom:calc(var(--gutter) + 56px);font-family:var(--font-mono);letter-spacing:.06em;color:var(--ad-muted);opacity:0;transition:opacity .45s var(--ease), transform .45s var(--ease);border-radius:999px;align-items:center;margin:0 auto;padding:7px 14px;font-size:10.5px;display:flex;position:absolute;transform:translateY(6px);pointer-events:none!important}.status-plan{white-space:nowrap;align-items:center;gap:12px;display:none}#app[data-mode=plan][data-view=plan] .status{opacity:1;transform:none}#app[data-mode=plan] .status-plan{display:inline-flex}.corner{right:var(--gutter);bottom:var(--gutter);width:var(--corner-w);flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;pointer-events:none!important}.cartouche{border:1px solid var(--bp-stroke);background:rgb(var(--paper-rgb) / .72);-webkit-backdrop-filter:blur(8px);width:100%;font-family:var(--font-mono);letter-spacing:.04em;color:rgb(var(--grey-700-rgb));transition:opacity .5s var(--ease);grid-template-columns:1fr 1fr;font-size:10px;display:grid}.cartouche>div{border-right:1px solid var(--ad-line-strong);border-bottom:1px solid var(--ad-line-strong);padding:6px 9px}.cartouche>div:nth-child(2n){border-right:0}.cartouche>.wide{border-bottom:0;border-right:0;grid-column:1/-1}.cartouche>.sep-b{border-bottom:1px solid var(--ad-line-strong)}.cartouche b{letter-spacing:.14em;color:rgb(var(--grey-500-rgb));margin-bottom:2px;font-size:8.5px;font-weight:500;display:block}.dock{color:rgb(var(--ink-rgb));background:rgb(var(--ivory-rgb) / .8);border:1px solid rgb(var(--ink-rgb) / .1);box-shadow:0 18px 40px -22px rgb(var(--ink-rgb) / .5), inset 0 1px #fff9;-webkit-backdrop-filter:blur(14px)saturate(1.3);pointer-events:auto;border-radius:999px;align-items:center;gap:2px;padding:5px;display:flex}.dock-btn{width:38px;height:38px;transition:background-color .4s var(--ease), color .4s var(--ease);border-radius:50%;place-items:center;display:grid;position:relative}.dock-btn:hover{background:rgb(var(--ink-rgb) / .07);color:rgb(var(--accent-rgb))}.dock-btn[aria-pressed=true]{color:rgb(var(--accent-rgb))}.dock-btn[aria-pressed=true]:after{content:"";background:currentColor;border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;bottom:4px;left:50%}.dock-sep{background:rgb(var(--ink-rgb) / .12);width:1px;height:20px;margin:0 4px}.marker{transition:opacity .3s var(--ease);cursor:pointer}.marker .hit{fill:#0000;pointer-events:all}.marker .ring{fill:rgb(var(--paper-rgb) / .6);stroke:rgb(var(--ink-rgb) / .45);stroke-width:1px}.marker .dot{fill:rgb(var(--ink-rgb))}.marker .leader{fill:none;stroke:rgb(var(--ink-rgb) / .7);stroke-width:1px}.marker .num{font-family:var(--font-mono);fill:rgb(var(--ink-rgb));letter-spacing:.04em;font-size:10.5px;font-weight:500}.marker .tag{font-family:var(--font-mono);letter-spacing:.1em;fill:rgb(var(--ink-rgb));opacity:0;transition:opacity .3s var(--ease);font-size:10px}.marker .tag-bg{fill:rgb(var(--paper-rgb) / .85);opacity:0;transition:opacity .3s var(--ease)}.marker.is-active .tag,.marker.is-active .tag-bg,.marker.is-selected .tag,.marker.is-selected .tag-bg{opacity:1}.marker.is-active .dot,.marker.is-selected .dot{fill:rgb(var(--accent-rgb))}.marker.is-active .ring,.marker.is-active .leader,.marker.is-selected .leader{stroke:rgb(var(--accent-rgb))}.marker.is-selected .num,.marker.is-selected .tag{fill:rgb(var(--accent-rgb))}.marker.is-occluded{opacity:.28}#app[data-markers=off] .marker:not(.is-active):not(.is-selected){opacity:0;pointer-events:none}#app[data-markers=off] .marker:not(.is-active):not(.is-selected) .hit{pointer-events:none}.boot{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ad-muted);place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.photo-btn{height:2.25rem;color:rgb(var(--ivory-rgb));background:rgb(var(--night-rgb));box-shadow:0 6px 16px -8px rgb(var(--ink-rgb) / .6);transition:background-color .3s var(--ease), transform .3s var(--ease);border-radius:999px;align-items:center;gap:7px;padding:0 .95rem 0 .8rem;font-size:.8125rem;font-weight:500;display:inline-flex}.photo-btn:hover{background:rgb(var(--accent-rgb))}.photo-btn:active{transform:scale(.97)}.photo-btn:disabled{opacity:.5;cursor:default}.shutter-flash{z-index:90;opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.shutter-flash.is-on{animation:.55s ease-out shutter}@keyframes shutter{0%{opacity:0}12%{opacity:.92}to{opacity:0}}.photo-modal{z-index:80;visibility:hidden;pointer-events:none;place-items:center;padding:32px;display:grid;position:fixed;inset:0}.photo-modal.is-open{visibility:visible;pointer-events:auto}.photo-backdrop{background:rgb(var(--ink-rgb) / .32);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .4s var(--ease);position:absolute;inset:0}.photo-modal.is-open .photo-backdrop{opacity:1}.photo-card{background:rgb(var(--paper-rgb) / .96);opacity:0;width:min(1080px,100%);max-height:100%;transition:opacity .45s var(--ease), transform .6s var(--ease);border-radius:16px;flex-direction:column;margin:0;display:flex;position:relative;overflow:hidden;transform:translateY(14px)scale(.98)}.photo-modal.is-open .photo-card{opacity:1;transform:none}.photo-head{border-bottom:1px solid var(--ad-line);gap:4px;padding:14px 56px 12px 18px;display:grid;position:relative}.photo-head h2{margin:4px 0 0;font-size:1.05rem;font-weight:500}.photo-meta{font-family:var(--font-mono);color:var(--ad-muted);letter-spacing:.04em;font-size:10.5px}.photo-head .ad-icon-btn{position:absolute;top:12px;right:12px}.photo-frame{background:rgb(var(--stone-rgb));min-height:0;line-height:0;position:relative}.photo-frame canvas,.photo-frame img{object-fit:contain;width:100%;height:auto;max-height:calc(100vh - 220px);display:block}.photo-modal[data-state=developing] img,.photo-modal[data-state=done] canvas{display:none}.photo-develop{line-height:1;font-family:var(--font-mono);letter-spacing:.06em;color:rgb(var(--ink-rgb));background:rgb(var(--paper-rgb) / .86);-webkit-backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:12px;padding:8px 14px;font-size:10.5px;display:inline-flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.photo-modal[data-state=done] .photo-develop{display:none}.photo-develop .bar{background:rgb(var(--ink-rgb) / .12);border-radius:3px;width:120px;height:3px;position:relative;overflow:hidden}.photo-develop .bar b{background:rgb(var(--accent-rgb));transform-origin:0;transition:transform .3s linear;position:absolute;inset:0;transform:scaleX(0)}.photo-modal[data-progress=loading] .bar b,.photo-modal[data-progress=building] .bar b{width:30%;animation:indeterminate 1.1s var(--ease) infinite;transform:none}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(340%)}}.photo-actions{border-top:1px solid var(--ad-line);justify-content:flex-end;padding:12px 14px;display:flex}.photo-actions>div{gap:8px;display:flex}.photo-modal[data-state=developing] .when-done,.photo-modal[data-state=done] .when-developing{display:none}.btn{border:1px solid var(--ad-line-strong);background:rgb(var(--paper-rgb));height:2.125rem;transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);border-radius:999px;align-items:center;gap:7px;padding:0 .95rem;font-size:.8125rem;font-weight:500;display:inline-flex}.btn:hover{border-color:rgb(var(--ink-rgb) / .3)}.btn.ghost{background:0 0}.btn.danger:hover{color:#b3261e;border-color:#b3261e66}.btn.primary{color:rgb(var(--ivory-rgb));background:rgb(var(--night-rgb));border-color:#0000}.btn.primary:hover{background:rgb(var(--accent-rgb))}.photo-ghost{z-index:85;object-fit:cover;box-shadow:0 20px 50px -20px rgb(var(--ink-rgb) / .6);transform-origin:50%;pointer-events:none;border-radius:10px;position:fixed}.corner-row{align-items:center;gap:8px;display:flex}.photo-folder{pointer-events:auto;position:relative}.photo-folder[hidden]{display:none}.photo-folder-btn{border-radius:999px;align-items:center;gap:6px;height:3rem;padding:0 10px 0 12px;font-size:.8125rem;font-weight:500;display:inline-flex;position:relative}.photo-folder-btn .label{margin-right:2px}.photo-folder-btn b{min-width:18px;height:18px;font-family:var(--font-mono);color:#fff;background:rgb(var(--accent-rgb));border-radius:9px;place-items:center;padding:0 5px;font-size:10px;font-weight:500;display:grid}.photo-folder-btn .thumbs{width:34px;height:24px;margin-right:2px;position:relative}.photo-folder-btn .thumbs img{object-fit:cover;border:1.5px solid rgb(var(--paper-rgb));width:100%;height:100%;box-shadow:0 2px 6px -2px rgb(var(--ink-rgb) / .5);transform:translate(calc(var(--k) * -3px), calc(var(--k) * -2px)) rotate(calc(var(--k) * -4deg));z-index:calc(3 - var(--k));border-radius:4px;position:absolute;inset:0}.photo-folder.bump .photo-folder-btn{animation:bump .5s var(--ease)}@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.12)}to{transform:scale(1)}}.photo-tray{opacity:0;pointer-events:none;width:300px;max-height:min(60vh,460px);transition:opacity .35s var(--ease), transform .45s var(--ease);border-radius:14px;flex-direction:column;display:flex;position:absolute;bottom:calc(100% + 10px);right:0;overflow:hidden;transform:translateY(8px)}.photo-folder.is-open .photo-tray{opacity:1;pointer-events:auto;transform:none}.photo-tray-head{border-bottom:1px solid var(--ad-line);justify-content:space-between;padding:11px 14px 9px;display:flex}.photo-grid{scrollbar-width:thin;grid-template-columns:1fr 1fr;gap:8px;padding:10px;display:grid;overflow-y:auto}.photo-grid button{text-align:left;transition:background-color .25s var(--ease);border-radius:8px;gap:4px;padding:4px;display:grid}.photo-grid button:hover{background:var(--ad-hover)}.photo-grid img{aspect-ratio:16/10;object-fit:cover;border-radius:6px;width:100%}.photo-grid span{font-family:var(--font-mono);color:var(--ad-muted);font-size:9.5px}:root{--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Instrument Sans", system-ui, sans-serif;--gutter:16px;--side-w:272px;--col-w:340px;--corner-w:300px;--hair:#00000017;--hair-strong:#00000024;--label-2:#3c3c439e;--label-3:#3c3c436b;--fill:#7878801f;--mac-ease:cubic-bezier(.2, .7, .2, 1)}body{letter-spacing:-.003em;font-size:13px}.ad-glass{border:.5px solid var(--hair);-webkit-backdrop-filter:blur(30px)saturate(180%);background:#f8f7f5bd;box-shadow:inset 0 .5px #ffffffb3,0 1px 2px #0000000d,0 12px 32px -14px #00000047}.overline{font-family:var(--font-sans);letter-spacing:.06em;color:var(--label-2);font-size:10.5px;font-weight:600}.sidebar{top:var(--gutter);bottom:var(--gutter);width:var(--side-w);gap:0}.items{border-radius:12px;flex:1}.items-head{border-bottom:.5px solid var(--hair);padding:14px 16px 10px}.items-list{flex:1;padding:6px}.item-row{border-radius:7px;grid-template-columns:22px 1fr auto;gap:10px;padding:7px 10px}.item-row .ref{font-family:var(--font-sans);font-variant-numeric:tabular-nums;color:var(--label-3);font-size:11px}.item-row .name{font-size:13px;font-weight:500}.item-row .sub{color:var(--label-2);margin-top:1px;font-size:11px}.item-row .choices{font-family:var(--font-sans);color:var(--label-2);background:var(--fill);border:0;padding:2px 7px;font-size:10.5px;font-weight:500}.item-row.is-selected{background:rgb(var(--accent-rgb))}.item-row.is-selected .ref,.item-row.is-selected .name,.item-row.is-selected .sub,.item-row.is-selected .choices{color:#fff}.item-row.is-selected .choices{background:#fff3}.items-foot{border-top:.5px solid var(--hair);color:var(--label-2);padding:12px 16px;font-size:12px}.items-foot strong{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:600}.sheet{top:var(--gutter);right:var(--gutter);width:var(--col-w);border-radius:12px;max-height:none;overflow:hidden}.sheet-viewport{position:relative;overflow:hidden}.sheet-content{max-height:calc(100vh - var(--gutter) * 2 - var(--corner-h) - 12px);scrollbar-width:thin;overflow-y:auto}.sheet-content.is-leaving{pointer-events:none;position:absolute;inset:0 0 auto}.morph-ghost{pointer-events:none;margin:0;position:absolute}.sheet-close{background:var(--fill);width:26px;height:26px;color:var(--label-2);z-index:2;border-radius:50%;position:absolute;top:10px;right:10px}.sheet-close:hover{color:rgb(var(--ink-rgb));background:#78788033}.sheet-head{border:0;padding:16px 48px 12px 16px}.sheet-head>.overline{letter-spacing:.02em;text-transform:none;padding:0;font-size:11px;font-weight:500}.sheet-head h2{letter-spacing:-.015em;margin:6px 0 0;font-size:17px;font-weight:600}.sheet-head p{color:var(--label-2);margin:6px 0 0;font-size:12.5px;line-height:1.45}.sheet-section{border:0;padding:4px 12px 12px}.section-label{color:var(--label-2);margin:8px 4px 6px;font-size:11px;font-weight:600}.opt-group{border:.5px solid var(--hair);background:#ffffff9e;border-radius:10px;overflow:hidden}.opt{text-align:left;align-items:center;gap:10px;width:100%;min-height:36px;padding:6px 12px;font-size:13px;transition:background-color .15s;display:flex;position:relative}.opt+.opt:before{content:"";background:var(--hair);height:.5px;position:absolute;top:0;left:12px;right:0}.opt:hover{background:#00000009}.opt:active{background:#0000000f}.opt:focus-visible{outline:2px solid rgb(var(--accent-rgb) / .5);outline-offset:-2px}.opt-swatch{background:var(--c);border-radius:50%;flex:none;width:18px;height:18px;box-shadow:inset 0 0 0 .5px #00000038,inset 0 1px 1px #ffffff59}.opt-label{flex:1;min-width:0}.opt[aria-checked=true] .opt-label{font-weight:500}.opt-price{font-variant-numeric:tabular-nums;color:var(--label-2);flex:none;font-size:12px}.opt-price.is-extra{color:rgb(var(--ink-rgb))}.opt-check{width:16px;color:rgb(var(--accent-rgb));opacity:0;transition:opacity .2s ease, transform .25s var(--mac-ease);flex:none;place-items:center;display:grid;transform:scale(.7)}.opt[aria-checked=true] .opt-check{opacity:1;transform:none}.specs{margin:0;padding:0 4px;display:block}.spec{border-bottom:.5px solid var(--hair);justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;display:flex}.spec:last-child{border-bottom:0}.specs dt,.specs dd{border:0;padding:0;font-size:12.5px}.specs dt{color:var(--label-2);flex:none}.specs dd{font-family:var(--font-sans);font-variant-numeric:tabular-nums;text-align:right}.sheet-foot{border-top:.5px solid var(--hair);background:0 0;padding:12px 16px}.sheet-foot .src{font-family:var(--font-sans);color:var(--label-3);font-size:11px}.ad-badge{background:var(--fill);font-variant-numeric:tabular-nums;height:22px;color:rgb(var(--ink-rgb));border:0;font-size:11.5px;font-weight:500}.toolbar-wrap{left:calc(var(--gutter) + var(--side-w) + 16px);right:calc(var(--gutter) + var(--corner-w) + 16px);bottom:var(--gutter)}.toolbar{border-radius:14px;flex-wrap:nowrap;gap:6px;padding:5px}.toolbar .ad-seg,.toolbar .modes{background:var(--fill);border-radius:9px;gap:0;padding:2px;display:inline-flex}.toolbar .ad-seg>button{height:28px;color:var(--label-2);box-shadow:none;border-radius:7px;padding:0 12px;font-size:13px;font-weight:500}.toolbar .ad-seg>button:hover{color:rgb(var(--ink-rgb))}.toolbar .ad-seg>button[aria-pressed=true]{color:rgb(var(--ink-rgb));background:#fff;box-shadow:0 1px 2px #0000001f,0 0 0 .5px #0000000f}.toolbar .modes>button{gap:6px;padding:0 11px 0 9px}.toolbar .sep{background:var(--hair-strong);width:.5px;height:20px;margin:0 2px}.photo-btn{height:32px;box-shadow:none;background:rgb(var(--ink-rgb));border-radius:9px;padding:0 12px 0 10px;font-size:13px}@media (max-width:1320px){.toolbar .modes>button span,.photo-btn span{display:none}.toolbar .modes>button,.photo-btn{padding:0 9px}}@media (max-width:1100px){:root{--side-w:236px;--col-w:300px;--corner-w:252px}.toolbar .ad-seg>button{padding:0 9px}}.status{bottom:calc(var(--gutter) + 52px);font-family:var(--font-sans);letter-spacing:0;border-radius:10px;font-size:11.5px}.corner{width:var(--corner-w);gap:8px}.project-card{pointer-events:auto;z-index:5;border-radius:12px;width:100%;position:relative;overflow:hidden}.project-main{outline:none;gap:2px;padding:11px 14px 12px;display:grid}.project-main strong{letter-spacing:-.01em;font-size:14px;font-weight:600}.project-main .meta{color:var(--label-2);font-size:11.5px}.project-more{opacity:0;transition:grid-template-rows .4s var(--mac-ease), opacity .3s ease;grid-template-rows:0fr;display:grid}.project-more>dl{min-height:0;margin:0;padding:0 14px;overflow:hidden}.project-card:hover .project-more,.project-card:focus-within .project-more{opacity:1;grid-template-rows:1fr}.project-more dl>div{border-bottom:.5px solid var(--hair);justify-content:space-between;gap:12px;padding:7px 0;font-size:11.5px;display:flex}.project-more dl>div:first-child{padding-top:12px}.project-more dt{color:var(--label-2)}.project-more dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.corner-row{gap:8px}.dock{border-radius:12px;padding:4px}.dock-btn{border-radius:8px;width:32px;height:32px}.dock-sep{background:var(--hair-strong);width:.5px;height:18px}.photo-folder-btn{border-radius:12px;height:42px}#plan{opacity:0;visibility:hidden;pointer-events:none;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:opacity .45s var(--ease), visibility 0s linear .45s;--u:.5;--ink:rgb(var(--ink-rgb));--line:rgb(var(--ink-rgb) / .85);--soft:rgb(var(--ink-rgb) / .45);--accent:rgb(var(--accent-rgb));position:absolute;inset:0;overflow:hidden}#plan.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s var(--ease)}#plan.is-panning{cursor:grabbing}#plan path,#plan circle,#plan rect{fill:none;stroke:var(--line);stroke-width:calc(var(--u) * 1px);stroke-linejoin:round;stroke-linecap:round;transition:stroke .25s var(--ease), fill .25s var(--ease)}#plan .cut{stroke:var(--ink);stroke-width:calc(var(--u) * 1.8px)}#plan .thin{stroke-width:calc(var(--u) * 1px)}#plan .hair{stroke:var(--soft);stroke-width:calc(var(--u) * .75px)}#plan .dashed{stroke-dasharray:calc(var(--u) * 4px) calc(var(--u) * 3px)}#plan .dashdot{stroke-dasharray:calc(var(--u) * 9px) calc(var(--u) * 3px) calc(var(--u) * 1.5px) calc(var(--u) * 3px)}#plan .hatch-line{stroke:rgb(var(--ink-rgb) / .55);stroke-width:.45px}#plan .poche{fill:url(#hatch);stroke:none}#plan .fill-white{fill:rgb(var(--paper-rgb))}#plan .fill-low{fill:rgb(var(--stone-rgb) / .55)}#plan .grid{stroke:rgb(var(--ink-rgb) / .12);stroke-width:calc(var(--u) * .75px)}#plan .hit{fill:#0000;stroke:none}#plan .floor .hit{fill:rgb(var(--paper-rgb) / .55)}#plan text{font-family:var(--font-mono);font-size:calc(var(--u) * 10px);letter-spacing:.04em;fill:var(--ink);stroke:none;text-anchor:middle}#plan text.left{text-anchor:start}#plan .note{font-size:calc(var(--u) * 8.5px);fill:rgb(var(--grey-700-rgb));letter-spacing:.06em}#plan .dim{stroke:rgb(var(--ink-rgb) / .7);stroke-width:calc(var(--u) * .8px)}#plan .dim-text{font-size:calc(var(--u) * 9.5px);fill:rgb(var(--ink-rgb) / .85)}#plan .scale-a{fill:var(--ink);stroke:var(--ink);stroke-width:calc(var(--u) * .8px)}#plan .scale-b{fill:rgb(var(--paper-rgb));stroke:var(--ink);stroke-width:calc(var(--u) * .8px)}#plan .room-label,#plan .bubble{transform:translate(calc(var(--x) * 1px), calc(var(--y) * 1px)) scale(var(--u))}#plan .room-label text{text-anchor:start;font-size:11px}#plan .room-label .room-name{font-family:var(--font-sans);letter-spacing:.16em;font-size:13px;font-weight:600}#plan .room-label .room-meta{fill:rgb(var(--grey-700-rgb));font-size:10.5px}#plan .bubble{cursor:pointer}#plan .bubble circle{fill:rgb(var(--paper-rgb));stroke:var(--ink);stroke-width:1px}#plan .bubble text{font-size:9.5px;font-weight:500}#plan [data-key]{cursor:pointer}#plan [data-key].is-hover path,#plan [data-key].is-hover circle,#plan [data-key].is-hover rect:not(.hit),#plan [data-key].is-selected path,#plan [data-key].is-selected circle,#plan [data-key].is-selected rect:not(.hit){stroke:var(--accent)}#plan [data-key].is-selected .fill-white,#plan [data-key].is-selected .hit{fill:rgb(var(--accent-rgb) / .08)}#plan [data-key].is-hover .hit{fill:rgb(var(--accent-rgb) / .04)}#plan .bubble.is-hover circle,#plan .bubble.is-selected circle{fill:var(--accent);stroke:var(--accent)}#plan .bubble.is-hover text,#plan .bubble.is-selected text{fill:#fff}#plan [data-key].is-selected .poche{fill:url(#hatch)}#plan .draw{stroke-dasharray:1;stroke-dashoffset:1px}#plan .fade,#plan .poche,#plan .grid,#plan .fill-low,#plan .bubble,#plan .room-label{opacity:0}#plan .floor .hit,#plan .fill-white{fill-opacity:0}#plan.is-in .draw{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease) calc(min(var(--i,0), 60) * 14ms)}#plan.is-in .fade,#plan.is-in .grid,#plan.is-in .fill-low{opacity:1;transition:opacity .7s var(--ease) calc(.24s + min(var(--i,0), 60) * 14ms)}#plan.is-in .poche{opacity:1;transition:opacity .9s var(--ease) .35s}#plan.is-in .floor .hit,#plan.is-in .fill-white{fill-opacity:1;transition:fill-opacity .8s var(--ease) .3s}#plan.is-in .bubble,#plan.is-in .room-label{opacity:1;transition:opacity .5s var(--ease) calc(.7s + (var(--i,0) - 60) * 18ms)}#plan.no-anim *,#plan.no-anim{transition:none!important}.home{background:rgb(var(--ivory-rgb) / .89);height:100%;padding:0 clamp(24px,5vw,88px);overflow-y:auto}.home-header{border-bottom:1px solid var(--ad-line);justify-content:space-between;align-items:center;height:96px;display:flex}.home-brand{color:inherit;align-items:center;gap:10px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.brand-mark{width:26px;height:26px;transition:transform .4s var(--ease);flex-shrink:0}.home-brand:hover .brand-mark{transform:translateY(-2px)}.home-header-note{letter-spacing:-.01em;color:var(--ad-muted);white-space:nowrap;align-items:center;gap:0;font-size:12px;display:inline-flex}.bag-name{letter-spacing:.02em;color:rgb(var(--ink-rgb));margin-right:.3em;font-weight:600}.home-header-sep{background:var(--ad-line-strong);width:1px;height:12px;margin:0 12px}.home-header-demo{font:500 10px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.home-content{max-width:1000px;margin:clamp(48px,8vh,96px) auto 64px}.home-intro{margin-bottom:34px}.home-intro h1{letter-spacing:-.045em;margin:13px 0 10px;font-size:clamp(36px,4vw,52px);font-weight:400;line-height:1.05}.home-intro p{color:var(--ad-muted);margin:0;font-size:14px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.project-link{color:inherit;border:1px solid var(--ad-line);background:rgb(var(--paper-rgb) / .72);border-radius:14px;text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s;overflow:hidden}.project-link:hover{border-color:rgb(var(--accent-rgb) / .35);box-shadow:0 16px 34px -22px rgb(var(--ink-rgb) / .25);transform:translateY(-3px)}.project-link:focus-visible,.home-brand:focus-visible,.project-back:focus-visible{outline:2px solid rgb(var(--accent-rgb));outline-offset:5px}.project-preview{background-color:#eeebe5;background-image:linear-gradient(rgb(var(--ink-rgb) / .025) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--ink-rgb) / .025) 1px, transparent 1px);border-bottom:1px solid var(--ad-line);background-size:24px 24px;height:clamp(210px,23vw,274px);position:relative;overflow:hidden}.project-number{font:11px var(--font-mono);color:var(--ad-muted);position:absolute;top:20px;left:22px}.project-tag{border:1px solid var(--ad-line);background:rgb(var(--paper-rgb) / .6);color:var(--ad-muted);border-radius:5px;padding:5px 8px;font-size:10px;position:absolute;top:18px;right:20px}.project-drawing{color:#807a72;transition:transform .6s var(--ease);position:absolute;inset:25px 20px 26px}.project-drawing svg{width:100%;height:100%}.project-link:hover .project-drawing{transform:scale(1.035)}.preview-caption{font:9px var(--font-mono);letter-spacing:.12em;color:var(--ad-muted);justify-content:space-between;display:flex;position:absolute;bottom:16px;left:22px;right:22px}.project-info{padding:23px 25px 25px}.project-operation{color:var(--ad-muted);font-size:11px}.project-title-row{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.project-title-row h2{letter-spacing:-.03em;margin:0;font-size:23px;font-weight:500}.project-open{color:rgb(var(--accent-rgb));font-size:22px;transition:transform .25s}.project-link:hover .project-open{transform:translate(2px,-2px)}.project-info p{color:var(--ad-muted);margin:10px 0 20px;font-size:12px;line-height:1.6}.project-detail{color:var(--ad-muted);border-top:1px solid var(--ad-line);padding-top:15px;font-size:10.5px;display:block}.home-footer{border-top:1px solid var(--ad-line);max-width:1000px;color:var(--ad-muted);justify-content:space-between;gap:24px;margin:0 auto;padding:22px 0 28px;font-size:10px;display:flex}.home-notice{color:var(--ad-muted);margin-bottom:20px}.project-nav{z-index:10;top:var(--gutter);left:var(--gutter);align-items:center;gap:12px;height:36px;display:flex;position:absolute}.project-back{height:34px;color:inherit;border-radius:9px;align-items:center;gap:7px;padding:0 12px;font-size:12px;text-decoration:none;display:inline-flex}.project-back:hover{color:rgb(var(--accent-rgb))}.project-nav-label{color:var(--ad-muted);font-size:11px}#app[data-page=viewer] .sidebar{top:calc(var(--gutter) + 48px)}.project-reference{top:var(--gutter);color:var(--ad-muted);pointer-events:none;border-radius:8px;padding:9px 12px;font-size:10px;position:absolute;left:50%;transform:translate(-50%)}.boot-error{text-align:center;justify-items:center;gap:14px;max-width:500px;display:grid}.boot-error a{color:rgb(var(--accent-rgb))}@media (max-width:650px){.home-header{height:76px}.home-header-note{font-size:11px}.home-header-sep{margin:0 8px}.home-content{margin-top:40px;margin-bottom:36px}.project-grid{grid-template-columns:1fr;gap:20px}.project-preview{height:236px}.home-footer{flex-wrap:wrap;gap:12px}.home-footer>:last-child{width:100%}.project-reference,.project-nav-label{display:none}}@media (prefers-reduced-motion:reduce){.project-link,.project-drawing,.project-open{transition:none}}@media (max-width:900px){.project-reference{display:none}#app[data-page=viewer] .sidebar{width:220px;max-height:calc(100% - 190px);bottom:auto}#app[data-page=viewer] .items.is-collapsed .items-foot{display:none}#app[data-page=viewer] .items{max-height:100%}#app[data-page=viewer] .toolbar-wrap{bottom:12px;left:12px;right:12px}#app[data-page=viewer] .corner{width:auto;bottom:67px;right:16px}#app[data-page=viewer] .corner .project-card{display:none}#app[data-page=viewer] .sheet{z-index:12;width:min(340px,100% - 32px);max-height:calc(100% - 190px);top:64px;right:16px}#app[data-page=viewer] .status{display:none}}@media (max-width:480px){#app[data-page=viewer] .toolbar{gap:3px}#app[data-page=viewer] .toolbar .ad-seg>button{padding:0 7px;font-size:11px}#app[data-page=viewer] .toolbar .sep{display:none}#app[data-page=viewer] .toolbar .modes>button,#app[data-page=viewer] .photo-btn{padding:0 7px}}
