:root{--ink:#29271f;--cream:#eee5d3;--gold:#d4b077;--muted:#bdb49e;--green:#416d63;--red:#a15c43;--line:rgba(228,209,172,.22);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--cream);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#25251d}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;min-height:44px}button:active{transform:scale(.975)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #cc9662;outline-offset:4px}button:disabled{opacity:.6;cursor:wait}button i,button svg{pointer-events:none}button i[data-icon]{display:inline-flex}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.home{position:fixed;inset:0;background:linear-gradient(90deg,rgba(17,24,20,.93) 0%,rgba(17,24,20,.81) 29%,rgba(19,23,19,.28) 60%,rgba(19,23,19,.03) 100%),linear-gradient(0deg,rgba(17,23,19,.83),transparent 28%);display:flex;flex-direction:column;padding:34px 4.8vw 26px}.home-header{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:var(--cream);font-size:17px;letter-spacing:3px;text-align:left}.brand small{display:block;font-size:9px;letter-spacing:2.1px;margin-top:7px;opacity:.62}.seal{border:1px solid #bf9c68;display:flex;flex-direction:column;justify-content:center;align-items:center;width:39px;height:49px;color:#d9b985;font:20px/1.1 "Songti SC","SimSun",serif;letter-spacing:1px}.home-tools{display:flex;gap:28px}.home-tools button{font-size:13px;display:flex;align-items:center;gap:9px;letter-spacing:1px}.home-copy{margin-top:auto;margin-bottom:auto;padding-top:30px}.eyebrow{display:flex;align-items:center;gap:13px;letter-spacing:4px;font-size:11px;color:#d1b582}.eyebrow>span{display:block;width:25px;height:1px;background:currentColor}h1,h2,h3,p{margin:0}h1{font-family:"Songti SC","STSong","SimSun",serif;font-size:clamp(54px,6.2vw,94px);font-weight:400;line-height:1.22;letter-spacing:.12em;margin:24px 0 23px}h1 em{font-style:normal;color:#d6b786}.home-copy>p{font-size:15px;line-height:2.05;color:#bfbfae;letter-spacing:1.3px}.enter-button{background:var(--gold);color:#2b3329;border:1px solid var(--gold);margin-top:30px;padding:0 29px;min-width:210px;height:56px;display:inline-flex;justify-content:space-between;gap:28px;align-items:center;letter-spacing:2px;font-size:15px}.entry-note{display:block;font-size:11px;color:#a3a99a;margin-top:13px;letter-spacing:1px}.home-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:20px}.home-route{display:flex;gap:38px}.home-route button{border-top:1px solid rgba(239,229,203,.25);padding:15px 0 0;text-align:left;display:grid;grid-template-columns:25px 130px;gap:7px 7px;min-width:155px}.home-route button>span{font-size:10px;color:var(--gold);font-family:Georgia,serif;margin-top:4px}.home-route b{font-family:"Songti SC","SimSun",serif;font-size:20px;font-weight:400;letter-spacing:2px}.home-route small{grid-column:2;font-size:10px;color:#aaaF9e;letter-spacing:1px}.home-route button:hover{border-color:var(--gold)}.home-bottom-note{font-size:10px;letter-spacing:2px;color:#bdbca9;padding-bottom:3px}.hero-caption{position:absolute;right:4.6vw;top:37%;display:flex;align-items:center;flex-direction:column;gap:20px}.vertical{writing-mode:vertical-rl;letter-spacing:4px;font-size:13px}.hero-caption-line{height:55px;width:1px;background:#e8c68c66}.hero-caption small{writing-mode:vertical-rl;letter-spacing:2px;font-size:9px;color:#d5c5a6}.spinner{height:17px;width:17px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
#museum{position:fixed;inset:0;pointer-events:none}#museum button,#museum nav,#museum aside{pointer-events:auto}.museum-header{height:88px;background:linear-gradient(180deg,#1a211ed9,#1a211e60,transparent);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.compact{padding:0;min-width:210px;font-size:17px;letter-spacing:2px}.compact .seal{width:31px;height:40px;font-size:16px}.compact small{font-size:10px;letter-spacing:2px;margin-top:4px}.rooms{display:flex;gap:5px;background:rgba(24,31,26,.82);border:1px solid var(--line);border-radius:3px;padding:4px}.rooms button{padding:0 21px;height:43px;letter-spacing:1px;font-size:13px;display:flex;align-items:center;gap:10px;color:#cfc5b0}.rooms button small{font-family:Georgia,serif;color:#c4a46b;font-size:11px}.rooms button.active{background:#cdb17e;color:#292e26}.rooms button.active small{color:#4d5848}.tools{display:flex;gap:5px;min-width:140px;justify-content:flex-end}.tools>button{display:grid;place-items:center;width:42px;height:42px;background:#1c27238c;border:1px solid var(--line)}.tools>button.muted{opacity:.5}.room-intro{position:absolute;left:36px;top:126px;text-shadow:0 2px 12px #0008;transition:opacity 1s}.room-intro>span{font-size:10px;letter-spacing:3px;color:#ead2ac}.room-intro h2{font-family:"Songti SC","SimSun",serif;font-weight:400;font-size:35px;letter-spacing:5px;margin:10px 0}.room-intro p{font-size:11px;letter-spacing:2px;color:#ead9bd}.room-intro.quiet{opacity:0}.hotspot{position:absolute;display:flex;gap:9px;align-items:center;transform:translate(-50%,-50%);padding:4px 11px 4px 4px;min-height:38px;border:1px solid #efd3a77a;border-radius:25px;background:#27372fe8;color:#f4e9d3;box-shadow:0 3px 12px #0003;white-space:nowrap;font-size:12px;letter-spacing:.5px;will-change:left,top}.hotspot .hotspot-dot{display:grid;place-items:center;width:26px;height:26px;background:#c8aa72;color:#28342a;border-radius:50%;font-size:14px}.hotspot.visited .hotspot-dot{background:#587e68;color:#f6eddb}.hotspot:hover{background:#4a6251;border-color:#fff0c8}.hotspot:active{transform:translate(-50%,-50%) scale(.97)}.hotspot.guide-hotspot{background:#eef0dfeb;color:#29392d}.navigation-hint{position:absolute;bottom:172px;left:32px;display:flex;gap:9px;align-items:center;color:#eadfc9;font-size:10px;text-shadow:0 2px 5px #000}.navigation-hint svg{width:15px}.move-pad{position:absolute;bottom:32px;left:32px;display:grid;grid-template-columns:43px 43px 43px;grid-template-rows:43px 43px;gap:4px}.move-pad button{width:43px;height:43px;background:#1c2a24d9;border:1px solid #d6bb8877;color:#edd7b2;font-size:24px}.move-pad button:active,.move-pad button.pressed{background:#b99f6b;color:#202c24}.forward{grid-column:2}.left{grid-column:1;grid-row:2}.back{grid-column:2;grid-row:2}.right{grid-column:3;grid-row:2}.bottom-center{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px}.guide-button{display:flex;align-items:center;gap:12px;background:#283d31ed;border:1px solid #d7c19499;border-radius:3px;padding:0 23px;font-size:13px;letter-spacing:1px}.voice-bars{display:flex;align-items:center;gap:3px;height:22px}.voice-bars i{display:block;width:2px;background:#d7b77f;height:10px}.voice-bars i:nth-child(2){height:19px}.voice-bars i:nth-child(3){height:15px}.playing .voice-bars i{animation:bars .8s ease-in-out infinite alternate}.playing .voice-bars i:nth-child(2){animation-delay:.2s}.playing .voice-bars i:nth-child(3){animation-delay:.4s}@keyframes bars{to{height:4px}}.reset-view{min-height:30px;display:flex;align-items:center;gap:6px;font-size:10px;color:#e4ddc9;text-shadow:0 2px 4px #000}.reset-view svg{width:14px;height:14px}.explore-panel{position:absolute;right:28px;bottom:30px;width:221px;background:#1e2a23e8;border:1px solid var(--line);padding:7px 14px 10px;backdrop-filter:blur(12px)}#explore-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:1px;padding:0;min-height:35px}#explore-toggle small{color:#ceb17b;font-size:10px;margin-left:13px}#explore-toggle svg{width:14px}#exhibit-list{border-top:1px solid var(--line);padding-top:5px}.exhibit-row{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;min-height:35px;text-align:left;padding:4px 0;gap:6px;color:#d8d7c3}.exhibit-row span{font-size:10px;color:#c9ad75}.exhibit-row:hover{color:white}.exhibit-row.checked span{color:#a1c5a2}.explore-panel.collapsed #exhibit-list{display:none}.explore-panel.collapsed #explore-toggle svg{transform:rotate(180deg)}#subtitles{pointer-events:auto;position:absolute;bottom:147px;left:50%;transform:translateX(-50%);width:min(660px,65vw);padding:14px 42px 14px 20px;background:#17231eeb;border:1px solid #e4d2ad40;backdrop-filter:blur(10px);box-shadow:0 5px 30px #0002}.caption-speaker{font-size:10px;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:5px}#caption-text{font-size:16px;line-height:1.8;color:#fff4dd}#stop-voice{position:absolute;right:3px;top:5px;width:35px;min-height:35px}#stop-voice svg{width:15px}
dialog{padding:0;border:1px solid #d2b88a66;background:var(--cream);color:var(--ink);max-height:90vh;max-width:calc(100vw - 40px);box-shadow:0 25px 120px #0008}dialog::backdrop{background:#131d18b3;backdrop-filter:blur(9px)}.dialog-close{position:absolute;right:14px;top:14px;width:38px;min-height:38px;z-index:5;background:#efe8d9ec;color:#423e30;border:1px solid #c2ae8f55;display:grid;place-items:center}.detail-dialog{width:1120px;overflow:auto}.detail-layout{display:grid;grid-template-columns:1.1fr 1fr;min-height:570px}.detail-visual{background:#232a22;display:flex;flex-direction:column;justify-content:center;padding:38px 25px 28px;min-width:0}.image-stage{width:100%;height:360px;display:flex;justify-content:center;align-items:center;overflow:hidden;cursor:zoom-in;touch-action:none}.image-stage img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:center center;will-change:transform}.image-tools{display:flex;justify-content:center;gap:15px;align-items:center;color:#d2c4a5;margin-top:18px;font-size:11px}.image-tools button{display:flex;gap:7px;align-items:center;font-size:11px;min-height:32px}.image-tools svg{width:14px}.image-tools input{width:125px;accent-color:var(--gold)}.detail-text{padding:58px 44px 34px;display:flex;flex-direction:column}.detail-text .eyebrow{font-size:10px;letter-spacing:2px;color:#7c6a4a}.detail-text h2{font:400 35px/1.3 "Songti SC","SimSun",serif;margin:12px 0;color:#313f31}.detail-subtitle{font-size:12px;line-height:1.7;letter-spacing:.8px;color:#8e6948;margin-bottom:23px}.detail-body{font-size:14px;line-height:2;color:#575444}.observation{margin-top:23px;padding:18px 0;border-top:1px solid #b8a17b6b}.observation b{display:block;font-size:11px;color:#99623f;letter-spacing:2px;font-weight:500;margin-bottom:8px}.observation p{font-size:15px;line-height:1.8;font-family:"Songti SC","SimSun",serif;color:#3e4b3a}.source-note{font-size:10px;line-height:1.8;color:#8d8571;margin-top:auto;padding-top:15px}.source-note a{color:#8a7654;text-underline-offset:3px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.paper-button{background:#355a4a;color:#eee6d5;padding:0 16px;display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:1px;min-height:42px}.paper-button.secondary{background:transparent;border:1px solid #b5a382;color:#5e624e}.paper-button svg{width:15px}.zoomed .detail-layout{display:block}.zoomed .detail-text{display:none}.zoomed .image-stage{height:74vh}.zoomed .detail-visual{padding-top:45px}.video-content{padding:42px 32px 25px;background:#202a22;color:var(--cream)}.video-content h2{font:400 28px "Songti SC","SimSun",serif;letter-spacing:3px;margin-bottom:20px}.video-content video{display:block;width:100%;max-height:68vh;background:#0b100e}.video-content p{font-size:12px;color:#c9b895;line-height:1.8;margin-top:15px}.paper-dialog{width:800px;padding:48px;overflow:auto}.dark{color:#9a7950}.paper-dialog h2{font:400 34px/1.35 "Songti SC","SimSun",serif;margin:16px 0 18px;letter-spacing:2px}.lead{font-size:16px;line-height:1.85;color:#665e4e}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0}.help-grid>div>svg{color:#927049;width:25px;height:25px}.help-grid h3{font-size:15px;font-weight:500;margin:10px 0}.help-grid p{font-size:13px;color:#776e5b;line-height:1.8}.help-settings{border-top:1px solid #baa88660;padding:18px 0;display:flex;gap:30px;font-size:13px;align-items:center}.help-settings label{display:flex;gap:16px;align-items:center}.help-settings input{accent-color:var(--green)}.fine{font-size:11px;color:#94876c;line-height:1.9;margin-top:10px}#sources-list{margin-top:20px}#sources-list a{display:block;font-size:12px;color:#567464;line-height:1.8;margin:9px 0;text-underline-offset:3px}#sources>p:not(.lead):not(.fine){font-size:13px;line-height:1.9;color:#6d654f;margin-top:16px}
.puzzle-content{padding:40px;background:#e8ddc6}.puzzle-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;padding-right:32px}.puzzle-heading h2{font:400 30px "Songti SC","SimSun",serif;margin-bottom:10px}.puzzle-heading p{font-size:12px;color:#827054;line-height:1.8}.puzzle-options{display:flex;gap:5px;white-space:nowrap}.puzzle-options button{font-size:12px;border:1px solid #bfa57c;padding:0 10px;min-height:36px}.puzzle-options button.active{background:#42614e;color:#f7eedc;border-color:#42614e}.puzzle-area{display:grid;grid-template-columns:1fr 210px;gap:24px}.puzzle-board{display:grid;gap:4px;padding:4px;background:#96886c;aspect-ratio:1.96;touch-action:none}.puzzle-slot{position:relative;background:#d0bea0aa;border:1px dashed #ead7b460;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;color:#887252;font-size:18px}.puzzle-slot.over{outline:3px solid #386f4e}.puzzle-slot.correct{border:1px solid #507d59}.puzzle-tray{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}.puzzle-piece{width:100%;aspect-ratio:1;min-height:0;border:2px solid transparent;background-repeat:no-repeat;cursor:grab;touch-action:none}.puzzle-piece.selected{border-color:#7c3325;box-shadow:0 0 0 2px #e4c283}.puzzle-slot .puzzle-piece{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.puzzle-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;font-size:12px;color:#735f40}.puzzle-preview{display:none;width:100%;margin:15px 0;max-height:260px;object-fit:contain}.puzzle-preview.visible{display:block}.puzzle-success{padding:20px;background:#d0dac0;color:#32472e;margin-top:20px;border-left:3px solid #667d49}.puzzle-success h3{font:24px "Songti SC","SimSun",serif;margin-bottom:10px}.puzzle-success p{font-size:13px;line-height:1.9}.puzzle-drag{position:fixed;pointer-events:none;z-index:1000;opacity:.85;border:2px solid #e0c082;}
#dance{position:fixed;inset:0;background:#0c2422;z-index:20}#kaleidoscope{position:absolute;width:100%;height:100%;inset:0}.dance-title{position:absolute;top:11%;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;color:#e7cfa1;text-shadow:0 2px 15px #082624}.dance-title small{font-size:12px;letter-spacing:6px}.dance-title h2{font:400 36px "Songti SC","SimSun",serif;margin-top:16px;letter-spacing:7px}.dance-controls{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:8px 15px;background:#102d28e8;border:1px solid #b7a47966;backdrop-filter:blur(10px);white-space:nowrap}.dance-controls>button{font-size:12px;display:flex;gap:6px;align-items:center}.dance-controls svg{width:17px}.dance-palettes{display:flex;gap:2px}.dance-palettes button{font-size:11px;padding:0 12px;min-height:36px;color:#ccc4a6}.dance-palettes button.active{background:#7d7c50;color:#fff0c6}.dance-controls label{font-size:11px;display:flex;gap:10px;align-items:center}.dance-controls input{width:90px;accent-color:var(--gold)}#dance-reveal{position:absolute;right:18px;bottom:18px;font-size:11px;opacity:.18;color:#f4e5bd;padding:6px 12px}#dance-reveal:hover,#dance-reveal:focus{opacity:1}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 20px;z-index:100;background:#efe4cf;color:#34432d;border:1px solid #a7936b;box-shadow:0 4px 30px #0003;font-size:13px;max-width:85vw}#fallback{position:fixed;inset:0;padding:15vh 10vw;background:#26342b;z-index:1000}#fallback h1{font-size:40px}#fallback p{line-height:2}
@media(min-width:1600px){.home{padding-top:45px;padding-bottom:42px}.home-copy p{font-size:17px}.home-route{gap:60px}.home-route button{min-width:185px}.home-route b{font-size:24px}.home-route small{font-size:12px}.enter-button{margin-top:35px;width:235px;height:60px}.room-intro h2{font-size:40px}.explore-panel{width:240px}.exhibit-row{font-size:13px;min-height:39px}}
@media(max-width:1050px){.home-tools{gap:15px}.home-bottom-note{display:none}.home-route{gap:25px}.home-route button{grid-template-columns:22px 120px;min-width:150px}.museum-header{padding:16px;gap:10px}.compact{min-width:170px}.rooms button{padding:0 12px;font-size:12px}.tools{min-width:95px}.tools>button{width:34px;min-width:34px}.tools button:last-child{display:none}.detail-layout{grid-template-columns:1fr 1fr}.detail-text{padding:52px 28px 28px}.detail-text h2{font-size:29px}.detail-body{font-size:13px}.dance-controls{gap:10px}.dance-controls label{display:none}}
@media(max-width:700px){.home{padding:23px 24px;background:linear-gradient(90deg,#12211eeb,#13221e9c 70%,#11251d42),linear-gradient(0deg,#12231ddd,transparent 30%)}.brand{font-size:14px;gap:12px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:1.1px}.home-tools button:first-child{display:none}.home-tools button{font-size:11px}.home-tools button svg{display:none}.seal{width:32px;height:42px;font-size:17px}.home-copy{padding-top:10px}h1{font-size:60px;line-height:1.27;margin:20px 0;letter-spacing:.07em}.eyebrow{font-size:9px;letter-spacing:2px}.home-copy>p{font-size:12px;line-height:2;letter-spacing:.5px}.enter-button{margin-top:24px;height:50px;font-size:13px;min-width:200px}.entry-note{font-size:10px}.home-route{width:100%;gap:12px}.home-route button{min-width:0;flex:1;grid-template-columns:1fr;padding-top:12px;gap:5px}.home-route button>span{font-size:9px}.home-route b{font-size:17px;letter-spacing:1px}.home-route small{grid-column:1;font-size:8px;letter-spacing:0}.hero-caption{right:23px;top:33%;opacity:.6}.vertical{font-size:10px}.hero-caption small{display:none}.home-bottom{margin-top:18px}.museum-header{height:120px;align-items:flex-start;padding:14px 15px;background:linear-gradient(#15241ded,#15241d66,transparent)}.compact{min-width:130px;font-size:14px}.compact .seal{width:26px;height:35px;font-size:14px}.compact small{font-size:8px}.rooms{position:absolute;top:65px;left:15px;right:15px;justify-content:center}.rooms button{flex:1;font-size:11px;padding:0 6px;height:35px;min-height:35px;gap:6px;justify-content:center}.rooms button small{font-size:9px}.tools{min-width:90px}.tools>button{width:36px;height:36px;min-height:36px}.room-intro{left:20px;top:145px}.room-intro h2{font-size:27px;letter-spacing:3px}.room-intro p{font-size:10px}.room-intro>span{font-size:8px}.explore-panel{right:15px;bottom:20px;width:155px;padding:6px 10px}.exhibit-row{font-size:10px;min-height:30px}.exhibit-row span{font-size:9px}#explore-toggle{font-size:11px}#explore-toggle small{font-size:9px;margin-left:5px}.move-pad{left:18px;bottom:24px;grid-template-columns:35px 35px 35px;grid-template-rows:35px 35px;gap:3px}.move-pad button{width:35px;height:35px;min-height:35px;font-size:20px}.navigation-hint{left:18px;bottom:110px;font-size:9px;max-width:140px;line-height:1.7}.navigation-hint svg{display:none}.bottom-center{left:18px;transform:none;align-items:flex-start;bottom:154px}.guide-button{font-size:10px;padding:0 10px;gap:7px;min-height:37px}.reset-view{font-size:9px}.voice-bars{transform:scale(.8)}#subtitles{width:calc(100% - 30px);bottom:235px;padding:10px 33px 10px 14px}#caption-text{font-size:13px;line-height:1.7}.caption-speaker{font-size:9px}.hotspot{font-size:10px;min-height:32px;padding-right:9px;gap:6px}.hotspot .hotspot-dot{width:22px;height:22px;font-size:12px}dialog{max-width:calc(100vw - 20px);max-height:92vh}.detail-layout{display:flex;flex-direction:column;min-height:0}.detail-visual{padding:42px 15px 14px}.image-stage{height:240px}.detail-text{padding:23px}.detail-text h2{font-size:29px}.detail-subtitle{margin-bottom:14px}.detail-body{font-size:13px;line-height:1.9}.observation{margin-top:18px;padding-top:14px}.observation p{font-size:14px}.source-note{font-size:9px}.paper-dialog{padding:42px 23px 26px}.paper-dialog h2{font-size:28px;letter-spacing:1px}.lead{font-size:14px}.help-grid{gap:20px}.help-grid p{font-size:11px}.help-grid h3{font-size:13px}.help-settings{flex-direction:column;align-items:flex-start;gap:18px}.video-content{padding:44px 15px 20px}.video-content h2{font-size:23px}.puzzle-content{padding:46px 18px 22px}.puzzle-heading{display:block;padding-right:0}.puzzle-heading h2{font-size:25px}.puzzle-options{margin-top:13px}.puzzle-area{grid-template-columns:1fr;gap:15px}.puzzle-tray{grid-template-columns:repeat(4,1fr)}.puzzle-piece{aspect-ratio:1.4}.puzzle-controls{flex-wrap:wrap;gap:10px}.puzzle-controls .paper-button{font-size:10px;min-height:36px;padding:0 10px}.puzzle-success p{font-size:12px}.dance-title{top:14%;width:100%}.dance-title h2{font-size:25px;letter-spacing:4px}.dance-controls{bottom:20px;width:calc(100% - 26px);gap:8px;flex-wrap:wrap;justify-content:center;padding:8px}.dance-palettes{order:3;width:100%;justify-content:center}.dance-palettes button{flex:1}.dance-controls>button{font-size:11px}.dance-controls label{display:flex;order:4;width:100%;justify-content:center}.dance-title small{font-size:10px}}
@media(max-height:650px) and (min-width:701px){.home{padding-top:20px;padding-bottom:18px}h1{font-size:59px;margin:15px 0}.home-copy{padding-top:10px}.home-copy>p{font-size:12px}.enter-button{height:45px;margin-top:18px}.home-route{gap:25px}.home-route button{padding-top:9px}.home-route b{font-size:18px}.home-route small{font-size:9px}.room-intro{top:108px}.room-intro h2{font-size:27px}.detail-layout{min-height:0}.image-stage{height:270px}.detail-text{padding:40px 30px 20px}.detail-body{font-size:12px}.detail-text h2{font-size:29px}.detail-subtitle{margin-bottom:12px}.observation{margin-top:15px;padding:10px 0}.observation p{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Final classroom review refinements */
.hero-caption small{display:none}.puzzle-piece:disabled{opacity:1;cursor:default}.puzzle-complete .puzzle-area{grid-template-columns:1fr}.puzzle-complete .puzzle-tray{display:none}.puzzle-complete .puzzle-success{margin-top:12px;padding:15px}.detail-body{font-size:15px}.move-pad{grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px}.move-pad button{width:44px;height:44px;min-height:44px}.hotspot{max-width:230px}.hotspot>span:last-child{overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.detail-body{font-size:13px}.move-pad{grid-template-columns:40px 40px 40px;grid-template-rows:40px 40px}.move-pad button{width:40px;height:40px;min-height:40px}.puzzle-complete .puzzle-board{max-width:100%}.hotspot{max-width:145px}.navigation-hint{bottom:120px}}

/* Panorama interface: the scene occupies the canvas; controls stay at its edges. */
#scene-guide{position:absolute;z-index:1;transform:translate(-50%,-100%);padding:0;min-height:0;background:none;border:0;width:auto;aspect-ratio:9/16;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 5px 8px #1b160d35);}
#scene-guide.is-dragging{cursor:grabbing;z-index:3;filter:drop-shadow(0 8px 14px #1b160d60)}
#scene-guide:focus-visible{outline:1px dashed #f2dbac;outline-offset:-12px;border-radius:12px}
#scene-guide:active{transform:translate(-50%,-100%)}
#scene-guide video{height:100%;width:100%;object-fit:contain;display:block;pointer-events:none}
#hotspots{position:absolute;inset:0;pointer-events:none;z-index:2}
#museum .museum-header,#museum .rooms,#museum .bottom-center,#museum .explore-panel,#museum .navigation-hint{z-index:4}
#subtitles{z-index:8}
.museum-header{height:95px;background:linear-gradient(#17271be3,#17271b22,transparent)}
.rooms{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);gap:6px;padding:6px;border-radius:8px;backdrop-filter:blur(14px);}
.rooms button{padding:0;height:66px;min-width:143px;border-radius:4px;overflow:hidden;position:relative;text-shadow:0 1px 5px #000;color:#fff2d9;justify-content:center;gap:6px;border:1px solid transparent;}
.rooms button.active{color:#fff9e9;background:transparent;border:1px solid #f2cea0;box-shadow:0 0 0 1px #e0bd77}
.rooms button.active small{color:#fff1cd}
.rooms button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38;z-index:-1;}
.rooms button.active img{opacity:.6}.rooms button small{color:#e0c9a0}
.bottom-center{left:24px;bottom:24px;transform:none;flex-direction:row;gap:8px;align-items:center;max-width:31vw;flex-wrap:wrap;}
.guide-button{font-size:12px;padding:0 15px}.reset-view{background:#20342cdc;padding:0 10px;min-height:32px;border-radius:3px}.navigation-hint{bottom:118px;left:26px;font-size:11px}
.explore-panel{bottom:22px;right:24px;width:210px;border-radius:5px}.exhibit-row{min-height:40px}
.room-intro{top:104px;left:28px}.room-intro h2{font-size:30px}.room-intro p{font-size:11px}
#subtitles{bottom:120px;width:min(680px,65vw);z-index:3;border-radius:5px}
#toast{bottom:120px;font-size:12px;pointer-events:none}
.tools{gap:6px}.tools button{border-radius:3px}.tools button:nth-child(1),.tools button:nth-child(2){font-size:22px;}

/* Gallery arrival and room-change ceremony */
.room-transition{position:fixed;inset:0;z-index:90;display:grid;place-items:center;overflow:hidden;pointer-events:none;visibility:hidden;opacity:0;background:#101c18;color:#f2dfb9}
.room-transition.is-active{visibility:visible;opacity:1;pointer-events:auto;animation:portalHold 1.48s both}
.transition-wash{position:absolute;inset:-15%;background:radial-gradient(circle at 50% 48%,#d3ae6f28 0 9%,transparent 33%),conic-gradient(from 110deg at 50% 50%,#152c25,#6c382d 18%,#bc8a5555 28%,#17372d 46%,#17251f 68%,#7b3b30 82%,#152c25);filter:saturate(.82)}
.room-1 .transition-wash{background:radial-gradient(circle at 50% 48%,#e1bc7b2e 0 9%,transparent 33%),conic-gradient(from 80deg at 50% 50%,#1d3028,#754435 18%,#b8905b55 31%,#183731 49%,#4a2927 72%,#1d3028)}
.room-2 .transition-wash{background:radial-gradient(circle at 50% 48%,#e5c47c32 0 9%,transparent 33%),conic-gradient(from 130deg at 50% 50%,#183a34,#844331 17%,#d5a56655 31%,#36594b 50%,#71342d 75%,#183a34)}
.transition-wash:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,transparent 0 20%,#111b17bf 67%,#0e1714 100%)}
.transition-silk{position:absolute;width:130vw;height:29vh;border:2px solid #e6bf7c42;border-radius:50%;filter:blur(.4px);opacity:.7}
.silk-one{transform:rotate(-13deg);background:linear-gradient(180deg,transparent,#b84f3d55 45%,#d3a16618 70%,transparent);animation:silkSweep 1.48s cubic-bezier(.2,.75,.25,1) both}
.silk-two{transform:rotate(15deg);background:linear-gradient(180deg,transparent,#426f5f66 50%,transparent);animation:silkSweepBack 1.48s cubic-bezier(.2,.75,.25,1) both}
.transition-mandala{position:relative;width:178px;height:178px;display:grid;place-items:center;z-index:2;filter:drop-shadow(0 12px 32px #050b08aa)}
.transition-mandala span{position:absolute;inset:0;border:1px solid #e8c78d80;border-radius:50%;animation:mandalaSpin 6s linear infinite}.transition-mandala span:nth-child(2){inset:18px;border-style:dashed;animation-direction:reverse}.transition-mandala span:nth-child(3){inset:38px;border-color:#e8c78dcc}.transition-mandala:before,.transition-mandala:after{content:"";position:absolute;inset:9px;border:1px solid #c9755d88;transform:rotate(45deg)}.transition-mandala:after{inset:51px;border-color:#d9ba7a}.transition-mandala b{font:400 38px "Songti SC","SimSun",serif;color:#f3d69c;text-shadow:0 0 24px #e2b96f;letter-spacing:0}
.transition-copy{position:absolute;top:calc(50% + 122px);z-index:3;text-align:center;text-shadow:0 3px 12px #07100c}.transition-copy>span,.transition-copy small{display:block;font:10px Georgia,serif;letter-spacing:4px;color:#d9bd89}.transition-copy small{font:9px system-ui,sans-serif;letter-spacing:3px;margin-top:9px;opacity:.68}.transition-copy h2{font:400 clamp(31px,4vw,52px) "Songti SC","SimSun",serif;letter-spacing:9px;margin:10px 0 8px;color:#f6e8ca}.transition-copy p{font-size:11px;letter-spacing:3px;color:#d6cab0}
.transition-stars{position:absolute;inset:0}.transition-stars i{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;background:#f3d69c;border-radius:50%;box-shadow:0 0 14px #f0c97c;animation:starDrift 1.48s ease-out both}.transition-stars i:nth-child(1){--x:18%;--y:29%}.transition-stars i:nth-child(2){--x:78%;--y:23%;animation-delay:.08s}.transition-stars i:nth-child(3){--x:67%;--y:71%;animation-delay:.15s}.transition-stars i:nth-child(4){--x:29%;--y:75%;animation-delay:.21s}.transition-stars i:nth-child(5){--x:90%;--y:52%;animation-delay:.26s}.transition-stars i:nth-child(6){--x:9%;--y:57%;animation-delay:.31s}
.room-transition.is-revealing .transition-mandala,.room-transition.is-revealing .transition-copy{animation:portalReveal .85s ease both}
@keyframes portalHold{0%{clip-path:circle(0 at 50% 50%)}28%,78%{clip-path:circle(76% at 50% 50%)}100%{clip-path:circle(0 at 50% 50%)}}
@keyframes silkSweep{0%{translate:-70vw -18vh;opacity:0}35%{opacity:.8}100%{translate:70vw 12vh;opacity:0}}
@keyframes silkSweepBack{0%{translate:65vw 18vh;opacity:0}35%{opacity:.65}100%{translate:-65vw -12vh;opacity:0}}
@keyframes mandalaSpin{to{transform:rotate(360deg)}}
@keyframes starDrift{0%{scale:.2;opacity:0}45%{opacity:1}100%{translate:0 -70px;scale:1.6;opacity:0}}
@keyframes portalReveal{to{opacity:0;transform:scale(1.28);filter:blur(5px)}}
@keyframes sceneArrive{0%{filter:brightness(.45) saturate(.65);transform:scale(1.035)}100%{filter:none;transform:scale(1)}}
#world.scene-arrive{animation:sceneArrive 1.15s cubic-bezier(.2,.75,.25,1) both}
#scene-guide.guide-arrive video{animation:guideRise .85s .42s cubic-bezier(.2,.8,.25,1) both}@keyframes guideRise{0%{opacity:0;transform:translateY(24px);filter:blur(6px)}100%{opacity:1;transform:none;filter:none}}

/* Fine-line exhibit symbols, with a discreet visited mark. */
.hotspot,.hotspot:hover{padding:3px;min-height:48px;gap:10px;border:0;border-radius:10px;background:transparent;box-shadow:none;color:#fff2d9;overflow:visible;isolation:isolate;max-width:250px}
.hotspot-symbol{position:relative;display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #f2d4a18c;border-radius:13px;background:#20342ed4;backdrop-filter:blur(10px);box-shadow:0 4px 16px #111c1838,inset 0 1px #fff3d416;color:#f1d3a2;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.hotspot-symbol>svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.hotspot-label{padding:7px 10px;font-size:12px;font-weight:400;letter-spacing:1.3px;line-height:1.45;border-radius:5px;background:#1d302aab;backdrop-filter:blur(10px);text-shadow:0 1px 3px #10211c;box-shadow:inset 0 -1px #e7c79357;transition:background .2s}
.hotspot-seen{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:13px;height:13px;border:1px solid #d6e2c7;border-radius:50%;background:#4b7564;color:#f5f3df;opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s}
.hotspot-seen svg{width:9px;height:9px;stroke-width:2}
.hotspot.visited .hotspot-seen{opacity:1;transform:scale(1)}
.hotspot:hover .hotspot-symbol,.hotspot:focus-visible .hotspot-symbol{background:#365348ed;border-color:#ffe2b5;box-shadow:0 5px 18px #0e211650,0 0 0 3px #f1d3a220;transform:translateY(-2px)}
.hotspot:hover .hotspot-label,.hotspot:focus-visible .hotspot-label{background:#294438e8}
.hotspot:focus-visible{outline:1px solid #f1d3a2;outline-offset:4px}
.hotspot:active{transform:translate(-50%,-50%) scale(.97)}
#hotspots.room-reveal .hotspot:not([hidden]){animation:hotspotArrive .55s cubic-bezier(.18,.78,.24,1) calc(.28s + var(--hotspot-order)*.07s) both}
@keyframes hotspotArrive{0%{opacity:0;translate:0 9px}100%{opacity:1;translate:0 0}}
@media(max-width:1120px){.rooms button{min-width:115px;height:56px;font-size:12px}.bottom-center{max-width:25vw}.guide-button{padding:0 10px;font-size:11px}.explore-panel{width:185px;right:15px}.navigation-hint{bottom:136px}.rooms{bottom:22px}}
@media(max-width:700px){
 .museum-header{height:85px;gap:8px;padding:12px}.compact{min-width:130px;}.tools{gap:3px;min-width:0;}.tools>button{width:32px;min-width:32px;height:38px;min-height:38px;}.tools>button:last-child{display:grid;}
 .rooms{top:auto;left:12px;right:12px;bottom:12px;transform:none;justify-content:stretch}.rooms button{min-width:0;flex:1;font-size:11px;height:55px;}
 .bottom-center{left:12px;bottom:96px;max-width:49vw;gap:5px;}.guide-button{font-size:11px;min-height:40px;width:100%;justify-content:center}.reset-view{font-size:10px;}
 .explore-panel{bottom:98px;right:12px;width:146px;max-height:43vh;overflow:auto;}.exhibit-row{font-size:11px;min-height:40px;}#explore-toggle{font-size:10px;min-height:35px;}
 .room-intro{top:90px;left:17px}.room-intro h2{font-size:25px}.room-intro p{max-width:75vw;line-height:1.6;font-size:10px}.room-intro>span{font-size:9px}
 .navigation-hint{left:14px;bottom:184px;font-size:9px;max-width:150px}#subtitles{bottom:205px;width:calc(100vw - 24px);padding:10px 32px 10px 12px;}#caption-text{font-size:13px;}#toast{bottom:185px;}
 .hotspot,.hotspot:hover{max-width:190px;gap:7px;min-height:46px}.hotspot-symbol{width:38px;height:38px;flex-basis:38px;border-radius:12px}.hotspot-symbol>svg{width:21px;height:21px}.hotspot-label{font-size:10px;letter-spacing:.7px;padding:6px 8px}.transition-mandala{width:138px;height:138px}.transition-copy{top:calc(50% + 98px)}.transition-copy h2{font-size:32px;letter-spacing:6px}.transition-copy p{font-size:9px;letter-spacing:1.5px;max-width:88vw}
}

.reduce-motion .room-transition.is-active{animation:portalReduced .12s linear both}.reduce-motion .transition-silk,.reduce-motion .transition-stars,.reduce-motion .transition-mandala span,.reduce-motion #world.scene-arrive,.reduce-motion #scene-guide.guide-arrive video,.reduce-motion .hotspot-orbit,.reduce-motion #hotspots.room-reveal .hotspot{animation:none!important}.reduce-motion .room-transition.is-revealing .transition-mandala,.reduce-motion .room-transition.is-revealing .transition-copy{opacity:0}@keyframes portalReduced{0%,70%{opacity:1}100%{opacity:0}}

/* Visible artwork previews make the expanded collection browsable in the room. */
.hotspot.has-artwork,.hotspot.has-artwork:hover{width:164px;max-width:164px;display:flex;flex-direction:column;gap:0;padding:5px;background:#22372ef0;border:1px solid #d8b87dba;border-radius:5px;box-shadow:0 8px 22px #17231e55}
.hotspot-preview{position:relative;display:block;width:152px;height:106px;overflow:hidden;background:#e9d9bd;border:1px solid #ddc59490;border-radius:2px}
.hotspot-preview img{display:block;width:100%;height:100%;object-fit:contain}
.hotspot-preview small{position:absolute;left:0;bottom:0;right:0;padding:4px 5px;background:#14251dd9;color:#f0d6a3;font:9px system-ui;letter-spacing:1px;text-align:left}
.hotspot-caption{display:flex;align-items:center;gap:6px;width:100%;padding:7px 2px 3px;overflow:visible!important}
.hotspot.has-artwork .hotspot-symbol{width:24px;height:24px;flex-basis:24px;border-radius:7px;background:transparent;box-shadow:none;border-color:#dfc28c75}
.hotspot.has-artwork .hotspot-symbol>svg{width:16px;height:16px}
.hotspot.has-artwork .hotspot-label{padding:0;flex:1;background:transparent;box-shadow:none;font-size:11px;letter-spacing:.25px;text-align:left;line-height:1.6}
.hotspot.has-artwork:hover{border-color:#f7deb0;background:#2f4b3ff7}
.explore-panel{width:246px}
#exhibit-list{max-height:min(54vh,470px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.exhibit-row{gap:9px;padding:8px 0;min-height:60px;text-align:left}
.exhibit-row>img{width:42px;height:42px;flex:0 0 42px;object-fit:contain;background:#e9d9bd;border-radius:2px}
.exhibit-row .exhibit-row-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px;line-height:1.4}
.exhibit-row-copy small{font-size:9px;color:#c6b48e;font-weight:400;letter-spacing:.5px}
.exhibit-row-copy b{font-size:11px;font-weight:400;color:#f5ecd9}
.exhibit-status{flex:0 0 12px}
@media(max-width:700px){
 .hotspot.has-artwork,.hotspot.has-artwork:hover{width:122px;max-width:122px;padding:4px}
 .hotspot-preview{width:112px;height:77px}.hotspot-preview small{font-size:8px;letter-spacing:0;padding:3px}
 .hotspot.has-artwork .hotspot-label{font-size:10px;line-height:1.4}.hotspot-caption{gap:4px;padding-top:5px}
 .hotspot.has-artwork .hotspot-symbol{width:20px;height:20px;flex-basis:20px}
 .explore-panel{width:173px}.exhibit-row{gap:6px;min-height:54px}.exhibit-row>img{width:32px;height:36px;flex-basis:32px}
 .exhibit-row-copy b{font-size:10px}.exhibit-row-copy small{font-size:8px}#exhibit-list{max-height:32vh}
}

/* Museum wall labels and a single integrated film screen. */
.hotspot.artwork-label,.hotspot.artwork-label:hover{max-width:230px;padding:3px 9px;border:1px solid #c8a9748a;border-radius:2px;background:#182e26e8;box-shadow:0 5px 14px #0a211c28;backdrop-filter:blur(8px)}
.artwork-label .hotspot-caption{padding:3px 0;gap:7px;white-space:nowrap}
.artwork-number{color:#c9b084;font:10px Georgia,serif;letter-spacing:1px;padding-right:7px;border-right:1px solid #d7bb8959}
.artwork-label .hotspot-label{padding:0;background:none;box-shadow:none;font-size:11px;letter-spacing:1px}
.artwork-label .hotspot-symbol{width:23px;height:23px;flex-basis:23px;border:0;background:none;box-shadow:none}
.artwork-label .hotspot-symbol>svg{width:17px;height:17px}
.screen-controls{position:absolute;transform:translate(-50%,-100%);z-index:3;display:flex;align-items:center;gap:8px;padding:9px 12px;color:#f5e4c0;background:#152a23e8;border:1px solid #b2976966;border-radius:3px;box-shadow:0 4px 15px #11241b33}
.screen-controls[hidden]{display:none}
.screen-controls>div{display:grid;gap:4px;min-width:148px;padding-right:12px}
.screen-controls small{font-size:9px;letter-spacing:1px;color:#cbb78e}
.screen-controls b{font:16px 'Songti SC',serif;letter-spacing:2px;font-weight:400}
.screen-controls button{width:32px;height:32px;min-height:32px;padding:6px;color:#efd4a4;border:1px solid #b49d7455;border-radius:50%;background:#ffffff08}
.screen-controls svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2}
#scene-guide{z-index:4}
@media(max-width:700px){
 .hotspot.artwork-label,.hotspot.artwork-label:hover{max-width:180px;padding:2px 6px}
 .artwork-label .hotspot-label{font-size:10px;letter-spacing:0}.artwork-number{font-size:9px}
 .screen-controls{gap:5px;padding:7px 9px;max-width:88vw}.screen-controls>div{min-width:130px;padding-right:0}.screen-controls small{font-size:8px;letter-spacing:0}.screen-controls b{font-size:13px}
}

@media(max-width:700px){.navigation-hint{left:auto;right:14px;bottom:214px;max-width:154px}}
