@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope.ttf) format("truetype")}:root{font-family:Manrope,Arial,sans-serif;color:#30332b;background:#e6e1d8;font-synthesis:none;font-weight:450;font-size:14px;--olive:#596347;--paper:#faf8f3;--muted:#8b8c80;--border:#deded3}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{margin:0;overscroll-behavior:none}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;border:0;color:inherit;transition:background .18s,color .18s,box-shadow .18s,transform .18s}button:disabled{opacity:.42;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--olive);outline-offset:4px}a{color:inherit}button svg{flex-shrink:0}button:hover:not(:disabled){filter:brightness(.97)}button:active:not(:disabled){transform:translateY(1px)}.app{height:100dvh;min-height:500px;overflow:hidden}.header{height:76px;display:flex;align-items:center;padding:0 34px;gap:26px;background:var(--paper);position:relative;z-index:20;border-bottom:1px solid #ddded550}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:750;font-size:27px;letter-spacing:-1.3px;color:#4c5541}.brand svg{width:32px;height:32px}.brand-dot{color:#8c9678}.header-divider{height:25px;width:1px;background:var(--border)}.header-caption{font-size:9px;font-weight:650;letter-spacing:2px;color:#7d8174}.header-actions{margin-left:auto;display:flex;align-items:center;gap:15px}.icon-button{background:transparent;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#686c5e}.icon-button:hover{background:#e9e9de}.text-button{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:650;background:transparent;padding:8px}.save-button{margin-right:8px}.experience{height:calc(100dvh - 76px);position:relative;overflow:hidden}.viewport{position:absolute;top:0;right:0;bottom:0;left:0;background:#e6e1d8}.viewport canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline:none}.viewport canvas:active{cursor:grabbing}.scene-heading{position:absolute;top:38px;left:42px;pointer-events:none;text-shadow:0 1px 16px #fffffff0}.eyebrow{font-size:8px;letter-spacing:1.7px;font-weight:750;display:flex;align-items:center;gap:9px}.status-dot{height:5px;width:5px;background:#7b8768;border-radius:50%;flex-shrink:0}.eyebrow-line{height:1px;background:#707767;width:30px;margin-left:2px}.scene-heading h1{margin:19px 0 12px;font-size:48px;letter-spacing:-2.6px;line-height:1.1;font-weight:450}.scene-heading h1 span{color:#667252}.scene-heading p{font-size:11px;line-height:1.9;color:#6c7065}.scene-top-tools{position:absolute;top:28px;right:28px;display:flex;gap:9px;transition:right .25s}.panel-open .scene-top-tools{right:364px}.light-toggle{display:flex;padding:4px;border:1px solid #ffffffa0;background:#faf8f2e6;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:30px;box-shadow:0 4px 16px #1d26120b}.light-toggle button{display:flex;align-items:center;gap:7px;border-radius:25px;padding:8px 12px;background:none;color:#818578;font-size:10px}.light-toggle button.selected{background:#e3e6d9;color:var(--olive)}.floating-icon{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:#faf8f2e6;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid #ffffffa0}.source-note{position:absolute;left:42px;top:256px;font-size:9px;color:#575e4d;display:flex;align-items:center;gap:7px;background:#faf8f0d9;border:1px solid #ffffffb0;padding:8px 11px;border-radius:4px;max-width:300px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.source-note>span{width:4px;height:4px;border-radius:50%;background:#9d946e}.materials-panel{position:absolute;right:22px;top:22px;bottom:22px;width:302px;padding:24px;background:#fbfaf6f5;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 10px 55px #36341e12;border:1px solid #ffffffbd;border-radius:8px;display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;animation:slide-in .25s ease}.panel-heading{display:flex;align-items:center;justify-content:space-between;height:16px}.panel-heading .eyebrow{font-size:7px;letter-spacing:1.5px;color:#898d7e}.panel-close{width:25px;height:25px;margin-right:-7px}.materials-panel h2{font-size:28px;line-height:1.2;letter-spacing:-1.1px;font-weight:500;margin:17px 0 10px}.materials-panel h2>span{color:#83926d}.panel-intro{font-size:10px;line-height:1.85;color:#8a8c80;margin:0 0 24px}.surface-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:20px;gap:6px}.surface-tabs button{flex:1;font-size:11px;background:none;padding:10px 0 12px;border-bottom:2px solid transparent;margin-bottom:-1px;color:#909283;font-weight:550}.surface-tabs button.active{border-bottom-color:var(--olive);color:var(--olive)}.finish-preview{height:125px;flex-shrink:0;border-radius:5px;overflow:hidden;position:relative;box-shadow:inset 0 0 30px #0001}.wood-preview{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;transform:scale(1.12) rotate(-7deg);filter:saturate(.65) brightness(1.1)}.wood-preview.walnut{filter:brightness(.48) saturate(.8)}.wood-preview.oak{filter:saturate(.55) brightness(1.28)}.tactile-preview{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.17' filter='url(%23a)'/%3E%3C/svg%3E"),linear-gradient(130deg,#ffffff33,transparent,#00000015)}.tactile-preview.sofa{background-size:100px;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,#0001 3px,transparent 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,#fff3 3px,transparent 4px),linear-gradient(130deg,#ffffff22,transparent,#00000016)}.sample-number{position:absolute;top:12px;left:13px;font-size:8px;letter-spacing:1px;color:#ffffffdf;text-shadow:0 1px 4px #0004}.preview-label{position:absolute;bottom:12px;left:13px;font-size:7px;font-weight:650;letter-spacing:1.5px;color:#fff;text-shadow:0 1px 5px #0006}.finish-title{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:8px}.finish-title h3{margin:0;font-size:14px;font-weight:650;letter-spacing:-.3px}.finish-check{width:20px;height:20px;border-radius:50%;background:#e7ebdf;color:var(--olive);display:grid;place-items:center}.finish-detail{margin:5px 0 18px;font-size:9px;color:#94978a}.swatches{display:flex;gap:12px;margin-bottom:18px}.swatch{background:none;flex:1;width:0;padding:0;text-align:left}.swatch-image{height:51px;display:flex;align-items:center;justify-content:center;background-size:170%;border-radius:5px;color:#fff;position:relative;box-shadow:inset 0 0 15px #0001}.swatch-image.floor{filter:saturate(.65)}.swatch-image.floor.oak{filter:brightness(1.2) saturate(.5)}.swatch-image.floor.walnut{filter:brightness(.6) saturate(.8)}.swatch.selected .swatch-image:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px solid var(--olive);border-radius:7px}.swatch.selected .swatch-image svg{background:#485136a8;padding:4px;box-sizing:content-box;border-radius:50%;filter:drop-shadow(0 1px 2px #0003)}.swatch-name{display:block;font-size:8px;color:#929386;line-height:1.5;margin-top:9px;min-height:24px}.swatch.selected .swatch-name{color:var(--olive);font-weight:650}.panel-bottom{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.applied-note{display:flex;align-items:center;gap:7px;font-size:8px;color:#929786;margin:0 0 16px}.applied-note .status-dot{width:4px;height:4px}.compare-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 12px;background:var(--olive);color:#fcfcf3;border-radius:4px;font-size:10px;font-weight:550}.compare-button>span{flex:1;text-align:left}.reset-button{display:flex;align-items:center;justify-content:center;gap:7px;background:none;font-size:9px;color:#909582;width:100%;margin-top:10px;padding:6px}.bottom-left{position:absolute;bottom:58px;left:42px;display:flex;align-items:center;gap:22px;color:#454c3c}.view-label{display:flex;gap:12px;align-items:center;text-shadow:0 1px 12px #fff}.view-index{font-size:27px;font-weight:450;letter-spacing:-1px;color:#747f63}.view-label>div{display:flex;flex-direction:column;gap:5px}.view-label strong{font-size:12px;font-weight:650}.view-label>div>span{font-size:8px;color:#858976}.view-arrows{display:flex;gap:7px}.round-button{width:34px;height:34px;border-radius:50%;background:#faf8f1c9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;border:1px solid #fff9}.viewer-toolbar{position:absolute;bottom:49px;left:calc((100% - 326px)/2);transform:translate(-50%);display:flex;align-items:center;padding:6px;background:#fcfaf3ee;border:1px solid #fff9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:8px;box-shadow:0 8px 30px #363d2415;transition:left .2s}.app:not(.panel-open) .viewer-toolbar{left:50%}.toolbar-button{display:flex;align-items:center;gap:8px;padding:12px 14px;background:none;border-radius:5px;font-size:10px;color:#727869;white-space:nowrap}.toolbar-button.active{background:#e7eadf;color:#566345}.toolbar-divider{width:1px;height:18px;background:#dbddcf;margin:0 4px}.navigation-hint{position:absolute;bottom:18px;left:42px;display:flex;align-items:center;gap:6px;font-size:8px;color:#737967;text-shadow:0 1px 8px #fff}.hint-dot{padding:0 5px}.key-hint{letter-spacing:2px;font-weight:750}.joystick{display:none}.compare-note{position:absolute;left:50%;top:35px;transform:translate(-50%);background:#fbf9f1f2;box-shadow:0 5px 30px #0001;border:1px solid white;padding:12px 14px;display:flex;align-items:center;gap:18px;font-size:10px;border-radius:5px}.compare-note button{background:none;color:var(--olive);font-size:10px;display:flex;align-items:center;gap:8px;font-weight:700}.loading-screen{position:absolute;top:0;right:0;bottom:0;left:0;background:#f4f1eaf5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;padding:24px;text-align:center}.loading-symbol{position:relative;width:65px;height:65px;margin-bottom:45px}.loading-symbol span{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid #697956;animation:loading-symbol 3s ease-in-out infinite}.loading-symbol span:nth-child(2){top:12px;right:12px;bottom:12px;left:12px;animation-delay:.3s}.loading-symbol span:nth-child(3){top:24px;right:24px;bottom:24px;left:24px;animation-delay:.6s}.loading-screen .eyebrow{color:#929b83}.loading-screen h2{font-size:27px;letter-spacing:-1px;font-weight:500;margin:16px 0 2px}.loading-screen p{font-size:12px;color:#949887;line-height:1.8;max-width:380px}.progress-track{height:2px;width:220px;background:#e0e3d6;margin-top:22px;overflow:hidden}.progress-track>div{height:100%;background:#7a8768;transition:width .3s}.progress-value{font-size:10px;color:#8d9680;margin-top:12px}.loading-screen .compare-button{width:220px;margin-top:14px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,25px);opacity:0;pointer-events:none;transition:.2s;display:flex;align-items:center;gap:10px;padding:13px 20px;background:#333e2ef2;border-radius:6px;color:#fff;font-size:11px;z-index:50;max-width:90vw;box-shadow:0 10px 40px #0002}.toast.visible{transform:translate(-50%);opacity:1}.help-dialog{border:1px solid #fff6;border-radius:12px;background:var(--paper);color:inherit;max-width:460px;width:calc(100% - 32px);padding:0;max-height:calc(100dvh - 40px);box-shadow:0 20px 100px #0003}.help-dialog::backdrop{background:#26302577;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-inner{padding:35px}.dialog-close{position:absolute;top:12px;right:12px}.dialog-inner>.eyebrow{color:#8a927d;font-size:8px}.dialog-inner h2{font-size:32px;font-weight:450;line-height:1.16;letter-spacing:-1.3px;margin:17px 0 26px}.help-row{display:flex;gap:16px;margin:20px 0}.help-row>svg{width:19px;flex-shrink:0;color:#778765;margin-top:3px}.help-row strong{font-size:12px;font-weight:650}.help-row p{font-size:10px;line-height:1.8;color:#939889;margin:5px 0}.quality-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:24px;font-size:10px}.quality-control>span{display:flex;align-items:center;gap:9px}.quality-control select{background:#eceee5;border:1px solid #dce0d0;border-radius:4px;padding:8px;max-width:140px;color:#5a654c;font-size:10px}.performance-note,.source-disclosure{font-size:9px;line-height:1.8;color:#8c947f}.source-disclosure{margin-top:20px}.credits{font-size:8px;text-underline-offset:3px;color:#8d947d}.start-button{margin-top:24px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes loading-symbol{50%{transform:rotate(90deg);opacity:.4}}@keyframes slide-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@media(min-width:1600px){.materials-panel{right:32px;top:32px;bottom:32px;width:334px;padding:30px}.panel-open .scene-top-tools{right:400px}.scene-heading{top:52px;left:56px}.scene-heading h1{font-size:60px}.source-note{top:305px;left:56px}.finish-preview{height:160px}.materials-panel h2{font-size:32px}.swatch-image{height:65px}.panel-intro{font-size:11px}.finish-title h3{font-size:16px}.bottom-left,.navigation-hint{left:56px}.viewer-toolbar{left:calc((100% - 366px)/2)}}@media(max-height:790px)and (min-width:801px){.materials-panel{padding:20px;top:16px;bottom:16px}.materials-panel h2{font-size:25px;margin:13px 0 8px}.panel-intro{margin-bottom:13px}.surface-tabs{margin-bottom:15px}.finish-preview{height:100px}.finish-detail{margin-bottom:14px}.finish-title{margin-top:13px}.swatches{margin-bottom:8px}.panel-bottom{padding-top:10px}.applied-note{margin-bottom:10px}.compare-button{padding:12px}.reset-button{margin-top:6px}.swatch-image{height:42px}.scene-heading h1{font-size:42px}.scene-heading{top:30px}.source-note{top:235px}}@media(max-width:1100px)and (min-width:801px){.header{padding:0 24px}.header-caption{font-size:8px;letter-spacing:1.2px}.scene-heading{left:28px}.scene-heading h1{font-size:38px}.materials-panel{width:274px;padding:20px}.panel-open .scene-top-tools{right:319px}.source-note{left:28px;font-size:8px}.bottom-left{left:28px;gap:12px;bottom:108px}.navigation-hint{left:28px}.viewer-toolbar{left:calc((100% - 296px)/2);bottom:44px}.scene-top-tools{top:22px}}@media(max-width:800px){.app{min-height:400px}.header{height:62px;padding:0 18px;gap:16px}.brand{font-size:23px;gap:7px}.brand svg{width:28px;height:28px}.header-caption,.header-divider{display:none}.header-actions{gap:5px}.save-button{margin-right:4px}.save-button span{display:none}.experience{height:calc(100dvh - 62px)}.scene-heading{top:24px;left:22px}.scene-heading .eyebrow{font-size:6px;letter-spacing:1.3px}.eyebrow-line{display:none}.scene-heading h1{font-size:36px;margin-top:14px;letter-spacing:-1.8px}.scene-heading p{font-size:9px;line-height:1.7}.scene-top-tools,.panel-open .scene-top-tools{top:21px;right:16px;gap:6px}.light-toggle button{padding:7px;gap:5px}.light-toggle button span{display:none}.floating-icon{height:37px;width:37px}.source-note{top:204px;left:22px;font-size:7px;padding:6px 8px;max-width:240px}.materials-panel{right:12px;left:12px;top:auto;bottom:80px;width:auto;max-height:51dvh;padding:20px;border-radius:12px;z-index:4;display:block}.panel-heading .eyebrow{font-size:7px}.materials-panel h2{font-size:22px;margin:12px 0}.materials-panel h2 br,.panel-intro{display:none}.surface-tabs{margin:12px 0 15px}.surface-tabs button{padding:8px 0;font-size:11px}.finish-preview{display:none}.finish-title{margin-top:10px}.finish-title h3{font-size:13px}.finish-detail{font-size:9px;margin-bottom:18px}.swatches{gap:18px;margin:0 0 10px}.swatch-image{height:48px}.swatch-name{font-size:9px;min-height:14px}.panel-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px}.applied-note{display:none}.compare-button{font-size:10px;padding:12px}.panel-bottom .compare-button{flex:1}.reset-button{width:auto;margin:0;font-size:0;gap:0;padding:12px}.reset-button svg{width:16px;height:16px}.viewer-toolbar,.app:not(.panel-open) .viewer-toolbar{bottom:22px;left:50%;z-index:5;border-radius:8px}.toolbar-button{padding:10px 13px}.navigation-hint{display:none}.bottom-left{left:22px;bottom:89px;gap:16px}.panel-open .bottom-left{display:none}.view-label strong{font-size:11px}.view-label>div>span{font-size:8px}.view-index{font-size:23px}.view-arrows{gap:6px}.round-button{width:29px;height:29px}.desktop-only{display:none}.compare-note{top:248px;max-width:90%;font-size:9px;gap:10px;white-space:nowrap;z-index:4}.compare-note button{font-size:9px}.joystick{display:flex;position:absolute;right:24px;bottom:100px;width:90px;height:90px;border:1px solid #ffffffc4;background:#ffffff3b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:50%;align-items:center;justify-content:center;touch-action:none}.joystick>div{width:42px;height:42px;background:#faf8f0c4;border:1px solid #fffb;border-radius:50%;display:grid;place-items:center;color:#737d64;box-shadow:0 3px 15px #323b2514;pointer-events:none}.panel-open .joystick{display:none}.toast{bottom:100px;font-size:10px;width:max-content;text-align:center}.dialog-inner{padding:28px}.dialog-inner h2{font-size:30px}.quality-control{font-size:9px}.help-row{margin:17px 0}}@media(max-width:800px)and (max-height:750px){.scene-heading h1{font-size:31px}.scene-heading p{display:none}.source-note{top:142px}.materials-panel{max-height:52dvh;padding:16px}.materials-panel h2{font-size:20px;margin:8px 0}.surface-tabs{margin-top:8px;margin-bottom:12px}.finish-title{margin-top:0}.swatch-image{height:38px}.finish-detail{margin-bottom:14px}.panel-bottom{padding-top:10px}.compare-note{top:185px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.scene-heading h1{font-size:29px;letter-spacing:-1.2px;margin:14px 0 7px}.scene-heading p{margin-top:0}.source-note{top:178px}@media(min-width:801px){.panel-open .viewport{right:346px}.scene-heading{top:27px}.scene-heading h1{font-size:29px}.source-note{top:178px}.viewer-toolbar{left:calc((100% - 346px)/2)}}@media(max-width:800px){.panel-open .viewport{bottom:384px}.panel-open .scene-heading h1,.panel-open .scene-heading p{display:none}.panel-open .source-note{top:55px}.materials-panel{height:292px;max-height:calc(100dvh - 235px);padding:16px 18px;display:flex}.materials-panel h2{display:none}.surface-tabs{margin:8px 0 10px}.finish-title{margin-top:0}.finish-detail{margin:4px 0 12px}.swatches{margin:0 0 8px}.swatch-image{height:42px}.panel-bottom{padding-top:10px;margin-top:auto;flex-wrap:nowrap}.compare-note{top:95px}}.plan-dialog{max-width:680px}.plan-dialog h2{margin-bottom:15px;font-size:27px}.plan-area{display:block;font-size:12px;letter-spacing:0;color:#8b927f;margin-top:10px}.apartment-plan{display:block;max-height:49dvh;width:100%;object-fit:contain;background:#fff;border:1px solid #e0e2d7;border-radius:6px}.room-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.room-links button{display:flex;align-items:center;gap:10px;background:#e8ebe1;padding:10px 12px;border-radius:4px;font-size:10px}.room-links button.active{background:var(--olive);color:#fff}@media(max-width:800px){.toolbar-button{padding:10px;gap:6px}.plan-dialog .dialog-inner{padding:25px}.plan-dialog h2{font-size:23px}.room-links{gap:6px}.room-links button{font-size:10px;padding:10px}.apartment-plan{max-height:44dvh}.source-note{top:160px}}
