:root{font-family:SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#f7f5ef;background:#10110e;font-synthesis:none;text-rendering:optimizeLegibility;--accent: #ffb764;--accent-bright: #ffc981;--accent-ink: #21170a;--accent-soft: rgba(255, 183, 100, .15);--surface: rgba(18, 19, 16, .78);--surface-strong: rgba(14, 15, 12, .94);--line: rgba(255, 255, 255, .14);--line-soft: rgba(255, 255, 255, .08);--muted: rgba(247, 245, 239, .56)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{position:relative;width:100%;height:100%;min-height:560px;overflow:hidden;background:#11130f}.panorama-viewer,.panorama-engine{position:absolute;inset:0;width:100%;height:100%}.panorama-engine{touch-action:none}.panorama-engine .psv-container{background:#151713;cursor:grab}.panorama-engine .psv-container:active{cursor:grabbing}.panorama-engine .psv-canvas-container canvas{display:block;image-rendering:auto}.panorama-viewer:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,9,7,.48) 0,transparent 20%,transparent 61%,rgba(8,9,7,.72) 100%),linear-gradient(90deg,rgba(8,9,7,.3) 0,transparent 25%,transparent 76%,rgba(8,9,7,.22) 100%)}.project-badge{position:absolute;z-index:20;top:max(32px,env(safe-area-inset-top));left:36px;display:grid;grid-template-columns:16px auto auto;align-items:stretch;gap:18px;max-width:min(530px,calc(100vw - 420px));filter:drop-shadow(0 9px 22px rgba(0,0,0,.28))}.project-mark{position:relative;width:16px;min-height:69px}.project-mark:before{content:"";position:absolute;top:2px;bottom:2px;left:7px;width:1px;background:linear-gradient(var(--accent),rgba(255,183,100,.12))}.project-mark:after{content:"";position:absolute;top:0;left:3px;width:9px;height:9px;border:2px solid var(--accent);border-radius:50%;background:#10110eb8;box-shadow:0 0 0 5px #ffb7641a}.project-mark i{position:absolute;left:5px;bottom:0;width:5px;height:5px;border-radius:50%;background:var(--accent)}.project-copy{min-width:0;display:grid;align-content:center;gap:5px}.project-copy small{color:var(--accent-bright);font-size:9px;font-weight:760;letter-spacing:.22em}.project-copy strong{font-size:20px;font-weight:650;line-height:1.15;letter-spacing:.015em;text-shadow:0 2px 18px rgba(0,0,0,.48)}.project-copy p{margin:0;overflow:hidden;color:#ffffff94;font-size:10px;line-height:1.5;white-space:nowrap;text-overflow:ellipsis}.project-scene-count{display:grid;align-content:center;justify-items:end;gap:2px;margin-left:5px;padding-left:20px;border-left:1px solid rgba(255,255,255,.24)}.project-scene-count span{color:#ffffff73;font-size:8px;font-weight:650;letter-spacing:.12em}.project-scene-count strong{color:var(--accent-bright);font-size:25px;font-weight:520;line-height:1;letter-spacing:-.03em}.top-controls{position:absolute;z-index:20;top:max(28px,env(safe-area-inset-top));right:30px;display:flex;align-items:center;gap:8px}.top-controls button{height:46px;border:1px solid var(--line);border-radius:15px;padding:0 15px;display:flex;align-items:center;gap:8px;color:#ffffffba;background:#0e0f0cad;box-shadow:0 12px 32px #0003;cursor:pointer;backdrop-filter:blur(18px) saturate(120%);transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}.top-controls button span{font-size:11px;font-weight:620}.top-controls button:hover{color:#fff;border-color:#ffffff42;background:#191a16d6}.top-controls button:active{transform:scale(.97)}.top-controls button.active{color:var(--accent-ink);border-color:var(--accent);background:var(--accent);box-shadow:0 12px 30px #ffb7642e}.top-controls button.active svg{animation:orbital-spin 8s linear infinite}.scene-dock{position:absolute;z-index:22;left:50%;bottom:max(24px,env(safe-area-inset-bottom));width:min(1100px,calc(100% - 56px));transform:translate(-50%);display:grid;gap:10px}.scene-overview{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#0d0e0bd6;box-shadow:0 20px 60px #00000047;backdrop-filter:blur(24px) saturate(120%)}.overview-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 17px 10px}.overview-heading>div{display:flex;align-items:center;gap:8px;color:#fff}.overview-heading span{font-size:12px;font-weight:650}.overview-heading svg{color:var(--accent)}.overview-heading small{color:#fff6;font-size:9px;letter-spacing:.05em}.scene-strip{display:flex;gap:9px;padding:0 12px 12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.scene-strip::-webkit-scrollbar{display:none}.scene-card{position:relative;flex:0 0 108px;height:76px;padding:0;overflow:hidden;scroll-snap-align:start;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:#20221d;cursor:pointer;isolation:isolate;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.scene-card:hover{transform:translateY(-3px);border-color:#ffffff4d}.scene-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #ffb76429,0 10px 24px #00000042}.scene-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s ease}.scene-card:hover img{transform:scale(1.05)}.scene-card:after{content:"";position:absolute;z-index:0;inset:20% 0 0;background:linear-gradient(transparent,#050604f0)}.scene-number{position:absolute;z-index:1;top:7px;left:7px;color:#ffffffb8;font-size:8px;font-weight:720;letter-spacing:.08em;text-shadow:0 1px 5px #000}.scene-name{position:absolute;z-index:1;left:8px;right:8px;bottom:7px;overflow:hidden;color:#fff;font-size:11px;font-weight:650;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 6px #000}.scene-card.selected .scene-number{color:var(--accent-bright)}.scene-card.selected:before{content:"";position:absolute;z-index:2;top:7px;right:7px;width:7px;height:7px;border:2px solid rgba(255,255,255,.5);border-radius:50%;background:var(--accent)}.scene-stepper{min-height:96px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(460px,2.7fr) minmax(150px,1fr);align-items:stretch;gap:9px}.scene-jump,.current-scene{border:1px solid var(--line);background:#0e0f0ccc;box-shadow:0 24px 60px #0000004d;backdrop-filter:blur(24px) saturate(125%)}.scene-jump{min-width:0;border-radius:20px;display:flex;align-items:center;gap:11px;padding:11px 14px;color:#ffffffc7;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}.scene-jump.next{justify-content:flex-end;text-align:right}.scene-jump:hover{color:#fff;border-color:#ffb7646b;background:#181915eb;transform:translateY(-2px)}.scene-jump:active{transform:translateY(0) scale(.98)}.jump-icon{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,183,100,.26);border-radius:50%;color:var(--accent-bright);background:var(--accent-soft);transition:color .2s ease,background .2s ease}.scene-jump:hover .jump-icon{color:var(--accent-ink);background:var(--accent)}.jump-copy{min-width:0;display:grid;gap:4px}.jump-copy small{color:#ffffff61;font-size:8px;font-weight:650;letter-spacing:.1em}.jump-copy strong{overflow:hidden;font-size:12px;font-weight:650;white-space:nowrap;text-overflow:ellipsis}.current-scene{min-width:0;border-radius:22px;display:grid;grid-template-columns:minmax(170px,1fr) minmax(80px,.55fr) auto;align-items:center;gap:18px;padding:12px 13px 12px 18px}.scene-heading{min-width:0;display:flex;align-items:center;gap:13px}.current-index{flex:0 0 auto;color:var(--accent-bright);font-size:30px;font-weight:430;line-height:1;letter-spacing:-.06em}.scene-heading>div{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:8px}.scene-heading small{color:#ffffff5c;font-size:8px;font-weight:680;letter-spacing:.1em}.scene-heading strong{overflow:hidden;font-size:17px;font-weight:650;white-space:nowrap;text-overflow:ellipsis}.scene-heading p{grid-column:1 / -1;margin:5px 0 0;overflow:hidden;color:var(--muted);font-size:10px;white-space:nowrap;text-overflow:ellipsis}.scene-progress{display:flex;align-items:center;gap:3px}.scene-progress i{flex:1 1 4px;min-width:3px;height:2px;border-radius:4px;background:#ffffff1f}.scene-progress i.active{background:var(--accent);box-shadow:0 0 8px #ffb7644d}.dock-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}.dock-actions button{height:44px;border:0;border-radius:13px;display:flex;align-items:center;gap:7px;padding:0 12px;color:#ffffffb3;background:#fff1;cursor:pointer;transition:color .2s ease,background .2s ease,transform .2s ease}.dock-actions button:hover{color:#fff;background:#ffffff1f}.dock-actions button:active{transform:scale(.97)}.dock-actions span{font-size:10px;font-weight:620}.dock-actions .details-button{color:var(--accent-ink);background:var(--accent)}.dock-actions .details-button:hover{color:var(--accent-ink);background:var(--accent-bright)}.hotspot-marker{overflow:visible!important}.panorama-hotspot{position:relative;width:84px;height:78px;box-sizing:border-box!important;padding:5px 5px 8px;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:#fff;background:#0e0f0ce0;box-shadow:0 12px 30px #0000005c;cursor:pointer;backdrop-filter:blur(12px)}.panorama-hotspot img{width:72px;height:46px;display:block;object-fit:cover;border-radius:6px}.panorama-hotspot-label{display:block;padding-top:4px;font-size:11px}.panorama-hotspot:not(.hotspot-image){height:66px;padding-top:8px}.panorama-hotspot-symbol{width:32px;height:32px;display:grid;place-items:center;margin:0 auto;border-radius:10px;color:#21170b;background:var(--accent);font-size:18px;font-weight:800}.panorama-hotspot i{position:absolute;left:50%;bottom:-19px;width:10px;height:10px;border:2px solid var(--accent);border-radius:50%;background:#ffb76452;transform:translate(-50%);box-shadow:0 0 0 4px #ffb7641f}.panorama-hotspot i:before{content:"";position:absolute;left:50%;bottom:8px;width:1px;height:10px;background:var(--accent)}.viewer-status{position:absolute;z-index:30;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;color:#fff;background:#161814 center/cover no-repeat}.viewer-status:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,#ffffff08,#08090794)}.viewer-status>*{position:relative}.viewer-status strong{font-size:15px;letter-spacing:.05em}.viewer-status small{color:#ffffff80}.viewer-status.error{color:#ffc4a1}.loader{width:34px;height:34px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;animation:slow-spin .8s linear infinite}.drag-tip{position:absolute;z-index:8;left:50%;top:34px;transform:translate(-50%);padding:7px 12px;border:1px solid rgba(255,255,255,.08);border-radius:999px;color:#ffffff7a;background:#0a0b0957;font-size:9px;letter-spacing:.06em;pointer-events:none;backdrop-filter:blur(10px)}.restore-ui{position:absolute;z-index:30;top:24px;right:24px;display:flex;align-items:center;gap:8px;padding:11px 14px;border:1px solid var(--line);border-radius:14px;color:#21170b;background:var(--accent);box-shadow:0 16px 40px #0003;cursor:pointer}.restore-ui span{font-size:12px;font-weight:650}.panel-scrim{position:absolute;z-index:39;inset:0;background:#05060475;backdrop-filter:blur(5px)}.info-panel{position:absolute;z-index:40;top:0;right:0;width:min(460px,94vw);height:100%;padding:68px 42px 42px;overflow-y:auto;color:#f2f2ec;background:#121410f7;border-left:1px solid var(--line);backdrop-filter:blur(28px);box-shadow:-30px 0 80px #00000052}.panel-close{position:absolute;top:22px;right:22px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:13px;color:#fff;background:#ffffff0f;cursor:pointer}.eyebrow{margin:0 0 13px;color:var(--accent);font-size:9px;font-weight:750;letter-spacing:.2em}.info-panel h2{margin:0;max-width:340px;font-size:clamp(28px,4vw,40px);font-weight:620;line-height:1.16;letter-spacing:-.03em}.panel-lead{margin:20px 0 30px;color:#f2f2ec94;font-size:14px;line-height:1.8}.info-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:32px}.info-stats div{display:grid;gap:6px;padding:17px 13px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#ffffff09}.info-stats strong{color:var(--accent);font-size:20px;font-weight:650}.info-stats span{color:#ffffff6b;font-size:10px}.info-list{display:grid;gap:10px}.info-list article{display:grid;grid-template-columns:44px 1fr;gap:13px;padding:15px;border:1px solid rgba(255,255,255,.06);border-radius:15px;background:#ffffff09}.info-list article>span{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;color:var(--accent);background:var(--accent-soft)}.info-list strong{font-size:13px}.info-list p{margin:5px 0 0;color:#ffffff78;font-size:11px;line-height:1.6}.privacy-note{margin-top:25px;color:#ffffff4d;font-size:10px}.dialog-layer{position:absolute;z-index:60;inset:0;display:grid;place-items:center;padding:24px}.lightbox{background:#050604db;backdrop-filter:blur(16px)}.lightbox-card{width:min(680px,100%);max-height:92vh;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#171914;box-shadow:0 34px 100px #00000080}.lightbox-card header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 17px}.lightbox-card header>div:first-child{display:grid;gap:3px}.lightbox-card small{color:var(--accent);font-size:8px;font-weight:700;letter-spacing:.16em}.lightbox-card strong{font-size:14px}.lightbox-card>img{width:100%;max-height:calc(92vh - 72px);display:block;object-fit:contain;background:#0b0c09}.lightbox-actions{display:flex;align-items:center;gap:7px}.lightbox-actions a,.lightbox-actions button{height:36px;display:flex;align-items:center;gap:5px;padding:0 11px;border:0;border-radius:10px;color:#fff;background:#ffffff14;text-decoration:none;cursor:pointer}.note-dialog{background:#050604b8;backdrop-filter:blur(12px)}.note-card{position:relative;width:min(460px,100%);padding:34px;border:1px solid var(--line);border-radius:22px;background:#171914;box-shadow:0 34px 100px #00000080}.note-card:focus{outline:none}.note-close{position:absolute;top:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:11px;background:#ffffff12;cursor:pointer}.note-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:20px;border-radius:14px;color:var(--accent);background:var(--accent-soft)}.note-card small{color:var(--accent);font-size:8px;font-weight:700;letter-spacing:.18em}.note-card h2{margin:9px 0 14px;font-size:28px}.note-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.8;white-space:pre-wrap}.fade-enter-active,.fade-leave-active{transition:opacity .22s ease}.fade-enter-from,.fade-leave-to{opacity:0}.panel-enter-active,.panel-leave-active{transition:opacity .24s ease,transform .24s ease}.panel-enter-from,.panel-leave-to{opacity:0;transform:translate(24px)}.dock-reveal-enter-active,.dock-reveal-leave-active{transform-origin:bottom center;transition:opacity .24s ease,transform .24s ease}.dock-reveal-enter-from,.dock-reveal-leave-to{opacity:0;transform:translateY(12px) scale(.985)}@keyframes slow-spin{to{transform:rotate(360deg)}}@keyframes orbital-spin{to{transform:rotate(360deg)}}@media(max-width:950px){.project-badge{max-width:calc(100vw - 290px)}.project-copy p,.project-scene-count{display:none}.scene-stepper{grid-template-columns:66px minmax(0,1fr) 66px}.scene-jump{justify-content:center;padding:8px}.jump-copy{display:none}.current-scene{grid-template-columns:minmax(150px,1fr) minmax(60px,.45fr) auto;gap:12px}}@media(max-width:700px){.app-shell{min-height:460px}.project-badge{top:max(16px,env(safe-area-inset-top));left:17px;grid-template-columns:11px auto;gap:10px;max-width:calc(100vw - 130px)}.project-mark{width:11px;min-height:50px}.project-mark:before{left:5px}.project-mark:after{left:1px;width:9px;height:9px}.project-mark i{left:3px}.project-copy{gap:4px}.project-copy small{font-size:7px;letter-spacing:.16em}.project-copy strong{overflow:hidden;max-width:150px;font-size:14px;white-space:nowrap;text-overflow:ellipsis}.project-copy p,.project-scene-count{display:none}.top-controls{top:max(14px,env(safe-area-inset-top));right:12px;gap:6px}.top-controls button{width:40px;height:40px;justify-content:center;padding:0;border-radius:11px}.top-controls button span,.drag-tip{display:none}.scene-dock{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 18px);gap:7px}.scene-overview{border-radius:17px}.overview-heading{padding:11px 12px 8px}.overview-heading small{display:none}.scene-strip{gap:7px;padding:0 8px 8px}.scene-card{flex-basis:84px;height:62px;border-radius:10px}.scene-name{left:7px;right:7px;bottom:6px;font-size:10px}.scene-stepper{min-height:72px;grid-template-columns:52px minmax(0,1fr) 52px;gap:6px}.scene-jump{border-radius:16px;padding:6px}.jump-icon{width:34px;height:34px}.current-scene{border-radius:17px;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:8px 8px 8px 12px}.scene-heading{gap:9px}.current-index{font-size:22px}.scene-heading>div{display:block}.scene-heading small,.scene-heading p,.scene-progress{display:none}.scene-heading strong{display:block;max-width:92px;font-size:13px}.dock-actions{gap:4px}.dock-actions button{width:38px;height:38px;justify-content:center;padding:0;border-radius:11px}.dock-actions span{display:none}.panorama-hotspot{width:72px}.panorama-hotspot img{width:60px;height:39px}.info-panel{padding:64px 24px 30px}.lightbox{padding:10px}.restore-ui{top:12px;right:12px}}@media(max-width:380px){.project-copy strong{max-width:112px}.scene-heading strong{max-width:66px}.dock-actions .details-button{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
