*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;font-family:system-ui,"Microsoft YaHei",sans-serif;color:#fff;background:#24352f}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}#panorama{position:absolute;inset:0}header{position:absolute;top:0;left:0;right:0;height:84px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#14221b91,transparent);pointer-events:none}.brand{display:flex;align-items:center;gap:14px;font-family:Georgia,serif;font-size:35px;color:white;text-decoration:none;pointer-events:auto}.brand span{font:12px system-ui;letter-spacing:2px}.tag{font-size:11px;letter-spacing:2px}aside{position:absolute;left:28px;top:104px;width:210px;padding:22px 16px 15px;background:#20372feb;backdrop-filter:blur(16px);border:1px solid #ffffff22;border-radius:16px;max-height:calc(100% - 180px);overflow:auto;box-shadow:0 15px 50px #17261e33}.intro{padding:0 8px 18px}.intro small{font-size:9px;letter-spacing:3px;color:#c5cdb5}.intro h1{font-size:25px;font-weight:400;letter-spacing:4px;margin:12px 0}.intro p{font-size:11px;color:#bdc7c0;margin:0}nav{display:flex;flex-direction:column;gap:5px}.room{display:flex;align-items:center;gap:12px;width:100%;padding:6px;text-align:left;border:1px solid transparent;border-radius:9px;color:#d5dfd7;background:transparent;font-size:12px;transition:.2s}.room img{width:52px;height:35px;border-radius:5px;object-fit:cover;opacity:.65}.room:hover{background:#ffffff12}.room[aria-current=true]{background:#e8ecdf;color:#243d31;border-color:#e8ecdf}.room[aria-current=true] img{opacity:1}.room i{margin-left:auto;font-style:normal;opacity:.5;font-size:10px}.kitchen{display:block;color:#c7d3c5;text-decoration:none;font-size:11px;padding:16px 8px 2px}.scene-title{position:absolute;left:275px;bottom:64px;text-shadow:0 2px 15px #000b;pointer-events:none}.scene-title small{font-size:10px;letter-spacing:3px}.scene-title h2{font-size:40px;font-weight:400;letter-spacing:7px;margin:10px 0}.scene-title p{font-size:12px;letter-spacing:1px}.controls{position:absolute;right:28px;bottom:75px;display:flex;flex-direction:column;gap:8px}.controls button{width:42px;height:42px;border-radius:50%;border:1px solid #ffffff77;background:#20372fbf;color:white;font-size:23px;backdrop-filter:blur(12px)}.controls button:hover{background:#45604e}footer{position:absolute;bottom:0;left:0;right:0;padding:13px 30px;display:flex;justify-content:space-between;background:#17291f8c;font-size:10px;color:#e3e7df}footer a{color:inherit;text-decoration:none}#status{position:absolute;left:50%;top:22px;transform:translateX(-50%);background:#20372fec;border-radius:24px;padding:10px 22px;font-size:12px;pointer-events:none}#status:empty{display:none}#error{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);background:#f3f0e8;color:#253b30;padding:32px;border-radius:15px;box-shadow:0 16px 70px #0005;min-width:260px;text-align:center}#error p{font-size:13px}#retry{border:0;border-radius:8px;padding:10px 24px;background:#284b39;color:white}.pnlm-hotspot-base.pnlm-scene{background:#f5f3e5e6;border:5px solid #3c554757;border-radius:50%;box-shadow:0 0 0 7px #ffffff38;width:28px;height:28px}.pnlm-hotspot-base.pnlm-scene:after{content:'↗';display:block;color:#234330;text-align:center;font-size:17px;line-height:18px}.pnlm-tooltip span{font-family:system-ui;background:#20372f;border-radius:6px;font-size:12px}.pnlm-load-box{display:none!important}:focus-visible{outline:3px solid #e0be79;outline-offset:3px}[hidden]{display:none!important}@media(max-width:700px){header{height:66px;padding:18px}.brand{font-size:29px;gap:10px}.brand span{font-size:10px}.tag{display:none}aside{top:auto;bottom:40px;left:12px;right:12px;width:auto;padding:8px;border-radius:14px;max-height:none;overflow:visible}.intro,.kitchen{display:none}nav{flex-direction:row;overflow-x:auto;gap:6px;padding:2px;scrollbar-width:none}.room{flex:0 0 69px;flex-direction:column;gap:5px;padding:5px;font-size:10px}.room img{width:55px;height:33px}.room i{display:none}.scene-title{left:21px;bottom:152px}.scene-title h2{font-size:30px;margin:6px 0}.scene-title p{font-size:10px}.controls{right:16px;bottom:153px;gap:7px}.controls button{height:36px;width:36px;font-size:20px}footer{padding:10px 12px;font-size:8px}.scene-title small{font-size:9px}#status{top:76px;max-width:90%;white-space:nowrap}#error{z-index:5}.pnlm-hotspot-base.pnlm-scene{width:30px;height:30px}}
.pnlm-panorama-info{display:none!important}aside{scrollbar-width:thin;scrollbar-color:#6b7f6e transparent}@media(min-width:701px) and (max-height:800px){aside{top:87px;padding-top:15px;max-height:calc(100% - 145px)}.intro{padding-bottom:12px}.intro h1{margin:8px 0;font-size:23px}.room{padding:4px}.room img{height:29px;width:45px}.kitchen{padding-top:10px}}
.immersive aside,.immersive header,.immersive footer,.immersive .scene-title{display:none}.immersive .controls{bottom:28px}

/* Compact layout after removing helper text and tour footer. */
.scene-title{bottom:32px}.controls{bottom:35px}@media(max-width:700px){aside{bottom:max(12px,env(safe-area-inset-bottom))}.scene-title{bottom:112px}.controls{bottom:121px}}

/* Touch layout, dynamic browser bars, safe areas and compact landscape. */
html,body{overscroll-behavior:none}body{height:100%;height:100dvh}.controls button,.room{touch-action:manipulation}#rooms{overscroll-behavior-x:contain}
@media(max-width:700px),(max-height:500px){
 header{height:calc(58px + env(safe-area-inset-top,0px));padding:calc(12px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 8px max(14px,env(safe-area-inset-left,0px))}
 .brand{font-size:26px;gap:9px}.brand span{font-size:10px;letter-spacing:1px}.tag,.intro,.kitchen{display:none}
 aside{top:auto;bottom:max(12px,env(safe-area-inset-bottom,0px));left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:auto;max-height:none;padding:7px;border-radius:16px;overflow:hidden}
 #rooms{display:flex;flex-direction:row;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px;scrollbar-width:none;touch-action:pan-x;scroll-snap-type:x proximity;scroll-padding-inline:2px;-webkit-overflow-scrolling:touch}
 #rooms::-webkit-scrollbar{display:none}.room{width:70px;min-height:62px;flex:0 0 70px;flex-direction:column;gap:4px;padding:5px;font-size:11px;scroll-snap-align:start}.room img{width:56px;height:32px;object-fit:cover}.room span{white-space:nowrap}.room i{display:none}
 .scene-title{left:max(18px,env(safe-area-inset-left,0px));bottom:calc(max(12px,env(safe-area-inset-bottom,0px)) + 98px);max-width:calc(100% - 104px)}.scene-title small{font-size:9px;letter-spacing:2px}.scene-title h2{font-size:28px;line-height:1.25;letter-spacing:4px;margin:5px 0 0}
 .controls{top:auto;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(max(12px,env(safe-area-inset-bottom,0px)) + 100px);flex-direction:column;gap:8px}.controls button{width:44px;height:44px;min-width:44px;min-height:44px;font-size:23px;line-height:1;border-radius:50%}
 #status{top:calc(66px + env(safe-area-inset-top,0px));max-width:calc(100% - 30px);font-size:11px;padding:8px 14px;white-space:normal;text-align:center}#error{min-width:0;width:min(320px,calc(100% - 32px));padding:24px}
 .pnlm-hotspot-base.pnlm-scene{width:44px;height:44px;border-width:5px;box-shadow:0 0 0 5px #ffffff38}.pnlm-hotspot-base.pnlm-scene:after{font-size:22px;line-height:34px}
 .immersive .controls{bottom:max(16px,env(safe-area-inset-bottom,0px))}
}
@media(max-height:500px) and (min-width:480px){
 header{height:48px;padding-top:max(8px,env(safe-area-inset-top,0px))}.brand{font-size:24px}
 .controls{top:max(8px,env(safe-area-inset-top,0px));bottom:auto;right:max(12px,env(safe-area-inset-right,0px));flex-direction:row;gap:6px}
 aside{padding:5px;bottom:max(8px,env(safe-area-inset-bottom,0px))}.room{min-height:52px;flex-basis:66px;width:66px;padding:4px;gap:2px}.room img{height:24px;width:54px}.scene-title{bottom:calc(max(8px,env(safe-area-inset-bottom,0px)) + 77px)}.scene-title h2{font-size:24px}.immersive .controls{top:max(8px,env(safe-area-inset-top,0px));bottom:auto}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

#rooms{user-select:none;-webkit-user-select:none}#rooms img{-webkit-user-drag:none}#rooms.is-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing}#rooms.is-dragging *{cursor:grabbing}@media(max-width:700px),(max-height:500px){#rooms{cursor:grab}}
