@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-500.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/fonts/dm-sans-600.ttf") format("truetype");font-weight:600 900;font-display:swap}
:root{--paper:#f3f0e8;--ink:#11110f;--muted:#66635c;--accent:#a93223;--line:#c9c6bc;--gutter:clamp(24px,4.15vw,80px);color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
body.dialog-open{overflow:hidden}
::selection{background:var(--accent);color:var(--paper)}
a{color:inherit;text-decoration:none}
button,summary{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;border:0;border-radius:0;background:none;cursor:pointer}
a,button,summary{touch-action:manipulation}
:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
main:focus{outline:none}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3{margin:0}
h1,h2,h3{font-family:"DM Sans",sans-serif;font-weight:500;line-height:1;letter-spacing:-.065em}
em{font-style:normal;font-weight:600}
[hidden]{display:none!important}
.shell{width:100%;max-width:1760px;margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:"DM Sans",sans-serif;font-size:10px;font-weight:500;line-height:1.55;letter-spacing:.12em;text-transform:uppercase}
.accent{color:var(--accent)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:12px;z-index:50;background:var(--ink);color:var(--paper);padding:14px 22px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.header{height:123px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.wordmark{display:inline-flex;align-items:center;gap:16px;color:var(--ink);flex-shrink:0}
.wordmark-name{font-family:"DM Sans",sans-serif;font-size:70px;font-weight:600;line-height:.9;letter-spacing:-.095em}
.wordmark-dot{margin-left:.015em;color:var(--accent)}
.wordmark-description{padding-top:9px;font-size:9px;letter-spacing:.16em;line-height:1.45;font-weight:600}
.navigation{display:flex;align-items:center;gap:clamp(14px,1.8vw,28px);font-size:11px}
.navigation a{display:inline-flex;align-items:center;min-height:44px;position:relative}
.navigation a:hover{color:var(--accent)}
.navigation .nav-contact{gap:18px;margin-left:8px;border-bottom:1px solid var(--ink)}
.nav-contact span{font-size:21px}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:.8fr 1.4fr;gap:clamp(28px,4vw,68px);padding-top:18px}
.hero-copy{display:flex;align-items:flex-start;flex-direction:column;padding-top:20px}
.hero h1{font-size:clamp(78px,8.2vw,144px);margin:34px 0 0;line-height:.9;letter-spacing:-.07em}
.hero h1 em{color:inherit}
.hero-introduction{margin-top:36px;max-width:228px}
.hero-introduction p{font-size:14px;line-height:1.65}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:46px;font-size:12px;border-bottom:1px solid currentColor;line-height:1.45;transition:color .2s}
.text-link span{font-size:22px;line-height:1;flex-shrink:0;transition:transform .2s}
.text-link:hover span{transform:translate(3px,-2px)}
.text-link:hover{color:var(--accent)}
.hero-introduction .text-link{margin-top:20px}
.hero-location{margin-top:auto;padding-top:42px;padding-bottom:43px;font-size:9px}
.hero-location span{color:var(--muted);letter-spacing:.04em;text-transform:none;font-size:11px}
.hero-figure{min-width:0}
.hero-image{display:block;position:relative;overflow:hidden;background:#d3c9b9;height:clamp(480px,44vw,735px)}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.hero-image:hover img{transform:scale(1.025)}
.image-open{position:absolute;bottom:24px;right:24px;display:flex;align-items:center;gap:32px;background:var(--paper);font-size:11px;padding:12px 17px}
.image-open span{font-size:20px}
figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:15px;font-size:10px;padding-top:15px}
.hero-figure figcaption{padding-top:15px}
figcaption>span:last-child{color:var(--muted)}
.index-number{color:var(--accent);margin-right:12px}
.discipline-strip{display:flex;align-items:center;gap:30px;margin-top:43px;position:relative;padding-block:20px;font-size:13px}
.discipline-strip::before,.discipline-strip::after{content:"";position:absolute;left:var(--gutter);right:var(--gutter);height:1px;background:var(--line)}
.discipline-strip::before{top:0}.discipline-strip::after{bottom:0}
.discipline-strip p{margin-left:auto;color:var(--muted);font-size:10px}
.discipline-strip p span{display:inline-block;font-size:9px;line-height:1.6;letter-spacing:.035em;text-transform:none;font-weight:400}
.introduction{padding-top:119px;padding-bottom:126px;display:grid;grid-template-columns:1.5fr 1fr;column-gap:12%}
.section-index{grid-column:1/-1;margin-bottom:25px;color:var(--accent)}
.introduction h2{font-size:clamp(40px,4.5vw,76px);line-height:1.03}
.introduction-copy{max-width:310px;margin-top:7px;font-size:14px;line-height:1.85;align-self:center}
.section-rule{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:19px}
.section-rule>span{color:var(--muted);text-align:right}
.work-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-top:43px;padding-bottom:47px}
.work-heading h2{font-size:clamp(60px,6.5vw,102px)}
.filters{display:flex;align-items:center;gap:20px;padding-bottom:6px}
.filters button{font-size:11px;padding:12px 0;min-height:44px;border-bottom:1px solid transparent;color:var(--muted);white-space:nowrap}
.filters button[aria-pressed="true"]{color:var(--accent);border-color:var(--accent)}
.filters button:hover{color:var(--accent)}
.filters sup{font-size:8px;margin-left:4px}
.project-grid{display:grid;grid-template-columns:1.42fr 1fr;column-gap:8%;row-gap:66px;align-items:start}
.project-card-offset{padding-top:130px}
.project-grid.is-filtered .project-card-offset{padding-top:0}
.project-link{display:block}
.project-image{overflow:hidden;position:relative;background:#dedad0;aspect-ratio:1.26}
.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.project-image-portrait{aspect-ratio:.78}
.project-image-wide{aspect-ratio:1.55}
.project-image-square{aspect-ratio:.95}
.project-link:hover .project-image img{transform:scale(1.035)}
.project-open{position:absolute;bottom:20px;right:20px;width:48px;height:48px;display:grid;place-content:center;background:var(--paper);color:var(--ink);font-size:25px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.project-link:hover .project-open,.project-link:focus-visible .project-open{opacity:1;transform:none}
.project-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:22px}
.project-caption .eyebrow{color:var(--muted);font-size:9px;letter-spacing:.085em}
.project-caption h3{font-size:clamp(28px,2.8vw,46px);margin-top:10px;line-height:1.08}
.project-caption-arrow{color:var(--accent);font-size:26px;flex-shrink:0}
.work-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:76px;padding-bottom:100px}
.work-bottom p{font-size:12px;color:var(--muted)}
.approach{background:var(--ink);color:var(--paper);padding:52px 0 100px}
.approach .section-rule{border-color:#5d5c53}
.approach .section-rule>span{color:#bab8ad}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:63px}
.approach h2{font-size:clamp(46px,5.6vw,91px);line-height:.98}
.approach h2 em{color:inherit}
.approach-copy>p{font-size:13px;line-height:1.8;max-width:270px;margin-top:30px;color:#d1cfc4}
.approach-copy .text-link{margin-top:32px}
.approach .text-link:hover{color:#d5bd9f}
.approach :focus-visible{outline-color:var(--paper)}
.services{padding-top:3px}
.services details{border-bottom:1px solid #5d5c53}
.services details:first-child{border-top:1px solid #5d5c53}
.services summary{display:flex;align-items:center;gap:25px;min-height:88px;cursor:pointer;list-style:none}
.services summary::-webkit-details-marker{display:none}
.services summary h3{font-size:42px;letter-spacing:-.025em}
.service-number{font-size:10px;color:#c2c0b4}
.details-icon{margin-left:auto;width:14px;height:14px;position:relative}
.details-icon::before,.details-icon::after{content:"";width:14px;height:1px;background:currentColor;position:absolute;top:6px;left:0}
.details-icon::after{transform:rotate(90deg)}
details[open] .details-icon::after{transform:rotate(0)}
.service-body{padding:0 20px 27px 39px;font-size:13px;line-height:1.8;max-width:450px;color:#d1cfc4}
.service-body .service-notes{font-size:9px;color:#aaa79d;margin-top:18px;line-height:1.8}
.studio{padding-top:77px;padding-bottom:108px}
.studio-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:10%;padding-top:54px;align-items:center}
.studio-image{position:relative;overflow:hidden;background:#dedad0}
.studio-grid figure>img,.studio-image img{width:100%;aspect-ratio:.98;object-fit:cover;object-position:40% 50%;transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.studio-gallery:hover img,.studio-gallery:focus-visible img{transform:scale(1.025)}
.studio figcaption{font-size:9px}
.studio-copy{padding-top:15px}
.studio-copy h2{font-size:clamp(55px,5.85vw,94px);margin-top:26px;line-height:.97}
.studio-copy>p:not(.eyebrow){max-width:310px;font-size:13px;line-height:1.85;margin-top:26px}
.studio-copy>p+p:not(.eyebrow){margin-top:15px}
.studio-copy .text-link{margin-top:25px}
.contact{background:var(--ink);color:var(--paper);padding-top:37px;padding-bottom:47px}
.contact .section-rule{border-color:#55534c}
.contact .section-rule>span{color:var(--paper)}
.contact-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:39px}
.contact-heading h2{font-size:clamp(70px,9vw,142px);line-height:.9;letter-spacing:-.07em}
.contact-heading>span{font-size:clamp(78px,10vw,150px);font-weight:400;line-height:1;transition:transform .3s}
.contact-heading:hover>span{transform:translate(9px,-9px)}
.contact-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-top:45px}
.contact-bottom>p{font-size:12px;line-height:1.7}
.contact .text-link:hover{color:var(--accent)}
.contact :focus-visible{outline-color:var(--paper)}
.footer{padding-top:55px;padding-bottom:23px}
.footer-main{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:40px;padding-bottom:52px;align-items:start}
.footer-main .wordmark{justify-self:start}
.footer-main>div>a{display:block;min-height:30px;padding:5px 0;font-size:12px}
.footer-main>div>a:hover{color:var(--accent)}
.footer-main .eyebrow{color:var(--muted);font-size:9px;margin-bottom:12px}
.footer-hours{color:var(--muted);font-size:10px;margin-top:9px}
.footer-bottom{border-top:1px solid var(--line);padding-top:18px;display:flex;gap:24px;justify-content:space-between;font-size:9px;color:var(--muted)}
.project-dialog{width:min(1380px,calc(100% - 64px));max-width:none;max-height:calc(100dvh - 64px);border:0;padding:25px 32px 32px;background:var(--paper);color:var(--ink);overscroll-behavior:contain}
.project-dialog::backdrop{background:rgb(20 20 15 / .8);backdrop-filter:blur(6px)}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:24px}
.dialog-close{font-size:12px;min-height:44px;display:flex;align-items:center;gap:20px;padding:5px 8px}
.dialog-close span{font-size:26px}
.dialog-content{display:grid;grid-template-columns:1.5fr 1fr;gap:42px;align-items:center}
.dialog-media{min-width:0}
.dialog-image{width:100%;height:clamp(270px,49vh,600px);object-fit:contain;background:#e4e1d8}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;padding-top:12px}
.gallery-controls button{width:48px;height:44px;border:1px solid var(--line);font-size:23px}
.gallery-controls button:hover{background:var(--ink);color:var(--paper)}
.gallery-counter{font-size:11px}
.dialog-copy h2{font-size:clamp(40px,4.5vw,70px);margin:18px 0 22px}
.dialog-description{font-size:13px;line-height:1.8;max-width:330px}
.dialog-credits{display:grid;grid-template-columns:auto 1fr;gap:7px 15px;font-size:11px;margin:28px 0}
.dialog-credits dt{color:var(--muted)}
.dialog-credits dd{margin:0}
.dialog-copy .text-link{font-size:11px}
.dialog-photo-credit{font-size:9px;color:var(--muted);margin-top:28px}
@media(min-width:1600px){.hero-introduction{max-width:260px}.hero-introduction p{font-size:16px}.hero h1{margin-top:44px}}
@media(max-width:1100px){.navigation{gap:16px}.navigation .nav-contact{margin-left:0;gap:16px}.hero{grid-template-columns:.85fr 1.2fr;gap:28px}.hero h1{font-size:clamp(74px,9vw,116px)}.hero-image{height:540px}.hero-location{padding-bottom:38px}.introduction{column-gap:7%;grid-template-columns:1.4fr 1fr}.project-grid{column-gap:6%}.project-card-offset{padding-top:90px}.approach-grid{gap:7%}.studio-grid{gap:7%}.studio-copy .eyebrow{font-size:9px}.studio-copy .text-link{font-size:11px;gap:18px}.dialog-content{gap:28px;grid-template-columns:1.2fr 1fr}}
@media(max-width:850px){.header{height:107px;gap:24px}.wordmark-name{font-size:59px}.wordmark-description{font-size:8px;gap:12px}.navigation{gap:18px;font-size:11px}.navigation .nav-contact{gap:10px}.hero h1{font-size:clamp(74px,11vw,94px);margin-top:30px}.hero-image{height:500px}.hero-introduction{max-width:195px}.hero-location{padding-top:30px}.introduction{padding-block:85px;gap:24px 6%}.section-index{margin-bottom:0}.introduction-copy{font-size:12px}.work-heading h2{font-size:68px}.work-heading{gap:20px}.filters{gap:15px}.project-caption .eyebrow{font-size:8px}.work-bottom{padding-bottom:80px}.approach{padding-bottom:75px}.approach-grid{gap:6%}.approach h2{font-size:52px}.studio-copy h2{font-size:58px}.studio-copy>p:not(.eyebrow){font-size:12px}.studio figcaption{flex-direction:column;gap:3px}.project-dialog{width:calc(100% - 40px);padding:18px 24px 28px}.dialog-content{grid-template-columns:1fr;gap:22px}.dialog-image{height:42dvh}.dialog-copy h2{margin-top:12px}.dialog-description{max-width:none}.dialog-credits{margin-block:18px}.dialog-photo-credit{margin-top:20px}}
@media(max-width:700px){:root{--gutter:20px}html{scroll-padding-top:20px}.header{height:auto;min-height:92px;position:relative;flex-wrap:wrap;gap:0 24px;padding-block:18px}.wordmark-name{font-size:57px}.wordmark{gap:13px}.wordmark-description{font-size:8px;padding-top:7px}.menu-toggle:not([hidden]){display:flex;align-items:center;gap:20px;min-height:44px;font-size:12px;padding:5px 0 5px 14px}.menu-toggle>span{font-size:23px}.navigation{width:100%;flex-wrap:wrap;gap:0 22px;padding-top:20px;font-size:12px}.js-ready .navigation{display:none}.js-ready .navigation.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:23px 0 5px}.navigation a{padding-block:12px}.navigation .nav-contact{justify-content:space-between;border-bottom:0;margin-left:0}.hero{padding-top:16px;grid-template-columns:1fr;gap:28px}.hero-copy{padding-top:0;display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.hero-copy>.eyebrow:first-child{font-size:9px;grid-column:1/-1}.hero-copy>.eyebrow:first-child br{display:none}.hero h1{grid-column:1/-1;font-size:clamp(72px,17vw,108px);margin:27px 0 0;line-height:.9}.hero h1 em{white-space:nowrap}.hero-introduction{grid-column:1/-1;max-width:none;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.hero-introduction p{font-size:12px;max-width:176px;line-height:1.65}.hero-introduction .text-link{font-size:10px;gap:17px;flex-shrink:0;margin-top:0}.hero-location{display:none}.hero-image{height:auto;aspect-ratio:.98}.hero-image img{object-position:50% 50%}.image-open{bottom:16px;right:16px;font-size:10px;gap:24px;padding:8px 14px}.hero-figure figcaption{font-size:9px;gap:10px;padding-top:12px}.index-number{margin-right:6px}.discipline-strip{gap:16px;margin-top:30px;padding-block:17px;font-size:11px}.discipline-strip p{font-size:8px;max-width:180px;text-align:right;line-height:1.45}.discipline-strip p span{font-size:8px}.introduction{padding-top:66px;padding-bottom:65px;grid-template-columns:1fr;gap:20px}.section-index{font-size:9px}.introduction h2{font-size:clamp(40px,7.8vw,53px)}.introduction-copy{margin:0 0 0 18%;max-width:380px;font-size:12px;line-height:1.85}.section-rule{padding-top:15px;gap:20px}.section-rule .eyebrow{font-size:8px}.section-rule>span{max-width:120px}.work-heading{display:block;padding-top:29px;padding-bottom:28px}.work-heading h2{font-size:63px}.filters{gap:25px;margin-top:17px;padding:0}.filters button{font-size:11px;padding-block:9px}.project-grid{grid-template-columns:1fr;row-gap:37px}.project-card-offset{padding-top:0}.project-image{aspect-ratio:1.13}.project-image-portrait{aspect-ratio:.91}.project-image-wide{aspect-ratio:1.35}.project-image-square{aspect-ratio:1.13}.project-card:nth-child(2){width:86%;justify-self:end}.project-card:nth-child(4){width:89%}.project-grid.is-filtered .project-card{width:100%}.project-caption{padding-top:16px}.project-caption .eyebrow{font-size:8px}.project-caption h3{font-size:33px;margin-top:8px}.project-caption-arrow{font-size:23px}.project-open{display:none}.work-bottom{padding-top:44px;padding-bottom:64px;display:block}.work-bottom p{font-size:11px}.work-bottom .text-link{margin-top:14px;font-size:11px}.approach{padding-top:30px;padding-bottom:55px}.approach-grid{grid-template-columns:1fr;gap:37px;padding-top:38px}.approach h2{font-size:clamp(52px,15vw,65px)}.approach-copy>p{max-width:280px;margin-top:23px;font-size:12px}.approach-copy .text-link{margin-top:20px;font-size:11px}.services summary{min-height:79px}.services summary h3{font-size:38px}.service-body{font-size:12px;max-width:none;padding-right:22px}.studio{padding-top:49px;padding-bottom:59px}.studio-grid{grid-template-columns:1fr;gap:29px;padding-top:30px}.studio-grid figure>img,.studio-image img{aspect-ratio:1.12}.studio figcaption{flex-direction:row;font-size:8px;gap:10px}.studio-copy{padding-top:0}.studio-copy h2{font-size:clamp(54px,16vw,68px);margin-top:20px}.studio-copy h2 br:first-child{display:none}.studio-copy h2 br:first-child::after{content:" "}.studio-copy>p:not(.eyebrow){margin-top:22px;max-width:330px}.studio-copy .text-link{margin-top:16px}.contact{padding-top:25px;padding-bottom:32px}.contact-heading{margin-top:31px;gap:10px;align-items:flex-start}.contact-heading h2{font-size:clamp(58px,13vw,94px);line-height:.91}.contact-heading>span{font-size:80px;margin-top:6px}.contact-bottom{margin-top:29px;display:block}.contact-bottom>p{font-size:11px}.contact-bottom .text-link{margin-top:15px;font-size:11px}.footer{padding-top:36px;padding-bottom:19px}.footer-main{grid-template-columns:1fr 1fr;gap:32px 20px;padding-bottom:32px}.footer-main .wordmark{grid-column:1/-1}.footer-main>div>a{font-size:11px;min-height:40px;padding-block:8px}.footer-main .eyebrow{margin-bottom:6px}.footer-bottom{display:flex;flex-direction:column;gap:8px;font-size:8px}.project-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:12px 16px 24px}.dialog-top{padding-bottom:8px;margin-bottom:16px}.dialog-top>.eyebrow{font-size:8px}.dialog-content{gap:19px}.dialog-image{height:35dvh;min-height:200px}.dialog-copy h2{font-size:45px}.dialog-description{font-size:12px}.gallery-counter{font-size:10px}}
@media(max-width:370px){.hero h1{font-size:72px}.hero-introduction{gap:16px}.hero-introduction p{font-size:11px;max-width:151px}.hero-introduction .text-link{gap:9px;font-size:9px}.discipline-strip{gap:12px;font-size:10px}.discipline-strip p{max-width:145px}.introduction h2{font-size:38px}.work-heading h2{font-size:58px}.approach h2{font-size:52px}.studio-copy h2{font-size:54px}.contact-heading h2{font-size:54px}.contact-heading>span{font-size:60px}.hero-figure figcaption{font-size:8px}.project-caption h3{font-size:30px}.footer-main{gap:27px 15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-image:hover img,.project-link:hover .project-image img,.contact-heading:hover>span,.text-link:hover span{transform:none}}
