@font-face{font-family:'Baoshange Serif';src:url('assets/fonts/baoshange-serif-464f66b76b.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#262c29;--muted:#7c807a;--line:#e8e9e4;--accent:#8c4036;--serif:'Baoshange Serif','Songti SC','STSong','Noto Serif CJK SC','SimSun',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:17px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.skip{position:fixed;top:-80px;left:20px;padding:12px;background:white;z-index:30}.skip:focus{top:10px}.masthead{max-width:1440px;margin:auto;padding:29px 64px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;gap:14px;align-items:center;font-family:var(--serif);font-size:28px;letter-spacing:5px}.seal{display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:11.2px;line-height:1.1;letter-spacing:2px;width:26px;height:34px;border-radius:1px;font-weight:400;border:3px double #b7786c}.masthead-note{font-size:13px;letter-spacing:3px;color:var(--muted)}main{max-width:1680px;margin:auto}.intro{padding:68px 112px 62px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2.5px;color:var(--muted)}h1{font-family:var(--serif);font-size:clamp(50px,6vw,82px);line-height:1.42;font-weight:400;letter-spacing:8px;margin:26px 0 24px}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end}.intro p{color:var(--muted);line-height:2;letter-spacing:2px;font-size:16px;margin:0}.scroll-note{font-size:13px;letter-spacing:2px;color:var(--muted);padding-bottom:6px}.scroll-note span{display:inline-block;margin-left:22px;font-size:24px}.collection{padding:0 32px}.filter-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;background:rgba(255,255,255,.97);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 2px;min-height:67px}.filters{display:flex;gap:30px;white-space:nowrap;overflow:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{background:transparent;border:0;padding:24px 0 21px;color:var(--muted);font-size:14px;letter-spacing:1px;border-bottom:2px solid transparent}.filters button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.filters button:hover{color:var(--accent)}#count{white-space:nowrap;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.gallery{max-width:none;margin:40px auto 0}.artwork{margin:0 0 80px}.art-button{display:block;width:100%;border:0;background:#fff;padding:0;text-align:left}.painting-wrap{display:flex;justify-content:center;align-items:center;min-height:120px;position:relative}.painting{display:block;width:100%;height:auto;object-fit:contain;transition:opacity .25s}.artwork.portrait .painting{width:auto;max-width:100%;max-height:900px}.artwork.round .painting{width:min(820px,100%)}.view-hint{position:absolute;right:16px;bottom:16px;color:#fff;background:rgba(38,44,41,.78);padding:9px 14px;font-size:13px;letter-spacing:1px;opacity:0;transition:opacity .2s}.art-button:hover .view-hint,.art-button:focus-visible .view-hint{opacity:1}.art-button:hover .painting{opacity:.94}.art-caption{display:flex;align-items:start;justify-content:space-between;gap:15px;padding-top:14px;border-top:1px solid var(--line);margin-top:16px}.title-line{display:flex;align-items:baseline;gap:18px}.art-number{font-family:Georgia,serif;font-size:14px;letter-spacing:1px;color:#92958d}.art-title{font-family:var(--serif);font-size:28px;letter-spacing:3px;font-weight:400;margin:0}.provisional{font-family:-apple-system,sans-serif;font-size:12px;letter-spacing:0;color:var(--muted);margin-left:8px}.art-meta{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:13px;letter-spacing:1px;padding-top:5px}.scene-label{color:var(--accent)}.collection-end{text-align:center;color:#93968e;font-family:var(--serif);font-size:16px;letter-spacing:3px;padding:15px 0 90px}.collection-end span{margin:0 18px;color:#c9ccc3}footer{border-top:1px solid var(--line);max-width:1312px;margin:auto;padding:45px 48px 55px;display:flex;align-items:center;justify-content:space-between}.footer-name{font-family:var(--serif);font-size:26px;letter-spacing:5px}footer p{font-size:13px;color:var(--muted);margin:15px 0 0;letter-spacing:1px}footer a{font-size:13px;color:var(--muted)}body.viewing{overflow:hidden}dialog{border:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;color:var(--ink);background:white;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#fff}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:20px 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:6;background:rgba(255,255,255,.97)}.viewer-bar h2{font-family:var(--serif);font-size:30px;letter-spacing:3px;font-weight:400;margin:8px 0 0}.close{background:white;border:1px solid var(--line);padding:10px 14px;font-size:14px}.close span{font-size:26px;margin-left:14px;vertical-align:-2px}.viewer-body{max-width:1200px;margin:auto;padding:30px 40px 50px}#viewer-meta{color:var(--muted);font-size:14px;letter-spacing:1px;margin-bottom:35px}.detail-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;font-size:14px}.detail-tools>span{font-family:var(--serif);letter-spacing:3px}.detail-tools button,.viewer-nav button{border:0;background:none;color:var(--muted);padding:8px 0;font-size:14px}.art-stage{overflow:auto;text-align:center;background:#fff}.art-stage img{display:block;width:auto;max-width:100%;max-height:78vh;height:auto;margin:auto}.art-stage.zoomed{text-align:left}.art-stage.zoomed img{width:auto;max-width:none;max-height:none;margin:0}.scene-heading{border-top:1px solid var(--line);margin-top:70px;padding:30px 0 20px}.scene-heading h3{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:4px;margin:0 0 12px}.scene-heading p{color:var(--muted);font-size:14px}#scene-images img{display:block;max-width:100%;height:auto;margin:0 auto 25px}.viewer-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:50px;padding-top:25px}.viewer-nav button:disabled{opacity:.3;cursor:default}#position{font-family:Georgia,serif;color:var(--muted);font-size:14px}.error{padding:50px;text-align:center;color:var(--accent)}@media(min-width:1600px){.intro{padding-top:90px;padding-bottom:80px}}@media(max-width:760px){.masthead{padding:24px}.brand{font-size:24px}.masthead-note{font-size:11px;letter-spacing:1px}.intro{padding:48px 28px 46px}h1{letter-spacing:5px;margin-top:24px}.intro p{font-size:14px;letter-spacing:1px}.scroll-note{font-size:12px;letter-spacing:0}.scroll-note span{margin-left:8px}.collection{padding:0 12px}.filter-bar{min-height:62px;gap:12px}.filters{gap:23px}.filters button{font-size:13px;padding:22px 0 20px}#count{font-size:12px}.gallery{margin-top:28px}.artwork{margin-bottom:56px}.art-caption{padding-top:12px;margin-top:12px}.title-line{gap:10px}.art-title{font-size:23px;letter-spacing:2px}.art-meta{font-size:12px;letter-spacing:0;flex-direction:column;align-items:flex-end;gap:7px}.provisional{font-size:11px;margin-left:4px}.artwork.portrait .painting{max-height:78svh}.view-hint{display:none}.collection-end{font-size:13px;letter-spacing:1px;padding-bottom:55px}.collection-end span{margin:0 8px}footer{padding:30px 24px 40px}footer p{max-width:220px;font-size:12px}.viewer-bar{padding:16px 20px}.viewer-bar h2{font-size:25px}.viewer-body{padding:25px 20px 35px}.close{padding:6px 10px}.scene-heading{margin-top:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(max-width:760px){.filter-bar{display:block}.filters{justify-content:space-between;gap:10px;width:100%}#count{position:absolute;right:0;top:-25px;font-size:12px}.filters button{flex-shrink:0}}
/* A quiet, moving threshold before the collection. */
[hidden]{display:none!important}body.at-entrance{overflow:hidden}.entrance{position:relative;isolation:isolate;height:100svh;min-height:520px;overflow:hidden;background:#fff}.entrance-brand{position:absolute;top:32px;left:clamp(24px,5vw,72px);z-index:2;display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:28px;letter-spacing:5px}.moving-paintings{position:absolute;inset:0;z-index:-2;opacity:.3;pointer-events:none;user-select:none}.painting-ribbon{position:absolute;width:100%;height:44%;overflow:hidden}.ribbon-top{top:4%}.ribbon-bottom{bottom:2%}.ribbon-track{display:flex;width:max-content;height:100%;gap:0;animation:paintings-drift 100s linear infinite;will-change:transform}.ribbon-bottom .ribbon-track{animation-direction:reverse;animation-duration:120s}.ribbon-track img{display:block;flex:none;height:100%;width:auto;object-fit:contain;padding:0 8px}.entrance::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.05) 20%,rgba(255,255,255,.89) 43%,rgba(255,255,255,.96) 53%,rgba(255,255,255,.08) 80%,rgba(255,255,255,.55))}.entrance-copy{position:absolute;left:24px;right:24px;top:48%;transform:translateY(-50%);text-align:center}.entrance-copy .eyebrow{font-size:13px;letter-spacing:5px;color:#687369;margin:0 0 29px}.entrance-copy h1{font-size:clamp(34px,4.2vw,62px);font-weight:400;letter-spacing:6px;line-height:1.6;margin:0 0 40px;color:#293a30}.mobile-break{display:none}#enter-gallery{display:inline-flex;gap:36px;align-items:center;background:#31483c;color:#fff;border:1px solid #31483c;padding:17px 26px;font-family:var(--serif);font-size:18px;letter-spacing:3px;transition:background .2s,transform .2s}#enter-gallery:hover{background:#425e4f;transform:translateY(-2px)}.entrance-footnote{position:absolute;bottom:26px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:4px;color:#7c857a}.at-entrance .ribbon-track{animation-play-state:running}body:not(.at-entrance) .ribbon-track{animation-play-state:paused}#intro-title:focus{outline:none}@keyframes paintings-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(max-width:760px){.entrance-brand{top:25px;font-size:25px}.painting-ribbon{height:37%}.ribbon-top{top:8%}.ribbon-bottom{bottom:5%}.ribbon-track img{width:auto;padding:0 6px}.entrance-copy{top:49%}.entrance-copy h1{font-size:38px;letter-spacing:4px;line-height:1.8;margin-bottom:29px}.mobile-break{display:initial}.entrance-copy .eyebrow{font-size:12px;letter-spacing:4px;margin-bottom:19px}#enter-gallery{font-size:17px;padding:15px 22px;gap:25px}.entrance-footnote{font-size:11px;bottom:23px}}@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none!important;transform:translateX(-6%);will-change:auto}}
.about-trigger{padding:12px 0 12px 16px;border:0;background:transparent;color:#687369;font-size:14px;letter-spacing:2px}.about-trigger:hover{color:var(--accent)}.about-dialog{width:min(620px,calc(100% - 40px));height:auto;max-height:calc(100svh - 48px);margin:auto;border:1px solid var(--line)}.about-dialog::backdrop{background:rgba(29,40,32,.25);backdrop-filter:blur(5px)}.about-top{display:flex;justify-content:space-between;align-items:center;padding:22px 30px;border-bottom:1px solid var(--line)}.about-body{padding:40px 48px 52px}.about-body h2{font-family:var(--serif);font-size:46px;line-height:1.65;font-weight:400;letter-spacing:4px;margin:20px 0 28px}.about-body #artist-bio p{font-size:17px;color:#687369;line-height:2.2;margin:0 0 14px}.artist-contact{margin-top:30px;padding-top:25px;border-top:1px solid var(--line);font-size:17px;line-height:2}.artist-contact a{color:var(--accent);overflow-wrap:anywhere}@media(max-width:760px){.about-trigger{font-size:13px;letter-spacing:1px}.about-dialog{width:calc(100% - 28px)}.about-top{padding:16px 22px}.about-body{padding:28px 26px 36px}.about-body h2{font-size:36px}.about-body #artist-bio p{font-size:16px}}
.about-body #artist-bio .artist-role{font-size:14px;line-height:1.8;color:#4b594f;margin-bottom:24px}.artist-contact .eyebrow{margin:0 0 9px;font-size:12px;letter-spacing:2px}.artist-contact>a{font-size:20px;letter-spacing:1px}
.artist-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:20px 0 30px}.artist-heading h2{margin:0 0 10px}.artist-heading .artist-role{font-size:14px;line-height:1.9;color:#4b594f;margin:0}.artist-portrait{display:block;width:118px;height:auto;flex-shrink:0}@media(max-width:760px){.artist-heading{gap:16px;margin:18px 0 26px}.artist-portrait{width:98px}.artist-heading .artist-role{font-size:13px}}

@media(max-width:760px){.filters{flex-wrap:wrap;justify-content:flex-start;gap:0 18px;overflow:visible}.filters button{padding:15px 0 13px}.artist-heading>div{min-width:0}.artist-heading .artist-role{overflow-wrap:anywhere}.art-caption{flex-wrap:wrap}.title-line{min-width:0;flex-wrap:wrap}.intro-bottom{gap:16px;flex-wrap:wrap}}
.detail-art-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.detail-art-button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.art-preview{background:#161c18;color:#f7f7f2;overflow:hidden;width:100%;height:100dvh;max-height:100dvh}.art-preview::backdrop{background:#161c18}.preview-toolbar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:calc(18px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 18px max(24px,env(safe-area-inset-left));background:#161c18}.preview-toolbar h2{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:3px;margin:0}.preview-actions{display:flex;gap:14px;flex-shrink:0}.preview-actions button{background:transparent;border:1px solid #637166;color:#fff;padding:10px 14px;font-size:15px;min-height:44px}.preview-actions button:hover{background:#344438}.preview-actions button:focus-visible{outline:2px solid white;outline-offset:3px}.preview-actions span{font-size:22px;margin-left:12px;vertical-align:-1px}.preview-stage{position:absolute;inset:calc(88px + env(safe-area-inset-top)) 24px calc(60px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none;cursor:zoom-in;outline-offset:-2px}.preview-stage.is-zoomed{cursor:grab}.preview-stage.is-zoomed:active{cursor:grabbing}.preview-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;will-change:transform;pointer-events:none;flex-shrink:0}.preview-help{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:16px;right:16px;text-align:center;color:#b4bfb5;font-size:13px;line-height:1.6;letter-spacing:1px;margin:0;pointer-events:none}.touch-help{display:none}@media(pointer:coarse){.desktop-help{display:none}.touch-help{display:initial}}@media(max-width:760px){.preview-toolbar{padding-left:16px;padding-right:16px;gap:10px}.preview-toolbar h2{font-size:20px;letter-spacing:1px}.preview-actions{gap:8px}.preview-actions button{font-size:13px;padding:9px 10px}.preview-actions span{font-size:20px;margin-left:6px}.preview-stage{left:8px;right:8px}.preview-help{font-size:12px;letter-spacing:0}}@media(max-width:380px){.preview-toolbar h2{font-size:18px}.preview-actions button{padding:8px}.preview-toolbar{padding-left:12px;padding-right:12px}}

/* Group the artwork title and labels above the image. */
.artwork>.art-caption{margin:0 0 24px;padding:0;border:0;align-items:center}.artwork>.art-caption .art-meta{padding-top:0}@media(max-width:760px){.artwork>.art-caption{margin-bottom:18px}}
