:root{--ink:#111;--paper:#f4f4f2;--line:#1113;--muted:#676764;--pad:clamp(24px, 5vw, 84px);--serif:Georgia, "Times New Roman", serif;--sans:Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{color:var(--ink);background:var(--paper);font-family:var(--sans);margin:0;font-size:16px;line-height:1.6;overflow-x:clip}@media (max-width:999px){html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:0}body{background:#fff}.desktop-portfolio-layout{display:none}}button,a{color:inherit}button{font:inherit}figure,p,h1,h2,h3,dl,dd{margin:0}img{display:block}.page-pad{padding-left:var(--pad);padding-right:var(--pad)}[data-reveal]{opacity:0;transition:opacity .65s,translate .65s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);translate:0 20px}[data-reveal].is-visible{opacity:1;translate:0}.section-rail{z-index:30;mix-blend-mode:difference;color:#fff;pointer-events:none;align-items:stretch;gap:10px;transition:opacity .35s;display:flex;position:fixed;top:50%;right:20px;transform:translateY(-50%)}.section-rail.is-intro{opacity:0}.rail-track{background:#ffffff4d;width:1px;height:116px;position:relative}.rail-track span{background:#fff;width:1px;position:absolute;top:0;left:0}.rail-copy{writing-mode:vertical-rl;letter-spacing:.16em;justify-content:space-between;font-size:10px;display:flex}.section-kicker{border-top:1px solid var(--line);letter-spacing:.16em;text-transform:uppercase;padding-top:12px;font-size:11px}.section-kicker.light{border-color:#ffffff40}.profile-intro{grid-template-rows:auto 1fr auto;min-height:100vh;padding-top:9vh;padding-bottom:11vh;display:grid}.profile-intro h2{letter-spacing:-.05em;align-self:center;max-width:1100px;font-family:Songti SC,SimSun,serif;font-size:clamp(44px,7vw,108px);font-weight:400;line-height:1.12}.profile-grid{grid-template-columns:1fr 1.7fr;align-items:end;gap:10vw;display:grid}.profile-grid>p{max-width:440px;font-size:18px}.profile-grid dl>div{border-top:1px solid var(--line);grid-template-columns:120px 1fr;gap:20px;padding:14px 0;display:grid}.profile-grid dt{color:var(--muted);font-size:13px}.project{--accent:#111;background:var(--paper)}.project-hero{min-height:100vh;padding-top:28px;padding-bottom:var(--pad);grid-template-rows:auto 1fr;grid-template-columns:140px 1fr;gap:4vh 2vw;display:grid;overflow:hidden}.project-number{letter-spacing:.16em;border-top:1px solid;padding-top:10px;font-size:11px}.project-heading{border-top:1px solid;padding-top:10px}.project-heading>p:first-child{text-align:right;color:var(--muted);margin-bottom:7vh;font-size:12px}.project-heading h2{letter-spacing:-.065em;max-width:1200px;font-family:Songti SC,SimSun,serif;font-size:clamp(56px,8.5vw,130px);font-weight:400;line-height:.95}.project-heading h3{font-family:var(--serif);color:var(--accent);margin-top:18px;font-size:clamp(24px,3vw,48px);font-style:italic;font-weight:400}.project-subtitle{margin-top:4vh;font-size:20px}.project-cover{background:#ddd;grid-column:1/-1;height:min(64vw,780px);margin-top:2vh;position:relative;overflow:hidden}.project-cover img{object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.project-cover:hover img{transform:scale(1.025)}.project-mint .project-cover img{object-position:center}.project-overview{grid-template-columns:1fr 2fr;gap:8vw;padding-top:13vh;padding-bottom:13vh;display:grid}.project-overview .section-kicker{grid-column:1/-1}.overview-lead{grid-column:1/-1;max-width:1250px;font-family:Songti SC,SimSun,serif;font-size:clamp(32px,4.2vw,68px);line-height:1.22}.project-overview dl{grid-column:2;grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.project-overview dl div{border-top:2px solid var(--accent);padding-top:12px}.project-overview dt{color:var(--muted);letter-spacing:.12em;font-size:11px}.project-overview dd{margin-top:8px}.project-section{padding-top:10vh;padding-bottom:12vh}.project-section-copy{grid-template-columns:1fr 1.4fr;gap:6vw;margin-bottom:7vh;display:grid}.project-section-copy .section-kicker{grid-column:1/-1}.project-section-copy h3{letter-spacing:-.04em;font-family:Songti SC,SimSun,serif;font-size:clamp(38px,5.2vw,78px);font-weight:400;line-height:1.12}.project-section-copy>p{max-width:600px;padding-top:8px;font-size:18px}.standard-gallery{gap:24px;display:grid}.standard-gallery figure,.sticky-gallery figure{aspect-ratio:16/9;background:#ddd;width:100%;overflow:hidden}.standard-gallery figure{position:relative}.standard-gallery img,.sticky-gallery img{object-fit:contain;background:#eceeef}.horizontal-strip{scroll-snap-type:x mandatory;scrollbar-color:var(--accent) transparent;gap:24px;padding-bottom:18px;display:flex;overflow-x:auto}.horizontal-strip figure{aspect-ratio:16/9;scroll-snap-align:center;background:#e6e7e8;flex:0 0 82vw;position:relative}.horizontal-strip img{object-fit:contain}.sticky-gallery{gap:12vh;display:grid}.sticky-gallery figure{position:sticky;top:8vh;box-shadow:0 24px 80px #0000001f}.sticky-image-frame{width:100%;height:100%;position:relative}.state-demo{grid-template-columns:1fr 2.2fr;align-items:stretch;gap:3vw;display:grid}.state-list{border-top:1px solid;flex-direction:column;display:flex}.state-list button{appearance:none;border:0;border-bottom:1px solid var(--line);cursor:crosshair;text-align:left;background:0 0;gap:24px;padding:18px 0;display:flex}.state-list button:hover,.state-list button:focus-visible{color:var(--accent);padding-left:12px}.state-list button span{font-size:11px}.state-image{background:#eceeef;min-height:540px;position:relative;overflow:hidden}.state-image img{object-fit:cover;transition:object-position .55s}.project-credit{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr 2fr;gap:30px;padding-top:22px;padding-bottom:60px;font-size:12px;display:grid}.project-credit span{letter-spacing:.15em}.commercial{background:#e7e7e3;padding-top:14vh;padding-bottom:14vh}.section-heading{grid-template-columns:1.6fr 1fr;align-items:end;gap:10vw;margin:9vh 0;display:grid}.section-heading h2{font-family:var(--serif);letter-spacing:-.07em;font-size:clamp(64px,10vw,150px);font-weight:400;line-height:.85}.section-heading p{max-width:460px}.editorial-grid{grid-template-columns:1.3fr .7fr;align-items:start;gap:8vw 3vw;display:grid}.commercial-item .image-wrap{aspect-ratio:16/9;background:#fff;position:relative;overflow:hidden}.commercial-item img{object-fit:cover;transition:transform .7s}.commercial-item:hover img{transform:scale(1.03)}.commercial-item figcaption{border-top:1px solid;justify-content:space-between;gap:20px;margin-top:14px;padding-top:8px;display:flex}.commercial-item figcaption span{color:var(--muted);font-size:11px}.commercial-item h3{font-size:17px;font-weight:500}.item-2{margin-top:18vh}.item-3{grid-column:1/-1;width:64%;margin-left:18%}.archive{color:#fff;background:#101010;min-height:100vh;padding-top:8vh;padding-bottom:10vh}.archive-stage{grid-template-columns:1.25fr 1fr;gap:5vw;min-height:72vh;margin-top:10vh;display:grid}.archive-list{border-top:1px solid #ffffff4d}.archive-list button{appearance:none;color:#fff;cursor:crosshair;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff40;grid-template-columns:80px 1fr auto;align-items:center;gap:18px;width:100%;padding:20px 0;transition:all .3s;display:grid}.archive-list button:hover,.archive-list button:focus-visible{color:#111;background:#fff;padding-left:12px}.archive-list span,.archive-list em{opacity:.65;font-size:11px;font-style:normal}.archive-list strong{font-family:Songti SC,SimSun,serif;font-size:clamp(24px,3vw,44px);font-weight:400}.archive-preview{background:#333;height:64vh;position:sticky;top:12vh;overflow:hidden}.archive-preview img{object-fit:cover}.about{padding-top:14vh;padding-bottom:10vh}.about-title{align-items:baseline;gap:3vw;margin:10vh 0 6vh;display:flex}.about-title h2{letter-spacing:-.1em;font-family:Songti SC,SimSun,serif;font-size:clamp(90px,15vw,220px);font-weight:400;line-height:.9}.about-title span{font-family:var(--serif);font-size:clamp(30px,4vw,68px);font-style:italic}.about-intro{max-width:720px;margin-left:34%;font-size:clamp(22px,2.3vw,36px);line-height:1.5}.timeline-block{margin-top:12vh}.timeline-block h3{font-family:var(--serif);margin-bottom:30px;font-size:52px;font-weight:400}.timeline-row{border-top:1px solid var(--line);grid-template-columns:1fr 1.4fr 1.2fr;gap:28px;padding:20px 0;display:grid}.timeline-row time{font-family:var(--serif);font-style:italic}.timeline-row span{color:var(--muted)}.capabilities{padding-top:10vh;padding-bottom:14vh}.capabilities>h2,.awards>h2{margin:10vh 0;font-family:Songti SC,SimSun,serif;font-size:clamp(64px,10vw,150px);font-weight:400;line-height:1}.capability-row{border-top:1px solid;grid-template-columns:60px 1.2fr 1fr .8fr;align-items:baseline;gap:26px;padding:20px 0 40px;display:grid}.capability-row>span{font-size:11px}.capability-row h3{font-family:var(--serif);font-size:clamp(28px,3vw,44px);font-weight:400}.capability-row small{color:var(--muted)}.awards{background:#fff;padding-top:10vh;padding-bottom:14vh}.awards>h2{font-family:var(--serif);letter-spacing:-.05em}.award-list{border-top:1px solid;margin:0;padding:0;list-style:none}.award-list li{border-bottom:1px solid var(--line);grid-template-columns:100px 1fr;padding:18px 0;display:grid}.award-list li span{font-family:var(--serif);font-style:italic}.award-list p{font-size:18px}.text-button{cursor:pointer;background:0 0;border:0;border-bottom:1px solid;margin-top:34px;padding:12px 0}.contact{color:#fff;background:#111;flex-direction:column;min-height:100svh;padding-top:9vh;padding-bottom:28px;display:flex}.contact h2{font-family:var(--serif);letter-spacing:-.075em;margin-top:auto;font-size:clamp(82px,14vw,220px);font-weight:400;line-height:.75}.contact h2 i{margin-left:13%;font-weight:400}.thanks-cn{margin:7vh 0;font-family:Songti SC,SimSun,serif;font-size:clamp(28px,4vw,56px)}.contact-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.contact-grid a,.contact-grid p{font-family:var(--serif);border-top:1px solid #ffffff59;padding-top:12px;font-size:22px;text-decoration:none}.contact-grid span{font-family:var(--sans);letter-spacing:.16em;opacity:.55;margin-bottom:4px;font-size:10px;display:block}.legal{color:#fff9;border-top:1px solid #ffffff40;grid-template-columns:1fr 2fr auto;align-items:end;gap:50px;margin-top:12vh;padding-top:16px;font-size:10px;display:grid}.legal p:nth-child(2){max-width:640px}@media (max-width:900px){.section-rail{display:none}.profile-grid,.project-section-copy,.section-heading,.archive-stage{grid-template-columns:1fr}.project-hero{grid-template-columns:76px 1fr}.project-overview{grid-template-columns:1fr}.project-overview dl,.project-section-copy h3,.project-section-copy>p{grid-column:1}.state-demo{grid-template-columns:1fr}.state-image{order:-1;min-height:360px}.editorial-grid{grid-template-columns:1fr}.item-2,.item-3{grid-column:auto;width:auto;margin:0}.archive-preview{grid-row:1;height:54vw;position:relative;top:0}.about-intro{margin-left:0}.capability-row{grid-template-columns:36px 1fr}.capability-row p,.capability-row small{grid-column:2}.contact-grid{grid-template-columns:1fr}.legal{grid-template-columns:1fr;gap:16px}}@media (max-width:600px){:root{--pad:20px}body{font-size:15px}.profile-intro{gap:10vh;min-height:auto}.profile-grid dl>div{grid-template-columns:86px 1fr}.project-hero{grid-template-columns:1fr;min-height:85svh}.project-number{grid-column:1}.project-heading>p:first-child{text-align:left;margin-bottom:4vh}.project-cover{height:62vw}.project-overview dl{grid-template-columns:1fr}.project-section-copy>p{font-size:16px}.horizontal-strip{margin-right:calc(var(--pad) * -1)}.horizontal-strip figure{flex-basis:88vw}.sticky-gallery{gap:8vh}.sticky-gallery figure{top:6vh}.archive-list button{grid-template-columns:54px 1fr}.archive-list em{grid-column:2}.about-title{display:block}.timeline-row{grid-template-columns:1fr;gap:4px}.capability-row h3{font-size:28px}.award-list li{grid-template-columns:46px 1fr}.contact h2 i{margin-left:0}}@media (min-width:1000px){body{background:#fff}.portfolio-viewport{--project-content-lift:48px;zoom:var(--desktop-scale,1);overflow-anchor:none;background:#fff;width:1440px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}[data-reveal]{opacity:1;translate:none}}
