:root{--bg:#171918;--panel:#202321;--line:#3b3e39;--text:#eae8df;--muted:#a8aba1;--accent:#c8a987;--serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--text);font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.75}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0}img{display:block;width:100%}::selection{background:var(--accent);color:var(--bg)}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.eyebrow{font-family:Arial,"Microsoft YaHei",sans-serif;letter-spacing:.13em;font-size:11px;font-weight:500;color:var(--accent);margin:0 0 24px}.serif{font-family:var(--serif);font-weight:400;color:var(--accent)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin:0 10px 2px 0}.skip{position:fixed;top:-80px;left:20px;padding:10px;background:var(--text);color:var(--bg);z-index:50}.skip:focus{top:10px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 56px;max-width:1580px;margin:auto;border-bottom:1px solid var(--line)}.brand{font-size:23px;letter-spacing:.12em;font-weight:600;line-height:1.2}.brand span{display:block;font:9px Arial,sans-serif;letter-spacing:.22em;margin-top:8px;color:var(--muted)}nav{display:flex;gap:38px;align-items:center;font-size:12px}nav a{transition:color .2s}nav a:hover{color:var(--accent)}.nav-contact{border:1px solid #63655d;padding:9px 17px}.nav-contact span{margin-left:24px}.menu{display:none}.hero{padding-top:68px;display:grid;grid-template-columns:.95fr 1.05fr;column-gap:45px}.hero-intro{padding:15px 0 34px}.hero h1{font-size:clamp(48px,5.4vw,82px);line-height:1.3;letter-spacing:-.045em;font-weight:500;margin:22px 0 34px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;max-width:440px}.hero-bottom p{font-size:14px;color:var(--muted);margin:0;line-height:1.9}.circle-link{border:1px solid #62665c;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:20px;transition:background .2s}.circle-link:hover{background:var(--panel)}.hero-film{position:relative;text-align:left;background:#2c312d;padding:0;overflow:hidden;min-height:440px}.hero-film img{height:100%;position:absolute;object-fit:cover;object-position:48% 50%;filter:saturate(.62) brightness(.73);transition:transform .8s,filter .5s}.hero-film:hover img{transform:scale(1.04);filter:saturate(.9) brightness(.85)}.hero-film:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),transparent 28%,rgba(0,0,0,.88));pointer-events:none}.film-top{position:absolute;inset:22px 25px auto;z-index:1;font:10px Arial,sans-serif;letter-spacing:.16em;display:flex;justify-content:space-between;color:#fff}.hero-play{position:absolute;right:28px;bottom:38px;z-index:2;border:1px solid #b3b7a5;border-radius:50%;width:47px;height:47px;display:grid;place-items:center;font-size:22px}.film-caption{position:absolute;left:26px;right:85px;bottom:32px;z-index:2}.film-caption>span{font-size:10px;color:#d6d6c9}.film-caption strong{display:block;font-size:20px;font-weight:500;margin-top:7px}.film-caption small{font-size:10px;color:#bbbdb2}.hero-footer{grid-column:1/-1;border-bottom:1px solid var(--line);margin-top:42px;padding:0 0 22px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.05em}.hero-footer span:last-child{font:10px Arial,sans-serif}.works{padding-top:108px;padding-bottom:100px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}.section-heading .eyebrow{margin-bottom:16px}h2{font-size:clamp(26px,3vw,42px);font-weight:500;letter-spacing:-.04em;line-height:1.5;margin:0}.heading-note{color:var(--muted);font-size:12px;margin:0 0 7px}.filters{display:flex;gap:30px;padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:34px}.filters button{background:transparent;color:var(--muted);font-size:12px;padding:7px 0;position:relative}.filters button.active{color:var(--text)}.filters button.active:after{content:"";height:2px;background:var(--accent);position:absolute;bottom:-17px;left:0;right:0}.filters sup{font:9px Arial,sans-serif;margin-left:4px;color:var(--accent)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:43px 30px}.project-card{min-width:0}.project-card[hidden]{display:none}.project-image{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;display:block;padding:0;background:var(--panel);text-align:left}.project-image img{height:100%;object-fit:cover;filter:saturate(.75);transition:transform .6s,filter .4s}.project-image:hover img{transform:scale(1.035);filter:saturate(1)}.project-image:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.72))}.project-index{position:absolute;top:15px;left:18px;font:10px Arial,sans-serif;letter-spacing:.1em;background:rgba(20,22,20,.75);padding:4px 7px;z-index:1}.project-view{position:absolute;right:18px;bottom:16px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid #dadbd0;z-index:2;font-size:17px;background:rgba(15,15,15,.3)}.project-info{display:flex;justify-content:space-between;gap:18px;padding-top:18px}.project-kind{font-size:10px;color:var(--accent);letter-spacing:.08em;margin:0 0 5px}.project-info h3{font-size:19px;font-weight:500;line-height:1.5;margin:0}.project-name{padding:0;text-align:left;background:transparent}.project-name:hover{color:var(--accent)}.project-metric{text-align:right;white-space:nowrap;flex-shrink:0;padding-top:2px}.project-metric strong{font-size:19px;line-height:1.4;font-weight:400}.project-metric span{display:block;font-size:9px;color:var(--muted);margin-top:7px}.data-note{font-size:10px;color:var(--muted);margin-top:37px}.about-section{background:#222522;border-block:1px solid #353a33}.about{padding-block:92px;display:grid;grid-template-columns:repeat(3,1fr);gap:58px 45px}.about>div:first-child{grid-column:1/3}.about h2{font-size:42px;line-height:1.7}.about-copy{grid-column:3/4;grid-row:1/3;align-self:start}.about-copy p{font-size:13px;color:var(--muted);margin:0 0 20px}.about-copy .lead{font-size:16px;color:var(--text)}.text-link{display:inline-flex;align-items:center;gap:35px;font-size:12px;border-bottom:1px solid #70766b;padding:6px 0}.text-link span{color:var(--accent);font-size:11px}.achievement{padding-top:23px;border-top:1px solid #4b5046;align-self:end}.achievement strong{font:45px Georgia,serif;letter-spacing:-.04em;white-space:nowrap}.achievement strong span{font:10px "Microsoft YaHei",sans-serif;letter-spacing:0;margin-left:9px;color:var(--muted)}.achievement p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:15px}.achievement:nth-of-type(5){grid-column:1/2}.recognition{grid-column:2/4;display:flex;gap:30px;align-items:center;align-self:center;font-size:11px;color:var(--muted)}.recognition>span{color:var(--accent);white-space:nowrap}.recognition p{margin:0;line-height:2}.experience{padding-block:106px}.experience .section-heading{margin-bottom:48px}.timeline article{display:grid;grid-template-columns:1fr 2fr;padding:30px 0;border-top:1px solid var(--line);gap:40px}.period{font:12px Arial,sans-serif;color:var(--muted);line-height:2.5;margin:0}.current{display:block;font:9px Arial,sans-serif;color:var(--accent);letter-spacing:.1em}.timeline h3{font-size:21px;line-height:1.4;margin:0 0 8px;font-weight:500}.timeline .role{font-size:11px;color:var(--accent);margin:0 0 15px}.timeline article>div>p:last-child{font-size:13px;color:var(--muted);max-width:700px;margin-bottom:0}.timeline .early h3{font-size:16px}.contact-section{background:#d5c6b2;color:#242920;padding-block:83px}.contact-section .eyebrow{color:#5b5e50}.contact-title{display:flex;justify-content:space-between;align-items:center}.contact-title h2{font-size:clamp(40px,6vw,78px);line-height:1.4}.contact-title .serif{color:#6b715e}.contact-arrow{font-size:90px;font-family:Arial,sans-serif;line-height:1;transition:transform .3s;padding-right:20px}.contact-arrow:hover{transform:translate(5px,-5px)}.contact-bottom{display:flex;justify-content:space-between;align-items:end;border-top:1px solid #a7a590;padding-top:34px;margin-top:44px}.contact-bottom p{font-size:11px;margin:0 0 10px;color:#5b5e50}.email{font-size:clamp(17px,2.4vw,30px);font-family:Arial,sans-serif;letter-spacing:-.02em}.contact-actions{display:flex;gap:25px;margin-top:14px;font-size:11px}.contact-actions button{font-size:11px;padding:0;background:none}.contact-actions button span{margin-left:10px}.resume-button{border:1px solid #5e6654;display:flex;align-items:center;gap:45px;padding:14px 20px;font-size:12px}.resume-button:hover{background:#c6b69e}footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);padding-block:27px}dialog{width:min(1020px,calc(100% - 40px));max-height:90dvh;border:1px solid #4a5046;background:var(--bg);color:var(--text);padding:0;overscroll-behavior:contain}dialog::backdrop{background:rgba(0,0,0,.83);backdrop-filter:blur(6px)}.dialog-top{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;background:var(--bg);padding:16px 28px;border-bottom:1px solid var(--line);font-size:10px;color:var(--accent)}.dialog-top button{background:none;font-size:12px}.dialog-content{padding:25px 28px 35px}.dialog-heading h2{font-size:28px}.dialog-heading p{font-size:11px;color:var(--muted);margin:8px 0 25px}.video-frame{aspect-ratio:16/9;background:#0d0e0d;position:relative;overflow:hidden}.video-frame img{height:100%;object-fit:cover;filter:brightness(.55)}.video-frame button{position:absolute;inset:0;background:transparent;display:grid;place-content:center;gap:12px;text-align:center}.video-frame button strong{margin:auto;display:grid;place-items:center;border-radius:50%;border:1px solid #ddd;width:65px;height:65px;font-size:22px}.video-frame button span{font-size:12px}.video-frame iframe{width:100%;height:100%;border:0;display:block}.bili-link{display:inline-block;font-size:11px;color:var(--accent);padding-top:14px}#dialog-stats{display:flex;gap:40px;padding-block:26px;border-bottom:1px solid var(--line);flex-wrap:wrap}#dialog-stats strong{display:block;font-size:27px;font-weight:400}#dialog-stats span{display:block;font-size:10px;color:var(--muted)}.case-copy{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-top:24px}.case-copy h3{font-size:12px;color:var(--accent);font-weight:400;margin:0 0 10px}.case-copy p{font-size:13px;color:var(--muted);margin:0}.source-note{font-size:10px;color:var(--muted);border-top:1px solid var(--line);margin-top:26px;padding-top:17px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 20px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}body.modal-open{overflow:hidden}@media(min-width:1500px){.hero-film{min-height:500px}}@media(max-width:1100px){.wrap{width:calc(100% - 72px)}header{padding-inline:36px}.hero{gap:28px}.hero-film{min-height:395px}.hero h1{font-size:57px}.film-caption strong{font-size:17px}.project-info{display:block}.project-metric{text-align:left;display:flex;align-items:center;gap:10px;margin-top:12px}.project-metric strong{font-size:16px}.project-metric span{margin:0}.about{grid-template-columns:1fr 1fr;gap:40px}.about>div:first-child{grid-column:1/2}.about h2{font-size:30px}.about-copy{grid-column:2;grid-row:1/3}.achievement:nth-of-type(4){grid-column:1}.achievement:nth-of-type(5){grid-column:1}.recognition{grid-column:2;grid-row:3/5;display:block;align-self:end}.recognition p{margin-top:10px}.achievement strong{font-size:39px}.hero-footer span:nth-child(2){display:none}}@media(max-width:700px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 40px)}header{height:78px;padding:0 20px;position:relative}.brand{font-size:20px}.brand span{font-size:8px}.menu{display:block;background:none;font-size:12px}.menu span{margin-left:15px}nav{display:none;position:absolute;top:77px;left:0;right:0;z-index:10;padding:25px;background:var(--panel);border-bottom:1px solid var(--line);gap:22px;align-items:start}nav.open{display:flex;flex-direction:column}.hero{padding-top:35px;grid-template-columns:1fr;gap:25px}.hero-intro{padding-bottom:0}.hero .eyebrow{margin-bottom:24px;font-size:10px}.hero h1{font-size:53px;margin:0 0 26px}.hero-bottom{max-width:none}.hero-bottom p{font-size:12px}.hero-film{min-height:0;aspect-ratio:1.18}.film-top{inset:18px 18px auto;font-size:9px}.film-caption{left:18px;bottom:21px}.film-caption strong{font-size:18px}.hero-play{right:19px;bottom:30px;width:39px;height:39px}.hero-footer{margin-top:0;font-size:9px;padding-bottom:20px}.hero-footer span:last-child{font-size:9px}.works{padding-block:65px}.section-heading{display:block;margin-bottom:25px}.section-heading .eyebrow{font-size:10px}.heading-note{margin-top:18px;font-size:11px}.heading-note br{display:none}.filters{gap:21px;overflow:auto;margin-bottom:26px;white-space:nowrap}.filters button{font-size:11px}.filters sup{font-size:8px}.project-grid{grid-template-columns:1fr;gap:33px}.project-info{display:flex;padding-top:13px;align-items:start}.project-info h3{font-size:17px}.project-kind{font-size:9px}.project-metric{display:block;text-align:right;margin:0;padding-top:0}.project-metric strong{font-size:16px}.project-metric span{font-size:8px;max-width:110px;white-space:normal;margin-top:4px}.data-note{font-size:9px}.about{display:block;padding-block:60px}.about h2{font-size:29px}.about-copy{margin-top:32px}.about-copy p{font-size:12px}.about-copy .lead{font-size:15px}.about-copy .text-link{margin-bottom:35px}.achievement{display:flex;align-items:center;justify-content:space-between;padding:23px 0;gap:15px}.achievement strong{font-size:35px}.achievement strong span{font-size:9px}.achievement p{font-size:10px;margin:0;text-align:right}.recognition{border-top:1px solid #4b5046;padding-top:23px;font-size:10px}.recognition p{margin-top:7px}.experience{padding-block:63px}.experience .section-heading{margin-bottom:28px}.experience .section-heading .text-link{margin-top:20px}.timeline article{grid-template-columns:1fr;gap:10px;padding:24px 0}.period{font-size:10px;display:flex;gap:15px;align-items:center}.current{font-size:8px}.timeline h3{font-size:19px}.timeline article>div>p:last-child{font-size:12px}.contact-section{padding-block:53px}.contact-title h2{font-size:44px}.contact-arrow{font-size:64px;padding:0}.contact-bottom{display:block;margin-top:29px;padding-top:25px}.contact-bottom p{font-size:10px}.email{font-size:21px}.resume-button{display:inline-flex;margin-top:30px;gap:35px;padding:11px 17px;font-size:11px}.contact-actions{font-size:10px}.contact-actions button{font-size:10px}footer{font-size:9px;flex-wrap:wrap;gap:15px}footer span:nth-child(2){display:none}dialog{width:calc(100% - 18px);max-height:95dvh}.dialog-top{padding:14px 17px}.dialog-content{padding:20px 17px}.dialog-heading h2{font-size:23px}.dialog-heading p{margin-bottom:20px}.case-copy{grid-template-columns:1fr;gap:23px}.case-copy p{font-size:12px}#dialog-stats{gap:22px}#dialog-stats strong{font-size:24px}#dialog-stats span{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.hero-film img{inset:0}

/* Portrait, recognition and field notes */
.hero-portrait{margin:0;position:relative;overflow:hidden;background:#293337;min-height:480px}.hero-portrait>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:50% 65%;filter:saturate(.78);transition:transform .8s}.hero-portrait:hover>img{transform:scale(1.025)}.hero-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,21,25,.13) 0%,transparent 45%,rgba(10,15,16,.72) 100%);pointer-events:none}.portrait-top{position:absolute;top:24px;left:25px;right:25px;display:flex;justify-content:space-between;z-index:2;font:9px Arial,sans-serif;letter-spacing:.15em;color:#eee9dd}.hero-portrait figcaption{position:absolute;bottom:30px;left:28px;z-index:2}.hero-portrait figcaption>span{font-size:10px;letter-spacing:.15em;color:#d1d3cb}.hero-portrait figcaption strong{display:block;font-size:25px;font-weight:400;letter-spacing:.04em;margin:4px 0}.hero-portrait figcaption small{font:9px Arial,"Microsoft YaHei",sans-serif;letter-spacing:.13em;color:#bec4bc}.viewfinder{position:absolute;width:95px;height:95px;right:30px;bottom:35px;z-index:2;opacity:.6;background:linear-gradient(#e0d4bf,#e0d4bf) 0 0/18px 1px no-repeat,linear-gradient(#e0d4bf,#e0d4bf) 0 0/1px 18px no-repeat,linear-gradient(#e0d4bf,#e0d4bf) 100% 100%/18px 1px no-repeat,linear-gradient(#e0d4bf,#e0d4bf) 100% 100%/1px 18px no-repeat}.honors{padding-block:100px}.award-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.photo-open{position:relative;width:100%;display:block;padding:0;background:#252722;overflow:hidden}.photo-open img{width:100%;transition:transform .5s;display:block}.photo-open:hover img{transform:scale(1.025)}.photo-expand{position:absolute;right:13px;bottom:13px;width:30px;height:30px;display:grid;place-items:center;background:rgba(15,20,18,.72);color:#eee;border:1px solid #adad9b;border-radius:50%;font-size:14px}.award-card .photo-open{height:310px;padding:15px;background:#252824}.award-card img{height:100%;object-fit:contain}.award-date{font-size:10px;letter-spacing:.05em;color:var(--accent);margin:18px 0 8px}.award-card h3{font-size:18px;font-weight:400;margin:0 0 7px}.award-sub{font-size:11px;color:var(--muted);margin:0;line-height:1.9}.milestone{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center;border-top:1px solid var(--line);padding-top:48px;margin-top:55px}.milestone .photo-open{aspect-ratio:4/3}.milestone img{height:100%;object-fit:cover}.milestone-copy h3{font-size:30px;font-weight:400;margin:0 0 22px}.milestone-copy>p:not(.eyebrow){font-size:13px;color:var(--muted)}.milestone-copy .milestone-note{font-size:11px!important;line-height:2}.location-section{background:#202421;border-block:1px solid #353d33;padding-block:94px}.paris-datestamp{font:22px Georgia,serif;color:var(--accent);letter-spacing:.08em;text-align:right;flex-shrink:0}.paris-datestamp span{display:block;font:10px "Microsoft YaHei",sans-serif;letter-spacing:.08em;color:var(--muted);margin-top:9px}.location-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;margin-bottom:45px}.location-intro p{font-size:13px;color:var(--muted);margin:0;max-width:580px}.paris-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:36px 30px;align-items:start}.paris-gallery figure{margin:0}.paris-main{grid-column:1/8}.paris-portrait{grid-column:8/13}.paris-venue{grid-column:1/7}.paris-team{grid-column:7/13}.paris-main .photo-open{aspect-ratio:4/3}.paris-portrait .photo-open{aspect-ratio:3/4}.paris-venue .photo-open,.paris-team .photo-open{aspect-ratio:4/3}.paris-gallery img{height:100%;object-fit:cover}.paris-gallery figcaption{font-size:11px;color:var(--muted);margin-top:15px}.paris-gallery figcaption span{display:block;color:var(--accent);font-size:9px;letter-spacing:.1em;margin-bottom:6px}#photo-dialog{width:min(1240px,calc(100% - 36px));max-height:94dvh;padding:0;background:#141815}#photo-dialog::backdrop{background:rgba(0,0,0,.9)}.photo-dialog-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:15px 22px;background:#171c18;border-bottom:1px solid var(--line)}.photo-dialog-top p{font-size:12px;color:var(--text);margin:0}.photo-dialog-top button{background:transparent;white-space:nowrap;font-size:12px}.photo-full{display:flex;justify-content:center;padding:18px}.photo-full img{width:auto;max-width:100%;max-height:calc(90dvh - 100px);height:auto;object-fit:contain}#photo-dialog .photo-full img{transform:none}@media(max-width:1100px){.hero-portrait{min-height:425px}.award-card .photo-open{height:245px}.milestone{gap:35px}.paris-gallery{gap:27px 22px}.hero-portrait figcaption strong{font-size:21px}.viewfinder{width:60px;height:60px}.location-intro{gap:35px}}@media(max-width:700px){.hero-portrait{min-height:0;aspect-ratio:4/5}.hero-portrait>img{object-position:50% 65%}.hero-portrait figcaption{left:21px;bottom:24px}.hero-portrait figcaption strong{font-size:24px}.portrait-top{left:20px;right:20px;top:19px;font-size:8px}.viewfinder{right:22px;bottom:30px}.honors{padding-block:62px}.award-grid{grid-template-columns:1fr;gap:30px}.award-card .photo-open{height:300px}.award-card h3{font-size:18px}.award-date{margin-top:13px}.award-sub{font-size:10px}.milestone{grid-template-columns:1fr;gap:28px;margin-top:38px;padding-top:35px}.milestone-copy h3{font-size:27px;margin-bottom:15px}.milestone-copy .eyebrow{margin-bottom:13px}.milestone-copy>p:not(.eyebrow){font-size:12px}.location-section{padding-block:58px}.paris-datestamp{font-size:18px;text-align:left;margin-top:19px}.paris-datestamp span{display:inline-block;font-size:9px;margin:0 0 0 15px}.location-intro{grid-template-columns:1fr;gap:15px;margin-bottom:30px}.location-intro p{font-size:12px}.paris-gallery{display:grid;grid-template-columns:1fr 1fr;gap:27px 15px}.paris-main{grid-column:1/3}.paris-portrait{grid-column:1/3}.paris-portrait .photo-open{aspect-ratio:3/4;max-width:300px;margin:auto}.paris-portrait figcaption{max-width:300px;margin:15px auto 0}.paris-venue{grid-column:1}.paris-team{grid-column:2}.paris-gallery figcaption{font-size:10px}.paris-gallery figcaption span{font-size:8px}.paris-venue .photo-open,.paris-team .photo-open{aspect-ratio:4/3}.photo-dialog-top{padding:13px 15px;gap:12px}.photo-dialog-top p{font-size:10px}.photo-dialog-top button{font-size:11px}.photo-full{padding:8px}#photo-dialog{width:calc(100% - 16px)}}
/* Motion and navigation refinement */
html{scrollbar-gutter:stable}header{position:sticky;top:0;z-index:20;background:rgba(23,25,24,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .3s,border-color .3s}header.scrolled{background:rgba(23,25,24,.98);border-bottom-color:#55594d}.brand{transition:transform .3s;transform-origin:left center}header.scrolled .brand{transform:scale(.94)}nav{gap:28px}nav a:not(.nav-contact):not(.nav-resume){position:relative}nav a:not(.nav-contact):not(.nav-resume):after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a.current-section{color:var(--accent)}nav a.current-section:after,nav a:hover:after{transform:scaleX(1)!important}.nav-resume{font-size:11px;color:var(--accent);white-space:nowrap}.nav-resume span{margin-left:8px}.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}.project-card[hidden]{display:none!important}.project-card{align-self:start}.project-role{font-size:10px;line-height:1.9;color:#b7b9b0;margin:11px 0 0}.project-role>span{font-size:9px;color:#81887d;display:inline-block;margin-right:10px}.project-name{transition:color .25s}.project-image:focus-visible{outline-offset:4px}.project-card.featured{grid-column:1/-1;display:grid;grid-template-columns:1.2fr .8fr;gap:34px;padding:24px;background:#20241f;border:1px solid #454c40;align-items:center}.featured .project-info{display:block;padding:0}.featured .project-kind{font-size:10px;line-height:2.4}.full-process{display:block;font-size:9px;letter-spacing:.13em;color:var(--accent);margin-bottom:13px}.featured .project-info h3{font-size:25px;line-height:1.65;max-width:360px}.featured .project-role{font-size:11px;margin-top:17px;color:#deded2}.featured-description{font-size:12px;color:var(--muted);margin:17px 0 20px;line-height:2}.featured .project-metric{border-top:1px solid #424a3b;padding-top:19px;text-align:left;display:flex;align-items:center;gap:18px}.featured .project-metric strong{font-size:16px}.featured .project-metric span{font-size:10px;margin:0}.project-view{transition:opacity .25s,transform .35s,background .25s}.project-image:hover .project-view{background:rgba(23,25,24,.65)}.project-card .project-image:focus-visible .project-view{opacity:1;transform:none}.project-grid{position:relative}.photo-open:focus-visible img{transform:scale(1.02)}dialog{transform-origin:center}dialog::backdrop{animation:backdrop-appear .2s ease-out}@keyframes backdrop-appear{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.83)}}@media(hover:hover) and (pointer:fine){.project-view{opacity:0;transform:translateY(6px)}.project-image:hover .project-view,.project-card:focus-within .project-view{opacity:1;transform:translateY(0)}}@media(max-width:1100px){nav{gap:20px}.project-card.featured{gap:25px;padding:20px;grid-template-columns:1.1fr .9fr}.featured .project-info h3{font-size:22px}.featured-description{font-size:11px;margin-block:13px}.featured .project-role{font-size:10px}.featured .project-metric{display:block}.featured .project-metric span{margin-top:5px}}@media(max-width:850px){header{height:78px;padding-inline:25px}.menu{display:block;background:none;font-size:12px}.menu span{margin-left:15px}nav{display:none;position:absolute;top:77px;left:0;right:0;z-index:30;padding:25px;background:var(--panel);border-bottom:1px solid var(--line);gap:22px;align-items:start;max-height:calc(100dvh - 78px);overflow:auto}nav.open{display:flex;flex-direction:column}nav a.current-section:after{bottom:-4px}.nav-resume{padding-top:7px}.project-role{font-size:9px}.featured .project-info h3{font-size:21px}}@media(max-width:700px){header{padding-inline:20px}.project-card.featured{display:block;padding:15px;grid-column:auto}.featured .project-info{padding-top:18px}.featured .project-info h3{font-size:22px;max-width:none}.full-process{margin-bottom:6px}.featured .project-role{font-size:10px;margin-top:11px}.featured-description{font-size:11px;margin:13px 0 17px}.featured .project-metric{display:flex;gap:16px;padding-top:14px}.featured .project-metric span{margin:0}.project-info{display:block}.project-metric{margin-top:13px;display:flex;gap:12px;text-align:left}.project-metric span{font-size:9px;max-width:none;white-space:normal;margin:0}.project-info h3{font-size:18px}.project-role{font-size:10px}.project-view{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.hero-portrait:hover>img,.project-image:hover img,.photo-open:hover img{transform:none}}

.project-grid{overflow-anchor:none}@media(max-width:850px){html{scroll-padding-top:100px}}
@media(max-width:700px){.filters{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button.active:after{bottom:-15px}}
/* Uniform work cards; full descriptions open on click. */
.project-info{display:block}.project-metric{display:flex;text-align:left;align-items:center;gap:12px;margin-top:15px}.project-metric strong{font-size:18px}.project-metric span{margin:0;font-size:10px}@media(max-width:700px){.project-metric span{font-size:9px}}

dialog[open]::backdrop{animation:backdrop-appear .43s ease-out}dialog[data-transition="closing"]::backdrop{animation:backdrop-leave .3s ease-in-out forwards}@keyframes backdrop-leave{from{background-color:rgba(0,0,0,.83)}to{background-color:rgba(0,0,0,0)}}

.yaowang-section{padding-block:100px}.yaowang-gallery{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;align-items:start}.yaowang-gallery figure{margin:0}.yaowang-team .photo-open{aspect-ratio:16/9}.yaowang-field .photo-open{aspect-ratio:1}.yaowang-gallery img{height:100%;object-fit:cover}.yaowang-gallery figcaption{font-size:11px;color:var(--muted);margin-top:15px}.yaowang-gallery figcaption span{display:block;color:var(--accent);font-size:9px;letter-spacing:.1em;margin-bottom:6px}.yaowang-recognition{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center;margin-top:48px;padding-top:48px;border-top:1px solid var(--line)}.yaowang-recognition .photo-open{aspect-ratio:4/3}.yaowang-recognition img{height:100%;object-fit:cover}.yaowang-star-copy h3{font-size:29px;font-weight:400;margin:0 0 20px}.yaowang-star-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:2}.yaowang-results{display:flex;gap:40px;margin-top:27px}.yaowang-results strong{display:block;color:var(--accent);font-size:25px;font-weight:400}.yaowang-results span{display:block;color:var(--muted);font-size:10px;margin-top:8px}@media(max-width:700px){.yaowang-section{padding-block:60px}.yaowang-gallery{grid-template-columns:1fr;gap:28px}.yaowang-gallery figcaption{font-size:10px}.yaowang-recognition{grid-template-columns:1fr;gap:28px;margin-top:35px;padding-top:35px}.yaowang-star-copy h3{font-size:25px}.yaowang-star-copy>p:not(.eyebrow){font-size:12px}.yaowang-results{gap:25px}.yaowang-results strong{font-size:23px}.yaowang-results span{font-size:9px}}

/* Compact work archive: two field photos left, recognition right. */
.yaowang-section{padding-block:52px}.yaowang-section .section-heading{margin-bottom:19px}.yaowang-section h2{font-size:clamp(25px,2.5vw,35px)}.yaowang-section .paris-datestamp{font-size:19px}.yaowang-summary{font-size:12px;color:var(--muted);max-width:900px;margin:0 0 27px;line-height:1.9}.yaowang-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}.yaowang-gallery{grid-template-columns:1fr;gap:18px}.yaowang-gallery .photo-open{height:175px;aspect-ratio:auto}.yaowang-field img{object-position:50% 77%}.yaowang-gallery figcaption{font-size:10px;margin-top:7px;line-height:1.7}.yaowang-gallery figcaption span{display:inline;font-size:8px;margin:0 10px 0 0}.yaowang-recognition{display:block;margin:0;padding:0;border:0}.yaowang-recognition .photo-open{height:235px;aspect-ratio:auto;background:#252c2d}.yaowang-recognition img{object-fit:cover;object-position:50% 46%}.yaowang-star-copy{padding-top:20px}.yaowang-star-copy .eyebrow{margin-bottom:8px;font-size:9px}.yaowang-star-copy h3{font-size:24px;margin-bottom:10px}.yaowang-star-copy>p:not(.eyebrow){font-size:12px;margin:0;line-height:1.9}.yaowang-results{margin-top:17px;gap:32px}.yaowang-results strong{font-size:22px}.yaowang-results span{font-size:9px;margin-top:3px}@media(max-width:700px){.yaowang-section{padding-block:42px}.yaowang-section .paris-datestamp{font-size:16px}.yaowang-summary{font-size:11px;margin-bottom:22px}.yaowang-layout{grid-template-columns:1fr;gap:28px}.yaowang-gallery{grid-template-columns:1fr 1fr;gap:12px}.yaowang-gallery .photo-open{height:135px}.yaowang-gallery figcaption{font-size:9px;line-height:1.8}.yaowang-gallery figcaption span{display:block;margin:0 0 3px}.yaowang-recognition .photo-open{height:auto;aspect-ratio:16/9}.yaowang-star-copy{padding-top:16px}.yaowang-star-copy h3{font-size:22px}.yaowang-star-copy>p:not(.eyebrow){font-size:11px}.yaowang-results strong{font-size:20px}}

@media(min-width:701px){.yaowang-section{padding-block:32px}.yaowang-gallery .photo-open{height:145px}.yaowang-recognition .photo-open{height:205px}.yaowang-star-copy{padding-top:15px}.yaowang-results{margin-top:12px}}

.hero-positioning{font-size:clamp(13px,1.15vw,17px);line-height:1.9;color:var(--accent);margin:24px 0 0}.yaowang-star-copy{padding-top:20px}@media(min-width:701px){.yaowang-gallery .photo-open{height:175px}.yaowang-field img{object-position:50% 80%}.yaowang-recognition .photo-open{height:245px}.yaowang-gallery figcaption{font-size:9px;line-height:1.5;margin-top:6px}.yaowang-gallery{gap:12px}.yaowang-section{padding-block:24px}.yaowang-section .section-heading{margin-bottom:12px}.yaowang-summary{margin-bottom:18px}}@media(max-width:700px){.hero-positioning{font-size:12px;margin-top:20px}}

/* More compact Paris gallery, retaining the portrait and on-location hierarchy. */
#on-location{padding-block:58px}#on-location .section-heading{margin-bottom:24px}#on-location .location-intro{margin-bottom:28px;gap:45px}#on-location .paris-gallery{max-width:980px;margin-inline:auto;gap:25px 24px}#on-location .paris-main .photo-open{aspect-ratio:4/3}#on-location .paris-portrait .photo-open{aspect-ratio:3/4;max-height:400px;max-width:300px;margin-inline:auto}#on-location .paris-portrait figcaption{max-width:300px;margin-inline:auto}#on-location .paris-venue .photo-open,#on-location .paris-team .photo-open{aspect-ratio:16/10}#on-location .paris-gallery figcaption{margin-top:10px;font-size:10px}#on-location .paris-gallery figcaption span{margin-bottom:4px}@media(max-width:700px){#on-location{padding-block:40px}#on-location .section-heading{margin-bottom:20px}#on-location .location-intro{gap:12px;margin-bottom:22px}#on-location .paris-gallery{gap:22px 12px}#on-location .paris-main .photo-open{aspect-ratio:16/10}#on-location .paris-portrait .photo-open{max-width:240px;max-height:320px}#on-location .paris-portrait figcaption{max-width:240px}#on-location .paris-gallery figcaption{font-size:9px}}
