@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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}:root{--font-text:"Geist Variable", "Segoe UI", system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "Cascadia Mono", monospace;--canvas:#eef0eb;--surface:#f8f9f6;--surface-sunk:#e4e8e2;--ink:#1c2521;--ink-soft:#536159;--line:#d1d9d2;--line-strong:#b4c1b7;--green:#2c5a4b;--green-deep:#1f4337;--green-ink:#fff;--accent:#a65c4c;--accent-soft:#f1e3dc;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--space-9:64px;--space-10:80px;--space-11:96px;--gutter:clamp(16px, 4vw, 48px);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--ease-out:cubic-bezier(.22, 1, .36, 1);--shadow-1:0 1px 2px #1c25210f, 0 2px 6px #1c25210a;--shadow-2:0 4px 10px #1c252112, 0 12px 28px #1c252110;--shadow-3:0 10px 24px #1c25211a, 0 28px 60px #1c252114;--edge:inset 0 1px 0 #ffffffb3;font-family:var(--font-text);color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:var(--green);caret-color:var(--green);scrollbar-color:var(--line-strong) var(--canvas);font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}a{text-underline-offset:3px;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}::selection{color:#fff;background:var(--green)}.collection-main{display:block}.collection{overflow-x:clip}.button-primary,.button-secondary{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);white-space:nowrap;cursor:pointer;transition:background-color .18s var(--ease-out), border-color .18s var(--ease-out), transform .12s var(--ease-out), box-shadow .18s var(--ease-out);font-size:16px;font-weight:600;line-height:24px;display:inline-flex}.button-primary{border:1px solid var(--green);color:var(--green-ink);background:var(--green);box-shadow:var(--shadow-1), inset 0 1px 0 #ffffff26}.button-primary:hover{background:var(--green-deep);border-color:var(--green-deep)}.button-secondary{border:1px solid var(--line-strong);color:var(--ink);background:var(--surface)}.button-secondary:hover{border-color:var(--ink-soft);background:#fff}.button-primary:active,.button-secondary:active{transform:translateY(1px)scale(.98)}.button-primary:disabled,.button-secondary:disabled{cursor:not-allowed;opacity:.45;transform:none}.button-quiet{align-items:center;gap:var(--space-1);min-height:44px;color:var(--green);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--green) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--green) 35%, transparent);text-underline-offset:4px;cursor:pointer;transition:text-decoration-color .18s var(--ease-out);background:0 0;border:0;padding:0;font-size:14px;font-weight:600;display:inline-flex}.button-quiet:hover{text-decoration-color:currentColor}.button-quiet svg{transition:transform .18s var(--ease-out)}.button-quiet:hover svg{transform:translate(3px)}.chip{min-height:36px;padding:0 var(--space-3);border:1px solid var(--line);color:var(--ink);background:var(--surface);white-space:nowrap;cursor:pointer;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out), color .16s var(--ease-out);border-radius:999px;align-items:center;gap:6px;font-size:14px;font-weight:500;display:inline-flex}.chip span{color:var(--ink-soft);font-family:var(--font-mono);font-size:12px}.chip:hover{border-color:var(--line-strong);background:#fff}.chip[aria-pressed=true]{color:var(--green-ink);background:var(--green);border-color:var(--green)}.chip[aria-pressed=true] span{color:#d6e6de}.chip.is-removable{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft)}.chip:active{transform:scale(.97)}.stage{--ridge-far:#b8c6bf;--ridge-near:#a3b3a8;--near-a:#586e60;--near-b:#445a4d;height:380svh;position:relative}.stage-sticky{isolation:isolate;height:100svh;min-height:560px;position:sticky;top:0;overflow:hidden}.stage-sky,.stage-ridge,.stage-haze,.stage-model,.stage-near{pointer-events:none;position:absolute}.stage-sky{background:radial-gradient(circle at 74% 26%,#fff7e8 0,#fbefdc 7%,#0000 26%),linear-gradient(#cad8d8 0%,#dfe5df 42%,#ece7dc 66%,#e8e3d7 100%);inset:-6% -4% 0}.stage-sun{aspect-ratio:1;opacity:.85;background:#fff8ec;border-radius:50%;width:9vmin;position:absolute;top:18%;left:70%;box-shadow:0 0 0 1px #ffffff80}.stage-ridge{width:108%;height:34%;bottom:18%;left:-4%}.stage-numeral{z-index:0;color:#1c252112;font-family:var(--font-mono);letter-spacing:-.07em;font-variant-numeric:tabular-nums;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;margin:0;font-size:clamp(120px,24vw,420px);font-weight:600;line-height:.8;position:absolute;bottom:9%;right:2vw}.stage-numeral span{font-weight:300}.stage-haze{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--canvas) 70%, transparent) 60%, var(--canvas));height:30%;inset:auto 0 0}.stage-model{z-index:1;inset:0}.stage-model canvas{display:block}.stage-model>div{opacity:0;transition:opacity .5s var(--ease-out)}.stage-model.is-ready>div{opacity:1}.stage-fallback{width:min(62vw,880px);height:auto;position:absolute;bottom:14%;right:4vw}.stage-near{z-index:2;width:106%;height:32vh;opacity:var(--hero-near,1);bottom:-2%;left:-3%}.stage-copy{z-index:3;top:clamp(96px,16vh,168px);left:var(--gutter);align-items:flex-start;gap:var(--space-5);width:min(460px,38vw);opacity:var(--hero-copy,1);transform:translate3d(0, calc((1 - var(--hero-copy,1)) * -24px), 0);flex-direction:column;display:flex;position:absolute}.stage-copy h1{max-width:13ch;color:var(--ink);letter-spacing:-.04em;margin:0;font-size:clamp(36px,4.4vw,60px);font-weight:620;line-height:1}.object-label{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 78%, transparent);box-shadow:var(--shadow-1), var(--edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffffa0;gap:0;margin:0;display:grid}.object-label div{gap:var(--space-3);border-top:1px solid var(--line);grid-template-columns:84px 1fr;padding:6px 0;font-size:14px;line-height:20px;display:grid}.object-label div:first-child{border-top:0;padding-top:0}.object-label .object-label-title{padding-bottom:var(--space-2);display:block}.object-label .object-label-title dd{letter-spacing:-.01em;font-size:18px;font-weight:600}.object-label dt{color:var(--ink-soft)}.object-label dd{font-variant-numeric:tabular-nums;margin:0}.object-index{flex-wrap:wrap;gap:6px;display:flex}.object-index button{min-height:32px;color:var(--ink);background:color-mix(in srgb, var(--surface) 62%, transparent);cursor:pointer;transition:background-color .16s var(--ease-out), color .16s var(--ease-out);border:1px solid #ffffff90;border-radius:999px;padding:0 10px;font-size:12px;font-weight:500}.object-index button:hover{background:var(--surface)}.object-index button[aria-pressed=true]{color:var(--green-ink);background:var(--green);border-color:var(--green)}.stage-captions{z-index:3;top:50%;right:var(--gutter);gap:var(--space-3);flex-direction:column;width:min(380px,30vw);margin:0;padding:0;list-style:none;display:flex;position:absolute;transform:translateY(-50%)}.stage:not(.is-static) .stage-captions li{opacity:0}.stage-captions li{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 84%, transparent);box-shadow:var(--shadow-2), var(--edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);will-change:opacity, transform;border:1px solid #ffffffa0;flex-direction:column;font-size:14px;line-height:20px;display:flex}.caption-level{color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.stage-captions .caption-close{background:var(--ink);border-color:var(--ink);color:#eef2ee}.caption-close .button-quiet{color:#cfe3d8;align-self:flex-start;text-decoration-color:#cfe3d866}.stage.is-static{height:auto}.stage.is-static .stage-sticky{height:auto;min-height:100svh;position:relative}.plot-fit{gap:var(--space-9);width:min(100%,1360px);padding:var(--space-11) var(--gutter) var(--space-10);grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:center;margin:0 auto;display:grid}.plot-fit-drawing{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2), var(--edge)}.plot-fit-svg{--grid-line:#c7d1c9;touch-action:none;width:100%;max-height:min(78svh,760px);font-family:var(--font-mono);display:block;overflow:visible}.plot-fit-street{fill:#d9ddd5}.plot-fit-street-label{fill:var(--ink-soft);letter-spacing:.3px;text-anchor:middle;text-transform:uppercase;font-size:2px}.plot-fit-plot{fill:#e6efe8;stroke:var(--green);stroke-width:.35px}.plot-fit-footprint{fill:#2c5a4b0d;stroke:#2c5a4b55;stroke-width:.18px}.plot-fit-footprint.is-focused{fill:#a65c4c2e;stroke:var(--accent);stroke-width:.4px}.plot-fit-focus-plot rect{fill:none;stroke:var(--accent);stroke-width:.22px;stroke-dasharray:1 .8}.plot-fit-focus-plot text{fill:var(--accent);text-anchor:middle;dominant-baseline:middle;font-size:2.4px;font-weight:600}.plot-fit-dim{fill:var(--ink);text-anchor:middle;font-size:2.6px;font-weight:600}.plot-fit-handle{cursor:nwse-resize;outline:none}.plot-fit-handle-hit{fill:#0000}.plot-fit-handle-dot{fill:var(--accent);stroke:#fff;stroke-width:.5px;transition:r .16s var(--ease-out)}.plot-fit-handle:hover .plot-fit-handle-dot,.plot-fit-handle:focus-visible .plot-fit-handle-dot{r:2.6px}.plot-fit-handle:focus-visible .plot-fit-handle-hit{stroke:var(--accent);stroke-width:.4px;stroke-dasharray:1 .6}.plot-fit-panel{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.plot-fit-panel h2,.rail-head h2,.catalog-head h2,.plate-card h2{letter-spacing:-.035em;margin:0;font-size:clamp(30px,3.2vw,48px);font-weight:620;line-height:1.04}.plot-fit-lead{max-width:46ch;color:var(--ink-soft);margin:0}.plot-fit-inputs{gap:var(--space-3);flex-wrap:wrap;display:flex}.plot-fit-inputs label{align-items:center;column-gap:var(--space-2);row-gap:var(--space-1);color:var(--ink-soft);grid-template-columns:auto auto;font-size:14px;display:grid}.plot-fit-inputs label>span:first-child{grid-column:1/-1}.plot-fit-inputs input{width:96px;height:44px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);background:var(--surface);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px}.plot-fit-inputs .unit{font-family:var(--font-mono)}.plot-fit-range{color:var(--ink-soft);flex-basis:100%;margin:0;font-size:12px}.plot-fit-result{flex-direction:column;gap:2px;font-size:18px;line-height:28px;display:flex}.plot-fit-result strong{font-family:var(--font-mono);font-size:30px;font-weight:600}.plot-fit-result span{color:var(--ink-soft);font-size:14px;font-family:var(--font-mono)}.plot-fit-empty{color:var(--accent);margin:0}.plot-fit-list{border-top:1px solid var(--line);width:100%;margin:0;padding:0;list-style:none}.plot-fit-list button{justify-content:space-between;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-1);border:0;border-bottom:1px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;transition:background-color .16s var(--ease-out), padding .16s var(--ease-out);background:0 0;display:flex}.plot-fit-list button[aria-current=true]{color:var(--accent)}.plot-fit-list button:hover{background:var(--surface)}.plot-fit-list-dims{color:var(--ink-soft);font-family:var(--font-mono);white-space:nowrap;font-size:14px}.rail{padding:var(--space-9) 0;background:var(--surface-sunk);position:relative}.rail.is-pinned{padding:0}.rail.is-pinned .rail-sticky{justify-content:center;gap:var(--space-6);flex-direction:column;height:100svh;display:flex;position:sticky;top:0;overflow:hidden}.rail-head{justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding:0 var(--gutter);display:flex}.rail-head p{max-width:42ch;color:var(--ink-soft);margin:0}.rail-track{gap:var(--space-5);padding:var(--space-2) var(--gutter) var(--space-5);will-change:transform;margin:0;list-style:none;display:flex}.rail:not(.is-pinned) .rail-track{scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-top:var(--space-5);overflow-x:auto}.rail-panel{gap:var(--space-2);width:clamp(272px,28vw,400px);padding:var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1), var(--edge);scroll-snap-align:start;flex-direction:column;flex:none;display:flex}.rail-image{aspect-ratio:3/2;object-fit:contain;border-radius:var(--radius-md);background:linear-gradient(#e3e9e4,#d9e0d9);width:100%;height:auto;display:block}.rail-panel h3{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;letter-spacing:-.015em;font-size:20px;font-weight:600;display:flex}.rail-panel h3:before{content:"";background:var(--panel-accent);border-radius:2px;flex:none;width:10px;height:10px}.rail-panel p{color:var(--ink-soft);margin:0;font-size:14px;line-height:20px}.rail-label,.design-card-label,.plate-label{margin:0;display:grid}.rail-label div,.design-card-label div,.plate-label div{gap:var(--space-3);border-top:1px solid var(--line);grid-template-columns:76px 1fr;padding:5px 0;font-size:14px;line-height:20px;display:grid}.rail-label dt,.design-card-label dt,.plate-label dt{color:var(--ink-soft)}.rail-label dd,.design-card-label dd,.plate-label dd{font-variant-numeric:tabular-nums;margin:0}.rail-panel .button-quiet{margin-top:auto}.catalog{width:min(100%,1560px);padding:var(--space-11) var(--gutter) var(--space-9);margin:0 auto;scroll-margin-top:72px}.catalog-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.catalog-count{color:var(--ink-soft);font-family:var(--font-mono);font-size:14px}.catalog-filters{z-index:5;gap:var(--space-3);margin:var(--space-5) 0 var(--space-6);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--canvas) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:column;display:flex;position:sticky;top:76px}.chip-row{scrollbar-width:thin;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.field{gap:var(--space-1);color:var(--ink-soft);flex-direction:column;font-size:12px;font-weight:500;display:flex}.field select,.field-search-input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);height:40px;color:var(--ink);background:var(--surface);font-size:14px}.field select{padding:0 var(--space-3);font-family:var(--font-mono)}.field-search{flex:1;min-width:240px;max-width:520px}.field-search-input{align-items:center;gap:var(--space-2);padding:0 var(--space-3);display:flex}.field-search-input input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.field-search-input input:focus{outline:none}.field-search-input:focus-within{outline:3px solid var(--accent);outline-offset:2px}.catalog-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.design-card{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transform:translateY(28px)}.design-card.is-revealed{opacity:1;transform:none}.design-card-inner{--tilt-x:0deg;--tilt-y:0deg;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);height:100%;box-shadow:var(--shadow-1), var(--edge);transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}@media (hover:hover) and (pointer:fine){.design-card-inner:hover{transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translate3d(0, -4px, 0);box-shadow:var(--shadow-3)}}.design-card-media{aspect-ratio:3/2;border-bottom:1px solid var(--line);background:linear-gradient(#e8ede9 0%,#dde4dd 100%);position:relative}.design-card-media img,.design-card-media svg{object-fit:contain;width:100%;height:100%;display:block}.design-card-badge{top:var(--space-3);left:var(--space-3);padding:2px var(--space-2);border-radius:var(--radius-sm);color:#fff;background:color-mix(in srgb, var(--ink) 82%, transparent);font-size:12px;font-weight:500;position:absolute}.design-card-body{gap:var(--space-2);padding:var(--space-4);flex-direction:column;flex:1;display:flex}.design-card-body h3{letter-spacing:-.015em;margin:0;font-size:20px;font-weight:600}.design-card-type{margin:-4px 0 var(--space-1);color:var(--ink-soft);font-size:14px}.design-card-vastu{margin:0 0 var(--space-1);color:#2c5a4b;font-size:13px;font-weight:600}.design-card-summary{margin:var(--space-1) 0 0;color:var(--ink-soft);font-size:14px;line-height:20px}.design-card-actions{gap:var(--space-2);padding-top:var(--space-3);margin-top:auto;display:flex}.design-card-actions .button-primary{flex:1}.catalog-empty{align-items:flex-start;gap:var(--space-3);padding:var(--space-8);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;display:flex}.catalog-empty h3{margin:0;font-size:20px;font-weight:600}.catalog-empty p{color:var(--ink-soft);margin:0}.plate{padding:var(--space-9) var(--gutter) var(--space-11);background:var(--surface-sunk)}.plate-card{gap:var(--space-4);width:min(100%,640px);padding:var(--space-7);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-3), var(--edge);flex-direction:column;margin:0 auto;display:flex}.plate-kicker{color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}.plate-copy{color:var(--ink-soft);max-width:52ch;margin:0}.plate-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.plate-footnote{width:min(100%,640px);margin:var(--space-5) auto 0;color:var(--ink-soft);text-align:center;font-size:12px}.thumbnail-renderer{pointer-events:none;opacity:0;width:600px;height:400px;position:fixed;top:0;left:-10000px}@media (width<=1080px){.plot-fit{gap:var(--space-6);padding-top:var(--space-9);grid-template-columns:1fr}.plot-fit-svg{max-height:62svh}}@media (width<=760px){.stage{height:330svh}.stage-copy{top:76px;left:var(--space-4);right:var(--space-4);gap:var(--space-3);width:auto}.stage-copy h1{max-width:none;font-size:32px;line-height:1.05}.object-label{padding:var(--space-2) var(--space-3)}.object-label div{grid-template-columns:72px 1fr;padding:3px 0;font-size:12px;line-height:16px}.object-label .object-label-title dd{font-size:16px}.object-index{flex-wrap:nowrap;max-width:100%;padding-bottom:2px;overflow-x:auto}.object-index button{flex:none}.stage-numeral{font-size:40vw;bottom:22%;right:-4vw}.stage-captions{top:auto;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);gap:var(--space-2);width:auto;transform:none}.stage-captions li{padding:var(--space-2) var(--space-3);font-size:12px;line-height:16px}.stage-captions li>span:not(.caption-level){-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stage.is-static .stage-captions{margin:0 var(--space-4) var(--space-5);padding-top:70svh;position:relative;inset:auto}.stage-fallback{width:96vw;bottom:30%;right:2vw}.rail-head{flex-direction:column;align-items:flex-start}.catalog-filters{position:static}.catalog-grid{grid-template-columns:1fr}.plate-card{padding:var(--space-5)}}@media (prefers-reduced-motion:reduce){.design-card{opacity:1;transform:none}.stage-copy{transform:none}}.vastu-plan{--verdict-ideal:#2c5a4b;--verdict-acceptable:#8a5d12;--verdict-avoid:#a3402c;margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1), var(--edge);scroll-margin-top:72px}.vastu-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.vastu-head h2{margin:0 0 var(--space-1);letter-spacing:-.01em;font-size:20px}.vastu-head p{max-width:62ch;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.vastu-score{gap:var(--space-2);margin:0;display:flex}.vastu-score div{min-width:92px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk)}.vastu-score dt{color:var(--ink-soft);font-size:12px}.vastu-score dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:600}.vastu-score .is-ideal dd{color:var(--verdict-ideal)}.vastu-score .is-acceptable dd{color:var(--verdict-acceptable)}.vastu-score .is-avoid dd{color:var(--verdict-avoid)}.vastu-body{gap:var(--space-6);grid-template-columns:minmax(260px,380px) 1fr;align-items:start;display:grid}.vastu-mandala{margin:0}.vastu-grid{border:2px solid var(--ink);background:#fbfaf5;grid-template-rows:repeat(3,minmax(96px,auto));grid-template-columns:repeat(3,1fr);display:grid;position:relative}.vastu-grid.road-north{margin-top:26px}.vastu-grid.road-south{margin-bottom:26px}.vastu-grid.road-east{margin-right:26px}.vastu-grid.road-west{margin-left:26px}.vastu-road{color:#f8f9f6;letter-spacing:.14em;text-transform:uppercase;background:#4c5550;place-items:center;font-size:10.5px;font-weight:600;display:grid;position:absolute}.road-north .vastu-road{height:20px;inset:-26px -2px auto}.road-south .vastu-road{height:20px;inset:auto -2px -26px}.road-east .vastu-road{writing-mode:vertical-rl;width:20px;inset:-2px -26px -2px auto}.road-west .vastu-road{writing-mode:vertical-rl;width:20px;inset:-2px auto -2px -26px;transform:rotate(180deg)}.vastu-cell{padding:var(--space-2);border:1px solid var(--line)}.vastu-cell.is-centre{background:repeating-linear-gradient(45deg,#0000 0 7px,#e4e8e2 7px 8px)}.vastu-cell-zone{font-family:var(--font-mono);align-items:baseline;gap:6px;font-size:12px;font-weight:600;display:flex}.vastu-cell-zone small{color:var(--ink-soft);font-family:var(--font-text);font-size:10.5px;font-weight:400}.vastu-cell ul{gap:3px;margin:6px 0 0;padding:0;list-style:none;display:grid}.vastu-cell li{padding-left:11px;font-size:11.5px;line-height:1.25;position:relative}.vastu-cell li:before,.vastu-verdict:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:.45em;left:0}.vastu-cell li.is-ideal:before{background:var(--verdict-ideal)}.vastu-cell li.is-acceptable:before{background:var(--verdict-acceptable)}.vastu-cell li.is-avoid:before{background:var(--verdict-avoid)}.vastu-mandala figcaption{margin-top:var(--space-2);color:var(--ink-soft);font-size:12px}.vastu-checks{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;padding:0;list-style:none;display:grid}.vastu-checks li{padding:var(--space-3);border:1px solid var(--line);border-left:3px solid var(--verdict-ideal);border-radius:var(--radius-md);background:#fff}.vastu-checks li.is-acceptable{border-left-color:var(--verdict-acceptable)}.vastu-checks li.is-avoid{border-left-color:var(--verdict-avoid);background:#fdf6f3}.vastu-check-line{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.vastu-check-line strong{font-size:14px}.vastu-verdict{flex:none;padding-left:11px;font-size:12px;font-weight:600;position:relative}.is-ideal>.vastu-check-line .vastu-verdict{color:var(--verdict-ideal)}.is-acceptable>.vastu-check-line .vastu-verdict{color:var(--verdict-acceptable)}.is-avoid>.vastu-check-line .vastu-verdict{color:var(--verdict-avoid)}.vastu-check-zone{margin:2px 0 var(--space-1);font-family:var(--font-mono);font-size:12px}.vastu-check-guidance{color:var(--ink-soft);margin:0;font-size:12.5px;line-height:1.45}.vastu-note{margin:var(--space-4) 0 0;color:var(--ink-soft);font-size:12px}.vastu-link{min-height:28px;padding:0 var(--space-2);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.vastu-link:hover{border-color:var(--green)}@media (width<=860px){.vastu-plan{padding:var(--space-4)}.vastu-body{gap:var(--space-5);grid-template-columns:1fr}.vastu-score{width:100%}.vastu-score div{flex:1;min-width:0}}@media (forced-colors:active){.vastu-cell li:before,.vastu-verdict:before{background:canvastext}.vastu-checks li{border-left-color:canvastext}}.app-shell{color:#1c2521;background-color:#eef0eb;min-height:100svh}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:60;top:var(--space-2);left:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--green-ink);background:var(--green);transition:transform .16s var(--ease-out);font-size:14px;font-weight:600;position:absolute;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.app-header{z-index:40;min-height:56px;padding:var(--space-2) var(--gutter);justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);display:flex;position:sticky;top:0}.is-home .app-header{inset:var(--space-3) var(--gutter) auto;min-height:52px;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 72%, transparent);box-shadow:var(--shadow-2), var(--edge);border:1px solid #ffffff80;position:fixed}.brand-cluster{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--ink);letter-spacing:-.01em;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:650;display:flex}.brand-mark{width:28px;height:28px;color:var(--green-ink);background:var(--green);border-radius:var(--radius-sm);place-items:center;display:grid}.primary-surface-nav{align-items:center;gap:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunk);padding:2px;display:flex}.primary-surface-nav button{min-height:36px;padding:0 var(--space-3);color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:background-color .16s var(--ease-out), color .16s var(--ease-out);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;font-size:14px;font-weight:550;display:inline-flex}.primary-surface-nav button.is-active{color:var(--green-ink);background:var(--green)}.primary-surface-nav button:not(.is-active):hover{color:var(--ink);background:#ffffffa8}.primary-surface-nav button:active{transform:translateY(1px)}.header-quick-switcher{align-items:center;gap:var(--space-3);display:flex}.header-quick-switcher select{max-width:320px;height:36px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);background:var(--surface);font-size:14px;font-weight:550}.workspace{width:min(100%,1640px);padding:0 var(--gutter) var(--space-5);margin:0 auto}.measurements dd.measurements-area{font-size:14px;font-weight:550}@media (width<=760px){.measurements div:has(.measurements-area){display:none}}.studio-head{justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding:var(--space-5) 0 var(--space-4);flex-wrap:wrap;display:flex}.studio-crumbs{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:#4a5b52;font-size:12px;display:flex}.studio-crumbs button{color:var(--green);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600;-webkit-text-decoration:underline #2c5a4b55;text-decoration:underline #2c5a4b55}.project-title-line{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.project-heading h1{color:#1c2521;letter-spacing:-.03em;margin:0;font-size:clamp(26px,2.6vw,36px);font-weight:620;line-height:1.05}.category-tag-pill{--pill-accent:#2c5a4b;color:#1c2521;background:#ffffffb3;border:1px solid #d1d9d2;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 8px;font-size:12px;font-weight:550;display:inline-flex}.category-tag-pill:before{content:"";background:var(--pill-accent);border-radius:2px;width:8px;height:8px}.project-heading p{max-width:60ch;margin:var(--space-2) 0 0;color:#4a5b52;font-size:14px}.summary-right-cluster{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.measurements{gap:var(--space-5);font-variant-numeric:tabular-nums;margin:0;display:flex}.measurements div{min-width:84px}.measurements dt{color:#4a5b52;margin-bottom:2px;font-size:12px}.measurements dd{color:#1c2521;font-family:var(--font-mono);white-space:nowrap;margin:0;font-size:16px;font-weight:600}.measurements dd span{color:#4a5b52;font-size:12px;font-weight:400}.summary-quick-actions{align-items:center;gap:var(--space-2);display:flex}.builder-toggle-pill,.catalog-back-pill{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out), transform .12s var(--ease-out);font-size:14px;font-weight:600;display:inline-flex}.builder-toggle-pill{border:1px solid var(--green);color:var(--green-ink);background:var(--green);box-shadow:var(--shadow-1), inset 0 1px 0 #ffffff26}.builder-toggle-pill:hover{background:var(--green-deep)}.builder-toggle-pill.is-active{color:var(--green);background:#fff}.catalog-back-pill{border:1px solid var(--line-strong);color:var(--ink);background:var(--surface)}.catalog-back-pill:hover{background:#fff}.builder-toggle-pill:active,.catalog-back-pill:active{transform:translateY(1px)scale(.98)}.viewer{min-width:0;padding:var(--space-2);box-shadow:var(--shadow-2), var(--edge);background:#f8f9f6;border:1px solid #d1d9d2;border-radius:18px;grid-area:viewer}.viewer-toolbar{min-height:48px;padding:var(--space-1) var(--space-1) var(--space-2);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.view-tabs,.viewer-tools,.zoom-tools{align-items:center;display:flex}.view-tabs,.roof-options{background:#e4e8e2;border:1px solid #d1d9d2;border-radius:10px;gap:2px;padding:3px}.view-tabs button,.walls-button,.zoom-tools button,.roof-options button{color:#3d4b44;cursor:pointer;white-space:nowrap;min-height:36px;transition:background-color .16s var(--ease-out), color .16s var(--ease-out), box-shadow .16s var(--ease-out);background:0 0;border:0;border-radius:7px;font-size:14px;font-weight:550}.view-tabs button{padding:0 var(--space-3);justify-content:center;align-items:center;gap:6px;display:flex}.view-tabs button.is-selected,.roof-options button.is-selected{color:#1c2521;background:#fff;box-shadow:0 1px 2px #1c25211f,0 2px 6px #1c252112}.view-tabs button.is-selected svg{color:var(--green)}.view-tabs button:not(.is-selected):hover,.roof-options button:not(.is-selected):hover,.walls-button:hover,.zoom-tools button:hover{color:#1c2521;background:#ffffff8c}.viewer-tools{gap:var(--space-2)}.walls-button{padding:0 var(--space-3);border:1px solid #d1d9d2;justify-content:center;align-items:center;gap:6px;display:flex}.walls-button.is-active{color:var(--green);background:#e7f0ea;border-color:#b9cec2}.zoom-tools{background:#e4e8e2;border:1px solid #d1d9d2;border-radius:10px;gap:2px;padding:3px}.zoom-tools button{place-items:center;width:36px;height:36px;display:grid}button:disabled{cursor:not-allowed;opacity:.45}.roof-toolbar{align-items:center;gap:var(--space-2);color:#4a5b52;font-size:12px;font-weight:600;display:flex}.roof-options{display:flex}.roof-options button{padding:0 var(--space-3)}.walk-toolbar{align-items:center;gap:var(--space-3);display:flex}.walk-toolbar label{color:#4a5b52;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.walk-toolbar select{min-width:128px;min-height:36px;padding:0 var(--space-2);color:#1c2521;background:#fff;border:1px solid #b4c1b7;border-radius:8px;font-size:14px}@media (forced-colors:active){.roof-options button{border:2px solid canvas}.roof-options button[aria-pressed=true]{border-color:highlight}.view-tabs button{border:2px solid canvas}.view-tabs button[aria-pressed=true]{border-color:highlight}}.model-stage{width:100%;height:clamp(500px,100svh - 250px,860px);transition:background .6s var(--ease-out);background:linear-gradient(#d9e5e6 0%,#e9ede6 52%,#e2e6dc 100%);border:1px solid #d1d9d2;border-radius:12px;position:relative;overflow:hidden}.model-stage[data-lighting=morning]{background:linear-gradient(#d4e3ef 0%,#edf0ec 55%,#e5e7df 100%)}.model-stage[data-lighting=golden]{background:linear-gradient(#f2d9bf 0%,#f3e6d5 50%,#e4dccd 100%)}.model-stage[data-lighting=overcast]{background:linear-gradient(#d7dbdd 0%,#e6e8e6 55%,#dfe1dc 100%)}.drop-hint{z-index:6;top:var(--space-4);padding:var(--space-2) var(--space-4);color:#fff;pointer-events:none;background:#1c2521d9;border-radius:999px;font-size:14px;font-weight:550;position:absolute;left:50%;transform:translate(-50%)}.model-stage.is-drag-over{outline-offset:-4px;outline:3px dashed #315e50}.model-stage canvas{touch-action:none;display:block}.model-stage canvas:focus-visible{outline-offset:-4px}.model-stage.is-walk{height:clamp(420px,100svh - 330px,860px)}.walk-pad,.walk-look-pad{box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8f9f6d9;border:1px solid #ffffffa0;border-radius:12px;gap:3px;padding:4px;display:grid;position:absolute;bottom:12px}.walk-pad{grid-template:repeat(2,38px)/repeat(3,38px);left:12px}.walk-look-pad{grid-template:repeat(2,38px)/repeat(2,38px);right:12px}.walk-pad button,.walk-look-pad button{color:#1c2521;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;width:38px;height:38px;transition:background-color .12s var(--ease-out), color .12s var(--ease-out);background:#e4e8e2;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.walk-pad button:hover,.walk-pad button:active,.walk-look-pad button:hover,.walk-look-pad button:active{color:#fff;background:var(--green)}.walk-forward{grid-area:1/2}.walk-left{grid-area:2/1}.walk-backward{grid-area:2/2}.walk-right{grid-area:2/3}.viewer-caption{justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-1) var(--space-1);color:#596c61;font-size:12px;display:flex}.viewer-caption span:first-child{color:#1c2521;font-weight:600}.viewer-unavailable{color:#344a3f;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:absolute;inset:0}.viewer-unavailable span{color:#596c61;max-width:36ch;font-size:14px;line-height:1.5}.viewer-unavailable-message{flex-direction:column;align-items:center;gap:10px;display:flex}.viewer-unavailable button{color:#fff;cursor:pointer;background:#315e50;border:1px solid #315e50;border-radius:3px;min-height:38px;padding:0 16px}.viewer-unavailable button:hover{background:#253f35}.design-page-switcher-strip{border-top:1px solid #dce4de;margin-top:18px;padding-top:14px}.switcher-strip-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.switcher-strip-header h2{color:#253c33;margin:0;font-size:14.5px}.text-link-btn{color:#315e50;cursor:pointer;background:0 0;border:0;padding-bottom:2px;font-size:12.5px;font-weight:700;position:relative}.text-link-btn:after{content:"";transform-origin:100%;background:#315e50;width:100%;height:1.5px;transition:transform .2s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.text-link-btn:hover:after{transform-origin:0;transform:scaleX(1)}.switcher-cards-row{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.variant-mini-card{gap:var(--space-1);padding:var(--space-2) var(--space-3) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out), border-color .16s var(--ease-out);flex-direction:column;display:flex}@media (hover:hover) and (pointer:fine){.variant-mini-card:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}}.variant-mini-card:active{transform:scale(.98)}.variant-mini-card.is-current{border-color:var(--green);background:#eaf2ed}.variant-mini-thumb{aspect-ratio:3/2;object-fit:contain;border-radius:var(--radius-sm);background:linear-gradient(#e7ece8,#dfe5df);width:100%;height:auto;display:block}.variant-mini-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.variant-mini-top strong{color:#233830;font-size:13px}.variant-dim-pill{color:#fff;background:#315e50;border-radius:3px;padding:1px 6px;font-size:10.5px;font-weight:700}.variant-mini-sub{color:#596c61;font-size:11.5px}@media (width<=680px){.primary-surface-nav button{min-width:40px;padding:0 var(--space-2);justify-content:center}.primary-surface-nav button span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.brand>span:last-child{display:none}.app-header,.brand-cluster{gap:var(--space-2);flex-wrap:nowrap}.header-quick-switcher{min-width:0}.header-quick-switcher select{width:100%;max-width:40vw}}@media (width<=760px){.app-header{min-height:48px;padding:6px 16px}.is-home .app-header{inset:var(--space-2) var(--space-2) auto;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-2)}.workspace{padding:0 16px 20px}.studio-head{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 0}.studio-crumbs{display:none}.project-heading h1{font-size:22px}.project-heading p{margin-top:4px;font-size:12px}.measurements{gap:18px}.measurements dd{font-size:15px}.builder-toggle-pill,.catalog-back-pill{min-height:36px;padding:0 var(--space-3)}.viewer{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.viewer-toolbar{flex-direction:column;align-items:stretch;gap:6px;padding:8px 0}.view-tabs{width:100%}.view-tabs button{flex:1;min-width:0;padding:0 6px}.view-tabs button span{white-space:normal;line-height:1.15}.viewer-tools{justify-content:space-between}.walk-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.model-stage{height:clamp(380px,60svh,620px)}.model-stage.is-walk{height:clamp(360px,53svh,620px)}}@media (width<=300px){.walk-look-pad{bottom:108px;left:12px;right:auto}}.site-footer{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-5) var(--gutter);border-top:1px solid var(--line);color:#536159;flex-wrap:wrap;font-size:13px;display:flex}.site-footer p{margin:0}.site-footer a{color:#1f4337;text-underline-offset:3px;font-weight:600}.site-footer a:hover{color:#2c5a4b}.site-footer-link{font-family:var(--font-mono)}@media (width<=390px){.app-header{padding:6px 12px}.workspace{padding-left:12px;padding-right:12px}.view-tabs button{gap:4px;padding:0 4px;font-size:11.5px}.view-tabs button svg{flex:none;width:13px}.viewer-caption{font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.studio-layout{gap:var(--space-4);grid-template-columns:248px minmax(0,1fr);grid-template-areas:"rail viewer";align-items:start;display:grid}.studio-layout.with-builder{grid-template-columns:248px minmax(0,1fr) 392px;grid-template-areas:"rail viewer builder"}.studio-rail{gap:var(--space-3);flex-direction:column;grid-area:rail;display:flex;position:sticky;top:72px}.rail-block{padding:var(--space-3);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1), var(--edge);border-radius:14px}.rail-block h2{margin:0 0 var(--space-2);color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.rail-floor+.rail-floor{margin-top:var(--space-3)}.rail-floor h3{margin:0 0 var(--space-1);justify-content:space-between;font-size:14px;font-weight:600;display:flex}.rail-floor h3 span:last-child{color:var(--ink-soft);font-size:12px;font-weight:400}.rail-floor ul,.material-list,.usage-list,.layer-list{margin:0;padding:0;list-style:none}.rail-room{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:36px;padding:0 var(--space-2);color:var(--ink);text-align:left;cursor:pointer;transition:background-color .14s var(--ease-out), color .14s var(--ease-out);background:0 0;border:0;border-radius:8px;font-size:14px;display:flex}.rail-room:hover{background:var(--surface-sunk)}.rail-room[aria-current=location]{color:var(--green-ink);background:var(--green)}.rail-room[aria-current=location] .rail-room-size{color:#d6e6de}.rail-room-size{color:var(--ink-soft);font-family:var(--font-mono);white-space:nowrap;font-size:12px}.lighting-options{gap:var(--space-1);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.lighting-options button{min-height:40px;padding:0 var(--space-2);border:1px solid var(--line);color:var(--ink);background:var(--surface);cursor:pointer;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out);border-radius:10px;align-items:center;gap:6px;font-size:14px;display:flex}.lighting-options button:hover{border-color:var(--line-strong);background:#fff}.lighting-options button[aria-pressed=true]{border-color:var(--green);color:var(--green-deep);background:#e7f0ea}.material-list li{align-items:center;gap:var(--space-2);grid-template-columns:14px 56px 1fr;padding:4px 0;font-size:12px;display:grid}.material-dot{border-radius:4px;width:14px;height:14px;box-shadow:inset 0 0 0 1px #1c25211f}.material-role{color:var(--ink-soft)}.material-name{color:var(--ink);text-transform:capitalize}.viewport-scale-hud{z-index:5;top:var(--space-3);left:var(--space-3);gap:var(--space-1);padding:var(--space-2) var(--space-3);color:var(--ink);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;pointer-events:none;background:#f8f9f6c7;border:1px solid #fff9;border-radius:10px;flex-direction:column;font-size:12px;display:flex;position:absolute}.scale-hud-row{align-items:center;gap:var(--space-2);display:flex}.scale-hud-row strong{font-weight:550}.scale-ruler-bar{border:1px solid var(--ink);background:#fff;grid-template-columns:repeat(5,8px);height:6px;display:inline-grid}.scale-ruler-bar i:nth-child(odd){background:var(--ink)}.scale-hud-metrics{gap:var(--space-2);color:var(--ink-soft);font-family:var(--font-mono);flex-wrap:wrap;display:flex}.scale-hud-selected{color:#fff;background:var(--accent);border-radius:4px;padding:1px 6px}.scene-tag{color:#fff;font-family:var(--font-text);white-space:nowrap;background:#1c2521d9;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-block}.builder-panel{border:1px solid var(--line);background:var(--surface);max-height:calc(100svh - 88px);box-shadow:var(--shadow-2), var(--edge);border-radius:18px;flex-direction:column;grid-area:builder;display:flex;position:sticky;top:72px;overflow:hidden}.builder-head{gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.builder-title{gap:var(--space-3);display:flex}.builder-title-icon{width:36px;height:36px;color:var(--green-ink);background:var(--green);border-radius:10px;flex:none;place-items:center;display:grid}.builder-title h2{letter-spacing:-.015em;margin:0;font-size:18px;font-weight:600}.builder-title p{color:var(--ink-soft);margin:2px 0 0;font-size:12px}.builder-toolbar{align-items:center;gap:var(--space-1);display:flex}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);background:var(--surface);cursor:pointer;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), transform .1s var(--ease-out);border-radius:9px;flex:none;place-items:center;padding:0;display:grid}.icon-button:hover:not(:disabled){border-color:var(--line-strong);background:#fff}.icon-button:active:not(:disabled){transform:scale(.95)}.icon-button.is-danger{color:#8a3f31}.builder-toolbar .icon-button:nth-last-child(2){margin-left:auto}.snap-select{height:36px;padding:0 4px 0 var(--space-2);border:1px solid var(--line);color:var(--ink-soft);background:var(--surface);border-radius:9px;align-items:center;gap:4px;display:inline-flex}.snap-select select{height:30px;color:var(--ink);font-family:var(--font-mono);background:0 0;border:0;font-size:12px}.builder-target{gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--canvas);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.builder-target label{color:var(--ink-soft);flex-direction:column;gap:2px;font-size:12px;font-weight:500;display:flex}.builder-target select{height:36px;padding:0 var(--space-2);border:1px solid var(--line-strong);color:var(--ink);background:#fff;border-radius:8px;font-size:14px}.inspector{gap:var(--space-3);margin:var(--space-3) var(--space-3) 0;padding:var(--space-3);background:linear-gradient(#fbf3ef,#f8f9f6);border:1px solid #e3c4ba;border-radius:14px;flex-direction:column;display:flex}.inspector-head{align-items:center;gap:var(--space-3);display:flex}.inspector-head>div{flex-direction:column;flex:1;min-width:0;display:flex}.inspector-head strong{font-size:14px;font-weight:600}.inspector-swatch{border-radius:8px;flex:none;width:28px;height:28px;box-shadow:inset 0 0 0 1px #1c25211f}.inspector-status{color:var(--green);font-size:12px}.inspector-status.is-warning{color:#9a4a2f}.dimension-controls{gap:var(--space-1);flex-direction:column;display:flex}.dimension-control{align-items:center;gap:var(--space-2);grid-template-columns:56px 1fr 56px;font-size:12px;display:grid}.dimension-label{color:var(--ink-soft)}.dimension-control input[type=range]{width:100%;height:20px;accent-color:var(--accent);cursor:pointer;margin:0}.dimension-control output{font-family:var(--font-mono);text-align:right}.inspector-actions{align-items:center;gap:var(--space-3);display:flex}.nudge-pad{flex:none;grid-template:repeat(3,28px)/repeat(3,28px);gap:2px;display:grid}.nudge-pad button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:7px;place-items:center;padding:0;display:grid}.nudge-pad button:hover{border-color:var(--accent);color:var(--accent)}.nudge-up{grid-area:1/2}.nudge-left{grid-area:2/1}.nudge-down{grid-area:3/2}.nudge-right{grid-area:2/3}.inspector-buttons{gap:var(--space-1);flex:1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tool-button{min-height:36px;padding:0 var(--space-2);border:1px solid var(--line);color:var(--ink);cursor:pointer;transition:border-color .14s var(--ease-out);background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:550;display:inline-flex}.tool-button:hover{border-color:var(--line-strong)}.tool-button.is-danger{color:#8a3f31}.tool-color input[type=color]{cursor:pointer;background:0 0;border:0;width:26px;height:22px;padding:0}.inspector-hint{color:var(--ink-soft);margin:0;font-size:12px}.builder-tabs{margin:var(--space-3) var(--space-3) 0;border:1px solid var(--line);background:var(--surface-sunk);border-radius:11px;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:3px;display:grid}.builder-tabs button{min-height:48px;padding:var(--space-1);color:var(--ink-soft);cursor:pointer;transition:background-color .14s var(--ease-out), color .14s var(--ease-out);background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;gap:2px;font-size:12px;font-weight:550;display:flex}.builder-tabs button:hover{color:var(--ink)}.builder-tabs button.is-active{color:var(--ink);background:#fff;box-shadow:0 1px 2px #1c25211f,0 2px 6px #1c252112}.builder-tabs button.is-active svg{color:var(--accent)}.builder-body{gap:var(--space-3);min-height:0;padding:var(--space-3);scrollbar-width:thin;flex-direction:column;flex:1;display:flex;overflow-y:auto}.library-search{align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-3);border:1px solid var(--line-strong);color:var(--ink-soft);background:#fff;border-radius:10px;display:flex}.library-search:focus-within{outline:3px solid var(--accent);outline-offset:2px}.library-search input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;flex:1;font-size:14px}.library-search input:focus{outline:none}.library-filters{flex-wrap:wrap;gap:6px;display:flex}.library-filters .chip{min-height:32px;font-size:12px}.library-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.library-tile{width:100%;padding:var(--space-2);border:1px solid var(--line);color:var(--ink);text-align:left;cursor:grab;transition:transform .16s var(--ease-out), border-color .16s var(--ease-out), box-shadow .16s var(--ease-out);background:#fff;border-radius:12px;flex-direction:column;align-items:stretch;gap:2px;display:flex}@media (hover:hover) and (pointer:fine){.library-tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}}.library-tile:active{cursor:grabbing;transform:scale(.98)}.library-thumb{aspect-ratio:88/68;object-fit:contain;width:100%;height:auto;margin-bottom:var(--space-1);background:linear-gradient(#eef1ed,#e3e8e3);border-radius:8px;display:block}.library-name{font-size:12px;font-weight:600;line-height:16px}.library-size{color:var(--ink-soft);font-family:var(--font-mono);font-size:11px}.builder-empty{align-items:flex-start;gap:var(--space-2);padding:var(--space-4);border:1px dashed var(--line-strong);color:var(--ink-soft);border-radius:12px;flex-direction:column;margin:0;font-size:14px;display:flex}.builder-empty p{margin:0}.builder-note{color:var(--ink-soft);margin:0;font-size:12px}.kit-list{gap:var(--space-2);flex-direction:column;display:flex}.kit-card{gap:var(--space-2) var(--space-3);padding:var(--space-2);border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:96px 1fr;display:grid}.kit-thumbs{grid-row:span 2;grid-template-columns:repeat(2,1fr);align-content:start;gap:2px;display:grid}.kit-thumbs .library-thumb{border-radius:5px;margin:0}.kit-copy h3{margin:0;font-size:14px;font-weight:600}.kit-copy p{color:var(--ink-soft);margin:2px 0 0;font-size:12px;line-height:16px}.kit-place.button-secondary{min-height:36px;padding:0 var(--space-3);white-space:normal;text-align:left;justify-self:start;font-size:12px}.builder-subhead{margin:var(--space-1) 0 0;color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.palette-list{gap:var(--space-2);flex-direction:column;display:flex}.palette-card{padding:var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .14s var(--ease-out), box-shadow .14s var(--ease-out);background:#fff;border-radius:12px;flex-direction:column;gap:4px;display:flex}.palette-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-1)}.palette-card.is-selected{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.palette-strip{border-radius:6px;grid-template-columns:repeat(5,1fr);height:22px;margin-bottom:4px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #1c25211a}.palette-name{font-size:14px;font-weight:600}.palette-description{color:var(--ink-soft);font-size:12px;line-height:16px}.swatch-group h4{margin:0 0 var(--space-1);justify-content:space-between;font-size:12px;font-weight:600;display:flex}.swatch-group code{color:var(--ink-soft);font-family:var(--font-mono);font-weight:400}.swatch-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.color-swatch-chip{width:30px;height:30px;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out);border:2px solid #fff;border-radius:8px}.color-swatch-chip:hover{transform:translateY(-1px)}.color-swatch-chip.is-selected{box-shadow:0 0 0 2px var(--green)}.swatch-row input[type=color]{border:1px dashed var(--line-strong);cursor:pointer;background:0 0;border-radius:8px;width:30px;height:30px;padding:0}.usage-list{gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--line);background:var(--canvas);border-radius:12px;flex-direction:column;display:flex}.usage-list li{align-items:center;gap:var(--space-2);grid-template-columns:1fr 64px auto;font-size:12px;display:grid}.usage-bar{background:#d6ddd7;border-radius:3px;height:6px;overflow:hidden}.usage-bar span{background:var(--green);transform-origin:0;height:100%;display:block}.usage-value{color:var(--ink-soft);font-family:var(--font-mono);white-space:nowrap;font-size:11px}.layer-list{flex-direction:column;gap:4px;display:flex}.layer-row{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:4px;padding:4px;display:flex}.layer-row.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.layer-row .icon-button{border-color:#0000;width:32px;height:32px}.layer-select{align-items:center;gap:var(--space-2);min-width:0;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:4px;display:flex}.layer-swatch{border-radius:6px;flex:none;width:22px;height:22px;box-shadow:inset 0 0 0 1px #1c25211f}.layer-text{flex-direction:column;min-width:0;display:flex}.layer-text strong{font-size:14px;font-weight:550}.layer-text span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.builder-foot{padding:var(--space-2) var(--space-4);border-top:1px solid var(--line);color:var(--ink-soft);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.thumbnail-renderer.is-small{width:176px;height:136px}@media (width<=1440px){.studio-layout.with-builder{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"viewer builder""rail rail"}.studio-layout.with-builder .studio-rail{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid;position:static}}@media (width<=1080px){.studio-layout,.studio-layout.with-builder{grid-template-columns:minmax(0,1fr);grid-template-areas:"viewer""builder""rail"}.studio-rail,.studio-layout.with-builder .studio-rail{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid;position:static}.builder-panel{max-height:none;position:static}.builder-body{overflow:visible}}@media (width<=760px){.builder-panel{border-radius:14px}.viewport-scale-hud{top:var(--space-2);left:var(--space-2);padding:6px var(--space-2)}}
