*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"IBM Plex Sans",Arial,sans-serif}.lab-nav{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--line)}.lab-nav img{width:clamp(120px,13vw,180px)}.lab-nav span,.eyebrow,legend{font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.lab{min-height:calc(100svh - 76px);display:grid;grid-template-columns:minmax(330px,5fr) minmax(500px,7fr)}.lab-copy{padding:clamp(40px,6vw,90px) clamp(20px,4vw,64px)}.eyebrow{color:var(--red)}h1{max-width:720px;margin:18px 0 24px;font:800 clamp(42px,5.6vw,88px)/.9 "Montserrat",sans-serif;letter-spacing:-.06em}.lab-copy>p:last-of-type{max-width:600px;font-size:18px;line-height:1.55}.controls{margin-top:52px;border-top:1px solid var(--line)}fieldset{margin:0;padding:22px 0;border:0;border-bottom:1px solid var(--line)}legend{float:left;width:150px;padding-top:13px}.choice-row,.checks,.swatches{margin-left:150px;display:flex;flex-wrap:wrap;gap:8px}.controls input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0;border:0}label span{display:flex;min-height:42px;align-items:center;padding:9px 14px;border:1px solid var(--line);cursor:pointer;font-weight:600}.controls input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}.swatches span::before{content:"";width:14px;height:14px;margin-right:9px;border:1px solid #777;background:var(--swatch)}.controls input:focus-visible+span{outline:3px solid var(--red);outline-offset:3px}.viewer{position:sticky;top:0;height:100svh;overflow:auto;background:var(--ink);color:#fff}.scene{position:relative;height:64%;min-height:430px;overflow:hidden;background:linear-gradient(#dedbd3 0 68%,#b8b3aa 68%);perspective:1100px}.sun{position:absolute;width:18vw;aspect-ratio:1;border:1px solid rgba(206,57,39,.38);right:-4vw;top:-5vw;transform:skewX(-13deg)}.ground{position:absolute;inset:auto 0 0;height:32%;background:linear-gradient(165deg,#aaa59c,#d3cfc7)}.module{position:absolute;left:14%;bottom:18%;width:42%;height:28%;background:#151515;border:8px solid var(--accent);box-shadow:0 28px 55px rgba(0,0,0,.28);transition:transform .55s cubic-bezier(.2,0,0,1),opacity .25s}.module--2{transform:translateX(78%)}.module--3{transform:translateX(156%);opacity:0}.window{position:absolute;inset:16% 24% 12% 7%;background:linear-gradient(145deg,#466069,#172024);border:4px solid #111}.door{position:absolute;right:6%;top:16%;width:14%;height:72%;background:#eee}.scene[data-count="1"] .module--2,.scene[data-count="1"] .module--3,.scene[data-count="2"] .module--3{opacity:0}.scene[data-count="3"] .module--3{opacity:1}.scene[data-layout="stacked"] .module--2{transform:translate(42%,-88%)}.scene[data-layout="stacked"] .module--3{transform:translateX(84%)}.scene[data-layout="courtyard"] .module--2{transform:translate(75%,-12%) rotateY(-52deg);transform-origin:left}.scene[data-layout="courtyard"] .module--3{transform:translate(134%,10%) rotateY(-52deg);transform-origin:left}.addon{position:absolute;z-index:4;opacity:0;transition:opacity .25s}.addon.is-on{opacity:1}.addon--terrace{left:12%;bottom:11%;width:65%;height:7%;border:3px solid var(--accent);background:#c4bfb5}.addon--canopy{left:11%;bottom:45%;width:66%;height:3%;background:var(--accent);transform:skewX(-18deg)}.addon--signage{left:22%;bottom:35%;padding:7px 12px;background:var(--accent);font:800 11px/1 "Montserrat",sans-serif;color:#111}.concept-card{min-height:36%;padding:clamp(28px,4vw,58px)}.concept-card>p:first-child{margin:0 0 10px;color:#f2d13d;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.concept-card h2{max-width:760px;margin:0 0 20px;font:700 clamp(28px,3.5vw,54px)/.98 "Montserrat",sans-serif;letter-spacing:-.045em}.concept-card ul{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.concept-card li{padding:7px 10px;border:1px solid rgba(255,255,255,.3)}.disclaimer{max-width:680px;color:#aaa;font-size:13px;line-height:1.5}.concept-card a{display:inline-block;margin-top:8px;color:#fff;font-weight:700;text-underline-offset:5px}@media(max-width:900px){.lab{grid-template-columns:1fr}.viewer{position:relative;height:auto}.scene{height:62svh;min-height:420px}.lab-copy{padding-bottom:55px}}@media(max-width:560px){.lab-nav span{font-size:9px}.controls{margin-top:35px}legend{float:none;width:auto;display:block;margin-bottom:12px}.choice-row,.checks,.swatches{margin-left:0}.scene{min-height:360px}.module{left:8%;width:48%;height:25%;border-width:5px}.addon--signage{left:14%}}
