
:root{--paper:#f7f6f2;--ink:#252622;--muted:#62645e;--line:#cfcec6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,"PingFang TC",sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2;font-weight:500}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #776542;outline-offset:5px}.wrap{max-width:1220px;width:calc(100% - 80px);margin:auto}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);min-height:94px;gap:24px}.logo{width:135px}.logo img{mix-blend-mode:multiply}nav{display:flex;gap:17px;align-items:center;font-size:.8rem}nav a{padding-block:12px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.label{font-size:.75rem;letter-spacing:1px;line-height:1.6}.hero{padding-top:34px;padding-bottom:36px}.role{font-size:1.35rem;margin-top:7px}.discipline{font-size:.875rem;color:var(--muted);margin-top:2px}h1{font-size:clamp(2.3rem,4.5vw,4.1rem);letter-spacing:-.04em;margin-top:22px;max-width:1050px}.subtitle{max-width:650px;margin-top:18px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.button{font-size:.75rem;letter-spacing:.7px;display:inline-flex;padding:12px 20px;background:var(--ink);color:white;border:1px solid var(--ink);min-height:44px;align-items:center}.secondary{color:var(--ink);background:transparent}.button:hover{opacity:.8}.introduction{display:grid;grid-template-columns:200px 1fr;gap:35px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.introduction h2{font-size:1.25rem}.introduction p{max-width:795px}h2{font-size:2rem;letter-spacing:-.025em}h3{font-size:1.45rem;letter-spacing:-.015em}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:26px}.section-head h2{margin-top:8px}.mockup-note{font-size:.75rem;color:var(--muted);max-width:340px}.work{padding-block:30px 48px;border-top:1px solid var(--line)}.featured{display:grid;grid-template-columns:1.25fr 1fr;gap:34px;align-items:center}.featured h3{margin:10px 0 15px}.work-image{display:block;position:relative;padding:0;border:0;background:#ddd;color:white;width:100%;aspect-ratio:1.7;overflow:hidden;text-align:left}.work-image img{width:100%;height:100%;object-fit:cover}.work-image span{position:absolute;right:12px;bottom:12px;font-size:.75rem;background:#222e;padding:7px 10px}.caption{font-size:.75rem;color:var(--muted);margin-top:15px}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:28px}.work-grid .label{font-size:.75rem;letter-spacing:0;margin-bottom:9px}.work-grid .work-image{aspect-ratio:1.45}.work-grid article>p:last-child{font-size:.875rem;margin-top:12px;line-height:1.55}.about{background:#ecece5;padding-block:46px}.story{display:grid;grid-template-columns:1fr 1.6fr;gap:60px}.story h2{font-size:2.5rem;margin-top:12px}.story-thread{font-size:.875rem;color:var(--muted);margin-top:22px}.story>div:last-child p+p{margin-top:16px}.collaboration{padding-block:44px}.collaboration h2{margin-top:10px}.lead{max-width:760px;margin-top:18px}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;list-style:none;padding:0;margin:30px 0 0}.process li{border-top:1px solid var(--line);padding-top:14px}.process h3{font-size:1.15rem}.process p{font-size:.875rem;margin-top:10px}.notes{display:grid;grid-template-columns:1fr 1fr;gap:50px;border-block:1px solid var(--line);padding-block:32px}.notes h2{font-size:1.4rem;margin:10px 0}.notes p{max-width:475px}.contact{display:flex;justify-content:space-between;gap:35px;padding-block:38px;align-items:end}.contact h2{margin:10px 0}.contact-note{font-size:.75rem;color:var(--muted)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding-block:22px;font-size:.75rem}.skip{position:absolute;left:20px;top:-100px;padding:12px;background:#222;color:white;z-index:10}.skip:focus{top:10px}dialog{border:0;background:#222;color:white;padding:20px;max-width:96vw;max-height:95dvh;width:min(1300px,96vw)}dialog::backdrop{background:#000c}dialog[open]{display:flex;flex-direction:column;gap:16px}.viewer-bar{display:flex;justify-content:space-between;align-items:center;gap:20px}.viewer-bar h2{font-size:1.2rem}.viewer-bar button{background:transparent;border:1px solid #aaa;color:white;min-height:44px;padding:8px 15px}#viewer-image{object-fit:contain;max-height:calc(95dvh - 165px);min-height:0}.viewer-note{font-size:.75rem}.viewer-open{overflow:hidden}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}header{flex-wrap:wrap;gap:8px;padding-block:14px}nav{gap:10px;flex-wrap:wrap}.introduction{grid-template-columns:1fr;gap:10px}.featured{grid-template-columns:1fr;gap:20px}.work-grid{grid-template-columns:1fr 1fr;gap:25px 18px}.section-head{display:block}.mockup-note{margin-top:16px;max-width:none}.story{grid-template-columns:1fr;gap:25px}.process{grid-template-columns:1fr 1fr}.contact{display:block}.contact-note{margin-top:24px}}
@media(max-width:480px){header nav{width:100%;justify-content:space-between;font-size:.75rem;gap:5px}.hero{padding-top:25px}h1{font-size:2.4rem;line-height:1.12}.introduction{margin-top:24px}.hero .actions{gap:10px}.button{padding-inline:14px}h2{font-size:1.7rem}.story h2{font-size:2.1rem}.notes{grid-template-columns:1fr;gap:25px}.work-grid .label{min-height:38px}.work-grid .work-image{aspect-ratio:1}.work-image span{font-size:.65rem;padding:5px 7px;right:8px;bottom:8px}.process{gap:22px 16px}.about{padding-block:32px}.work-grid{gap:22px 14px}.viewer-bar h2{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Stage 3: editorial treatment of the approved reading order. */
:root{--paper:#f8f7f3;--ink:#242823;--muted:#60665d;--line:#d4d5cc;--serif:Georgia,"Times New Roman",serif}
header{min-height:100px}.logo{width:151px}header nav{font-size:.8125rem;gap:19px}.hero{padding-top:40px;padding-bottom:42px}.hero>.label{letter-spacing:1.6px}.hero .role{font-size:1.5rem;margin-top:11px}.hero .discipline{margin-top:5px}h1{font-size:clamp(2.4rem,4.7vw,4.3rem);font-weight:500;letter-spacing:-.035em;line-height:1.09;max-width:1000px;margin-top:29px}.hero .subtitle{font-size:1.0625rem;line-height:1.75;max-width:670px;margin-top:20px}.hero .actions{margin-top:25px;gap:14px}.button{min-height:46px;padding:12px 23px;transition:background .15s,color .15s}.button:hover{opacity:1;background:#424a3d;color:white}.introduction{grid-template-columns:200px 1fr;align-items:start;padding-top:25px;margin-top:32px;gap:35px}.introduction h2{font-family:var(--serif);font-size:1.7rem;letter-spacing:-.02em;line-height:1.2}.introduction p{max-width:810px;font-size:1rem;line-height:1.8}.work{padding-top:38px;padding-bottom:44px}.section-head{margin-bottom:28px}.section-head h2{font-size:2.2rem;line-height:1.15;max-width:470px;letter-spacing:-.035em;margin-top:11px}.mockup-note{border-left:1px solid var(--line);padding-left:18px;font-size:.75rem;line-height:1.75;max-width:310px}.featured{grid-template-columns:1.3fr 1fr;gap:40px}.featured>.work-image{aspect-ratio:1.65}.featured>.work-image img{object-position:43% 50%}.featured h3{font-family:var(--serif);font-size:1.85rem;line-height:1.18;letter-spacing:-.025em;margin-top:11px;margin-bottom:17px;max-width:360px}.featured>div>p:not(.label):not(.caption){line-height:1.8}.featured .caption{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.work-image img{transition:transform .25s ease}.work-image:hover img{transform:scale(1.02)}.work-image span{font-size:.75rem;background:#242823eb;padding:8px 11px}.work-grid{gap:24px;margin-top:32px}.work-grid article{border-top:1px solid var(--line);padding-top:13px}.work-grid .label{min-height:38px;display:flex;align-items:start;line-height:1.5}.work-grid .work-image{aspect-ratio:1.5}.work-grid article:nth-child(2) .work-image img{object-position:50% 32%}.work-grid article>p:last-child{margin-top:13px;font-size:.9375rem;line-height:1.6;max-width:265px}.about{padding-block:48px;background:#efefe8;border-block:1px solid #dedfd5}.story{grid-template-columns:1fr 1.65fr;gap:60px}.story h2{font-family:var(--serif);font-size:2.8rem;line-height:1.13;letter-spacing:-.03em;margin-top:16px}.story-thread{font-size:.875rem;letter-spacing:.25px;line-height:1.8;padding-top:18px;margin-top:25px;border-top:1px solid #c7ccbd;max-width:270px}.story>div:last-child{max-width:730px}.story>div:last-child>p:first-child{font-family:var(--serif);font-size:1.25rem;line-height:1.6;letter-spacing:-.01em}.story>div:last-child>p+p{margin-top:19px;line-height:1.8}.work-image:focus-visible{outline-offset:4px}
@media(max-width:1000px) and (min-width:801px){.featured{gap:28px;grid-template-columns:1fr 1fr}.featured h3{font-size:1.65rem}.work-grid{gap:17px}.story{gap:35px}.introduction{grid-template-columns:160px 1fr;gap:30px}}
@media(max-width:800px){header{min-height:94px}.hero{padding-top:30px;padding-bottom:32px}.hero .subtitle{font-size:1rem}.introduction{grid-template-columns:1fr;gap:13px}.introduction p{line-height:1.75}.featured{grid-template-columns:1fr;gap:23px}.featured h3{max-width:none}.featured>.work-image{aspect-ratio:1.6}.work{padding-top:30px;padding-bottom:35px}.mockup-note{max-width:none;margin-top:20px}.work-grid{gap:24px 20px}.work-grid .label{min-height:38px}.story{grid-template-columns:1fr;gap:27px}.story h2{font-size:2.5rem}.story-thread{margin-top:18px;padding-top:14px}.about{padding-block:35px}.work-grid article>p:last-child{max-width:none}}
@media(max-width:480px){header nav{gap:5px;font-size:.75rem}.logo{width:133px}.hero{padding-top:27px}h1{font-size:2.55rem;line-height:1.12;margin-top:23px}.hero .role{font-size:1.3rem}.hero .actions{margin-top:21px;gap:10px}.hero .button{padding-inline:15px}.introduction{padding-top:21px;margin-top:26px}.introduction h2{font-size:1.5rem}.section-head h2{font-size:1.9rem}.featured h3{font-size:1.7rem}.featured>.work-image{aspect-ratio:1.4}.work-grid{gap:23px 15px}.work-grid .work-image{aspect-ratio:1.05}.work-grid article>p:last-child{font-size:.875rem}.work-image span{font-size:.75rem;padding:6px 8px;right:7px;bottom:7px}.story h2{font-size:2.2rem}.story>div:last-child>p:first-child{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.button,.work-image img{transition:none}}

/* Personal social profiles, supplied by Kenny. */
.social-invitation{display:grid;grid-template-columns:1fr 1.65fr;gap:60px;margin-top:30px;padding-top:22px;border-top:1px solid #c7ccbd;align-items:center}.social-invitation>p{font-size:.9375rem;max-width:350px;line-height:1.7}.social-links{display:flex;gap:28px;flex-wrap:wrap;align-items:center}.social-links a{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.social-links a:hover{color:#4e5d43}.social-links span{font-size:1rem}footer{align-items:center;flex-wrap:wrap}.footer-social{gap:22px}.footer-social a{font-size:.8125rem}@media(max-width:800px){.social-invitation{grid-template-columns:1fr;gap:12px;margin-top:24px}.social-invitation>p{max-width:none}}@media(max-width:480px){footer .footer-social{order:3;width:100%;gap:26px}}

/* Portrait and bilingual navigation. */
header{flex-wrap:wrap;gap:12px 24px;padding-block:12px}header nav{margin-left:auto}.language-switch{display:flex;align-items:center;gap:5px;white-space:nowrap}.language-switch button{border:0;background:transparent;color:var(--muted);padding:10px 6px;min-height:44px;font-size:.8125rem}.language-switch button[aria-pressed="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}.language-switch>span{color:var(--line)}.introduction{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:center;gap:48px;padding-top:32px;margin-top:38px}.portrait{aspect-ratio:1;object-fit:contain;max-width:430px}.introduction-copy h2{margin-bottom:20px}.introduction-copy p{max-width:620px}html:lang(zh-Hans) body{font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif}html:lang(zh-Hans) h1{font-size:clamp(2rem,4.3vw,3.7rem);line-height:1.35;letter-spacing:0}html:lang(zh-Hans) h2,html:lang(zh-Hans) h3{letter-spacing:0;line-height:1.4}html:lang(zh-Hans){--serif:"Songti SC","SimSun",serif}html:lang(zh-Hans) .label{letter-spacing:.05em}html:lang(zh-Hans) .introduction-copy p{line-height:1.95}
@media(max-width:1000px){header nav{gap:12px}.introduction{gap:30px}}@media(max-width:800px){header .logo{order:0}.language-switch{margin-left:auto;order:1}header nav{order:2;margin-left:0;width:100%;justify-content:space-between;flex-wrap:wrap}.introduction{grid-template-columns:1fr;gap:24px}.portrait{max-width:430px}.introduction-copy h2{margin-bottom:14px}}@media(max-width:480px){.introduction{margin-top:28px;padding-top:24px}.portrait{max-width:none}header nav{gap:6px}.language-switch button{font-size:.8125rem}}

/* Confirmed professional experience. */
.introduction-copy p+p{margin-top:15px}.experience-facts{list-style:none;padding:18px 0 0;margin:23px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px 22px}.experience-facts li{font-size:.875rem;line-height:1.65;color:var(--ink)}

/* Stage 4: carry the editorial hierarchy through the lower homepage. */
.collaboration{padding-block:58px}.collaboration h2{font-family:var(--serif);font-size:2.5rem;max-width:720px}.collaboration .lead{line-height:1.85;max-width:760px}.process{margin-top:35px;gap:28px;counter-reset:steps}.process li{counter-increment:steps;padding-top:16px}.process li::before{content:"0" counter(steps);display:block;font-size:.75rem;color:var(--muted);margin-bottom:15px;letter-spacing:.08em}.process h3{font-size:1.15rem}.process p{font-size:.9375rem;line-height:1.75}.notes{padding-block:34px;gap:60px}.notes section{min-width:0}.notes h2{font-family:var(--serif);font-size:1.7rem;margin-block:12px}.notes p:not(.label):not(.caption){font-size:.9375rem;line-height:1.8}.notes .caption{margin-top:18px}.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:start;padding-block:58px}.contact h2{font-family:var(--serif);font-size:clamp(2rem,3.1vw,2.8rem);max-width:420px;line-height:1.15;margin-block:15px 20px}.contact-heading>p:last-child{font-size:.875rem;line-height:1.8;color:var(--muted);max-width:330px}.contact-intro{font-size:1.0625rem;line-height:1.8;max-width:610px}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.enquiry-guide{border-top:1px solid var(--line);margin-top:27px;padding-top:20px}.enquiry-guide h3{font-size:.9375rem;font-weight:600}.enquiry-guide p{font-size:.9375rem;line-height:1.8;color:var(--muted);margin-top:9px}footer{padding-block:24px}
@media(max-width:800px){.collaboration{padding-block:38px}.collaboration h2{font-size:2.1rem}.process{gap:26px}.contact{grid-template-columns:1fr;gap:25px;padding-block:38px}.contact h2{max-width:none;margin-bottom:14px}.contact-heading>p:last-child{max-width:none}.notes{gap:35px}.contact-intro{font-size:1rem}}@media(max-width:480px){.collaboration h2{font-size:1.85rem}.process{gap:24px 18px}.notes h2{font-size:1.5rem}.contact-actions{flex-direction:column;align-items:stretch}.contact-actions .button{justify-content:center}.contact h2{font-size:2rem}}

/* Shared multipage framework. */
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;font-weight:600}.text-link{display:inline-flex;align-items:center;min-height:44px;padding-block:9px;font-size:.8125rem;letter-spacing:.03em;text-decoration:underline;text-underline-offset:6px}.section-link{margin-top:18px}.section-route{border-top:1px solid var(--line);margin-top:28px}.page-heading{padding-block:28px 40px}.page-heading>.label{margin-top:24px}.page-heading h1{max-width:850px;font-size:clamp(2.3rem,4.5vw,3.7rem);margin-top:16px}.page-description{margin-top:20px;max-width:670px;line-height:1.8}.profile-page{padding-bottom:45px}.profile-page .introduction{margin-top:0}.lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-bottom:48px;border-bottom:1px solid var(--line)}.lab-card h2{font-family:var(--serif);font-size:1.6rem;margin-top:22px}.lab-card>p{margin-top:12px}.lab-card .work-image{aspect-ratio:1.2}.journal-empty{border-block:1px solid var(--line);padding-block:48px 60px}.journal-empty h2{font-family:var(--serif);margin-top:16px}.journal-empty>p:not(.label){margin-top:16px;color:var(--muted)}.project-detail>.work-image{aspect-ratio:auto;max-height:none}.project-detail>.work-image img{height:auto;max-height:760px;object-fit:contain;background:#e5e5dd}.project-caption{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding-block:22px;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--muted)}.project-description{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding-block:35px}.project-description>p:last-child{max-width:730px;line-height:1.85}.project-navigation{display:flex;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding-block:8px}.project-navigation .section-link{margin-top:0}.work-grid .section-link{margin-top:8px}
@media(max-width:800px){.lab-grid{grid-template-columns:1fr 1fr}.project-caption,.project-description{grid-template-columns:1fr;gap:14px}.page-heading{padding-bottom:30px}.profile-page{padding-bottom:32px}}@media(max-width:480px){.lab-grid{grid-template-columns:1fr;gap:32px}.page-heading h1{font-size:2.2rem}.project-description{padding-block:26px}.journal-empty{padding-block:30px 40px}}

/* Concise editorial preview: preserve typography, make the work lead. */
.concise-hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-block:55px 60px}.concise-hero h1{font-size:clamp(2.3rem,4.2vw,4rem);line-height:1.06;margin-block:24px}.concise-hero .role{font-size:1.25rem;margin-top:18px}.concise-hero .discipline{font-size:.82rem;margin-top:8px}.concise-hero .subtitle{font-size:1rem;line-height:1.7;max-width:500px}.concise-hero .actions{margin-top:22px;display:flex;gap:24px;align-items:center}.hero-moment{margin:0;min-width:0}.hero-moment img{display:block;width:100%;aspect-ratio:1.2;object-fit:cover}.hero-moment figcaption{display:flex;justify-content:space-between;gap:12px;font-size:.7rem;margin-top:12px;color:var(--muted)}.concise-work{padding-block:30px 45px;border-top:1px solid var(--line)}.concise-work h2{font-family:var(--serif);font-size:2rem;max-width:440px}.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:26px}.editorial-card{display:block;min-width:0}.editorial-card img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover}.editorial-card:nth-child(2) img{object-position:50% 32%}.editorial-card>div{position:relative;padding-top:15px;padding-right:25px}.editorial-card h3{font-size:1.05rem;margin-top:8px}.editorial-card span{position:absolute;right:0;top:18px}.editorial-card:hover h3{text-decoration:underline;text-underline-offset:4px}.concise-about{display:grid;grid-template-columns:180px 1fr;gap:45px;align-items:center;padding-block:40px;border-block:1px solid var(--line)}.concise-about>img{width:180px;aspect-ratio:1;object-fit:cover}.concise-about h2{font-family:var(--serif);font-size:2.1rem;margin-block:12px}.concise-about p{max-width:700px}.quiet-facts{font-size:.8rem;color:var(--muted);margin-block:12px}.concise-contact{padding-block:38px;gap:40px}.concise-contact .social-links{margin-top:12px}.concise-contact h2{font-size:2rem}.concise-home .label{font-size:.7rem}header nav a{min-height:44px;display:inline-flex;align-items:center}.concise-home a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(max-width:800px){.concise-hero{grid-template-columns:1fr;gap:25px;padding-block:28px 30px}.concise-hero h1{font-size:2.55rem;max-width:540px}.hero-moment img{aspect-ratio:1.65}.concise-work .section-head{gap:12px}.concise-work .mockup-note{margin-top:10px}.concise-about{grid-template-columns:110px 1fr;gap:22px}.concise-about>img{width:110px}.concise-about h2{font-size:1.75rem}.concise-contact{gap:12px}.editorial-grid{gap:20px}.editorial-card .label{font-size:.65rem}.editorial-card h3{font-size:.9rem}.concise-about .quiet-facts{line-height:1.8}}
@media(max-width:480px){.concise-hero .actions{gap:18px}.concise-hero h1{margin-block:18px}.concise-hero .role{margin-top:12px}.concise-work h2{font-size:1.75rem}.editorial-grid{grid-template-columns:1fr}.editorial-card img{aspect-ratio:1.9}.concise-about{grid-template-columns:1fr;gap:18px}.concise-about>img{width:105px}.concise-about h2{font-size:1.9rem}.concise-contact .social-links{gap:30px}.concise-contact .social-links a{font-size:1rem}}

.gallery-work{padding-bottom:35px}.gallery-work .editorial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-block:1px solid var(--line);padding-block:8px}.gallery-filters button{background:transparent;border:0;min-height:44px;padding:10px 15px;font-size:.8rem}.gallery-filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper,#fff)}.gallery-filters output{margin-left:auto;font-size:.8rem;color:var(--muted)}.editorial-card[hidden]{display:none}.additional-study{padding-block:30px}.additional-study h2{font-family:var(--serif);font-size:1.8rem;margin:12px 0 20px}.additional-study .work-image img{height:auto;width:100%;object-fit:contain}.additional-study .work-image{aspect-ratio:auto}.concise-home .editorial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.concise-home .editorial-card img{aspect-ratio:1.45}.concise-home .editorial-card:nth-child(4){grid-column:span 2}.concise-home .editorial-card:nth-child(4) img{aspect-ratio:3}.concise-home .editorial-card:nth-child(5) img{aspect-ratio:1.45}
@media(max-width:800px){.gallery-work .editorial-grid,.concise-home .editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.concise-home .editorial-card:nth-child(4){grid-column:auto}.concise-home .editorial-card:nth-child(4) img{aspect-ratio:1.45}.concise-home .editorial-card:last-child{grid-column:span 2}.concise-home .editorial-card:last-child img{aspect-ratio:3}.editorial-grid{gap:25px 16px}.editorial-card h3{line-height:1.5}.gallery-filters{gap:2px}.gallery-filters button{padding-inline:10px;font-size:.7rem}}

.editorial-card img[src*="character"]{object-position:50% 20%}

.concise-home .editorial-card:nth-child(4),.concise-home .editorial-card:last-child{grid-column:auto}.concise-home .editorial-card:nth-child(4) img,.concise-home .editorial-card:last-child img{aspect-ratio:1.6}.concise-home .editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-with-social{display:block}.social-note{display:flex;justify-content:space-between;gap:35px;padding-block:8px 26px}.social-note>div:first-child{max-width:620px}.social-note .label{font-size:.7rem;margin-bottom:10px}.social-note .social-caption{font-size:.875rem;color:var(--muted);line-height:1.7;margin-top:8px}.footer-with-social>p{font-size:.75rem;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}.contact-page{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding-bottom:65px}.contact-page h2{font-family:var(--serif);font-size:1.8rem;margin-bottom:22px}.contact-channel{display:block;border-top:1px solid var(--line);padding-block:18px;overflow-wrap:anywhere}.contact-channel span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:8px}.contact-channel strong{font-size:1.25rem;font-weight:500}.direct-contact .caption{max-width:360px;line-height:1.8;margin-top:20px}.contact-page form label{display:block;font-size:.9rem;margin:20px 0 8px}.contact-page input,.contact-page textarea{width:100%;padding:12px;border:1px solid #999b91;border-radius:0;background:transparent;color:var(--ink);font:inherit}.contact-page textarea{resize:vertical}.contact-page .caption,.form-privacy{font-size:.8rem;line-height:1.7;color:var(--muted);margin:10px 0 20px}.form-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#form-status{line-height:1.7;margin-top:16px}#form-status[data-state="error"]{color:#993826}button:disabled{opacity:.55;cursor:wait}.contact-page input:focus-visible,.contact-page textarea:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(max-width:800px){.contact-page{grid-template-columns:1fr;gap:36px}.social-note{display:block}.social-note .social-links{margin-top:16px}.concise-contact{padding-block:25px}.contact-page{padding-bottom:40px}}

/* V12: shared image baselines, predictable gutters, readable mobile cards. */
.gallery-work .editorial-grid{gap:38px 26px;align-items:start}
.gallery-work .editorial-card img{aspect-ratio:3/2;object-fit:cover}
.gallery-work .editorial-card>div{padding:14px 0 0}
.gallery-work .editorial-card .label{min-height:1.6em}
.gallery-work .editorial-card h2{font-family:inherit;font-size:1.05rem;line-height:1.5;letter-spacing:-.01em;margin-top:7px}
.gallery-work .editorial-card:hover h2{text-decoration:underline;text-underline-offset:5px}
.gallery-work .editorial-card img{transition:filter .2s ease}
.gallery-work .editorial-card:hover img{filter:brightness(.94)}
.page-heading .work-intro{max-width:640px;margin-top:18px}
.page-heading .gallery-disclosure{font-size:.8rem;color:var(--muted);margin-top:12px}
.concise-home .editorial-card img,.concise-home .editorial-card:nth-child(4) img,.concise-home .editorial-card:last-child img{aspect-ratio:3/2}
.concise-home .editorial-card>div{padding-right:0}
.project-navigation{display:flex;justify-content:space-between;align-items:center;gap:24px}
.additional-study{border-top:1px solid var(--line);margin-top:26px;scroll-margin-top:30px}
@media(max-width:800px){.gallery-work .editorial-grid{gap:30px 20px}.gallery-work .editorial-card h2{font-size:1rem}}
@media(max-width:540px){.gallery-work .editorial-grid,.concise-home .editorial-grid{grid-template-columns:minmax(0,1fr);gap:30px}.gallery-filters{gap:2px}.gallery-filters button{padding-inline:9px}.gallery-filters output{padding-left:6px}.gallery-work .editorial-card .label{font-size:.72rem}.gallery-work .editorial-card h2{font-size:1.1rem}.project-navigation{gap:16px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.gallery-work .editorial-card img{transition:none}}

#viewer-image{max-height:calc(95dvh - 125px)}

/* V13: category navigation followed by clearly separated collections. */
.gallery-work .gallery-filters{gap:4px;padding-block:10px}
.gallery-work .gallery-filters button{font-size:.82rem;padding:10px 16px;line-height:1.5}
.gallery-summary{display:flex;gap:5px;margin-top:16px;font-size:.78rem;color:var(--muted)}
.work-category{margin-top:42px;padding-top:28px;border-top:1px solid var(--line)}
.work-category:first-of-type{margin-top:24px;border-top:0;padding-top:0}
.work-category[hidden]{display:none}
.category-heading h2{font-family:var(--serif);font-size:1.9rem}
.gallery-work .category-grid{margin-top:22px}
.gallery-work .category-grid[data-size="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-work .editorial-card h3{font-size:1rem;line-height:1.5;margin:0;letter-spacing:0}
.gallery-work .editorial-card:hover h3{text-decoration:underline;text-underline-offset:5px}
.gallery-work .editorial-card>div{padding-top:12px}
@media(max-width:800px){.gallery-work .gallery-filters button{font-size:.78rem;padding:10px 13px}.category-heading h2{font-size:1.65rem}.work-category{margin-top:34px;padding-top:24px}}
@media(max-width:540px){.gallery-work .gallery-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:0;padding:0}.gallery-work .gallery-filters button{text-align:left;border:1px solid var(--line);padding:12px;font-size:.82rem}.gallery-work .category-grid[data-size="2"]{grid-template-columns:minmax(0,1fr)}.gallery-work .category-grid{gap:24px}.category-heading h2{font-size:1.5rem}.gallery-work .editorial-card h3{font-size:1rem}}
/* V14: series covers, image contact sheets, and captioned viewing. */
.gallery-work .album-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.album-card>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.album-card .album-count{white-space:nowrap;font-size:.75rem;color:var(--muted)}
.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 30px;padding-bottom:42px}
.album-photo{margin:0;min-width:0;scroll-margin-top:24px}
.album-photo .work-image{aspect-ratio:3/2}
.album-photo figcaption{display:grid;grid-template-columns:28px 1fr;gap:12px;padding-top:17px}
.photo-number{font-size:.72rem;color:var(--muted);padding-top:3px}
.album-photo h2{font-size:1.08rem;line-height:1.5;letter-spacing:0}
.album-photo figcaption p{font-size:.875rem;line-height:1.75;color:var(--muted);margin-top:7px;max-width:520px}
.series-heading>p:last-child{max-width:680px}
.album-return{padding-block:22px 42px;border-block:1px solid var(--line);font-size:.8rem}
.viewer-navigation{display:flex;align-items:center;justify-content:space-between;gap:18px}
.viewer-navigation button{border:1px solid #aaa;background:transparent;color:#fff;padding:8px 18px;min-height:44px;font-size:.8rem}
.viewer-navigation button:disabled{opacity:.3;cursor:default}
#viewer-caption{font-size:.9rem;line-height:1.6;max-width:850px}
#viewer-image{max-height:calc(95dvh - 235px)}
#viewer-position{font-size:.8rem;white-space:nowrap}
@media(max-width:800px){.album-grid{gap:30px 20px}.album-photo figcaption{grid-template-columns:22px 1fr;gap:8px}.album-photo h2{font-size:1rem}.gallery-work .album-cover-grid{gap:28px 20px}.album-card>div{display:block}.album-card .album-count{margin-top:5px}}
@media(max-width:540px){.album-grid,.gallery-work .album-cover-grid{grid-template-columns:minmax(0,1fr)}.album-grid{gap:32px}.album-photo h2{font-size:1.05rem}.album-card>div{display:flex}.gallery-work .gallery-filters button:first-child{grid-column:1/-1}.viewer-navigation button{padding-inline:12px}.viewer-bar h2{font-size:1rem}#viewer-caption{font-size:.8rem}#viewer-image{max-height:calc(95dvh - 260px)}}

.social-note-with-windows{display:block}.social-windows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:26px}.social-window{border:1px solid var(--line);min-width:0}.social-window-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.social-window-head h3{font-size:1rem}.social-window-head span{font-size:.75rem;color:var(--muted)}.social-window-body{min-height:240px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:28px}.social-window-body>p:first-child{font-family:var(--serif);font-size:1.5rem}.social-window-body>p+p{font-size:.9rem;color:var(--muted);line-height:1.8;margin-top:12px;max-width:380px}.social-window-body a{font-size:.75rem;letter-spacing:.03em;margin-top:24px;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:6px}.social-window iframe{width:100%;height:440px;border:0;background:white}@media(max-width:640px){.social-windows{grid-template-columns:minmax(0,1fr);gap:18px}.social-window-head{padding:15px 18px}.social-window-body{min-height:210px;padding:22px}.social-window-body>p:first-child{font-size:1.3rem}}


.location-line{font-size:.8rem;line-height:1.7;color:var(--muted);margin-top:9px;max-width:460px}

/* Contact uses direct channels while enquiry delivery is unavailable. */
.contact-page:has(> .direct-contact:only-child){grid-template-columns:minmax(0,680px);}

.social-window-body.social-post{display:block;padding:0 0 22px}.social-window-body .social-post-photo{display:block;margin:0}.social-post-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.social-post time{display:block;margin:18px 22px 8px;color:var(--muted);font-size:.75rem}.social-window-body .social-post-caption{margin:8px 22px;white-space:pre-wrap;font:inherit;line-height:1.7;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.social-post>a:last-child{margin:12px 22px 0}
