@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap');
:root{--red:#ed302a;--ink:#252624;--grey:#89877c;--paper:#faf9f6;--line:#d5d3cd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Open Sans',Arial,sans-serif;font-size:16px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:6px}button{border:0;background:none}img{display:block;width:100%;object-fit:cover}p{margin:0 0 1.2em}h1,h2{margin:0;font-weight:400;letter-spacing:-.065em;line-height:1.03}h2{font-size:clamp(48px,6.5vw,112px)}em,i{font-family:Georgia,serif;font-weight:400}::selection{background:var(--red);color:white}.section{padding:100px 5vw}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:12px;letter-spacing:.13em;margin-bottom:70px}.eyebrow{font-size:12px;letter-spacing:.12em}.accent{color:var(--red)}.red-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red)}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:white;padding:10px}.skip:focus{top:15px}.reading-progress{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:70}header{position:absolute;top:0;left:0;width:100%;padding:26px 5vw;display:flex;align-items:center;gap:5vw;z-index:30;color:white}.brand{display:block;width:100px;background:white;flex-shrink:0}.brand img{height:89px;object-fit:contain}.header-location{font-size:12px;line-height:1.5;letter-spacing:.04em}header nav{display:flex;gap:35px;margin-left:auto;font-size:14px}header nav a{position:relative}header nav a:after{content:'';position:absolute;bottom:-7px;left:0;width:100%;height:1px;background:white;transform:scaleX(0);transform-origin:left;transition:.3s}header nav a:hover:after{transform:scaleX(1)}header .red-dot{margin-left:12px}.menu-button{display:none}.mobile-menu{display:none}.hero{height:100svh;min-height:740px;position:relative;overflow:hidden;background:#333;color:white}.hero-media,.hero-shade{position:absolute;inset:0}.hero-media img{height:100%;transform:scale(1.05);transition:opacity .4s,transform 2s;object-position:50% 55%}.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.12) 35%,rgba(0,0,0,.6))}.hero-heading{position:relative;padding:180px 5vw 0}.hero-heading .eyebrow{margin-bottom:24px}.hero h1{font-size:clamp(90px,12.8vw,210px);line-height:.82;letter-spacing:-.075em}.hero h1 span{display:block;overflow:hidden}.hero h1 span:nth-child(2){margin-left:21vw}.hero h1 span:nth-child(3){margin-left:8vw}.hero h1 i{letter-spacing:-.07em}.hero-bottom{position:absolute;bottom:60px;left:5vw;right:5vw;display:flex;align-items:end;justify-content:space-between}.hero-bottom p{margin:0;font-size:17px;line-height:1.5}.hero-switch{display:flex;gap:16px;margin-top:15px}.hero-switch button{font-size:14px;opacity:.6;border-bottom:1px solid transparent;padding:4px 13px}.hero-switch button.active{opacity:1;border-color:white}.scroll-link{font-size:14px;display:flex;gap:20px;align-items:center}.scroll-mark{border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;width:45px;height:45px}.hero-credit{position:absolute;bottom:17px;right:5vw;font-size:12px;color:#ddd}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}.practice-copy h2{margin-bottom:45px}.intro-body{max-width:420px;margin-left:8vw}.intro-body p{font-size:17px}.intro-body p+p{color:#65655f;font-size:16px}.text-link{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding:14px 0;font-size:14px;margin-top:35px;gap:22px}.text-link span{font-size:26px;color:var(--red)}.practice-image{position:relative;margin:0;padding-top:20px}.practice-image img{height:610px}.practice-image figcaption{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.05em;margin-top:15px;gap:15px}.image-tag{position:absolute;left:-35px;bottom:75px;background:var(--paper);padding:26px 32px;font-size:27px;line-height:1.15}.work{background:#eae8e2;padding-bottom:55px}.work-heading{padding-bottom:50px}.work-title{display:flex;justify-content:space-between;align-items:end}.work-title p{max-width:360px;color:#62615b;font-size:16px;margin-bottom:5px}.gallery-stage{overflow:hidden}.gallery-track{display:flex;gap:3vw;padding:0 5vw;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.gallery-track::-webkit-scrollbar{display:none}.project-card{display:block;flex:0 0 66vw;padding:0;text-align:left;scroll-snap-align:center}.project-image{display:block;position:relative;overflow:hidden;height:480px}.project-image img{height:100%;transition:transform 1s}.project-card:hover img{transform:scale(1.05)}.project-open{position:absolute;right:25px;bottom:25px;background:var(--paper);border-radius:50%;width:55px;height:55px;display:grid;place-items:center;font-size:29px;transition:background .3s,color .3s}.project-card:hover .project-open{background:var(--red);color:white}.project-caption{display:flex;justify-content:space-between;align-items:end;margin-top:24px;gap:20px}.project-caption small{display:block;font-size:12px;letter-spacing:.1em}.project-caption strong{display:block;font-size:34px;line-height:1.4;font-weight:400;letter-spacing:-.04em}.project-caption>span+span{font-size:14px;color:#68675f}.gallery-controls{display:flex;justify-content:space-between;align-items:center;padding:35px 5vw 0}.gallery-controls button{border:1px solid #aaa69a;border-radius:50%;height:45px;width:45px;margin-left:10px;transition:.3s}.gallery-controls button:hover{background:var(--red);border-color:var(--red);color:white}.interlude{height:85svh;min-height:540px;position:relative;overflow:hidden;color:white}.interlude>img{height:120%;position:absolute;top:-10%;object-position:center}.interlude-overlay{position:absolute;inset:0;background:#0006}.interlude-copy{position:absolute;left:8vw;top:50%;transform:translateY(-50%);width:80%}.interlude-copy>p{font-size:clamp(64px,9vw,150px);line-height:1.03;letter-spacing:-.065em;margin:24px 0 35px}.light-link{display:flex;gap:35px;align-items:center;font-size:14px}.light-link span{font-size:28px}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.approach-intro{max-width:420px;margin-top:40px;color:#66665e}.circle-link{border:1px solid var(--red);border-radius:50%;height:125px;width:125px;display:flex;justify-content:space-between;align-items:center;padding:25px;color:var(--red);margin-top:40px;line-height:1.3;transition:.4s}.circle-link:hover{background:var(--red);color:white;transform:rotate(-8deg)}details{border-top:1px solid var(--line);padding:22px 0}details:last-of-type{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;gap:22px;list-style:none;font-size:37px;letter-spacing:-.04em;cursor:pointer}summary::-webkit-details-marker{display:none}summary>span:first-child{font-size:12px;letter-spacing:0;color:var(--red);margin-right:8px}.plus{margin-left:auto;font-size:28px;transition:.3s}details[open] .plus{transform:rotate(45deg);color:var(--red)}details p{padding:24px 0 0 50px;color:#66665e;margin-bottom:6px}.services{padding:40px 0 0}.services p{margin-top:18px;font-size:16px}.contact{background:var(--red);color:var(--paper);padding-bottom:65px}.contact .section-label{border-color:#ffffff60}.contact-heading{display:flex;justify-content:space-between;align-items:center}.contact h2{font-size:clamp(65px,9vw,150px)}.contact-disc{height:180px;width:180px;border:1px solid #fff9;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;transition:.4s;flex-shrink:0}.contact-disc span{font-size:35px}.contact-disc:hover{background:var(--paper);color:var(--red);transform:rotate(-8deg)}.contact-details{border-top:1px solid #ffffff60;margin-top:70px;padding-top:30px;display:flex;justify-content:space-between;gap:25px;font-size:16px}.contact-details a{display:block}.contact-details a:hover{text-decoration:underline}footer{display:flex;align-items:center;gap:4vw;padding:45px 5vw 35px;flex-wrap:wrap}.footer-brand{width:90px}footer p{margin:0;font-size:17px}footer>div{margin-left:auto;display:flex;gap:30px;font-size:14px}footer small{flex-basis:100%;font-size:12px;color:#77766f;border-top:1px solid var(--line);padding-top:20px;margin-top:10px}.loader{position:fixed;inset:0;background:var(--paper);z-index:90;display:flex;flex-direction:column;justify-content:center;padding:8vw;transition:transform 1s cubic-bezier(.75,0,.15,1);pointer-events:none}.loader img{position:absolute;left:5vw;top:30px;width:100px;height:100px;object-fit:contain}.loader-words{font-size:clamp(62px,11vw,170px);letter-spacing:-.06em;line-height:1}.loader-words span{display:block;animation:loader-word 1.2s both}.loader-words span:nth-child(2){color:var(--red);padding-left:15vw;animation-delay:.2s}.loader-words span:nth-child(3){padding-left:30vw;animation-delay:.4s}.loader-bottom{position:absolute;bottom:40px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em}#load-count{font-size:22px}.loader-line{position:absolute;bottom:0;left:0;height:5px;background:var(--red);width:100%;transform:scaleX(0);transform-origin:left;animation:load-line 1.9s ease forwards}body.loaded .loader{transform:translateY(-105%)}body.loaded .hero-media img{transform:scale(1)}.cursor{position:fixed;left:0;top:0;width:18px;height:18px;border:1px solid var(--red);border-radius:50%;pointer-events:none;z-index:100;display:none;align-items:center;justify-content:center;transition:width .2s,height .2s,background .2s;color:white;font-size:12px}.cursor.large{width:75px;height:75px;background:var(--red)}.cursor span{display:none}.cursor.large span{display:block}.reveal{transition:opacity .8s,translate 1s}.js .reveal{opacity:0;translate:0 32px}.js .reveal.visible{opacity:1;translate:0 0}dialog{width:min(1050px,90vw);max-height:90svh;padding:0;border:0;background:var(--paper);color:var(--ink);overflow:auto}dialog::backdrop{background:#151514cc;backdrop-filter:blur(8px)}dialog>img{height:50svh;min-height:260px}.dialog-close{position:absolute;right:18px;top:18px;background:var(--paper);padding:8px 20px;font-size:14px}.dialog-copy{padding:40px}.dialog-copy h2{font-size:60px;margin:15px 0 24px}.dialog-copy p{max-width:730px}.credit{font-size:12px;color:#777}.dialog-copy .text-link{max-width:350px}@keyframes loader-word{from{opacity:0;transform:translateY(50%)}to{opacity:1;transform:translateY(0)}}@keyframes load-line{to{transform:scaleX(1)}}
@media(hover:hover) and (pointer:fine){body.cursor-ready,body.cursor-ready a,body.cursor-ready button,body.cursor-ready summary{cursor:none}.cursor-ready .cursor{display:flex}}
@media(min-width:1600px){.hero-heading{padding-top:190px}.hero h1{font-size:clamp(170px,11vw,210px)}}
@media(max-width:1000px){header nav{gap:22px}.header-location{display:none}.hero{min-height:680px}.hero h1{font-size:15vw}.hero-heading{padding-top:175px}.practice-image img{height:500px}.intro-body{margin-left:0}.practice-grid{gap:5vw}.practice-image figcaption{flex-direction:column;gap:3px}.approach-grid{gap:6vw}.project-image{height:390px}.contact-disc{width:145px;height:145px}}
@media(max-width:700px){html{scroll-padding-top:25px}.section{padding:65px 6vw}.section-label{margin-bottom:40px;font-size:12px;gap:15px}.section-label span:last-child{text-align:right;max-width:145px}header{padding:18px 6vw}.brand{width:76px}.brand img{height:72px}header nav{display:none}.menu-button{display:flex;margin-left:auto;align-items:center;gap:12px;color:white;font-size:14px}.menu-button span{font-size:25px}.menu-open header{position:fixed}.menu-open .menu-button{color:var(--ink)}.menu-open .menu-button span{transform:rotate(45deg)}.mobile-menu{display:flex;position:fixed;inset:0;background:var(--paper);z-index:25;padding:140px 6vw 35px;flex-direction:column;justify-content:space-between;transform:translateY(-105%);transition:transform .6s}.menu-open .mobile-menu{transform:translateY(0)}.mobile-menu nav a{display:flex;font-size:clamp(34px,9vw,55px);letter-spacing:-.05em;line-height:1.25;padding:15px 0;border-bottom:1px solid var(--line);justify-content:space-between}.mobile-menu small{font-size:12px;color:var(--red);letter-spacing:0}.hero{min-height:680px;max-height:950px}.hero-heading{padding:180px 6vw 0}.hero h1{font-size:24vw;line-height:.95}.hero h1 span:nth-child(2){margin-left:10vw}.hero h1 span:nth-child(3){margin-left:4vw}.hero-heading .eyebrow{font-size:12px;letter-spacing:.06em;margin-bottom:30px}.hero-media img{object-position:60% center}.hero-bottom{bottom:60px;left:6vw;right:6vw;display:grid;grid-template-columns:1fr 1fr;gap:24px}.hero-bottom p{font-size:15px}.hero-project{text-align:right}.hero-project .eyebrow{font-size:12px;letter-spacing:.02em}.hero-switch{justify-content:end;gap:4px;margin-top:8px}.hero-switch button{padding:3px 9px}.scroll-link{grid-column:1/-1;justify-content:space-between;font-size:14px}.scroll-mark{width:35px;height:35px}.hero-credit{right:6vw}.practice-grid{grid-template-columns:1fr;gap:35px}.practice-copy h2{font-size:16vw;margin-bottom:30px}.intro-body{max-width:none}.practice-image{padding:0}.practice-image img{height:470px}.practice-image figcaption{flex-direction:row;font-size:12px;gap:15px}.image-tag{left:-10px;bottom:70px;padding:20px;font-size:25px}.work-heading{padding-bottom:35px}.work-title{display:block}.work-title h2{font-size:17vw}.work-title p{margin-top:28px}.project-card{flex-basis:85vw}.gallery-track{padding:0 6vw;gap:5vw}.project-image{height:360px}.project-caption{margin-top:18px}.project-caption strong{font-size:28px}.project-caption>span+span{font-size:12px}.gallery-controls{padding:25px 6vw 0;gap:15px}.gallery-controls .eyebrow{max-width:175px;font-size:12px;letter-spacing:.03em}.gallery-controls>div{display:flex}.gallery-controls button{width:39px;height:39px;margin-left:7px}.interlude{height:650px;min-height:0}.interlude-copy{left:6vw;width:88%}.interlude-copy>p{font-size:19vw}.approach-grid{grid-template-columns:1fr;gap:50px}.approach h2{font-size:15vw}.approach-intro{margin-top:30px}.circle-link{width:105px;height:105px;padding:20px}summary{font-size:34px}details p{padding-left:0}.contact-heading{display:block}.contact h2{font-size:17vw}.contact-disc{width:115px;height:115px;margin-top:30px;gap:3px;font-size:14px}.contact-disc span{font-size:25px}.contact-details{margin-top:40px;display:block;padding-top:25px}.contact-details>div{margin-bottom:22px}.contact-details a{font-size:clamp(14px,4.3vw,20px)}footer{padding:30px 6vw;gap:25px}footer p{font-size:14px}footer>div{margin:0;flex-basis:100%;gap:22px;font-size:14px;justify-content:space-between}footer small{font-size:12px}.loader{padding:6vw}.loader-words{font-size:18vw}.loader-words span:nth-child(2){padding-left:8vw}.loader-words span:nth-child(3){padding-left:17vw}.loader img{width:76px;height:76px;left:6vw;top:18px}dialog{width:94vw}.dialog-copy{padding:26px}.dialog-copy h2{font-size:46px}dialog>img{height:35svh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.loader{display:none}.js .reveal{opacity:1;translate:none}.hero-media img{transform:none}.cursor{display:none!important}body.cursor-ready,body.cursor-ready a,body.cursor-ready button,body.cursor-ready summary{cursor:auto}.interlude>img{height:100%;top:0;transform:none!important}}

@media(min-width:1001px) and (prefers-reduced-motion:no-preference){.gallery-runway{height:250vh}.gallery-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center}.gallery-track{scroll-snap-type:none;overflow:hidden}.project-image{height:min(56vh,600px)}.gallery-controls{padding-top:25px}}

@media(min-width:701px){.hero h1{font-size:clamp(90px,min(12.8vw,17vh),210px)}}
@media(prefers-reduced-motion:no-preference){body.loaded .hero h1 span{animation:hero-type 1.1s cubic-bezier(.2,.65,.2,1) both}body.loaded .hero h1 span:nth-child(2){animation-delay:.12s}body.loaded .hero h1 span:nth-child(3){animation-delay:.24s}}
@keyframes hero-type{from{clip-path:inset(100% 0 0);transform:translateY(25px)}to{clip-path:inset(0);transform:translateY(0)}}
