:root{font-family:'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif;color:#273e38;background:#f1f0e9;font-size:14px;--green:#284b43;--muted:#7c8279;--line:#dcded4;--paper:#f7f6f0}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #69877a;outline-offset:4px}button{border:0;background:none}button:disabled{opacity:.5;cursor:wait}button:hover{color:#769181}a{color:inherit;text-decoration:none}.header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;gap:15px;align-items:center}.mark{font-family:'Songti SC',serif;width:42px;height:46px;display:grid;place-items:center;border:1px solid #526a5c;font-size:28px;border-radius:17px 17px 1px 1px}.brand strong{display:block;font-size:19px;letter-spacing:2px;font-weight:600}.brand em{font-family:Georgia,serif;font-size:25px;font-style:normal;letter-spacing:1px;padding-left:5px}.brand div>span{display:block;font-size:12px;color:var(--muted);margin-top:5px;letter-spacing:1px}.walk-badge i{width:5px;height:5px;border-radius:50%;background:#68876a}.header-actions{display:flex;align-items:center;gap:24px}.text-button{font-size:13px}.text-button span{padding-left:15px}.icon-button{font-size:26px}.layout{display:grid;grid-template-columns:288px 1fr;height:calc(100dvh - 92px)}.sidebar{background:var(--paper);border-right:1px solid var(--line);padding:32px 28px 18px;overflow-y:auto;z-index:4}.eyebrow{font-size:9px;letter-spacing:1.7px;color:#879287}.facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 0 19px;margin-bottom:27px}.facts strong{font-family:Georgia,serif;font-size:28px;font-weight:400;display:block}.facts small{font-size:13px}.facts span{display:block;font-size:10px;color:var(--muted);margin-top:7px}.section-heading{display:flex;justify-content:space-between;font-size:12px;margin-bottom:13px;font-weight:600}.section-heading span{font-size:10px;font-weight:400;color:#93998f}#rooms{display:grid;gap:3px}.room-button{display:flex;width:100%;padding:10px 12px;border-radius:3px;align-items:center;justify-content:space-between;text-align:left;font-size:13px;transition:background .18s}.room-button .room-no{color:#9a9f93;font-family:Georgia,serif;margin-right:11px;font-size:12px}.room-button small{font-size:10px;color:#96a095}.room-button:hover{background:#eceee5}.room-button.active{background:#e5e9dd;color:#284b43}.room-button.active small{color:#456455}.material-board{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:11px}.swatches{display:flex;gap:8px;margin:11px 0 8px}.swatches i{width:37px;height:37px;border-radius:50%;background-image:url('assets/material-atlas.png');background-size:210% 210%;border:1px solid #d0cdc2}.swatches .oak{background-position:0 0}.swatches .stone{background-position:100% 0}.swatches .linen{background-position:0 100%}.swatches .walnut{background-position:100% 100%}.material-board small{font-size:10px;color:#909489}.notes-link{padding:0;margin-top:23px;font-size:11px;display:flex;width:100%;justify-content:space-between;color:#727e72}.stage{position:relative;min-width:0;overflow:hidden;background:#e8e9e2}.stage canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.view-caption{position:absolute;top:34px;left:35px;pointer-events:none}.view-caption>span{font-size:10px;letter-spacing:2px;color:#7f8a7d}.view-caption h2{font-family:'Songti SC',serif;font-size:24px;font-weight:400;margin:10px 0 7px;letter-spacing:3px}.view-caption p{font-size:11px;color:#899084;margin:0;max-width:360px}.stage-tools{position:absolute;top:30px;right:27px;display:flex;background:#f9faf4e8;border:1px solid #d8ddd3;border-radius:5px;padding:4px;box-shadow:0 2px 10px #263b3010}.stage-tools button{font-size:19px;padding:7px 12px;display:flex;gap:7px;align-items:center}.stage-tools span{font-size:11px}.stage-tools button.active{background:#dce5d8;border-radius:3px}.orientation{position:absolute;top:118px;right:32px;display:flex;align-items:center;gap:9px;color:#8b9488;font-size:10px}.orientation div{font-size:12px}.orientation i{font-style:normal;margin:0 7px;font-size:20px}.labels{position:absolute;inset:0;pointer-events:none}.room-label{position:absolute;transform:translate(-50%,-50%);background:#f9faf1e8;border:1px solid #d4ded2;box-shadow:0 3px 14px #132b2112;padding:7px 12px;border-radius:30px;font-size:11px;white-space:nowrap;color:#3d594c;pointer-events:auto;cursor:pointer}.room-label:hover{background:#284b43;color:#fff}.section-control{position:absolute;left:32px;bottom:110px;background:#f8f9f2e6;padding:14px 16px;border:1px solid #d8ddd3;border-radius:4px;width:175px}.section-control label{display:flex;justify-content:space-between;font-size:11px;color:#71816f;margin-bottom:7px}.section-control output{font-variant-numeric:tabular-nums}.section-control input{width:100%;height:3px;accent-color:#446555;margin:7px 0}.bottom-bar{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;white-space:nowrap}.mode-switch{display:flex;padding:5px;background:#f7f8f1f5;border:1px solid #d0d9cb;box-shadow:0 8px 30px #36473210;border-radius:40px}.mode-switch button{padding:12px 21px;border-radius:30px;font-size:16px;display:flex;gap:8px;align-items:center}.mode-switch span{font-size:12px}.mode-switch button.active{background:#2d4d42;color:#fff}.bottom-bar>span{font-size:10px;color:#889282;letter-spacing:.6px}.minimap{position:absolute;right:28px;bottom:115px;background:#f8f9f3e8;border:1px solid #d7ddcf;width:185px;border-radius:5px;padding:13px;display:none}.walk-mode .minimap{display:block}.minimap-head{display:flex;justify-content:space-between;font-size:10px}.minimap-head small{font-size:8px;color:#929b8c}#map{width:100%;height:145px;overflow:visible}#map polygon{fill:#e4e7dc;stroke:#94a18c;stroke-width:.08;cursor:pointer;transition:fill .2s}#map polygon.active{fill:#a4b7a0}#map polygon:hover{fill:#bed0b6}#map .map-dot{fill:#345e4b;stroke:#fff;stroke-width:.14}.walk-badge{position:absolute;left:32px;bottom:126px;padding:10px 14px;background:#f8faf0e8;border-radius:4px;font-size:10px;display:flex;align-items:center;gap:8px}.walk-badge span{color:#8a9585;margin-left:8px}.walk-badge[hidden],.walk-pad[hidden]{display:none}.walk-pad{position:absolute;left:33px;bottom:168px;text-align:center}.walk-pad button{width:38px;height:38px;margin:2px;background:#f9fbf3e0;border:1px solid #bfcbbc;border-radius:8px;font-size:19px;touch-action:none}.walk-pad button:active{background:#acbba2}.walk-mode .view-caption{background:#f9fbf2df;padding:16px 21px;top:22px;left:24px;border-radius:4px}.walk-mode .view-caption p{max-width:270px}.walk-mode .orientation{display:none}.toast{position:absolute;left:50%;bottom:174px;transform:translateX(-50%);padding:12px 18px;background:#2e433be6;color:white;border-radius:5px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .3s}.toast.show{opacity:1}.loading{position:absolute;inset:0;background:#e9ebe3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;z-index:8;transition:opacity .4s}.loading.done{opacity:0;pointer-events:none}.loader-mark{font-family:'Songti SC',serif;font-size:40px;border:1px solid #7e9379;width:70px;height:82px;border-radius:25px 25px 2px 2px;display:grid;place-items:center;animation:breathe 1.6s ease infinite}.loading strong{font-weight:400;letter-spacing:3px;font-size:14px}.loading span{font-size:11px;color:#85907f}.error{position:absolute;inset:0;background:var(--paper);z-index:9;place-content:center;text-align:center;padding:40px}.error:not([hidden]){display:grid}.error h2{font-family:'Songti SC',serif;font-weight:400}.error button{padding:12px 25px;background:var(--green);color:white;border-radius:4px;margin:auto}dialog{border:1px solid #d9dfd2;background:#f9f9f2;color:#344d40;border-radius:9px;padding:40px;max-width:650px;max-height:85dvh;box-shadow:0 40px 100px #142b233b;overflow:auto}dialog::backdrop{background:#243a3055;backdrop-filter:blur(6px)}dialog h2{font-family:'Songti SC',serif;font-size:29px;font-weight:400;letter-spacing:2px}dialog p,dialog li{font-size:13px;line-height:1.9;color:#708069}dialog ul{padding-left:18px}dialog li{margin-bottom:9px}.close-dialog{position:absolute;top:13px;right:16px;font-size:26px}.note-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px;background:#edf0e6;padding:22px;margin:22px 0}.note-grid strong{display:block;font-family:Georgia,serif;font-size:20px;font-weight:400}.note-grid span{font-size:11px;color:#7c8774;display:block;margin-top:6px}.document-link{display:inline-block;font-size:12px;border-bottom:1px solid #97a28e;padding:7px 0}.source-dialog{max-width:94vw;width:1500px;height:88dvh;padding:25px}.source-head{display:flex;align-items:center;gap:24px;padding-right:22px}.source-head h2{font-size:20px}.source-head select{border:1px solid #cbd2c3;background:#f7f8f2;color:#42613f;padding:8px 10px;border-radius:4px}.source-head a{font-size:11px}.source-image{height:calc(100% - 75px);overflow:auto;background:#fff}.source-image img{width:100%;height:auto;display:block}@keyframes breathe{50%{opacity:.35}}@media(min-width:1700px){.sidebar{padding-top:45px}.room-button{padding:12px}.layout{grid-template-columns:320px 1fr}}@media(max-height:850px) and (min-width:901px){.sidebar{padding-top:20px}.facts{padding:14px 0;margin-bottom:18px}.room-button{padding:8px 9px}.material-board{margin-top:14px;padding-top:12px}.notes-link{margin-top:14px}.swatches i{width:30px;height:30px}}@media(max-width:1100px){.layout{grid-template-columns:240px 1fr}.sidebar{padding-left:20px;padding-right:20px}.stage-tools span{display:none}.view-caption{left:24px}.minimap{width:155px;right:15px}.section-control{width:145px;left:22px}.bottom-bar .mode-switch button{padding:11px 14px}.header{padding:0 25px}.facts span{font-size:9px}}@media(max-width:760px){.header{height:74px;padding:0 17px}.brand{gap:10px}.mark{height:38px;width:34px;font-size:23px}.brand strong{font-size:15px}.brand em{font-size:21px}.brand div>span{font-size:9px}.header-actions{gap:11px}.text-button{font-size:11px}.text-button span{padding-left:4px}.layout{display:block;height:calc(100dvh - 74px);position:relative}.sidebar{position:absolute;bottom:95px;left:0;right:0;background:transparent;border:0;padding:0 12px;overflow:visible;pointer-events:none}.sidebar>*{display:none}.sidebar #rooms{display:flex;overflow-x:auto;pointer-events:auto;gap:5px;padding:6px 3px;scrollbar-width:none}.room-button{width:auto;flex-shrink:0;border:1px solid #d5ddcc;padding:8px 11px;background:#f7f9f0e8;border-radius:20px;font-size:11px}.room-button .room-no{display:none}.room-button small{display:none}.room-button.active{background:#42634e;color:white}.stage{height:100%;width:100%}.view-caption{top:24px;left:20px}.view-caption h2{font-size:23px}.view-caption p{font-size:10px;max-width:250px}.view-caption>span{font-size:8px}.stage-tools{top:20px;right:13px;padding:2px}.stage-tools button{padding:7px;font-size:18px}.stage-tools button span{display:none}.orientation{top:113px;right:16px;font-size:9px}.section-control{bottom:157px;left:15px;width:120px;padding:10px}.section-control label{font-size:9px}.bottom-bar{bottom:21px;gap:10px}.bottom-bar .mode-switch button{padding:11px 14px;font-size:13px}.bottom-bar .mode-switch span{font-size:11px}.bottom-bar>span{font-size:9px}.minimap{bottom:156px;right:12px;width:129px;padding:8px}.minimap-head small{display:none}#map{height:114px}.walk-badge{bottom:auto;top:142px;left:15px;font-size:9px;padding:8px}.walk-badge span{display:none}.walk-pad{bottom:153px;left:15px}.walk-mode .view-caption{top:20px;left:15px;padding:12px 14px;max-width:235px}.walk-mode .view-caption p{max-width:192px}.walk-mode .view-caption h2{font-size:20px}.walk-mode .stage-tools{top:23px;right:10px}.walk-mode .stage-tools button{padding:5px}.toast{bottom:205px;max-width:90%;font-size:11px;white-space:nowrap}dialog{padding:26px 22px;width:93vw;max-height:87dvh}dialog h2{font-size:23px}.note-grid{padding:16px;gap:15px}.note-grid strong{font-size:16px}.source-head{display:block}.source-head h2{margin:0 0 10px}.source-head select{max-width:80%;font-size:11px}.source-head a{margin-left:10px;font-size:10px}.source-image{height:calc(100% - 80px);margin-top:16px}.source-image img{min-width:850px}.source-dialog{height:85dvh}.material-board{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.mobile-notes{display:none}@media(max-width:760px){.mobile-notes{display:inline-block;font-size:11px;padding:0}}

/* The gallery shows inspected renders of the same editable apartment. */
.renders-dialog{width:min(1180px,94vw);max-width:1180px;padding:26px;background:#f5f3ee}.renders-dialog .source-head{align-items:center}.renders-dialog h2{margin:6px 0 18px}.renders-dialog>img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#d9d5cc;border-radius:3px}.renders-dialog>p{font-size:12px;color:#73786d;margin:14px 0 8px}.renders-dialog>.text-button{padding:8px 0}.material-board .swatches .oak{background-image:url('assets/pbr/oak_veneer_01_Diffuse.jpg');background-size:cover;background-position:center}.material-board .swatches .stone{background-image:url('assets/pbr/ai-stone-base.png');background-size:cover;background-position:center}.material-board .swatches .linen{background-image:url('assets/pbr/cotton_jersey_Diffuse.jpg');background-size:cover;background-position:center}.material-board .swatches .walnut{background-image:url('assets/pbr/wood_table_Diffuse.jpg');background-size:cover;background-position:center}@media(max-width:760px){#rendersBtn{font-size:11px;padding:6px 2px}.header-actions{gap:8px}.renders-dialog{padding:18px}.renders-dialog .source-head{display:block}.renders-dialog>img{margin-top:14px}.renders-dialog .source-head select{max-width:100%}}

.header-actions .action-full,.header-actions .action-short{padding:0}.action-short{display:none}.header-actions button,.brand{white-space:nowrap}@media(max-width:760px){.brand{flex-shrink:0}.header-actions{gap:6px;flex-shrink:0}.header-actions .action-full{display:none}.header-actions .action-short{display:inline}.header-actions .text-button{padding:6px 3px}.header-actions .mobile-notes{padding:6px 3px}}@media(max-width:370px){.header{padding:0 12px}.brand .mark{display:none}}

/* User-approved PDF images and current model renders retain distinct provenance. */
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 15px}.gallery-source{display:flex;flex-shrink:0;border:1px solid #ccd0c6;border-radius:5px;padding:3px;background:#eeeee6}.gallery-source button{padding:8px 18px;font-size:12px;border-radius:3px;white-space:nowrap}.gallery-source button.active{background:#304b40;color:#fff}.gallery-toolbar>span{font-size:11px;line-height:1.6;color:#738072}.renders-dialog .source-head{justify-content:space-between}.renders-dialog .source-head select{max-width:100%}.document-links{display:flex;flex-wrap:wrap;gap:8px 22px}.material-board>span{line-height:1.7}.material-board .swatches .oak{background-image:url('assets/pbr/oak_veneer_01_Diffuse.jpg');background-position:center 70%;background-size:300%}.material-board .swatches .walnut{background-image:none;background-color:#252820}.material-board .swatches .stone{background-image:none;background-color:#ded7c4}.material-board .swatches .linen{background-color:#e6e0d2}.renders-dialog>img{max-height:63dvh}@media(max-width:760px){.gallery-toolbar{align-items:flex-start;flex-direction:column;gap:9px;margin-top:16px}.gallery-toolbar>span{font-size:10px}.gallery-source{width:100%}.gallery-source button{flex:1;min-height:36px}.renders-dialog>img{max-height:54dvh;margin-top:8px}.renders-dialog h2{font-size:21px}.document-links{gap:5px 17px}}

/* Desktop exploration keeps the apartment as the interface. */
.explore-button{display:flex;align-items:center;gap:9px;padding:10px 15px;border:1px solid #cad1c4;border-radius:5px;font-size:21px;background:#edf0e6}.explore-button span{font-size:12px;letter-spacing:.5px}.explore-button:hover{background:#284b43;color:#fff}.sidebar .facts{border-top:0;padding-top:3px}.explore-hud{display:none;pointer-events:none}.explore-pause[hidden],.explore-help[hidden],.interaction-prompt[hidden]{display:none!important}
.immersive .header,.immersive .sidebar{display:none!important}.immersive .layout{display:block;height:100dvh}.immersive .stage{width:100vw;height:100dvh}.immersive .stage>.view-caption,.immersive .stage>.stage-tools,.immersive .stage>.labels,.immersive .stage>.orientation,.immersive .stage>.section-control,.immersive .stage>.bottom-bar,.immersive .stage>.walk-pad,.immersive .stage>.walk-badge{display:none!important}.immersive .minimap{display:none!important;top:28px;bottom:auto;right:28px;pointer-events:none;opacity:.85}.immersive.show-explore-map .minimap{display:block!important}.immersive .minimap-head small{display:none}.immersive .explore-hud{display:block;position:absolute;inset:0;color:#fff;text-shadow:0 1px 4px #0008}.reticle{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #163a3270,0 0 5px #0005;transform:translate(-50%,-50%);transition:width .12s,height .12s}.reticle.has-target{width:7px;height:7px;background:#f3e8cf}.interaction-prompt{position:absolute;left:50%;top:calc(50% + 27px);transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13px;white-space:nowrap;background:#15241f8f;border:1px solid #ffffff18;border-radius:5px;backdrop-filter:blur(6px)}kbd{font:11px 'Avenir Next',sans-serif;border:1px solid #ffffff70;border-radius:3px;padding:4px 6px;min-width:24px;text-align:center}.explore-help{position:absolute;right:30px;bottom:30px;width:270px;padding:23px;background:#172a25e8;border:1px solid #ffffff25;border-radius:7px;backdrop-filter:blur(10px);font-size:12px}.explore-help strong{letter-spacing:2px;font-weight:500}.explore-help dl{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:20px 0}.explore-help dt{color:#d6decf}.explore-help dd{margin:0;text-align:right;color:#b9c4b7}.explore-help small{color:#9aac9e}.explore-paused .explore-hud,.explore-paused .minimap{display:none!important}.explore-pause{position:absolute;inset:0;z-index:12;background:#10251e6e;backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px}.pause-panel{width:440px;max-width:100%;max-height:94dvh;overflow:auto;background:#f6f4ecf5;color:#2b4037;padding:28px 34px;border:1px solid #ffffff80;border-radius:10px;box-shadow:0 25px 100px #0b17164d}.pause-heading{display:flex;justify-content:space-between;color:#7c8878;font-size:10px;letter-spacing:1px}.pause-panel h2{font-family:'Songti SC',serif;letter-spacing:3px;font-weight:400;font-size:29px;margin:21px 0 7px}.pause-panel p{color:#8a9081;font-size:11px;margin:0 0 23px}.pause-primary{display:flex;gap:10px}.pause-primary button{padding:13px 18px;border:1px solid #cdd2c3;border-radius:4px;font-size:12px}.pause-primary button:first-child{flex:1;text-align:left;display:flex;justify-content:space-between;background:#2e4b3e;color:#fff;border-color:#2e4b3e}.pause-divider{height:1px;background:#dfe1d5;margin:20px 0}.pause-setting{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:12px;margin:15px 0;color:#566550}.pause-setting output{font-size:11px;font-variant-numeric:tabular-nums;color:#82907a}.pause-setting input{grid-column:1/-1;width:100%;height:3px;accent-color:#3b5e49;margin:3px 0 6px}.time-setting{align-items:center}.segmented{display:flex;border:1px solid #cdd2c3;padding:3px;border-radius:5px}.segmented button{padding:6px 17px;font-size:11px;border-radius:3px}.segmented button[aria-pressed=true]{background:#dce3d3;color:#2c4b39}.light-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-top:17px}.light-heading select{font-size:11px;padding:6px 9px;border:1px solid #cdd2c3;background:transparent;border-radius:4px;color:#687761}.room-circuits{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.room-circuits button{padding:8px 12px;font-size:11px;border:1px solid #cdd2c3;border-radius:4px;color:#86917d}.room-circuits button[aria-pressed=true]{color:#34573f;background:#e4e9da}.room-circuits button::before{content:'○';margin-right:6px}.room-circuits button[aria-pressed=true]::before{content:'●';color:#80946c}.pause-footer{display:flex;justify-content:space-between;align-items:center;margin-top:22px;font-size:9px;color:#8c9581;gap:10px}.pause-footer button{padding:0;font-size:10px;color:#77846a;border-bottom:1px solid #b4bda7;padding-bottom:3px}.immersive .toast{bottom:42px;max-width:80%;z-index:14}.immersive canvas{cursor:none}.explore-paused canvas{cursor:default}@media(max-width:1100px){.explore-button{padding:8px 10px}.header-actions{gap:13px}}@media(max-height:800px){.pause-panel{padding:20px 30px}.pause-panel h2{margin-top:15px}.pause-divider{margin:14px 0}.pause-setting{margin:12px 0}.pause-panel p{margin-bottom:18px}}

.lighting-scenes{margin:18px 0 14px;font-size:12px;color:#566550}.lighting-scenes[hidden]{display:none}.scene-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.scene-buttons button{padding:10px 8px;border:1px solid #cdd2c3;border-radius:4px;font-size:11px;color:#708069}.scene-buttons button[aria-pressed=true]{background:#e0e7d7;border-color:#b7c3aa;color:#2e4b3e}.lighting-scenes small{display:block;margin-top:9px;color:#8a9381;font-size:10px;line-height:1.6}

.compatibility-options[hidden]{display:none}.compatibility-options{margin-top:16px;padding:12px 14px;border:1px solid #cdd2c3;border-radius:5px;background:#e9ecdf}.compatibility-options p{font-size:11px;line-height:1.8;margin:0 0 8px;color:#63735d}.compatibility-options button{font-size:11px;padding:4px 0;color:#34573f;text-decoration:underline;text-underline-offset:3px}
