@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Serif+SC:wght@400;500;600&display=swap');
:root{--paper:#f4f1eb;--ink:#292925;--muted:#88877f;--line:#d9d5cc;--accent:#b57252;--serif:'Noto Serif SC',serif;--sans:'DM Sans','PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.site-header{height:86px;padding:0 6.25%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:17px;letter-spacing:.11em;display:flex;align-items:center;gap:12px}.wordmark span{font:9px var(--sans);letter-spacing:.22em;color:var(--muted)}nav{display:flex;gap:38px;font-size:12px;letter-spacing:.12em}nav a,.text-link,footer a{transition:color .2s}nav a:hover,.text-link:hover,footer a:hover{color:var(--accent)}.header-note,.eyebrow{font-size:9px;letter-spacing:.22em;color:var(--muted)}.hero{padding:67px 11.2% 96px;display:grid;grid-template-columns:.78fr 1.22fr;gap:8%;align-items:center;position:relative}.hero-copy{padding-bottom:28px}.hero h1,.about h2,.contact h2{font-family:var(--serif);font-weight:400;letter-spacing:.04em}.hero h1{font-size:clamp(34px,4vw,57px);line-height:1.55;margin:28px 0 18px}.hero h1 em,.about h2 em{font-weight:400;color:var(--accent);font-style:normal}.hero-description{font-size:12px;letter-spacing:.05em;color:#77766f;line-height:2;margin:0 0 35px}.text-link{font-size:11px;letter-spacing:.1em;border-bottom:1px solid var(--ink);padding-bottom:9px;display:inline-flex;gap:19px}.text-link span{font-size:16px;line-height:12px}.hero-image{margin:0;position:relative}.hero-image img{width:100%;height:min(57vw,580px);object-fit:cover;display:block}.hero-image figcaption{position:absolute;bottom:14px;right:15px;font-size:9px;letter-spacing:.16em;color:#fff;text-shadow:0 1px 8px #333}.hero-index{position:absolute;bottom:45px;left:6.25%;font-size:10px;letter-spacing:.16em}.hero-index span{color:var(--accent);padding:0 8px}.section-wrap{padding-left:12.5%;padding-right:12.5%}.works{padding-top:70px;padding-bottom:120px;background:#eeebe4}.section-heading{display:flex;justify-content:space-between;align-items:end}.section-heading h2{font:400 31px var(--serif);letter-spacing:.12em;margin:15px 0 0}.section-aside{font:12px/2 var(--serif);color:#77766f;margin:0 0 3px}.filters{display:flex;gap:28px;margin:54px 0 25px;border-bottom:1px solid var(--line)}.filter{font:11px var(--sans);letter-spacing:.1em;background:none;border:0;color:#8a8981;padding:0 0 13px;cursor:pointer;position:relative}.filter span{font-size:9px;margin-left:5px;color:#aaa79e}.filter.is-active{color:var(--ink)}.filter.is-active:after{content:'';height:1px;background:var(--accent);position:absolute;bottom:-1px;left:0;right:0}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 24px}.photo-card[hidden]{display:none}.photo-card{padding:0;border:0;background:none;text-align:left;cursor:pointer;position:relative;display:block;overflow:hidden;color:var(--ink)}.photo-card img{display:block;width:100%;height:370px;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);filter:saturate(.86)}.photo-card:hover img{transform:scale(1.035)}.photo-card.card-tall img{height:500px}.photo-card.card-wide{grid-column:span 2}.photo-card.card-wide img{height:430px}.photo-caption{position:absolute;left:18px;bottom:16px;color:white;text-shadow:0 1px 8px #333;display:flex;flex-direction:column;gap:5px}.photo-caption b{font:400 15px var(--serif);letter-spacing:.09em}.photo-caption small{font-size:9px;letter-spacing:.1em}.photo-number{position:absolute;top:15px;right:15px;color:white;font-size:10px;letter-spacing:.16em;text-shadow:0 1px 8px #333}.demo-note{text-align:center;font-size:10px;letter-spacing:.04em;color:#9a978e;margin:43px 0 0}.about{padding-top:110px;padding-bottom:64px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center;margin:32px 0 85px}.about h2{font-size:clamp(34px,4vw,52px);line-height:1.65;margin:0}.about-copy{max-width:390px}.about-copy p{font:13px/2.2 var(--serif);color:#66655f;margin:0 0 15px}.about-copy .text-link{margin-top:13px}.about-meta{display:flex;justify-content:space-between;padding-top:19px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.15em;color:var(--muted)}.contact{text-align:center;background:#e9e5dd;padding:86px 20px 94px}.contact h2{font-size:34px;letter-spacing:.12em;margin:19px 0 11px}.contact>p:not(.eyebrow){font:12px var(--serif);color:#77766f}.contact-link{display:inline-block;margin-top:25px;padding-bottom:8px;border-bottom:1px solid var(--accent);font-size:12px;letter-spacing:.08em;color:var(--accent)}.contact-link span{margin-left:9px}footer{height:100px;padding:0 6.25%;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.08em;color:var(--muted)}footer .wordmark{color:var(--ink)}.lightbox{border:0;padding:0;background:#171715;color:#fff;max-width:min(92vw,1200px);max-height:92vh;width:auto;overflow:visible}.lightbox::backdrop{background:rgba(16,16,15,.92)}.lightbox img{display:block;max-width:90vw;max-height:79vh;object-fit:contain}.lightbox-caption{display:flex;justify-content:space-between;padding:14px 2px;font-size:11px;letter-spacing:.08em}.lightbox-close{position:absolute;right:-38px;top:-43px;border:0;background:none;color:#fff;font:36px var(--sans);cursor:pointer}
@media(max-width:760px){.site-header{height:70px;padding:0 6%}.wordmark{font-size:14px;gap:7px}.wordmark span{font-size:7px}.site-header nav{gap:17px;font-size:10px}.header-note{display:none}.hero{padding:58px 7% 76px;grid-template-columns:1fr;gap:34px}.hero-copy{padding:0}.hero h1{font-size:39px;margin:20px 0 13px}.hero-description{margin-bottom:25px}.hero-image img{height:95vw;max-height:560px}.hero-index{left:auto;right:7%;bottom:28px}.section-wrap{padding-left:7%;padding-right:7%}.works{padding-top:62px;padding-bottom:82px}.section-heading h2{font-size:27px}.section-aside{font-size:10px}.filters{gap:20px;margin-top:40px;overflow:auto}.filter{white-space:nowrap}.gallery{gap:24px 12px}.photo-card img{height:55vw}.photo-card.card-tall img{height:72vw}.photo-card.card-wide img{height:48vw}.photo-caption{left:10px;bottom:10px}.photo-caption b{font-size:12px}.photo-caption small{font-size:8px}.photo-number{right:10px;top:10px}.about{padding-top:76px;padding-bottom:43px}.about-grid{grid-template-columns:1fr;gap:24px;margin:25px 0 58px}.about h2{font-size:37px}.about-copy p{font-size:12px}.about-meta{font-size:8px}.contact{padding:68px 15px 74px}.contact h2{font-size:26px}footer{height:86px;padding:0 6%;font-size:8px}footer .wordmark span{display:none}.lightbox-close{right:0;top:-43px}.lightbox-caption{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.intro-screen{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:var(--paper);opacity:1;transition:opacity .42s ease;pointer-events:none}
html:not(.intro-pending) .intro-screen{display:none}
.intro-screen.is-leaving{opacity:0}
.intro-type{display:flex;flex-direction:column;align-items:flex-start;font:500 clamp(19px,2.5vw,30px)/1.42 var(--sans);letter-spacing:.055em;color:#777}
.intro-line{display:block;min-height:1.42em;white-space:pre}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.intro-screen{transition:none}html.intro-pending .intro-screen{display:none!important}}
:root{--ink:#696969;--muted:#929292;--line:#d8d8d4;--accent:#777;--serif:'Gill Sans','Gill Sans MT',Calibri,sans-serif;--sans:'Gill Sans','Gill Sans MT',Calibri,sans-serif}
.hero{min-height:calc(100svh - 86px);padding:46px 7% 70px;grid-template-columns:.85fr 1.15fr;gap:5%;overflow:hidden}
.hero-copy{padding:0 0 8px 3%;position:relative;z-index:1}
.hero h1{font:600 clamp(34px,4.1vw,58px)/1.13 var(--sans);letter-spacing:-.015em;color:var(--ink);margin:0 0 38px}
.hero h1 em{font-style:normal;font-weight:600;color:#777}
.hero .text-link{color:#737373;border-color:#aaa;font:500 12px var(--sans);letter-spacing:.14em;margin-top:5px}
.hero .text-link span{color:#737373}
.hero-mosaic{height:min(74svh,760px);min-height:470px;display:grid;grid-template-columns:1fr 1fr;gap:14px;overflow:hidden;position:relative;mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%)}
.hero-column{height:100%;min-height:0;overflow:hidden;position:relative}
.hero-column:nth-child(2){margin-top:6vh;height:calc(100% - 6vh)}
.hero-track{display:flex;flex-direction:column;animation:heroScroll var(--scroll-duration,32s) linear var(--scroll-delay,0s) infinite;will-change:transform}
.hero-column.scroll-reverse .hero-track{animation-name:heroScrollReverse}
.hero-sequence{display:flex;flex-direction:column;gap:14px;padding-bottom:14px}
.hero-tile{flex:none;margin:0;width:100%;overflow:hidden;background:#dededb}
.hero-tile img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:filter .4s}
.hero-tile:nth-child(1){height:24vh;min-height:165px;max-height:280px}
.hero-tile:nth-child(2){height:31vh;min-height:205px;max-height:350px}
.hero-tile:nth-child(3){height:20vh;min-height:145px;max-height:235px}
.hero-tile:nth-child(4){height:27vh;min-height:185px;max-height:310px}
.hero-column:hover .hero-track{animation-play-state:paused}
.hero-column:hover .hero-tile img{filter:saturate(1)}
@keyframes heroScroll{to{transform:translateY(-50%)}}
@keyframes heroScrollReverse{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.hero-index{left:7%;bottom:26px;color:#858585}
.hero-index span{color:#999}
@media(max-width:760px){.hero{min-height:0;padding:38px 7% 65px;grid-template-columns:1fr;gap:27px}.hero-copy{padding:0 0 0 1%}.hero h1{font-size:clamp(35px,9vw,50px);margin:0 0 20px}.hero-mosaic{height:55svh;min-height:340px;max-height:500px;gap:9px}.hero-column:nth-child(2){margin-top:4vh;height:calc(100% - 4vh)}.hero-sequence{gap:9px;padding-bottom:9px}.hero-tile:nth-child(1){height:22vh;min-height:125px}.hero-tile:nth-child(2){height:27vh;min-height:155px}.hero-tile:nth-child(3){height:19vh;min-height:115px}.hero-tile:nth-child(4){height:24vh;min-height:140px}.hero-index{left:auto;right:7%;bottom:23px}}
@media(prefers-reduced-motion:reduce){.hero-track{animation:none!important;transform:none!important}.hero-column .hero-sequence:nth-child(2){display:none}}
:root{--ink:#292925;--muted:#88877f;--line:#d9d5cc;--accent:#b57252;--serif:'Noto Serif SC',serif;--sans:'DM Sans','PingFang SC','Microsoft YaHei',sans-serif}
.hero{padding-right:1.8%;gap:4%}
.hero h1{font:400 clamp(34px,4vw,57px)/1.55 var(--serif);letter-spacing:.04em;color:var(--ink);margin:28px 0 18px}
.hero h1 em{font:500 1em/1.13 'Gill Sans','Gill Sans MT',Calibri,sans-serif;letter-spacing:-.015em;color:#777;font-style:normal}
.hero .text-link{color:var(--ink);border-color:var(--ink);font:11px var(--sans);letter-spacing:.1em;margin-top:13px}
.hero .text-link span{color:var(--ink)}
.hero-index{color:var(--ink)}.hero-index span{color:var(--accent)}
@media(max-width:760px){.hero{padding-right:3%}.hero h1{font-size:clamp(35px,9vw,50px);margin:20px 0 13px}}
.works-brand{font-family:'Gill Sans','Gill Sans MT',Calibri,sans-serif;letter-spacing:.16em}

/* Horizontal editorial grid with interactive image focus. */
.works{background:var(--paper);padding:54px 4.2% 90px}
.works .section-heading{justify-content:center;text-align:center;margin-bottom:76px}
.works .section-heading h2{margin-top:12px}
.works .filters{margin:0 0 24px;gap:25px}
.works .gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;column-gap:2.5vw;row-gap:88px;overflow:visible}
.works .photo-card,.works .series-card{width:100%;break-inside:avoid;display:block;margin:0;min-width:0}
.works .photo-card[hidden],.works .series-card[hidden]{display:none}
.works .photo-card{position:relative;overflow:visible;border:0;padding:0;background:transparent;cursor:pointer;transform:scale(1);transform-origin:center;transition:transform .34s ease,opacity .34s ease,filter .34s ease;z-index:1}
.works .photo-card img{width:100%;height:auto;aspect-ratio:1.16;display:block;object-fit:cover;filter:saturate(.86);transition:filter .34s ease}
.works .photo-card img.is-portrait{aspect-ratio:.79}
.works .photo-card img.is-landscape{aspect-ratio:1.32}
.works .photo-card img.is-square{aspect-ratio:1}
.works .photo-card.is-focused,.works .photo-card:hover,.works .photo-card:focus-visible{transform:scale(1.16);z-index:4;outline:none}
.works .photo-card.is-focused img,.works .photo-card:hover img,.works .photo-card:focus-visible img{filter:saturate(1)}
.works .photo-number{position:absolute;top:-24px;left:0;right:auto;color:var(--ink);font-size:10px;letter-spacing:.12em;text-shadow:none;opacity:0;transition:opacity .2s ease}
.works .photo-card.is-focused .photo-number,.works .photo-card:hover .photo-number,.works .photo-card:focus-visible .photo-number{opacity:1}
.works .series-card{min-height:170px;padding:4px 0;color:#4f4e49;background:transparent;font-family:Georgia,'Noto Serif SC',serif}
.works .series-range{margin:0 0 18px;font-size:11px;letter-spacing:.08em}
.works .series-card h3{margin:0;font-size:15px;font-weight:400;letter-spacing:.06em}
.works .series-subtitle{margin:7px 0 0;font-size:12px;line-height:1.6;color:#4f4e49}
.works .series-meta{margin:7px 0 0;font-size:12px;line-height:1.5;color:#77766f}
@media(max-width:1100px){.works .gallery{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:74px;column-gap:3vw}}
@media(max-width:760px){
  .works{padding:45px 5% 68px}
  .works .section-heading{margin-bottom:28px}
  .works .gallery{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:5vw;row-gap:56px}
  .works .photo-card.is-focused,.works .photo-card:hover,.works .photo-card:focus-visible{transform:scale(1.08)}
  .works .series-card{min-height:140px;padding:4px 0}
  .works .series-range{margin-bottom:15px}
}
@media(max-width:360px){.works .gallery{grid-template-columns:1fr}}

/* Compact rounded contact and copyright bars, following the reference footer. */
.works{padding-bottom:22px}
[hidden]{display:none!important}
.site-footer{height:auto;min-height:48px;padding:6px 1%;display:grid;grid-template-columns:2fr 1fr;gap:12px;align-items:stretch;color:var(--ink);font-size:11px;letter-spacing:.08em}
.footer-pill{min-height:32px;padding:0 28px;border-radius:999px;background:rgba(255,255,255,.58);display:flex;align-items:center}
.footer-copyright{justify-content:center}
.footer-email{justify-content:space-between;transition:background .2s,color .2s;font:inherit;color:inherit;text-align:left;border:0;cursor:pointer}
.footer-email span{font-size:10px;color:#c9c9c6}
.footer-email:hover{background:#fff;color:var(--accent)}
@media(max-width:760px){.site-footer{grid-template-columns:1fr;gap:6px;padding:8px 5%;font-size:10px}.footer-pill{min-height:32px;padding:0 16px}.footer-copyright{justify-content:flex-start}}
