: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}.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:1/4;font-size:.9rem;font-weight:500}.header-tagline{grid-column:4/8;font-size:.8rem;color:var(--grey)}.nav{grid-column:8/13;display:flex;justify-content:flex-end;gap:clamp(16px,2vw,32px)}.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-tagline{display:none}.header-logo{grid-column:1/9}.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:center;gap:40px;padding:var(--pad)}.mobile-menu nav{display:grid;grid-gap:18px;gap:18px}.mobile-menu nav a{font-size:clamp(1.8rem,8vw,2.4rem);font-weight:500;letter-spacing:-.02em;line-height:1.1;width:-moz-fit-content;width:fit-content}.mobile-menu nav a[aria-current=page]{border-bottom:2px solid var(--ink)}.mobile-menu-email{font-size:.95rem;color:var(--grey)}body.menu-open{overflow:hidden}.header .header-logo,.header .menu-toggle{position:relative;z-index:95}.preloader{position:fixed;inset:0;z-index:200;background:var(--green);display:flex;align-items:center;justify-content:center;transition:transform .9s var(--ease)}.preloader.done{transform:translateY(-100%)}.preloader.hidden{display:none}.preloader img{width:min(40vw,260px);animation:pre-in .7s var(--ease) both}@keyframes pre-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.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}.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{grid-template-columns:1fr}}.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}.card img{width:100%;height:100%;object-fit:cover;transform:scale(1.001);transition:transform .8s var(--ease)}.card:hover img{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}}.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{width:100%;height:100%;object-fit:cover}@media (hover:none){.list-thumb{display:none}}.project-hero{padding-top:clamp(32px,6vh,72px);padding-bottom:clamp(24px,3vh,40px)}.project-title{grid-column:1/10;font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.1;letter-spacing:-.02em;font-weight:500}.project-desc{grid-column:1/9;margin-top:clamp(16px,2.5vh,28px);display:grid;grid-gap:.9em;gap:.9em}.project-desc p{font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.55}.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}.project-gallery{padding-top:clamp(20px,3vh,36px);padding-bottom:clamp(20px,3vh,36px);row-gap:var(--gap)}.project-gallery>*{grid-column:span 6}.project-gallery .wide{grid-column:1/-1}.project-gallery .half{grid-column:span 6}.project-gallery .third{grid-column:span 4}.project-gallery video{display:block;width:100%;height:auto}.project-gallery .gallery-copy{grid-column:1/7;padding:4px 0 clamp(16px,3vh,32px);display:grid;grid-gap:.9em;gap:.9em}.project-gallery .gallery-copy.right{grid-column:7/13}.project-gallery .gallery-copy p{font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.55;max-width:40em}@media (max-width:680px){.project-gallery .gallery-copy,.project-gallery .gallery-copy.right,.project-gallery .half,.project-gallery .third,.project-gallery .wide,.project-gallery>*{grid-column:1/-1}}.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/7}@media (max-width:860px){.next-project .inner{grid-column:1/13}}.next-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.next-title{font-size:clamp(1.1rem,1.8vw,1.5rem);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}}.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}}