:root{--paper:#f5f4f0;--ink:#17191b;--muted:#666865;--line:#d1d1c9;--black:#101112;--space:clamp(24px,5.2vw,90px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk','Noto Sans SC',Arial,sans-serif;font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #91723c;outline-offset:6px}::selection{background:#ddd6c1;color:#111}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:500;line-height:1.1;letter-spacing:-.045em}p{margin-bottom:1.1em}h2{font-size:clamp(40px,4.9vw,78px)}h3{font-size:26px}h4{font-size:20px}small{font-size:13px}img{display:block;width:100%;height:auto}button{border:0}a:hover{text-decoration:none}.skip{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:100}.skip:focus{top:15px}.site-header{position:absolute;top:0;left:0;width:100%;height:92px;padding:0 var(--space);display:flex;align-items:center;justify-content:space-between;gap:30px;z-index:20;color:#f4f3ef;border-bottom:1px solid #ffffff24}.brand{font-size:17px;font-weight:600;letter-spacing:-.04em;white-space:nowrap}.brand span{margin-left:14px;font-size:12px;font-weight:400;color:#aaa}.site-header nav{display:flex;gap:25px;font-size:12px}.site-header nav a{position:relative}.site-header nav a:after{content:'';height:1px;background:currentColor;position:absolute;bottom:-5px;left:0;width:0;transition:width .25s}.site-header nav a:hover:after{width:100%}.header-tools{display:flex;gap:24px;align-items:center}.language{font-size:12px;border-left:1px solid #777;padding-left:22px}.menu-toggle{display:none;background:none;padding:8px}.menu-toggle span{width:23px;height:1px;background:currentColor;display:block;margin:6px 0}.site-header.scrolled{position:fixed;height:72px;background:#f5f4f0f5;color:var(--ink);border-color:var(--line);backdrop-filter:blur(12px)}.inner .site-header{color:var(--ink);border-color:var(--line)}.hero{position:relative;min-height:900px;height:100svh;max-height:1300px;background:var(--black);color:#f6f5f1;padding:140px var(--space) 38px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.hero-kicker,.hero-bottom{position:relative;display:flex;justify-content:space-between;z-index:2}.hero-kicker{font-size:10px;letter-spacing:.17em;color:#afafa9}.hero h1{position:relative;z-index:2;font-size:clamp(110px,19.1vw,310px);line-height:.79;letter-spacing:-.08em;font-weight:500;margin:36px 0 40px}.hero h1>span{display:block;animation:letter-in 1.1s both}.hero h1>span:last-child{margin-left:16vw;animation-delay:.13s}.name-cn{font-size:16px;letter-spacing:.1em;vertical-align:middle;margin-left:40px;font-weight:400}.hero-lines{position:absolute;width:73%;height:150%;right:-12%;top:-15%;fill:none;stroke:#a3a5a0;stroke-width:.6;opacity:.34;animation:lines-in 3s ease both;pointer-events:none}.hero-bottom{align-items:flex-end;font-size:13px}.hero-bottom p{line-height:1.6;margin:0}.hero-bottom a{font-size:10px;letter-spacing:.15em;display:flex;align-items:center;gap:28px}.hero-bottom a span{font-size:27px}.hero-year{font-size:10px;letter-spacing:.12em;color:#9b9d97}@keyframes letter-in{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}@keyframes lines-in{from{opacity:0;transform:translate(60px,-30px)}to{opacity:.34;transform:translate(0,0)}}.section{padding:105px var(--space);max-width:1800px;margin:auto;scroll-margin-top:50px}.section-label{display:flex;gap:25px;border-top:1px solid var(--ink);padding-top:16px;font-size:11px;letter-spacing:.12em;margin-bottom:65px}.section-label span:first-child{color:var(--muted);min-width:26px}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:55px;margin-bottom:65px}.section-intro>p{max-width:360px;color:var(--muted);font-size:16px;margin:0}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8vw}.about-copy{max-width:560px}.lead{font-size:clamp(21px,2.2vw,30px);line-height:1.5;letter-spacing:-.02em}.about-copy>p:not(.lead){color:var(--muted);font-size:16px}.text-link{font-size:13px;display:inline-block;padding:8px 0;border-bottom:1px solid currentColor}.education{display:grid;grid-template-columns:1fr 1fr;gap:7vw;margin-top:90px;padding-top:30px;border-top:1px solid var(--line)}.education h3{font-size:23px;margin:18px 0 12px}.education p{font-size:15px;margin:0 0 4px}.education small{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.experience-row{border-top:1px solid var(--line)}.experience-row:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.experience-row summary{display:grid;grid-template-columns:22% 1fr 30px;gap:30px;padding:35px 0;align-items:start}.experience-row summary h3{font-size:32px}.experience-row summary p{font-size:13px;color:var(--muted);margin:8px 0}.exp-date{font-size:12px;color:var(--muted);padding-top:8px}.exp-strap{font-size:15px}.expand{font-size:27px;font-weight:300;line-height:1}.experience-row[open] .expand,.archive-row[open] .expand{transform:rotate(45deg)}.exp-detail{margin-left:calc(22% + 30px);padding-bottom:35px;max-width:800px}.exp-detail article{margin-top:25px}.exp-detail h4{letter-spacing:-.02em}.exp-detail p{font-size:15px;color:var(--muted);margin:12px 0 0}.capabilities{background:#eaece6;max-width:none}.capabilities h2{margin-bottom:65px}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}.capability{border-top:1px solid #999e92;padding-top:18px;display:flex;flex-direction:column}.capability h3{font-size:25px;margin:32px 0 20px;min-height:55px}.capability p{font-size:15px;color:#5b6258}.capability small{color:#676e63;font-size:11px;display:block;margin-top:auto}.capability a{font-size:12px;border-top:1px solid #bfc4b8;margin-top:30px;padding-top:16px}.toolkit{margin-top:60px;font-size:13px;border-top:1px solid #bfc4b8;padding-top:18px}.toolkit summary{display:flex;justify-content:space-between}.toolkit>div{padding-top:25px;max-width:850px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:68px 34px}.project-card{display:block}.project-picture{position:relative;background:#e7e7e1;aspect-ratio:1.36;overflow:hidden}.project-picture img{height:100%;object-fit:cover;transition:transform .7s}.project-card:hover img{transform:scale(1.035)}.card-arrow{position:absolute;bottom:18px;right:18px;background:#f5f4f0;width:42px;height:42px;display:grid;place-items:center;font-size:24px}.project-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:19px 0 12px;gap:20px}.project-card h3{font-size:32px}.project-card p{font-size:14px;color:var(--muted);margin-top:10px}.beyond{padding-top:30px}.beyond-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.beyond-grid>.image-view{align-self:start}.beyond-notes article{padding-bottom:27px;margin-bottom:25px;border-bottom:1px solid var(--line)}.beyond-notes h3{font-size:27px;margin:15px 0}.beyond-notes p{font-size:15px;color:var(--muted);line-height:1.9;margin:0}.image-view{position:relative;padding:0;background:#e9e9e2;width:100%;display:block;overflow:hidden}.image-view img{width:100%;height:auto}.zoom{position:absolute;bottom:15px;right:15px;padding:3px 12px;background:#ffffffe6;font-size:22px}.caption{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.6}.contact{background:#e6e4dc;max-width:none}.contact h2{font-size:clamp(54px,7.8vw,120px);margin-bottom:70px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.contact-grid>div>p{max-width:530px;font-size:17px}.locations{font-size:12px!important;color:var(--muted)}.email{display:block;font-size:clamp(17px,2.1vw,30px);letter-spacing:-.03em;margin:30px 0 15px;overflow-wrap:anywhere}.downloads>a{display:flex;justify-content:space-between;font-size:18px;border-bottom:1px solid #b9b8b0;padding:20px 0}.downloads>a span{font-size:11px;padding-top:7px}.downloads>.eyebrow{display:block;margin-bottom:22px}footer{background:var(--black);color:#deded6;padding:40px var(--space);display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:10px}footer>div{display:flex;gap:25px}.index-head,.case-header{padding-top:170px}.index-head>h1{font-size:clamp(55px,7.5vw,110px);margin:40px 0}.index-head>.lead{max-width:750px;font-size:23px;color:var(--muted)}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:60px}.filters button{padding:10px 22px;border:1px solid var(--line);background:transparent;font-size:12px;border-radius:25px}.filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.filter-count{font-size:11px;color:var(--muted);margin:20px 0 30px}.archive-title{font-size:40px;margin:100px 0 35px}.archive-row{border-top:1px solid var(--line)}.archive-row summary{display:grid;grid-template-columns:140px 1fr 30px;gap:30px;padding:25px 0}.archive-row summary>span:first-child{font-size:12px;color:var(--muted)}.archive-row h3{font-size:24px;margin-bottom:9px}.archive-row small{color:var(--muted)}.archive-row>p{max-width:800px;margin:0 0 30px 170px;font-size:15px;color:var(--muted)}[hidden]{display:none!important}.case-heading{margin:60px 0}.case-heading h1{font-size:clamp(55px,7vw,110px);max-width:1150px}.case-heading>.lead{font-size:23px;margin-top:30px;color:var(--muted)}.case-meta{display:flex;gap:40px;font-size:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.case-summary{max-width:750px;font-size:24px;line-height:1.6;margin:50px 0 0}.case-header{padding-bottom:50px}.case-body{padding-top:0}.case-section{margin-bottom:95px}.case-text{display:grid;grid-template-columns:30% 1fr;gap:30px;padding:35px 0}.case-text p{font-size:18px;max-width:750px}.case-body .image-view{background:#fff}.next-project{border-top:1px solid var(--line)}.next-project>a{display:block;font-size:clamp(32px,5vw,70px);letter-spacing:-.04em;margin-top:25px;line-height:1.2}.lightbox{border:0;padding:60px 25px 25px;background:#f5f4f0;max-width:96vw;max-height:94vh;width:max-content;overflow:auto}.lightbox::backdrop{background:#000e;backdrop-filter:blur(4px)}.lightbox img{max-width:90vw;max-height:75vh;width:auto;height:auto;margin:auto;object-fit:contain}.lightbox p{font-size:12px;margin:20px 0 0;max-width:800px}.lightbox-close{position:absolute;right:15px;top:6px;background:none;font-size:34px}.modal-open{overflow:hidden}
@media(min-width:1600px){.hero h1{font-size:285px}}@media(max-width:1100px){.site-header nav{gap:14px}.brand span{display:none}.hero{min-height:750px}.capability-grid{grid-template-columns:1fr 1fr;gap:45px}.hero h1{font-size:20vw}.hero h1>span:last-child{margin-left:11vw}.name-cn{font-size:14px;margin-left:24px}.about-grid{gap:50px}.contact-grid{gap:70px}}@media(max-width:800px){.site-header{height:76px}.site-header nav{display:none}.menu-toggle{display:block}.site-header.menu-open{background:var(--paper);color:var(--ink);position:fixed}.site-header.menu-open nav{display:flex;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:25px var(--space) 40px;flex-direction:column;font-size:24px;gap:18px;border-bottom:1px solid var(--line)}.hero{min-height:680px;max-height:1000px;padding-top:115px}.hero h1{font-size:25vw;letter-spacing:-.075em;line-height:.94;margin:35px 0}.hero h1>span:last-child{margin-left:0}.name-cn{font-size:12px;display:block;margin:25px 0 0 8px}.hero-lines{width:130%;right:-35%;opacity:.25}.hero-kicker{font-size:8px;gap:20px}.hero-bottom{font-size:12px;gap:20px}.hero-year{display:none}.hero-bottom a{font-size:8px;gap:14px}.section{padding:70px var(--space)}.section-label{margin-bottom:42px}.section-intro{align-items:flex-start;flex-direction:column;gap:26px;margin-bottom:40px}.about-grid,.beyond-grid,.contact-grid{grid-template-columns:1fr;gap:38px}.about-copy{margin-top:0}.education{margin-top:50px;gap:25px}.education h3{font-size:20px}.experience-row summary{grid-template-columns:1fr 25px;gap:15px;padding:25px 0}.exp-date{grid-column:1/-1}.experience-row summary h3{font-size:27px}.exp-detail{margin-left:0}.capability-grid{gap:35px 22px}.capability h3{font-size:22px}.project-grid{gap:40px 22px}.project-card h3{font-size:25px}.project-meta{font-size:9px}.project-meta span:last-child{max-width:65%;text-align:right}.beyond{padding-top:25px}.contact h2{margin-bottom:40px}.contact-grid{gap:45px}footer{align-items:flex-start;flex-direction:column;gap:22px}.index-head,.case-header{padding-top:130px}.case-meta{flex-wrap:wrap;gap:15px 30px}.case-text{grid-template-columns:1fr;gap:16px}.case-text p{font-size:16px}.case-summary{font-size:21px}.case-section{margin-bottom:50px}.archive-row summary{grid-template-columns:1fr 25px;gap:12px}.archive-row summary>span:first-child{grid-column:1/-1}.archive-row>p{margin-left:0}.archive-row h3{font-size:22px}.archive-title{font-size:32px}.hero-kicker span:last-child{text-align:right}}@media(max-width:520px){.education,.project-grid,.capability-grid{grid-template-columns:1fr}.education article+article{border-top:1px solid var(--line);padding-top:24px}.capability h3{min-height:0;margin:22px 0 15px}.capability small{margin-top:5px}.project-grid{gap:45px}.project-picture{aspect-ratio:1.3}.hero{min-height:650px}.hero h1{font-size:27vw}.hero-bottom p{max-width:180px}.lead{font-size:21px}.brand{font-size:15px}.capabilities h2{margin-bottom:40px}.case-heading h1{font-size:48px}.hero-kicker{letter-spacing:.08em}.section-intro>p{font-size:15px}.archive-title{margin-top:65px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-lines{opacity:.34}}html[lang=zh-CN] h1,html[lang=zh-CN] h2,html[lang=zh-CN] h3{letter-spacing:-.035em;line-height:1.25}html[lang=zh-CN] .hero h1{font-family:'Space Grotesk',Arial,sans-serif;line-height:.79;letter-spacing:-.08em}html[lang=zh-CN] .hero h1>span:last-child{padding-top:.12em}


/* Stationary cover, with an opaque content sheet passing above it.
   Native scrolling keeps wheel, touch, keyboard and anchor navigation intact. */
.home .hero {
    position: sticky;
    top: 0;
    z-index: 0;
    height: 100svh;
    min-height: 0;
    max-height: none;
}
.home .hero h1 { font-size: min(19.1vw, 30svh); }
.home .site-header { position: fixed; }
.home main {
    position: relative;
    z-index: 2;
    background: var(--paper);
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -18px 60px #00000024;
}
.home footer { position: relative; z-index: 2; }
@media (max-width: 1100px) {
    .home .hero h1 { font-size: min(20vw, 30svh); }
}
@media (max-width: 800px) {
    .home .hero h1 { font-size: min(25vw, 29svh); }
    .home main { border-radius: 14px 14px 0 0; }
}
@media (max-width: 520px) {
    .home .hero h1 { font-size: min(27vw, 29svh); }
}
@media (max-height: 560px) and (min-width: 801px) {
    .home .hero { padding-top: 115px; padding-bottom: 24px; }
    .home .hero h1 { font-size: min(19.1vw, 24svh); margin: 20px 0; }
}
@media (prefers-reduced-motion: reduce) {
    .home .hero { position: relative; }
    .home main { border-radius: 0; box-shadow: none; }
}
.home #about{scroll-margin-top:-96px}

/* Keep complete drawings visible, including their keys and scale bars. */
.project-picture {display:grid;grid-template-rows:minmax(0,1fr) 32px;padding:14px;background:#eeede8}
.project-picture img {width:100%;height:100%;object-fit:contain}
.project-card:hover img {transform:none}
.project-picture .card-arrow {position:static;justify-self:end;width:32px;height:32px;background:transparent}
.plates {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 28px;align-items:start}
.plate {margin:0;min-width:0}
.plate.wide,.plate:only-child {grid-column:1/-1}
.plate .image-view {display:grid;justify-items:center;padding:12px 12px 4px;background:#fff}
.plate .image-view img {max-height:76svh;object-fit:contain}
.image-view .zoom {position:static;display:block;margin-left:auto;background:transparent;font-size:17px}
.plate figcaption {font-size:.94rem;line-height:1.45;margin:10px 0 0}
.drawing-note {margin:14px 0 0;border-left:2px solid #b4b5a4;padding:0 0 0 14px;color:#51544b;font-size:.91rem;line-height:1.65;max-width:68ch}
.drawing-note b {display:block;font-size:.72rem;letter-spacing:.05em}
.original-link {display:inline-block;margin-top:12px;text-decoration:underline;font-size:.86rem}
@media(max-width:740px){.plates{grid-template-columns:1fr;gap:30px}.plate .image-view{padding:6px 6px 0}}
