@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2)format("woff2"),url(/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2)format("woff2"),url(/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-vietnamese-700-normal-DWQgDHuA.woff2)format("woff2"),url(/assets/space-mono-vietnamese-700-normal-D-KrLuLr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-ext-700-normal-B2s3bDs2.woff2)format("woff2"),url(/assets/space-mono-latin-ext-700-normal-B_E7P90g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-ui:"Space Grotesk Variable", system-ui, -apple-system, sans-serif;--font-mono:"Space Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg-stage:#e7e4dd;--bg-chrome:#fdfcfa;--bg-panel:#f2f0eb;--bg-input:#fff;--ink:#292c31;--text:#2a2e33;--text-dim:#656b72;--text-faint:#9aa0a7;--line:#e7e4dd;--line-2:#d9d5cd;--line-soft:#282a300d;--accent:#e24a3b;--accent-hover:#d13e30;--accent-soft:#e24a3b1a;--accent-ink:#c33a2c;--grid-minor:#6f97b0;--grid-major:#3f7391;--radius:11px;--radius-sm:8px;--shadow-sm:0 1px 2px #23232d0f, 0 1px 3px #23232d0d;--shadow:0 10px 34px #28283424, 0 2px 8px #28283412}:root[data-theme=dark]{--bg-stage:#2b2f36;--bg-chrome:#1c2025;--bg-panel:#262b31;--bg-input:#15181c;--ink:#f1eee7;--text:#e9e6de;--text-dim:#9aa0a8;--text-faint:#6b7178;--line:#333942;--line-2:#3e444d;--line-soft:#ffffff0f;--accent:#ec5646;--accent-hover:#f4695a;--accent-soft:#ec564629;--accent-ink:#ff8272;--shadow-sm:0 1px 2px #0000006b, 0 1px 3px #00000052;--shadow:0 12px 40px #00000080, 0 3px 10px #00000059}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--bg-stage);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden}button{cursor:pointer;color:inherit;font-family:inherit}input,select{font-family:var(--font-ui)}h2,h3{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--text-dim);font-size:12px;line-height:1.55}.pad{padding:14px 18px}.pad-sm{margin:0;padding:0 18px 8px}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.body{flex:1;min-height:0;display:flex}.rail{background:var(--bg-chrome);z-index:2;flex-direction:column;flex:none;min-height:0;display:flex}.rail-left{border-right:1px solid var(--line);width:292px;box-shadow:1px 0 16px #28283408}.rail-right{border-left:1px solid var(--line);width:312px;box-shadow:-1px 0 16px #28283408}.rail-scroll{min-height:0;overflow-y:auto}.stage{background:radial-gradient(circle at 32% 18%,#efece5,#e2ded6 92%);flex:1;min-width:0;position:relative}:root[data-theme=dark] .stage{background:radial-gradient(circle at 32% 18%,#363b43,#262a30 92%)}.topbar{background:var(--bg-chrome);border-bottom:1px solid var(--line);z-index:3;flex:none;justify-content:space-between;align-items:center;height:56px;padding:0 16px 0 20px;display:flex}.brand{align-items:baseline;gap:11px;text-decoration:none;display:flex}.brand-mark{color:var(--accent);font-size:18px;transform:translateY(1px)}.brand-name{letter-spacing:.2em;color:var(--ink);font-size:16px;font-weight:700}.topbar-actions{align-items:center;gap:12px;display:flex}.topbar-center{flex:auto;justify-content:center;min-width:0;display:flex}.mode-toggle{background:var(--bg-panel);border:1px solid var(--line);border-radius:22px;gap:3px;padding:3px;display:flex}.mode-toggle button{letter-spacing:.01em;white-space:nowrap;color:var(--text-dim);background:0 0;border:none;border-radius:18px;padding:7px 16px;font-size:12.5px;font-weight:600;transition:color .12s,background .12s}.mode-toggle button:hover{color:var(--ink)}.mode-toggle button.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.plan-seg{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:3px;display:flex}.plan-seg button{letter-spacing:.01em;white-space:nowrap;color:var(--text-dim);background:0 0;border:none;border-radius:6px;padding:7px 16px;font-size:12.5px;font-weight:600;transition:color .12s,background .12s}.plan-seg button:hover{color:var(--ink);background:var(--line-soft)}.btn-group{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:3px;display:flex}.icon-btn,.text-btn{color:var(--text-dim);background:0 0;border:none;border-radius:6px;min-width:30px;padding:6px 9px;font-size:13px;transition:background .12s,color .12s}.text-btn{letter-spacing:.01em;font-size:12.5px}.icon-btn:hover,.text-btn:hover{background:var(--line-soft);color:var(--ink)}.icon-btn:disabled{opacity:.32;cursor:default}.icon-btn.danger:hover{color:var(--accent-ink);background:var(--accent-soft)}.icon-btn.xs{min-width:22px;padding:3px 5px;font-size:11px}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);letter-spacing:.005em;box-shadow:var(--shadow-sm);border:none;padding:9px 15px;font-size:13px;font-weight:600;transition:background .12s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:default;box-shadow:none}.btn-primary.sm{padding:6px 12px;font-size:12px}.btn-ghost{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);padding:9px 15px;font-size:13px;transition:border-color .12s,background .12s}.btn-ghost:hover{border-color:var(--text-faint);background:var(--bg-panel)}.btn-block{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);width:calc(100% - 36px);color:var(--ink);margin:0 18px 12px;padding:11px;font-size:13px;transition:border-color .12s,background .12s}.btn-block:hover{border-color:var(--text-faint)}.btn-block.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-group.wrap,.btn-group+.btn-group{margin-left:0}input[type=number],input[type=text],.search,.name-input,.layout-rename,.field input{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--ink);width:100%;padding:9px 11px;font-size:13px;transition:border-color .12s,box-shadow .12s}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input:disabled{opacity:.5;background:var(--bg-panel)}.panel{border-bottom:1px solid var(--line);flex-direction:column;padding:18px 0 8px;display:flex}.panel-head{justify-content:space-between;align-items:center;padding:0 18px 13px;display:flex}.panel-head h2{letter-spacing:0;color:var(--ink);font-size:14px;font-weight:600}.head-actions{align-items:center;gap:4px;display:flex}.field{flex-direction:column;gap:6px;padding:0 18px 14px;display:flex}.field>span,.check{color:var(--text-dim);letter-spacing:0;font-size:12px;font-weight:500}.field-row{display:flex}.field-row .field{flex:1}.dim-inputs{grid-template-columns:1fr auto 1fr auto;align-items:center;gap:4px;display:grid}.dim-inputs input{text-align:center;padding:8px 4px}.dim-inputs input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dim-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dim-inputs input[type=number]{-moz-appearance:textfield}.dim-inputs em{color:var(--text-faint);font-size:11px;font-style:normal}.check{cursor:pointer;align-items:center;gap:9px;padding:0 18px 14px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.rule{border:none;border-top:1px solid var(--line);margin:4px 18px 14px}.seg{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);gap:3px;padding:3px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{color:var(--text-dim);background:0 0;border:none;border-radius:5px;flex:1;min-width:40px;padding:7px 8px;font-size:12px;transition:background .12s,color .12s}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--accent);color:#fff}.btn-group.wrap{flex-wrap:wrap}.btn-group+*,.field .btn-group,.field .seg{margin-top:0}.btn-group button,.btn-group.inline{flex:1}.field>.btn-group,.btn-group.horizontal{display:flex}.swatches{flex-wrap:wrap;gap:7px;display:flex}.sw{border:2px solid #0000;border-radius:50%;width:23px;height:23px;transition:transform .1s;box-shadow:inset 0 0 0 1px #0000001f}.sw:hover{transform:scale(1.08)}.sw.on{border-color:var(--ink)}.catalog{border-bottom:none;flex:1;min-height:0;padding-bottom:0}.search{width:calc(100% - 36px);margin:0 18px 12px}.catalog-scroll{flex:1;min-height:0;padding-bottom:16px;overflow-y:auto}.cat-group{border-top:1px solid var(--line)}.cat-head{letter-spacing:0;width:100%;color:var(--ink);background:0 0;border:none;align-items:center;gap:9px;padding:11px 18px;font-size:13px;font-weight:600;transition:background .12s;display:flex}.cat-head:hover{background:var(--line-soft)}.chev{color:var(--text-faint);font-size:10px;transition:transform .15s}.chev.open{transform:rotate(90deg)}.cat-count{font-family:var(--font-mono);color:var(--text-faint);margin-left:auto;font-size:10.5px}.cat-items{padding:2px 10px 10px}.cat-item{border-radius:var(--radius-sm);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;width:100%;padding:8px 9px;transition:background .1s,border-color .1s;display:flex}.cat-item:hover{background:var(--bg-panel);border-color:var(--line-2)}.swatch{border-radius:4px;flex:none;width:17px;height:17px;box-shadow:inset 0 0 0 1px #00000024}.swatch-3d{object-fit:contain;background:var(--bg-panel);border-radius:7px;flex:none;width:38px;height:38px;box-shadow:inset 0 0 0 1px #0000001f}.cat-item-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.cat-item-dim{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;font-size:10.5px}.cat-item-del{color:var(--text-faint);padding:0 3px;font-size:11px}.cat-item-del:hover{color:var(--accent-ink)}.name-input{width:calc(100% - 36px);font-family:var(--font-ui);margin:0 18px 14px;font-size:15px;font-weight:600}.caliper{background:var(--bg-input);border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.01em;color:var(--ink);align-items:center;gap:8px;margin:0 18px 16px;padding:11px 13px;font-size:13px;display:flex}.caliper-x{color:var(--text-faint)}.caliper-area{color:var(--accent-ink);margin-left:auto;font-size:11px}.rot-row{align-items:center;gap:9px;display:flex}.rot-row input[type=range]{flex:1}input[type=range]{appearance:none;box-sizing:border-box;cursor:pointer;background:0 0;border:none;width:100%;height:16px;margin:0;padding:0 8px}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill,100%), var(--line-2) var(--fill,100%));border-radius:999px;height:6px}input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--accent) var(--fill,100%), var(--line-2) var(--fill,100%));border-radius:999px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border-radius:50%;width:15px;height:15px;margin-top:-4.5px;box-shadow:0 1px 3px #00000059}input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:15px;height:15px;box-shadow:0 1px 3px #00000059}input[type=range]:focus{box-shadow:none;outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 1px 3px #00000059, 0 0 0 4px var(--accent-soft)}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 1px 3px #00000059, 0 0 0 4px var(--accent-soft)}.btn-group.horizontal button,.field .btn-group button{padding:8px 6px}.field>div.btn-group{gap:3px}.field .btn-group button{color:var(--text-dim);background:0 0;border:none;border-radius:5px;flex:1;font-size:12px;transition:background .12s,color .12s}.field .btn-group button:hover{background:var(--line-soft);color:var(--ink)}.field .btn-group button.on{background:var(--accent);color:#fff}.layout-list{margin:0;padding:0 10px 10px;list-style:none}.layout-list li{border-radius:var(--radius-sm);align-items:center;gap:2px;padding-right:5px;display:flex}.layout-list li.active{background:var(--accent-soft)}.layout-name{text-align:left;color:var(--ink);background:0 0;border:none;flex:1;align-items:center;gap:10px;min-width:0;padding:9px 10px;font-size:13.5px;display:flex}.layout-dot{border:1.5px solid var(--text-faint);border-radius:50%;flex:none;width:8px;height:8px}.active .layout-dot{background:var(--accent);border-color:var(--accent)}.layout-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.layout-count{font-family:var(--font-mono);color:var(--text-faint);font-size:10.5px}.layout-rename{flex:1;margin:4px}.scale-readout{font-family:var(--font-mono);align-items:baseline;gap:7px;margin:0 18px 14px;display:flex}.scale-num{color:var(--ink);font-size:28px}.scale-unit{color:var(--text-faint);font-size:12px}.disclosure{margin:0 18px 14px;font-size:12px}.disclosure summary{cursor:pointer;color:var(--accent-ink);padding:5px 0;font-size:12.5px;font-weight:500}.preset-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.preset-grid button{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text-dim);text-align:left;padding:8px;font-size:11px;transition:border-color .12s,color .12s}.preset-grid button:hover{border-color:var(--text-faint);color:var(--ink)}.preset-grid button.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);font-weight:600}.canvas-viewport{touch-action:none;cursor:grab;position:absolute;inset:0;overflow:hidden}.canvas-viewport.tool-calibrate{cursor:crosshair}body.grabbing,body.grabbing *{cursor:grabbing!important}.world{transform-origin:0 0;will-change:transform;filter:drop-shadow(0 8px 24px #28283424);position:absolute;top:0;left:0}.plan-img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;image-rendering:auto;position:absolute;top:0;left:0}.grid-svg{pointer-events:none;position:absolute;top:0;left:0}.grid-line{fill:none}.grid-minor{stroke:var(--grid-minor);stroke-width:1px;opacity:.5}.grid-major{stroke:var(--grid-major);stroke-width:1.4px;opacity:.85}.review-svg{position:absolute;inset:0;overflow:visible}.review-wall{stroke:#e24a3b8c;stroke-linecap:butt;cursor:grab}.review-wall.low{stroke-dasharray:10 6}.review-wall.sel{stroke:#e24a3bd9}.review-wall.ghost{stroke:#e24a3b59;pointer-events:none}.review-handle{fill:#fff;stroke:var(--accent);stroke-width:2px;cursor:crosshair;vector-effect:non-scaling-stroke}.review-fix{cursor:grab}.review-fix rect{fill:#1240d00f;stroke:#1240d0;stroke-width:2px;vector-effect:non-scaling-stroke}.review-fix line{stroke:#1240d0;stroke-width:2px;vector-effect:non-scaling-stroke}.review-fix text{font:11px var(--font-mono);fill:#1240d0}.review-fix.furniture rect,.review-fix.furniture line{stroke:#0a8a8a}.review-fix.furniture rect{fill:#0a8a8a0f}.review-fix.furniture text{fill:#0a8a8a}.review-fix.sel rect{stroke:var(--accent);stroke-width:3px}.review-fix.sel line{stroke:var(--accent)}.review-fix.sel text{fill:var(--accent)}.review-fix.low rect{stroke-dasharray:8 5}.furn{cursor:grab;transition:filter .1s;position:absolute;box-shadow:inset 0 0 0 1.5px #00000038,0 1px 4px #00000029}.furn:hover{filter:brightness(1.06)}.furn-selected{box-shadow:inset 0 0 0 1.5px #0000004d, 0 0 0 1px var(--accent)}.furn-rug{box-shadow:inset 0 0 0 2px #0000002e}.furn-tick{display:none}.item-labels,.cal-svg{pointer-events:none;position:absolute;inset:0}.item-label{font-family:var(--font-ui);color:#fff;text-shadow:0 1px 2px #0009,0 0 2px #0000008c;white-space:nowrap;pointer-events:none;font-size:11px;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.sel-frame{transform-origin:50%;pointer-events:none;position:absolute}.sel-outline{border:1.5px solid var(--accent);position:absolute;inset:0;box-shadow:0 0 0 1px #e24a3b33}.sel-dims{pointer-events:none;position:absolute;overflow:visible}.dim-line{stroke:var(--accent);stroke-width:1.4px}.dim-ext{stroke:var(--accent);stroke-width:1px;opacity:.7}.dim-arrowhead{fill:var(--accent)}.dim-label{transform-origin:50%;font-family:var(--font-mono);color:var(--accent-ink);background:var(--bg-chrome);border:1px solid var(--accent-soft);box-shadow:var(--shadow-sm);white-space:nowrap;pointer-events:none;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute}.sel-handle{border:1.5px solid var(--accent);width:12px;height:12px;box-shadow:var(--shadow-sm);pointer-events:auto;background:#fff;border-radius:3px;position:absolute;transform:translate(-50%,-50%)}.sel-rotate-stem{background:var(--accent);pointer-events:none;width:1.5px;height:22px;position:absolute;top:0;left:50%;transform:translate(-50%,-100%)}.sel-rotate{border:1.5px solid var(--accent);width:14px;height:14px;box-shadow:var(--shadow-sm);pointer-events:auto;cursor:grab;background:#fff;border-radius:50%;position:absolute;top:-22px;left:50%;transform:translate(-50%,-50%)}.cal-line{stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4}.cal-dot{fill:var(--accent)}.cal-hint{background:var(--bg-chrome);border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow);border-radius:22px;align-items:center;gap:12px;padding:9px 16px;font-size:12.5px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.link-btn{color:var(--accent-ink);background:0 0;border:none;font-size:12.5px;text-decoration:underline}.cal-pop{background:var(--bg-chrome);border:1px solid var(--line);border-radius:var(--radius);width:268px;box-shadow:var(--shadow);z-index:20;padding:14px;position:absolute;transform:translate(-50%,12px)}.cal-pop-head{color:var(--text-dim);margin-bottom:10px;font-size:12.5px;line-height:1.45}.cal-pop-head b{font-family:var(--font-mono);color:var(--ink)}.cal-pop-presets{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:11px;display:grid}.cal-pop-presets button{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);color:var(--text-dim);text-align:left;padding:7px;font-size:10.5px;transition:border-color .12s,color .12s}.cal-pop-presets button:hover{border-color:var(--accent);color:var(--ink)}.cal-pop-manual{align-items:flex-end;gap:9px;margin-bottom:11px;display:flex}.cal-pop-manual label{color:var(--text-dim);flex-direction:column;flex:1;gap:5px;font-size:11px;display:flex}.cal-pop-result{font-family:var(--font-mono);color:var(--accent-ink);white-space:nowrap;padding-bottom:9px;font-size:11px}.cal-pop-actions{gap:9px;display:flex}.cal-pop-actions .btn-primary,.cal-pop-actions .btn-ghost{flex:1;padding:8px;font-size:12.5px}.rulers{pointer-events:none;position:absolute;inset:0}.ruler{position:absolute;top:0;left:0}.ruler-top{border-bottom:1px solid var(--line);background:var(--bg-chrome)}.ruler-left{border-right:1px solid var(--line);background:var(--bg-chrome);top:0}.ruler-corner{background:var(--bg-chrome);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.ruler-corner span{font-family:var(--font-mono);color:var(--text-faint);font-size:9px}.ruler-tick{stroke:var(--text-faint);stroke-width:1px}.ruler-label{fill:var(--text-dim);font-family:var(--font-mono);font-size:9px}.zoom-controls{background:var(--bg-chrome);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;gap:1px;padding:3px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-controls button{color:var(--ink);background:0 0;border:none;border-radius:16px;width:32px;height:28px;font-size:16px;transition:background .12s}.zoom-controls button:hover{background:var(--line-soft)}.zoom-pct{font-family:var(--font-mono);width:54px!important;color:var(--text-dim)!important;font-size:11px!important}.empty-hint{text-align:center;background:var(--bg-chrome);border:1px solid var(--line);max-width:460px;color:var(--text-dim);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:none;padding:16px 22px;font-size:13.5px;line-height:1.6;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.empty-hint strong{color:var(--ink)}.scene3d{position:absolute;inset:0;overflow:hidden}.scene3d canvas{touch-action:none;display:block}.scene3d-controls{gap:7px;display:flex;position:absolute;top:16px;left:16px}.scene3d-controls button{background:var(--bg-chrome);border:1px solid var(--line);color:var(--text-dim);box-shadow:var(--shadow-sm);border-radius:18px;padding:8px 13px;font-size:12px;font-weight:500;transition:color .12s,border-color .12s}.scene3d-controls button:hover{color:var(--ink)}.scene3d-controls button.on{border-color:var(--accent);color:var(--accent-ink)}.scene3d-hint{background:var(--bg-chrome);border:1px solid var(--line);color:var(--text-dim);box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap;border-radius:20px;padding:8px 16px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.loading3d{color:var(--text-dim);background:var(--bg-stage);justify-content:center;align-items:center;font-size:13.5px;display:flex;position:absolute;inset:0}.statusbar{background:var(--bg-chrome);border-top:1px solid var(--line);height:30px;font-family:var(--font-mono);color:var(--text-dim);z-index:3;flex:none;justify-content:space-between;align-items:center;padding:0 16px;font-size:11px;display:flex}.status-cursor b,.status-right b{color:var(--ink);font-weight:700}.status-right{align-items:center;gap:11px;display:flex}.status-cursor .sep,.status-right .sep{background:var(--line-2);width:1px;height:12px;margin:0 2px;display:inline-block}.status-cursor{align-items:center;gap:6px;display:flex}.modal-scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#2c2e3657;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-chrome);border:1px solid var(--line);width:430px;max-width:calc(100vw - 32px);box-shadow:var(--shadow);border-radius:14px;padding:4px 4px 18px}.modal-head{justify-content:space-between;align-items:center;padding:16px 18px 14px;display:flex}.modal-head h3{color:var(--ink);font-size:17px}.modal .field{padding:0 18px 16px}.modal .field>span,.modal .field-row .field>span{font-family:var(--font-ui);color:var(--text-dim);font-size:12.5px;font-weight:500}.modal-actions{gap:11px;padding:8px 18px 0;display:flex}.modal-actions button{flex:1}.matpick{flex-direction:column;gap:9px;display:flex}.matpick-fams{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;gap:3px;padding:3px;display:flex}.matpick-fams button{min-width:46px;color:var(--text-dim);background:0 0;border:none;border-radius:5px;flex:1;padding:6px 4px;font-size:11px;transition:background .12s,color .12s}.matpick-fams button:hover{color:var(--ink)}.matpick-fams button.on{background:var(--accent);color:#fff}.matpick-swatches{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:6px;display:grid}.matsw{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);text-align:left;align-items:center;gap:8px;padding:6px 8px;transition:border-color .12s;display:flex}.matsw:hover{border-color:var(--text-faint)}.matsw.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.matsw-dot{border-radius:50%;flex:none;width:17px;height:17px;box-shadow:inset 0 0 0 1px #0000001f}.matsw-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.modal.builder{width:780px}.builder-body{gap:4px;padding:0 6px;display:flex}.builder-preview{flex-direction:column;flex:none;gap:10px;width:302px;padding:0 12px 4px;display:flex}.preview-stage{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-panel);height:236px;position:relative;overflow:hidden}.preview-stage canvas{touch-action:none;display:block}.preview-loading{color:var(--text-faint);justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.builder-preview .name-input{width:100%;margin:0}.builder-dims{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.01em;font-size:11px}.builder-controls{flex-direction:column;flex:1;gap:16px;min-width:0;max-height:60vh;padding:0 14px 4px 6px;display:flex;overflow-y:auto}.builder-section{flex-direction:column;gap:9px;display:flex}.builder-label{color:var(--ink);font-size:12px;font-weight:600}.type-tabs{flex-wrap:wrap;gap:4px;display:flex}.type-tabs button{border:1px solid var(--line-2);color:var(--text-dim);white-space:nowrap;background:0 0;border-radius:16px;flex:none;padding:5px 11px;font-size:11.5px;transition:background .12s,color .12s,border-color .12s}.type-tabs button:hover{color:var(--ink)}.type-tabs button.on{background:var(--ink);border-color:var(--ink);color:var(--bg-chrome)}.type-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px;display:grid}.type-chip{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);text-align:left;align-items:center;gap:8px;padding:8px 9px;transition:border-color .12s;display:flex}.type-chip:hover{border-color:var(--text-faint)}.type-chip.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.type-dot{flex:none;width:15px;height:15px;box-shadow:inset 0 0 0 1px #00000024}.type-thumb{object-fit:contain;background:var(--bg-panel);border-radius:7px;flex:none;width:38px;height:38px;box-shadow:inset 0 0 0 1px #0000001f}.type-chip-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.size-row{gap:12px;display:flex}.size-row label{color:var(--text-dim);flex-direction:column;flex:1;gap:5px;font-size:12px;display:flex}@media (width<=820px){.modal.builder{flex-direction:column;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);display:flex}.modal.builder .modal-head{flex:none}.builder-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0;overflow-y:auto}.modal.builder .modal-actions{flex:none}.builder-preview{width:auto}.builder-controls{flex:none;max-height:none;overflow:visible}}@media (width<=1180px){.rail-left{width:250px}.rail-right{width:270px}}@media (width<=900px){.rail-left,.rail-right{width:214px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.walk3d{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#0e1013;position:absolute;inset:0;overflow:hidden}.walk3d canvas{touch-action:none;display:block}.walk-start{z-index:4;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;background:#0a0b0e73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.walk-start-card{text-align:center;color:#eceef0;background:#131519e0;border:1px solid #ffffff1f;border-radius:16px;max-width:430px;padding:30px 44px 26px;box-shadow:0 24px 70px #00000080}.walk-start-card h2{letter-spacing:.02em;margin:0 0 8px;font-size:19px;font-weight:600}.walk-start-card p{color:#a9aeb5;margin:0 0 18px;font-size:13px;line-height:1.5}.walk-keys{color:#b9bec5;justify-content:center;gap:18px;font-size:12px;display:flex}.walk-keys kbd{min-width:17px;font-family:var(--font-mono);color:#e6e8ea;background:#ffffff12;border:1px solid #ffffff38;border-bottom-width:2px;border-radius:5px;margin:0 1px;padding:2px 5px;font-size:10.5px;display:inline-block}.walk-cta{color:#ff6b5e;margin-top:20px;font-size:13px;font-weight:600;animation:1.8s ease-in-out infinite walk-pulse}@keyframes walk-pulse{0%,to{opacity:1}50%{opacity:.55}}.walk-crosshair{z-index:3;pointer-events:none;background:#ffffffe6;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 5px #0000008c}.walk-hint{z-index:3;color:#b9bec5;pointer-events:none;white-space:nowrap;background:#131519c7;border:1px solid #ffffff1a;border-radius:18px;padding:7px 15px;font-size:12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.walk-exit{z-index:5;color:#e8eaec;background:#131519d9;border:1px solid #ffffff24;border-radius:18px;padding:8px 14px;font-size:12.5px;font-weight:500;transition:border-color .12s,color .12s;position:absolute;top:14px;right:14px}.walk-exit:hover{color:#ff8d82;border-color:#ff6b5e}.walk-rt{z-index:5;color:#e8eaec;background:#131519d9;border:1px solid #ffffff24;border-radius:18px;padding:8px 14px;font-size:12.5px;font-weight:500;transition:border-color .12s,color .12s;position:absolute;top:14px;left:14px}.walk-rt:hover{color:#fff;border-color:#ffffff4d}.walk-rt.on{color:#ff8d82;border-color:#ff6b5e}.walk-rt-status{z-index:3;color:#b9bec5;font-family:var(--font-mono);pointer-events:none;white-space:nowrap;background:#131519b8;border:1px solid #ffffff14;border-radius:12px;padding:5px 11px;font-size:11px;position:absolute;top:52px;left:14px}.walk-rt-group{z-index:5;flex-wrap:wrap;gap:7px;max-width:60%;display:flex;position:absolute;top:14px;left:14px}.walk-rt-group .walk-rt{position:static}.walk-rt.stale{color:#f0c069;border-color:#e0a23a}.walk-rt-chip{color:#ffd98a;background:#5a461480;border:1px solid #ffd27866;border-radius:18px;align-items:center;padding:8px 13px;font-size:12.5px;font-weight:600;display:inline-flex}.walk-bake-overlay{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#0a0b0e9e;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.walk-bake-card{pointer-events:auto;text-align:center;color:#eceef0;background:#131519e6;border:1px solid #ffffff1f;border-radius:16px;max-width:430px;padding:28px 40px 26px;box-shadow:0 24px 70px #00000080}.walk-bake-card h2{letter-spacing:.02em;margin:0 0 8px;font-size:18px;font-weight:600}.walk-bake-card p{color:#a9aeb5;margin:0 0 18px;font-size:13px;line-height:1.5}.walk-bake-bar{background:#ffffff1a;border-radius:4px;height:7px;overflow:hidden}.walk-bake-fill{background:linear-gradient(90deg,#ff8d82,#ff6b5e);border-radius:4px;height:100%;transition:width .2s}.walk-bake-pct{font-family:var(--font-mono);color:#b9bec5;margin-top:10px;font-size:12px}.walk-bake-cancel{color:#cfd3d8;background:#ffffff14;border:1px solid #ffffff29;border-radius:16px;margin-top:18px;padding:7px 18px;font-size:12.5px;font-weight:500;transition:color .12s,border-color .12s}.walk-bake-cancel:hover{color:#fff;border-color:#ffffff57}.walk-warn-overlay{z-index:7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0b0ea8;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.walk-warn-card{color:#eceef0;background:#131519f0;border:1px solid #ffffff1f;border-radius:16px;max-width:470px;max-height:calc(100% - 48px);padding:26px 30px 22px;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.walk-warn-card h2{letter-spacing:.01em;margin:0 0 12px;font-size:18px;font-weight:600}.walk-warn-card p{color:#b3b8bf;margin:0 0 12px;font-size:13px;line-height:1.55}.walk-warn-note{color:#ffd98a;background:#5a461452;border:1px solid #ffd27857;border-radius:12px;margin-top:14px;padding:11px 13px;font-size:12.5px;line-height:1.5}.walk-warn-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.walk-warn-btn{color:#cfd3d8;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:16px;padding:9px 18px;font-size:13px;font-weight:600;transition:color .12s,border-color .12s,background .12s,transform .12s,filter .12s}.walk-warn-btn:hover{color:#fff;border-color:#ffffff52}.walk-warn-btn.primary{color:#2a0f0b;background:linear-gradient(90deg,#ff8d82,#ff6b5e);border-color:#0000}.walk-warn-btn.primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.walk-rt-error{z-index:6;cursor:pointer;color:#f0a48a;border-color:#e0785a80}.dropzone{border:2px dashed var(--line-2);border-radius:var(--radius);text-align:center;color:var(--text-dim);padding:36px 20px;transition:border-color .15s,background .15s}.dropzone.on{border-color:var(--accent);background:var(--accent-soft)}.dropzone p{margin-bottom:12px}.upload-warn{color:var(--accent-ink);margin-bottom:12px;font-size:12.5px}.upload-detecting{text-align:center;color:var(--text-dim);flex-direction:column;align-items:center;gap:8px;padding:32px 20px;display:flex}.upload-detecting-title{margin:0}.upload-detecting-note{opacity:.7;margin:0;font-size:13px}.upload-spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin-top:8px;animation:.8s linear infinite upload-spin}@keyframes upload-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.upload-spinner{animation-duration:2.4s}}.upload-error-msg{color:var(--accent-ink);margin-bottom:12px}.upload-error-actions{gap:11px;display:flex}.upload-error-actions button{flex:1}.review-steps{gap:6px;margin-bottom:12px;display:flex}.review-steps button{border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg-panel);color:var(--text-dim);flex:1;padding:6px 4px;font-size:12px}.review-steps button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.review-body{flex-direction:column;gap:10px;font-size:13px;display:flex}.review-dim{color:var(--text-dim);font-size:12px}.door-layer{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:visible}.door2d{pointer-events:auto;cursor:grab}.door2d-hit{fill:#0000;stroke:none}.door2d-leaf{stroke:var(--ink);stroke-width:2.5px;stroke-linecap:round}.door2d-shut{stroke:var(--ink);stroke-width:1px;opacity:.3}.door2d-arc{fill:none;stroke:var(--ink);stroke-width:1px;stroke-dasharray:4 4;opacity:.45}.door2d-hinge{fill:var(--ink);opacity:.6}.door2d:hover .door2d-leaf{stroke:var(--accent-hover)}.door2d-sel .door2d-leaf,.door2d-sel .door2d-shut,.door2d-sel .door2d-arc{stroke:var(--accent);opacity:1}.door2d-sel .door2d-hinge{fill:var(--accent);opacity:1}[data-mobile] .sel-handle:before,[data-mobile] .sel-rotate:before{content:"";position:absolute;inset:-12px}[data-mobile] .sel-handle,[data-mobile] .sel-rotate{position:relative}[data-mobile],[data-mobile] body{overscroll-behavior:none}[data-mobile] .rail{display:none}[data-mobile] .topbar{height:auto;min-height:48px;padding:env(safe-area-inset-top) calc(env(safe-area-inset-right) + var(--account-inset,12px)) 0 10px;flex-wrap:nowrap;justify-content:flex-start;gap:6px;overflow:hidden}[data-mobile] .topbar-center,[data-mobile] .plan-seg,[data-mobile] .btn-group[data-tour=share],[data-mobile] .tour-group{display:none}[data-mobile] .topbar-actions{flex:auto;gap:6px;min-width:0}[data-mobile] .topbar-actions .share-menu-wrap{margin-left:auto}[data-mobile] .topbar-actions [data-tour=account],[data-mobile] .topbar-actions [data-tour=mobile-share]{opacity:0;pointer-events:none;will-change:opacity, transform;transition:opacity .3s,transform .3s;transform:translate(8px)}[data-mobile] .topbar.brand-reclaimed .topbar-actions [data-tour=account],[data-mobile] .topbar.brand-reclaimed .topbar-actions [data-tour=mobile-share]{opacity:1;pointer-events:auto;transition:opacity .35s,transform .35s;transform:none}.share-menu-wrap{display:none}[data-mobile] .share-menu-wrap{flex:none;align-items:center;display:flex}[data-mobile] .share-menu{top:calc(env(safe-area-inset-top) + 54px);right:calc(env(safe-area-inset-right) + var(--account-inset,12px));z-index:45;background:var(--bg-chrome);border:1px solid var(--line);border-radius:var(--radius);min-width:184px;box-shadow:var(--shadow);flex-direction:column;padding:6px;animation:.14s share-menu-in;display:flex;position:fixed}@keyframes share-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}[data-mobile] .share-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--ink);font-family:var(--font-ui);text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:11px 12px;font-size:15px;font-weight:500;display:flex}[data-mobile] .share-menu-item svg{color:var(--text-dim);flex:none}[data-mobile] .share-menu-item:active{background:var(--line-soft)}[data-mobile] .proj-chip{display:none}[data-mobile] .mode-toggle{will-change:transform;flex:none;gap:1px;padding:2px;transition:transform .5s}[data-mobile] .topbar.brand-collapsed .mode-toggle{transform:translateX(calc(-1 * var(--brand-w,88px)))}[data-mobile] .topbar.brand-reclaimed .mode-toggle{transition:none;transform:none}[data-mobile] .mode-toggle button{padding:6px 7px;font-size:12px}[data-mobile] .topbar .btn-group[data-tour=undo-redo]{top:calc(env(safe-area-inset-top) + 80px);right:calc(env(safe-area-inset-right) + var(--account-inset,12px));z-index:30;background:var(--bg-chrome);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:18px;padding:3px;position:fixed}[data-mobile] .topbar .btn-group[data-tour=undo-redo] .icon-btn{min-width:40px;padding:8px 10px}[data-mobile] .topbar:not([data-vm="2d"]) .btn-group[data-tour=undo-redo]{display:none}[data-mobile] .brand{flex:none;gap:8px;overflow:hidden}[data-mobile] .brand-mark{z-index:2;position:relative}[data-mobile] .brand-name{white-space:nowrap;will-change:opacity, transform;max-width:130px;transition:opacity .3s,transform .5s;overflow:hidden}[data-mobile] .topbar.brand-collapsed .brand-name{opacity:0;transform:translate(-10px)}[data-mobile] .topbar.brand-reclaimed .brand-name{max-width:0}[data-mobile] .zoom-controls,[data-mobile] .statusbar,[data-mobile] .walk-start,[data-mobile] .walk-hint{display:none}.bottom-sheet-scrim{z-index:60;background:#14141c61;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--bg-chrome);width:100%;max-height:82dvh;padding-bottom:env(safe-area-inset-bottom);touch-action:none;border-radius:16px 16px 0 0;flex-direction:column;display:flex;box-shadow:0 -8px 32px #14141c47}.bottom-sheet-grip{cursor:grab;justify-content:center;padding:8px 0 4px;display:flex}.bottom-sheet-handle{background:var(--line);border-radius:2px;width:40px;height:4px}.bottom-sheet-head{justify-content:space-between;align-items:center;padding:2px 14px 10px;display:flex}.bottom-sheet-head h3{color:var(--ink);margin:0;font-size:15px}.bottom-sheet-body{min-height:0;padding:0 8px 8px;overflow-y:auto}.mobile-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;width:56px;height:56px;color:var(--bg-chrome);background:var(--ink);border:none;border-radius:16px;justify-content:center;align-items:center;line-height:1;display:flex;position:fixed;box-shadow:0 6px 20px #14141c4d}.mobile-fab:active{transform:scale(.96)}.mobile-actionbar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:45;background:var(--bg-chrome);border:1px solid var(--line);border-radius:14px;gap:6px;padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #14141c3d}.mobile-actionbar button{min-width:44px;min-height:44px;color:var(--ink);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.mobile-actionbar .ab-config{width:auto;font-family:var(--font-ui);padding:0 15px;font-size:14px;font-weight:600}.mobile-actionbar button:active{background:var(--line)}.desktop-note{color:var(--text-dim);margin:0 8px 12px;font-size:14px;line-height:1.5}.desktop-switch{text-align:center;width:calc(100% - 16px);margin:4px 8px 8px;padding:10px;display:block}.walk-touch{pointer-events:none;z-index:20;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:absolute;inset:0}.walk-touch>*{pointer-events:auto}.walk-joystick{left:calc(20px + env(safe-area-inset-left));bottom:calc(28px + env(safe-area-inset-bottom));touch-action:none;background:#14141c47;border-radius:50%;justify-content:center;align-items:center;width:108px;height:108px;display:flex;position:absolute}.walk-joystick-knob{will-change:transform;background:#f0f0f5d9;border-radius:50%;width:44px;height:44px;transition:transform 80ms ease-out}.walk-lookpad{touch-action:none;width:55%;height:70%;position:absolute;bottom:0;right:0}.walk-open{right:calc(20px + env(safe-area-inset-right));bottom:calc(120px + env(safe-area-inset-bottom));color:#fff;letter-spacing:.02em;touch-action:none;z-index:2;background:#14141c66;border:none;border-radius:50%;width:66px;height:66px;font-size:14px;font-weight:600;position:absolute}.walk-touch-hint{left:50%;top:calc(env(safe-area-inset-top) + 72px);text-align:center;color:#fff;pointer-events:none;background:#14141c9e;border-radius:12px;max-width:78vw;padding:9px 15px;font-size:13px;line-height:1.35;animation:5s forwards walkHintFade;position:absolute;transform:translate(-50%)}@keyframes walkHintFade{0%{opacity:0}8%{opacity:1}82%{opacity:1}to{opacity:0}}.walk-touch-start{z-index:20;background:var(--ink);color:var(--bg-chrome);border:none;border-radius:12px;padding:12px 22px;font-size:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.furn-browser{z-index:48;background:var(--bg-chrome);padding-top:env(safe-area-inset-top,0px);overscroll-behavior:contain;flex-direction:column;display:flex;position:fixed;inset:0}.furn-browser-head{flex:none;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.furn-browser-head h2{color:var(--ink);font-size:19px;font-weight:600}.furn-browser-head-actions{align-items:center;gap:8px;display:flex}.furn-add-pill{background:var(--accent);color:#fff;white-space:nowrap;border:none;border-radius:999px;align-items:center;gap:4px;padding:8px 15px;font-size:13px;font-weight:600;display:inline-flex}.furn-add-pill:active{filter:brightness(.93)}.furn-browser .search{flex:none;width:calc(100% - 32px);margin:0 16px 10px}.furn-cats{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:none;gap:7px;padding:0 16px 12px;display:flex;overflow-x:auto}.furn-cats::-webkit-scrollbar{display:none}.furn-cats button{border:1px solid var(--line-2);color:var(--text-dim);white-space:nowrap;background:0 0;border-radius:16px;flex:none;padding:7px 14px;font-size:13px}.furn-cats button.on{background:var(--ink);border-color:var(--ink);color:var(--bg-chrome)}.furn-cats .furn-cat-new{color:var(--accent-ink);border-color:var(--accent);margin-left:auto}.furn-grid{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:10px;min-height:0;padding:4px 16px 16px;display:grid;overflow-y:auto}.furn-tile{background:var(--bg-panel);border:1px solid var(--line-2);border-radius:var(--radius);text-align:left;flex-direction:column;gap:3px;padding:10px;display:flex;position:relative}.furn-tile:active{border-color:var(--accent);background:var(--line-soft)}.furn-tile-thumb{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-input);justify-content:center;align-items:center;width:100%;margin-bottom:5px;display:flex;overflow:hidden}.furn-tile-thumb img{object-fit:contain;width:100%;height:100%;padding:8px}.furn-tile-swatch{width:46px;height:46px;box-shadow:inset 0 0 0 1px #0000001f}.furn-tile-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.furn-tile-dim{font-family:var(--font-mono);color:var(--text-faint);font-size:11px}.furn-tile-del{background:var(--bg-chrome);width:24px;height:24px;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:6px;right:6px;box-shadow:0 1px 3px #28283433}.furn-browser-foot{padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--bg-chrome);flex:none;align-items:center;gap:12px;display:flex}.furn-browser-foot .btn-primary{flex:1;padding:13px;font-size:15px}.furn-toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:49;background:var(--ink);color:var(--bg-chrome);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:600;animation:.22s furn-toast-pop;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 4px 14px #2828344d}@keyframes furn-toast-pop{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.landing,.auth-wrap,.legal-wrap{--paper:#f2efe6;--paper-hi:#fbfaf5;--ink:#20242a;--graphite:#545a62;--pencil:#6f685d;--redline:#df3f2e;--redline-dp:#bd2f20;--blueprint:#5b83982e;--line:#ddd6c7;--line-2:#cec6b4;--sheet-shadow:0 1px 0 #20242a08, 0 26px 60px -34px #38301e80}:is(html:has(.landing),html:has(.auth-wrap),html:has(.legal-wrap),html:has(.dash-wrap)){height:auto;overflow:hidden auto}:is(body:has(.landing),body:has(.auth-wrap),body:has(.legal-wrap),body:has(.dash-wrap)){height:auto;min-height:100%;overflow:visible}.page-loading{min-height:100vh;color:var(--text-dim);font-family:var(--font-ui);background:var(--bg-stage);justify-content:center;align-items:center;display:flex}.lp-glyph{color:var(--redline)}.lp-wordmark,.auth-brand .brand-name{letter-spacing:.26em;font-weight:700}.lp-btn{font-family:var(--font-ui);letter-spacing:.01em;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:11px 18px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s;display:inline-flex}.lp-btn-solid{background:var(--redline-dp);color:#fff;box-shadow:0 1px #0000000f,0 10px 22px -14px #bd2f20e6}.lp-btn-solid:hover{background:#a5271a;transform:translateY(-1px)}.lp-btn-lg{padding:14px 24px;font-size:15px}.landing{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}.lp-nav{z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:18px clamp(20px,5vw,56px);display:flex;position:sticky;top:0}.lp-mark{color:var(--ink);align-items:center;gap:9px;font-size:15px;text-decoration:none;display:inline-flex}.lp-mark .lp-glyph{font-size:19px}.lp-nav-meta{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--pencil);margin-left:4px;font-size:11px}.lp-nav-links{align-items:center;gap:18px;margin-left:auto;display:flex}.lp-link{color:var(--graphite);font-size:14px;font-weight:500;text-decoration:none}.lp-link:hover{color:var(--ink)}.lp-hero{border-bottom:1px solid var(--line);padding:0 clamp(20px,5vw,56px) clamp(44px,6vw,72px);position:relative;overflow:hidden}.lp-hero-grid{background-image:linear-gradient(var(--blueprint) 1px, transparent 1px), linear-gradient(90deg, var(--blueprint) 1px, transparent 1px);pointer-events:none;background-size:34px 34px;position:absolute;inset:-2px;-webkit-mask-image:radial-gradient(125% 90% at 12% 0,#000 0%,#0000 62%);mask-image:radial-gradient(125% 90% at 12% 0,#000 0%,#0000 62%)}.lp-hero-inner{max-width:1120px;margin:0 auto;position:relative}.lp-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--redline-dp);margin-bottom:22px;font-size:12px}.lp-eyebrow:before{content:"";background:var(--redline);vertical-align:middle;width:26px;height:1px;margin-bottom:3px;margin-right:12px;display:inline-block}.lp-title{letter-spacing:-.028em;color:var(--ink);max-width:15ch;font-size:clamp(38px,7.2vw,82px);font-weight:600;line-height:1.02}.lp-dim{white-space:nowrap;color:var(--ink);position:relative}.lp-dim-mark{pointer-events:none;height:.5em;position:absolute;bottom:-.34em;left:0;right:0}.lp-dim-svg{fill:none;width:100%;height:100%;stroke:var(--redline);stroke-width:1.6px;vector-effect:non-scaling-stroke;position:absolute;inset:0;overflow:visible}.lp-dim-run{stroke-dasharray:240;stroke-dashoffset:0}.lp-dim-num{background:var(--paper);font-family:var(--font-mono);letter-spacing:.04em;color:var(--redline-dp);padding:0 8px;font-size:.26em;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lp-lede{max-width:56ch;color:var(--graphite);margin-top:30px;font-size:clamp(16px,1.5vw,19px);line-height:1.62}.lp-cta{flex-wrap:wrap;align-items:center;gap:22px;margin-top:34px;display:flex}.lp-cta-alt{font-family:var(--font-mono);letter-spacing:.04em;color:var(--graphite);font-size:13px;text-decoration:none}.lp-cta-alt:hover{color:var(--redline-dp)}.lp-titleblock{border:1px solid var(--line-2);background:var(--paper-hi);border-bottom:none;grid-template-columns:repeat(4,1fr);max-width:1120px;margin:clamp(56px,8vw,92px) auto 0;display:grid;position:relative}.lp-titleblock>div{border-left:1px solid var(--line-2);padding:14px 18px}.lp-titleblock>div:first-child{border-left:none}.lp-titleblock dt{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--pencil);margin-bottom:5px;font-size:10px}.lp-titleblock dd{color:var(--ink);margin:0;font-size:13.5px;font-weight:600}.lp-section-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--pencil);align-items:center;gap:14px;font-size:11px;display:flex}.lp-section-label:after{content:"";background:var(--line);flex:1;height:1px}.lp-editor{max-width:1120px;margin:0 auto;padding:clamp(56px,8vw,96px) clamp(20px,5vw,56px) 0}.lp-editor-shot{border:1px solid var(--line);background:var(--paper-hi);border-radius:10px;margin-top:34px;overflow:hidden;box-shadow:0 24px 60px -34px #14161a66}.lp-editor-shot img{width:100%;height:auto;display:block}.lp-editor-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);column-gap:clamp(28px,4vw,64px);margin-top:46px;display:grid}.lp-editor-list li{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:13px;padding:15px 2px;font-size:clamp(14.5px,1.15vw,16px);line-height:1.4;display:flex}.lp-editor-list li:before{content:"";background:var(--redline);border-radius:50%;flex:0 0 7px;height:7px}@media (width<=640px){.lp-editor-list{grid-template-columns:1fr}}.lp-mobile{max-width:1120px;margin:0 auto;padding:clamp(52px,7.5vw,92px) clamp(20px,5vw,56px) 0}.lp-mobile-body{grid-template-columns:minmax(220px,292px) 1fr;align-items:center;gap:clamp(32px,6vw,84px);margin-top:42px;display:grid}.lp-mobile-device{justify-content:center;display:flex}.lp-mobile-phone{background:linear-gradient(152deg,#3a3e44 0%,#22262b 44%,#141619 100%);border-radius:46px;width:100%;max-width:288px;padding:11px;position:relative;box-shadow:inset 0 1px 2px #ffffff38,0 0 0 1px #0000008c,0 44px 74px -34px #14161a99,0 14px 30px -20px #14161a66}.lp-mobile-phone:before,.lp-mobile-phone:after{content:"";background:#15171a;border-radius:4px;width:2.5px;position:absolute}.lp-mobile-phone:before{height:12%;top:25%;right:-2.5px}.lp-mobile-phone:after{height:17%;top:20%;left:-2.5px}.lp-mobile-screen{background:#faf9f7;border-radius:35px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000052}.lp-mobile-screen img{width:100%;height:auto;display:block}.lp-mobile-status{color:#20242a;justify-content:space-between;align-items:center;height:34px;padding:0 19px;display:flex;position:relative}.lp-mobile-time{font-family:var(--font-ui);letter-spacing:.01em;font-feature-settings:"tnum";padding-left:3px;font-size:12.5px;font-weight:700}.lp-mobile-island{background:#08090b;border-radius:11px;width:78px;height:21px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.lp-mobile-glyphs{align-items:center;gap:5px;display:flex}.lp-mobile-i{fill:currentColor;width:auto;height:11px;display:block}.lp-mobile-batt{height:12px}.lp-mobile-home{background:#14161a80;border-radius:3px;width:33%;height:5px;position:absolute;bottom:9px;left:50%;transform:translate(-50%)}.lp-mobile-copy{max-width:32rem}.lp-mobile-copy h3{letter-spacing:-.02em;color:var(--ink);font-size:clamp(24px,3vw,34px);font-weight:600;line-height:1.08}.lp-mobile-copy p{color:var(--graphite);margin-top:16px;font-size:clamp(15px,1.15vw,17px);line-height:1.62}@media (width<=720px){.lp-mobile-body{grid-template-columns:1fr;justify-items:center;gap:40px}.lp-mobile-copy{text-align:center;max-width:34rem}}.lp-features{max-width:1120px;margin:0 auto;padding:clamp(64px,9vw,104px) clamp(20px,5vw,56px) 0}.lp-feature-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;margin-top:40px;display:grid}.lp-feature{background:var(--paper-hi);flex-direction:column;gap:10px;padding:clamp(24px,3vw,38px);display:flex}.lp-feature-art{width:48px;height:48px;margin-bottom:8px}.lp-ico{fill:none;width:48px;height:48px;stroke:var(--ink);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.lp-ico .s2{stroke-width:1.6px}.lp-ico .s3{stroke-width:2.6px}.lp-ico .faint{stroke:var(--line-2)}.lp-ico .red{stroke:var(--redline)}.lp-ico .red.fill{fill:var(--redline);stroke:none}.lp-ico .dash{stroke-dasharray:3 3}.lp-feature-tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--redline-dp);font-size:11px}.lp-feature h3{letter-spacing:-.01em;color:var(--ink);font-size:20px;font-weight:600}.lp-feature-body{color:var(--graphite);font-size:14.5px;line-height:1.6}.lp-process{max-width:1120px;margin:0 auto;padding:clamp(64px,9vw,104px) clamp(20px,5vw,56px) 0}.lp-steps{grid-template-columns:repeat(4,1fr);margin:40px 0 0;padding:0;list-style:none;display:grid;position:relative}.lp-steps:before{content:"";background:repeating-linear-gradient(90deg, var(--line-2) 0 6px, transparent 6px 12px);height:1px;position:absolute;top:15px;left:8%;right:8%}.lp-step{flex-direction:column;align-items:flex-start;gap:12px;padding-right:20px;display:flex}.lp-step-n{z-index:1;background:var(--paper);border:1.5px solid var(--redline);width:32px;height:32px;color:var(--redline-dp);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:relative}.lp-step-verb{color:var(--ink);font-size:18px;font-weight:600}.lp-step-rest{color:var(--graphite);margin-top:-4px;font-size:14px;line-height:1.5}.lp-close{background:var(--ink);color:var(--paper);margin-top:clamp(72px,10vw,120px)}.lp-close-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;max-width:1120px;margin:0 auto;padding:clamp(56px,8vw,96px) clamp(20px,5vw,56px);display:flex}.lp-close h2{letter-spacing:-.02em;font-size:clamp(30px,4.6vw,52px);font-weight:600;line-height:1.04}.lp-close .lp-btn-solid{box-shadow:0 12px 30px -14px #df3f2eb3}.lp-foot{flex-wrap:wrap;align-items:center;gap:20px;max-width:1120px;margin:0 auto;padding:26px clamp(20px,5vw,56px);display:flex}.lp-foot-mark{color:var(--ink);align-items:center;gap:9px;font-size:14px;display:inline-flex}.lp-foot-meta{font-family:var(--font-mono);letter-spacing:.08em;color:var(--pencil);font-size:11px}.lp-foot-links{gap:20px;margin-left:auto;display:flex}.lp-foot-links a{color:var(--graphite);font-size:13px;text-decoration:none}.lp-foot-links a:hover{color:var(--redline-dp)}.auth-wrap{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;padding:24px;display:flex;position:relative;overflow:hidden}.auth-hero-grid{background-image:linear-gradient(var(--blueprint) 1px, transparent 1px), linear-gradient(90deg, var(--blueprint) 1px, transparent 1px);pointer-events:none;background-size:34px 34px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 0,#000 0%,#0000 70%);mask-image:radial-gradient(90% 70% at 50% 0,#000 0%,#0000 70%)}.auth-sheet{background:var(--paper-hi);border:1px solid var(--line-2);width:min(880px,100%);box-shadow:var(--sheet-shadow);grid-template-columns:.9fr 1.1fr;display:grid;position:relative}.auth-aside{border-right:1px solid var(--line-2);background:linear-gradient(160deg, color-mix(in srgb, var(--blueprint) 40%, transparent), transparent 55%), var(--paper-hi);flex-direction:column;gap:18px;padding:38px 34px;display:flex}.auth-brand{color:var(--ink);align-items:center;gap:9px;text-decoration:none;display:inline-flex}.auth-brand .brand-mark{color:var(--redline);font-size:20px}.auth-brand .brand-name{font-size:15px}.auth-aside-tag{color:var(--graphite);max-width:26ch;font-size:16px;line-height:1.5}.auth-aside-art{margin-top:auto}.auth-plan{fill:none;width:100%;height:auto;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round}.auth-plan .s2{stroke-width:1.4px}.auth-plan .s3{stroke-width:2.6px}.auth-plan .wall-gap{stroke:var(--paper-hi);stroke-width:4px}.auth-plan .door{stroke:var(--line-2);stroke-width:1.2px}.auth-plan .dim{stroke:var(--redline);stroke-width:1.3px}.auth-plan .dim-num{fill:var(--redline-dp);stroke:none;font-family:var(--font-mono);font-size:11px;font-weight:700}.auth-card{flex-direction:column;gap:18px;padding:40px clamp(28px,4vw,46px);display:flex}.auth-card h1{letter-spacing:-.015em;color:var(--ink);font-size:26px;font-weight:600}.oauth-row{flex-direction:column;gap:9px;display:flex}.oauth-btn{background:var(--paper-hi);border:1px solid var(--line-2);color:var(--ink);font-size:14px;font-weight:600;font-family:var(--font-ui);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:10px;padding:11px 15px;transition:border-color .14s,background .14s;display:flex}.oauth-btn:hover{border-color:var(--pencil);background:color-mix(in srgb, var(--paper) 60%, var(--paper-hi))}.auth-divider{color:var(--pencil);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:12px;font-size:10.5px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-form{flex-direction:column;gap:15px;display:flex}.auth-field{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--graphite);flex-direction:column;gap:7px;font-size:11px;display:flex}.auth-field input{font-family:var(--font-ui);text-transform:none;letter-spacing:normal;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:7px;padding:11px 13px;font-size:14.5px;transition:border-color .14s,box-shadow .14s}.auth-field input:focus{border-color:var(--redline);box-shadow:0 0 0 3px color-mix(in srgb, var(--redline) 18%, transparent);outline:none}.auth-card .btn-primary{background:var(--redline-dp);color:#fff;width:100%;font-family:var(--font-ui);cursor:pointer;border:none;border-radius:7px;margin-top:3px;padding:12px 16px;font-size:14.5px;font-weight:600;transition:background .14s}.auth-card .btn-primary:hover{background:#a5271a}.auth-card .btn-primary:disabled{opacity:.6;cursor:default}.auth-error{color:var(--redline-dp);font-size:13px;line-height:1.4}.auth-note{color:var(--graphite);font-size:14.5px;line-height:1.6}.auth-note strong{color:var(--ink)}.auth-links{justify-content:space-between;gap:12px;margin-top:2px;font-size:13px;display:flex}.auth-links a{color:var(--graphite);text-decoration:none}.auth-links a:hover{color:var(--redline-dp)}.dash-wrap{background:var(--bg-stage);min-height:100vh;font-family:var(--font-ui);color:var(--text)}.dash-head{background:var(--bg-chrome);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 26px;display:flex}.dash-head .auth-brand .brand-mark{color:var(--accent)}.dash-actions,.dash-plan-actions{gap:10px;display:flex}@media (width<=640px){.dash-head{padding:12px 16px;position:relative}.dash-plan-actions{z-index:5;gap:8px;position:absolute;top:calc(100% + 10px);right:16px}.dash-plan-actions .btn-ghost,.dash-plan-actions .btn-primary{white-space:nowrap;border-radius:999px;box-shadow:0 5px 16px #14141c2e}.dash-main{padding-top:78px}.dash-actions [data-tour=account]{border-radius:12px;justify-content:center;align-self:center;align-items:center;width:44px;height:44px;padding:0}.dash-actions .account-btn{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;padding:0;display:flex}}.dash-main{max-width:1060px;margin:0 auto;padding:34px 26px 60px}.dash-main h1{color:var(--ink);margin-bottom:22px;font-size:22px;font-weight:600}.dash-empty{color:var(--text-dim);flex-direction:column;gap:8px;max-width:420px;font-size:14px;line-height:1.6;display:flex}.plan-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;padding:0;list-style:none;display:grid}.plan-card{background:var(--bg-chrome);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .12s,box-shadow .12s;overflow:hidden}.plan-card:hover{border-color:var(--line-2);box-shadow:var(--shadow)}.plan-card-link{display:block}.plan-thumb{object-fit:cover;background:var(--bg-panel);width:100%;height:150px;display:block}.plan-thumb-empty{color:var(--line-2);justify-content:center;align-items:center;font-size:42px;display:flex}.plan-card-foot{align-items:center;gap:8px;padding:10px 12px;display:flex}.plan-card-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;font-weight:600;text-decoration:none;overflow:hidden}.plan-card-when{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;font-size:10.5px}.plan-card-btns{gap:2px;display:flex}.legal-wrap{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;padding:24px clamp(20px,5vw,56px) 64px}.legal-top{justify-content:space-between;align-items:center;max-width:720px;margin:0 auto;padding:12px 0 40px;display:flex}.legal-back{font-family:var(--font-mono);letter-spacing:.08em;color:var(--graphite);font-size:12px;text-decoration:none}.legal-back:hover{color:var(--redline-dp)}.legal-sheet{background:var(--paper-hi);border:1px solid var(--line-2);max-width:720px;box-shadow:var(--sheet-shadow);flex-direction:column;gap:18px;margin:0 auto;padding:clamp(32px,5vw,56px);display:flex}.legal-eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--redline-dp);font-size:11px}.legal-sheet h1{letter-spacing:-.02em;color:var(--ink);margin-top:-6px;font-size:clamp(28px,4vw,38px);font-weight:600}.legal-sheet p{color:var(--graphite);font-size:15.5px;line-height:1.7}.legal-note{border-top:1px solid var(--line);margin-top:10px;padding-top:18px}.legal-note a{color:var(--redline-dp)}.landing a:focus-visible,.landing button:focus-visible,.auth-wrap a:focus-visible,.auth-wrap button:focus-visible,.legal-wrap a:focus-visible{outline:2px solid var(--redline);outline-offset:3px;border-radius:3px}@media (prefers-reduced-motion:no-preference){.lp-eyebrow,.lp-title,.lp-lede,.lp-cta,.lp-titleblock{animation:.7s cubic-bezier(.2,.7,.2,1) both lp-rise}.lp-title{animation-delay:60ms}.lp-lede{animation-delay:.16s}.lp-cta{animation-delay:.24s}.lp-titleblock{animation-delay:.32s}.lp-dim-mark{animation:.5s .5s both lp-dim-in}.lp-dim-run{stroke-dashoffset:240px;animation:.55s .52s forwards lp-draw}.lp-dim-num{opacity:0;animation:.3s .95s forwards lp-pop}}@keyframes lp-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes lp-dim-in{0%{opacity:0}to{opacity:1}}@keyframes lp-draw{to{stroke-dashoffset:0}}@keyframes lp-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (width<=760px){.lp-nav-meta{display:none}.lp-feature-grid{grid-template-columns:1fr}.lp-titleblock{grid-template-columns:repeat(2,1fr)}.lp-titleblock>div:nth-child(3){border-left:none}.lp-titleblock>div:nth-child(n+3){border-top:1px solid var(--line-2)}.lp-steps{grid-template-columns:1fr;gap:22px}.lp-steps:before{display:none}.lp-close-inner{flex-direction:column;align-items:flex-start}.auth-sheet{grid-template-columns:1fr;width:min(440px,100%)}.auth-aside{border-right:none;border-bottom:1px solid var(--line-2);padding:26px 28px}.auth-aside-art{display:none}.auth-aside-tag{max-width:none}}.proj-chip{align-items:center;gap:9px;min-width:0;margin-left:4px;display:flex}.proj-name{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:12.5px;font-weight:600;overflow:hidden}.sync-chip{font-family:var(--font-mono);letter-spacing:.02em;border:1px solid var(--line-2);color:var(--text-faint);white-space:nowrap;border-radius:10px;padding:3px 8px;font-size:10px}.sync-chip.sync-saving{color:var(--text-dim)}.sync-chip.sync-offline,.sync-chip.sync-error{color:var(--accent-ink);border-color:var(--accent-soft);background:var(--accent-soft)}.account-wrap{position:relative}.account-btn{font-weight:700}.account-menu{background:var(--bg-chrome);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:60;flex-direction:column;gap:8px;min-width:200px;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.account-email{color:var(--text-dim);text-overflow:ellipsis;font-size:12px;overflow:hidden}.share-body{flex-direction:column;gap:10px;padding:0 18px 18px;display:flex}.share-row{gap:8px;display:flex}.share-row input{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);min-width:0;color:var(--text);flex:1;padding:8px 10px;font-size:13px}.share-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.share-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 2px;font-size:13px;display:flex}.share-item:last-child{border-bottom:none}.share-email{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:1;overflow:hidden}.share-notice{color:var(--text-dim);font-size:12.5px}.share-error{color:var(--accent-ink);font-size:12.5px}.plan-tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:2px 6px;font-size:9.5px;display:inline-block}.lp-hero-split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(24px,4vw,64px);max-width:1120px;margin:0 auto;display:grid;position:relative}.lp-hero-split .lp-hero-inner{max-width:none;margin:0}.lp-hero-art{aspect-ratio:4/3.35;width:100%;min-height:400px;position:relative}.hero-reveal{position:absolute;inset:0}.hero-reveal,.hero-reveal canvas{display:block;width:100%!important;height:100%!important}.lp-hero-poster{font-family:var(--font-mono);letter-spacing:.16em;color:var(--pencil);background:0 0;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;inset:0}@media (width<=900px){.lp-hero-split{grid-template-columns:1fr}.lp-hero-art{aspect-ratio:5/6;min-height:340px}}.account-modal{width:min(460px,100vw - 32px)}.account-body{flex-direction:column;gap:20px;padding:0 18px 18px;display:flex}.account-id{align-items:center;gap:12px;display:flex}.account-avatar{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;display:grid}.account-id-text{flex-direction:column;flex:1;min-width:0;display:flex}.account-id-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-size:11px}.account-id-email{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.account-section{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:16px;display:flex}.account-section h4{color:var(--text);margin:0;font-size:13px;font-weight:700}.account-hint{color:var(--text-dim);margin:0;font-size:12px}.account-muted{color:var(--text-faint);margin:2px 0;font-size:13px}.account-error{color:var(--accent-ink);margin:2px 0;font-size:13px}.account-share-group{flex-direction:column;gap:4px;margin-top:4px;display:flex}.account-share-plan{color:var(--text-dim);font-size:12px;font-weight:700}.account-share-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.account-share-item{align-items:center;gap:8px;padding:4px 0;display:flex}.account-share-email{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.account-revoke{font:600 12px var(--font-ui);color:var(--accent-ink);border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex:none;padding:3px 10px}.account-revoke:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.account-revoke:disabled{opacity:.5;cursor:default}.account-danger{border-top-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.account-danger-row{align-items:flex-start;gap:12px;display:flex}.account-danger-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.account-danger-text strong{color:var(--text);font-size:13px}.account-danger-text span{color:var(--text-dim);font-size:12px}.account-danger-row .btn-ghost,.account-danger-row .btn-danger,.account-danger-row .text-btn{white-space:nowrap;flex:none}.btn-danger{font:600 13px var(--font-ui);color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;padding:7px 14px}.btn-danger:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger:disabled{opacity:.5;cursor:default}.account-delete-confirm{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));border-radius:var(--radius-sm);background:var(--accent-soft);flex-direction:column;gap:6px;padding:10px;display:flex}.account-delete-confirm label{color:var(--text-dim);font-size:12px}.account-delete-row{gap:8px;display:flex}.account-delete-row input{background:var(--bg-input);border:1px solid var(--line-2);border-radius:var(--radius-sm);min-width:0;font:500 13px var(--font-ui);color:var(--text);flex:1;padding:7px 10px}.theme-seg{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius-sm);gap:2px;padding:3px;display:flex}.theme-seg button{font:600 12.5px var(--font-ui);letter-spacing:.01em;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1 1 0;padding:7px 0;transition:color .12s,background .12s}.theme-seg button:hover:not(.on){color:var(--ink);background:var(--line-soft)}.theme-seg button.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}
