*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,sans-serif;background:#000;-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#9f3037,#3e1216,#201014);display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity .8s ease}#loading-screen.fade-out{opacity:0;pointer-events:none}.loading-content{text-align:center;color:#fff}.loading-title{font-size:2rem;font-weight:700;letter-spacing:.3em;margin-bottom:.5rem;text-shadow:0 2px 10px rgba(0,0,0,.5)}.loading-subtitle{font-size:1rem;letter-spacing:.5em;opacity:.8;margin-bottom:2rem}.progress-bar{width:280px;height:4px;background:#fff3;border-radius:2px;overflow:hidden;margin:0 auto .8rem}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#d8a05e,#c96f4a);border-radius:2px;transition:width .3s ease}.progress-text{font-size:.85rem;opacity:.6;letter-spacing:.1em}#viewer-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;touch-action:none}#viewer-container canvas{cursor:grab;display:block}#viewer-container canvas:active{cursor:grabbing}#hotspot-layer{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.hotspot-info{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:auto;cursor:pointer;z-index:10;transition:opacity .2s ease}.hotspot-info:hover .hotspot-dot{transform:scale(1.3);background:#d8a05e}.hotspot-info:hover .hotspot-label{opacity:1;transform:translateY(0)}.hotspot-pulse{position:absolute;width:40px;height:40px;border-radius:50%;background:#d8a05e4d;animation:pulse 2s ease-out infinite;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.hotspot-dot{width:16px;height:16px;border-radius:50%;background:#d8a05e;border:2px solid #fff;box-shadow:0 0 10px #d8a05e99,0 0 20px #d8a05e4d;transition:transform .2s ease,background .2s ease;position:relative;z-index:2}.hotspot-label{margin-top:8px;padding:4px 12px;background:#000000bf;color:#d8a05e;font-size:.8rem;border-radius:12px;white-space:nowrap;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.5)}.hotspot-nav{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:auto;cursor:pointer;z-index:10;transition:opacity .2s ease}.hotspot-nav:hover .nav-arrow{transform:scale(1.2);background:#9f3037e6}.nav-arrow{width:48px;height:48px;border-radius:50%;background:#9f3037b3;border:2px solid rgba(216,160,94,.6);display:flex;align-items:center;justify-content:center;color:#d8a05e;font-size:1.4rem;font-weight:700;transition:transform .2s ease,background .2s ease;box-shadow:0 0 15px #9f303766;animation:navPulse 2.5s ease-in-out infinite}@keyframes navPulse{0%,to{box-shadow:0 0 15px #9f303766}50%{box-shadow:0 0 25px #9f3037b3,0 0 40px #d8a05e33}}.nav-label{margin-top:6px;padding:3px 10px;background:#000000b3;color:#d8a05e;font-size:.75rem;border-radius:10px;white-space:nowrap;letter-spacing:.05em}#info-popup{position:fixed;top:0;left:0;width:100%;height:100%;z-index:100;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}#info-popup.hidden{opacity:0;pointer-events:none}.popup-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009}.popup-card{position:relative;max-width:480px;width:90%;background:linear-gradient(135deg,#331013,#201014);border:1px solid rgba(216,160,94,.3);border-radius:12px;padding:2rem;color:#fff;box-shadow:0 10px 40px #00000080,0 0 30px #9f30374d;animation:popupIn .3s ease}@keyframes popupIn{0%{transform:scale(.9) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.popup-close{position:absolute;top:12px;right:16px;background:none;border:none;color:#fff9;font-size:1.5rem;cursor:pointer;transition:color .2s;line-height:1}.popup-close:hover{color:#d8a05e}.popup-title{font-size:1.2rem;color:#d8a05e;margin-bottom:1rem;padding-right:2rem;line-height:1.4;border-bottom:1px solid rgba(216,160,94,.2);padding-bottom:.8rem}.popup-text{font-size:.95rem;line-height:1.8;color:#ffffffe6;text-indent:2em}#scene-label{position:fixed;top:calc(env(safe-area-inset-top,0px) + 20px);left:50%;transform:translate(-50%);z-index:20;pointer-events:none}#scene-name{display:inline-block;padding:8px 24px;background:#0009;color:#d8a05e;font-size:1rem;letter-spacing:.2em;border-radius:20px;border:1px solid rgba(216,160,94,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .3s ease;text-shadow:0 1px 3px rgba(0,0,0,.5)}.hint-overlay{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:8px 20px;background:#0009;color:#ffffffb3;font-size:.8rem;border-radius:16px;z-index:20;pointer-events:none;animation:hintFade 4s ease forwards;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}@keyframes hintFade{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0;display:none}}@keyframes toastFade{0%{opacity:0;transform:translate(-50%) translateY(10px)}15%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1}to{opacity:0}}#audio-controls{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);left:calc(env(safe-area-inset-left,0px) + 20px);z-index:30;display:flex;flex-direction:row;gap:8px}.audio-btn{width:44px;height:44px;border-radius:50%;background:#0000008c;border:1px solid rgba(255,215,0,.35);color:#d8a05e;font-size:1.2rem;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:all .2s ease;margin:0;padding:0}.audio-btn:hover{background:#8b000080}.audio-btn.paused-state{border-color:#ffffff40;color:#fff6}#gyro-vr-btn{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);left:calc(env(safe-area-inset-left,0px) + 124px);z-index:30;width:44px;height:44px;border-radius:50%;background:#0000008c;border:1px solid rgba(255,215,0,.35);color:#d8a05e;font-size:1rem;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:all .3s ease;margin:0;padding:0}#gyro-vr-btn.active{border-color:#d8a05e;box-shadow:0 0 14px #ffd70073;background:#8b0000a6}#orientation-overlay{position:fixed;inset:0;z-index:700;display:flex;align-items:center;justify-content:center;background:#000000e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .3s ease}#orientation-overlay.visible{opacity:1;pointer-events:auto}.orient-card{text-align:center;padding:28px 36px;background:linear-gradient(160deg,#2a1114,#201014);border:1px solid rgba(216,160,94,.35);border-radius:16px;max-width:320px}.orient-icon{font-size:3rem;margin-bottom:12px;animation:orientShake 2s ease-in-out infinite}@keyframes orientShake{0%,to{transform:rotate(0)}25%{transform:rotate(-90deg)}50%{transform:rotate(-90deg)}75%{transform:rotate(-90deg)}}.orient-title{color:#d8a05e;font-size:1.3rem;font-weight:700;letter-spacing:.15em;margin-bottom:10px}.orient-desc{color:#ffffffa6;font-size:.85rem;line-height:1.8;margin-bottom:18px}.orient-continue-btn{padding:10px 32px;background:linear-gradient(135deg,#9f3037,#b0484d);color:#d8a05e;border:1px solid rgba(255,215,0,.5);border-radius:22px;font-size:.9rem;letter-spacing:.1em;cursor:pointer;font-weight:600}#intro-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:500;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}#intro-overlay.fade-out{opacity:0;pointer-events:none}.intro-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000d9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.intro-card{position:relative;max-width:420px;width:88%;max-height:85vh;overflow-y:auto;background:linear-gradient(160deg,#2a1114,#201014 40%,#120a0d);border:1px solid rgba(216,160,94,.35);border-radius:16px;padding:0;color:#fff;box-shadow:0 20px 60px #0009,0 0 40px #8b00004d;animation:introSlideUp .5s ease}@keyframes introSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.intro-header{text-align:center;padding:28px 24px 18px;border-bottom:1px solid rgba(255,215,0,.15)}.intro-badge{display:inline-block;padding:4px 16px;background:#ffd7001f;border:1px solid rgba(255,215,0,.3);border-radius:20px;color:#d8a05e;font-size:.75rem;letter-spacing:.2em;margin-bottom:12px}.intro-title{font-size:1.6rem;font-weight:700;color:#d8a05e;letter-spacing:.15em;line-height:1.4;text-shadow:0 2px 8px rgba(0,0,0,.5);margin:0}.intro-subtitle{font-size:.85rem;color:#ffffff8c;letter-spacing:.15em;margin-top:8px}.intro-body{padding:18px 24px}.intro-desc{font-size:.88rem;line-height:1.8;color:#fffc;text-indent:2em;margin-bottom:16px}.intro-highlights{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.intro-hl{padding:6px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:20px;font-size:.78rem;color:#ffffffbf;display:flex;align-items:center;gap:6px}.intro-hl span{font-size:1rem}.intro-footer{text-align:center;padding:16px 24px 24px;border-top:1px solid rgba(255,215,0,.15)}.intro-countdown{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:12px}.countdown-num{font-size:2.2rem;font-weight:700;color:#d8a05e;font-variant-numeric:tabular-nums;min-width:2ch;text-align:center}.countdown-text{font-size:.8rem;color:#ffffff80}.intro-start-btn{display:inline-block;padding:12px 36px;background:linear-gradient(135deg,#9f3037,#b0484d);color:#d8a05e;border:1px solid rgba(255,215,0,.5);border-radius:24px;font-size:.95rem;letter-spacing:.1em;cursor:pointer;transition:all .2s ease;font-weight:600}.intro-start-btn:disabled{opacity:.5;cursor:not-allowed}.intro-start-btn:not(:disabled):hover{background:linear-gradient(135deg,#b0484d,#b0484d);transform:scale(1.03)}@media (max-width: 768px){.loading-title{font-size:1.4rem;letter-spacing:.2em}.loading-subtitle{font-size:.85rem;letter-spacing:.3em}.progress-bar{width:220px}#scene-name{font-size:.85rem;padding:6px 16px}.popup-card{padding:1.5rem;max-width:90%}.popup-title{font-size:1rem}.popup-text{font-size:.85rem;line-height:1.7}.nav-arrow{width:40px;height:40px;font-size:1.2rem}.hotspot-dot{width:14px;height:14px}.hotspot-pulse{width:34px;height:34px}#audio-controls{flex-direction:row;gap:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);left:calc(env(safe-area-inset-left,0px) + 16px)}#gyro-vr-btn{bottom:calc(env(safe-area-inset-bottom,0px) + 16px);left:auto;right:calc(env(safe-area-inset-right,0px) + 50% - 22px)}}@media (max-height: 700px){.hint-overlay{bottom:100px}}#ui-back-btn{position:fixed;top:calc(env(safe-area-inset-top,0px) + 18px);right:calc(env(safe-area-inset-right,0px) + 18px);z-index:40;display:flex;align-items:center;gap:7px;padding:9px 18px 9px 14px;background:#0000008c;border:1px solid rgba(216,160,94,.45);border-radius:22px;color:#d8a05e;font-size:.82rem;letter-spacing:.08em;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .15s ease}#ui-back-btn:hover{background:#9f303799;border-color:#d8a05e}#ui-back-btn:active{transform:scale(.96)}#ui-back-btn.hidden{display:none}.ui-back-icon{font-size:1.05rem;line-height:1;margin-top:-1px}.ui-back-label{white-space:nowrap}:root{--scene-bar-h: 186px}#scene-bar{position:fixed;left:24px;right:24px;bottom:9vh;z-index:35;background:#0a0806d1;border:1px solid rgba(216,160,94,.3);border-radius:16px;box-shadow:0 10px 36px #00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translateY(120%);opacity:0;visibility:hidden;transition:transform .32s cubic-bezier(.22,.8,.36,1),opacity .25s ease,visibility .32s;pointer-events:none}#scene-bar.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.scene-bar-head{display:flex;align-items:center;justify-content:space-between;padding:8px 16px 6px}.scene-bar-title{color:#d8a05e;font-size:.78rem;letter-spacing:.28em}.scene-bar-collapse{background:none;border:1px solid rgba(216,160,94,.35);border-radius:12px;color:#d8a05ed9;font-size:.68rem;padding:3px 12px;cursor:pointer;letter-spacing:.1em;transition:background .2s ease,border-color .2s ease}.scene-bar-collapse:hover{background:#d8a05e1f;border-color:#d8a05e}.scene-bar-strip{display:flex;gap:14px;padding:6px 18px 14px;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(216,160,94,.4) transparent}.scene-bar-strip::-webkit-scrollbar{height:4px}.scene-bar-strip::-webkit-scrollbar-thumb{background:#d8a05e66;border-radius:2px}.scene-thumb{flex:0 0 auto;width:150px;cursor:pointer;user-select:none;-webkit-user-select:none;transition:transform .15s ease}.scene-thumb:hover{transform:translateY(-3px)}.scene-thumb-img{position:relative;width:150px;height:84px;border-radius:10px;overflow:hidden;border:1.5px solid rgba(255,255,255,.16);background:#2a2a2a;transition:border-color .2s ease,box-shadow .2s ease}.scene-thumb-img img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.scene-thumb-img.no-img{background:linear-gradient(160deg,#4a3a2a,#2a2018)}.scene-thumb-img.no-img:after{content:"全景待补";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#d8a05e8c;font-size:.78rem;letter-spacing:.1em}.scene-thumb-name{margin-top:7px;color:#ffffffd9;font-size:.8rem;line-height:1.35;text-align:center;height:2.2em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color .2s ease}.scene-thumb.active .scene-thumb-img{border-color:#d8a05e;box-shadow:0 0 10px #d8a05e73}.scene-thumb.active .scene-thumb-name{color:#d8a05e}#scene-bar-toggle{position:fixed;right:calc(env(safe-area-inset-right,0px) + 16px);bottom:calc(env(safe-area-inset-bottom,0px) + 9vh);z-index:36;display:flex;align-items:center;gap:6px;padding:9px 16px;background:#0000008c;border:1px solid rgba(216,160,94,.45);border-radius:20px;color:#d8a05e;font-size:.76rem;letter-spacing:.12em;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .15s ease}#scene-bar-toggle:hover{background:#9f303799;border-color:#d8a05e}#scene-bar-toggle:active{transform:scale(.95)}#scene-bar-toggle.hidden{display:none}.scene-bar-toggle-icon{font-size:.9rem;line-height:1}body.scene-bar-open #audio-controls,body.scene-bar-open #gyro-vr-btn{bottom:calc(env(safe-area-inset-bottom,0px) + 9vh + var(--scene-bar-h) + 12px)}@media (max-width: 768px){:root{--scene-bar-h: 168px}#ui-back-btn{top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);padding:7px 14px 7px 11px;font-size:.74rem}#scene-bar-toggle{right:calc(env(safe-area-inset-right,0px) + 12px);bottom:calc(env(safe-area-inset-bottom,0px) + 9vh);padding:8px 13px;font-size:.7rem}#scene-bar{left:10px;right:10px;bottom:8vh;border-radius:12px}.scene-thumb{width:128px}.scene-thumb-img{width:128px;height:72px}.scene-thumb-name{font-size:.72rem}.scene-bar-title{font-size:.7rem;letter-spacing:.2em}}#home-btn{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);left:calc(env(safe-area-inset-left,0px) + 176px);z-index:30;width:44px;height:44px;border-radius:50%;background:#0000008c;border:1px solid rgba(255,215,0,.35);color:#d8a05e;font-size:1.05rem;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:all .2s ease;margin:0;padding:0}#home-btn:hover{background:#8b000080}#home-btn:active{transform:scale(.94)}#hall-back-btn{position:fixed;top:max(14px,env(safe-area-inset-top));left:14px;z-index:650;background:linear-gradient(135deg,#9f3037eb,#b0484deb);color:#d8a05e;border:1px solid rgba(255,215,0,.45);border-radius:22px;padding:9px 18px;font-size:14px;font-weight:600;letter-spacing:.12em;cursor:pointer;font-family:inherit;box-shadow:0 4px 14px #00000059;backdrop-filter:blur(6px)}#hall-back-btn:hover{filter:brightness(1.12)}
