:root{color-scheme:light;--ink:#181816;--paper:#f5f4ef;--line:rgba(24,24,22,.18)}
*{box-sizing:border-box}html,body,#gallery{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;background:#ddd;color:var(--ink)}canvas{display:block;touch-action:none}
button,a{font:inherit;color:inherit}.topbar{position:fixed;z-index:6;left:0;top:0;width:100%;padding:28px 34px;display:flex;align-items:center;gap:10px;pointer-events:none}.brand{display:grid;grid-template-columns:16px auto;column-gap:10px;text-decoration:none;pointer-events:auto}.brand i{width:12px;height:34px;background:#e04a32;grid-row:1/3}.brand span{font-size:18px;font-weight:700;letter-spacing:.32em}.brand small{font-size:8px;letter-spacing:.22em;opacity:.55}.icon-btn{pointer-events:auto;margin-left:auto;border:1px solid var(--line);background:rgba(245,244,239,.76);backdrop-filter:blur(12px);width:38px;height:38px;border-radius:50%;cursor:pointer}.icon-btn+.icon-btn{margin-left:0}.sound-btn{display:grid;place-items:center;padding:0}.sound-btn svg{width:20px;height:20px;overflow:visible}.sound-btn .speaker{fill:currentColor}.sound-btn .sound-waves,.sound-btn .sound-off{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.sound-btn .sound-waves{display:none}.sound-btn.playing .sound-waves{display:block}.sound-btn.playing .sound-off{display:none}
.intro{position:fixed;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(115deg,rgba(235,234,229,.12),rgba(255,255,255,.38));transition:opacity .8s,visibility .8s}.intro.hidden{opacity:0;visibility:hidden;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:600;text-transform:uppercase}.intro h1{font-family:Georgia,"Songti SC",serif;font-size:clamp(64px,10vw,136px);font-weight:400;letter-spacing:.18em;margin:18px 0 8px}.subtitle{font-family:Georgia,"Songti SC",serif;letter-spacing:.25em;font-size:14px}.enter{margin-top:42px;border:1px solid #222;background:rgba(255,255,255,.18);padding:15px 25px;min-width:164px;cursor:pointer;letter-spacing:.18em;transition:.25s}.enter:hover{background:#1e1e1c;color:#fff}.enter span{float:right}.tip{font-size:10px;letter-spacing:.12em;opacity:.5;margin-top:18px}
#loading{position:fixed;z-index:20;inset:0;background:#e9e8e3;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.5s}#loading.done{opacity:0;visibility:hidden}#loading span{width:28px;height:28px;border:1px solid #aaa;border-top-color:#222;border-radius:50%;animation:spin 1s linear infinite}#loading p{font-size:11px;letter-spacing:.2em}@keyframes spin{to{transform:rotate(360deg)}}
#crosshair{position:fixed;z-index:4;left:50%;top:50%;width:5px;height:5px;border:1px solid rgba(20,20,20,.65);border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:.2s}body.exploring #crosshair{opacity:1}#nearby{position:fixed;z-index:4;left:50%;bottom:45px;transform:translateX(-50%) translateY(8px);padding:9px 14px;background:rgba(20,20,18,.78);color:white;font-size:11px;letter-spacing:.12em;border-radius:2px;opacity:0;transition:.2s;pointer-events:none}#nearby.show{opacity:1;transform:translateX(-50%)}
.art-card{position:fixed;z-index:9;right:28px;top:50%;transform:translateY(-46%);width:min(360px,calc(100vw - 40px));padding:34px;background:rgba(247,246,241,.94);backdrop-filter:blur(18px);box-shadow:0 18px 60px rgba(0,0,0,.14);opacity:0;visibility:hidden;transition:.3s}.art-card.open{opacity:1;visibility:visible;transform:translateY(-50%)}.art-card button,.dialog button{position:absolute;right:16px;top:12px;border:0;background:none;font-size:25px;cursor:pointer}.art-card h2{font-family:Georgia,"Songti SC",serif;font-size:32px;font-weight:400;margin:16px 0 6px}.artist{font-size:12px;letter-spacing:.12em;color:#555}.rule{width:30px;border-top:1px solid #222;margin:25px 0}.desc{font-family:Georgia,"Songti SC",serif;font-size:14px;line-height:1.9;color:#484844}
.dialog{position:fixed;z-index:12;inset:0;background:rgba(20,20,18,.35);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.25s}.dialog.open{opacity:1;visibility:visible}.dialog>div{position:relative;width:min(420px,calc(100vw - 40px));background:var(--paper);padding:40px}.dialog h2{font-family:Georgia,"Songti SC",serif;font-weight:400;font-size:36px}.dialog ul{padding:0;margin:28px 0 0;list-style:none}.dialog li{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line);font-size:12px}.dialog kbd{font-family:inherit;letter-spacing:.08em}.mobile-pad{display:none;position:fixed;z-index:7;left:20px;bottom:20px;width:118px;height:82px;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:5px}.mobile-pad button{border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(20,20,18,.35);color:#fff}.mobile-pad button:nth-child(1){grid-column:2}.mobile-pad button:nth-child(2){grid-column:1}.mobile-pad button:nth-child(3){grid-column:2}.mobile-pad button:nth-child(4){grid-column:3}
@media(max-width:700px),(pointer:coarse){.topbar{padding:18px}.mobile-pad{display:grid}.art-card{right:20px;top:auto;bottom:20px;transform:translateY(10px)}.art-card.open{transform:none}.intro h1{font-size:58px}.intro{padding:20px}#nearby{bottom:116px}}

/* 自动导览 */
.tour-btn{pointer-events:auto;margin-left:auto;border:1px solid var(--line);border-radius:22px;padding:10px 15px;background:rgba(245,244,239,.76);backdrop-filter:blur(12px);font-size:10px;letter-spacing:.12em;cursor:pointer}.tour-btn span{margin-right:6px}.tour-btn.active{background:#1e1e1c;color:#fff}.tour-btn+.icon-btn{margin-left:0}body.touring #crosshair{opacity:0}
#tour-status{position:fixed;z-index:8;left:50%;bottom:30px;width:260px;transform:translate(-50%,20px);display:grid;grid-template-columns:1fr auto;gap:5px 15px;opacity:0;visibility:hidden;transition:.3s;color:#fff;text-shadow:0 1px 5px #000}#tour-status.show{opacity:1;visibility:visible;transform:translate(-50%,0)}#tour-label,#tour-count{font-size:11px;font-weight:700;letter-spacing:.14em;text-shadow:0 1px 6px #0000003b}#tour-progress{grid-column:1/3;height:1px;background:linear-gradient(90deg,#fff var(--progress,0%),rgba(255,255,255,.3) 0)}
@media(max-width:700px),(pointer:coarse){.tour-btn{font-size:0;padding:0;width:38px;height:38px}.tour-btn span{font-size:11px;margin:0}#tour-status{bottom:116px;width:180px}}

.view-prompt{position:fixed;z-index:14;left:50%;bottom:34px;width:min(580px,calc(100vw - 36px));transform:translate(-50%,25px);display:grid;grid-template-columns:62px 1fr auto auto;align-items:center;gap:14px;padding:10px;background:rgba(245,244,239,.95);box-shadow:0 16px 50px rgba(0,0,0,.2);opacity:0;visibility:hidden;transition:.3s}.view-prompt.open{opacity:1;visibility:visible;transform:translate(-50%,0)}.view-prompt img{width:62px;height:62px;object-fit:cover}.view-prompt div{display:flex;flex-direction:column;gap:3px}.view-prompt small{font-size:8px;letter-spacing:.18em;opacity:.55}.view-prompt strong{font-family:Georgia,"Songti SC",serif;font-size:18px;font-weight:400}.view-prompt span{font-size:11px;color:#666}.view-prompt button{border:1px solid var(--line);background:transparent;padding:10px 13px;font-size:10px;cursor:pointer}.view-prompt #prompt-yes{background:#1e1e1c;color:#fff}
.view-prompt em{font-style:normal;font-size:10px;color:#898985;opacity:.6}.view-prompt button{min-width:68px;transition:.2s}.view-prompt button:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,0,0,.1)}
.lightbox{position:fixed;z-index:30;inset:0;background:rgba(15,15,14,.94);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.35s}.lightbox.open{opacity:1;visibility:visible}.lightbox>button{position:absolute;right:26px;top:20px;border:0;background:none;color:#fff;font-size:34px;cursor:pointer}.lightbox figure{margin:0;max-width:min(88vw,1100px);max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:14px}.lightbox img{display:block;max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 12px 55px #000}.lightbox figcaption{align-self:stretch;display:flex;justify-content:space-between;color:#fff;font-size:12px}.lightbox figcaption b{font-family:Georgia,"Songti SC",serif;font-size:17px;font-weight:400}.lightbox figcaption span{opacity:.6}
body.touring #tour-status{bottom:24px}@media(max-width:700px),(pointer:coarse){.view-prompt{grid-template-columns:50px 1fr auto;bottom:20px}.view-prompt img{width:50px;height:50px}.view-prompt #prompt-no{display:none}.view-prompt strong{font-size:15px}}

.artist-btn{pointer-events:auto;margin-left:auto;border:0;border-bottom:1px solid rgba(24,24,22,.35);background:transparent;padding:7px 2px;font-size:10px;letter-spacing:.16em;cursor:pointer}.artist-btn+.tour-btn{margin-left:10px}.artist-panel{position:fixed;z-index:28;inset:0;background:#f0efe9;display:grid;grid-template-columns:minmax(270px,38%) 1fr;overflow:auto;opacity:0;visibility:hidden;transform:translateY(18px);transition:.4s}.artist-panel.open{opacity:1;visibility:visible;transform:none}.artist-panel>button{position:fixed;z-index:2;right:28px;top:20px;border:1px solid var(--line);background:#f5f4ef;width:42px;height:42px;padding:0;border-radius:50%;font-size:0;cursor:pointer}.artist-panel>button::before,.artist-panel>button::after{content:'';position:absolute;left:50%;top:50%;width:17px;height:2px;background:#181816;border-radius:2px;transform-origin:center}.artist-panel>button::before{transform:translate(-50%,-50%) rotate(45deg)}.artist-panel>button::after{transform:translate(-50%,-50%) rotate(-45deg)}.artist-heading{min-height:100vh;padding:clamp(90px,12vw,170px) clamp(35px,6vw,90px);background:#1e201f;color:#f4f1e8;position:sticky;top:0}.artist-heading h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(42px,5.8vw,78px);font-weight:400;letter-spacing:.08em;margin:28px 0 12px}.artist-heading .artist-name-en{font-size:clamp(15px,1.25vw,20px);letter-spacing:.2em;opacity:.68}.artist-copy{max-width:850px;padding:clamp(90px,12vw,160px) clamp(35px,8vw,110px)}.artist-copy h3{font-family:Georgia,"Songti SC",serif;font-size:25px;font-weight:400;margin:0 0 26px}.artist-copy h3:not(:first-child){margin-top:65px}.artist-copy>p{font-family:Georgia,"Songti SC",serif;font-size:15px;line-height:2.05;color:#454642}.exhibition-list{list-style:none;padding:0;margin:0}.exhibition-list li{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:15px 0;border-top:1px solid var(--line);font-size:13px;line-height:1.6}.exhibition-list b{font-weight:500}.profile-source{margin-top:50px;font-family:inherit!important;font-size:10px!important;color:#888!important}
@media(max-width:760px){.brand span{font-size:14px}.artist-btn{font-size:0;width:36px;height:36px;border:1px solid var(--line);border-radius:50%}.artist-btn:after{content:'人';font-size:11px}.artist-btn+.tour-btn{margin-left:0}.artist-panel{grid-template-columns:1fr}.artist-heading{position:relative;min-height:48vh}.artist-copy{padding-top:65px}}

.museum-logo{display:block;width:clamp(230px,23vw,350px);height:auto}.museum-logo img{display:block;width:100%;height:auto;max-height:40px;object-fit:contain;object-position:left center}
@media(max-width:760px){.museum-logo{width:160px}.museum-logo img{max-height:40px}}
