:root{--bg:#f7f7f5;--ink:#20201f;--muted:#70706b;--line:#d8d8d2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #267093;outline-offset:5px}header{padding:26px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--bg)}.wordmark{font-size:22px;font-weight:700;letter-spacing:-1px}.wordmark span{display:block;font-size:9px;letter-spacing:3px;margin-top:4px;font-weight:400}nav{display:flex;gap:34px;font-size:13px;align-items:center}.nav-contact{border:1px solid var(--ink);border-radius:40px;padding:12px 20px}.nav-contact span{margin-left:18px}.hero,.section,footer{max-width:1600px;margin:auto;padding:90px 5%}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:500;color:var(--muted);display:block}h1{font-size:clamp(58px,8.5vw,132px);letter-spacing:-.065em;line-height:1.02;font-weight:500;margin:35px 0}h1 span{color:#82827a}.hero-bottom{display:flex;justify-content:space-between;align-items:end;margin:35px 0 45px}.hero-bottom p,p{font-size:15px;line-height:1.7;color:var(--muted)}.text-link{display:inline-flex;gap:30px;border-bottom:1px solid var(--ink);padding-bottom:9px;font-size:13px;color:var(--ink)}figure{margin:0}.hero-image img{display:block;width:100%;height:auto}.hero-image figcaption{display:flex;justify-content:space-between;margin-top:14px;font-size:11px;color:var(--muted)}.section{padding-top:95px;padding-bottom:95px;border-top:1px solid var(--line)}.section-top{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:42px}h2{font-size:clamp(35px,4.5vw,65px);font-weight:500;letter-spacing:-.045em;line-height:1.1;margin:23px 0 0}.section-top p{font-size:13px;margin:0}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:35px}.filters button{border:1px solid var(--line);padding:11px 19px;border-radius:30px;background:none;font-size:12px;color:var(--muted)}.filters button.active{background:var(--ink);border-color:var(--ink);color:white}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 25px;align-items:start}.photo{min-width:0}.photo button{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left}.photo img{width:100%;height:auto;display:block;background:#e9e9e5}.photo.portrait img{max-height:600px;object-fit:contain}.photo figcaption{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-top:13px;color:var(--muted)}.photo figcaption b{font-weight:400;color:var(--ink)}.photo[hidden]{display:none}.studio{background:#eeeee9}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:20px}.studio-grid h2{margin-top:10px}.studio-grid p{margin-top:0}.studio-grid p.lead{font-size:21px;line-height:1.5;color:var(--ink)}.studio-grid .text-link{margin-top:18px}.founder{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid #d1d1cb;margin-top:65px;padding-top:45px}.founder h3{font-size:42px;font-weight:500;letter-spacing:-2px;margin:14px 0 8px}.founder p{font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid #d1d1cb;padding-top:40px;margin-top:35px}.stats strong{font-size:70px;font-weight:500;letter-spacing:-4px}.stats strong span{font-weight:300;color:var(--muted)}.stats p{font-size:12px}.client-experience{border-top:1px solid #d1d1cb;margin-top:45px;padding-top:35px}.client-experience p{font-size:13px;max-width:600px}.clients{display:flex;flex-wrap:wrap;gap:20px 35px;margin-top:25px;font-size:19px;font-weight:500;letter-spacing:-.4px}.service-list article{display:grid;grid-template-columns:50px 1fr 1fr;gap:25px;padding:32px 0;border-top:1px solid var(--line);align-items:start}.service-list article>span{font-size:11px;color:var(--muted);padding-top:7px}.service-list h3{font-size:24px;letter-spacing:-.6px;font-weight:500;margin:0}.service-list p{font-size:14px;margin:0;max-width:390px}.contact{background:#252523;color:#f7f7f5}.contact .eyebrow{color:#a4a49a}.contact h2{font-size:clamp(50px,7vw,100px);margin:32px 0}.contact p{color:#b4b4ad}.contact-links{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:45px}.contact-links a{display:flex;flex-direction:column;gap:15px;border-top:1px solid #61615b;padding:20px 0;font-size:12px;color:#b4b4ad}.contact-links span{font-size:24px;letter-spacing:-.5px;color:white}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:35px;padding-bottom:35px}footer p,footer>a{font-size:11px}.skip{position:absolute;left:15px;top:-100px;background:white;padding:15px;z-index:20}.skip:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}dialog{border:0;background:#171717;color:white;width:100vw;height:100dvh;max-width:none;max-height:none;padding:45px 70px}dialog::backdrop{background:#171717}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{width:100%;text-align:center}dialog img{display:block;margin:auto;max-width:100%;max-height:82dvh;object-fit:contain}dialog figcaption{padding-top:15px;font-size:13px;color:#ccc}dialog button{position:absolute;background:transparent;border:0;color:white;font-size:28px;padding:10px}#close-viewer{right:20px;top:10px;font-size:40px}.prev{left:12px}.next{right:12px}
@media(max-width:700px){header{padding:20px 6%}.wordmark{font-size:18px}nav{gap:18px}nav>a:nth-child(2),nav>a:nth-child(3){display:none}.nav-contact{padding:9px 13px}.hero,.section{padding:55px 6%}.hero-bottom{align-items:start;gap:25px;flex-direction:column}.hero-bottom p{font-size:13px}.hero-image figcaption{font-size:9px}.section-top{display:block}.section-top p{margin-top:20px}.gallery{gap:30px 14px}.photo figcaption{font-size:10px;flex-direction:column;gap:4px}.photo.portrait img{max-height:330px}.filters{gap:7px}.filters button{padding:9px 12px;font-size:10px}.studio-grid,.founder{grid-template-columns:1fr;gap:20px}.studio-grid p.lead{font-size:19px}.founder{margin-top:40px;padding-top:30px}.stats strong{font-size:48px;letter-spacing:-2px}.stats p{font-size:10px}.clients{font-size:16px;gap:20px}.service-list article{grid-template-columns:25px 1fr;gap:12px}.service-list h3{font-size:21px}.service-list p{grid-column:2}.contact-links{grid-template-columns:1fr;gap:10px}.contact-links span{font-size:22px}footer{padding:30px 6%;flex-wrap:wrap}footer p{width:100%;order:3;margin:0}dialog{padding:50px 35px}dialog button{font-size:22px}.prev{left:0}.next{right:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Brand-led, image-first refinement */
header{padding-top:15px;padding-bottom:15px}.brand img{display:block;width:168px;height:auto}.hero{padding-top:65px}.gallery{display:block;columns:2;column-gap:28px}.photo{break-inside:avoid;margin-bottom:36px}.photo.portrait img{max-height:none;object-fit:initial}.studio-grid{align-items:center}.studio-grid h2{max-width:510px}.services p{font-size:clamp(20px,2.5vw,35px);line-height:1.8;letter-spacing:-.6px;color:var(--ink);max-width:1000px}.services p span{color:#b0b0a8;padding:0 12px}.contact{background:#eeeee9;color:var(--ink)}.contact .eyebrow{color:var(--muted)}.contact-main{display:grid;grid-template-columns:1fr 230px;align-items:center;gap:70px}.contact h2{font-size:clamp(45px,6vw,85px)}.contact-logo{display:block;width:100%;height:auto}.contact-links{gap:30px}.contact-links a{color:var(--muted);border-color:#ccc}.contact-links span{color:var(--ink);font-size:20px}footer p{margin:0}
@media(max-width:700px){.brand img{width:124px}nav{gap:15px}nav>a:nth-child(3){display:block}.gallery{column-gap:15px}.photo{margin-bottom:27px}.contact-main{grid-template-columns:1fr;gap:40px}.contact-logo{width:150px}.contact-links{grid-template-columns:1fr}.services p span{padding:0 5px}footer p{width:auto;order:0}}

header{position:absolute;top:0;left:0;right:0;z-index:5;background:transparent;border:0;color:white}.brand{background:rgba(255,255,255,.94);padding:6px 12px;border-radius:2px}.brand img{width:150px}.nav-contact{border-color:#ffffff88}.immersive{position:relative;width:100%;max-width:none;height:100svh;min-height:620px;padding:0;overflow:hidden;background:#161918;color:white}.hero-slides,.hero-slide,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-slide{object-fit:cover;opacity:0;transition:opacity 1.8s ease}.hero-slide.is-current{opacity:1}.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 40%,rgba(0,0,0,.62))}.hero-copy{position:absolute;bottom:10%;left:5%;right:5%}.hero-copy .eyebrow{color:#eee}.hero-copy h1{font-size:clamp(48px,6.6vw,100px);line-height:1.02;margin:22px 0 28px;letter-spacing:-.055em}.hero-copy .text-link{color:white;border-color:#ffffff66}.immersive #pause-slides{position:absolute;bottom:35px;right:5%;background:transparent;color:#fff;border:1px solid #ffffff66;border-radius:25px;padding:10px 17px;font-size:11px}@media(max-width:700px){.brand img{width:115px}header{padding:16px 6%}.immersive{min-height:560px}.hero-copy{left:6%;bottom:14%}.hero-copy h1{font-size:54px}.hero-copy .eyebrow{font-size:8px}.hero-slide{object-position:center}.hero-slide[src="assets/portrait.webp"]{object-position:65% center}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}}
/* A soft translucent backing preserves the original grey logo. */
header .brand{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.06);border-radius:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 3px 18px rgba(0,0,0,.035)}

.contact-links .social-logo{width:64px;height:26px;object-fit:contain;object-position:left center}.contact-links .wechat-contact{display:flex;flex-direction:column;gap:15px;border:0;border-top:1px solid #ccc;padding:20px 0;font-size:12px;color:var(--muted);background:none;text-align:left}.contact-links .wechat-contact span{font-size:20px;color:var(--ink)}#wechat-viewer{background:#f7f7f5;color:#20201f}#wechat-viewer img{width:min(450px,100%);max-height:70dvh;object-fit:contain}#wechat-viewer figcaption{color:#555}#close-wechat{color:#222;right:20px;top:10px;font-size:40px}

header .brand img{filter:brightness(0) invert(1)}

/* Gentle motion; autoplay remains available with reduced-motion transitions disabled. */
@media(prefers-reduced-motion:no-preference){.hero-slide.is-zooming{animation:hero-drift 6s ease-out both}@keyframes hero-drift{from{transform:scale(1)}to{transform:scale(1.055)}}}
@media(max-width:700px){header{padding:14px 5%}.brand img{width:100px}.brand{padding:5px 9px}nav{font-size:12px;gap:16px}.nav-contact{padding:9px 12px}.immersive{height:100svh;min-height:480px}.hero-copy{left:6%;right:6%;bottom:calc(48px + env(safe-area-inset-bottom))}.hero-copy h1{font-size:clamp(36px,10.5vw,48px);margin:14px 0 22px;line-height:1.06}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.2px}.hero-copy .text-link{font-size:12px}.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.25),transparent 28%,rgba(0,0,0,.12) 55%,rgba(0,0,0,.68))}.hero-slide[src*="dance-original-"]{object-position:48% center}.hero-slide[src="assets/portrait.webp"]{object-position:76% center}.hero-slide[src="assets/food3.webp"]{object-position:55% center}.hero-slide[src="assets/orchestra.webp"]{object-position:60% center}.immersive #pause-slides{bottom:calc(20px + env(safe-area-inset-bottom));right:5%;padding:8px;width:38px;height:38px;font-size:14px}}

#love-description{font-size:13px;letter-spacing:.08em;margin:-12px 0 32px;color:var(--muted)}

.collection-share{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.collection-share button{background:none;border:0;border-bottom:1px solid currentColor;cursor:pointer;font:inherit;font-size:13px}.collection-share [role=status]{font-size:12px;color:var(--muted)}#share-url{width:min(360px,75vw);padding:8px;border:1px solid var(--line);font-size:12px}@media(max-width:700px){.collection-share{margin-top:22px}}

/* Collection landing: load individual photographs only after selection. */
[hidden]{display:none!important}.work-intro{margin:18px 0 0!important;font-size:16px!important}.collections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 28px}.collection-card{display:block}.collection-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#e7e7e1;transition:filter .3s}.collection-card:hover>img{filter:brightness(.92)}.collection-copy{padding:22px 0 0}.collection-copy h3{font-weight:400;font-size:clamp(23px,2.5vw,36px);letter-spacing:-.04em;margin:12px 0 8px}.collection-copy p{margin:0;font-size:14px}.collection-card:nth-child(3)>img{object-position:center 35%}.collection-card:nth-child(4)>img{object-position:center 60%}@media(max-width:600px){.collections{grid-template-columns:1fr;gap:35px}.collection-copy{padding-top:18px}.work .section-top{display:block}}

/* Gentle hero zoom is enabled only when reduced motion is not requested. */

/* White photographic mounts with a restrained, downward shadow. */
.photo button{padding:12px;background:#fff;box-shadow:0 2px 5px rgba(25,25,20,.05),0 10px 24px -10px rgba(25,25,20,.22)}
.collection-card>img{border:12px solid #fff;box-shadow:0 2px 5px rgba(25,25,20,.05),0 10px 24px -10px rgba(25,25,20,.22)}
.photo figcaption{margin-top:17px;padding:0 2px}
@media(max-width:700px){.photo button{padding:7px}.collection-card>img{border-width:8px}.photo figcaption{margin-top:12px}}

/* Event pairs follow left-to-right reading order. */
.gallery:has(.photo[data-category=events]){display:grid;columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.gallery:has(.photo[data-category=events]) .photo{margin-bottom:0}

/* A compact editorial rhythm with generous photographs. */
.gallery:has(.photo[data-category=food]){display:grid;columns:auto;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px 24px;align-items:center}
.gallery:has(.photo[data-category=food]) .photo{margin:0;grid-column:span 6}
.photo[data-category=food] img{height:auto;aspect-ratio:auto;object-fit:contain;background:#fff}
.gallery:has(.photo[data-category=food]) .photo:nth-child(6n+1){grid-column:span 7}
.gallery:has(.photo[data-category=food]) .photo:nth-child(6n+2){grid-column:span 5}
.gallery:has(.photo[data-category=food]) .photo:nth-child(6n+3){grid-column:span 5}
.gallery:has(.photo[data-category=food]) .photo:nth-child(6n+4){grid-column:span 7}
.gallery:has(.photo[data-category=food]) .photo[data-photo=food-99394776],.gallery:has(.photo[data-category=food]) .photo[data-photo=food-4717afcf]{grid-column:1/-1}
.gallery:has(.photo[data-category=food]) .photo:nth-child(8),.gallery:has(.photo[data-category=food]) .photo:nth-child(9),.gallery:has(.photo[data-category=food]) .photo:nth-child(10){grid-column:span 4;align-self:center}
.gallery:has(.photo[data-category=food]) .photo:nth-child(11),.gallery:has(.photo[data-category=food]) .photo:nth-child(12){grid-column:span 6}
.gallery:has(.photo[data-category=food]) .photo:nth-child(20),.gallery:has(.photo[data-category=food]) .photo:nth-child(21),.gallery:has(.photo[data-category=food]) .photo:nth-child(22),.gallery:has(.photo[data-category=food]) .photo:nth-child(23){grid-column:span 6}
@media(max-width:700px){.gallery:has(.photo[data-category=food]){gap:24px 16px}.gallery:has(.photo[data-category=food]) .photo:nth-child(n){grid-column:span 6}.gallery:has(.photo[data-category=food]) .photo[data-photo=food-99394776],.gallery:has(.photo[data-category=food]) .photo[data-photo=food-4717afcf]{grid-column:1/-1}}
@media(max-width:480px){.gallery:has(.photo[data-category=food]){display:block}.gallery:has(.photo[data-category=food]) .photo:nth-child(n){width:100%;margin:0 0 24px}}

.hero-slide.hero-aquarium{object-position:50% 48%}@media(max-width:700px){.hero-slide.hero-aquarium{object-fit:cover;object-position:70% center}}

/* Fill the space beside the vertical Wuliangye photograph. */
.gallery:has(.photo[data-category=events]) .photo[data-photo=product]{grid-column:2;grid-row:2 / span 2}
.gallery:has(.photo[data-category=events]) .photo[data-photo=graduation]{grid-column:1;grid-row:2}
.gallery:has(.photo[data-category=events]) .photo[data-photo=event-rws05406]{grid-column:1;grid-row:3}
