:root{--paper:#eee9df;--paper2:#d8cec0;--ink:#181713;--muted:#746d63;--accent:#9b2e1d;--line:rgba(24,23,19,.2);--serif:"Italiana",Georgia,serif;--sans:"Manrope",Arial,sans-serif;--mono:"DM Mono",monospace;--shell:min(1380px,calc(100% - clamp(32px,8vw,128px)))}
*{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--ink);background:radial-gradient(circle at 12% 10%,rgba(255,255,255,.55),transparent 27%),radial-gradient(circle at 82% 70%,rgba(122,86,50,.08),transparent 30%),var(--paper);font-family:var(--sans);overflow-x:clip}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{font:inherit}.section-shell{width:var(--shell);margin-inline:auto}.noise{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E");mix-blend-mode:multiply}.skip-link{position:fixed;left:12px;top:10px;z-index:300;transform:translateY(-160%);background:var(--ink);color:var(--paper);padding:10px 12px;font:500 10px/1 var(--mono)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;border-radius:50%;z-index:150}.cursor-dot{width:5px;height:5px;background:var(--ink)}.cursor-ring{width:34px;height:34px;border:1px solid var(--ink);transition:width .2s,height .2s}.cursor-ring.is-active{width:62px;height:62px}.page-rail{position:fixed;top:50%;z-index:20;font:500 8px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;writing-mode:vertical-rl;transform:translateY(-50%)}.page-rail--left{left:14px;transform:translateY(-50%) rotate(180deg)}.page-rail--right{right:14px}.site-header{position:fixed;inset:0 0 auto;z-index:80;display:flex;justify-content:space-between;align-items:center;padding:15px clamp(18px,4vw,60px);background:linear-gradient(180deg,rgba(238,233,223,.95),rgba(238,233,223,.68) 75%,transparent);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:10px;font:500 10px/1 var(--mono);letter-spacing:.12em}.brand svg{width:40px}.menu-toggle{border:0;background:none;color:inherit;display:flex;align-items:center;gap:10px;text-transform:uppercase;font:500 10px/1 var(--mono);letter-spacing:.12em;cursor:pointer}.menu-toggle i{width:24px;height:1px;background:currentColor;position:relative}.menu-toggle i:after{content:"";position:absolute;right:0;top:6px;width:15px;height:1px;background:currentColor;transition:.25s}.menu-toggle[aria-expanded=true] i:after{width:24px;transform:translateY(-6px) rotate(90deg)}.menu-panel{position:fixed;inset:0;z-index:70;background:#151310;color:var(--paper);clip-path:inset(0 0 100% 0);transition:clip-path .65s cubic-bezier(.77,0,.18,1);overflow:auto}.menu-panel.is-open{clip-path:inset(0)}.menu-panel__inner{width:min(850px,calc(100% - 40px));min-height:100svh;margin:auto;display:flex;flex-direction:column;justify-content:center;padding:90px 0 40px}.menu-panel__inner>a{font:400 clamp(34px,7vw,88px)/.95 var(--serif);padding:9px 0;border-bottom:1px solid rgba(238,233,223,.18)}.menu-panel__inner>a:hover{font-style:italic}.menu-panel__inner p{max-width:430px;margin:28px 0 0;color:#a9a399;font:300 10px/1.7 var(--mono)}.menu-panel__resume{margin-top:15px!important;padding-top:18px!important;color:#c15a45!important;font:500 10px/1.3 var(--mono)!important;letter-spacing:.08em;text-transform:uppercase}.eyebrow,.section-number{font:500 9px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase}.hero{min-height:100svh;padding-top:clamp(120px,18vh,190px);position:relative}.hero__intro{position:relative;z-index:2}.hero__title{font:400 clamp(48px,10vw,148px)/.84 var(--serif);letter-spacing:-.045em;margin:20px 0 0;overflow-wrap:normal}.hero__title span{display:block}.hero__title em{color:var(--accent);font-weight:400}.hero__title-line--offset{padding-left:min(12vw,150px)}.hero__visual{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.45fr);gap:clamp(24px,4vw,62px);align-items:end;margin:-1vw clamp(0px,6vw,80px) 0 clamp(0px,14vw,190px)}.hero__image-wrap{height:min(56vw,700px);min-height:400px;position:relative;overflow:hidden;box-shadow:0 25px 80px rgba(36,28,20,.17)}.hero__image-wrap img{filter:sepia(.2) saturate(.82) contrast(1.05);transform:scale(1.08)}.image-index{position:absolute;bottom:12px;left:12px;color:#fff;font:400 8px/1 var(--mono);letter-spacing:.08em}.hero__caption{padding-bottom:clamp(22px,6vh,70px)}.hero__caption p{font-size:13px;line-height:1.75;margin:0}.text-link{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--ink);padding:12px 0;margin-top:16px;font:500 9px/1 var(--mono);text-transform:uppercase}.hero__stamp{position:absolute;top:11vh;right:5vw;width:120px;animation:spin 20s linear infinite}.hero__stamp text{font:500 9px var(--mono);letter-spacing:.1em}.hero__ticker{margin-top:clamp(70px,11vh,120px);border-block:1px solid var(--line);overflow:hidden}.ticker-track{width:max-content;display:flex;animation:ticker 28s linear infinite}.ticker-track span{font:400 10px/1 var(--mono);letter-spacing:.1em;padding:16px 0}.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.38fr);gap:25px;align-items:end;margin-bottom:clamp(55px,9vh,100px)}.section-heading .section-number{grid-column:1/-1}.section-heading h2{font:400 clamp(44px,7.5vw,108px)/.9 var(--serif);letter-spacing:-.04em;margin:0}.section-heading h2 em{color:var(--accent);font-weight:400}.section-heading>p:last-child{font-size:13px;line-height:1.75;margin:0 0 8px}.work{padding:clamp(90px,14vh,170px) 0}.featured-list{display:grid;gap:clamp(75px,12vh,135px)}.featured-project{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:clamp(30px,6vw,90px);align-items:center;width:100%}.featured-project>*{min-width:0}.featured-project--reverse .featured-project__visual{order:2}.featured-project--reverse .featured-project__content{order:1}.featured-project__visual{display:block;width:100%}.project__image{position:relative;aspect-ratio:4/3;overflow:hidden;background:#d5ccbf;box-shadow:0 22px 55px rgba(44,31,18,.13)}.project__image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(20,14,9,.22));pointer-events:none}.project__image img{transition:transform .45s ease,filter .45s ease;filter:grayscale(.08) sepia(.16) saturate(.82)}.project__image--band img{object-position:center 42%}.featured-project__visual:hover img{transform:scale(1.035);filter:none}.project__hover-label{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-40%);padding:10px 12px;background:var(--paper);font:500 8px/1 var(--mono);text-transform:uppercase;opacity:0;transition:.25s;white-space:nowrap}.featured-project__visual:hover .project__hover-label{opacity:1;transform:translate(-50%,-50%) rotate(-4deg)}.featured-project__title>span{font:500 8px/1 var(--mono);text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.featured-project__title h3{font:400 clamp(42px,5.6vw,82px)/.92 var(--serif);letter-spacing:-.035em;margin:12px 0 8px;overflow-wrap:anywhere}.featured-project__title>p{margin:0 0 22px;color:var(--accent);font:500 10px/1.6 var(--mono)}.case-summary{font-size:13px;line-height:1.82;margin:0 0 22px;max-width:600px}.case-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.case-tags span{border:1px solid var(--line);border-radius:99px;padding:7px 10px;font:500 8px/1 var(--mono);text-transform:uppercase}.case-link{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-block:1px solid var(--ink);font:500 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.capabilities{padding:clamp(90px,14vh,170px) 0;border-top:1px solid var(--line)}.studio-console{width:min(760px,100%);margin:0 auto 32px;background:#171512;color:#ede7dc;border-radius:2px;box-shadow:0 22px 60px rgba(24,23,19,.18);overflow:hidden;transform:rotate(-1deg)}.console-top{height:34px;display:flex;align-items:center;gap:6px;padding:0 12px;background:#26231f}.console-top span{width:8px;height:8px;border-radius:50%;background:#8b8378}.console-top b{margin-left:8px;font:400 8px/1 var(--mono);color:#afa69a}.console-body{min-height:160px;padding:22px;font:400 11px/1.8 var(--mono)}.console-body p{margin:0 0 8px}.console-body i{font-style:normal;color:#d06049}.console-answer{color:#aaa196;padding-left:14px}.console-caret{animation:blink 1s steps(2) infinite}.capability-deck{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--ink)}.capability{min-height:255px;padding:22px;border-right:1px solid var(--line);display:flex;flex-direction:column}.capability:last-child{border-right:0}.capability>span{font:500 8px/1 var(--mono);color:var(--muted)}.capability h3{font:400 clamp(32px,3vw,48px)/1 var(--serif);margin:auto 0 12px}.capability p{font:400 10px/1.75 var(--mono);margin:0;color:var(--muted)}.capability small{display:block;margin-top:14px;padding-top:10px;border-top:1px solid var(--line);font:500 8px/1.5 var(--mono);color:var(--accent)}.archive{padding:clamp(90px,14vh,170px) 0;border-top:1px solid var(--line)}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,4vw,58px) clamp(18px,2.5vw,40px)}.archive-card{display:grid;grid-template-rows:auto 1fr;min-width:0}.archive-card figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#d5ccbf}.archive-card:nth-child(3n+2) figure{aspect-ratio:1/1}.archive-card:nth-child(4n) figure{aspect-ratio:4/5}.archive-card img{transition:transform .4s ease;filter:grayscale(.15) sepia(.18) saturate(.78)}.archive-card:hover img{transform:scale(1.035);filter:none}.archive-card>div{padding:14px 0 18px;border-bottom:1px solid var(--ink)}.archive-card span,.archive-card b{font:500 8px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.09em}.archive-card span{color:var(--muted)}.archive-card h3{font:400 clamp(28px,2.8vw,43px)/1 var(--serif);margin:8px 0 10px;overflow-wrap:anywhere}.archive-card p{font-size:11px;line-height:1.7;margin:0 0 15px;color:#554f47}.archive-card b{color:var(--accent)}.manifesto{padding:clamp(90px,14vh,170px) 0;border-top:1px solid var(--line);display:grid;grid-template-columns:120px minmax(0,1fr) minmax(180px,.28fr);gap:clamp(20px,4vw,60px);align-items:start}.manifesto__copy>p:first-child{font:500 10px/1.5 var(--mono);color:var(--accent)}.manifesto h2{font:400 clamp(44px,6.4vw,92px)/.96 var(--serif);letter-spacing:-.035em;margin:10px 0 25px}.manifesto h2 em{font-weight:400;color:var(--accent)}.manifesto__copy>p:last-child{max-width:760px;font-size:13px;line-height:1.82}.manifesto__note{align-self:end;border:1px solid var(--ink);padding:18px;font:500 8px/1.6 var(--mono);transform:rotate(2deg)}.manifesto__note strong{display:block;margin-top:8px;font:400 22px/1.1 var(--serif)}.contact{position:relative;width:100%;min-height:100svh;padding:clamp(80px,11vh,130px) max(22px,6vw) 28px;background:#14110e;color:var(--paper);overflow:hidden}.contact__beam{position:absolute;width:70vw;height:110vh;right:-36vw;top:-12vh;transform:rotate(-14deg);background:linear-gradient(90deg,transparent,rgba(180,61,30,.22),rgba(255,174,94,.13),transparent);filter:blur(24px)}.contact__grain{position:absolute;inset:0;opacity:.18;background:radial-gradient(circle at 80% 25%,rgba(193,77,55,.23),transparent 23%)}.contact__layout,.contact__footer{position:relative;z-index:2}.contact__layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.65fr);gap:clamp(40px,8vw,120px);align-items:end;margin:0 0 80px}.contact__kicker{font:500 9px/1 var(--mono);letter-spacing:.14em;color:#c8bcae}.contact__content h2{font:400 clamp(55px,8vw,124px)/.84 var(--serif);letter-spacing:-.05em;margin:20px 0 28px}.contact__content h2 em{font-weight:400;color:#c14d37}.contact__intro{max-width:590px;font-size:13px;line-height:1.8;color:#c5beb3}.contact__primary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;width:min(100%,690px);padding:18px 0;margin-top:35px;border-block:1px solid rgba(238,233,223,.45)}.contact__primary span,.contact-card span,.contact-card small{font:500 8px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:#a99f93}.contact__primary strong{font:400 clamp(17px,1.8vw,26px)/1.2 var(--serif);overflow-wrap:anywhere}.contact__primary i,.contact-card>i{font-style:normal}.contact__cards{border-top:1px solid rgba(238,233,223,.25)}.contact-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px 12px;min-height:105px;padding:18px 0;border-bottom:1px solid rgba(238,233,223,.18)}.contact-card small{grid-column:2}.contact-card strong{grid-column:2;font:400 clamp(22px,2.5vw,34px)/1.05 var(--serif);overflow-wrap:anywhere}.contact-card>i{grid-column:3;grid-row:1/4;align-self:center}.contact__footer{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding-top:18px;border-top:1px solid rgba(238,233,223,.2);font:400 8px/1.5 var(--mono);text-transform:uppercase;color:#aaa196}.contact__footer>span{text-align:right}.social-icons{display:flex;gap:10px}.social-icons a{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(238,233,223,.3);border-radius:50%;font-size:17px;transition:.2s}.social-icons a:hover{background:var(--paper);color:var(--ink);transform:translateY(-3px)}.footer-github{white-space:nowrap}@keyframes ticker{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:0}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:980px){.page-rail{display:none}.section-heading{grid-template-columns:1fr}.section-heading>p:last-child{max-width:560px}.featured-project{grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);gap:34px}.featured-project__title h3{font-size:clamp(40px,6vw,64px)}.capability-deck{grid-template-columns:repeat(2,minmax(0,1fr))}.capability:nth-child(2){border-right:0}.capability:nth-child(-n+2){border-bottom:1px solid var(--line)}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manifesto{grid-template-columns:90px 1fr}.manifesto__note{grid-column:2}.contact__layout{grid-template-columns:1fr}.contact__cards{max-width:620px}}
@media(max-width:720px){:root{--shell:calc(100% - 32px)}html{scroll-padding-top:68px}.site-header{padding:12px 16px}.brand span{display:none}.brand svg{width:37px}.hero{padding-top:105px}.hero__stamp{display:none}.hero__title{font-size:clamp(44px,14vw,78px);line-height:.88}.hero__title-line--offset{padding-left:7vw}.hero__visual{grid-template-columns:1fr;margin:30px 0 0;gap:20px}.hero__image-wrap{height:auto;min-height:0;aspect-ratio:4/3}.hero__caption{padding:0}.hero__ticker{margin-top:58px}.work,.capabilities,.archive{padding:80px 0}.section-heading{margin-bottom:45px}.section-heading h2{font-size:clamp(42px,12vw,72px)}.featured-list{gap:70px}.featured-project,.featured-project--reverse{grid-template-columns:1fr;gap:22px}.featured-project--reverse .featured-project__visual,.featured-project--reverse .featured-project__content{order:initial}.featured-project__title h3{font-size:clamp(42px,12vw,66px);line-height:.94}.project__image{aspect-ratio:4/3}.case-summary{font-size:12px}.studio-console{transform:none}.capability-deck{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;border:0;gap:12px;padding:2px 1px 12px;scrollbar-width:none}.capability-deck::-webkit-scrollbar{display:none}.capability{flex:0 0 min(82vw,310px);min-height:235px;border:1px solid var(--ink)!important;scroll-snap-align:start}.capability h3{font-size:40px}.archive-grid{grid-template-columns:1fr 1fr;gap:28px 12px}.archive-card figure,.archive-card:nth-child(n) figure{aspect-ratio:1/1}.archive-card h3{font-size:clamp(24px,7vw,34px)}.archive-card p{font-size:10px;line-height:1.6}.manifesto{grid-template-columns:1fr;padding:80px 0}.manifesto__note{grid-column:1;width:min(260px,100%)}.contact{padding:78px 20px 24px}.contact__layout{margin-bottom:55px}.contact__content h2{font-size:clamp(52px,16vw,82px)}.contact__primary{grid-template-columns:minmax(0,1fr) auto}.contact__primary span{grid-column:1}.contact__primary strong{grid-column:1;font-size:19px}.contact__primary i{grid-column:2;grid-row:1/3}.contact-card{grid-template-columns:24px minmax(0,1fr) auto}.contact__footer{grid-template-columns:1fr auto}.contact__footer>span{grid-column:1/-1;text-align:left}.social-icons a{width:38px;height:38px}.menu-panel__inner{padding-top:85px}.menu-panel__inner>a{font-size:clamp(32px,11vw,58px)}}
@media(max-width:430px){:root{--shell:calc(100% - 24px)}.hero__title{font-size:13.2vw}.hero__title-line--offset{padding-left:5vw}.eyebrow,.section-number{font-size:8px}.section-heading h2{font-size:11.5vw}.featured-project__title h3{font-size:11.5vw}.case-tags{gap:5px}.case-tags span{padding:6px 8px;font-size:7px}.archive-grid{gap:24px 10px}.archive-card h3{font-size:6.7vw}.archive-card p{font-size:9.5px}.archive-card span,.archive-card b{font-size:7px}.console-body{padding:18px 14px;font-size:9px}.capability{flex-basis:min(86vw,285px);padding:18px}.contact-card strong{font-size:22px}.contact__footer{grid-template-columns:1fr}.social-icons{grid-row:1}.footer-github{grid-row:2}.contact__footer>span{grid-row:3}.menu-toggle span{display:none}}
@media(max-width:350px){:root{--shell:calc(100% - 20px)}.hero__title{font-size:12.8vw}.archive-grid{grid-template-columns:1fr}.archive-card figure,.archive-card:nth-child(n) figure{aspect-ratio:16/10}.archive-card h3{font-size:30px}.archive-card p{font-size:10px}.contact{padding-inline:14px}}
@media(hover:none),(pointer:coarse){.project__hover-label{display:none}.cursor-dot,.cursor-ring{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.hero__image-wrap img{transform:none!important}}
.portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}
