:root{--ink:#17221d;--paper:#f4f1e9;--line:#cec9bd;--moss:#244a39;--lime:#d6e56a;--muted:#687169}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}a{color:inherit}.site-header{width:min(1240px,calc(100% - 48px));margin:auto;min-height:92px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-family:Georgia,serif;font-size:28px;font-weight:bold;letter-spacing:-.1em;text-decoration:none}.wordmark span{color:var(--moss)}nav{display:flex;gap:26px}nav a,.social-links a{text-decoration:none;font-size:14px}nav a:hover,.social-links a:hover,.text-link:hover,.project a:hover{color:var(--moss);text-decoration:underline;text-underline-offset:4px}.hero,.section,.contact{width:min(1240px,calc(100% - 48px));margin:auto}.hero{min-height:calc(100vh - 92px);display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center;padding:74px 0}.eyebrow,.project-type,.project-index{color:var(--moss);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.055em;line-height:.94}h1{font-size:clamp(72px,11vw,154px);margin:20px 0 30px}em{color:var(--moss);font-weight:inherit}.lead{max-width:570px;color:#3e4941;font-size:clamp(18px,2vw,24px);line-height:1.45}.actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:38px}.button{display:inline-flex;gap:18px;align-items:center;padding:15px 20px;text-decoration:none;font-weight:650;font-size:14px}.button-primary{background:var(--ink);color:#fff}.button-primary:hover{background:var(--moss)}.text-link{font-size:14px;font-weight:650;text-underline-offset:5px}.portrait-frame{justify-self:end;width:min(100%,402px)}.portrait-frame img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(100%) contrast(1.05)}.portrait-frame p{color:var(--muted);font-family:Georgia,serif;font-style:italic;margin:12px 0 0}.section{border-top:1px solid var(--line);padding:116px 0}.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.split h2,.section-heading h2,.interests h2,.contact h2{font-size:clamp(44px,5vw,74px);margin:19px 0 0}.prose{max-width:650px;font-size:20px;color:#38423b}.facts{margin:45px 0 0;border-top:1px solid var(--line)}.facts div{padding:15px 0;display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--line)}.facts dt{color:var(--muted);font-size:14px}.facts dd{margin:0;font-size:15px;font-weight:650}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:48px}.project-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}.project{min-height:300px;display:grid;grid-template-columns:46px 1fr;gap:20px;padding:27px;background:#e9e6dd}.project-featured{grid-row:span 2;min-height:614px;background:var(--moss);color:#fff;align-items:end}.project-featured .project-index,.project-featured .project-type{color:var(--lime)}.project h3{margin:10px 0 13px;font-family:Georgia,serif;font-size:clamp(28px,3vw,43px);font-weight:400;letter-spacing:-.04em;line-height:1}.project p:not(.project-index):not(.project-type){max-width:410px;color:inherit;opacity:.8}.project a{display:inline-block;margin-top:15px;font-size:14px;font-weight:700;text-underline-offset:5px}.interests{background:var(--ink);color:#f7f4ed;width:100%;padding:116px max(24px,calc((100% - 1240px)/2))}.interests .eyebrow{color:var(--lime)}.interests h2{margin-bottom:54px}.interests ul{padding:0;margin:0;list-style:none;border-top:1px solid #536158}.interests li{padding:22px 0;display:flex;justify-content:space-between;gap:30px;border-bottom:1px solid #536158;font-family:Georgia,serif;font-size:clamp(21px,2.5vw,34px)}.interests li span{color:#b7beb7;font-family:Inter,sans-serif;font-size:13px;align-self:center}.contact{padding:124px 0}.contact h2{margin:20px 0 45px}.contact-email{font-family:Georgia,serif;font-size:clamp(23px,4vw,54px);text-decoration-thickness:1px;text-underline-offset:8px}.social-links{display:flex;gap:24px;margin-top:56px}.social-links a{color:var(--muted)}footer{width:min(1240px,calc(100% - 48px));margin:auto;padding:12px 0 16px;border-top:1px solid var(--line);color:var(--muted);display:flex;justify-content:space-between;font-size:12px}@media(max-width:760px){.site-header{min-height:70px;width:min(100% - 32px,1240px)}nav{gap:13px}nav a{font-size:12px}.hero,.section,.contact{width:min(100% - 32px,1240px)}.hero{min-height:auto;grid-template-columns:1fr;gap:48px;padding:82px 0 68px}.portrait-frame{justify-self:start;max-width:280px}.section{padding:72px 0}.split{grid-template-columns:1fr;gap:36px}.prose{font-size:18px}.section-heading{display:block}.section-heading .text-link{display:inline-block;margin-top:22px}.project-grid{grid-template-columns:1fr}.project-featured{min-height:380px}.project{min-height:270px}.interests{padding:72px 16px}.interests li{display:block}.interests li span{display:block;margin-top:7px}.contact{padding:74px 0}footer{width:min(100% - 32px,1240px)}}
.archive-hero,.project-list{width:min(900px,calc(100% - 48px));margin:auto}.archive-hero{padding:130px 0 96px}.archive-hero h1{font-size:clamp(64px,10vw,128px);margin:18px 0 30px}.project-list{padding-bottom:110px}.case-study{display:grid;grid-template-columns:165px 1fr;gap:45px;padding:45px 0;border-top:1px solid var(--line)}.case-study:last-child{border-bottom:1px solid var(--line)}.case-meta{display:grid;gap:10px;color:var(--moss);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.case-study h2{font-size:clamp(37px,5vw,64px);margin:0 0 16px}.case-intro{max-width:640px;font-family:Georgia,serif;font-size:23px;line-height:1.25}.case-study dl{margin:30px 0}.case-study dl div{display:grid;grid-template-columns:110px 1fr;gap:15px;padding:11px 0;border-top:1px solid var(--line)}.case-study dt{color:var(--muted);font-size:13px}.case-study dd{margin:0;font-size:14px}.case-note{color:var(--muted);font-size:14px}@media(max-width:760px){.archive-hero,.project-list{width:min(100% - 32px,900px)}.archive-hero{padding:82px 0 65px}.case-study{grid-template-columns:1fr;gap:22px;padding:32px 0}.case-study dl div{grid-template-columns:1fr;gap:4px}}
.research-tools{display:grid;grid-template-columns:1fr 1fr;gap:80px}.research-tools h2{font-size:clamp(44px,5vw,74px);margin:19px 0 0}.tool-groups{border-top:1px solid var(--line)}.tool-groups div{padding:21px 0;border-bottom:1px solid var(--line)}.tool-groups h3{font-size:14px;margin:0 0 8px}.tool-groups p{margin:0;color:var(--muted);font-family:Georgia,serif;font-size:20px}@media(max-width:760px){.research-tools{grid-template-columns:1fr;gap:38px}.tool-groups p{font-size:18px}}
.bottom-pattern{height:310px;position:relative;overflow:hidden;background:var(--moss);isolation:isolate}.pattern-grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(#d6e56a 1px,transparent 1px),linear-gradient(90deg,#d6e56a 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent,black 22%,black 78%,transparent)}.pattern-orbit{position:absolute;border:1px solid rgba(214,229,106,.5);border-radius:50%;z-index:1}.orbit-one{width:460px;height:460px;top:-250px;left:12%}.orbit-two{width:680px;height:680px;bottom:-470px;right:9%}.pattern-line{position:absolute;height:1px;background:linear-gradient(90deg,transparent,#d6e56a,transparent);transform-origin:left;opacity:.75;z-index:2}.line-one{width:58%;top:56%;left:3%;transform:rotate(-13deg)}.line-two{width:40%;top:25%;right:-4%;transform:rotate(31deg)}.pattern-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 7px rgba(214,229,106,.12),0 0 25px rgba(214,229,106,.6);z-index:3}.dot-one{left:32%;top:48%}.dot-two{right:24%;top:20%}.dot-three{right:10%;bottom:26%}@media(max-width:760px){.bottom-pattern{height:210px}.orbit-one{left:-42%;top:-310px}.orbit-two{right:-60%;bottom:-560px}.line-one{width:95%}.line-two{width:70%}}
.portrait-frame{width:min(100%,360px)!important}.portrait-frame>p{display:none}.bottom-contact{position:relative;z-index:4;width:min(1240px,calc(100% - 48px));margin:auto;padding-top:70px;color:#fff}.bottom-contact p{margin:0 0 8px;color:var(--lime);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.bottom-contact h2{margin:0 0 16px;font-family:Georgia,serif;font-size:clamp(28px,4vw,48px);font-weight:400;letter-spacing:-.04em;line-height:.95}.bottom-contact h2 em{color:var(--lime)}.bottom-contact>a{font-size:15px;font-weight:700;color:#fff;text-underline-offset:4px}.bottom-contact>div{display:flex;gap:18px;margin-top:15px}.bottom-contact>div a{color:#d7ddd7;font-size:13px;text-decoration:none}.bottom-contact>div a:hover{text-decoration:underline}footer{justify-content:center!important;text-align:center}@media(max-width:760px){.bottom-contact{width:min(100% - 32px,1240px);padding-top:48px}}
.site-footer{display:flex!important;align-items:center;justify-content:center!important;text-align:center!important}
.portfolio-footer{position:relative;display:flex!important;align-items:center;justify-content:center!important;text-align:center!important}.portfolio-footer>a{position:absolute;right:0;color:inherit;font-size:12px;text-underline-offset:4px}@media(max-width:760px){.portfolio-footer{flex-direction:column;gap:8px}.portfolio-footer>a{position:static}}
.project-visual{margin:25px 0}.project-visual img{display:block;width:100%;max-width:680px;border:1px solid var(--line);background:#fff}.project-visual figcaption{margin-top:8px;color:var(--muted);font-size:12px}
.environment-panel{position:relative;isolation:isolate;background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}.environment-panel::after{content:"";position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background-color:#fff;background-image:linear-gradient(rgba(23,34,29,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(23,34,29,.08) 1px,transparent 1px);background-size:28px 28px}.environment-panel::before{content:"";position:absolute;top:22px;left:0;width:65px;height:3px;background:#17221d}.environment-panel .tool-groups{border-color:rgba(23,34,29,.25)}.environment-panel .tool-groups div{border-color:rgba(23,34,29,.25)}.environment-panel .tool-groups p{color:#42525a}
.bottom-pattern{min-height:310px}.bottom-contact a{position:relative;z-index:5}@media(max-width:760px){.site-header{min-height:auto;padding:14px 0 12px;align-items:flex-start;gap:12px}.site-header nav{flex:1;justify-content:flex-end;gap:8px;flex-wrap:wrap}.site-header nav a{padding:5px 0;font-size:11px}.wordmark{font-size:24px}.hero{padding-top:58px}.hero-content{width:100%}.hero h1{font-size:clamp(58px,18vw,84px)}.lead{font-size:18px}.actions{gap:16px;margin-top:28px}.button{padding:13px 16px}.portrait-frame{width:min(100%,280px)!important}.section{padding:60px 0}.facts{margin-top:30px}.facts div{grid-template-columns:1fr;gap:5px}.interests li{padding:18px 0}.bottom-pattern{height:auto;min-height:300px}.bottom-contact{padding-top:44px}.bottom-contact h2{font-size:31px}.bottom-contact>div{gap:14px}.environment-panel{clip-path:inset(0 -32px)}.project-list{padding-bottom:70px}.case-study h2{font-size:34px}.case-intro{font-size:20px}}
.bottom-pattern{min-height:310px}.bottom-contact a{position:relative;z-index:5}@media(max-width:760px){.site-header{min-height:auto;padding:14px 0 12px;align-items:flex-start;gap:12px}.site-header nav{flex:1;justify-content:flex-end;gap:8px;flex-wrap:wrap}.site-header nav a{padding:5px 0;font-size:11px}.wordmark{font-size:24px}.hero{padding-top:58px}.hero-content{width:100%}.hero h1{font-size:clamp(58px,18vw,84px)}.lead{font-size:18px}.actions{gap:16px;margin-top:28px}.button{padding:13px 16px}.portrait-frame{justify-self:start!important;margin-left:0!important;margin-right:auto!important;width:78vw!important;max-width:280px}.section{padding:60px 0}.facts{margin-top:30px}.facts div{grid-template-columns:1fr;gap:5px}.interests li{padding:18px 0}.bottom-pattern{height:auto;min-height:300px}.bottom-contact{padding-top:44px}.bottom-contact h2{font-size:31px}.bottom-contact>div{gap:14px}.environment-panel{clip-path:inset(0 -32px)}.project-list{padding-bottom:70px}.case-study h2{font-size:34px}.case-intro{font-size:20px}}
