:root{--bg:#fafaf7;--ink:#0d0d0d;--grey:#737373;--line:#e3e3de;--green:#c2f086;--font:"Switzer","Inter",-apple-system,"Helvetica Neue",sans-serif;--ease:cubic-bezier(0.76,0,0.24,1);--pad:clamp(20px,3vw,44px);--gap:clamp(6px,0.7vw,10px)}*{margin:0;padding:0;box-sizing:border-box;border-radius:0!important;text-transform:none!important}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--green);color:var(--ink)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit;letter-spacing:inherit}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:var(--gap);gap:var(--gap);padding-left:var(--pad);padding-right:var(--pad)}h1,h2,h3{text-align:left}.display,h1,h2,h3{font-weight:500;letter-spacing:-.02em}.display{font-size:clamp(1.9rem,3.2vw,3rem);line-height:1.12}.h-section{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.2;letter-spacing:-.02em}.lede{font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.55;font-weight:400;max-width:40em}.label,.small{font-size:.8rem;line-height:1.5;color:var(--grey)}.label{font-weight:400;letter-spacing:0}.num:before{content:"["}.num:after{content:"]"}.num:after,.num:before{opacity:.45;padding:0 .1em}.u-link{position:relative;display:inline-block}.u-link:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;opacity:0;transition:opacity .35s var(--ease)}.u-link.active:after,.u-link:hover:after,.u-link[aria-current=page]:after{opacity:1}.header{align-items:baseline;padding-top:18px;padding-bottom:18px;position:relative;z-index:50;background:transparent;border-bottom:1px solid var(--line)}.header-logo{grid-column:5/9;justify-self:center;font-size:.9rem;font-weight:500}.nav{display:flex;gap:clamp(16px,2vw,32px);align-items:baseline}.nav-left{grid-column:1/5}.nav-right{grid-column:9/13;justify-content:flex-end}.nav a{font-size:.85rem}.nav .swap .alt{display:none}@media (hover:hover) and (pointer:fine){.nav .swap:focus-visible .default,.nav .swap:hover .default{display:none}.nav .swap:focus-visible .alt,.nav .swap:hover .alt{display:inline}}.menu-toggle{display:none;grid-column:9/13;justify-self:end;font-size:.85rem}@media (max-width:720px){.header-logo{grid-column:1/9;justify-self:start}.nav{display:none}.menu-toggle{display:block}}.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--bg);display:flex;flex-direction:column;justify-content:flex-end;gap:32px;padding:var(--pad);padding-bottom:clamp(28px,6vh,56px)}.mobile-menu nav{display:grid;margin:0 calc(-1 * var(--pad));border-top:1px solid var(--line)}.mobile-menu nav a{display:block;font-size:clamp(1.8rem,8vw,2.4rem);font-weight:500;letter-spacing:-.02em;line-height:1.1;padding:18px var(--pad);border-bottom:1px solid var(--line)}.mobile-menu nav a:active{background:var(--green)}.mobile-menu nav a[aria-current=page]{color:var(--grey)}.mobile-menu-foot{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}.mobile-menu-foot a{font-size:.95rem;color:var(--grey)}.mobile-menu-foot a:active{color:var(--ink);background:var(--green)}body.menu-open{overflow:hidden}.header .header-logo,.header .menu-toggle{position:relative;z-index:95}.intro{--mayd-dur:2560ms;--mayd-fall:cubic-bezier(0.55,0,0.85,0.3);--mayd-settle:cubic-bezier(0.22,1,0.4,1);--mayd-top:-78vh;--mayd-bottom:112vh;--mayd-squash:0.93;position:fixed;inset:0;z-index:200;background:var(--ink);display:flex;align-items:center;justify-content:center;overflow:hidden}.intro.wiping{transform:translateY(100%);transition:transform .78s cubic-bezier(.72,0,.18,1)}body.intro-locked{overflow:hidden}.intro-word{position:relative;font-size:calc(min(82vw, 1040px) / 289.55);width:289.55em;height:72.8em;animation:mayd-recentre var(--mayd-dur) linear both}.intro-letter{position:absolute;inset:0;transform-origin:50% 100%;will-change:transform}.intro-letter svg{display:block;width:100%;height:100%}.intro-letter path{fill:#fff}.is-m{animation:mayd-m var(--mayd-dur) both}.is-a{animation:mayd-a var(--mayd-dur) both}.is-y{animation:mayd-y var(--mayd-dur) both}.is-d{animation:mayd-d var(--mayd-dur) both}@keyframes mayd-m{0%,2.34%{transform:translateY(var(--mayd-top)) scaleY(1);animation-timing-function:var(--mayd-fall)}17.19%{transform:translateY(2.4em) scaleY(var(--mayd-squash));animation-timing-function:var(--mayd-settle)}20.31%,to{transform:translate(0) scaleY(1)}}@keyframes mayd-a{0%,7.03%{transform:translateY(var(--mayd-top)) scaleY(1);animation-timing-function:var(--mayd-fall)}21.88%{transform:translateY(2.4em) scaleY(var(--mayd-squash));animation-timing-function:var(--mayd-settle)}25%,to{transform:translate(0) scaleY(1)}}@keyframes mayd-y{0%,42.19%{transform:translateY(var(--mayd-top)) scaleY(1);animation-timing-function:var(--mayd-fall)}57.03%{transform:translateY(2.4em) scaleY(var(--mayd-squash));animation-timing-function:var(--mayd-settle)}60.16%,to{transform:translate(0) scaleY(1)}}@keyframes mayd-d{0%,11.72%{transform:translate(-56.94em,var(--mayd-top)) scaleY(1);animation-timing-function:var(--mayd-fall)}26.56%{transform:translate(-56.94em,2.4em) scaleY(var(--mayd-squash));animation-timing-function:var(--mayd-settle)}29.69%{transform:translate(-56.94em) scaleY(1)}39.45%{transform:translate(-56.94em) scaleY(1);animation-timing-function:var(--mayd-fall)}51.95%{transform:translate(-56.94em,var(--mayd-bottom)) scaleY(1);animation-timing-function:step-end}54.3%,73.05%{transform:translateY(var(--mayd-top)) scaleY(1);animation-timing-function:var(--mayd-fall)}87.89%{transform:translateY(2.4em) scaleY(var(--mayd-squash));animation-timing-function:var(--mayd-settle)}91.02%,to{transform:translate(0) scaleY(1)}}@keyframes mayd-recentre{0%,39.45%{transform:translateX(28.47em);animation-timing-function:var(--mayd-settle)}51.95%,69.92%{transform:translateX(33.82em);animation-timing-function:cubic-bezier(.76,0,.24,1)}85.55%,to{transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.intro-letter,.intro-word{animation:none}}.page-reveal{animation:page-in .8s var(--ease) .5s both}@keyframes page-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}body.preloading{overflow:hidden}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.in-view{opacity:1;transform:translateY(0)}.hero{padding-top:clamp(32px,5vh,64px);padding-bottom:clamp(8px,1.5vh,20px)}.hero-heading{grid-column:1/10}@media (max-width:720px){.hero-heading{grid-column:1/-1}.hero-rest{display:block}}.lead-feature{grid-column:1/13;margin-top:clamp(18px,3vh,32px)}.featured-grid{grid-column:1/13;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--gap);gap:var(--gap)}@media (max-width:680px){.featured-grid .card .card-media{aspect-ratio:4/3}}.section{padding-top:clamp(32px,5vh,60px);padding-bottom:clamp(32px,5vh,60px)}.section-head{grid-column:1/13;display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(18px,3vh,32px)}.btn{font-size:.9rem;color:var(--ink)}.card{display:block;position:relative;overflow:hidden;background:#ececea;cursor:pointer}.card .card-media{aspect-ratio:4/3;overflow:hidden}.card.wide-card .card-media{aspect-ratio:16/9}@media (max-width:720px){.card.wide-card .card-media{aspect-ratio:4/3}}.card img,.card video{width:100%;height:100%;object-fit:cover;transform:scale(1.001);transition:transform .8s var(--ease)}.card:hover img,.card:hover video{transform:scale(1.04)}.cursor-tag{position:fixed;z-index:70;display:flex;align-items:baseline;gap:10px;background:var(--ink);color:var(--bg);padding:9px 14px;font-size:.8rem;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .25s var(--ease),transform .25s var(--ease)}.cursor-tag.show{opacity:1;transform:translateY(0)}.cursor-tag .t{font-weight:500}.cursor-tag .y{color:#a5a5a5;font-size:.72rem}.projects-grid{grid-column:1/13;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--gap);gap:var(--gap)}@media (max-width:1100px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:860px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.projects-grid{grid-template-columns:1fr}}.work-grid{grid-column:1/13;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--gap);gap:var(--gap);grid-row-gap:clamp(10px,1.6vw,20px);row-gap:clamp(10px,1.6vw,20px)}.work-tile{opacity:0;transform:translate3d(0,-28px,0)}.work-grid.landed .work-tile{opacity:1;transform:translateZ(0);transition:opacity .45s var(--ease),transform .75s var(--ease)}.work-tile .card .card-media{aspect-ratio:4/3}@media (max-width:1000px){.work-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.work-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.work-tile{transform:none}.work-grid.landed .work-tile{transition:opacity .3s linear}}.projects-list{grid-column:1/13;border-top:1px solid var(--line)}.list-row{display:grid;grid-template-columns:3rem 1fr auto auto;align-items:baseline;grid-gap:clamp(16px,3vw,48px);gap:clamp(16px,3vw,48px);padding:16px 0;border-bottom:1px solid var(--line)}.list-row .idx{font-size:.75rem;color:var(--grey)}.list-row .name{font-size:clamp(1rem,1.5vw,1.3rem);font-weight:500;letter-spacing:-.02em;transition:color .3s var(--ease)}.list-row .name span{position:relative}.list-row .name span:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;opacity:0;transition:opacity .35s var(--ease)}.list-row:hover .name span:after{opacity:1}.list-row .svc,.list-row .yr{font-size:.8rem;color:var(--grey);text-align:right}.list-row .yr{min-width:5.5ch}@media (max-width:720px){.list-row{grid-template-columns:2rem 1fr auto}.list-row .svc{display:none}}.list-thumb{position:fixed;z-index:60;width:260px;aspect-ratio:4/3;pointer-events:none;overflow:hidden;opacity:0;transform:scale(.97);transition:opacity .25s var(--ease),transform .25s var(--ease)}.list-thumb.show{opacity:1;transform:scale(1)}.list-thumb img,.list-thumb video{width:100%;height:100%;object-fit:cover}@media (hover:none){.list-thumb{display:none}}.project-cover{position:relative;width:100%;height:100svh;min-height:420px;background:#ececea;overflow:hidden}.project-cover:after{content:"";position:absolute;top:0;left:0;right:0;height:180px;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,0));pointer-events:none}body:has(.project-cover) .header{position:absolute;top:0;left:0;right:0;z-index:60;border-bottom:none;color:#fafaf7}body.menu-open:has(.project-cover) .header{color:var(--ink)}.project-cover img,.project-cover video{width:100%;height:100%;object-fit:cover;display:block}.project-intro{padding-top:clamp(32px,6vh,72px);padding-bottom:clamp(20px,4vh,48px)}.project-intro.bare{padding-bottom:clamp(10px,2vh,18px)}.project-intro-head{grid-column:1/13;display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-bottom:12px;border-bottom:1px solid var(--line)}.project-stamp{display:flex;gap:clamp(12px,2vw,28px);white-space:nowrap}.project-title{font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.1;letter-spacing:-.02em;font-weight:500}.project-statement{grid-column:1/-1;margin-top:clamp(24px,5vh,56px);display:grid;grid-gap:.6em;gap:.6em}.project-statement p{font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.26;letter-spacing:-.02em;font-weight:500;text-wrap:pretty}.project-statement .statement-lead{font-weight:500}@media (max-width:560px){.project-intro-head{flex-direction:column;align-items:flex-start;gap:10px}}.project-meta{padding-top:clamp(18px,3vh,32px);padding-bottom:clamp(18px,3vh,32px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);row-gap:20px}.project-meta .meta-block{grid-column:span 3;display:grid;grid-gap:4px;gap:4px;align-content:start;font-size:.85rem}.project-meta .meta-block p{font-size:.85rem;line-height:1.5;max-width:32em}@media (max-width:860px){.project-meta .meta-block{grid-column:span 6}}.meta-link{border-bottom:1px solid var(--ink);transition:opacity .3s var(--ease)}.meta-link:hover{opacity:.55}.hgallery{padding-top:clamp(24px,5vh,56px);padding-bottom:clamp(14px,3vh,28px)}.hgallery-track{display:flex;align-items:center;gap:var(--gap);padding-left:var(--pad);padding-right:var(--pad);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;cursor:-webkit-grab;cursor:grab}.hgallery-track::-webkit-scrollbar{display:none}.hgallery.dragging .hgallery-track{cursor:-webkit-grabbing;cursor:grabbing;scroll-behavior:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hg-item{flex:0 0 auto;height:68vh;aspect-ratio:var(--ar,4/3);background:#ececea;overflow:hidden}.hg-item img,.hg-item video{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none}.hg-copy{background:none;aspect-ratio:auto;height:auto;width:min(32vw,400px);align-self:center;display:grid;grid-gap:.9em;gap:.9em;padding:0 clamp(10px,2vw,32px)}.hg-copy p{font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.55}.hgallery-foot{display:flex;justify-content:space-between;align-items:baseline;padding-left:var(--pad);padding-right:var(--pad);padding-top:14px;color:var(--grey)}.hgallery-foot .counter{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hg-hint{letter-spacing:.04em;transition:opacity .4s var(--ease)}.hg-hint.gone{opacity:0}@media (hover:none){.hgallery-track{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:default}.hgallery-track.hinting{scroll-snap-type:none;scroll-behavior:auto}.hg-item{scroll-snap-align:center;height:56vh}.hg-copy{width:78vw;height:auto}}@media (max-width:560px){.hg-item{height:46vh}}.next-project{padding-top:clamp(36px,6vh,72px);padding-bottom:clamp(36px,6vh,72px);border-top:1px solid var(--line)}.next-project .inner{grid-column:1/13}.next-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--gap);gap:var(--gap)}.next-item{display:grid;grid-gap:10px;gap:10px}@media (max-width:620px){.next-grid{grid-template-columns:1fr}}.next-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.next-title{font-size:clamp(1rem,1.4vw,1.2rem);font-weight:500;letter-spacing:-.02em}.about{padding-top:clamp(36px,6vh,72px);padding-bottom:clamp(36px,6vh,72px);align-items:start}.about-image{grid-column:1/6;width:100%;object-fit:cover}.about-content{grid-column:7/13}@media (max-width:860px){.about-image{margin-bottom:20px}.about-content,.about-image{grid-column:1/13}}.about-paras{margin-top:clamp(18px,3vh,32px);display:grid;grid-gap:1.1em;gap:1.1em}.services-cols{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:clamp(20px,3vw,40px);gap:clamp(20px,3vw,40px);margin-top:clamp(28px,5vh,56px)}@media (max-width:680px){.services-cols{grid-template-columns:1fr}}.services-cols ul{list-style:none;margin-top:10px;display:grid}.services-cols li{padding:7px 0;border-bottom:1px solid var(--line);font-size:.9rem}.contact{padding-top:clamp(36px,6vh,72px);padding-bottom:clamp(36px,6vh,72px);align-items:start}.contact-text{grid-column:1/7}.contact-image{grid-column:8/13;width:100%;object-fit:cover}@media (max-width:860px){.contact-image,.contact-text{grid-column:1/13}.contact-image{margin-top:24px}}.hello-word{display:inline-block;animation:hello-in .3s var(--ease)}@keyframes hello-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.contact-list{margin-top:clamp(20px,4vh,40px);display:grid;grid-gap:20px;gap:20px}.contact-list .value{margin-top:2px}.contact-list .value a{font-size:clamp(.95rem,1.3vw,1.15rem)}.footer{margin-top:clamp(32px,6vh,72px)}.footer,.footer-bottom{border-top:1px solid var(--line)}.footer-bottom{padding-top:18px;padding-bottom:18px;align-items:baseline}.footer-bottom .small{grid-column:1/8}.footer-socials{grid-column:8/13;display:flex;justify-content:flex-end;gap:24px}.footer-socials a{font-size:.85rem}@media (max-width:720px){.footer-bottom .small,.footer-socials{grid-column:1/13}.footer-socials{justify-content:flex-start;margin-top:8px}}