:root{color-scheme:light;--paper:#faf9f6;--ink:#000;--muted:#000;--line:#dedfd7;font-family:Arial,"Microsoft YaHei",sans-serif;color:#000;background:var(--paper)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:hover{color:#000}button:focus-visible,a:focus-visible{outline:2px solid #69725b;outline-offset:6px}button{background:none;border:0} .header,main,.about,footer{max-width:1600px;margin:auto;padding-left:6vw;padding-right:6vw}.header{display:flex;justify-content:space-between;align-items:center;padding-top:38px;padding-bottom:36px}.brand{font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;font-size:32px;font-weight:500;letter-spacing:-1.2px}.brand span{display:block;font-family:Arial,sans-serif;font-size:10px;letter-spacing:3px;margin-top:8px}nav{display:flex;align-items:center;gap:35px;font-size:14px}.language{display:flex;gap:8px;align-items:center;color:#000}.language button{min-height:44px;padding:8px 3px;font-size:14px}.language [aria-pressed=true]{color:#000;text-decoration:underline;text-underline-offset:7px}.intro{padding-top:76px;padding-bottom:50px;display:flex;justify-content:space-between;align-items:end;gap:20px}.eyebrow{font-size:12px;letter-spacing:2px;color:#000}h1{font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;font-weight:400;font-size:clamp(38px,5vw,68px);letter-spacing:-2px;margin:18px 0 0}.intro .index{font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;font-size:18px;color:#000}.empty{min-height:350px;border:1px solid var(--line);display:grid;place-content:center;text-align:center;background:#f2f2ec;margin-bottom:95px;padding:35px}.empty .mark{height:40px;width:1px;background:#a3a799;margin:0 auto 24px}.empty h2{font-weight:400;font-size:20px;letter-spacing:2px;margin:0 0 14px}.empty p{font-size:14px;color:#000;line-height:1.8;margin:0}.about{display:grid;grid-template-columns:1fr 2fr;padding-top:48px;padding-bottom:75px;border-top:1px solid var(--line)}.about h2{font-family:Arial,"Helvetica Neue","Microsoft YaHei",sans-serif;font-weight:400;font-size:36px;margin:0 0 15px}.about p{font-size:16px;color:#000;margin-bottom:32px}.about a{font-size:14px;border-bottom:1px solid #adb0a3;padding-bottom:6px}.about a span{margin-left:32px}footer{display:flex;justify-content:space-between;padding-top:25px;padding-bottom:30px;border-top:1px solid var(--line);font-size:12px;color:#000}footer>span:last-child{letter-spacing:2px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 30px;padding-bottom:85px}.card img{width:100%;height:auto;display:block}.card-info{display:flex;justify-content:space-between;gap:15px;padding-top:17px;font-size:14px}.card-info span:last-child{color:#000}.back{display:inline-block;margin-top:40px;font-size:14px}.photos{columns:2;column-gap:30px;padding-bottom:80px}.photo{display:block;width:100%;padding:0;margin:0 0 30px;break-inside:avoid;text-align:left}.photo img{width:100%;height:auto;display:block}.image-error{display:grid;place-items:center;min-height:180px;background:#eeeee7;color:#000;font-size:14px;padding:25px}.skip{position:fixed;top:-100px;background:white;padding:15px;z-index:10}.skip:focus{top:10px}dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;padding:20px 30px;background:#faf9f6;color:#000}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#faf9f6}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:52px;font-size:14px}dialog button{min-width:60px;min-height:44px}dialog button:disabled{opacity:1;cursor:default}#full-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}#full-image img{width:100%;height:100%;object-fit:contain}#caption{color:#000;text-align:center;overflow-wrap:anywhere}body:has(dialog[open]){overflow:hidden}
@media(max-width:650px){.header,main,.about,footer{padding-left:24px;padding-right:24px}.header{padding-top:26px}.brand{font-size:28px}nav{gap:16px}.brand span{font-size:9px;letter-spacing:2px}.intro{padding-top:48px;padding-bottom:32px}h1{letter-spacing:-1px}.empty{min-height:320px;margin-bottom:60px}.about{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:50px}.grid{grid-template-columns:1fr;gap:35px}.photos{columns:1}dialog{padding:12px}.viewer-bottom{font-size:12px}}@media(prefers-reduced-motion:no-preference){a,button{transition:color .2s}}
.cover-empty{aspect-ratio:4/3;background:#eeeee7;border:1px solid #e3e4db;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;color:#000;font-size:14px;letter-spacing:2px}.cover-number{font:300 62px Arial,sans-serif;color:#000}.card:hover .cover-empty{background:#e8e9df}

/* Restrained type scale and aligned series captions. */
.brand{font-size:26px;font-weight:400;letter-spacing:.04em;line-height:1.3}.about h2{font-size:26px;line-height:1.4}h1{font-size:clamp(30px,4vw,44px);letter-spacing:0;margin:0}.cover-empty,.card>img{border-radius:12px}.card-info{display:grid;grid-template-columns:minmax(0,1fr);text-align:center;gap:7px}.card-info span:last-child{font-size:12px}.intro{padding-top:68px;padding-bottom:40px}@media(max-width:650px){.brand{font-size:24px}.about h2{font-size:24px}.intro{padding-top:44px;padding-bottom:30px}}

.about>div{text-align:center}.about a{display:inline-flex;align-items:center;justify-content:center;gap:12px}.about a span{margin-left:0}

/* Share the gallery grid so the biography aligns with the middle series. */
.about{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:30px;align-items:start}.about>div{grid-column:2;min-width:0}.about h2{margin-bottom:16px}.about p{margin-top:0;margin-bottom:28px;line-height:1.6}.about a{max-width:100%}@media(max-width:650px){.about{grid-template-columns:minmax(0,1fr);row-gap:28px}.about>div{grid-column:1}.about>.eyebrow{text-align:center}}

/* Quiet navigation: section links left, language switch right. */
.header nav{width:100%}.header .language{margin-left:auto}

/* Equal cover frames preserve the complete photograph without cropping. */
.card>img{aspect-ratio:var(--cover-ratio,3/4);object-fit:cover;background:#f2f2ec}

/* Univers-inspired restrained sans-serif typography. */
:root{--site-font:"Univers","Helvetica Neue",Helvetica,Arial,"Microsoft YaHei",sans-serif;font-family:var(--site-font)}body,button,h1,.about h2,.cover-number{font-family:var(--site-font);font-weight:300}nav{font-size:15px;letter-spacing:.045em}h1{font-size:clamp(28px,3.6vw,40px);letter-spacing:-.025em}nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}a:hover{color:#000;text-decoration:underline;text-underline-offset:5px}[hidden]{display:none!important}.home-photo{display:flex;align-items:center;justify-content:center;min-height:calc(100svh - 215px);padding:28px 0 55px}.home-photo img{display:block;max-width:100%;width:auto;height:auto;max-height:72svh;object-fit:contain;border-radius:12px}.about{min-height:55svh;padding-top:70px;border-top:0}dialog button:disabled{text-decoration:line-through}@media(max-width:650px){nav{gap:18px;font-size:14px;letter-spacing:0}.home-photo{padding:24px 0 40px;min-height:65svh}.home-photo img{max-height:65svh}.about{padding-top:40px}}
.about h2{font-size:18px;line-height:1.5;margin-bottom:14px}.about p,.about a{font-size:16px;line-height:1.5}.about p{margin-bottom:20px}

/* Header proportions follow the supplied photography reference. */
.header{gap:36px;align-items:center}.header .brand{font-family:var(--site-font);font-size:28px;font-weight:300;letter-spacing:0;white-space:nowrap}.header nav{width:auto;margin-left:auto;justify-content:flex-end;gap:28px;font-size:16px;letter-spacing:2px}.header .language{margin-left:0;letter-spacing:0}.language button{font-size:16px}.home-photo{width:100%;margin:0 auto}.home-photo img{margin-inline:auto}@media(max-width:650px){.header{gap:18px;flex-wrap:wrap}.header .brand{font-size:26px}.header nav{gap:16px;font-size:14px;letter-spacing:0}.language button{font-size:14px}}@media(max-width:430px){.header nav{flex-basis:100%;justify-content:flex-end}}

.about-lines{margin:28px -30px 30px}.about .about-lines p{font-size:16px;line-height:1.8;margin:0 0 6px;color:#000}@media(max-width:650px){.about-lines{margin-inline:0}}

/* Work statement aligns to the central series without changing detail titles. */
main:has(>.grid)>.intro{justify-content:center;text-align:center}main:has(>.grid)>.intro>div{width:100%}main:has(>.grid)>.intro h1{font-size:20px;line-height:1.7;font-weight:300;letter-spacing:.04em;text-wrap:balance}@media(max-width:650px){main:has(>.grid)>.intro h1{font-size:18px;letter-spacing:.02em}}

/* Portrait and biography form a single centered composition. */
.about{grid-template-columns:minmax(0,320px) minmax(0,320px);justify-content:center;align-items:center;column-gap:64px;padding-top:64px;padding-bottom:80px;min-height:65svh}.about-portrait{margin:0;width:100%;max-width:320px}.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:12px}.about>div{grid-column:2}.about-lines{margin-inline:0}@media(max-width:700px){.about{grid-template-columns:minmax(0,360px);gap:36px;padding-top:32px;padding-bottom:56px}.about-portrait{width:min(100%,280px);justify-self:center}.about>div{grid-column:1}}

.about-portrait img{border-radius:18px}

/* Trim the narrow unpainted edge in presentation; preserve the source image. */
.about-portrait{aspect-ratio:1;overflow:hidden;border-radius:18px}.about-portrait img{border-radius:0;transform:scale(1.075);transform-origin:center}
.about-portrait{border-radius:32px}

/* Read photographs in filename order across each row, then down. */
.photos{columns:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start}.photo{margin:0}@media(max-width:650px){.photos{grid-template-columns:minmax(0,1fr)}}

/* Consecutive numbered pairs share a height using their natural aspect ratios. */
.photos{display:flex;flex-direction:column;gap:30px}.photo-row{display:grid;gap:30px;align-items:start}.photo-row .photo{min-width:0}.photo-row-single{width:calc((100% - 30px)/2)}@media(max-width:650px){.photo-row{display:flex;flex-direction:column;gap:30px}.photo-row-single{width:100%}}

/* Fixed-width photographs, with landscape-only local gap filling. */
.photos{display:block;position:relative;padding-bottom:0;margin-bottom:80px}.photos>.photo{margin:0}.photos>.photo img{width:100%;height:auto}@media(max-width:650px){.photos{display:flex;flex-direction:column;gap:30px;height:auto!important}.photos>.photo{width:100%}}

.about .social-links{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px}

@media (min-width:651px){main:has(>.photos)>.intro,main:has(>.photos)>.photos{width:min(88%,900px);margin-inline:auto}}

@media (min-width:900px){main:has(>.grid)>.grid{width:min(94%,1020px);margin-inline:auto}}
