@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500&family=Noto+Serif+SC:wght@400;500&display=swap');
:root{--navy:#1c2543;--navy2:#253050;--cream:#f0eee7;--paper:#e7e4db;--line:#69718a;--accent:#a9b7cd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);color:var(--cream);font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.55}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #d8e7ff;outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}.site-header{height:105px;max-width:1600px;margin:auto;padding:0 4.2vw;display:flex;align-items:center;border-bottom:1px solid rgba(240,238,231,.25);gap:3vw}.wordmark{font:600 30px/1 Arial,sans-serif;letter-spacing:-.095em;white-space:nowrap}.wordmark-dot{color:#91a5c6}.site-header nav{display:flex;gap:2.2vw;margin-left:auto}.site-header nav a,.language,.eyebrow,.section-index,.text-link,.footer-label,.footer-mark,.credit{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.13em;text-transform:uppercase}.site-header nav a{opacity:.63;transition:opacity .2s}.site-header nav a:hover,.site-header nav a[aria-current]{opacity:1}.site-header nav a[aria-current]{border-bottom:1px solid var(--cream);padding-bottom:5px}.language{display:flex;gap:9px;align-items:center;border-left:1px solid var(--line);padding-left:2.2vw;white-space:nowrap}.language a{opacity:.53}.language a.active{opacity:1}.hero{max-width:1600px;margin:auto;min-height:690px;display:grid;grid-template-columns:58% 42%;padding:3.8vw 4.2vw 5.3vw;gap:2vw}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:3rem 4vw 4rem 0}.eyebrow{color:#b0bcd0}.hero h1{font-size:clamp(3.3rem,5.55vw,6.2rem);line-height:1.04;letter-spacing:-.043em;font-weight:400;max-width:850px;margin:2rem 0}.hero h1 em{font-weight:400;color:#aebbd1}.hero-lead{font-size:clamp(1.25rem,1.7vw,1.7rem);line-height:1.4;max-width:610px;margin:0 0 2.5rem;color:#dedfdc}.text-link{border-bottom:1px solid #aebbd1;padding-bottom:.6rem;display:inline-flex;gap:2rem;transition:gap .25s}.text-link:hover{gap:2.5rem}.hero-image{min-height:490px;overflow:hidden;align-self:stretch;background:#38425d}.hero-image img{filter:saturate(.75);transition:transform 1s}.hero-image:hover img{transform:scale(1.025)}.editorial{background:var(--cream);color:var(--navy);display:grid;grid-template-columns:32% 1fr;gap:5vw;padding:8vw max(4.2vw,calc((100vw - 1600px)/2 + 67px));}.section-heading h2,.when h2,.leadership h2{font-weight:400;letter-spacing:-.025em;line-height:1.12;font-size:clamp(2.5rem,4vw,4.8rem);margin:2rem 0}.section-index{color:#8390aa}.editorial .section-index{color:#596681}.prose{max-width:770px}.prose p{font-size:clamp(1.12rem,1.45vw,1.4rem);line-height:1.65;margin:0 0 1.5rem}.prose p:last-child{margin-bottom:0}.when{padding:7vw 4.2vw 8vw;max-width:1200px;margin:auto}.when p{font-size:clamp(1.3rem,2vw,2rem);line-height:1.52;max-width:940px;margin:0;color:#e4e6e6}.when h2{margin:1rem 0 2rem}.page-hero{padding:7vw 4.2vw 7.5vw;max-width:1600px;margin:auto;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(3.5rem,7vw,7rem);font-weight:400;line-height:1.05;letter-spacing:-.05em;margin:2rem 0;max-width:1000px}.page-hero p{max-width:800px;font-size:clamp(1.18rem,1.7vw,1.65rem);line-height:1.54;color:#dddfe1}.services-list{background:var(--cream);color:var(--navy);padding:2rem 4.2vw 7vw}.service-row{max-width:1500px;margin:auto;display:grid;grid-template-columns:18% 1fr;border-top:1px solid #aab0bb;padding:5rem 0;gap:3vw}.service-row:last-child{border-bottom:1px solid #aab0bb}.number{font:14px Arial,sans-serif;color:#65728c}.service-row>div{max-width:900px}.service-row h2{font-weight:400;font-size:clamp(2.25rem,3.4vw,4rem);letter-spacing:-.035em;line-height:1.15;margin:-.4rem 0 2rem}.service-row p{font-size:clamp(1.07rem,1.25vw,1.25rem);line-height:1.63;max-width:800px;margin:0 0 1.2rem}.projects{background:var(--cream);color:var(--navy);padding:4vw 4.2vw 7vw}.project{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:52% 1fr;gap:6vw;padding:4vw 0;border-bottom:1px solid #aab0bb;align-items:center}.project:nth-child(even){grid-template-columns:1fr 52%}.project:nth-child(even) .project-image{order:2}.project-image{height:430px;overflow:hidden;background:#aab0bb}.project-image img{transition:transform .8s}.project-image:hover img{transform:scale(1.02)}.project h2{font-size:clamp(2rem,3.1vw,3.7rem);line-height:1.18;letter-spacing:-.035em;font-weight:400;margin:1.5rem 0 .6rem}.project .credit{color:#53617e}.project p:last-child{font-size:1.18rem;line-height:1.58;max-width:570px;margin-top:2rem}.leadership{padding:7vw 4.2vw 9vw;max-width:1500px;margin:auto}.people{display:grid;grid-template-columns:1fr 1fr;gap:5vw}.person{border-top:1px solid var(--line);padding:2rem 0}.person h3{font-size:2.8rem;font-weight:400;margin:1.5rem 0}.person p{font-size:1.2rem;line-height:1.6;max-width:580px}.footer{border-top:1px solid var(--line);padding:4.5rem 4.2vw;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}.footer p{font-size:1.25rem;line-height:1.55}.footer p a{border-bottom:1px solid}.footer-mark{opacity:.6}.zh{font-family:'Noto Serif SC','Songti SC',serif}.zh .hero h1,.zh .page-hero h1{letter-spacing:-.03em}.zh .eyebrow,.zh .section-index,.zh .site-header nav a,.zh .footer-label,.zh .credit,.zh .text-link{font-family:'Noto Sans SC',sans-serif;letter-spacing:.06em}.zh .prose p,.zh .service-row p,.zh .project p:last-child{line-height:1.85}
@media(max-width:900px){.site-header{height:auto;min-height:94px;flex-wrap:wrap;padding:1.3rem 5vw;gap:1.4rem}.site-header nav{order:3;flex-basis:100%;justify-content:space-between;margin:0;gap:1rem;overflow-x:auto}.language{margin-left:auto}.hero{grid-template-columns:1fr;padding:3.5rem 5vw 4rem;gap:2rem}.hero-copy{padding:0}.hero h1{margin:1.8rem 0}.hero-image{min-height:340px;height:44vw;max-height:480px}.editorial{grid-template-columns:1fr;padding:6rem 5vw;gap:2rem}.when,.page-hero,.leadership{padding:5rem 5vw}.services-list,.projects{padding:1rem 5vw 5rem}.service-row{grid-template-columns:11% 1fr;padding:4rem 0}.project,.project:nth-child(even){grid-template-columns:1fr;gap:2rem}.project:nth-child(even) .project-image{order:0}.project-image{height:42vw;min-height:280px}.footer{padding:3rem 5vw}}@media(max-width:550px){body{font-size:16px}.site-header nav a{font-size:11px;letter-spacing:.07em}.hero h1{font-size:clamp(2.7rem,12vw,4rem)}.hero-lead{font-size:1.23rem}.hero-image{height:75vw;min-height:290px}.page-hero h1{font-size:3.2rem}.service-row{grid-template-columns:1fr;gap:1rem;padding:3.3rem 0}.service-row h2{font-size:2.35rem}.project-image{height:70vw}.people{grid-template-columns:1fr;gap:1rem}.footer{display:block}.footer-mark{display:block;margin-top:3rem}.zh .hero h1{font-size:clamp(2.45rem,9vw,3.6rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Refined scale and exact supplied wordmark. */
.site-header{background:#171e43;height:88px}
.wordmark{display:block;width:154px;line-height:0;flex:none}
.wordmark img{display:block;width:100%;height:auto;object-fit:contain;transform:translateY(-3px)}
.hero{grid-template-columns:54% 46%;min-height:570px;padding-top:3vw;padding-bottom:4vw}
.hero-copy{padding-right:3vw}
.hero h1{font-size:clamp(2.9rem,4.25vw,4.9rem);line-height:1.09;max-width:680px;margin:0 0 2rem}
.hero-lead{font-size:clamp(1.12rem,1.35vw,1.35rem);max-width:550px}
.hero-image{min-height:440px}
.page-hero h1{font-size:clamp(3rem,5.2vw,5.5rem)}
.section-heading h2,.when h2,.leadership h2{font-size:clamp(2.25rem,3.25vw,3.8rem)}
.service-row h2{font-size:clamp(2rem,2.8vw,3.25rem)}
.prose p{font-size:clamp(1.05rem,1.28vw,1.23rem)}
.when p{font-size:clamp(1.18rem,1.65vw,1.6rem)}
.project h2{font-size:clamp(2rem,2.75vw,3.1rem)}
.zh .hero h1{font-size:clamp(2.5rem,3.65vw,4.3rem)}
@media(prefers-reduced-motion:no-preference){
 main{animation:enter .45s ease-out both}
 .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
 .reveal.is-visible{opacity:1;transform:none}
 @keyframes enter{from{opacity:.65}to{opacity:1}}
}
@media(max-width:900px){.site-header{height:auto}.hero{grid-template-columns:1fr;min-height:0;padding-top:3rem}.hero-copy{padding:0}.hero-image{min-height:320px}.wordmark{width:143px}}
@media(max-width:550px){.hero h1{font-size:clamp(2.5rem,9.5vw,3.35rem)}.hero-lead{font-size:1.12rem}.page-hero h1{font-size:2.85rem}.zh .hero h1{font-size:clamp(2.25rem,8vw,3rem)}}

/* The supplied wordmark uses #171e43. Use the same base on every dark surface. */
:root{--navy:#171e43;--navy2:#171e43}
body,.site-header{background:var(--navy)}
.hero-type{display:block;min-height:530px;padding-top:6.7vw;padding-bottom:6.7vw}
.hero-type .hero-copy{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);grid-template-rows:auto auto;column-gap:7vw;row-gap:2rem;align-items:end;padding:0;width:100%}
.hero-type h1{grid-column:1;grid-row:1 / 3;max-width:880px;font-size:clamp(3.1rem,4.25vw,5.1rem);line-height:1.11;margin:0}
.hero-type .hero-lead{grid-column:2;grid-row:1;max-width:380px;margin:0;font-size:clamp(1.15rem,1.4vw,1.45rem)}
.hero-type .text-link{grid-column:2;grid-row:2;justify-self:start;margin:0}
.zh .hero-type h1{font-size:clamp(2.75rem,3.7vw,4.4rem)}
@media(max-width:900px){.hero-type{min-height:0;padding:5rem 5vw 5.5rem}.hero-type .hero-copy{display:block}.hero-type h1{max-width:760px;margin:0 0 2rem}.hero-type .hero-lead{max-width:600px;margin:0 0 2.5rem}}
@media(max-width:550px){.hero-type{padding:4rem 5vw 5rem}.hero-type h1{font-size:clamp(2.5rem,9.5vw,3.35rem)}.zh .hero-type h1{font-size:clamp(2.25rem,8vw,3rem)}}

/* A quieter reading rhythm, with photography after the title rather than in it. */
.editorial,.services-list,.projects{background:#f4f2ed}
.approach{padding-bottom:5vw}
.approach .prose{max-width:720px}
.approach .prose p:first-child{font-size:clamp(1.18rem,1.55vw,1.5rem);line-height:1.62}
.approach .prose p:not(:first-child){max-width:650px}
.image-interlude{margin:0;background:#f4f2ed;padding:0 4.2vw 7vw;display:flex;justify-content:center}
.image-interlude img{width:min(100%,1180px);height:clamp(280px,37vw,480px);object-fit:cover;object-position:center 48%;filter:saturate(.82) contrast(.94);}
.when{padding-top:7.5vw;padding-bottom:8.5vw}
.when p{max-width:790px}
.service-row{padding-top:4.25rem;padding-bottom:4.5rem;border-color:#c5c6c3}
.service-row:last-child{border-color:#c5c6c3}
.service-row>div{max-width:760px}
.service-row h2{margin-bottom:1.65rem}
.service-row p{line-height:1.72}
.service-extra{margin-top:1.8rem}
.service-extra summary{list-style:none;display:flex;justify-content:space-between;gap:2rem;align-items:center;cursor:pointer;max-width:290px;border-top:1px solid #a5a9b1;padding-top:.8rem;font:12px/1.4 Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:#515f7e}
.service-extra summary::-webkit-details-marker{display:none}
.service-extra summary span{font-size:1.4rem;line-height:1;transition:transform .25s}
.service-extra[open] summary span{transform:rotate(45deg)}
.service-extra p{padding-top:1.25rem;max-width:730px}
.service-extra summary:focus-visible{outline:2px solid var(--navy);outline-offset:5px}
.zh .service-extra summary{font-family:'Noto Sans SC',sans-serif;letter-spacing:.05em}
@media(prefers-reduced-motion:no-preference){.service-extra[open] p{animation:soft-arrive .32s ease-out both}@keyframes soft-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}}
@media(max-width:900px){.approach{padding-bottom:4rem}.image-interlude{padding:0 5vw 5rem}.service-row{padding-top:3.25rem;padding-bottom:3.5rem}}

/* Emblem-only header mark. */
.site-header .wordmark{width:48px;flex:0 0 48px}
.site-header .wordmark img{width:48px;height:48px;object-fit:contain;transform:none}

/* Homepage annotation pass: identity, reading flow, and invitation. */
.hero-type{min-height:0;padding-top:6.5rem;padding-bottom:6.5rem}
.hero-type .hero-copy{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:6vw;align-items:center}
.hero-identity{min-width:0}
.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-family:Arial,sans-serif;font-size:clamp(4rem,7.5vw,8rem);font-weight:500;line-height:1;letter-spacing:-.055em;margin:0 0 1.75rem}
.hero-subtitle{font-size:clamp(1.3rem,2.15vw,2rem);line-height:1.35;letter-spacing:-.015em;max-width:560px;margin:0}
.hero-summary{max-width:430px;min-width:0}
.hero-type .hero-summary .hero-lead{font-size:clamp(1.12rem,1.45vw,1.45rem);line-height:1.6;max-width:430px;margin:0 0 2rem}
.hero-type .hero-summary .text-link{font-size:.875rem;letter-spacing:.07em;padding-bottom:.5rem;border-bottom:1px solid #aebbd1;transition:color .2s,border-color .2s}
.hero-type .hero-summary .text-link:hover{color:#fff;border-color:#fff}
.approach .section-heading h2{margin-top:0}
.approach{padding-top:6.5rem;padding-bottom:5rem}
.when{max-width:none;background:#f4f2ed;color:var(--navy);display:grid;grid-template-columns:32% 1fr;gap:5vw;padding:0 max(4.2vw,calc((100vw - 1600px)/2 + 67px)) 6.5rem}
.when h2{margin:0;max-width:350px}
.when p{color:var(--navy);font-size:clamp(1.05rem,1.28vw,1.23rem);line-height:1.7;max-width:720px}
.image-interlude{padding-bottom:6.5rem}
.image-interlude img{height:auto;max-height:none;aspect-ratio:2016 / 1232;object-fit:contain;filter:none}
.homepage-footer{padding-top:4.5rem;padding-bottom:5rem}
.homepage-footer .footer-label{font-size:.875rem;letter-spacing:.09em;color:#b0bcd0}
.homepage-footer p{max-width:650px;font-size:clamp(1.2rem,1.8vw,1.65rem);line-height:1.5;margin:1.2rem 0 1.5rem}
.inquiry-email{display:inline-block;font-size:clamp(1.12rem,1.6vw,1.45rem);line-height:1.5;border-bottom:1px solid #aebbd1;padding-bottom:.25rem}
@media(max-width:900px){
 .hero-type{padding:4rem 5vw 4.5rem}
 .hero-type .hero-copy{grid-template-columns:1fr;gap:2.5rem}
 .hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:clamp(3.5rem,12vw,6rem)}
 .hero-subtitle{font-size:clamp(1.3rem,3.5vw,1.8rem);max-width:560px}
 .hero-summary{max-width:600px}
 .hero-type .hero-summary .hero-lead{max-width:600px}
 .approach{padding:4rem 5vw 3rem}
 .when{grid-template-columns:1fr;gap:1.5rem;padding:0 5vw 4rem}
 .when h2{max-width:none}
 .image-interlude{padding:0 5vw 4rem}
 .homepage-footer{padding:3rem 5vw 3.5rem}
}

/* Follow-up homepage refinements. */
.site-header .wordmark{width:60px;flex-basis:60px}
.site-header .wordmark img{width:60px;height:60px}
.hero-type .hero-identity h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em}
.zh .hero-type .hero-identity h1{font-family:'Noto Serif SC','Songti SC',serif;font-weight:400}
.hero-subtitle{font-size:clamp(1rem,1.35vw,1.15rem);max-width:none;line-height:1.5}
.hero-type .hero-summary .text-link{text-transform:none;letter-spacing:.015em;font-size:1rem}
.homepage-footer p{font-size:1.125rem;max-width:none;line-height:1.6}
@media(max-width:900px){.site-header .wordmark{width:56px;flex-basis:56px}.site-header .wordmark img{width:56px;height:56px}.hero-subtitle{font-size:1.0625rem;max-width:600px}.homepage-footer p{font-size:1.0625rem}}

/* Centered masthead and roomier opening, following supplied type references. */
.site-header{height:auto;min-height:240px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:2rem 4.2vw 1.75rem}
.site-header .wordmark{width:88px;flex:0 0 auto}
.site-header .wordmark img{width:88px;height:88px}
.site-header nav{order:0;flex-basis:auto;width:auto;margin:0;display:flex;justify-content:center;gap:2.25rem;overflow:visible}
.site-header .language{margin:0;padding:0;border:0;justify-content:center}
.hero-type{min-height:580px;display:flex;align-items:center;padding-top:7.5rem;padding-bottom:7.5rem}
.hero-type .hero-identity h1{font-family:'Times New Roman',Times,serif;font-weight:400;letter-spacing:-.035em}
.hero-subtitle{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(1rem,1.35vw,1.15rem);line-height:1.6}
.zh .hero-subtitle{font-family:'Noto Serif SC','Songti SC',serif;font-weight:500}
.hero-type .hero-summary .text-link{font-family:inherit;font-size:1.0625rem;letter-spacing:0}
.inquiry-email{font-size:1rem;line-height:1.6}
@media(max-width:900px){
 .site-header{min-height:230px;padding:1.75rem 5vw;gap:1.1rem}
 .site-header .wordmark{width:80px;flex-basis:auto}
 .site-header .wordmark img{width:80px;height:80px}
 .site-header nav{order:0;flex-basis:auto;margin:0;gap:clamp(.8rem,3.5vw,2rem);width:100%;flex-wrap:wrap}
 .language{margin:0}
 .hero-type{min-height:500px;padding:4.5rem 5vw 5rem}
 .hero-subtitle{font-size:1.0625rem}
 .inquiry-email{font-size:1rem}
}

/* Centered, single-column opening and unified serif navigation. */
.site-header{border-bottom:0}
.site-header nav a,.zh .site-header nav a{font-family:inherit;font-size:.875rem;letter-spacing:.06em}
.hero-type{justify-content:center;padding-top:5rem;padding-bottom:6rem;min-height:620px}
.hero-type .hero-copy{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2.25rem;width:100%}
.hero-identity{text-align:center;width:100%}
.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{max-width:none;margin:0 0 1.75rem}
.hero-subtitle,.zh .hero-subtitle{font-weight:400;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.5;margin:0 auto;max-width:none}
.hero-summary{width:100%;max-width:820px;text-align:center}
.hero-type .hero-summary .hero-lead{max-width:820px;margin:0 auto 1.75rem;font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.6;text-wrap:balance}
.hero-type .hero-summary .text-link{margin:0 auto;justify-self:center}
@media(max-width:900px){.hero-type{padding:3.5rem 5vw 4.5rem;min-height:560px}.hero-type .hero-copy{gap:2rem}.hero-summary{max-width:650px}}
@media(max-width:550px){.hero-type{min-height:530px}.hero-subtitle,.zh .hero-subtitle{font-size:1.25rem}.hero-type .hero-summary .hero-lead{font-size:1.0625rem}.site-header nav a{font-size:.875rem;letter-spacing:.03em}}

/* Reference scale: a quieter company name and more space between text groups. */
.site-header nav a,.zh .site-header nav a{text-transform:none;letter-spacing:.015em}
.hero-type{min-height:680px}
.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:clamp(2.75rem,4.1vw,3.25rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:1rem}
.hero-subtitle,.zh .hero-subtitle{font-size:1.25rem;line-height:1.65}
.hero-type .hero-copy{gap:4rem}
.hero-type .hero-summary .hero-lead{margin-bottom:3rem}
@media(max-width:900px){.hero-type{min-height:620px}.hero-type .hero-copy{gap:3.5rem}.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:3rem}}
@media(max-width:550px){.hero-type{min-height:580px}.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:2.75rem}.hero-subtitle,.zh .hero-subtitle{font-size:1.125rem}.hero-type .hero-copy{gap:3rem}.hero-type .hero-summary .hero-lead{margin-bottom:2.5rem}}

/* Final scale adjustments and a soft transition into Approach. */
.site-header nav a,.zh .site-header nav a{font-size:1rem;font-weight:400}
.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:clamp(2.875rem,calc(4.1vw + 2px),3.375rem)}
.hero-type{position:relative}
.hero-type::after{content:"";position:absolute;left:0;right:0;bottom:0;height:96px;background:linear-gradient(to bottom,rgba(23,30,67,0),#f4f2ed);pointer-events:none}
.hero-type .hero-copy{position:relative;z-index:1}
@media(max-width:900px){.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:3.125rem}.hero-type::after{height:80px}}
@media(max-width:550px){.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:2.875rem}.site-header nav a{font-size:1rem}}

/* Review: clean section boundary, identical Latin wordmark, sans-serif navigation. */
.hero-type::after{display:none}
.hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-family:'Times New Roman',Times,serif;font-weight:400;letter-spacing:-.025em}
.site-header nav a{font-family:Arial,Helvetica,sans-serif;font-weight:400}
.zh .site-header nav a{font-family:'Noto Sans SC',Arial,sans-serif;font-weight:400}

/* One aligned header row: Explore, central emblem, language selector. */
.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"explore logo language";height:auto;min-height:156px;padding:2rem 4.2vw;gap:1rem;align-items:center;position:relative;z-index:10}
.site-header .wordmark{grid-area:logo;justify-self:center}
.site-header nav{grid-area:explore;justify-self:start;width:auto;display:block;order:0;flex-basis:auto;overflow:visible}
.site-header .language{grid-area:language;justify-self:end;align-self:center;margin:0;padding:0;border:0}
.explore-menu{position:relative;font-family:Georgia,'Times New Roman',serif;font-size:.9375rem;font-weight:400;line-height:1.5}
.zh .explore-menu{font-family:'Noto Serif SC','Songti SC',serif}
.explore-menu summary{cursor:pointer;list-style:none;display:inline-block;padding:.5rem 0;color:var(--cream)}
.explore-menu summary::-webkit-details-marker{display:none}
.explore-menu summary{font-family:Arial,Helvetica,sans-serif}
.zh .explore-menu summary{font-family:'Noto Sans SC',Arial,sans-serif}
.explore-menu summary:focus-visible{outline:2px solid #d8e7ff;outline-offset:5px}
.explore-links{position:absolute;top:100%;left:-1rem;min-width:170px;padding:.75rem 1rem 1rem;background:var(--navy);box-shadow:0 12px 24px rgba(0,0,0,.12)}
.site-header nav .explore-links a,.zh .site-header nav .explore-links a{display:block;font-family:inherit;font-size:.9375rem;font-weight:400;letter-spacing:0;text-transform:none;opacity:1;padding:.5rem 0;border-bottom:0}
.site-header nav .explore-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:.3em}
.site-header nav .explore-links a[aria-current]{text-decoration:underline;text-underline-offset:.3em}
@media(max-width:900px){.site-header{min-height:140px;padding:1.75rem 5vw;gap:.75rem}.site-header nav{width:auto;display:block;flex-basis:auto}.site-header .language{margin:0}}
@media(max-width:550px){.site-header{min-height:116px;padding:1.5rem 5vw;gap:.5rem}.site-header .wordmark{width:64px}.site-header .wordmark img{width:64px;height:64px}.explore-menu,.site-header nav .explore-links a,.zh .site-header nav .explore-links a{font-size:.875rem}.site-header .language{font-size:.75rem;gap:6px;letter-spacing:.03em}}

/* Small, unboxed navigation disclosure with a roll-down reveal. */
.explore-menu,.site-header nav .explore-links a,.zh .site-header nav .explore-links a{font-size:.75rem;font-weight:400}
.explore-links{background:transparent;box-shadow:none;min-width:150px;left:0;padding:.5rem 0 0;transform-origin:top left}
.explore-menu[open] .explore-links{animation:explore-roll-down .28s ease-out both}
@keyframes explore-roll-down{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-6px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
.hero-type .hero-summary .text-link{font-weight:400}
@media(prefers-reduced-motion:reduce){.explore-menu[open] .explore-links{animation:none}}

/* A slightly larger Explore label and a quiet outlined pill. */
.explore-menu{font-size:.875rem}
.hero-type .hero-summary .text-link{display:inline-flex;align-items:center;justify-content:center;font-family:Arial,Helvetica,sans-serif;font-size:.875rem;font-weight:400;line-height:1.4;text-transform:none;letter-spacing:0;text-decoration:none;border:1px solid rgba(240,238,231,.85);border-radius:999px;padding:.625rem 1.5rem;min-height:40px;transition:background-color .2s,border-color .2s,color .2s}
.zh .hero-type .hero-summary .text-link{font-family:'Noto Sans SC',Arial,sans-serif}
.hero-type .hero-summary .text-link:hover{background:rgba(240,238,231,.1);border-color:var(--cream);color:var(--cream)}

/* Five services with geometric line icons between index and text. */
.services-hero{padding-top:5rem;padding-bottom:5rem}
.services-hero h1,.zh .services-hero h1{font-family:'Times New Roman',Times,serif;font-weight:400;font-size:clamp(2.875rem,calc(4.1vw + 2px),3.375rem);line-height:1.15;letter-spacing:-.025em;margin:0 0 2.5rem}
.zh .services-hero h1{font-family:'Noto Serif SC','Songti SC',serif}
.services-hero p{font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.6;margin:0;max-width:850px}
.services-list .service-row{grid-template-columns:42px 64px minmax(0,1fr);column-gap:clamp(1.5rem,4.5vw,5rem);align-items:start}
.service-row .number{padding-top:.25rem}
.service-icon{display:block;width:48px;height:48px;color:var(--navy)}
.service-icon svg{display:block;width:100%;height:100%}
.services-list .service-copy{max-width:850px}
@media(max-width:900px){.services-hero{padding-top:4rem;padding-bottom:4rem}.services-hero h1,.zh .services-hero h1{font-size:3.125rem}.services-list .service-row{grid-template-columns:30px 48px minmax(0,1fr);column-gap:1.5rem}.service-icon{width:40px;height:40px}}
@media(max-width:550px){.services-hero h1,.zh .services-hero h1{font-size:2.875rem}.services-list .service-row{grid-template-columns:30px 40px minmax(0,1fr);column-gap:1rem;row-gap:1.5rem}.service-icon{width:36px;height:36px}.services-list .service-copy{grid-column:1 / -1}.service-row .number{padding-top:.1rem}}

/* Project summaries stay compact; expanded accounts remain in the reading flow. */
.projects-hero{padding-top:5rem;padding-bottom:5rem}
.projects-hero h1,.zh .projects-hero h1{font-family:'Times New Roman',Times,serif;font-size:clamp(2.875rem,calc(4.1vw + 2px),3.375rem);font-weight:400;line-height:1.15;letter-spacing:-.025em;margin:0 0 2.5rem}
.zh .projects-hero h1{font-family:'Noto Serif SC','Songti SC',serif}
.projects-hero p{font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.6;max-width:950px;margin:0 0 1.4rem}
.projects-hero p:last-child{margin-bottom:0}
.project-summary{font-size:1.18rem;line-height:1.58;max-width:570px;margin:1.75rem 0 1.4rem}
.project-more{margin-top:1.5rem}
.project-more summary{display:inline-flex;align-items:center;gap:1.5rem;list-style:none;cursor:pointer;border:1px solid #979ba4;border-radius:999px;padding:.55rem 1.15rem;font:400 .875rem/1.4 Arial,sans-serif}
.zh .project-more summary{font-family:'Noto Sans SC',Arial,sans-serif}
.project-more summary::-webkit-details-marker{display:none}
.project-more summary span{font-size:1.125rem;line-height:1;transition:transform .2s}
.project-more[open] summary span{transform:rotate(45deg)}
.project-more summary:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.project-detail{padding-top:1.5rem}
.project-detail p,.project .project-detail p:last-child{font-size:1.0625rem;line-height:1.7;max-width:570px;margin:0 0 1rem}
.project-detail p:last-child{margin-bottom:0}
@media(max-width:900px){.projects-hero{padding-top:4rem;padding-bottom:4rem}.projects-hero h1,.zh .projects-hero h1{font-size:3.125rem}}
@media(max-width:550px){.projects-hero h1,.zh .projects-hero h1{font-size:2.875rem}}

/* History leadership names: quieter scale for the expanded biographies. */
.leadership .person h3{font-size:1.75rem;line-height:1.2;margin:0 0 1.5rem}
.leadership .person p{font-size:1rem;line-height:1.65}

/* Anchor each image at its row's top while the account rolls open below. */
.project .project-image{align-self:start}
.project-more.is-closing summary span{transform:rotate(0)}

/* Keep the short account at its collapsed position during expansion. */
.project .project-text{align-self:start;padding-top:var(--project-text-offset,0px)}
.history-hero h1,.zh .history-hero h1{font-size:clamp(2.875rem,calc(4.1vw + 2px),3.375rem)}
@media(max-width:900px){.history-hero h1,.zh .history-hero h1{font-size:3.125rem}}
@media(max-width:550px){.history-hero h1,.zh .history-hero h1{font-size:2.875rem}}

/* A quiet cue for the unboxed Explore menu. */
.explore-menu summary{display:inline-flex;align-items:center;gap:.5rem}
.explore-chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .28s ease}
.explore-menu[open] .explore-chevron{transform:translateY(1px) rotate(225deg)}

/* Softer biography text without changing its size or content. */
.leadership .person p{font-family:'Times New Roman',Times,serif;font-weight:400;line-height:1.75;color:#dce0e8}
.zh .leadership .person p{font-family:'Noto Serif SC','Songti SC',serif;font-weight:400}
.homepage-footer .footer-emblem{display:block;flex:0 0 64px;width:64px;height:64px;align-self:center}
.homepage-footer .footer-emblem img{width:100%;height:100%;object-fit:contain}
.site-header{position:sticky;top:0;z-index:100;background:var(--navy);transition:transform .3s ease;will-change:transform}
.site-header.is-scroll-hidden{transform:translateY(calc(-100% - 1px));pointer-events:none}
.site-header:focus-within{transform:translateY(0);pointer-events:auto}
@media(max-width:550px){.homepage-footer .footer-emblem{width:48px;height:48px;margin-top:2rem}}

/* First phone layout pass. Desktop rules remain unchanged above 600px. */
@media(max-width:600px){
 body{font-size:1rem}
 .site-header{min-height:88px;height:auto;padding:.75rem 1.25rem;gap:.5rem;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr)}
 .site-header .wordmark,.site-header .wordmark img{width:52px;height:52px}
 .site-header nav{margin:0;min-width:0}
 .explore-menu{font-size:.875rem}
 .explore-menu summary{min-height:44px;padding:.5rem 0;gap:.375rem}
 .site-header .language{gap:.125rem;font-size:.875rem;letter-spacing:0}
 .site-header .language a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:36px}
 .site-header .language a[lang="zh-Hans"]{min-width:40px}
 .explore-links{min-width:180px;left:0;padding:.5rem 0 1rem}
 .site-header nav .explore-links a,.zh .site-header nav .explore-links a{font-size:1rem;min-height:44px;padding:.625rem .75rem .625rem 0;line-height:1.5}
 .hero-type{min-height:0;padding:3rem 1.25rem 3.5rem}
 .hero-type .hero-copy{gap:2.25rem;padding:0}
 .hero-type .hero-identity h1,.zh .hero-type .hero-identity h1{font-size:2.5rem;margin:0 0 1rem;line-height:1.15}
 .hero-subtitle,.zh .hero-subtitle{font-size:clamp(1.0625rem,4.8vw,1.25rem);line-height:1.5;letter-spacing:-.015em}
 .hero-type .hero-summary{width:100%;max-width:31rem}
 .hero-type .hero-summary .hero-lead{font-size:1rem;line-height:1.65;margin:0 auto 2rem;max-width:31rem;text-wrap:pretty}
 .hero-type .hero-summary .hero-lead br{display:none}
 .hero-type .hero-summary .text-link{min-height:44px;font-size:.9375rem;padding:.625rem 1.5rem}
 .editorial,.approach,.about{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:3rem 1.25rem}
 .section-heading h2,.when h2,.leadership h2{font-size:2rem;line-height:1.15;margin:0;max-width:none}
 .prose,.project-text,.service-copy{min-width:0}
 .prose p,.approach .prose p:first-child,.when p{font-size:1rem;line-height:1.75}
 .when{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:0 1.25rem 3rem}
 .image-interlude{padding:0 1.25rem 3rem}
 .page-hero,.services-hero,.projects-hero,.history-hero{padding:3rem 1.25rem}
 .page-hero h1,.services-hero h1,.projects-hero h1,.history-hero h1,.zh .services-hero h1,.zh .projects-hero h1,.zh .history-hero h1{font-size:2.5rem;line-height:1.15;letter-spacing:-.025em;margin:0 0 1.5rem}
 .history-hero h1,.zh .history-hero h1{margin-bottom:0}
 .page-hero p,.services-hero p,.projects-hero p{font-size:1rem;line-height:1.7;max-width:none}
 .services-list{padding:0 1.25rem 3rem}
 .services-list .service-row{grid-template-columns:30px 36px minmax(0,1fr);column-gap:1rem;row-gap:1.25rem;align-items:center;padding:2.5rem 0}
 .service-icon{width:36px;height:36px}
 .service-row .number{padding:0;font-size:.875rem}
 .services-list .service-copy{grid-column:1 / -1;max-width:none}
 .service-row h2{font-size:1.75rem;line-height:1.25;margin:0 0 1.25rem;overflow-wrap:break-word}
 .service-row p{font-size:1rem;line-height:1.75;margin-bottom:0}
 .projects{padding:0 1.25rem 3rem}
 .project,.project:nth-child(even){grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:2.5rem 0;align-items:start}
 .project .project-image,.project:nth-child(even) .project-image{order:0;width:100%;height:auto;min-height:0;aspect-ratio:4 / 3}
 .project-image img{height:100%;object-fit:cover;object-position:center}
 .project .project-text{padding-top:0}
 .project .section-index{font-size:.8125rem;letter-spacing:.06em;line-height:1.5}
 .project h2{font-size:1.875rem;line-height:1.2;margin:1rem 0 1.25rem;overflow-wrap:break-word}
 .project-summary{font-size:1rem;line-height:1.7;margin:0 0 1.25rem}
 .project-more{margin-top:1.25rem;overflow-anchor:none}
 .project-more summary{min-height:44px;font-size:.9375rem;padding:.625rem 1.125rem}
 .project-detail{padding-top:1.25rem}
 .project-detail p,.project .project-detail p:last-child{font-size:1rem;line-height:1.75;margin:0 0 1rem}
 .project .project-detail p:last-child{margin-bottom:0}
 .leadership{padding:3rem 1.25rem}
 .leadership h2{margin-bottom:2rem}
 .people{grid-template-columns:minmax(0,1fr);gap:1rem}
 .person{padding:1.75rem 0 1rem}
 .leadership .person h3{font-size:1.5rem;margin:0 0 1.25rem}
 .leadership .person p{font-size:1rem;line-height:1.75;margin:0 0 1.25rem}
 .leadership .person p:last-child{margin-bottom:0}
 .zh .prose p,.zh .when p,.zh .service-row p,.zh .project-summary,.zh .project-detail p,.zh .project .project-detail p:last-child,.zh .leadership .person p{line-height:1.85}
 .homepage-footer{display:flex;flex-direction:column;align-items:flex-start;gap:2rem;padding:2.5rem 1.25rem 3rem}
 .homepage-footer>div{min-width:0;width:100%}
 .homepage-footer .footer-label{font-size:.875rem}
 .homepage-footer p{font-size:1rem;line-height:1.65;margin:1rem 0 1.25rem;max-width:30rem}
 .homepage-footer .inquiry-email{font-size:1rem;line-height:1.5;min-height:44px;padding:.5rem 0;overflow-wrap:anywhere;max-width:100%}
 .homepage-footer .footer-emblem{flex:0 0 48px;align-self:flex-start;width:48px;height:48px;margin:0}
}

/* A separate navigation page for phones, leaving the reading position intact. */
.mobile-navigation{border:0;margin:0;padding:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;background:var(--navy);color:var(--cream);overflow-y:auto;overscroll-behavior:contain}
.mobile-navigation::backdrop{background:transparent}
.mobile-navigation[open]{animation:mobile-menu-enter .48s cubic-bezier(.25,.1,.25,1) both}
.mobile-navigation[open] .mobile-navigation-links a{animation:mobile-menu-link-enter .3s ease-out .48s both}
.mobile-navigation[open] .mobile-navigation-links a:nth-child(2){animation-delay:.57s}
.mobile-navigation[open] .mobile-navigation-links a:nth-child(3){animation-delay:.66s}
.mobile-navigation[open] .mobile-navigation-links a:nth-child(4){animation-delay:.75s}
.mobile-navigation-header{display:grid;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);align-items:center;gap:.5rem;padding:.75rem 1.25rem;min-height:88px}
.mobile-navigation-close{justify-self:start;display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0;border:0;background:none;color:inherit;font:400 .875rem/1.5 Georgia,'Times New Roman',serif;cursor:pointer}
.mobile-navigation-close span:last-child{font-size:1.5rem;font-weight:300}
.mobile-navigation-logo,.mobile-navigation-logo img{width:52px;height:52px;object-fit:contain}
.mobile-navigation-header .language{justify-self:end;gap:.125rem;padding:0;border:0;font-size:.875rem;letter-spacing:0}
.mobile-navigation-header .language a{min-height:44px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}
.mobile-navigation-links{display:flex;flex-direction:column;align-items:flex-start;gap:1.125rem;padding:clamp(2rem,9vh,5rem) 1.5rem calc(3rem + env(safe-area-inset-bottom))}
.mobile-navigation-links a{font:400 clamp(1.75rem,7.5vw,2.375rem)/1.25 Georgia,'Times New Roman',serif;letter-spacing:-.025em;padding:.375rem 0;min-height:52px}
.zh .mobile-navigation-links a,.zh .mobile-navigation-close{font-family:'Noto Serif SC','Songti SC',serif}
.mobile-navigation-links a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
.mobile-navigation-close:focus-visible{outline:2px solid var(--cream);outline-offset:4px}
@keyframes mobile-menu-enter{from{transform:translateY(-100%)}to{transform:translateY(0)}}
@keyframes mobile-menu-link-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){body.nav-layer-open{overflow:hidden}.site-header .explore-links{display:none}}
@media(prefers-reduced-motion:reduce){.mobile-navigation[open],.mobile-navigation[open] .mobile-navigation-links a{animation:none}}

/* Bilingual navigation typography; body prose retains its original serif stacks. */
:root{--reading-sans:Arial,Helvetica,sans-serif}
.zh{--reading-sans:'Noto Sans SC',Arial,sans-serif}
.site-header nav .explore-links a,.zh .site-header nav .explore-links a,
.mobile-navigation-links a,.zh .mobile-navigation-links a{
 font-family:var(--reading-sans);font-weight:400;
}
.hero-type .hero-summary .hero-lead{font-size:clamp(1.125rem,1.5vw,1.375rem)}

/* Shared inner-page hero envelope with more room below the masthead.
   Minimum heights allow long translations and enlarged text to grow safely. */
.services-hero,.projects-hero,.history-hero{
 min-height:560px;padding-top:9rem;padding-bottom:5rem;
}
.history-hero h1,.zh .history-hero h1{margin-top:0;margin-bottom:2.5rem;line-height:1.15}
@media(max-width:900px){
 .services-hero,.projects-hero,.history-hero{min-height:540px;padding-top:8rem;padding-bottom:4rem}
}
@media(max-width:600px){
 .hero-type .hero-summary .hero-lead{font-size:1.0625rem}
 .services-hero,.projects-hero,.history-hero{min-height:520px;padding-top:4.5rem;padding-bottom:3rem}
 .history-hero h1,.zh .history-hero h1{margin-bottom:1.5rem}
}
