@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap";
:root{color:#1e221f;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1e221f;--muted:#777b76;--line:#dedfd9;--paper:#f8f8f5;--green:#3d4d43;--accent:#b6a076;background:#eeede8;font-family:DM Sans,Arial,sans-serif}*{box-sizing:border-box}html,body{width:100%;min-width:320px;height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{color:inherit}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:20px;height:20px}.app-shell{background:var(--paper);flex-direction:column;height:100%;display:flex}.app-loader{z-index:1000;opacity:1;visibility:visible;background:radial-gradient(circle at 50% 42%,#ffffffeb,#0000 34%),#eeede8;place-items:center;transition:opacity .5s cubic-bezier(.4,0,.2,1),visibility .5s;display:grid;position:fixed;inset:0;overflow:hidden}.app-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.loader-grid{transform-origin:50%;background-image:linear-gradient(#3d4d4309 1px,#0000 1px),linear-gradient(90deg,#3d4d4309 1px,#0000 1px);background-size:52px 52px;position:absolute;inset:-10%;transform:perspective(700px)rotateX(58deg)translateY(28%);-webkit-mask-image:radial-gradient(circle,#000,#0000 64%);mask-image:radial-gradient(circle,#000,#0000 64%)}.loader-content{flex-direction:column;align-items:center;width:min(320px,100vw - 48px);display:flex;position:relative}.loader-brand{color:var(--ink);letter-spacing:.18em;align-items:center;gap:12px;font:700 17px/1 Manrope,sans-serif;display:inline-flex}.loader-brand small{color:#888b86;letter-spacing:.3em;margin-top:3px;font-size:8px;font-weight:500;display:block}.loader-pergola{width:178px;height:116px;color:var(--green);filter:drop-shadow(0 12px 11px #2c363014);margin:38px 0 25px;position:relative}.loader-roof{align-items:flex-start;gap:5px;width:134px;height:38px;display:flex;position:absolute;top:10px;left:25px;transform:skewY(-10deg)}.loader-roof i{opacity:.2;transform-origin:50%;background:currentColor;border-radius:1px;width:15px;height:30px;animation:1.45s ease-in-out infinite loader-lamella;display:block}.loader-roof i:nth-child(2){animation-delay:.1s}.loader-roof i:nth-child(3){animation-delay:.2s}.loader-roof i:nth-child(4){animation-delay:.3s}.loader-roof i:nth-child(5){animation-delay:.4s}.loader-roof i:nth-child(6){animation-delay:.5s}.loader-roof i:nth-child(7){animation-delay:.6s}.loader-beam,.loader-post,.loader-floor{background:currentColor;display:block;position:absolute}.loader-beam{height:6px;top:42px;left:18px;right:10px;transform:skewY(-10deg)}.loader-post{transform-origin:top;width:5px;height:62px;top:45px}.loader-post-left{left:21px;transform:skewY(-10deg)}.loader-post-right{height:38px;right:13px;transform:skewY(-10deg)}.loader-floor{opacity:.18;height:1px;bottom:2px;left:8px;right:4px;transform:skewY(-10deg)}.loader-content p{color:#6e736e;letter-spacing:.02em;margin:0 0 16px;font-size:11px}.loader-progress{background:#3d4d431f;border-radius:2px;width:168px;height:2px;overflow:hidden}.loader-progress i{border-radius:inherit;background:var(--green);width:46%;height:100%;animation:1.25s cubic-bezier(.65,0,.35,1) infinite loader-progress;display:block}.loader-caption{color:#a0a39d;letter-spacing:.2em;text-transform:uppercase;margin-top:12px;font-size:8px;font-weight:600}@keyframes loader-lamella{0%,65%,to{opacity:.2;transform:rotateY(0)}32%{opacity:.85;transform:rotateY(52deg)}}@keyframes loader-progress{0%{transform:translate(-105%)}to{transform:translate(225%)}}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#f8f8f5f5;flex:0 0 72px;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;padding:0 28px;display:grid;position:relative}.brand{width:max-content;color:var(--ink);letter-spacing:.18em;align-items:center;gap:12px;font:700 17px/1 Manrope,sans-serif;text-decoration:none;display:inline-flex}.brand small{color:#888b86;letter-spacing:.3em;margin-top:3px;font-size:8px;font-weight:500;display:block}.brand-mark{grid-template-columns:repeat(4,1fr);gap:2px;width:28px;height:28px;display:grid;transform:skewY(-18deg)}.brand-mark i{border:1.5px solid var(--ink);border-top-width:3px}.topbar-center{color:#8b8e89;align-items:center;gap:9px;font-size:12px;display:flex}.status-dot,.live-pill i{background:#7e9b83;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #7e9b8324}.mobile-view-switch{display:none}.workspace{flex:1;grid-template-columns:minmax(385px,29vw) 1fr;min-height:0;display:grid}.config-panel{background:var(--paper);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex;overflow:hidden}.config-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c8cac4 transparent;flex:1;min-height:0;padding:40px 42px 30px;overflow:hidden auto}.eyebrow{color:#8a7a5a;letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:9px;font-size:10px;font-weight:700;display:flex}.eyebrow:before{content:"";background:#b6a076;width:18px;height:1px}.panel-heading h1{letter-spacing:-.045em;margin:13px 0 15px;font:500 clamp(28px,2.15vw,38px)/1.13 Manrope,sans-serif}.panel-heading h1 em{color:#7b817c;font-style:normal;font-weight:400}.panel-heading p{max-width:390px;color:var(--muted);margin:0;font-size:12px;line-height:1.65}.control-section{border-top:1px solid var(--line)}.control-section:last-of-type{border-bottom:1px solid var(--line)}.section-title{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;width:100%;padding:17px 0;display:grid}.section-title>span:nth-child(2){font:600 12px/1 Manrope,sans-serif}.section-title small{color:#aaa9a1;margin-right:7px;font-size:9px;font-weight:500}.section-title b{color:#90928d;font-size:17px;font-weight:400}.section-icon{color:#696e69;border:1px solid #dcded8;border-radius:7px;place-items:center;width:27px;height:27px;display:grid}.section-icon svg{stroke-width:1.5px;width:14px;height:14px}.section-content{padding:2px 0 19px;display:none}.control-section.open .section-content{animation:.25s ease-out reveal;display:block}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}}.dimension-row+.dimension-row{margin-top:15px}.dimension-label{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.dimension-label label{color:#6f746f;font-size:11px}.dimension-label output{color:#323733;font:600 13px/1 Manrope,sans-serif}.dimension-label output small{color:#a0a39d;margin-left:3px;font:400 9px DM Sans,sans-serif}input[type=range]{appearance:none;background:linear-gradient(to right, var(--green) var(--value), #dedfd9 var(--value));cursor:pointer;border-radius:2px;width:100%;height:3px;margin:0;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--green);width:15px;height:15px;box-shadow:0 0 0 1px var(--green), 0 2px 5px #0002;border:3px solid #fff;border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--green);width:10px;height:10px;box-shadow:0 0 0 1px var(--green), 0 2px 5px #0002;border:3px solid #fff;border-radius:50%}.range-bounds{color:#b0b2ad;justify-content:space-between;margin-top:6px;font-size:8px;display:flex}.placement-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.placement-option{text-align:left;cursor:pointer;background:0 0;border:1px solid #e0e1dc;border-radius:8px;grid-template-columns:46px 1fr 13px;align-items:center;gap:8px;min-width:0;padding:8px;transition:all .2s;display:grid}.placement-option:hover{background:#f1f1ed}.placement-option.selected{background:#fff;border-color:#8f938d;box-shadow:0 3px 14px #323b3508}.placement-option strong{font-size:9px;line-height:1.2;display:block}.placement-option small{color:#9a9d97;margin-top:3px;font-size:7px;line-height:1.2;display:block}.placement-preview{background:linear-gradient(145deg,#e1e1dc,#cdcec7);border-radius:5px;width:46px;height:35px;display:block;position:relative;overflow:hidden}.placement-preview:before{content:"";background:#555b57;height:4px;position:absolute;top:8px;left:6px;right:6px;box-shadow:0 2px 2px #0002}.placement-preview.freestanding:after{content:"";border-left:3px solid #555b57;border-right:3px solid #555b57;height:19px;position:absolute;top:12px;left:7px;right:7px}.placement-preview.wall:after{content:"";background:linear-gradient(90deg,#0000 0 45%,#b3b6b0 45%);border-right:3px solid #555b57;height:19px;position:absolute;top:12px;left:5px;right:5px}.placement-option .radio-dot{border:1px solid #c9cbc5;border-radius:50%;width:13px;height:13px}.placement-option.selected .radio-dot{border:4px solid var(--green)}.color-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.color-option{text-align:left;cursor:pointer;background:0 0;border:1px solid #e0e1dc;border-radius:8px;align-items:center;gap:9px;min-width:0;padding:8px;transition:border .2s,background .2s;display:flex}.color-option:hover{background:#f1f1ed}.color-option.selected{background:#fff;border-color:#8f938d;box-shadow:0 3px 14px #323b3508}.color-option>span:last-child{min-width:0;font-size:10px;font-weight:600}.color-option small{color:#a2a49f;margin-top:2px;font-size:8px;font-weight:400;display:block}.swatch{color:#fff;background:var(--swatch);border:1px solid #0000001a;border-radius:6px;flex:0 0 27px;place-items:center;width:27px;height:27px;display:grid}.swatch svg{stroke-width:2.4px;filter:drop-shadow(0 1px 1px #0005);width:13px;height:13px}.roof-list{gap:7px;display:none}.control-section.open .roof-list{display:grid}.roof-option{text-align:left;cursor:pointer;background:0 0;border:1px solid #e0e1dc;border-radius:8px;grid-template-columns:57px 1fr 15px;align-items:center;gap:11px;width:100%;padding:8px;transition:all .2s;display:grid}.roof-option:hover{background:#f1f1ed}.roof-option.selected{background:#fff;border-color:#8f938d;box-shadow:0 3px 14px #323b3508}.roof-option strong{margin-bottom:3px;font-size:10px;display:block}.roof-option small{color:#9a9d97;font-size:8px;display:block}.radio-dot{border:1px solid #c9cbc5;border-radius:50%;width:13px;height:13px}.roof-option.selected .radio-dot{border:4px solid var(--green)}.roof-preview{perspective:50px;background:linear-gradient(145deg,#ddddd7,#c7c8c1);border-radius:5px;justify-content:center;align-items:center;gap:3px;width:57px;height:39px;display:flex;overflow:hidden}.roof-preview i{background:#5b5e5b;width:6px;height:31px;display:block;transform:rotateY(36deg);box-shadow:1px 1px 2px #0002}.roof-preview.glass i{background:#c1d8da94;border:1px solid #fffc;width:14px;transform:rotateY(13deg)}.roof-preview.textile i{background:repeating-linear-gradient(90deg,#e7dfcf 0 8px,#d3c9b5 9px 10px);width:48px;height:27px;transform:rotateX(8deg)}.lamella-control{border-top:1px solid #e2e3de;margin-top:18px;padding-top:16px}.control-caption{color:#92958f;letter-spacing:.08em;text-transform:uppercase;margin:2px 0 8px;font-size:8px;font-weight:600;display:block}.sides-caption{margin-top:15px}.screen-material-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.screen-material-option{text-align:left;cursor:pointer;background:0 0;border:1px solid #e0e1dc;border-radius:8px;grid-template-columns:48px 1fr 13px;align-items:center;gap:8px;min-width:0;padding:8px;transition:all .2s;display:grid}.screen-material-option:hover{background:#f1f1ed}.screen-material-option.selected{background:#fff;border-color:#8f938d;box-shadow:0 3px 14px #323b3508}.screen-material-option strong{font-size:9px;display:block}.screen-material-option small{color:#9a9d97;margin-top:3px;font-size:7px;line-height:1.2;display:block}.screen-material-preview{background:linear-gradient(145deg,#dcddd7,#c8cac3);border-radius:5px;justify-content:center;align-items:center;gap:2px;width:48px;height:35px;display:flex;overflow:hidden}.screen-material-preview.glass i{background:linear-gradient(135deg,#c4dee1d1,#809da061);border:1px solid #ffffffd1;width:12px;height:27px}.screen-material-preview.slats i{background:#5c615e;width:5px;height:28px;transform:skewY(-7deg);box-shadow:1px 1px 1px #0002}.screen-material-option .radio-dot{border:1px solid #c9cbc5;border-radius:50%;width:13px;height:13px}.screen-material-option.selected .radio-dot{border:4px solid var(--green)}.screen-side-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.screen-side-option{color:#666b66;cursor:pointer;background:0 0;border:1px solid #e0e1dc;border-radius:7px;align-items:center;gap:8px;padding:9px 10px;font-size:9px;font-weight:600;transition:all .2s;display:flex}.screen-side-option:hover{background:#f1f1ed}.screen-side-option.selected{color:#324139;background:#f0f3ef;border-color:#849087}.side-check{background:#fff;border:1px solid #c9cbc5;border-radius:4px;flex:0 0 13px;width:13px;height:13px;position:relative}.screen-side-option.selected .side-check{border-color:var(--green);background:var(--green)}.screen-side-option.selected .side-check:after{content:"";border:1.5px solid #fff;border-width:0 1.5px 1.5px 0;width:4px;height:7px;position:absolute;top:1px;left:3px;transform:rotate(45deg)}.screen-side-option:disabled{opacity:.42;cursor:not-allowed;background:#ecece7}.wall-side-note{color:#a09f98;margin:8px 0 0;font-size:8px;line-height:1.4}.quote-action{z-index:2;padding:16px 42px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8f8f5fa;flex:none;position:sticky;bottom:0;box-shadow:0 -10px 24px #252b270e}.quote-action button,#quote-form button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:5px;justify-content:center;align-items:center;gap:10px;width:100%;padding:13px 15px;font-size:10px;font-weight:600;transition:transform .2s,background .2s;display:flex;box-shadow:0 7px 18px #3d4d432e}.quote-action button:hover,#quote-form button:hover{background:#293a30;transform:translateY(-1px)}.quote-action button svg,#quote-form button svg{width:14px}.viewer{background:#f1f0eb;min-width:0;min-height:0;position:relative;overflow:hidden}#scene-container,#scene-container>div,#scene-container canvas{width:100%;height:100%;display:block}.scene-loading{color:#858983;place-items:center;width:100%;height:100%;font-size:10px;display:grid}.scene-fallback{background:radial-gradient(circle at 50% 42%,#ffffffb8,#0000 36%),#f1f0eb;place-items:center;width:100%;height:100%;padding:90px 24px 110px;display:grid}.scene-fallback-card{text-align:center;background:#f8f8f5eb;border:1px solid #3d4d431f;border-radius:14px;width:min(390px,100%);padding:38px 34px;box-shadow:0 18px 55px #282f2b14}.scene-fallback-mark{width:42px;height:42px;color:var(--green);grid-template-columns:repeat(4,1fr);gap:3px;margin:0 auto 20px;display:grid;transform:skewY(-18deg)}.scene-fallback-mark i{border:2px solid;border-top-width:4px}.scene-fallback h2{letter-spacing:-.025em;margin:0;font:600 21px/1.25 Manrope,sans-serif}.scene-fallback p{color:var(--muted);margin:11px 0 22px;font-size:12px;line-height:1.55}.scene-fallback button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:5px;min-width:150px;padding:12px 18px;font-size:10px;font-weight:600;transition:transform .2s,background .2s;box-shadow:0 7px 18px #3d4d432e}.scene-fallback button:hover{background:#293a30;transform:translateY(-1px)}.dimension-label-3d{color:#1d211e;text-align:center;white-space:nowrap;pointer-events:none;background:#fffffff0;border:1px solid #14181624;border-radius:18px;min-width:82px;padding:7px 10px;font:600 11px/1 Manrope,Arial,sans-serif;display:block;box-shadow:0 2px 8px #1e221f0d}.viewer-top{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:21px 24px auto}.live-pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#737872;background:#ffffffa8;border:1px solid #ffffffad;border-radius:100px;align-items:center;gap:9px;padding:8px 11px;font-size:9px;display:flex;box-shadow:0 3px 14px #41413c0a}.view-actions{pointer-events:auto;gap:6px;display:flex}.view-actions button{color:#666c67;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffffa8;border:1px solid #ffffffb3;border-radius:8px;place-items:center;width:34px;height:34px;transition:all .2s;display:grid}.view-actions button:hover{color:var(--ink);background:#fff}.view-actions svg{width:15px}.viewer-hint{color:#858983;pointer-events:none;align-items:center;gap:8px;font-size:9px;display:flex;position:absolute;bottom:25px;left:50%;transform:translate(-50%)}.viewer-hint svg{width:14px}.spec-chips{flex-wrap:wrap;gap:6px;max-width:calc(100% - 48px);display:flex;position:absolute;bottom:22px;left:24px}.spec-chips span{color:#6e736e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff96;border:1px solid #ffffffa6;border-radius:6px;padding:8px 10px;font-size:8px}.viewer:fullscreen{background:#f1f0eb}.viewer:fullscreen #scene-container{height:100vh}dialog{width:min(520px,100% - 30px);color:var(--ink);background:#f9f9f6;border:0;border-radius:14px;padding:42px;box-shadow:0 30px 100px #1118}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#181d1a94}.modal-close{cursor:pointer;background:#ecece7;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:17px;right:17px}.modal-close svg{width:15px}.modal-kicker{color:#8a7a5a;letter-spacing:.17em;text-transform:uppercase;font-size:9px;font-weight:700}dialog h2{letter-spacing:-.04em;margin:10px 0 12px;font:500 31px/1.15 Manrope,sans-serif}dialog>p{color:#7f837e;margin:0;font-size:12px;line-height:1.6}.modal-summary{background:#ecece7;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));margin:24px 0;padding:14px;display:grid}.modal-summary span{border-right:1px solid #d7d8d1;padding:0 10px;font-size:10px;font-weight:600}.modal-summary span:last-child{border:0}.modal-summary small{color:#9a9d98;margin-bottom:4px;font-size:8px;font-weight:400;display:block}#quote-form{grid-template-columns:1fr 1fr;gap:10px;display:grid}#quote-form label{color:#727671;font-size:9px}#quote-form input{width:100%;color:var(--ink);background:#fff;border:1px solid #dfe0da;border-radius:6px;outline:0;margin-top:5px;padding:12px;font-size:11px}#quote-form input:focus{border-color:#809086;box-shadow:0 0 0 3px #80908618}#quote-form button{grid-column:1/-1;margin-top:5px}.toast{z-index:100;color:#fff;opacity:0;pointer-events:none;background:#293a30;border-radius:7px;align-items:center;gap:10px;padding:11px 16px;font-size:10px;transition:all .25s;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%,16px);box-shadow:0 12px 35px #0003}.toast.show{opacity:1;transform:translate(-50%)}.toast svg{width:15px}@media (max-width:1100px){.workspace{grid-template-columns:365px 1fr}.config-panel{padding:0}.config-scroll,.quote-action{padding-inline:28px}.viewer-hint{display:none}}@media (max-width:760px){body{overflow:hidden}html,body{height:100%;min-height:0}.app-shell{height:100svh;min-height:0}.topbar{flex-basis:62px;grid-template-columns:1fr auto;height:62px;padding:0 16px}.topbar-center{display:none}.mobile-view-switch{border-bottom:1px solid var(--line);background:var(--paper);z-index:21;flex:0 0 58px;grid-template-columns:1fr 1fr;gap:4px;height:58px;padding:8px 16px;display:grid;position:relative}.mobile-view-switch button{color:#8a8e88;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.mobile-view-switch button.active{color:#fff;background:var(--green);box-shadow:0 4px 12px #3d4d4329}.mobile-view-switch svg{width:15px;height:15px}.workspace{width:100%;min-width:0;min-height:0;display:block;position:relative}.viewer,.config-panel{width:100%;max-width:100%;height:100%}.workspace[data-mobile-view=viewer] .viewer{display:block}.workspace[data-mobile-view=viewer] .config-panel,.workspace[data-mobile-view=settings] .viewer{display:none}.workspace[data-mobile-view=settings] .config-panel{display:flex}.config-panel{border:0;min-width:0;padding:0;overflow:hidden}.config-scroll{padding:30px 22px 26px}.quote-action{padding:13px 22px calc(13px + env(safe-area-inset-bottom,0px))}.panel-heading h1{font-size:31px}.spec-chips{bottom:14px;left:14px}.viewer-top{inset:14px 14px auto}}@media (max-width:430px){.color-grid{grid-template-columns:1fr 1fr}.quote-action button{padding-inline:11px}dialog{padding:36px 22px 26px}.modal-summary{grid-template-columns:1fr;gap:10px}.modal-summary span{border:0;padding:0}#quote-form{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
