:root{--paper:#f3f1ec;--ink:#111111;--muted:#6b6760;--line:rgb(17 17 17 / 18%);--focus:#3d3a35;--gutter:clamp(1.125rem, 0.8rem + 1.6vw, 2.625rem)}*{box-sizing:border-box}img{max-width:100%;height:auto}body{margin:0;background:var(--paper);color:var(--ink);font-family:helvetica neue,Helvetica,Arial,sans-serif}body.menu-is-open{overflow:hidden}body.image-viewer-is-open{overflow:hidden}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.site-header,.site-footer{padding:var(--gutter)}.page-shell{padding:var(--gutter)}.site-header{display:flex;justify-content:space-between;align-items:center}.site-name,.desktop-navigation a,.menu-button,.menu-close{font-size:.78rem;letter-spacing:.09em;text-decoration:none;text-transform:uppercase}.desktop-navigation{display:flex;align-items:center;gap:1.5rem}.desktop-navigation__about{position:relative;display:flex;align-items:center}.desktop-navigation__submenu{position:absolute;z-index:20;top:calc(100% + .35rem);left:50%;display:none;min-width:8rem;padding:.7rem 1rem;transform:translateX(-50%);background:var(--paper);border:1px solid var(--line)}.desktop-navigation__submenu a{display:block;padding:.45rem 0;white-space:nowrap}.desktop-navigation__about:hover .desktop-navigation__submenu,.desktop-navigation__about:focus-within .desktop-navigation__submenu{display:block}.desktop-navigation__submenu::before{position:absolute;right:0;bottom:100%;left:0;height:.5rem;content:""}.menu-button,.menu-close{min-width:2.75rem;min-height:2.75rem;padding:0;border:0;background:0 0;color:inherit;cursor:pointer}.menu-button{display:none}.mobile-menu{position:fixed;z-index:100;inset:0;overflow-y:auto;padding:max(var(--gutter),env(safe-area-inset-top))max(var(--gutter),env(safe-area-inset-right))max(var(--gutter),env(safe-area-inset-bottom))max(var(--gutter),env(safe-area-inset-left));background:var(--paper)}.mobile-menu[hidden]{display:none}.mobile-menu__bar{display:flex;align-items:center;justify-content:space-between}.mobile-navigation{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(.35rem,1.5vh,1.25rem);padding:clamp(3rem,9vh,7rem)0 2rem}.mobile-navigation a{font-size:clamp(2.4rem,9vw,5rem);letter-spacing:-.045em;line-height:.95;text-decoration:none}a{color:inherit}a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.project-hero picture,.project-hero img,.project-support picture,.project-support img,.project-gallery picture,.project-gallery img{display:block;width:100%}.project-image-viewer-trigger{display:block;cursor:zoom-in}.project-hero .project-image-viewer-trigger{height:100%}.project-hero{height:min(82svh,62vw);min-height:28rem;overflow:hidden}.project-hero picture,.project-hero img{height:100%}.project-hero__image{object-fit:cover;object-position:var(--focal-desktop)}.project-title{padding:clamp(3rem,9vw,9rem)var(--gutter)}.eyebrow{color:var(--muted);font-size:clamp(.82rem,.78rem + .25vw,.92rem);letter-spacing:.06em;text-transform:uppercase}.project-title h1{max-width:12ch;margin:0;font-size:clamp(3.5rem,2rem + 7vw,9.5rem);font-weight:400;letter-spacing:-.045em;line-height:.9}.project-support{width:min(82%,105rem);margin:0 auto clamp(5rem,12vw,12rem)}.project-information{display:grid;grid-template-columns:minmax(0,1.2fr)minmax(18rem,.8fr);align-items:start;gap:clamp(3rem,8vw,10rem);max-width:92rem;margin:0 auto clamp(6rem,14vw,14rem);padding:0 var(--gutter);font-size:clamp(1rem,.95rem + .35vw,1.18rem);line-height:1.55}.project-facts dl{margin:0 0 2rem}.project-facts dl div{display:grid;grid-template-columns:minmax(8rem,.7fr)1fr;gap:1rem;padding:.65rem 0;border-top:1px solid var(--line)}.project-facts dt{color:var(--muted)}.project-facts dd{margin:0}.project-facts h2,.project-recognition h2{font-size:1rem;font-weight:400}.project-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gutter);margin-top:clamp(3rem,7vw,7rem)}.project-gallery__item{margin:0;align-self:center}.project-gallery__enlarge{display:block;cursor:zoom-in}.image-viewer{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:clamp(.75rem,2vw,2rem);color:#fff}.image-viewer[hidden]{display:none}.image-viewer__backdrop{position:absolute;inset:0;background:rgb(0 0 0/94%)}.image-viewer__panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr)auto;width:min(100%,100rem);height:min(100%,70rem)}.image-viewer__close,.image-viewer__controls button{min-width:2.75rem;min-height:2.75rem;border:1px solid rgb(255 255 255/55%);background:rgb(0 0 0/55%);color:inherit;cursor:pointer;font:inherit}.image-viewer__close{justify-self:end;margin-bottom:.5rem;padding:.65rem 1rem}.image-viewer__stage{display:grid;min-height:0;place-items:center;touch-action:pan-y}.image-viewer__image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.image-viewer__controls{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding-top:.75rem}.image-viewer__controls button{padding:.65rem 1rem}.image-viewer__count{margin:0;text-align:center}.image-viewer button:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(prefers-reduced-motion:no-preference){.image-viewer__image{transition:opacity 120ms ease}}.project-gallery__item--wide,.project-gallery__item--full{grid-column:1/-1}.project-recognition{max-width:55rem;margin:clamp(6rem,14vw,14rem)auto;padding:0 var(--gutter)}.project-press{max-width:92rem;margin:clamp(6rem,14vw,14rem)auto;padding:0 var(--gutter)}.project-technical-cases{max-width:92rem;margin:clamp(6rem,14vw,14rem)auto;padding:0 var(--gutter)}.project-technical-cases h2,.technical-related-work h2{font-size:1rem;font-weight:400}.project-technical-cases ul,.technical-related-work ul{margin:0;padding:0;list-style:none}.project-technical-cases a,.technical-related-work a{text-underline-offset:.2em}.technical-index__header{max-width:92rem;padding:clamp(4rem,10vw,10rem)var(--gutter)clamp(3rem,7vw,7rem)}.technical-index__header h1{max-width:12ch;margin:0;font-size:clamp(3.4rem,2rem + 6.5vw,9rem);font-weight:400;letter-spacing:-.055em;line-height:.88}.technical-index__intro{max-width:42rem;margin-top:clamp(2rem,5vw,5rem);font-size:clamp(1.1rem,.95rem + .6vw,1.55rem);line-height:1.5}.technical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2.5rem,5vw,6rem)var(--gutter);padding:0 var(--gutter)clamp(7rem,14vw,14rem)}.technical-card a{display:block;height:100%;text-decoration:none}.technical-card picture,.technical-card img{display:block;width:100%}.technical-card__text{padding-top:1rem}.technical-card--text a{display:flex;align-items:flex-end;min-height:clamp(20rem,35vw,34rem);padding:clamp(1.25rem,3vw,2.5rem);border:1px solid var(--line)}.technical-card h2{margin:0;font-size:clamp(1.7rem,1.2rem + 1.7vw,3.2rem);font-weight:400;letter-spacing:-.04em;line-height:.95}.technical-card__year,.technical-card__text>p:last-child{color:var(--muted);line-height:1.45}.technical-case-study__header{max-width:100rem;padding:clamp(5rem,12vw,12rem)var(--gutter)clamp(4rem,9vw,9rem)}.technical-case-study__header h1{max-width:13ch;margin:0;font-size:clamp(3.4rem,2rem + 6.5vw,9rem);font-weight:400;letter-spacing:-.055em;line-height:.88}.technical-case-study__summary{max-width:52rem;margin:clamp(2rem,5vw,5rem)0 0;font-size:clamp(1.25rem,1rem + 1vw,2rem);line-height:1.35}.technical-case-study__lead,.technical-case-study__support,.technical-case-study__gallery{width:min(88rem,calc(100% - 2 * var(--gutter)));margin:0 auto clamp(5rem,11vw,11rem)}.technical-case-study__lead picture,.technical-case-study__lead img,.technical-case-study__support picture,.technical-case-study__support img,.technical-case-study__gallery picture,.technical-case-study__gallery img{display:block;width:100%}.technical-case-study__support,.technical-case-study__gallery{width:min(76rem,calc(100% - 2 * var(--gutter)))}.technical-case-study__gallery figure{margin:0 0 var(--gutter)}.technical-case-study__body{max-width:58rem;margin:0 auto clamp(7rem,14vw,14rem);padding:0 var(--gutter);font-size:clamp(1rem,.95rem + .35vw,1.18rem);line-height:1.65}.technical-case-study__details{margin:0 0 clamp(4rem,9vw,8rem);border-top:1px solid var(--line)}.technical-case-study__details div{display:grid;grid-template-columns:minmax(8rem,.35fr)minmax(0,1.65fr);gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.technical-case-study__details dt{color:var(--muted)}.technical-case-study__details dd{margin:0}.technical-case-study__details a{text-underline-offset:.2em}.technical-case-study__body h2{margin:clamp(3.5rem,8vw,7rem)0 1.25rem;font-size:clamp(1.8rem,1.3rem + 1.6vw,3rem);font-weight:400;letter-spacing:-.035em;line-height:1}.technical-related-work{margin-top:clamp(4rem,9vw,8rem);padding-top:1.5rem;border-top:1px solid var(--line)}@media(max-width:64rem){.technical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-press>h2{font-size:1rem;font-weight:400}@media(max-width:48rem){.site-header{display:flex;justify-content:space-between}.desktop-navigation{display:none}.menu-button{display:block}.project-hero{height:70svh;min-height:24rem}.project-hero__image{object-position:var(--focal-mobile)}.project-support{width:calc(100% - 2 * var(--gutter))}.project-information{grid-template-columns:1fr}.project-gallery{grid-template-columns:1fr}.project-gallery__item{grid-column:1}.technical-grid{grid-template-columns:1fr}.technical-card--text a{min-height:18rem}.technical-case-study__details div{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){.mobile-menu{animation:menu-in 180ms ease-out}@keyframes menu-in{from{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:translateY(0)}}}.writing-header{max-width:92rem;padding:clamp(4rem,10vw,10rem)var(--gutter)clamp(3rem,7vw,7rem)}.writing-index__header{padding:clamp(4rem,10vw,10rem)var(--gutter)clamp(3rem,7vw,6rem)}.writing-index__header h1{margin:0;font-size:clamp(3.4rem,2rem + 6.5vw,9rem);font-weight:400;letter-spacing:-.055em;line-height:.88}.writing-index__rss{display:inline-block;margin-top:2rem;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-underline-offset:.2em;text-transform:uppercase}.writing-list{margin:0 var(--gutter)clamp(6rem,12vw,12rem);border-top:1px solid var(--line)}.writing-list__item{border-bottom:1px solid var(--line)}.writing-list__item a{display:grid;grid-template-columns:minmax(8rem,.3fr)minmax(0,1.7fr);gap:var(--gutter);align-items:baseline;padding:clamp(1.5rem,3vw,2.75rem)0;color:inherit;text-decoration:none}.writing-list__item time{color:var(--muted);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.writing-list__item h2{margin:0;font-size:clamp(1.6rem,1.25rem + 1.7vw,3.4rem);font-weight:400;letter-spacing:-.035em;line-height:1}@media(max-width:35rem){.writing-list__item a{grid-template-columns:1fr;gap:.5rem}}.writing-header h1{max-width:13ch;margin:1rem 0;font-size:clamp(3.4rem,2rem + 6.5vw,9rem);font-weight:400;letter-spacing:-.055em;line-height:.88}.writing-date{margin:1.5rem 0 0;color:var(--muted);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}.writing-deck{max-width:42rem;margin:clamp(2rem,5vw,4rem)0 0;font-size:clamp(1.3rem,1.1rem + .8vw,2rem);letter-spacing:-.025em;line-height:1.25}.writing-lead{width:min(72rem,calc(100% - 2 * var(--gutter)));margin:0 auto clamp(4rem,8vw,8rem)}.writing-lead picture,.writing-lead img{display:block;width:100%}.writing-lead figcaption{max-width:42rem;margin-top:.65rem;color:var(--muted);font-size:.78rem;line-height:1.4}.writing-inline-image{margin:2rem 0}.writing-inline-image picture,.writing-inline-image img{display:block;width:100%;height:auto}.writing-body{max-width:70ch;margin:0 auto clamp(6rem,14vw,14rem);padding:0 var(--gutter);font-family:Georgia,times new roman,Times,serif;font-size:clamp(1.125rem,1.05rem + .3vw,1.3125rem);line-height:1.65}.writing-body h2,.writing-body h3,.writing-body h4{font-family:helvetica neue,Helvetica,Arial,sans-serif;font-weight:400;letter-spacing:-.025em;line-height:1.1}.writing-body h2{margin:3.5em 0 1em;font-size:clamp(2rem,1.5rem + 1.8vw,3.4rem)}.writing-body h3{margin:2.7em 0 .8em;font-size:clamp(1.5rem,1.25rem + .8vw,2.1rem)}.writing-body h4{margin:2.4em 0 .7em;font-size:clamp(1.15rem,1.05rem + .4vw,1.45rem)}.writing-body p{margin:0 0 1.35em}.writing-body a{text-underline-offset:.16em}.writing-body blockquote{margin:2.2em 0;padding:0 0 0 1.25rem;border-left:1px solid var(--ink);font-style:italic}.writing-body blockquote p:last-child{margin-bottom:0}.press-header{display:grid;grid-template-columns:minmax(0,1.4fr)minmax(17rem,.6fr);gap:var(--gutter);align-items:end;padding:clamp(4rem,10vw,10rem)var(--gutter)clamp(4rem,9vw,9rem)}.press-header .home-prototype-label{grid-column:1/-1}.press-header h1{margin:0;font-size:clamp(4.5rem,3rem + 10vw,13rem);font-weight:400;letter-spacing:-.065em;line-height:.75}.press-header>p:last-child{max-width:30rem;margin:0;color:var(--muted);font-size:clamp(1.2rem,1rem + .7vw,1.8rem);line-height:1.3}.press-list{border-top:1px solid var(--line)}.press-item{display:grid;grid-template-columns:minmax(12rem,.55fr)minmax(0,1.45fr);gap:var(--gutter);padding:clamp(2.5rem,6vw,6rem)var(--gutter);border-bottom:1px solid var(--line)}.press-item__project{max-width:28rem;font-size:.78rem;letter-spacing:.06em;line-height:1.35;text-transform:uppercase}.press-item__project a{text-underline-offset:.2em}.press-item blockquote,.press-item footer{grid-column:2;margin:0}.press-item blockquote p{max-width:26ch;margin:0;font-family:Georgia,times new roman,Times,serif;font-size:clamp(1.5rem,1.05rem + 1.45vw,3rem);letter-spacing:-.025em;line-height:1.08}@media(min-width:48.01rem){.press-item__project{font-size:clamp(1rem,.85rem + .35vw,1.25rem)}.press-item blockquote p{font-size:clamp(1.5rem,1rem + 1vw,2.5rem)}}.press-item footer{margin-top:clamp(1.5rem,3vw,3rem);font-size:.88rem;line-height:1.45}.press-item footer p{margin:.3rem 0}.press-item cite{font-style:normal}.press-source{color:var(--muted)}.press-source a{text-underline-offset:.16em}.press-source--dead,.press-source--unchecked{font-style:italic}@media(max-width:48rem){.press-header,.press-item{grid-template-columns:1fr}.press-header .home-prototype-label,.press-item blockquote,.press-item footer{grid-column:1}}.home-identity{display:grid;grid-template-columns:minmax(0,1.5fr)minmax(18rem,.8fr);gap:var(--gutter);align-items:end;min-height:clamp(22rem,54vh,42rem);padding:clamp(4rem,10vw,10rem)var(--gutter)var(--gutter)}.home-identity h1{grid-column:1;margin:0;font-size:clamp(3.5rem,2rem + 7vw,9.5rem);font-weight:400;letter-spacing:-.055em;line-height:.85;text-transform:uppercase}.home-prototype-label{grid-column:1/-1;align-self:start;margin:0;color:var(--muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.home-statement{grid-column:2;margin:0;font-size:clamp(1.6rem,1.2rem + 2.2vw,3.4rem);letter-spacing:-.035em;line-height:1.05}.home-hero{position:relative;display:block;height:min(82svh,62vw);min-height:30rem;overflow:hidden;background:#000;color:#fff}.home-hero picture,.home-hero img{display:block;width:100%;height:100%}.home-hero__image{object-fit:cover;object-position:var(--focal-desktop,50% 50%)}.home-hero__caption{position:absolute;right:var(--gutter);bottom:var(--gutter);padding:.35rem .5rem;background:rgb(0 0 0/.8);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.prototype-notice{margin:0;padding:var(--gutter);color:var(--muted);font-size:.8rem}@media(max-width:48rem){.home-identity{grid-template-columns:minmax(0,1fr);min-height:auto;padding-top:clamp(4rem,18vh,8rem)}.home-identity h1,.home-statement{grid-column:1;min-width:0}.home-identity h1{font-size:clamp(3rem,13vw,5rem)}.home-statement{overflow-wrap:anywhere}.home-hero{height:70svh;min-height:28rem}.home-hero__image{object-position:var(--focal-mobile,50% 50%)}}.career-page{padding-block:clamp(4rem,9vw,8rem)}.cv-actions{display:flex;flex-wrap:wrap;gap:.75rem var(--gutter);margin-top:1.5rem}.career-group{margin-top:clamp(3rem,7vw,6rem)}.cv-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem;cursor:pointer;list-style:none}.cv-disclosure summary::-webkit-details-marker{display:none}.cv-disclosure summary h2{margin:0}.cv-disclosure__state::after{content:"Open";color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.cv-disclosure[open] .cv-disclosure__state::after{content:"Close"}.cv-disclosure summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.career-list{margin:0;padding:0;list-style:none}.career-list li{display:grid;grid-template-columns:minmax(7rem,.3fr)1fr;gap:var(--gutter);padding:1rem 0;border-top:1px solid var(--line)}.career-date{color:var(--muted)}.career-entry{min-width:0}.career-detail{display:block;margin-top:.25rem;color:var(--muted)}.career-entry a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.16em}.contact-page{padding-block:clamp(4rem,9vw,8rem)}.contact-details{margin-top:clamp(2.5rem,6vw,5rem);font-style:normal}.contact-details p{display:grid;grid-template-columns:minmax(7rem,.3fr)1fr;gap:var(--gutter);margin:0;padding:1rem 0;border-top:1px solid var(--line)}.contact-details span{color:var(--muted)}.contact-details a{color:inherit;overflow-wrap:anywhere;text-underline-offset:.16em}.site-footer{display:flex;justify-content:space-between;gap:var(--gutter)}.site-footer a{color:inherit;text-underline-offset:.16em}@media(max-width:40rem){.career-list li{grid-template-columns:1fr;gap:.25rem}.contact-details p{grid-template-columns:1fr;gap:.25rem}}@media print{.cv-actions,.cv-disclosure__state{display:none}.cv-disclosure:not([open])>:not(summary){display:block!important}}.work-index__header{display:grid;grid-template-columns:minmax(0,1.5fr)minmax(16rem,.6fr);gap:var(--gutter);align-items:end;padding:clamp(4rem,10vw,9rem)var(--gutter)clamp(3rem,7vw,7rem)}.work-index__header .home-prototype-label{grid-column:1/-1}.work-index__header h1{margin:0;font-size:clamp(3.5rem,2rem + 7vw,9.5rem);font-weight:400;letter-spacing:-.055em;line-height:.85}.work-index__header>p:last-child{max-width:34rem;margin:0;color:var(--muted);line-height:1.5}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.25rem,5vw,6rem)var(--gutter);padding:0 var(--gutter)}.work-filters{display:flex;overflow-x:auto;margin:0 var(--gutter)clamp(3rem,6vw,6rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.work-filters button{flex:1 0 auto;min-height:3.25rem;padding:.75rem clamp(.75rem,1.5vw,1.5rem);border:0;border-right:1px solid var(--line);background:0 0;color:inherit;cursor:pointer;font:inherit;font-size:.72rem;letter-spacing:.045em;text-transform:uppercase}.work-filters button:last-of-type{border-right:0}.work-filters button:hover,.work-filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.work-filters button:focus-visible{outline:3px solid var(--focus);outline-offset:-5px}.work-card[hidden]{display:none}.work-card{align-self:stretch}.work-card a{display:grid;grid-template-rows:auto minmax(0,1fr)auto;height:100%;text-decoration:none}.work-card picture,.work-card img{display:block;width:100%}.work-card picture{aspect-ratio:3/2;overflow:hidden}.work-card__image{height:100%;object-fit:cover;object-position:var(--focal-index,50% 50%)}.work-card__media-note{display:grid;aspect-ratio:3/2;margin:0;place-items:center;border:1px solid var(--line);color:var(--muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.work-card h2{margin:.75rem 0 0;font-size:clamp(1rem,.9rem + .35vw,1.3rem);font-weight:400;line-height:1.15}.work-card__year{margin:.3rem 0 0;color:var(--muted);font-size:.82rem}@media(min-width:64rem){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:35rem){.work-index__header,.work-grid{grid-template-columns:1fr}.work-index__header .home-prototype-label{grid-column:1}}.not-found{display:grid;grid-template-columns:minmax(0,1.45fr)minmax(17rem,.55fr);gap:var(--gutter);align-items:end;min-height:calc(100svh - 12rem);padding:var(--gutter)}.not-found__code{margin:0;font-size:clamp(8rem,30vw,32rem);font-weight:400;letter-spacing:-.085em;line-height:.68}.not-found__message h1{margin:0 0 1rem;font-size:clamp(2.2rem,1.6rem + 2vw,4rem);font-weight:400;letter-spacing:-.04em;line-height:.95}.not-found__message p{max-width:28rem;color:var(--muted);line-height:1.5}.not-found__message nav{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:2rem}.not-found__message a{padding-bottom:.2rem;border-bottom:1px solid;text-decoration:none}@media(max-width:48rem){.not-found{grid-template-columns:1fr;align-content:space-between;align-items:start;min-height:calc(100svh - 8rem)}}