:root{color-scheme:dark;--bg:#1c1e1e;--text:#f0eee8;--muted:#b0b5b2;--accent:#e2c897;font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.32;cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,p{margin:0}button{min-width:44px;min-height:44px}button svg{display:block;margin:auto}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.stage{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;overflow:hidden;background:#303534;isolation:isolate}.poster,#panorama{position:absolute;inset:0;width:100%;height:100%}.poster{object-fit:cover;object-position:center 56%;opacity:1;transition:opacity .25s;z-index:1;pointer-events:none}.stage.ready .poster{opacity:0}.stage.has-error #panorama{visibility:hidden}#panorama{outline-offset:-5px!important;background:transparent}
.stage-top,.stage-bottom{position:absolute;left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));display:flex;z-index:3;pointer-events:none}.stage-top{top:max(24px,env(safe-area-inset-top))}.stage-bottom{bottom:max(24px,env(safe-area-inset-bottom));justify-content:flex-end}.stage-controls>div{pointer-events:auto}.viewpoints,.toolbar{display:flex;align-items:center;padding:4px;background:rgba(20,23,22,.66);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #ffffff25;border-radius:10px;box-shadow:0 4px 24px #0002}.viewpoints button{border:0;background:transparent;padding:0 20px;border-radius:6px;min-width:86px;color:#e8e9e5}.viewpoints button[aria-pressed=true]{background:#edece4;color:#242924}.viewpoints button[aria-pressed=false]:hover,.toolbar button:hover:not(:disabled){background:#ffffff1b}.toolbar button{height:44px;width:44px;border:0;background:transparent;border-radius:6px}.tool-divider{height:18px;width:1px;background:#ffffff28;margin:0 6px}
.loading{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);background:#202724e6;padding:13px 18px;border:1px solid #ffffff23;border-radius:8px;display:flex;align-items:center;gap:10px;white-space:nowrap}.loading-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.35}}.fallback{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;width:min(340px,calc(100% - 40px));padding:24px;background:#202724f2;border:1px solid #ffffff2b;border-radius:10px;text-align:center}.fallback p{line-height:1.7}.fallback>div{margin-top:18px;display:flex;justify-content:center;gap:12px}.fallback button{padding:0 16px;border-radius:5px;border:1px solid #ffffff38;background:transparent}.fallback #retry{background:#eee9dc;color:#252b27}
.stage:fullscreen{width:100vw;height:100dvh}dialog{border:1px solid #ffffff24;color:var(--text);background:#171a19f5;padding:0;width:min(1300px,calc(100vw - 48px));max-width:calc(100vw - 48px);height:min(900px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);border-radius:10px;overflow:hidden}dialog::backdrop{background:#101312da;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.gallery-bar{height:68px;padding:12px 16px 12px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.gallery-bar>div{display:flex;align-items:center;gap:10px;min-width:0}.gallery-bar h2{font-size:14px;font-weight:500;color:#e5e7e2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-bar button,.gallery-bar a{background:transparent;border:0;border-radius:5px;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.gallery-bar button:hover,.gallery-bar a:hover{background:#ffffff16}.photo-grid{height:calc(100% - 68px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(220px,1fr);gap:16px;padding:8px 24px 24px;overflow:auto;align-content:start}.photo{display:block;min-width:0;min-height:44px;border-radius:5px;background:#282d2a;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .2s}.photo:hover img{filter:brightness(1.1)}.large-image-wrap{height:calc(100% - 68px);display:flex;align-items:center;justify-content:center;padding:0 18px 18px;position:relative}.large-image-wrap img{width:100%;height:100%;object-fit:contain}.large-image-wrap p{position:absolute;text-align:center;color:var(--muted)}.pnlm-load-box,.pnlm-error-msg,.pnlm-about-msg{display:none!important}.pnlm-container{font-family:inherit}
@media(max-width:760px){.stage-top,.stage-bottom{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.stage-top{top:max(16px,env(safe-area-inset-top))}.stage-bottom{bottom:max(18px,env(safe-area-inset-bottom));justify-content:center}.viewpoints button{padding:0 17px;min-width:78px}.toolbar button{width:46px;height:46px}.viewpoints,.toolbar{background:rgba(20,23,22,.72)}dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0}.gallery-bar{height:calc(64px + env(safe-area-inset-top));padding:calc(10px + env(safe-area-inset-top)) 12px 10px 16px}.gallery-bar h2{font-size:13px}.gallery-bar>div{gap:4px}.photo-grid{height:calc(100% - 64px - env(safe-area-inset-top));grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:240px;padding:6px 16px max(20px,env(safe-area-inset-bottom));gap:12px}.large-image-wrap{height:calc(100% - 64px - env(safe-area-inset-top));padding:0 6px max(6px,env(safe-area-inset-bottom))}}
@media(max-height:500px) and (min-width:600px){.stage-top{top:12px}.stage-bottom{bottom:12px}.photo-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr}.photo img{max-height:none}dialog{height:100dvh;max-height:100dvh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
