*{box-sizing:border-box} :root{color-scheme:dark;--cream:#eee4cc;--muted:#c5c3b6;--olive:#abb88b;--glass:rgba(32,35,27,.66)}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#191d18;color:var(--cream);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,#viewport:focus-visible{outline:2px solid #efe4bc;outline-offset:4px}button{transition:background .18s,color .18s}button:hover{background:rgba(238,228,204,.14)}button:disabled{opacity:.3;cursor:default}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}#app{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate}#viewport,#stage{position:absolute;inset:0;overflow:hidden}#viewport{touch-action:none;cursor:grab;outline:none}#viewport.dragging{cursor:grabbing}.world{position:absolute;top:50%;left:50%;transform-origin:0 0;will-change:transform;transition:opacity .4s;opacity:0}.world.visible{opacity:1}.world img{width:100%;height:100%;display:block;pointer-events:none;user-select:none}.hotspot{position:absolute;z-index:2;transform:translate(-50%,-50%) scale(var(--inverse,1));transform-origin:50% 50%;display:flex;align-items:center;gap:9px;padding:6px 13px 6px 6px;white-space:nowrap;background:rgba(25,32,23,.79);border:1px solid rgba(240,232,200,.38);border-radius:30px;color:#fff9e8;box-shadow:0 3px 20px #0003;font-size:13px;min-height:40px;touch-action:manipulation}.hotspot span{display:grid;place-items:center;border-radius:50%;width:28px;height:28px;background:#c7d0af;color:#303c25;font-size:18px}.hotspot:hover{background:#405136}.hotspots-off .hotspot{display:none}.shade{position:absolute;left:0;right:0;pointer-events:none}.shade-top{top:0;height:180px;background:linear-gradient(#11180dc9,transparent)}.shade-bottom{bottom:0;height:480px;background:linear-gradient(transparent,#11160e9c 40%,#11160ff2)}header{position:absolute;top:0;left:0;right:0;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--cream)}.seal{font-family:serif;width:44px;height:48px;border:1px solid #daceaa;display:grid;place-items:center;font-size:30px;border-radius:3px}.brand strong{display:block;font-family:"STKaiti","KaiTi",serif;font-size:27px;letter-spacing:5px;font-weight:500}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:5px;color:#ddd9c7}.top-right{display:flex;align-items:center;gap:12px}.mode{font-size:12px;margin-right:10px;letter-spacing:1px;display:flex;gap:8px;align-items:center}.mode i{width:6px;height:6px;border-radius:50%;background:#c1cc9e}.glass{background:var(--glass);backdrop-filter:blur(14px);border:1px solid #e9e0bf29}.icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}.edge-arrow{position:absolute;top:45%;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}#prev{left:24px}#next{right:24px}.scene-info{position:absolute;left:38px;bottom:226px;max-width:550px;pointer-events:none;text-shadow:0 2px 14px #0005}.eyebrow{font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:10px;color:#e6dcbc}.eyebrow #sceneIndex{font-size:15px}.rule{width:28px;height:1px;background:#c6c6a8}h1{font-size:34px;letter-spacing:3px;font-weight:400;margin:13px 0 10px}.scene-info p{font-size:13px;line-height:1.8;margin:0;color:#e0dfcf;max-width:440px}.tools{position:absolute;right:36px;bottom:236px;display:flex;align-items:center;border-radius:32px;padding:6px;gap:2px}.tools button{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:24px}.tools button[aria-pressed=true]{background:#b7c39b;color:#2c3526}.tools output{font-size:12px;width:46px;text-align:center;font-variant-numeric:tabular-nums}.divider{height:20px;width:1px;background:#dedcc02b;margin:0 5px}#bottom{position:absolute;left:36px;right:36px;bottom:14px}.nav-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.nav-label{font-size:13px;letter-spacing:2px}.nav-label small{margin-left:12px;letter-spacing:0;font-size:11px;color:#c2c5b1}.nav-actions{display:flex;gap:20px}.nav-actions button{background:none;padding:7px 0;font-size:12px;color:#d1d4c0}.nav-actions button:hover{color:#fff}.nav-actions span{padding-left:8px}#sceneNav{display:flex;gap:12px;overflow-x:auto;padding:3px 2px 10px;scrollbar-width:thin;scrollbar-color:#84907555 transparent;scroll-behavior:smooth}.thumb{flex:1 0 115px;min-width:0;max-width:190px;border:1px solid #fff2;border-radius:6px;overflow:hidden;background:#242a20;padding:0;text-align:left;position:relative}.thumb img{width:100%;height:78px;object-fit:cover;display:block;opacity:.64;transition:opacity .2s}.thumb .caption{display:flex;align-items:center;gap:8px;padding:8px 9px;font-size:11px;white-space:nowrap}.thumb .number{font-size:9px;color:#adaf9a}.thumb[aria-current=true]{border-color:#e3dcba;box-shadow:0 0 0 1px #d9d3ad55}.thumb[aria-current=true] img,.thumb:hover img{opacity:1}.thumb[aria-current=true] .caption{background:#d3d5bc;color:#2c3527}.thumb[aria-current=true] .number{color:#6d785c}.footnote{display:flex;justify-content:space-between;color:#bfc4aa88;font-size:10px;letter-spacing:1px;margin-top:9px}.nav-collapsed #sceneNav{display:none}.nav-collapsed .scene-info{bottom:112px}.nav-collapsed .tools{bottom:126px}.nav-collapsed .shade-bottom{height:330px}#loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;background:#20271ee8;border:1px solid #d9d6ba44;padding:18px 24px;border-radius:8px;font-size:13px;pointer-events:none}#loading[hidden]{display:none}.spinner{width:18px;height:18px;border:2px solid #e0d4a933;border-top-color:#e0d4a9;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-panel{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);background:#262c22f5;border:1px solid #d2cfb255;padding:25px;border-radius:12px;max-width:90vw;width:460px;text-align:center}.error-panel h2{font-size:19px}.error-panel p{font-size:13px;line-height:1.8;color:#c6c9b6}.error-panel button,.primary{padding:12px 20px;background:#bfc9a6;color:#273224;border-radius:5px;margin:8px 3px;font-size:13px}.error-panel button+button{background:#3e4835;color:#ddd}#toast{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#252f23ed;padding:12px 20px;border-radius:28px;font-size:12px;text-align:center;max-width:88vw}dialog{background:#272d23;color:#e9e5d3;border:1px solid #a3ac8a66;border-radius:14px;max-width:min(620px,92vw);max-height:85dvh;padding:36px;box-shadow:0 24px 80px #0007}dialog::backdrop{background:#11180cc4;backdrop-filter:blur(6px)}dialog h2{font-weight:400;font-size:23px;line-height:1.6;margin:16px 0}dialog p{font-size:13px;line-height:1.8;color:#c5cbb6}.close{position:absolute;right:14px;top:10px;width:32px;height:32px;border-radius:50%;background:none;font-size:26px}dl{display:grid;grid-template-columns:60px 1fr;font-size:13px;gap:16px;line-height:1.8}dt{color:#d9d5b5}dd{margin:0;color:#c4cbb4}.disclosure{border-top:1px solid #d8d7b629;padding-top:18px;color:#aeb79f!important;font-size:12px!important}#planDialog{max-width:min(1050px,96vw);width:100%}#planDialog img{display:block;width:100%;height:auto;background:#f5f1e9;border-radius:5px}.clean-mode footer,.clean-mode .scene-info,.clean-mode .edge-arrow{display:none}.clean-mode .tools{bottom:24px;right:24px}.clean-mode .shade{display:none}
@media(min-width:1650px){.thumb img{height:96px}.scene-info{bottom:246px}.tools{bottom:260px}}
@media(max-width:760px){header{padding:20px 18px}.brand{gap:10px}.seal{width:33px;height:38px;font-size:24px}.brand strong{font-size:22px}.brand small{font-size:8px;letter-spacing:1px}.mode{display:none}.top-right{gap:8px}.icon{width:35px;height:35px}#bottom{left:18px;right:18px;bottom:max(12px,env(safe-area-inset-bottom))}.nav-label{font-size:12px}.nav-label small{display:none}.nav-actions{gap:15px}.nav-actions button{font-size:11px}#sceneNav{gap:9px}.thumb{flex:0 0 112px}.thumb img{height:65px}.thumb .caption{font-size:10px;padding:7px}.scene-info{left:22px;right:22px;bottom:245px;max-width:none}h1{font-size:25px;letter-spacing:2px;margin:9px 0}.eyebrow{font-size:8px;letter-spacing:1px}.scene-info p{font-size:11px;line-height:1.7;max-width:90%}.tools{left:20px;right:auto;bottom:181px;padding:4px}.tools button{width:33px;height:33px}.tools output{width:40px;font-size:11px}.tools svg{width:19px;height:19px}.footnote{font-size:8px;line-height:1.5;letter-spacing:0}.footnote span:first-child{display:none}.footnote span:last-child{margin-left:auto}.nav-heading{margin-bottom:8px}.edge-arrow{width:33px;height:33px;top:42%}#prev{left:10px}#next{right:10px}.hotspot{font-size:11px;gap:5px;min-height:34px}.hotspot span{width:24px;height:24px}.shade-bottom{height:420px}.nav-collapsed .scene-info{bottom:138px}.nav-collapsed .tools{bottom:80px}dialog{padding:28px 22px}dialog h2{font-size:20px}dl{grid-template-columns:46px 1fr;gap:12px;font-size:12px}}
@media(max-height:520px){.scene-info{bottom:155px}h1{font-size:23px}.scene-info p{display:none}.tools{bottom:150px}.thumb img{height:50px}header{padding:15px 24px}.brand small{display:none}#bottom{bottom:8px}.footnote{display:none}.nav-heading{margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Full spherical panorama viewer */
.pano-host{position:absolute;inset:0;opacity:0;transition:opacity .45s;background:#22261c}.pano-host.visible{opacity:1}
.pnlm-container{background:#22261c!important}.pnlm-load-box,.pnlm-panorama-info{display:none!important}
.pnlm-load-button,.pnlm-error-msg{font-family:inherit}
.tour-hotspot{width:auto!important;height:auto!important;background:none!important;cursor:pointer!important}
.pano-link{display:flex;align-items:center;gap:8px;white-space:nowrap;transform:translate(-50%,-50%);padding:6px 12px 6px 6px;border:1px solid #efe8c566;border-radius:26px;background:#242d20d9;color:#faf4df;font-size:12px;box-shadow:0 3px 16px #0003}
.pano-link span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#c6ceae;color:#33402a;font-size:18px}.pano-link:hover{background:#435536}
.hotspots-off .tour-hotspot{visibility:hidden!important;pointer-events:none!important}
.clean-mode .brand,.clean-mode #help,.clean-mode .mode{visibility:hidden}.clean-mode header{pointer-events:none}.clean-mode #fullscreen{pointer-events:auto;visibility:visible}
@media(max-width:760px){.pano-link{font-size:11px;gap:5px}.pano-link span{width:24px;height:24px}}
