@font-face{font-family:Archivo;src:url('assets/archivo-variable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Archivo;src:url('assets/archivo-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('assets/geist-mono.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#f4f4ee;--ink:#171b19;--muted:#626862;--line:#ced1c8;--blue:#2d60c8;--serif:Archivo,Arial,sans-serif;--sans:Archivo,'Microsoft YaHei',sans-serif;--mono:'Geist Mono','Microsoft YaHei',monospace}
body{background:var(--paper)}::selection{background:#a9c5ff;color:var(--ink)}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline-color:var(--blue)}
.site-header{height:90px;margin:0 4%;border-bottom:0}.brand{font-size:24px;font-weight:800;letter-spacing:-.07em}.brand i{font-weight:500}.brand span{font:8px var(--mono);letter-spacing:.05em}.site-header nav{gap:28px}.site-header nav a{font:10px var(--mono);letter-spacing:0}.site-header nav a:last-child{padding:13px 20px;border-radius:30px;background:#dce7fb;color:#214c9c}.site-header nav a:after{background:var(--blue)}
.eyebrow,.cn-name,.cover-controls,.object-caption,.scroll-cue,.work-index,.work-year,.work-open,.preview-meta,.motion-toggle,.footer-bottom,.detail-meta dt,.gallery-bar,.gallery-count{font-family:var(--mono)}.eyebrow{letter-spacing:.025em;color:var(--blue)}
.hero{padding:25px 4% 32px;min-height:calc(100svh - 90px);max-width:none}.hero:before{display:none}.hero-top{align-items:center}.hero-top .cn-name{font-size:10px;letter-spacing:0}.hero-heading{margin-top:36px;max-width:none;padding:0}.hero-heading h1{font-family:Archivo,Arial,sans-serif;font-size:clamp(100px,20.1vw,340px);font-weight:780;line-height:.78;letter-spacing:-.075em;margin-left:-.01em}.hero-heading h1>span{display:block;animation:none;white-space:nowrap}.hero-heading h1>span:nth-child(2){font-size:1em;padding:0;margin-top:12px;text-align:right}.hero-line:first-child{transform:translateX(calc(var(--hero-progress,0) * -35px))}.hero-line.name-second{transform:translateX(calc(var(--hero-progress,0) * 35px))}
.hero-deck{position:absolute;left:1%;bottom:0;width:29%;max-width:340px}.hero-object{display:block;position:relative;width:100%;aspect-ratio:1.9;overflow:hidden;background:#dce3d0}.hero-object img{object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.hero-object:hover img{transform:scale(1.07)}.hero-object .tag{position:absolute;left:10px;bottom:10px;font-size:7px;padding:5px 8px}.object-arrow{position:absolute;right:10px;top:10px;width:30px;height:30px;border-radius:50%;background:var(--paper);display:grid;place-items:center;font-size:20px;transition:transform .4s}.hero-object:hover .object-arrow{transform:rotate(45deg)}.object-caption{display:block;font-size:9px;margin-top:9px}.cover-controls{position:absolute;left:calc(100% + 15px);bottom:0;flex-direction:column;gap:0;white-space:nowrap;font-size:9px}.dot:before{border-color:var(--blue)}.dot[aria-pressed=true]:before{background:var(--blue);border-color:var(--blue)}.hero-cross{position:absolute;left:46%;bottom:18%;color:var(--blue);font-size:clamp(30px,5vw,72px);line-height:1;animation:turn 32s linear infinite}.hero-bottom{margin-top:40px;align-items:flex-end}.hero-copy{font-size:12px;line-height:1.7;max-width:300px}.scroll-cue{font-size:9px;letter-spacing:0;color:var(--blue);padding:16px}.pill{font-size:10px;border-color:var(--ink);min-height:48px}.pill.dark{background:var(--blue);border-color:var(--blue);color:#fff}.pill:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.pill span{transition:transform .3s}.pill:hover span{transform:translateX(3px)}
.discipline-marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;margin:40px 0 80px}.marquee-track{width:max-content;display:flex;animation:marquee 36s linear infinite;font-size:clamp(30px,4.5vw,68px);font-style:italic;letter-spacing:-.045em;font-weight:500;line-height:1.15}.marquee-track>span{flex:none;white-space:nowrap;padding-right:.5em}.marquee-track b{display:inline-block;color:var(--blue);font-size:.4em;vertical-align:middle;margin:0 1.4em;font-style:normal}
.selected{padding:0 4% 90px;max-width:none}.selected .section-head{align-items:center;margin-bottom:25px}.selected .section-head .eyebrow{margin:0}.selected-tools{display:flex;align-items:center;gap:28px}.motion-toggle{font-size:9px;min-height:44px;padding:10px;border-bottom:1px solid var(--line)}.selected-showcase{display:grid;grid-template-columns:1.15fr 1fr;gap:6%}.selected-list{min-width:0}.work-row,.selected-card:nth-child(2),.selected-card:nth-child(3){position:relative;display:grid;grid-template-columns:35px 1fr auto;gap:15px;align-content:center;min-height:380px;border-top:1px solid var(--line);padding:50px 0;width:auto;margin:0}.work-row:last-child{border-bottom:1px solid var(--line)}.work-index,.work-year{font-size:10px;padding-top:9px}.work-row h2{font-size:clamp(35px,4.4vw,72px);font-weight:650;letter-spacing:-.055em;line-height:1.05;transition:color .3s,transform .4s}.work-row:hover h2,.work-row:focus-visible h2,.work-row.is-current h2{color:var(--blue);transform:translateX(4px)}.work-row-copy p{font-size:10px;margin-top:14px;letter-spacing:.025em}.work-row-intro{display:block;max-width:290px;font-size:12px;color:var(--muted);line-height:1.8;margin-top:25px}.work-open{grid-column:2;font-size:9px;margin-top:24px;color:var(--blue)}.selected-sticky{position:sticky;top:35px;align-self:start}.sticky-visual{position:relative;aspect-ratio:.86;background:#e0e5d9;overflow:hidden}.work-preview{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(35px) scale(1.04);transition:opacity .55s,transform .8s cubic-bezier(.2,.65,.2,1),visibility .55s}.work-preview.active{visibility:visible;opacity:1;transform:none;z-index:1}.work-preview img{object-fit:cover;transition:transform .9s}.work-preview:hover img{transform:scale(1.045)}.work-preview .tag{position:absolute;left:18px;bottom:18px;font-size:8px}.preview-open{position:absolute;right:18px;top:18px;width:65px;height:65px;border-radius:50%;background:var(--paper);font:10px var(--mono);display:grid;place-items:center;transition:background .3s,color .3s}.work-preview:hover .preview-open{background:var(--blue);color:white}.preview-meta{display:flex;justify-content:space-between;font-size:9px;margin:20px 0 14px}.preview-progress{height:2px;background:var(--line)}.preview-progress span{display:block;height:100%;width:33.333%;background:var(--blue);transition:transform .55s}.mobile-work-image{display:none}.all-work-link{display:flex;justify-content:flex-end;margin-top:26px}
.home-capabilities{margin:0 4% 100px}.capability-strip strong{font-weight:650;letter-spacing:-.045em}.capability-strip a{transition:background .35s}.capability-strip a:hover{background:#e4eaf2}.home-about{margin:0 4% 100px;padding-top:40px;align-items:flex-start}.home-about p{font-size:clamp(30px,5vw,72px);font-weight:650;line-height:1;letter-spacing:-.055em}.home-about p i{font-weight:450}.home-about>.eyebrow{padding-top:10px}.site-footer{padding:0 4% 25px}.footer-message{background:#e3eafa;padding-top:65px;padding-bottom:65px}.footer-message p{font-weight:700;letter-spacing:-.065em}.footer-message p i{font-weight:450}.footer-message .spark{color:var(--blue);animation:turn 40s linear infinite}.footer-nav a{font-size:24px;font-weight:550;letter-spacing:-.04em}
.page-title,.works-heading h1,.detail-heading h1,.contact-hero h1{font-family:Archivo,Arial,sans-serif;font-weight:700;letter-spacing:-.065em}.page-title i,.works-heading h1 i,.contact-hero h1 i{font-weight:450}.page-title{font-size:clamp(70px,9.5vw,145px)}.works-heading h1{font-size:clamp(64px,8vw,122px);line-height:.92}.detail-heading h1{font-size:clamp(60px,9vw,136px)}.section-head h2{font-weight:650}.section-head h2 i{font-weight:450}.filter-nav a[aria-current],.chapter-nav a[aria-current]{color:var(--blue)}.filter-nav a[aria-current]:before,.chapter-nav a[aria-current]:before{background:var(--blue)}.portrait{background:#dee7f8}.portrait-monogram{font-weight:650;letter-spacing:-.09em}.contact-art{background:#dfe7f6}.map-card:hover{background:#e3eafa}.gallery-summary h2{font-weight:650;letter-spacing:-.04em}.round:hover:not(:disabled){background:var(--blue);border-color:var(--blue)}.contact-hero h1{font-size:clamp(75px,10vw,150px)}
.motion-title .word{display:inline-block;white-space:nowrap;overflow:visible}.motion-title .letter{--title-shift-x:0px;--title-shift-y:0px;--title-rotate:0deg;display:inline-block;transform:translateY(105%) rotate(5deg);transform-origin:center 72%;opacity:0;transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .5s,color .5s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--letter-index)*23ms)}.motion-title.is-visible .letter{transform:translate3d(0,0,0);opacity:1}.kinetic-title{cursor:default}.kinetic-title .letter{will-change:transform,color}.kinetic-title.is-visible.is-interactive-ready .letter{transition:transform .3s cubic-bezier(.22,1,.36,1),color .28s ease;transition-delay:0s}.kinetic-title.is-visible.is-interactive-ready .letter:hover{transform:translate3d(0,-.015em,0) scale(1.035);color:#a58fc2;position:relative;z-index:1}.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:left;transform:scaleX(0);background:var(--blue);z-index:80;pointer-events:none}.global-motion{position:fixed;right:15px;bottom:15px;width:40px;height:40px;border:1px solid var(--line);background:var(--paper);border-radius:50%;z-index:40;font:12px var(--mono);box-shadow:0 2px 12px #171b1908}.global-motion:hover{color:var(--blue);border-color:var(--blue)}.intro-wipe{position:fixed;inset:0;z-index:1000;background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;align-items:end;padding:4vw;pointer-events:none;overflow:hidden;animation:intro-wipe 1.65s cubic-bezier(.76,0,.24,1) .05s both}.intro-name{grid-column:1/-1;align-self:center;display:flex;justify-content:space-between;gap:.12em;width:100%;overflow:hidden;font:790 clamp(72px,17vw,275px)/.72 Archivo,Arial,sans-serif;letter-spacing:-.09em}.intro-name>span{display:block;transform:translateY(112%);animation:intro-name-up .72s cubic-bezier(.16,1,.3,1) .08s forwards}.intro-name>span+span{animation-delay:.16s}.intro-count{grid-column:1;font:650 11px var(--mono);letter-spacing:.08em}.intro-caption{grid-column:2;font:650 9px var(--mono);letter-spacing:.08em;text-align:right}.cover-switch{animation:cover-switch .5s ease}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .intro-wipe{display:none}.motion-paused .motion-title .letter,.motion-paused .motion-title .letter:hover{opacity:1;transform:none;color:inherit}.motion-paused .reveal{opacity:1;transform:none}.motion-paused{scroll-behavior:auto}.motion-paused .hero-line{transform:none!important}
.motion-paused .page,.motion-paused .cover-switch{animation:none!important}.motion-paused .letter:hover{transform:none}
@keyframes marquee{to{transform:translateX(-50%)}}@keyframes intro-name-up{to{transform:none}}@keyframes intro-wipe{0%,63%{transform:translateY(0)}100%{transform:translateY(-100%);visibility:hidden}}@keyframes cover-switch{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:1700px){.hero-heading h1{font-size:20.1vw}.hero-deck{max-width:420px}.work-row{min-height:460px}.site-header,.page,.site-footer{max-width:none}}
@media(max-width:1000px){.hero{min-height:auto;padding-top:30px}.hero-heading{margin-top:40px}.hero-bottom{margin-top:40px}.hero-deck{width:31%}.hero-cross{left:44%;bottom:20%}.work-row,.selected-card:nth-child(2),.selected-card:nth-child(3){min-height:300px;grid-template-columns:25px 1fr;gap:10px}.work-year{display:none}.work-row h2{font-size:4.6vw}.selected-showcase{gap:4%}.sticky-visual{aspect-ratio:.8}.selected-sticky{top:25px}.home-about>.eyebrow{display:none}.work-row-intro{font-size:11px}}
@media(max-width:700px){.site-header{height:78px;margin:0 6%}.brand{font-size:22px}.brand span{font-size:7px}.site-header nav{top:77px}.site-header nav a{font-size:12px}.site-header nav a:last-child{border-radius:0;background:none;padding:14px 6px}.hero{padding:22px 6% 30px;min-height:auto}.hero-top .eyebrow,.hero-top .cn-name{font-size:8px}.hero-top>.eyebrow:nth-child(2){display:none}.hero-heading{margin-top:42px;padding-bottom:0}.hero-heading h1{font-size:19.2vw;line-height:.85;letter-spacing:-.075em}.hero-heading h1>span:nth-child(2){font-size:1.45em;margin-top:16px;padding:0}.hero-deck{left:0;bottom:7px;width:37%}.hero-object{aspect-ratio:1.08}.hero-object .tag{font-size:5px;left:4px;bottom:4px;padding:3px 4px}.object-arrow{width:22px;height:22px;right:5px;top:5px;font-size:15px}.object-caption{font-size:6px;margin-top:6px}.cover-controls{position:static;flex-direction:row;justify-content:space-between;font-size:7px}.cover-controls .dot{width:22px;height:28px}.hero-cross{display:none}.hero-bottom{display:grid;grid-template-columns:1fr auto;gap:25px 12px;margin-top:35px}.hero-copy{font-size:10px}.scroll-cue{font-size:7px;padding:10px 0;align-self:end}.hero-bottom>.pill{grid-column:1/-1;justify-content:space-between;padding:16px 22px}.discipline-marquee{margin:15px 0 40px;padding:19px 0}.marquee-track{font-size:38px}.selected{padding:0 6% 60px}.selected-tools{gap:12px}.selected-tools>.eyebrow{display:none}.selected .section-head .eyebrow{font-size:9px}.motion-toggle{font-size:8px;padding:8px 0}.selected-showcase{display:block}.selected-sticky{display:none}.work-row,.selected-card:nth-child(2),.selected-card:nth-child(3){min-height:0;padding:28px 0 36px;grid-template-columns:24px 1fr auto;gap:12px;width:100%;margin:0}.work-row h2{font-size:clamp(35px,9vw,60px)}.work-index,.work-year{font-size:8px;display:block}.work-row-copy p{font-size:8px;margin-top:10px}.work-row-intro{font-size:11px;margin-top:14px}.work-open{font-size:8px;margin-top:0}.mobile-work-image{display:block;grid-column:1/-1;position:relative;aspect-ratio:1.25;overflow:hidden;margin-top:12px}.mobile-work-image img{transition:transform .7s}.mobile-work-image .tag{position:absolute;bottom:12px;left:12px;font-size:7px}.all-work-link{margin-top:15px}.home-capabilities{margin:0 6% 65px}.home-capabilities .intro{display:block}.home-capabilities .intro p{margin-top:16px}.capability-strip strong{font-size:27px}.home-about{margin:0 6% 65px;padding-top:28px;display:block}.home-about p{font-size:11vw}.home-about .text-link{margin-top:22px}.site-footer{padding:0 6% 18px}.footer-message{padding:40px 10px}.footer-message p{font-size:18vw;white-space:nowrap}.footer-message .spark{font-size:22px;margin-left:10px}.footer-nav{gap:16px}.footer-nav a{font-size:19px}.page-title,.about-intro .page-title{font-size:clamp(64px,20vw,96px)}.works-heading h1{font-size:clamp(48px,14.5vw,70px)}.works-heading h1 i{padding-left:12px}.works-heading>.eyebrow{font-size:7px}.detail-heading h1{font-size:14vw}.section-head h2{font-size:12vw}.contact-hero h1{font-size:23vw}.gallery-summary h2{font-size:clamp(27px,8vw,37px)}.global-motion{width:36px;height:36px;right:10px;bottom:10px}.hero-line:first-child,.hero-line.name-second{transform:none}.intro-wipe{padding:6vw}.intro-name{font-size:24vw}.intro-count{font-size:9px}.intro-caption{font-size:7px}}
.hero{display:flex;flex-direction:column}.hero-heading h1{font-size:24.8vw}.hero-heading h1>span:nth-child(2){font-size:.81em}.hero-bottom{margin-top:auto;padding-top:40px}.work-preview{background:#d6dccb}.work-preview[data-project="xy-lock"]{background:#dcddea}.work-preview[data-project="hiar"]{background:#74879f}.work-preview img{object-fit:contain}
@media(max-width:700px){.hero-heading h1{font-size:24vw}.hero-heading h1>span:nth-child(2){font-size:1.15em;margin-top:36px}.hero-deck{width:33%;bottom:0}.hero-object{aspect-ratio:1.65}.hero-bottom{margin-top:30px;padding-top:0}.object-caption{font-size:6px}.cover-controls .dot{width:22px;height:28px}.hero-heading{margin-top:42px}}
@media(prefers-reduced-motion:reduce){.intro-wipe{display:none}.motion-title .letter,.motion-title .letter:hover{transform:none;opacity:1;color:inherit}.hero-line:first-child,.hero-line.name-second{transform:none}.marquee-track{transform:none}.global-motion,.motion-toggle{display:none}}
