*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{height:100%}img,picture,video{display:block;max-width:100%}input,button,textarea,select{font:inherit}button{background:none;border:0;cursor:pointer;color:inherit;font:inherit}a{color:inherit;text-decoration:none}:root{--bg: #ffffff;--bg-2: #ece5d6;--paper: #faf6ee;--ink: #181410;--ink-2: #2f2a22;--ink-3: #6b6456;--rule: #ddd4c1;--max: 1400px;--gutter: clamp(1.5rem, 4.5vw, 4rem);--font-display: "Avenir Next", "Avenir", -apple-system, "Segoe UI", Roboto, system-ui, Helvetica, Arial, sans-serif;--font-body: "Avenir Next", "Avenir", -apple-system, "Segoe UI", Roboto, system-ui, Helvetica, Arial, sans-serif;--ease: cubic-bezier(.2,.7,.2,1)}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);font-size:18px;line-height:1.6;color:var(--ink);background:var(--bg)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--ink)}h1{font-size:clamp(2.6rem,7vw,6rem)}h2{font-size:clamp(2rem,4.4vw,3.6rem)}h3{font-size:clamp(1.4rem,2vw,1.85rem)}p{color:var(--ink);max-width:60ch}.intro p,.lede,.page-title p{font-size:1.15rem;color:var(--ink)}p+p{margin-top:1em}.label{font-family:var(--font-body);font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2)}.link{display:inline-flex;align-items:baseline;gap:.35em;border-bottom:1px solid currentColor;padding-bottom:1px;color:var(--ink);transition:color .2s var(--ease),border-color .2s var(--ease),gap .25s var(--ease)}.link:hover{color:var(--ink-2);gap:.55em}.link .arrow{font-size:.85em;transition:transform .25s var(--ease)}.link:hover .arrow{transform:translate(2px)}.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}.section{padding-block:clamp(3.5rem,7vw,6rem)}.section-tight{padding-block:clamp(2.5rem,5vw,4.5rem)}.section--surface{background:#d6d3d1}.site-header{position:sticky;top:0;left:0;right:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--rule)}.site-header.dark-text,.site-header.light-text{color:var(--ink)}.nav{display:flex;align-items:center;justify-content:space-between;padding-block:1.8rem}.brand{display:inline-flex;align-items:center}.brand img{height:2.1rem;width:auto}.nav-links{display:flex;gap:2.5rem;align-items:center}.nav-links a{font-size:13px;font-weight:500;letter-spacing:.04em;color:inherit;transition:opacity .2s var(--ease);position:relative}.nav-links a:hover{opacity:.7}.nav-links a[aria-current=page]:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor}.nav-toggle{display:none}.mobile-nav{display:none;flex-direction:column;gap:1.1rem;padding:1.5rem var(--gutter) 2.5rem;background:var(--bg);color:var(--ink);border-top:1px solid var(--rule)}.mobile-nav a{font-family:var(--font-display);font-size:1.35rem}@media (max-width: 820px){.nav-links{display:none}.nav-toggle{display:inline-flex;align-items:center;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.mobile-nav.open{display:flex}.site-header{position:relative}}.header-spacer{height:5.5rem}.hero{background:var(--bg);padding:0}.hero-stage{position:relative;width:100%;aspect-ratio:16 / 9;isolation:isolate;overflow:hidden;background:var(--bg-2)}.hero .slides,.hero .slide{position:absolute;inset:0}.hero .slide{display:block;background-size:cover;background-position:center;opacity:0;z-index:0;transition:opacity .4s var(--ease)}.hero .slide.active{opacity:1;z-index:1}.hero-dots{position:absolute;left:0;right:0;bottom:clamp(1.5rem,3.5vw,2.5rem);z-index:2;display:flex;justify-content:center;gap:.7rem}.hero-dots .dot{width:9px;height:9px;padding:0;border-radius:50%;background:#ffffff8c;box-shadow:0 1px 4px #00000059;transition:background .25s var(--ease),transform .25s var(--ease)}.hero-dots .dot:hover{background:#ffffffd9}.hero-dots .dot.active{background:#fff;transform:scale(1.25)}.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}.intro{max-width:60ch}.intro h2{font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:450;line-height:1.4;letter-spacing:-.005em}.intro p{font-size:1.05rem;margin-top:1.25rem}.two-col{display:grid;gap:clamp(2.5rem,6vw,6rem);grid-template-columns:1fr;align-items:start}@media (min-width: 880px){.two-col{grid-template-columns:1fr 1fr}.two-col.weighted-left{grid-template-columns:1.15fr 1fr}.two-col.weighted-right{grid-template-columns:1fr 1.15fr}.two-col.reverse>:first-child{order:2}}.two-col img{width:100%;height:auto;object-fit:cover;aspect-ratio:4/5}.project-grid{display:grid;gap:clamp(2rem,4vw,3.5rem) clamp(1.5rem,3vw,2.5rem);grid-template-columns:1fr}@media (min-width: 720px){.project-grid{grid-template-columns:1fr 1fr}}@media (min-width: 1100px){.project-grid.three{grid-template-columns:1fr 1fr 1fr}}.project-grid.editorial>:nth-child(4n+1){margin-top:4rem}.project-grid.editorial>:nth-child(4n+4){margin-top:4rem}@media (max-width: 720px){.project-grid.editorial>*{margin-top:0!important}}.project-card{display:block}.project-card .img-wrap{aspect-ratio:4/5;overflow:hidden;background:var(--bg-2)}.project-card.wide .img-wrap{aspect-ratio:4/3}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s var(--ease);filter:saturate(.96)}.project-card:hover img{transform:scale(1.03)}.project-card .meta{margin-top:1rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.project-card .meta h3{font-size:clamp(1.2rem,1.6vw,1.5rem);font-weight:400}.project-card .meta .tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.project-grid.compact{gap:clamp(1.5rem,3vw,2.5rem) clamp(1rem,2vw,1.75rem)}.project-grid.compact .img-wrap{aspect-ratio:4 / 3}.project-grid.compact .meta{margin-top:.85rem;flex-direction:column;align-items:flex-start;gap:.3rem}.project-grid.compact .meta h3{font-size:clamp(1.05rem,1.15vw,1.2rem)}.project-grid.compact .meta .tag{white-space:normal}.ig-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.5rem,1.2vw,1rem)}@media (min-width: 720px){.ig-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.ig-grid{grid-template-columns:repeat(6,1fr)}}.ig-tile{position:relative;display:block;aspect-ratio:4 / 5;overflow:hidden;background:var(--bg-2)}.ig-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .4s var(--ease)}.ig-tile:hover img{transform:scale(1.05);filter:brightness(.72)}.ig-tile__icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .25s var(--ease);pointer-events:none}.ig-tile:hover .ig-tile__icon{opacity:1}.back-link{display:inline-block;margin-bottom:1.25rem;opacity:.8;transition:opacity .2s var(--ease)}.back-link:hover{opacity:1}.project-meta{margin-top:1.1rem;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.project-credits{margin-top:1.5rem;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.project-credits .credit{margin:0}.project-credits .credit+.credit{margin-top:.45rem}.project-credits a{color:var(--ink-2);border-bottom:1px solid var(--rule);transition:border-color .2s var(--ease)}.project-credits a:hover{border-bottom-color:var(--ink-3)}.project-hero img{width:100%;height:auto;background:var(--bg-2)}.project-video{margin-top:clamp(1rem,2vw,1.5rem)}.project-video video{width:100%;max-width:560px;height:auto;display:block;margin-inline:auto;background:var(--bg-2)}.project-gallery{margin-top:clamp(1rem,2vw,1.5rem);columns:2;column-gap:clamp(1rem,2vw,1.5rem)}.project-gallery img{width:100%;height:auto;margin-bottom:clamp(1rem,2vw,1.5rem);break-inside:avoid;background:var(--bg-2)}@media (max-width: 720px){.project-gallery{columns:1}}.project-nav{display:flex;justify-content:space-between;align-items:baseline;gap:1rem 2rem;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:clamp(2rem,4vw,3rem)}.svc-list{display:grid;grid-template-columns:1fr;gap:0;margin-top:2rem}.svc-row{display:grid;grid-template-columns:1fr;gap:.5rem 2rem;padding-block:2rem;border-top:1px solid var(--rule)}.svc-row:last-child{border-bottom:1px solid var(--rule)}@media (min-width: 780px){.svc-row{grid-template-columns:1fr 2fr;gap:0 4rem;align-items:baseline}}.svc-row h3{font-size:clamp(1.4rem,2vw,1.9rem)}.svc-row p{max-width:56ch;color:var(--ink)}.phase-list{margin-top:1rem;counter-reset:phase}.phase{display:grid;grid-template-columns:auto 1fr;gap:2rem 3rem;padding-block:2rem;border-top:1px solid var(--rule);counter-increment:phase}.phase:last-child{border-bottom:1px solid var(--rule)}.phase:before{content:counter(phase,decimal-leading-zero);font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);color:var(--ink-3);line-height:1}.phase h3{margin-bottom:.5rem}.site-footer{background:#d6d3d1;padding-block:clamp(2.5rem,4vw,3.5rem) clamp(1.5rem,2.5vw,2rem);margin-top:clamp(4rem,10vw,8rem);color:var(--ink-2)}.footer-top{display:grid;gap:3rem;grid-template-columns:1fr;padding-bottom:2rem;border-bottom:1px solid var(--rule)}@media (min-width: 780px){.footer-top{grid-template-columns:2fr 1fr 1fr}}.footer-mark-img{height:clamp(2.6rem,4.5vw,3.4rem);width:auto}.social{display:inline-flex;margin-top:.65rem;color:var(--ink-2);transition:color .2s var(--ease),transform .2s var(--ease)}.social:hover{color:var(--ink);transform:translateY(-1px)}.footer-col h4{font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1rem}.footer-col ul{list-style:none;padding:0;display:grid;gap:.55rem;font-size:14px}.footer-col a{color:var(--ink)}.footer-col a:hover{color:var(--ink-2)}.footer-legal{margin-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.page-title{padding-block:clamp(4rem,9vw,8rem) clamp(2.5rem,5vw,4rem)}.page-title .label{margin-bottom:1.5rem;display:inline-block}.page-title h1{max-width:18ch}.project-copy{margin-block:clamp(2rem,4vw,3rem) 0;max-width:none}.project-copy .project-intro:first-child{margin-top:0}.project-intro{margin-top:1.5rem;font-size:1.05rem;line-height:1.6;color:var(--ink-2);max-width:none}.page-title .lede{margin-top:1rem;font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.15;letter-spacing:-.01em;color:var(--ink);max-width:30ch}.reveal{opacity:0;transform:translateY(14px);transition:opacity 1s var(--ease),transform 1s var(--ease)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.project-card img,.link,.nav-links a{transition:none}.hero .slide{transform:none;transition:none}.hero .slide.active{animation:none}}.divider{height:1px;background:var(--rule);border:0;margin-block:clamp(4rem,8vw,7rem)}.muted{color:var(--ink-3)}.contact-grid{display:grid;gap:clamp(2.5rem,6vw,5rem);grid-template-columns:1fr;align-items:start}@media (min-width: 860px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-grid .contact-image{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}@media (min-width: 860px){.contact-grid{align-items:center}.contact-grid .contact-stack{justify-self:start;text-align:left}}.figure img.contact-drawing{aspect-ratio:auto;height:auto;object-fit:contain}.contact-stack{display:grid;gap:2.5rem;max-width:50ch}.contact-stack .line{display:grid;gap:.35rem}.contact-stack .line .label{margin-bottom:0}.contact-stack .line a,.contact-stack .line span.value{font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);color:var(--ink);font-weight:380;line-height:1.1}.contact-stack .line a{border-bottom:1px solid transparent;transition:border-color .25s var(--ease)}.contact-stack .line a:hover{border-bottom-color:var(--ink-3)}.designer-grid{display:grid;gap:clamp(2.5rem,6vw,5rem);grid-template-columns:1fr;align-items:start}@media (min-width: 860px){.designer-grid{grid-template-columns:.85fr 1fr}}.designer-grid img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}.figure{margin-block:clamp(2rem,5vw,4rem)}.figure img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.figure figcaption{margin-top:.9rem;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}::selection{background:var(--ink);color:var(--bg)}
