@font-face{font-family:DM Sans;src:url('assets/fonts/dm-sans-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('assets/fonts/dm-sans-semibold.ttf') format('truetype');font-weight:600 800;font-display:swap}
@font-face{font-family:DM Mono;src:url('assets/fonts/dm-mono.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--paper:#faf7f2;--ink:#252321;--muted:#78716b;--line:#dfd8d0;--orange:#b44b2e;--cool-paper:#e4e8f7;--font:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:600}::selection{background:#ebc9b7;color:#252321}a:focus-visible,summary:focus-visible{outline:2px solid var(--orange);outline-offset:6px}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.skip-link{position:fixed;left:20px;top:-70px;z-index:50;padding:14px 20px;background:var(--ink);color:white}.skip-link:focus{top:16px}
.site-header{display:flex;justify-content:space-between;align-items:center;height:106px;border-bottom:1px solid var(--line)}.logo{font-size:29px;font-weight:700;letter-spacing:-1.5px}.logo sup{font:9px var(--font);margin-left:2px;position:relative;top:-8px}.site-nav{display:flex;align-items:center;gap:35px;font-size:13px}.site-nav a{padding:6px 0}.site-nav a:hover{color:var(--orange)}.site-nav .nav-contact{display:flex;gap:18px}.site-header .location{font:10px var(--mono);color:var(--muted)}.kicker{display:flex;align-items:center;gap:12px;font:11px/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase}.kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--orange)}.kicker .index{color:#90857c;margin-right:18px}.serif{font-family:Georgia,serif;font-style:italic;font-weight:400}.arrow{font-family:Arial,sans-serif;font-weight:400}
.hero{padding:63px 0 47px}.hero-top{display:flex;justify-content:space-between;align-items:center}.hero-top .discipline{font:10px var(--mono);color:var(--muted)}.hero h1{font-size:clamp(52px,7.1vw,104px);line-height:1.04;letter-spacing:-.05em;margin:38px 0 40px;max-width:1030px}.hero h1 .serif{letter-spacing:-.05em;color:#a3543b}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}.hero-description{font-size:16px;line-height:1.7;color:var(--muted);max-width:435px}.hero-description strong{color:var(--ink);font-weight:400}.round-link{display:inline-flex;align-items:center;gap:18px;font-size:12px}.round-link .circle{display:grid;place-items:center;border:1px solid #bdb2a7;width:42px;height:42px;border-radius:50%;font-size:18px;transition:background .2s,color .2s}.round-link:hover .circle{background:var(--ink);color:var(--paper)}.hero-line{display:flex;justify-content:space-between;margin-top:52px;padding-top:18px;border-top:1px solid var(--line);font:10px var(--mono);color:var(--muted)}.hero-line span:last-child{color:var(--orange)}
.work{padding:50px 0 112px}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:31px}.section-top .aside-note{max-width:320px;font-size:12px;line-height:1.65;color:var(--muted)}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:53px 28px}.project-card{min-width:0}.project-preview{position:relative;display:block;overflow:hidden;border-radius:4px;aspect-ratio:1.22;background:var(--cool-paper)}.project-preview .cover-meta{position:absolute;top:24px;left:28px;right:28px;display:flex;justify-content:space-between;color:#766b63;font:9px var(--mono);z-index:2}.project-preview .cover-image{position:absolute;left:9%;top:20%;width:84%;max-width:none;border-radius:4px;box-shadow:0 20px 38px #25232120;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.project-preview:hover .cover-image{transform:translateY(-8px) rotate(-1deg)}.project-preview .view-project{position:absolute;right:22px;bottom:22px;display:grid;place-items:center;width:43px;height:43px;background:var(--paper);border-radius:50%;font-size:22px;z-index:3;transition:background .2s,color .2s}.project-preview:hover .view-project{background:var(--ink);color:var(--paper)}.project-preview.signal{background:#e9e5e0}.project-preview.signal .cover-image{width:83%;left:8%;top:19%;transform:rotate(-3deg)}.project-preview.signal:hover .cover-image{transform:translateY(-8px) rotate(-3deg)}.project-preview.brand{background:#e5dbce}.project-preview.brand .cover-image{width:100%;left:0;top:8%;box-shadow:none}.project-preview.daily{background:#eedfda}.project-preview.daily .cover-image{width:89%;left:6%;top:18%}.project-info{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-top:22px}.project-info h3{font-size:24px;letter-spacing:-.025em}.project-info .year{font:10px var(--mono);color:var(--muted)}.project-description{font-size:14px;line-height:1.6;color:var(--muted);margin-top:7px}.project-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.tag{font:9px var(--mono);border:1px solid var(--line);padding:6px 10px;border-radius:30px;color:#746c65}.work-note{margin-top:38px;max-width:620px;color:var(--muted);font-size:11px;line-height:1.7}
.experience-strip{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;gap:26px}.experience-strip small{font:9px/1.7 var(--mono);color:var(--muted)}.experience-strip span{font-size:18px;font-weight:600;color:#5d534c;letter-spacing:-.03em}.experience-strip .c3{font-size:27px}.experience-strip .c3 small{font-family:var(--font);font-size:11px;margin-left:6px}
.about{padding:114px 0}.about-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:12%;margin-top:40px}.about-title h2{font-size:clamp(38px,4vw,59px);line-height:1.09;letter-spacing:-.04em}.about-title .serif{color:#a3543b}.studio-note{position:relative;margin-top:39px;max-width:350px;background:#ede3d7;padding:29px 26px;transform:rotate(-2deg);border-radius:2px}.studio-note span{font:9px var(--mono);letter-spacing:.03em;color:#827265}.studio-note p{font-family:Georgia,serif;font-style:italic;font-size:25px;line-height:1.4;margin-top:21px}.studio-note .signature{margin-top:20px;font:12px var(--font)}.about-copy{font-size:15px;line-height:1.8;color:var(--muted)}.about-copy p+p{margin-top:19px}.about-copy strong{color:var(--ink);font-weight:400}.about-details{margin-top:34px;border-top:1px solid var(--line)}.detail-row{display:grid;grid-template-columns:90px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6}.detail-row dt{color:#897c71;font:9px var(--mono);padding-top:3px}.detail-row dd{margin:0;color:var(--ink)}.experience{padding:10px 0 112px}.experience-row{display:grid;grid-template-columns:1fr 1.1fr .4fr;gap:20px;padding:27px 0;border-bottom:1px solid var(--line);align-items:center}.experience-row:first-of-type{border-top:1px solid var(--line)}.experience-row h3{font-size:17px}.experience-row p{font-size:13px;color:var(--muted)}.experience-row time{font:10px var(--mono);text-align:right;color:var(--muted)}
.contact{background:var(--ink);color:var(--paper);padding:63px 0 26px}.contact .kicker{color:#b8aaa0}.contact-top{display:flex;justify-content:space-between;align-items:end;gap:40px;margin:42px 0 70px}.contact h2{font-size:clamp(41px,5.5vw,76px);line-height:1.06;letter-spacing:-.045em}.contact h2 .serif{color:#e2bba2}.contact .email-link{display:flex;align-items:center;gap:25px;font-size:15px;padding:10px 0;border-bottom:1px solid #938277}.contact .email-link span{font-size:24px}.footer{display:flex;justify-content:space-between;gap:24px;padding-top:21px;border-top:1px solid #55483f;font:9px/1.7 var(--mono);color:#b8aaa0}.footer a{color:#e0d2c8}.footer a:hover{text-decoration:underline}.footer-right{display:flex;gap:24px}.photo-credit{color:var(--muted);font-size:10px;line-height:1.7}.photo-credit a{text-decoration:underline;text-underline-offset:3px}
/* Case studies */
.case-nav{gap:32px}.case-nav a{font-size:12px}.case-hero{padding:52px 0 44px}.breadcrumb{display:inline-flex;gap:12px;font:10px var(--mono);color:var(--muted)}.case-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:42px}.case-title-row h1{font-size:clamp(54px,7vw,99px);line-height:1.03;letter-spacing:-.055em}.case-title-row p{font-size:17px;color:var(--muted);max-width:373px;line-height:1.6}.case-meta{display:grid;grid-template-columns:1fr 1.3fr 1fr 1fr;gap:22px;border-top:1px solid var(--line);padding-top:20px;margin:39px 0 0}.case-meta dt{font:9px var(--mono);color:var(--muted);margin-bottom:9px}.case-meta dd{margin:0;font-size:12px;line-height:1.6}.case-cover{background:var(--cool-paper);border-radius:4px;padding:47px 7%;overflow:hidden}.case-cover img{width:100%;border-radius:4px;box-shadow:0 20px 50px #2523211c}.case-cover.brand{padding:0;background:#e4ddd4}.case-cover.brand img{box-shadow:none}.case-cover.signal{background:#e9e5e0}.case-cover.daily{background:#eedfda}.case-cover figcaption{display:flex;justify-content:space-between;gap:20px;font:9px/1.7 var(--mono);color:#796c60;padding-top:21px}.case-cover.brand figcaption{padding:0 35px 24px}.case-cover a{display:block}.case-context{display:grid;grid-template-columns:.62fr 1fr 1fr;gap:7%;padding:80px 0;border-bottom:1px solid var(--line)}.case-context h2{font-size:33px;letter-spacing:-.025em;line-height:1.2}.case-context h3{font:10px var(--mono);margin-bottom:16px;color:var(--muted)}.case-context p{font-size:14px;line-height:1.8;color:var(--muted)}.case-context .concept-note{font-size:11px;margin-top:18px}.case-approach{display:grid;grid-template-columns:.8fr 1.7fr;gap:9%;padding:66px 0 75px}.case-approach h2{font-size:34px;line-height:1.15;letter-spacing:-.025em}.case-approach ol{list-style:none;padding:0;margin:0}.case-approach li{display:grid;grid-template-columns:34px 1fr;gap:15px;border-top:1px solid var(--line);padding:19px 0}.case-approach li .n{font:10px var(--mono);color:var(--orange);padding-top:4px}.case-approach h3{font-size:16px;margin-bottom:7px}.case-approach p{font-size:13px;line-height:1.7;color:var(--muted);max-width:550px}.gallery{padding:15px 0 76px}.gallery-intro{display:flex;justify-content:space-between;align-items:end;gap:25px;padding-bottom:29px}.gallery-intro h2{font-size:35px;letter-spacing:-.035em}.gallery-intro p{font-size:11px;color:var(--muted)}.screens{display:grid;grid-template-columns:1fr 1fr;gap:38px 24px}.screen{min-width:0}.screen:first-child{grid-column:1/-1}.screen a{display:block;position:relative;background:#f0ebe5;border:1px solid #ded5cb;border-radius:4px;overflow:hidden}.screen a::after{content:'↗';position:absolute;right:14px;bottom:14px;width:34px;height:34px;display:grid;place-items:center;background:#faf7f2;border-radius:50%;font-size:18px;box-shadow:0 2px 12px #0001}.screen img{width:100%;transition:transform .5s}.screen a:hover img{transform:scale(1.015)}.screen figcaption{display:grid;grid-template-columns:28px 1fr;gap:11px;margin-top:15px}.screen figcaption .n{font:10px var(--mono);color:var(--orange);padding-top:3px}.screen figcaption h3{font-size:15px;margin-bottom:6px}.screen figcaption p{font-size:12px;line-height:1.7;color:var(--muted);max-width:490px}.case-reflection{display:grid;grid-template-columns:.8fr 1.7fr;gap:9%;border-top:1px solid var(--line);padding:53px 0 68px}.case-reflection h2{font-size:33px;letter-spacing:-.035em}.case-reflection p{font-size:14px;line-height:1.8;color:var(--muted);max-width:640px}.case-reflection ul{padding-left:18px;margin:18px 0 0;font-size:13px;line-height:1.8;color:var(--muted)}.case-next{background:#ede3d7;padding:40px 0;margin-top:45px}.case-next a{display:flex;justify-content:space-between;align-items:center;gap:30px}.case-next small{font:9px var(--mono);color:var(--muted)}.case-next h2{font-size:clamp(30px,4vw,52px);letter-spacing:-.04em;margin-top:11px}.case-next .arrow{font-size:50px}.case-footer{padding:30px 0 35px;display:flex;justify-content:space-between;font:9px var(--mono);color:var(--muted)}.case-footer a{text-decoration:underline;text-underline-offset:3px}.credits{padding:65px 0 100px;max-width:850px}.credits h1{font-size:52px;margin-bottom:34px}.credits h2{font-size:25px;margin:32px 0 16px}.credits p,.credits li{font-size:15px;line-height:1.8;color:var(--muted)}.credits a{text-decoration:underline;text-underline-offset:3px}
.hero-top .kicker{font-size:clamp(11px,1.15vw,14px);font-weight:600;line-height:1.6;letter-spacing:.065em}.hero-top .kicker .dot{flex-shrink:0}
@media(min-width:1500px){.hero{padding-top:74px}.hero h1{margin:46px 0}.project-preview{aspect-ratio:1.28}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero h1{font-size:8vw}.site-header .location{display:none}.contact-top{display:block}.contact .email-link{margin-top:31px;width:max-content}.about-layout{gap:7%}.case-context{gap:4%;grid-template-columns:.65fr 1fr 1fr}.case-title-row p{max-width:290px;font-size:15px}.cover-meta span:last-child{display:none}.experience-strip span{font-size:15px}.experience-strip .c3 small{display:none}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{height:80px}.site-nav{gap:22px;font-size:12px}.logo{font-size:26px}.site-nav .nav-contact{gap:8px}.hero{padding:37px 0 24px}.hero-top .discipline{display:none}.kicker{font-size:9px;gap:9px}.hero h1{font-size:clamp(43px,9.8vw,69px);line-height:1.07;letter-spacing:-.045em;margin:29px 0}.hero-bottom{display:block}.hero-description{font-size:14px;max-width:380px}.round-link{margin-top:24px}.hero-line{margin-top:31px;font-size:8px;gap:25px;line-height:1.6}.hero-line span:nth-child(2){display:none}.work{padding:35px 0 57px}.section-top{gap:24px}.section-top .aside-note{max-width:180px;font-size:10px}.projects{grid-template-columns:1fr;gap:38px}.project-preview{aspect-ratio:1.27}.project-info{margin-top:17px}.project-info h3{font-size:23px}.project-description{font-size:13px}.project-tags{margin-top:12px}.tag{font-size:8px}.experience-strip{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:28px 0}.experience-strip span{font-size:17px}.about{padding:61px 0}.about-layout{grid-template-columns:1fr;gap:35px;margin-top:27px}.about-title h2{font-size:45px}.studio-note{display:none}.about-copy{font-size:14px}.about-details{margin-top:26px}.experience{padding:0 0 61px}.experience .section-top{margin-bottom:10px}.experience-row{grid-template-columns:1fr auto;gap:7px;padding:21px 0}.experience-row h3{font-size:16px}.experience-row p{grid-row:2;font-size:12px}.experience-row time{grid-column:2;grid-row:1 / 3;font-size:9px}.contact{padding:41px 0 23px}.contact-top{margin:30px 0 45px}.contact h2{font-size:44px}.contact .email-link{font-size:13px;gap:15px}.footer{font-size:8px;flex-wrap:wrap;gap:15px}.footer-right{gap:15px}.site-nav.case-nav{gap:18px}.case-nav .next-short{display:none}.case-hero{padding:30px 0}.case-title-row{display:block;margin-top:30px}.case-title-row h1{font-size:clamp(48px,10vw,74px)}.case-title-row p{margin-top:20px;max-width:400px;font-size:14px}.case-meta{grid-template-columns:1fr 1fr;gap:20px;margin-top:29px;padding-top:20px}.case-meta dt{font-size:8px;margin-bottom:5px}.case-meta dd{font-size:11px}.case-cover{padding:18px 4%}.case-cover figcaption{font-size:7px;gap:15px;padding-top:14px}.case-cover.brand figcaption{padding:0 15px 14px}.case-cover figcaption span:last-child{display:none}.case-context{grid-template-columns:1fr;gap:28px;padding:43px 0}.case-context h2{font-size:31px}.case-context h3{margin-bottom:9px}.case-context p{font-size:13px}.case-approach{grid-template-columns:1fr;gap:26px;padding:41px 0}.case-approach h2{font-size:31px}.case-approach li{padding:17px 0}.case-approach p{font-size:12px}.gallery{padding:10px 0 44px}.gallery-intro{display:block;padding-bottom:24px}.gallery-intro h2{font-size:31px}.gallery-intro p{margin-top:9px;font-size:10px}.screens{grid-template-columns:1fr;gap:31px}.screen a::after{width:28px;height:28px;font-size:15px;right:9px;bottom:9px}.screen figcaption{gap:9px}.screen figcaption h3{font-size:14px}.screen figcaption p{font-size:12px}.case-reflection{grid-template-columns:1fr;gap:23px;padding:37px 0}.case-reflection p{font-size:13px}.case-reflection h2{font-size:31px}.case-next{margin-top:28px;padding:29px 0}.case-next .arrow{font-size:36px}.case-footer{font-size:8px;gap:20px;line-height:1.7}.credits{padding:40px 0}.credits h1{font-size:41px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
