:root{--paper:#f4f0e7;--ink:#233a33;--muted:#71796d;--line:#d6d8c9;--red:#a8553c;--serif:Georgia,'Songti SC','Noto Serif CJK SC',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}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,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}button{border:0}header{padding:24px 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}header>a:last-child{font-size:12px}.brand{font:17px var(--serif);letter-spacing:1.5px}.brand small{display:block;font:10px sans-serif;letter-spacing:1px;margin-top:7px;padding-left:24px;color:var(--muted)}.opening{min-height:760px;display:grid;grid-template-columns:1fr 1.15fr;gap:2vw;padding:78px 5vw 70px}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.8}.opening-copy{padding-top:45px}.opening h1{font:clamp(45px,5vw,76px)/1.08 var(--serif);letter-spacing:-2.5px;margin:35px 0 26px}.opening h1 em{font-weight:400;color:var(--red)}.intro-cn{font:21px var(--serif)}.intro-note{font-size:13px;color:var(--muted);line-height:2.1;margin:25px 0}.start{display:inline-flex;align-items:center;justify-content:space-between;gap:46px;padding:16px 22px;background:var(--ink);color:var(--paper);font-size:12px;transition:background .2s,transform .2s}.start:hover{background:#355748;transform:translateY(-2px)}.edition{display:block;margin-top:32px;font-size:8px;letter-spacing:1.5px;color:var(--muted)}.opening-photos{position:relative;min-height:595px}.cover{position:absolute;padding:0;background:var(--ink);color:var(--paper);box-shadow:0 18px 40px #233a3315;transition:transform .4s;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.cover:hover img{transform:scale(1.025)}.cover span{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:25px 16px 14px;background:linear-gradient(transparent,#14221db3);font-size:10px;letter-spacing:1.4px}.cover i{font-style:normal;letter-spacing:0}.sea{top:0;left:0;width:93%;height:320px;transform:rotate(-2deg)}.sea:hover{transform:rotate(0)}.street{top:266px;right:0;width:77%;height:298px;transform:rotate(3deg);border:7px solid var(--paper)}.street:hover{transform:rotate(0)}.margin-note{position:absolute;bottom:80px;left:6px;writing-mode:vertical-rl;font-size:9px;letter-spacing:2px;color:var(--muted)}.collection{padding:65px 5vw 20px;border-top:1px solid var(--line)}.collection-top{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:35px}.collection-top h2{font:32px var(--serif);margin:13px 0 0}.collection-top p{text-align:right;font-size:12px;line-height:2;color:var(--muted)}.collection-top small{font-size:10px}.city-tabs{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.city-tabs button{padding:22px 32px 22px 20px;background:transparent;flex:1;text-align:left;font:32px var(--serif);border-bottom:3px solid transparent;transition:background .25s}.city-tabs button[aria-pressed=true]{background:#e6e9de;border-bottom-color:var(--ink)}.city-tabs button>span{font:10px sans-serif;margin-right:14px;color:var(--muted)}.city-tabs small{display:inline-block;font:11px sans-serif;margin-left:20px;color:var(--muted)}.city-intro{padding:42px 0 28px;display:flex;justify-content:space-between;align-items:center;gap:25px}.city-intro h3{font:35px var(--serif);margin:12px 0}.city-intro p{font-size:13px;line-height:1.9;color:var(--muted);max-width:580px}.chapter-links{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 35px}.chapter-links a{border:1px solid var(--line);padding:9px 14px;font-size:11px;transition:background .2s}.chapter-links a:hover{background:#e6e9de}.photo-chapter{padding:36px 0 60px;border-top:1px solid var(--line);scroll-margin-top:30px}.chapter-heading{display:flex;align-items:center;gap:18px;margin-bottom:28px}.chapter-heading>span{font:italic 28px var(--serif);color:var(--red)}.chapter-heading h3{font:23px var(--serif);font-weight:400;margin:0}.chapter-heading small{margin-left:auto;font-size:9px;letter-spacing:1px;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 24px;align-items:start}.photo-card{background:transparent;padding:0;text-align:left;width:100%}.photo-card .image-frame{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#e9e5dc;overflow:hidden}.photo-card img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .45s,filter .4s}.photo-card:hover img{transform:scale(1.018);filter:brightness(1.025)}.photo-card .photo-label{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font:14px var(--serif);line-height:1.7}.photo-card .photo-caption{display:block;color:var(--muted);font-size:11px;line-height:1.8;margin-top:5px}.photo-card .confidence{display:block;color:var(--muted);font-size:9px;margin-top:10px;letter-spacing:.5px}.photo-card .confidence.pending{color:var(--red)}.closing{padding:90px 5vw;text-align:center;background:#e9ecdf}.closing h2{font:42px/1.6 var(--serif);font-weight:400}.closing h2 em{font-style:normal;color:var(--red)}.closing button{background:transparent;border-bottom:1px solid var(--ink);padding:12px 0;font-size:13px}.closing>p{font-size:11px;color:var(--muted);margin-top:35px;line-height:1.8}.closing details{max-width:640px;margin:30px auto 0;font-size:12px;line-height:1.9;color:var(--muted)}summary{cursor:pointer}.closing details p{text-align:left}footer{padding:35px 5vw;display:flex;justify-content:space-between;gap:18px;font-size:10px}footer span{letter-spacing:1px;color:var(--muted)}dialog{border:0;background:#172b24;color:#f4f0e7;padding:0;width:96vw;max-width:1600px;max-height:94dvh;overflow:auto}dialog::backdrop{background:#0c1713e8;backdrop-filter:blur(8px)}.viewer-bar{position:sticky;top:0;z-index:3;background:#172b24;display:flex;justify-content:space-between;align-items:center;padding:15px 24px;border-bottom:1px solid #ffffff22;font-size:10px;letter-spacing:1px}.viewer-bar button{color:inherit;background:transparent;padding:10px}.viewer-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;padding:24px}.viewer-body figure{margin:0;min-width:0;align-self:center}.viewer-body figure img{width:100%;height:66dvh;display:block;object-fit:contain;touch-action:pan-y}.viewer-body figcaption{font-size:10px;color:#c2cbbf;text-align:center;line-height:1.8;margin-top:15px}.viewer-body aside{padding:20px 8px;align-self:center}.viewer-body h2{font:27px/1.5 var(--serif);margin:16px 0}.viewer-body aside>p{font-size:13px;color:#ced7cb;line-height:2}.viewer-body #viewer-status{font-size:10px;color:#c5d4b8;border:1px solid #ffffff33;display:inline-block;padding:5px 8px}.viewer-body #viewer-status.pending{color:#efb08a}.viewer-body details{border-top:1px solid #ffffff22;padding:13px 0;font-size:11px;line-height:1.9;color:#c2cbbf}.viewer-body details a{text-decoration:underline}.viewer-controls{display:flex;gap:12px;margin:24px 0 16px}.viewer-controls button{flex:1;background:#f4f0e7;color:var(--ink);padding:14px 5px;font-size:11px}.viewer-body aside>small{font-size:9px;color:#9aafa0}.loading{padding:45px 0}body.modal-open{overflow:hidden}
@media(min-width:1400px){main{max-width:1600px;margin:auto}.opening{gap:60px}.opening-photos{min-height:640px}.sea{height:380px}.street{top:325px}}
@media(max-width:900px){.opening{min-height:0;grid-template-columns:1fr;padding-top:35px;gap:42px}.opening-copy{padding-top:0}.opening h1{font-size:58px}.opening-photos{min-height:520px;max-width:650px;width:100%;justify-self:center}.sea{height:300px;width:90%}.street{height:250px;top:240px;width:70%}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-tabs small{display:block;margin:8px 0 0 30px}.viewer-body{grid-template-columns:minmax(0,1fr);padding:16px;gap:10px}.viewer-body figure img{height:52dvh}.viewer-body aside{padding:10px 5px}.viewer-body h2{font-size:24px;margin:10px 0}.viewer-body aside>p{margin:13px 0}.viewer-controls{position:sticky;bottom:0;background:#172b24;padding:8px 0}.viewer-body aside>small{display:none}}
@media(max-width:520px){header{padding:18px 5vw}.brand{font-size:12px;letter-spacing:.5px}.brand small{font-size:8px}header>a:last-child{font-size:10px}.opening{padding-bottom:40px}.opening h1{font-size:43px;letter-spacing:-1.5px;margin-top:25px}.intro-cn{font-size:18px}.opening-photos{min-height:350px}.sea{height:200px}.street{height:170px;top:166px;border-width:5px}.margin-note{font-size:7px;bottom:45px}.cover span{font-size:8px;padding:25px 9px 10px}.cover i{font-size:8px}.collection{padding-top:42px}.collection-top{align-items:start;flex-direction:column;gap:6px;margin-bottom:20px}.collection-top h2{font-size:26px}.collection-top p{text-align:left;font-size:11px}.city-tabs button{font-size:27px;padding:16px 10px}.city-tabs small{font-size:9px;margin-left:25px}.city-intro{align-items:start;flex-direction:column;padding-top:28px;gap:6px}.city-intro h3{font-size:29px}.city-intro p{font-size:12px}.city-intro .start{padding:12px 16px}.chapter-links{gap:7px}.chapter-links a{font-size:10px;padding:8px 10px}.photo-grid{grid-template-columns:minmax(0,1fr);gap:30px}.photo-chapter{padding:26px 0 36px}.chapter-heading h3{font-size:21px}.photo-card .photo-label{font-size:17px}.photo-card .photo-caption{font-size:12px}.closing{padding:55px 6vw}.closing h2{font-size:31px}footer{flex-wrap:wrap;font-size:9px}footer span{order:3;width:100%;text-align:center;margin-top:15px}dialog{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh}.viewer-bar{padding:10px 15px}.viewer-body figure img{height:43dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.issue-ribbon{display:flex;justify-content:space-between;gap:15px;padding:17px 5vw;background:#e6e9de;font-size:12px;line-height:1.8}.next-issue{display:flex;align-items:center;gap:35px;padding:55px 5vw;border-top:1px solid var(--line)}.next-issue img{width:240px;aspect-ratio:16/9;object-fit:cover}.next-issue small,.next-issue strong,.next-issue span>span{display:block}.next-issue small{font-size:9px;letter-spacing:2px}.next-issue strong{font:28px/1.5 var(--serif);margin:12px 0}.next-issue span>span{font-size:12px}:is(.yunnan,.editorial) .opening h1{letter-spacing:-2px}:is(.yunnan,.editorial) .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}:is(.yunnan,.editorial) .photo-card:first-child.landscape{grid-column:1/-1}:is(.yunnan,.editorial) .photo-card:first-child.landscape .image-frame{aspect-ratio:16/9}:is(.yunnan,.editorial) .photo-card .photo-label{font-size:18px}:is(.yunnan,.editorial) .photo-card .photo-caption{font-size:12px;max-width:650px}:is(.yunnan,.editorial) .cover img{object-position:center}:is(.yunnan,.editorial) .closing{background:#e4e8dd}
@media(max-width:520px){.issue-ribbon{font-size:10px}:is(.yunnan,.editorial) .photo-grid{grid-template-columns:1fr;gap:30px}:is(.yunnan,.editorial) .opening h1{font-size:43px}.next-issue{flex-direction:column;align-items:start;gap:20px}.next-issue img{width:100%}.next-issue strong{font-size:25px}}

.qingdao{--paper:#f3f0e8;--ink:#253f48;--muted:#68777a;--red:#a66349}.qingdao .closing{background:#e2e9e6}.qingdao .cover.street img{object-position:center 60%}.qingdao .city-tabs button[aria-pressed=true]{background:#e2e9e6}

.szhk{--paper:#f3f0e8;--ink:#263b42;--muted:#6f7977;--red:#a36745}.szhk .closing,.szhk .city-tabs button[aria-pressed=true]{background:#e3e8e2}.szhk .opening h1{font-size:clamp(44px,4.6vw,70px)}@media(max-width:520px){.szhk .opening h1{font-size:43px}.szhk .city-tabs button{font-size:23px}}

.village{--paper:#f5f1e6;--ink:#354536;--muted:#747a65;--red:#ac7d47}.village .closing,.village .city-tabs button[aria-pressed=true]{background:#e7eadb}.village .opening h1{font-size:clamp(44px,4.6vw,70px)}@media(max-width:520px){.village .opening h1{font-size:42px}}

.shanghai{--paper:#f2f1ec;--ink:#273c50;--muted:#6d7781;--red:#b36e4c}.shanghai .closing,.shanghai .city-tabs button[aria-pressed=true]{background:#e1e8ed}.shanghai .opening h1{font-size:clamp(44px,4.6vw,70px)}@media(max-width:520px){.shanghai .opening h1{font-size:42px}}
