@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-regular.ttf) format("truetype")}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#342f28;background:#d5c9b5;font-synthesis:none;font-weight:400;-webkit-font-smoothing:antialiased;--ivory:#f5f2ed;--ink:#342f28;--serif:"Cormorant Garamond","Songti SC","STSong",Georgia,serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:14px;cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #d8bc89;outline-offset:5px}button{border:0}button svg{stroke-width:1.5}a{color:inherit;text-decoration:none}.app{width:100%;height:100dvh;position:relative;isolation:isolate}.scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:0;cursor:grab}.scene:active{cursor:grabbing}.scene-transition{position:absolute;inset:0;pointer-events:none;background:#ede7df;opacity:0;transition:opacity .5s}.scene-transition.visible{animation:room-transition .8s ease}@keyframes room-transition{0%,to{opacity:0}35%,50%{opacity:.72}}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:36px 48px;pointer-events:none;z-index:3;color:#fffdf7;text-shadow:0 1px 7px #29231655}.topbar>*{pointer-events:auto}.brand{width:185px;display:flex;flex-direction:column;align-items:center;line-height:1}.roofline{width:160px;height:30px;stroke:currentColor;stroke-width:1.3;margin-bottom:8px}.brand>span{font:400 39px/.9 var(--serif);letter-spacing:8px;padding-left:7px}.brand>small{font:15px/1.4 Songti SC,serif;letter-spacing:5px;margin:12px 0 0 4px}.mode-switch{position:absolute;left:50%;transform:translate(-50%);display:flex;padding:4px;background:#c5b79c39;border:1px solid #f8f4ed80;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:30px;box-shadow:0 3px 14px #29201508;text-shadow:none}.mode-switch button{height:40px;min-width:146px;padding:0 27px;letter-spacing:1.2px;color:#fffef7;background:transparent;border-radius:25px;transition:background .2s,color .2s}.mode-switch button.selected{background:var(--ivory);color:#352f28;box-shadow:0 1px 5px #44372215}.top-tools{display:flex;align-items:center;gap:26px;padding-top:2px}.light-control{position:relative}.light-button{display:flex;align-items:center;gap:11px;color:inherit;background:none;padding:7px 0;letter-spacing:2px;text-shadow:inherit}.light-button svg{width:28px;height:28px}.circle-button{background:#e8dcca30;border:1px solid #fff7dd90;border-radius:50%;width:44px;height:44px;color:inherit;display:grid;place-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.circle-button svg{width:23px;height:23px}.light-options{position:absolute;top:55px;right:-25px;width:134px;padding:7px;border-radius:13px;background:#f5f2edf2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 10px 40px #2b211621;color:var(--ink);text-shadow:none}.light-options button{display:flex;gap:12px;align-items:center;width:100%;padding:12px 10px;border-radius:7px;background:transparent}.light-options button:hover,.light-options button.active{background:#e4daca}.space-title{position:absolute;bottom:138px;left:52px;pointer-events:none;max-width:350px;color:#2d2c26;text-shadow:0 1px 15px #eee7da66}.space-title h1{font:400 clamp(34px,3.4vw,51px)/1.25 var(--serif);letter-spacing:2px;margin:0 0 16px}.space-title p{font-size:13px;letter-spacing:.8px;line-height:1.8;margin:0;max-width:260px}.space-rail{position:absolute;left:53%;transform:translate(-50%);bottom:66px;display:flex;gap:10px;align-items:flex-end;padding:5px;max-width:calc(100vw - 72px);scrollbar-width:none}.space-rail::-webkit-scrollbar{display:none}.space-item{width:clamp(90px,8.3vw,124px);padding:0;flex-shrink:0;border:1px solid #fff9efaa;border-radius:7px;background:#e6ded286;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden;box-shadow:0 3px 16px #271c1626;transition:transform .22s,border-color .22s;color:#fffaf1}.space-item:hover{transform:translateY(-6px);border-color:#fff}.space-item.active{outline:2px solid #fdf9ef;outline-offset:3px;background:#f6f2ec;color:#302d27}.thumbnail{display:block;height:clamp(55px,5.65vw,85px);background:#b4ab9b;overflow:hidden}.thumbnail img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .4s}.space-item:hover img{transform:scale(1.07)}.room-name{display:block;padding:9px 3px;font-size:13px;letter-spacing:1px;font-weight:400}.bottom-tools{position:absolute;right:38px;bottom:42px;display:flex;flex-direction:column;align-items:center;gap:19px}.plan-button{width:80px;height:80px;display:grid;place-items:center;border-radius:50%;background:#f7f3eee6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);outline:1px solid #fffbef99;outline-offset:4px;box-shadow:0 3px 25px #271e1721}.plan-button svg{width:46px;height:46px;stroke:#292b25;stroke-width:1.3}.help-button{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#f4eddee0;box-shadow:0 3px 18px #261c1911}.help-button svg{width:25px;height:25px;stroke-width:1.3}.interaction-hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);font-size:12px;letter-spacing:1.5px;color:#fff8ec;text-shadow:0 1px 7px #251b17ab;margin:0;white-space:nowrap;pointer-events:none}.mobile-hint{display:none}.reticle{position:absolute;left:50%;top:50%;width:5px;height:5px;border:1px solid #ffffffee;border-radius:50%;pointer-events:none;box-shadow:0 0 4px #1b1b1b55}.walking .space-title{opacity:0;transition:opacity .3s}.joystick{position:absolute;left:40px;bottom:170px;width:102px;height:102px;display:none;align-items:center;justify-content:center;border:1px solid #fff8;background:#eae4d738;border-radius:50%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);touch-action:none}.joystick>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f3eee9d9;color:#534c3f;pointer-events:none}.loading-screen{position:absolute;inset:0;background:#eee8dc;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:4;color:#63523c}.loading-mark{font:400 68px/1 var(--serif);letter-spacing:18px;padding-left:18px}.loading-screen>p{margin-top:25px;font-family:var(--serif);font-size:18px;letter-spacing:3px}.loading-line{width:240px;height:1px;background:#c7bead;margin-top:24px}.loading-line>span{display:block;height:100%;background:#776348;transition:width .4s}.loading-screen>small{display:flex;justify-content:space-between;width:240px;font-size:10px;letter-spacing:1.5px;color:#8f816c;margin-top:15px}.retry-button{display:flex;gap:10px;align-items:center;margin-top:16px;padding:13px 24px;background:#78684e;color:#fff;border-radius:5px}.loading-screen h2{font:400 30px var(--serif)}.panel-backdrop{position:absolute;inset:0;z-index:5;background:#211c143f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.panel{position:relative;width:min(580px,100%);max-height:90dvh;overflow:auto;padding:43px 36px 25px;background:#f4efe6f5;border:1px solid #fff7ed;border-radius:18px;box-shadow:0 25px 90px #14120f35;outline:0}.panel h2{font:400 30px/1.4 var(--serif);margin:0 30px 11px 0}.panel-intro{font-size:13px;line-height:1.8;color:#8a7c67;margin:0 0 20px}.panel-close{position:absolute;right:17px;top:17px;display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#e7ddce}.panel-close svg{width:18px;height:18px}.floorplan{display:block;width:100%;margin-top:15px}.plan-room{cursor:pointer;outline:none}.plan-room rect{fill:#ebe4d9;transition:fill .2s}.plan-room:hover rect,.plan-room:focus-visible rect{fill:#d8cbb6}.plan-room.active rect{fill:#d8c8ad}.plan-room text{text-anchor:middle;fill:#6d5f4c;font-size:14px;pointer-events:none}.plan-position{pointer-events:none}.plan-sea{fill:#879c9b;font-size:11px;text-anchor:middle}.help-row{display:flex;gap:21px;padding:20px 0;border-top:1px solid #ded4c5}.help-row>svg{flex-shrink:0;margin-top:4px;color:#8c7654;stroke-width:1.5}.help-row h3{font-size:14px;font-weight:500;margin:0 0 8px}.help-row p{font-size:13px;line-height:1.8;color:#8d806c;margin:0}.help-note{font-size:12px;line-height:1.8;padding:15px 18px;background:#e9e0d1;border-radius:8px;color:#81725d}@media(max-width:1250px){.space-title{bottom:193px;left:35px}.space-title h1{font-size:38px}.topbar{padding:28px 32px}.brand{width:151px}.brand>span{font-size:32px}.brand>small{font-size:12px}.roofline{width:134px;height:25px}.mode-switch button{min-width:120px;padding:0 17px}.space-rail{left:50%;bottom:57px;gap:9px}.bottom-tools{right:26px;bottom:47px}.plan-button{width:62px;height:62px}.plan-button svg{width:36px;height:36px}.help-button{width:30px;height:30px}.bottom-tools{gap:14px}.interaction-hint{bottom:18px}}@media(max-width:760px){.topbar{padding:23px 22px}.brand{width:112px}.roofline{height:19px;width:103px;margin-bottom:6px}.brand>span{font-size:25px;letter-spacing:5px;padding-left:5px}.brand>small{font-size:10px;letter-spacing:3px;margin-top:9px}.top-tools{gap:14px}.light-button{gap:7px;font-size:12px;letter-spacing:1px}.light-button svg{width:22px;height:22px}.circle-button{width:35px;height:35px}.circle-button svg{width:18px;height:18px}.mode-switch{top:117px;padding:3px}.mode-switch button{min-width:113px;height:34px;font-size:12px;letter-spacing:.6px}.space-title{left:25px;bottom:183px;max-width:260px}.space-title h1{font-size:32px;margin-bottom:9px}.space-title p{font-size:11px}.space-rail{left:0;right:0;transform:none;max-width:none;padding:8px 25px 9px;bottom:42px;overflow-x:auto;gap:10px;scroll-padding:25px}.space-item{width:84px}.thumbnail{height:57px}.room-name{font-size:11px;padding:8px 3px}.bottom-tools{right:23px;bottom:181px;gap:15px}.plan-button{width:48px;height:48px;outline-offset:3px}.plan-button svg{width:29px;height:29px}.help-button{width:28px;height:28px}.help-button svg{width:21px;height:21px}.interaction-hint{bottom:max(19px,env(safe-area-inset-bottom));font-size:10px;letter-spacing:1px}.joystick{display:flex;left:25px;bottom:185px;width:91px;height:91px}.mobile-hint{display:inline}.desktop-hint{display:none}.panel{padding:36px 24px 18px;border-radius:14px}.panel h2{font-size:25px}.loading-mark{font-size:53px;letter-spacing:13px}.loading-screen>p{font-size:16px}.panel-backdrop{padding:16px}.help-row{gap:15px}.light-options{right:0;top:46px}}@media(max-height:540px)and (min-width:761px){.topbar{padding-top:17px}.brand>small{display:none}.space-title{bottom:132px}.space-title h1{font-size:30px}.space-rail{bottom:36px}.thumbnail{height:47px}.room-name{padding:5px}.interaction-hint{bottom:10px}.bottom-tools{bottom:30px}.space-title p{font-size:11px}.plan-button{width:48px;height:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.quality-button{display:flex;align-items:center;gap:8px;background:#65574344;border:1px solid #fff7;border-radius:22px;padding:10px 15px;color:#fffdf7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-size:12px;white-space:nowrap}.quality-button.enabled{background:#f6f1e9;color:#59472e;border-color:#fff}.quality-notice{position:absolute;top:114px;right:40px;padding:10px 15px;border-radius:8px;background:#f5efe8e8;font-size:12px}.top-tools{gap:18px}@media(max-width:760px){.quality-button{position:absolute;right:22px;top:79px;padding:7px 11px;font-size:10px}.quality-button svg{width:15px}.quality-notice{top:163px;right:20px;max-width:calc(100% - 40px)}}.topbar:before{content:"";position:absolute;inset:0 0 -35px;background:linear-gradient(#342b193d,transparent);pointer-events:none;z-index:-1}.space-title{color:#f9f5ec;text-shadow:0 1px 12px #302719b0}.quality-hint{color:#fff5df}@media(max-width:760px){.quality-hint{display:none}}.tour-button{display:flex;align-items:center;gap:8px;background:#f4efe7ee;padding:12px 16px;border-radius:24px;box-shadow:0 3px 16px #271c1626;font-size:12px;white-space:nowrap}.tour-button[aria-pressed=true]{background:#46594b;color:#fff}@media(max-width:760px){.tour-button{padding:10px;gap:5px;font-size:10px}}
