:root{--bg:#e8e7e2;--ink:#282b27;--muted:#71736b;--line:#c9cbc1;--paper:#f1f0eb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Helvetica Neue',Arial,'PingFang SC','Microsoft YaHei',sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #8b653b;outline-offset:6px}header{padding:30px 4.7%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.identity{font-size:21px;letter-spacing:-.7px;font-weight:600}.identity span{display:block;font-size:10px;letter-spacing:3.7px;margin-top:7px}nav{display:flex;gap:34px}nav a{font-size:14px}nav small{font-size:11px;margin-left:5px;color:var(--muted)}.header-note{font-size:12px;color:var(--muted)}main{padding:0 4.7%}.intro{display:flex;justify-content:space-between;align-items:flex-end;padding:64px 0 58px}.eyebrow,.section-label{font-size:12px;letter-spacing:2px;font-weight:500}.eyebrow{margin:0 0 26px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,4.6vw,70px);font-weight:400;letter-spacing:-1.5px;line-height:1.18;margin:0}h1 span{color:#77796f}.intro-aside{padding-bottom:8px;min-width:225px}.intro-aside p{font-size:13px;letter-spacing:1px;line-height:1.9;margin:3px 0}.intro-aside>span{font-size:12px;color:var(--muted);display:block;margin-top:24px}.gallery-bar{border-top:1px solid var(--line);padding:21px 0 28px;display:flex;align-items:center;justify-content:space-between}.filters{display:flex;gap:25px;flex-wrap:wrap}.filters button{background:none;border:0;color:var(--muted);padding:4px 0;font-size:14px;position:relative}.filters button.active{color:var(--ink)}.filters button.active:after{content:'';height:1px;background:var(--ink);position:absolute;bottom:-6px;left:0;right:0}.filters small{font-size:12px;margin-left:5px}.filters sup{font-size:10px;margin-left:4px}.index-label{font-size:11px;letter-spacing:1px;color:var(--muted)}.gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:48px 34px;align-items:start}.project-card:nth-child(2n){padding-top:78px}.project-card:nth-child(3){margin-top:-70px}.project-card:nth-child(5){margin-top:-70px}.cover{border:0;padding:0;width:100%;display:block;position:relative;aspect-ratio:1.37;overflow:hidden;text-align:left;background:#343833;color:#e4e3d8}.project-card:nth-child(2n) .cover{aspect-ratio:1.03;background:#555951}.project-card:nth-child(3n) .cover{background:#353c3d}.project-card:nth-child(4) .cover{background:#4d4640}.project-card:nth-child(5) .cover{background:#67695d}.project-card:nth-child(6) .cover{background:#292c2a}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.cover:hover img{transform:scale(1.025)}.slot-border{position:absolute;inset:28px;border:1px solid #ffffff20;transition:inset .5s}.cover:hover .slot-border{inset:22px}.slot-top{position:absolute;top:47px;left:48px;font-size:11px;letter-spacing:2px;opacity:.7}.slot-number{position:absolute;left:45px;bottom:45px;font-family:Georgia,serif;font-size:clamp(65px,9vw,138px);font-weight:400;line-height:1;color:#d8dac780}.slot-center{position:absolute;top:49%;left:0;width:100%;text-align:center;font-size:13px;letter-spacing:3px;color:#e4e3dba3}.slot-bottom{position:absolute;right:47px;bottom:45px;font-size:11px;letter-spacing:1px;opacity:.6}.cover-arrow{position:absolute;right:23px;top:18px;font-size:24px;opacity:0;transition:opacity .3s}.cover:hover .cover-arrow,.cover:focus-visible .cover-arrow{opacity:1}.card-meta{display:flex;justify-content:space-between;padding-top:17px;gap:12px}.card-meta h3{font-size:16px;font-weight:400;margin:0 0 8px}.card-meta p{font-size:12px;color:var(--muted);margin:0}.card-meta>span{font-size:11px;letter-spacing:1px;color:var(--muted);padding-top:3px}.archive-end{margin-top:66px;padding:24px 0 70px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted);letter-spacing:1px}.about{border-top:1px solid var(--line);padding:75px 0 90px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.about h2{font-size:28px;font-weight:400;margin:0 0 28px}.about h2 span{font-size:16px;margin-left:18px;color:var(--muted)}.about-lead{font-size:26px;font-family:Georgia,'Times New Roman',serif;line-height:1.8}.muted{color:var(--muted);line-height:1.9;font-size:15px}.about-details{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;border-top:1px solid var(--line);padding-top:20px}.about-details h3{font-size:14px;font-weight:400}.about-details p{font-size:13px;color:var(--muted)}.contact{border-top:1px solid var(--line);padding:70px 0 90px;display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact h2{font-size:52px;font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.4;margin:32px 0 20px}.contact h2 i{font-style:normal;color:var(--muted)}.contact-links{display:flex;gap:20px;font-size:13px;margin-top:35px;color:var(--muted);flex-wrap:wrap}form label{display:block;font-size:13px}input,select,textarea{width:100%;padding:14px 0;background:transparent;border:0;border-bottom:1px solid #b5b8ac;border-radius:0;color:var(--ink);font-size:16px;margin-bottom:27px;outline-offset:4px}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-note{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 20px}.submit{display:flex;justify-content:space-between;align-items:center;width:100%;padding:18px 22px;background:#292e29;border:1px solid #292e29;color:#eeeee5;font-size:14px}.submit:hover{background:#42483f}#form-status{font-size:13px;line-height:1.7}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:30px 4.7%;font-size:12px;color:var(--muted)}footer>a:first-child{font-weight:500;letter-spacing:1px;color:var(--ink)}dialog{max-width:none;border:0}dialog::backdrop{background:#171b17d9}body.modal-open{overflow:hidden}.project-dialog{position:fixed;inset:0;width:100%;height:100%;max-height:100%;margin:0;background:var(--bg);color:var(--ink);padding:30px 6%;overflow-y:auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:2px}.close,.lightbox button{background:transparent;color:inherit;border:0;padding:12px;font-size:14px}.project-heading{max-width:680px;margin:80px auto 60px;text-align:center}.project-heading h2{font-size:42px;font-weight:400;font-family:Georgia,'Times New Roman',serif}.project-heading>p:last-child{line-height:1.9;color:var(--muted)}.project-photos{max-width:1150px;margin:auto;display:grid;gap:28px}.reserved-photo{aspect-ratio:1.8;background:#3c413b;color:#b2b7a9;display:flex;align-items:center;justify-content:center;font-size:14px;letter-spacing:3px}.photo-button{border:0;background:none;padding:0;cursor:zoom-in}.photo-button img{width:100%;height:auto;display:block}.project-end{text-align:center;font-size:11px;letter-spacing:2px;color:var(--muted);padding:60px}.lightbox{position:fixed;inset:0;width:100%;height:100%;max-height:100%;margin:0;background:#141613;color:#e8e7e2;padding:65px 70px 35px}.lightbox-top{position:absolute;left:30px;right:30px;top:15px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.lightbox figure{height:100%;margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px}.lightbox img{max-width:100%;max-height:calc(100% - 45px);object-fit:contain}.lightbox figcaption{font-size:12px;color:#bcc0b5;line-height:1.6}.lightbox #previous,.lightbox #next{position:absolute;top:48%;font-size:25px;padding:15px}.lightbox #previous{left:10px}.lightbox #next{right:10px}@media(min-width:1600px){main,header,footer{padding-left:max(5%,calc((100vw - 1500px)/2));padding-right:max(5%,calc((100vw - 1500px)/2))}}@media(max-width:760px){header{padding:24px 6%}.identity{font-size:17px}.identity span{font-size:8px;letter-spacing:3px}nav{gap:18px}nav small,.header-note,.index-label{display:none}nav a{font-size:13px}main{padding:0 6%}.intro{padding:44px 0 35px}.intro-aside{display:none}h1{font-size:42px}.filters{gap:17px}.filters small{display:none}.gallery-bar{padding:20px 0 28px}.gallery{grid-template-columns:1fr;gap:35px}.project-card:nth-child(n){padding:0;margin:0}.project-card:nth-child(n) .cover{aspect-ratio:1.24}.slot-number{font-size:88px}.slot-top{font-size:10px}.archive-end{padding-bottom:45px;margin-top:35px;gap:20px}.archive-end span:last-child{font-size:10px}.about,.contact{grid-template-columns:1fr;gap:28px;padding:45px 0}.about h2{font-size:24px}.about h2 span{display:block;margin:10px 0}.about-lead{font-size:23px}.contact h2{font-size:42px;margin:20px 0}.contact-links{margin-top:22px}footer{padding:25px 6%;gap:25px;flex-wrap:wrap}footer>a:first-child{width:100%}.project-heading{margin-top:50px}.project-heading h2{font-size:32px}.lightbox{padding:65px 40px 30px}.lightbox #previous{left:0}.lightbox #next{right:0}.reserved-photo{aspect-ratio:1.2;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Keep longer English copy comfortable on small screens. */
.intro{gap:36px}.intro>div:first-child{min-width:0}.contact h2{font-size:clamp(32px,3.6vw,52px)}.card-meta h3{overflow-wrap:anywhere}.about-details>div{min-width:0}@media(max-width:760px){.filters{gap:14px}.filters button{font-size:13px}h1{font-size:clamp(32px,8vw,42px)}.about-details{grid-template-columns:1fr;gap:8px}.contact h2{font-size:clamp(32px,8vw,42px)}.reserved-photo{letter-spacing:1px}.slot-center{letter-spacing:2px}.form-row{grid-template-columns:1fr;gap:0}}

.about-details{grid-template-columns:1fr}@media(max-width:760px){header{flex-wrap:wrap;gap:22px}nav{width:100%;justify-content:space-between;gap:12px}nav small{display:inline;font-size:11px;margin-left:5px}}

/* Natural image proportions, with each column flowing independently. */
.chapter-intro{border-top:1px solid #a8aaa1;padding:32px 0 14px;margin:64px 0 12px;text-align:left;color:#252b25}
.chapter-intro:first-child{margin-top:0}
.chapter-label{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.chapter-intro h3{font-size:clamp(28px,3.5vw,38px);font-weight:500;line-height:1.2;letter-spacing:-.025em;margin:14px 0 20px}
.chapter-intro p{max-width:720px;font-size:18px;line-height:1.8;color:#444c43;margin:0}
@media(max-width:760px){.chapter-intro{padding-top:24px;margin-top:40px}.chapter-intro p{font-size:16px;line-height:1.75}}
.gallery{display:block;columns:2;column-gap:34px}
.gallery .project-card:nth-child(n){display:inline-block;width:100%;padding:0;margin:0 0 48px;break-inside:avoid;vertical-align:top}
.gallery .project-card:nth-child(n) .cover.has-image{aspect-ratio:auto;background:transparent}
.cover.has-image img{display:block;width:100%;height:auto;object-fit:contain;transform:none}
.cover.has-image:hover img{transform:none}
.cover.has-image .cover-arrow{background:#1b211bbf;color:#fff;width:38px;height:38px;text-align:center;line-height:38px;right:14px;top:14px}
@media(max-width:760px){.gallery{columns:1}.gallery .project-card:nth-child(n){margin-bottom:35px}}

.project-heading>p:last-child{white-space:pre-line;text-align:left}.project-photos{max-width:1280px;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;align-items:center}.card-meta h3{font-size:22px;line-height:1.35}@media(max-width:760px){.card-meta h3{font-size:20px}}

/* Contact-sheet overview; the lightbox remains the full-size viewing space. */
.project-photos .chapter-intro{grid-column:1/-1;align-self:stretch}
.project-photos .photo-button{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:4/3;min-width:0;background:#deded6;overflow:hidden}
.project-photos .photo-button img{display:block;width:100%;height:100%;object-fit:contain}
.project-photos .photo-spread{grid-column:span 2;aspect-ratio:8/3}
.photo-zoom{position:absolute;right:10px;bottom:10px;width:30px;height:30px;background:#242a24cc;color:#fff;line-height:30px;font-size:18px;opacity:0;transition:opacity .2s}
.photo-button:hover .photo-zoom,.photo-button:focus-visible .photo-zoom{opacity:1}
@media(max-width:900px){.project-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}}
@media(max-width:480px){.project-dialog{padding:22px 5%}.project-photos{gap:16px 10px}.photo-zoom{width:24px;height:24px;line-height:24px;right:5px;bottom:5px;font-size:15px}}

.contact-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.submit:disabled{opacity:.55;cursor:wait}
#form-status[data-state="error"]{color:#8a3028}
#form-status[data-state="success"]{color:#31593c}
/* Larger, naturally proportioned collection images; narrative series stay linear. */
.project-tools{position:fixed;right:12px;bottom:28px;z-index:5;display:flex;flex-direction:column;gap:8px}
.project-tools button{width:58px;min-height:58px;border:1px solid #a8aaa1;background:#f1f0ebf2;color:#282b27;box-shadow:0 2px 12px #171b1710;font-size:21px;line-height:1.15;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.project-tools button span{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.project-tools button:hover{background:#282b27;color:#f1f0eb}
@media(max-width:760px){.project-tools{right:10px;bottom:16px;flex-direction:row}.project-tools button{width:48px;min-height:48px;font-size:18px}.project-end{padding-bottom:100px}}
.project-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px;align-items:start}
.project-photos .photo-button{display:block;aspect-ratio:auto;background:transparent}
.project-photos .photo-button img{width:100%;height:auto;object-fit:contain}
.project-photos .photo-spread{aspect-ratio:auto}
.project-photos.project-sequence{max-width:1000px;grid-template-columns:minmax(0,1fr);gap:40px}
.project-sequence .photo-spread{grid-column:1}
@media(max-width:760px){.project-photos{gap:28px 20px}.project-photos.project-sequence{gap:28px}}
@media(max-width:600px){.project-photos{grid-template-columns:minmax(0,1fr)}.project-photos .photo-spread{grid-column:1}}
