:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#fff;font-synthesis:none;--red:#aa2428;--paper:#f7f4ed;--line:#cbbda688;--ink:#42382f}*{box-sizing:border-box}body{margin:0;background:#211d18}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #e5c78b;outline-offset:5px}button:disabled{opacity:.3;cursor:default}a{color:inherit;text-decoration:none}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}#exhibition{position:relative;width:100%;height:100dvh;min-height:440px;overflow:hidden}#space{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#space:active{cursor:grabbing}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0005,transparent 17%,transparent 75%,#0003)}.header{position:absolute;top:0;left:0;right:0;padding:28px 34px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;z-index:3}.brand{display:flex;gap:11px;align-items:center;text-shadow:0 2px 10px #0009;pointer-events:auto}.brand-symbol{display:none}.brand strong{font-size:17px;font-weight:600;letter-spacing:2px}.brand small{display:block;font-size:10px;margin-top:8px;letter-spacing:1px;opacity:.85}.header-right{display:flex;gap:15px;align-items:center;pointer-events:auto}.status{border:1px solid #ffffff44;background:#0003;color:#fff9;font-size:10px;padding:6px 10px;border-radius:3px;backdrop-filter:blur(6px)}.status:hover{background:#0007}.icon-btn{width:32px;height:32px;background:#0004;border:1px solid #fff4;display:inline-grid;place-items:center;border-radius:50%;font-size:18px;color:inherit}.icon-btn:hover{background:#0007}.scene-caption{display:none}.tools{position:absolute;right:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:16px;z-index:3}.tool{width:43px;height:43px;display:grid;place-items:center;background:#0005;border-radius:50%;color:#fff;border:1px solid #ffffff15;backdrop-filter:blur(6px);transition:background .2s}.tool svg{width:21px;height:21px}.tool span{position:absolute;right:55px;font-size:10px;white-space:nowrap;background:#0007;padding:5px 8px;border-radius:3px;opacity:0;pointer-events:none}.tool:hover{background:#0009}.tool:hover span{opacity:1}.tool[aria-pressed=true]{background:#9d2427bd}.tools #reset{order:3}.tools #fullscreen{order:0}.tools #auto{order:1}.tools #source{order:2}.navigation-hint{position:absolute;left:50%;bottom:190px;transform:translateX(-50%);font-size:11px;letter-spacing:1px;text-shadow:0 1px 5px #0009;background:#0003;padding:9px 18px;border-radius:30px;white-space:nowrap;pointer-events:none;transition:opacity 1s}.navigation-hint>span{font-size:16px;vertical-align:-1px;margin-right:5px}.navigation-hint b{font-weight:400;opacity:.6;margin:0 8px}.compass{display:none}.bottom{position:absolute;bottom:0;left:0;right:0;min-height:154px;background:#0005;border-top:1px solid #fff1;display:flex;align-items:center;justify-content:center;z-index:3;padding:12px 110px 26px;transition:transform .25s;backdrop-filter:blur(2px)}.bottom-top{position:absolute;inset:0;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 30px 24px}.bottom-top button{pointer-events:auto}.tour-label{background:none;color:#fff;display:flex;flex-direction:column;gap:5px;align-items:center;font-size:11px;text-shadow:0 1px 4px #0008;padding:5px}.tour-label svg{width:25px;height:25px}.tour-label small{display:none}.text-button{background:none;font-size:11px;color:inherit;padding:8px 0}.bottom-top .text-button{color:#fff;text-shadow:0 1px 5px #000}.bottom-top .text-button span{margin-left:5px}.scene-list{display:flex;gap:10px;max-width:100%;overflow-x:auto;padding:3px;scrollbar-width:none;transition:opacity .2s,transform .2s}.scene-card{position:relative;width:106px;height:97px;flex:none;overflow:hidden;border:2px solid #ffffff8c;border-radius:4px;padding:0;background:#42382f;transition:border-color .2s,transform .2s}.scene-card img{width:100%;height:100%;object-fit:cover}.scene-overlay{position:absolute;inset:0;background:linear-gradient(transparent 55%,#000b)}.scene-index{display:none}.scene-card-title{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:12px;text-shadow:0 1px 4px #000;letter-spacing:1px}.scene-card-title small{display:none}.scene-card.active{border-color:#e8b54f;box-shadow:0 0 0 1px #d7a657}.scene-card:hover{transform:translateY(-3px)}.active-dot{display:none}.footnote{position:absolute;bottom:7px;left:0;right:0;display:flex;justify-content:center;font-size:8px;color:#fff6;letter-spacing:1px;pointer-events:none}.footnote span:first-child{display:none}.bottom.collapsed{min-height:73px;padding-top:0;padding-bottom:0}.bottom.collapsed .scene-list{height:0;opacity:0;pointer-events:none}.bottom.collapsed .bottom-top{padding-bottom:12px}.bottom.collapsed .footnote{display:none}.wall-hotspot,.walk-hotspot{position:absolute;left:50%;top:45%;background:none;z-index:2;display:flex;flex-direction:column;align-items:center;gap:7px;transform:translate(-50%,-50%);filter:drop-shadow(0 1px 3px #0007);transition:opacity .2s}.wall-hotspot>span{display:grid;place-items:center;border:1px solid #fff9;border-radius:50%;width:36px;height:36px;color:white;background:#ffffff26;font-size:20px;box-shadow:0 0 0 8px #ffffff12}.wall-hotspot small,.walk-hotspot small{font-size:11px;background:#0006;padding:6px 9px;border-radius:3px;white-space:nowrap}.walk-hotspot{top:74%}.walk-hotspot>span{font-size:37px;line-height:24px;width:46px;color:#fff;transform:scaleX(1.2)}.loading{position:absolute;inset:0;background:#231e18;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;z-index:10;transition:opacity .8s}.loading-logo{width:65px;height:65px;display:grid;place-items:center;border:1px solid #d7bd8d;color:#d7bd8d;font:30px SimSun,serif;animation:breathe 2s infinite}.loading p{font-size:13px;letter-spacing:3px;text-align:center}.loading p span{display:block;font-size:10px;color:#c2b7a3;letter-spacing:1px;margin-top:12px}.loading.done{opacity:0;pointer-events:none}.transition{display:none}.toast{position:absolute;top:100px;left:50%;transform:translate(-50%,-10px);background:#000a;border:1px solid #fff2;color:white;padding:11px 20px;border-radius:4px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;z-index:20;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}#fallback{position:absolute;inset:25% 20%;background:#231e18e8;padding:30px;text-align:center;z-index:4}#fallback h2{font-size:18px;font-weight:400}#fallback p{font-size:12px;color:#d6cbb9;line-height:2}#fallback button{padding:12px 20px;background:#aa292e;color:white;border-radius:3px}@keyframes breathe{50%{opacity:.4}}
dialog{color:var(--ink);background:var(--paper);border:1px solid #bfa880;padding:0;box-shadow:0 20px 100px #0006}dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}#viewer{width:calc(100vw - 60px);height:calc(100dvh - 60px);max-width:1800px;max-height:none;border-radius:5px;overflow:hidden}.dialog-header{height:86px;display:flex;justify-content:space-between;align-items:center;padding:15px 26px;border-bottom:1px solid var(--line)}.eyebrow{font-size:8px;letter-spacing:2px;color:#a08b69}.dialog-header h2{font-size:17px;letter-spacing:2px;font-weight:500;margin:8px 0 0}.viewer-actions{display:flex;align-items:center;gap:14px}.viewer-actions .icon-btn,#info>.icon-btn{border:1px solid #bba98b77;background:transparent}.viewer-actions .icon-btn:hover,#info>.icon-btn:hover{background:#e8e0d3}.viewer-actions #zoom-value{font-size:11px;min-width:38px;text-align:center;color:#8f7f68}.viewer-actions .close{margin-left:16px}.image-stage{position:absolute;inset:86px 0 67px;overflow:hidden;touch-action:none;cursor:grab;background:linear-gradient(45deg,#e4dfd6 25%,transparent 25%,transparent 75%,#e4dfd6 75%),linear-gradient(45deg,#e4dfd6 25%,transparent 25%,transparent 75%,#e4dfd6 75%);background-color:#ebe7df;background-size:20px 20px;background-position:0 0,10px 10px}.image-stage:active{cursor:grabbing}.image-stage img{position:absolute;top:50%;left:50%;max-width:none;max-height:none;transform-origin:center;user-select:none;box-shadow:0 3px 25px #51453520}.viewer-footer{position:absolute;bottom:25px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center}.viewer-footer span{font-size:11px;color:#8a7b66}.viewer-tip{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:9px;color:#a69884;letter-spacing:1px}#info{width:480px;max-width:calc(100vw - 32px);border-radius:6px;padding:38px 34px}#info>.close{position:absolute;right:18px;top:18px}#info h2{font-family:SimSun,serif;font-size:28px;font-weight:400;letter-spacing:3px;margin:20px 0}#info-content{font-size:12px;line-height:2;color:#85745e}#info-content p{margin:15px 0}#info-content table{width:100%;border-collapse:collapse;margin:16px 0}#info-content th,#info-content td{padding:7px 0;text-align:left;border-bottom:1px solid var(--line);font-weight:400}#info-content th{color:#4b3b30}#info-content .note{background:#eae3d6;padding:12px 15px;font-size:11px}.primary-button{width:100%;background:var(--red);color:#fff;padding:14px 18px;text-align:left;border-radius:3px;margin-top:18px;font-size:12px;letter-spacing:2px}.primary-button span{float:right}
@media(max-width:640px){.header{padding:20px 18px}.brand strong{font-size:14px;letter-spacing:1px}.brand small{font-size:8px;margin-top:6px}.header-right{gap:9px}.status{font-size:8px;padding:5px 7px}.header .icon-btn{width:25px;height:25px;font-size:14px}.tools{right:13px;gap:13px}.tool{width:36px;height:36px}.tool svg{width:18px;height:18px}.tool span{display:none}.bottom{min-height:126px;padding:10px 53px 23px}.bottom-top{padding:0 12px 20px}.bottom-top .text-button{font-size:0;width:25px}.bottom-top .text-button span{font-size:18px}.tour-label{font-size:9px;gap:4px}.tour-label svg{width:21px;height:21px}.scene-list{gap:6px}.scene-card{width:77px;height:80px}.scene-card-title{font-size:10px;letter-spacing:0}.navigation-hint{bottom:152px;font-size:9px;padding:8px 12px;letter-spacing:0}.navigation-hint>span{font-size:13px}.wall-hotspot>span{width:28px;height:28px;font-size:17px;box-shadow:0 0 0 6px #ffffff12}.wall-hotspot small,.walk-hotspot small{font-size:9px;padding:5px 7px}.walk-hotspot{top:72%}.walk-hotspot>span{font-size:31px}.footnote{font-size:7px}.toast{top:86px;font-size:10px}#viewer{width:100vw;height:100dvh;border-radius:0;border:0}.dialog-header{padding:15px 16px;align-items:flex-start}.dialog-header h2{font-size:14px;letter-spacing:1px;max-width:190px}.dialog-header .eyebrow{font-size:7px}.viewer-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:150px}.viewer-actions .icon-btn{width:26px;height:26px;font-size:16px}.viewer-actions #zoom-value{font-size:9px;min-width:26px}.viewer-actions .close{margin-left:3px}.viewer-actions .text-button{font-size:9px;order:2;padding:0 4px}.viewer-footer{left:16px;right:16px}.viewer-footer span{font-size:9px}.viewer-footer .text-button{font-size:10px}.viewer-tip{font-size:8px}#info{padding:32px 25px}#info-content{font-size:11px}#fallback{inset:25% 8%;padding:25px}#fallback h2{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Zoom controls stay in the same scene; no modal is needed to read a board. */
#wall-hotspot{display:none!important}.hd-status{position:absolute;top:90px;left:34px;color:#eee;background:#0005;border:1px solid #fff2;border-radius:4px;padding:7px 10px;font-size:11px;z-index:3}.hd-status.complete{color:#f0deb5}.scene-zoom{position:absolute;bottom:180px;right:24px;display:flex;align-items:center;background:#16130f99;border:1px solid #fff3;border-radius:24px;z-index:4;backdrop-filter:blur(8px)}.scene-zoom button{width:38px;height:38px;background:none;font-size:21px}.scene-zoom span{font-size:11px;min-width:38px;text-align:center}.close-view .walk-hotspot{visibility:hidden}.close-view .bottom{min-height:60px;padding:0}.close-view .bottom .scene-list{height:0;opacity:0;pointer-events:none}.close-view .bottom .bottom-top{padding-bottom:10px}.close-view .footnote{display:none}.close-view .scene-zoom{bottom:80px}.close-view .navigation-hint{opacity:0!important}
@media(max-width:640px){.hd-status{left:18px;top:76px;font-size:9px}.scene-zoom{bottom:145px;right:13px}.scene-zoom button{width:34px;height:34px}.close-view .scene-zoom{bottom:78px}}

/* A quiet viewer: the artwork is the only visible text outside navigation. */
.header,.hd-status,.navigation-hint,.footnote,#layout,#auto,#source,#walk-next,.tool span,.tour-label>span{display:none!important}.bottom{background:transparent;border:0;backdrop-filter:none;pointer-events:none;min-height:130px;padding-bottom:18px}.bottom .scene-list,.bottom button{pointer-events:auto}.bottom.collapsed{min-height:62px}.bottom-top{padding:0 24px 20px}.tour-label{width:42px;height:42px;background:#0004;border:1px solid #fff3;border-radius:50%}.scene-list{padding:8px;border-radius:8px;background:#0005;backdrop-filter:blur(8px)}.scene-card{width:110px;height:80px}.tools{right:22px;top:50%;gap:14px}.scene-zoom,.close-view .scene-zoom{right:20px;bottom:22px}.scene-zoom span{display:none}.scene-zoom button{width:40px;height:40px}.close-view .bottom{min-height:62px;background:none}.close-view .bottom .scene-list{height:auto;opacity:1;pointer-events:auto}.close-view .bottom.collapsed .scene-list{height:0;opacity:0;pointer-events:none}.bottom.collapsed .scene-list{padding:0;background:none}.scene-card-title{font-size:11px}.close-view .bottom .bottom-top{padding-bottom:20px}
@media(max-width:640px){.tools{right:15px}.bottom{padding:8px 58px 78px;min-height:170px}.bottom.collapsed{min-height:62px}.scene-card{width:76px;height:72px}.bottom-top{padding:0 16px 18px}.scene-zoom,.close-view .scene-zoom{right:15px;bottom:18px}.close-view .bottom .bottom-top{padding-bottom:18px}.tour-label{width:37px;height:37px}.scene-zoom button{width:36px;height:36px}}
