:root{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:#333d36;background:#f4f1ea;--ink:#32453d;--muted:#777b71;--line:rgba(53,62,49,.13);--paper:#faf8f3;--serif:'Songti SC','STSong','Noto Serif CJK SC',serif;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer;background:none}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #688271;outline-offset:5px}button:hover{color:#183c30}button:active{transform:translateY(1px)}a{color:inherit;text-decoration:none}svg{display:block}h1,h2,p{margin:0}button svg{width:20px;height:20px;flex:none}button span[data-icon]{display:inline-flex;align-items:center;justify-content:center}[hidden]{display:none!important}#gallery{position:relative;width:100%;height:100svh;min-height:530px;overflow:hidden}#scene{width:100%;height:100%;display:block;outline:none;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}.topbar{position:absolute;top:0;left:0;right:0;height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:linear-gradient(#faf8f3f2,#faf8f3b8,transparent);z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand>svg{width:38px;height:38px}.brand>span{font-family:var(--serif);font-size:23px;letter-spacing:.14em;line-height:1.2}.brand-en{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:.23em;margin-top:6px}.exhibition-meta{display:flex;align-items:center;gap:18px;margin-left:-50px}.fine-label{font-size:12px;color:var(--muted);letter-spacing:.07em}.demo-badge{font-size:11px;line-height:1.4;color:#7e8274;border:1px solid #8d918733;padding:4px 9px;border-radius:3px;display:inline-block}.header-actions{display:flex;align-items:center;gap:20px}.plain-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;white-space:nowrap}.count{font-family:Georgia,serif;font-size:13px;color:#8b8f81;margin-left:2px}.icon-button{width:38px;height:38px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;flex-shrink:0}.icon-button:hover{background:#334c4010}.welcome{position:absolute;top:26%;left:5.1%;width:320px;padding:26px 28px 24px;background:rgba(249,247,241,.91);backdrop-filter:blur(12px);border:1px solid #ffffff73;box-shadow:0 15px 70px #192a1f0a;transition:opacity .5s,transform .5s;z-index:5}.welcome.dismissed{opacity:0;pointer-events:none;transform:translateY(15px)}.eyebrow{font-size:11px;letter-spacing:.14em;color:#89917f;text-transform:uppercase;line-height:1.6}.welcome h1{font-family:var(--serif);font-size:51px;line-height:1.4;font-weight:400;letter-spacing:.06em;margin:17px 0}.title-dot{font-size:33px;color:#ad8c5e;margin-left:0}.welcome-copy{font-size:14px;line-height:1.95;color:#818477}.primary-button{padding:14px 22px;background:var(--ink);color:white;display:inline-flex;gap:35px;align-items:center;font-size:14px;border-radius:3px;line-height:1.6}.primary-button:hover{background:#223e31;color:white}.welcome .primary-button{margin-top:24px}.welcome-note{font-size:11px;color:#929589;margin-top:15px;letter-spacing:.025em}.chapter-rail{position:absolute;right:33px;top:38%;display:grid;gap:22px;z-index:4}.chapter-link{display:flex;align-items:center;justify-content:flex-end;gap:12px;font-size:12px;color:#848879}.chapter-link span:first-child{opacity:0;transition:opacity .2s;background:#faf8f3ba;padding:4px 8px;border-radius:3px}.chapter-link:hover span:first-child,.chapter-link.active span:first-child{opacity:1}.chapter-link i{font-style:normal;width:26px;height:26px;border:1px solid #7a847642;border-radius:50%;font-family:Georgia,serif;display:grid;place-items:center;background:#f7f5eee0}.chapter-link.active i{background:var(--ink);color:white;border-color:var(--ink)}.location{position:absolute;bottom:140px;left:40px;display:flex;align-items:center;gap:13px;padding:10px 14px;background:#faf8f3c2;backdrop-filter:blur(5px);border-radius:3px}.location-number{font-family:var(--serif);font-size:24px;color:#697c68;padding-right:13px;border-right:1px solid var(--line)}.location strong{display:block;font-weight:500;font-size:14px;margin-top:4px}.mini-map{position:absolute;right:34px;bottom:120px;width:176px;padding:12px 12px 6px;background:#faf8f3de;border:1px solid #fff8;box-shadow:0 8px 30px #29382a0c;backdrop-filter:blur(12px);border-radius:4px}.mini-map-title{display:flex;align-items:center;justify-content:space-between;color:#6c7767;font-size:11px;letter-spacing:.05em}.mini-map-title svg{width:13px;height:13px}#mini-map>svg{width:100%;height:auto}.toolbar{position:absolute;bottom:39px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:7px;background:#faf8f3f2;border:1px solid #ffffffe6;box-shadow:0 8px 40px #38463915;border-radius:7px;z-index:10;white-space:nowrap;backdrop-filter:blur(15px)}.toolbar button{display:flex;align-items:center;gap:9px;padding:13px 18px;font-size:13px;border-radius:4px}.toolbar button:hover,.toolbar button[aria-pressed=true]{background:#344b4510}.toolbar button:first-child{color:#355342}.toolbar-divider{height:23px;width:1px;background:var(--line);margin:0 5px}.movement-tip{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;font-size:11px;color:#687265;white-space:nowrap;background:#f6f3ec75;padding:3px 8px;border-radius:3px}.movement-tip kbd{font:9px Arial;border:1px solid #a8afa068;border-radius:2px;padding:1px 3px}.tip-separator{margin:0 5px}.movement-tip button{font-size:16px;margin-left:6px}.tour-status{position:absolute;top:107px;left:50%;transform:translateX(-50%);width:360px;max-width:90%;padding:15px 17px 17px;display:flex;align-items:center;justify-content:space-between;background:#faf8f3ed;border:1px solid white;border-radius:5px;box-shadow:0 8px 25px #263d2410}.tour-kicker{display:block;font-size:10px;letter-spacing:.1em;color:#8b907e;margin-bottom:5px}.tour-status strong{font-size:14px;font-weight:500}.tour-controls{display:flex}.tour-track{position:absolute;left:0;right:0;bottom:0;height:2px;background:#dbe0d2}.tour-track>span{display:block;height:100%;width:0;background:#70866f;transition:width .3s}.focus-hint{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);padding:8px 13px;border:1px solid #fff5;background:#273e34b3;color:white;pointer-events:none;font-size:12px;border-radius:4px}.loading{position:absolute;inset:0;z-index:30;background:#f4f1ea;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .7s}.loading.ready{opacity:0;pointer-events:none}.loading-mark{font-family:var(--serif);font-size:38px;letter-spacing:.18em}.loading p{font-size:13px;letter-spacing:.08em;color:#879080;margin-top:20px}.loading-track{margin-top:25px;width:160px;height:2px;background:#dce0d6}.loading-track span{width:3%;height:100%;display:block;background:#657d68;transition:width .25s}.fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px;background:#f4f1ea;z-index:8;text-align:center}.fallback h2{font:38px/1.6 var(--serif);margin:18px 0}.fallback p{max-width:420px;font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:24px}.fallback~*{z-index:9}.touch-controls{display:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;padding:10px 14px;background:#fff}.skip-link:focus{top:10px}
dialog{border:1px solid #fff9;padding:34px;color:#384236;background:var(--paper);border-radius:9px;box-shadow:0 25px 100px #0d1b1652;max-height:88svh;max-width:92vw;overscroll-behavior:contain}dialog::backdrop{background:#27322b61;backdrop-filter:blur(8px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-heading h2{font:27px/1.5 var(--serif);font-weight:400;margin:7px 0 10px;letter-spacing:.02em}.muted{font-size:13px;line-height:1.8;color:#89907f}.catalog-dialog{width:1000px}.catalog-tabs{display:flex;gap:8px;padding:23px 0 20px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:24px}.catalog-tabs button,.map-tabs button{font-size:13px;padding:9px 14px;white-space:nowrap;border:1px solid transparent;border-radius:3px;color:#8a907f}.catalog-tabs button.active,.map-tabs button[aria-pressed=true]{background:#e6ebe1;color:#44583e}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px 23px}.art-card{text-align:left;padding:0;min-width:0}.art-card-image{padding:17px;background:#eeede5;border:1px solid #e3e2d7;aspect-ratio:1}.art-picture{position:relative;overflow:hidden;width:100%;height:100%;aspect-ratio:1;background:#eeece3}.art-picture img{position:absolute;display:block;max-width:none;object-fit:fill}.art-picture.failed::after{content:'图片暂未加载';position:absolute;inset:0;display:grid;place-items:center;font-size:13px;color:#86917d;background:#efede6}.art-card-caption{display:flex;align-items:center;gap:10px;padding:12px 0}.art-card-caption>span{font:12px Georgia;color:#9ba18e}.art-card h3{font-size:14px;font-weight:500;margin:0}.art-card:hover .art-card-image{background:#e4e8de}.art-dialog{width:1030px;padding:0;overflow:hidden}.art-dialog[open]{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.9fr)}.art-close{position:absolute;right:15px;top:15px;z-index:5;background:#faf8f3b3}.art-stage{height:min(640px,77svh);background:#e9e8e0;display:flex;align-items:center;justify-content:center;padding:35px;overflow:hidden;position:relative;touch-action:none}.art-zoom{width:100%;max-width:520px;aspect-ratio:1;transform-origin:center;flex-shrink:0;box-shadow:0 5px 30px #353e2b17;cursor:grab}.art-info{padding:75px 32px 28px;display:flex;flex-direction:column}.art-info h2{font:32px/1.5 var(--serif);margin:18px 0}.art-meta{font-size:12px;color:#919785;line-height:1.85;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}.art-info>p:not(.eyebrow){font-size:14px;line-height:2;color:#828a79;margin-bottom:24px}.art-info>.demo-badge{align-self:flex-start}.art-pagination{margin-top:auto;padding-top:28px;display:flex;align-items:center;justify-content:space-between;gap:7px}.art-pagination>.plain-button{font-size:12px;gap:4px}.art-pagination>span{font:12px Georgia;color:#969c89}.zoom-controls{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;background:#faf8f3f0;box-shadow:0 3px 20px #3e482018;border-radius:4px;z-index:3}.zoom-controls button{height:36px;min-width:38px;font-size:18px}#zoom-reset{font-size:12px;min-width:56px;border-inline:1px solid var(--line)}.map-dialog{width:920px}.map-tabs{display:flex;gap:8px;margin-top:16px}.map-dialog svg{display:block;width:100%;max-height:57svh}#large-map{margin-top:10px}.map-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:#949a89;justify-content:center;line-height:1.7;margin-top:15px}.help-dialog{width:520px}.help-dialog ul{padding:0;list-style:none;margin:20px 0}.help-dialog li{display:flex;flex-direction:column;gap:7px;padding:15px 0;border-bottom:1px solid var(--line)}.help-dialog li strong{font-size:14px;font-weight:500}.help-dialog li span{font-size:13px;color:#7c8674;line-height:1.8}.help-note{font-size:12px;line-height:1.8;color:#98a08c}.overview-return{position:absolute;top:105px;left:50%;transform:translateX(-50%);z-index:10}.no-webgl .welcome,.no-webgl .toolbar,.no-webgl .mini-map,.no-webgl .location,.no-webgl .chapter-rail,.no-webgl .movement-tip,.no-webgl .touch-controls{display:none}
@media(max-width:900px){.topbar{padding:0 23px;height:80px}.exhibition-meta{display:none}.welcome{left:30px;top:23%;width:285px;padding:24px}.welcome h1{font-size:45px}.header-actions{gap:12px}.chapter-rail{right:21px}.location{left:25px;bottom:135px}.mini-map{right:23px;width:145px}.toolbar button{padding:12px 14px}.art-dialog[open]{grid-template-columns:minmax(0,1fr) 290px}.art-info{padding:60px 24px 25px}.art-stage{padding:25px}.art-info h2{font-size:26px}.art-info>p:not(.eyebrow){font-size:13px}.catalog-grid{gap:20px}}
@media(max-width:600px){#gallery{min-height:500px}.topbar{height:78px;padding:0 18px}.brand{gap:7px}.brand>svg{width:29px;height:29px}.brand>span{font-size:20px}.brand-en{font-size:7px;margin-top:4px}.header-actions{gap:7px}.header-actions .plain-button{font-size:12px;gap:7px}.count{font-size:11px}.header-actions .icon-button{width:31px;height:34px}.welcome{left:22px;top:22%;width:238px;padding:20px 23px}.welcome h1{font-size:39px;margin:13px 0}.welcome-copy{font-size:12px}.welcome .primary-button{margin-top:18px;padding:11px 16px;font-size:13px;gap:30px}.welcome-note{font-size:9px}.eyebrow{font-size:10px}.chapter-rail{right:15px;top:29%;gap:18px}.chapter-link span:first-child{display:none}.chapter-link i{width:22px;height:22px;font-size:10px}.toolbar{width:calc(100% - 30px);bottom:max(20px,env(safe-area-inset-bottom));justify-content:space-around;padding:5px;gap:0}.toolbar button{flex-direction:column;gap:6px;padding:10px 8px;font-size:10px}.toolbar button svg{width:19px;height:19px}.toolbar-divider{height:30px;margin:0 2px}.movement-tip{bottom:96px;font-size:10px}.movement-tip kbd{display:none}.movement-tip .tip-separator{display:none}.movement-tip span:last-of-type{display:none}.location{bottom:190px;left:17px;padding:8px 10px;gap:8px}.location-number{font-size:18px;padding-right:8px}.location .fine-label{font-size:10px}.location strong{font-size:12px}.mini-map{right:16px;bottom:142px;width:112px;padding:8px}.mini-map-title{font-size:9px}.mini-map-title svg{width:10px;height:10px}.touch-controls{position:absolute;bottom:122px;left:18px;display:grid;grid-template-columns:38px 38px 38px;grid-template-rows:36px 36px;gap:3px;touch-action:none}.touch-controls button{background:#faf8f3dc;border:1px solid #fff9;backdrop-filter:blur(8px);border-radius:5px;font-size:17px;color:#72816c;touch-action:none;user-select:none}.touch-controls button:first-child{grid-column:2}.touch-controls button:nth-child(2){grid-row:2;grid-column:1}.touch-controls button:nth-child(3){grid-row:2;grid-column:2}.touch-controls button:nth-child(4){grid-row:2;grid-column:3}.welcome:not(.dismissed)~.touch-controls{display:none}.welcome:not(.dismissed)~.location{bottom:132px}.tour-status{top:90px;width:310px;padding:11px 13px 13px}.tour-status strong{font-size:12px}.tour-kicker{font-size:9px}.tour-status .icon-button{width:31px;height:31px}dialog{padding:22px;max-width:94vw;max-height:91svh;border-radius:7px}.dialog-heading{gap:8px}.dialog-heading h2{font-size:21px}.dialog-heading .icon-button{width:29px;height:29px}.muted{font-size:12px}.catalog-tabs{gap:3px;padding:18px 0 15px;margin-bottom:18px}.catalog-tabs button{padding:8px 10px;font-size:12px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 14px}.art-card-image{padding:10px}.art-card h3{font-size:12px}.art-card-caption{gap:6px;padding-top:10px}.art-card-caption>span{font-size:10px}.art-dialog{padding:0;overflow:auto;width:94vw}.art-dialog[open]{display:block}.art-stage{height:48svh;min-height:280px;padding:30px}.art-zoom{max-width:min(100%,350px)}.art-info{padding:25px}.art-info h2{font-size:27px;margin:10px 0}.art-info>p:not(.eyebrow){line-height:1.8;margin-bottom:15px}.art-meta{font-size:11px;margin-bottom:15px}.art-pagination{padding-top:20px}.zoom-controls{bottom:10px}.art-close{right:10px;top:10px}.map-dialog{padding:21px 15px}.map-dialog svg{min-height:270px;max-height:53svh}.map-legend{font-size:10px;gap:8px 12px}.map-tabs button{padding:8px 11px;font-size:12px}.overview-return{top:90px}.help-dialog li span{font-size:13px}.focus-hint{font-size:11px}.fallback h2{font-size:30px}.fallback p{font-size:13px}.fallback .eyebrow{margin-top:55px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Touch movement is available on tablets as well as narrow phones. */
@media(pointer:coarse){.touch-controls{position:absolute;bottom:122px;left:18px;display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:4px;touch-action:none;z-index:6}.touch-controls button{background:#faf8f3e8;border:1px solid #fff9;backdrop-filter:blur(8px);border-radius:5px;font-size:18px;color:#54694e;touch-action:none;user-select:none}.touch-controls button:first-child{grid-column:2}.touch-controls button:nth-child(2){grid-row:2;grid-column:1}.touch-controls button:nth-child(3){grid-row:2;grid-column:2}.touch-controls button:nth-child(4){grid-row:2;grid-column:3}.welcome:not(.dismissed)~.touch-controls{display:none}.location{bottom:230px}.movement-tip{left:auto;right:18px;bottom:96px;transform:none}.movement-tip kbd,.movement-tip .tip-separator,.movement-tip span:last-of-type{display:none}}
@media(max-height:540px){#gallery{height:100svh;min-height:0}.topbar{height:62px;padding:0 20px}.brand>svg{width:29px;height:29px}.brand>span{font-size:19px}.brand-en{font-size:7px}.exhibition-meta,.chapter-rail,.location,.mini-map,.movement-tip{display:none}.toolbar{bottom:8px;width:auto;max-width:calc(100% - 24px);padding:4px}.toolbar button{padding:9px 13px;flex-direction:row;font-size:11px;gap:7px}.toolbar button svg{width:17px;height:17px}.toolbar-divider{height:20px}.welcome{top:75px;left:28px;width:285px;padding:17px 21px}.welcome h1{font-size:29px;line-height:1.25;margin:9px 0}.welcome h1 br{display:none}.title-dot{font-size:21px}.welcome-copy{font-size:12px;line-height:1.6}.welcome .primary-button{margin-top:13px;padding:9px 15px;font-size:12px}.welcome-note{display:none}.touch-controls{bottom:75px}.tour-status{top:68px;padding:8px 12px;width:320px}.overview-return{top:68px;padding:10px 16px}.art-stage{min-height:0}.fallback h2{font-size:25px;margin:8px 0}.fallback p{font-size:12px;margin-bottom:10px}.fallback .eyebrow{margin-top:35px}}
#gallery.pointer-locked::after{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;transform:translate(-50%,-50%);border:1px solid #ffffffe6;border-radius:50%;background:#344c42b3;box-shadow:0 0 2px #26372e66;pointer-events:none}
@media(max-width:600px) and (min-height:541px){.chapter-rail{display:none}.mini-map{width:auto;bottom:128px;right:18px;padding:11px 12px}.mini-map-title{gap:16px;font-size:10px}#mini-map{display:none}.location{top:89px;bottom:auto;left:18px;max-width:calc(100% - 36px);padding:8px 11px}.welcome:not(.dismissed)~.location{top:auto;bottom:132px}}
.overview-controls{position:absolute;top:105px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;flex-direction:column;gap:12px}.overview-controls>span{font-size:11px;letter-spacing:.03em;color:#73806d;background:#faf8f3d9;padding:6px 11px;border-radius:3px;white-space:nowrap}@media(min-width:901px) and (min-height:541px){.welcome{top:auto;bottom:160px;width:340px;padding:24px 28px;background:#faf8f3ed}.welcome h1{font-size:38px;line-height:1.35;margin:12px 0}.welcome h1 br{display:none}.title-dot{font-size:25px}.welcome-copy{font-size:13px}.welcome .primary-button{margin-top:18px}.welcome-note{margin-top:13px}}@media(max-width:600px){.overview-controls{top:89px}}@media(max-height:540px){.overview-controls{top:68px;gap:7px}.overview-controls>.primary-button{padding:9px 16px}}
.welcome:not(.dismissed)~.location{opacity:0;pointer-events:none}
.visit-artwork{display:flex;align-items:center;gap:10px;width:100%;padding:13px 15px;margin-top:26px;border:1px solid #62776038;border-radius:4px;background:#e8ede4;color:#3e563e;font-size:13px;text-align:left}.visit-artwork:hover{background:#dfe7d9}.visit-artwork>[data-icon]:last-child{margin-left:auto}.visit-artwork svg{width:17px;height:17px}.no-webgl .visit-artwork{display:none}.arrival-read{font-size:12px;white-space:nowrap;border-bottom:1px solid #6e846955;padding:8px 2px;margin-right:6px}.tour-status:has(.arrival-read:not([hidden])){width:390px}.is-overview .tour-status,.is-overview .touch-controls,.is-overview .chapter-rail,.is-overview .location{display:none}@media(max-width:600px){.visit-artwork{margin-top:20px}.tour-status:has(.arrival-read:not([hidden])){width:calc(100% - 36px)}}
@media(max-width:600px){#gallery:has(#tour-status:not([hidden])) .location{opacity:0;pointer-events:none}}
/* Mouse/touch destination walking uses the same scene as the guided tour. */
#scene[data-pointer="walk"],#scene[data-pointer="art"],#scene[data-pointer="author"]{cursor:pointer}#scene[data-pointer="blocked"]{cursor:not-allowed}#scene:active{cursor:grabbing}
.walk-notice{position:absolute;left:50%;top:112px;transform:translateX(-50%);max-width:calc(100% - 40px);padding:10px 16px;border:1px solid #fff8;border-radius:5px;background:#faf8f3ed;color:#405b49;font-size:13px;line-height:1.6;box-shadow:0 5px 20px #263d2410;pointer-events:none;z-index:8}
#movement-tip span{display:inline}.is-overview .walk-notice,.is-overview .focus-hint{display:none}
@media(max-width:600px){.walk-notice{top:92px;width:max-content;max-width:calc(100% - 36px);font-size:12px}.movement-tip{left:50%;right:auto;transform:translateX(-50%)}}
@media(max-height:540px){.walk-notice{top:68px;font-size:12px}.tour-kicker{display:none}.tour-status .icon-button{width:30px;height:30px}}

.catalog-item{min-width:0}.catalog-item .art-card{width:100%}.catalog-read{font-size:12px;color:#657b61;border-bottom:1px solid #b6c2ad;padding:3px 0 5px;min-height:32px}.catalog-read:hover{color:#2f4937}.catalog-item:focus-within .art-card-image{outline:1px solid #94a589}

.visitors-setting{display:flex;gap:10px;align-items:center;font-size:14px;padding-top:15px}.visitors-setting input{accent-color:#597659;width:18px;height:18px}

/* A quiet field journal; activities are opt-in and leave the gallery visible. */
.journal-entry{color:#4b6651;position:relative;min-height:44px}.journal-entry svg{width:19px;height:19px}#journal-badge{font:10px Georgia,serif;letter-spacing:.02em;padding:3px 5px;background:#e6ebdf;border-radius:3px}.quest-chip{position:absolute;left:40px;bottom:219px;width:260px;padding:11px 13px;display:flex;gap:10px;align-items:center;text-align:left;background:#faf8f3ed;border:1px solid #dddcca;border-radius:5px;box-shadow:0 5px 20px #273e340c;z-index:4}.quest-chip>span:nth-child(2){min-width:0;flex:1}.quest-chip small{display:block;font-size:10px;color:#7f8875;margin-bottom:5px}.quest-chip strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}#quest-number{font:23px Georgia,serif;color:#9b784d;border-right:1px solid var(--line);padding-right:10px}.is-overview .quest-chip{display:none}.no-webgl .quest-chip{z-index:9}
.journal-dialog{width:870px;padding:32px 36px;background:linear-gradient(120deg,#fcfaf5,#f6f3eb)}.journal-dialog .dialog-heading{padding-bottom:21px;border-bottom:1px solid var(--line)}.journal-dialog .dialog-heading h2{font-size:30px;margin-bottom:6px}.journal-progress{display:flex;justify-content:space-between;margin:19px 0 20px;font-size:12px;color:#7d8475}.journal-stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.journal-stamp{text-align:center;color:#a3a595;display:flex;flex-direction:column;align-items:center}.stamp-mark{font:29px var(--serif);border:1px dashed #b4b7a5;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;margin-bottom:11px;position:relative}.journal-stamp strong{font-size:12px;font-weight:500}.journal-stamp small{font-size:10px;margin-top:6px}.journal-stamp.earned{color:#4a725d}.earned .stamp-mark{border:2px solid currentColor;outline:1px solid currentColor;outline-offset:-7px;background:#5b795709;transform:rotate(-9deg)}.journal-stamp[data-chapter="1"].earned{color:#af7359}.journal-stamp[data-chapter="2"].earned{color:#668298}.journal-stamp[data-chapter="3"].earned{color:#aa874b}.journal-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:27px;border-top:1px solid var(--line);padding-top:25px}.journal-columns h3{font:23px/1.6 var(--serif);font-weight:400;margin:8px 0 16px}.mission-card{padding-right:24px;border-right:1px solid var(--line)}.mission-card p:not(.eyebrow){font-size:13px;line-height:1.85}.mission-copy,.exploration-complete>p:last-child{color:#7d8575}.mission-note{color:#929888;margin:17px 0}.mission-clue{border-left:2px solid #b5bc9e;padding-left:15px;margin-bottom:20px;color:#50634f}.mission-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.journal-secondary{font-size:12px;padding:11px 12px;border:1px solid #85957852;border-radius:4px;min-height:44px;line-height:1.6}.journal-secondary:hover{background:#e7eddf}.mission-card .primary-button{padding:11px 16px;font-size:13px;min-height:44px}.mission-quiet{display:flex;gap:15px;flex-wrap:wrap;margin-top:10px}.mission-quiet button{border:0;padding:8px 0;min-height:44px;font-size:11px;color:#7b8570;text-decoration:underline;text-underline-offset:4px}.mission-hint{margin-top:14px;color:#5b745b}.mode-note{background:#e5eadd;border-radius:4px;padding:7px 10px;margin-bottom:14px}.restart-link{padding:12px 0;min-height:44px;font-size:11px;color:#929785;margin-top:17px}.restart-confirmation{margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.restart-confirmation .mission-actions{margin-top:12px}.journal-collection{min-width:0}.journal-collection h3{font-size:21px}.journal-empty{text-align:center;border:1px dashed #c8cbbb;border-radius:5px;padding:21px 16px;color:#909681}.empty-heart{font:34px Georgia,serif;color:#9baa8c}.journal-empty p{font-size:13px;margin:8px 0}.journal-empty small{font-size:11px;line-height:1.8;display:block}.journal-favorites{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 13px}.journal-art{width:100%;text-align:left;padding:0}.journal-art .art-picture{height:auto;aspect-ratio:1;border:7px solid #e8e6da}.journal-art>span{display:block;font-size:12px;line-height:1.6;margin-top:8px}.remove-favorite{font-size:11px;color:#87907a;padding:8px 0;min-height:36px;text-decoration:underline;text-underline-offset:3px}.journal-storage{font-size:10px;color:#939987;line-height:1.8;margin-top:25px;padding-top:17px;border-top:1px solid var(--line)}
.favorite-artwork{align-self:flex-start;border:1px solid #a7b39b;padding:10px 13px;min-height:44px;font-size:12px;border-radius:4px;color:#617454;margin-top:19px}.favorite-artwork[aria-pressed="true"]{background:#e5ecdf;color:#3f633e}.art-info{overflow-y:auto;max-height:min(640px,77svh)}.art-observation{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.art-observation>p:not(.eyebrow){font-size:12px;line-height:1.85;margin:10px 0 12px;color:#788671}.observation-question{font-size:14px;line-height:1.8;font-weight:500;margin:10px 0 13px}.observation-choices{display:flex;flex-direction:column;gap:7px}.observation-choice{min-height:44px;text-align:left;padding:10px 13px;border:1px solid #b5bfaa;border-radius:4px;font-size:12px}.observation-choice:hover{background:#e9efdf}.art-observation.solved{border-color:#8da880}.art-observation.solved .eyebrow{color:#4f754a}.observation-feedback{min-height:0;font-size:11px!important}.observation-feedback:empty{display:none}.art-observation .journal-secondary{width:100%;text-align:center}
@media(max-width:900px){.header-actions{gap:14px}.quest-chip{left:25px}.journal-dialog{padding:26px}.journal-columns{gap:22px}.mission-card{padding-right:20px}.art-info{padding-top:53px}.art-info h2{margin:12px 0}}
@media(max-width:600px){.topbar{padding-inline:15px}.header-actions{gap:10px}.header-actions .count{display:none}.journal-label{font-size:0}.journal-label::after{content:'手账';font-size:12px}#journal-badge{position:absolute;right:-3px;top:0;font-size:8px;padding:1px 3px}.header-actions .plain-button{gap:5px}.brand>span{font-size:18px}.brand{gap:5px}.brand>svg{width:26px}.quest-chip{left:18px;bottom:229px;width:230px;padding:9px 11px}.quest-chip small{font-size:9px}.quest-chip strong{font-size:11px}#quest-number{font-size:20px}.journal-dialog{padding:23px 20px}.journal-dialog .dialog-heading h2{font-size:23px}.journal-progress{font-size:11px}.journal-stamps{gap:5px;margin-bottom:22px}.stamp-mark{width:53px;height:53px;font-size:24px}.journal-stamp strong{font-size:10px}.journal-stamp small{font-size:8px}.journal-columns{grid-template-columns:1fr;gap:25px;padding-top:20px}.mission-card{border-right:0;padding:0}.journal-columns h3{font-size:22px}.journal-collection{border-top:1px solid var(--line);padding-top:22px}.journal-favorites{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.journal-art .art-picture{border-width:5px}.journal-art>span{font-size:10px}.journal-storage{font-size:10px}.art-info{max-height:none;overflow:visible;padding-top:25px}.observation-choice{min-height:46px}.journal-entry{min-height:44px}}
@media(max-width:370px){.brand-en{display:none}.header-actions{gap:6px}.brand>span{font-size:16px}.header-actions .plain-button{font-size:11px}.header-actions .plain-button svg{width:17px}.journal-label::after{font-size:11px}}
@media(max-height:540px){.quest-chip{display:none}.journal-dialog{max-height:94svh;padding:23px}.journal-dialog .dialog-heading h2{font-size:24px}.journal-stamps{margin-bottom:18px}.stamp-mark{width:54px;height:54px;font-size:24px}.journal-progress{margin:14px 0}.art-info{max-height:77svh}.art-dialog[open]{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr)}}
.observation-preview{display:none}
@media(max-width:600px){.observation-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,42%);gap:14px;align-items:start}.observation-preview{display:block}.observation-preview .art-picture{height:auto;border:5px solid #e8e6da}.observation-preview small{display:block;font-size:9px;color:#8d9680;text-align:center;margin-top:8px}}
/* Reading keeps controls outside the optional prose, including on portrait phones. */
.art-dialog[open]{grid-template-rows:minmax(0,1fr) auto}.art-dialog .art-pagination{grid-column:1/-1;margin:0;padding:10px 22px;background:var(--paper);border-top:1px solid var(--line);min-height:54px}.art-dialog .art-pagination button{min-height:44px}.art-info-toggle{position:absolute;left:16px;top:14px;z-index:5;background:#faf8f3eb;border:1px solid #d8dccf;border-radius:4px;padding:10px 14px;min-height:44px;font-size:12px}.art-stage{height:min(620px,70svh)}.art-zoom{max-width:840px}.art-resolution{position:absolute;bottom:5px;left:14px;right:14px;text-align:center;font-size:10px;color:#747e70;pointer-events:none;margin:0}.art-stage .zoom-controls{bottom:29px}.art-info[hidden]{display:none!important}.art-dialog.art-focused[open]{grid-template-columns:minmax(0,1fr)}.art-focused .art-stage{height:min(720px,77svh)}
@media(max-width:600px){.art-dialog[open]{display:flex;flex-direction:column}.art-dialog .art-info{max-height:24svh;overflow:auto;padding:18px 22px}.art-stage{height:49svh;min-height:250px;flex-shrink:0}.art-dialog .art-pagination{flex-shrink:0;padding:6px 14px}.art-dialog.art-focused .art-stage{height:calc(88svh - 65px)}.art-info-toggle{top:10px;left:10px}.art-stage .art-zoom{max-width:none}.art-dialog .art-close{width:44px;height:44px}}
@media(max-height:540px) and (min-width:601px){.art-stage,.art-focused .art-stage{height:calc(88svh - 66px)}.art-dialog .art-info{max-height:calc(88svh - 66px)}}
/* A settled viewing prompt must clear the frame even in a 720px-high window. */
.tour-status:has(.arrival-read:not([hidden])){top:98px;min-height:44px;padding:4px 12px}.tour-status:has(.arrival-read:not([hidden])) .tour-kicker{display:none}
@media(max-width:600px){.tour-status:has(.arrival-read:not([hidden])){top:84px}}
@media(max-height:540px){.tour-status:has(.arrival-read:not([hidden])){top:66px}}

/* Author introduction shares the entrance palette and existing modal behavior. */
.author-link{display:flex;align-items:center;gap:12px;min-height:44px;font-size:13px;color:#526a53;text-align:left}.author-link>span{color:#9d845d}.welcome .author-link{margin-top:5px}.welcome .welcome-note{margin-top:3px}
.author-dialog{width:min(560px,calc(100% - 32px));max-height:88svh;padding:36px 38px;background:#f8f5ed;color:#354a3d}.author-dialog .dialog-heading{align-items:flex-start;margin-bottom:22px}.author-dialog .dialog-heading h2{font:36px/1.4 var(--serif);margin-top:10px;overflow-wrap:anywhere}.author-dialog .icon-button{width:44px;height:44px}.author-summary{padding:18px 0 22px;border-bottom:1px solid #9d845d42;font:20px/1.8 var(--serif);color:#6c7159;overflow-wrap:anywhere}.author-story{padding-top:22px;font-size:15px;line-height:2;color:#606a5e;overflow-wrap:anywhere}.author-story p+p{margin-top:16px}.author-note{font-size:11px;line-height:1.8;color:#838578;margin-top:26px;padding-top:15px;border-top:1px solid #9d845d29}
@media(max-width:600px){.author-dialog{padding:24px}.author-dialog .dialog-heading h2{font-size:29px}.author-summary{font-size:18px}.author-story{font-size:14px}.welcome .author-link{margin-top:0}.welcome .welcome-note{margin-top:0}}
@media(max-height:540px){.author-dialog{padding:22px 28px}.welcome .author-link{display:inline-flex;vertical-align:middle;margin:10px 0 0 12px;font-size:12px}}

/* Opening view: let the architecture lead; reveal navigation after entry. */
body:not(.no-webgl) #gallery:has(.welcome:not(.dismissed)) :is(.toolbar,.mini-map,.chapter-rail,.location,.movement-tip,.touch-controls,.quest-chip,.journal-entry){visibility:hidden;pointer-events:none}
.welcome{left:5.2%;top:auto;bottom:12%;width:430px;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none;isolation:isolate;transform:none}
.welcome::before{content:'';position:fixed;z-index:-1;pointer-events:none;inset:0;background:linear-gradient(90deg,#faf8f3e8 0%,#faf8f3c7 22%,#faf8f350 40%,transparent 58%)}
.welcome .eyebrow{font-size:13px;letter-spacing:.22em;color:#536951}
.welcome h1{font:72px/1.2 var(--serif);letter-spacing:.04em;margin:23px 0 24px;color:#2c4536;text-shadow:0 2px 20px #fff8}
.welcome .title-prefix{font-size:.66em;letter-spacing:.1em}.welcome .title-dot{color:#aa8554}
.welcome-copy{font-size:17px;line-height:1.9;letter-spacing:.07em;color:#56654f}
.welcome .primary-button{min-height:52px;margin-top:28px;padding:15px 25px;gap:62px;border-radius:2px;background:#314f3f;box-shadow:0 7px 20px #233c2926}
.welcome-links{display:flex;gap:28px;margin-top:12px}.welcome .author-link{margin:0;font-size:12px;min-height:44px}.welcome .welcome-note{margin-top:12px;font-size:10px;letter-spacing:.1em;color:#727b69}

#art-source{font-size:11px;line-height:1.7;color:#7d8575;margin:-9px 0 20px;overflow-wrap:anywhere}#art-source summary{cursor:pointer;padding:8px 0;min-height:32px}#art-source details p{margin-bottom:8px}#art-source a{display:inline-block;margin-right:15px;text-decoration:underline;text-underline-offset:3px;min-height:30px}.art-info{overflow:auto}
@media(max-width:900px){.welcome{left:5%;width:360px;bottom:12%}.welcome h1{font-size:62px}.welcome-copy{font-size:15px}}
@media(max-width:600px){.welcome{left:26px;right:26px;width:auto;top:auto;bottom:max(32px,env(safe-area-inset-bottom));padding:0}.welcome::before{background:linear-gradient(0deg,#faf8f3 0%,#faf8f3eb 23%,#faf8f39c 39%,transparent 62%)}.welcome h1{font-size:48px;line-height:1.18;margin:13px 0 14px}.welcome .eyebrow{font-size:11px}.welcome .title-prefix{font-size:.63em}.welcome-copy{font-size:13px}.welcome .primary-button{margin-top:20px;min-height:48px;padding:13px 23px;font-size:13px;gap:65px}.welcome-links{margin-top:6px;gap:27px}.welcome .welcome-note{margin-top:4px;font-size:9px}}
@media(max-height:560px){.welcome{left:5%;bottom:25px;width:340px}.welcome h1{font-size:40px;margin:10px 0}.welcome h1 br{display:none}.welcome .title-prefix{font-size:inherit}.welcome-copy{font-size:12px}.welcome .eyebrow{font-size:10px}.welcome .primary-button{margin-top:13px;min-height:44px;padding:11px 18px}.welcome-links{margin-top:2px}.welcome .welcome-note{margin-top:0}.welcome .author-link{margin:0}}
@media(min-height:561px){.welcome h1 br{display:block}}
