:root{--pearl:#f7f7f3;--ink:#121313;--muted:#686a66;--line:#d9dad4;--green:#1d5b43;--green-soft:#e6eee9;--white:#fff;--mono:'DM Mono',monospace;--sans:'Inter',Arial,sans-serif;--max:1280px;--pad:32px;--header:72px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pearl);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(100%,var(--max));margin:auto;padding-inline:var(--pad)}.skip-link{position:absolute;z-index:100;left:16px;top:-60px;background:var(--ink);color:var(--white);padding:10px 14px}.skip-link:focus{top:16px}:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.site-header{height:var(--header);border-bottom:1px solid var(--line);background:rgba(247,247,243,.94);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.header-inner{height:100%;display:flex;align-items:center;gap:28px}.brand{font-size:18px;font-weight:600;letter-spacing:-.05em}.site-nav{display:flex;gap:28px;margin-left:auto;font-size:14px}.site-nav a,.header-contact{transition:color .18s ease}.site-nav a:hover,.header-contact:hover,.text-link:hover{color:var(--green)}.header-contact{font-size:14px;border:1px solid var(--ink);padding:8px 14px;margin-left:6px}.nav-toggle{display:none}
.hero{min-height:calc(100svh - var(--header));display:flex;align-items:center;border-bottom:1px solid var(--line);padding-block:42px}.hero-layout{display:grid;grid-template-columns:minmax(280px,.66fr) minmax(620px,1.34fr);gap:56px;align-items:center}.hero-copy{max-width:435px}.hero-role,.section-number,.workspace-label,.artifact-title,.artifact-counter,.venture-status{font:500 11px/1.2 var(--mono);letter-spacing:.045em;text-transform:uppercase}.hero-role{color:var(--green);margin:0 0 22px}.hero h1{font-size:clamp(54px,6.25vw,100px);line-height:.94;letter-spacing:-.075em;font-weight:600;margin:0}.hero-copy>p:not(.hero-role){font-size:18px;line-height:1.45;color:#40423f;margin:28px 0}.text-link{display:inline-flex;gap:12px;align-items:center;font-size:15px;color:var(--green);font-weight:500}.text-link span{font-size:19px;line-height:1;transition:transform .18s}.text-link:hover span{transform:translate(3px,-3px)}
.artifact{border:1px solid #bfc3bb;background:var(--white);min-height:570px;overflow:hidden;box-shadow:14px 14px 0 var(--green-soft)}.artifact-toolbar{min-height:54px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;gap:16px}.artifact-title{color:var(--muted)}.artifact-tabs{display:flex;gap:2px}.artifact-tab{border:0;background:none;padding:8px 10px;color:var(--muted);cursor:pointer;font-size:12px}.artifact-tab.is-active{color:var(--green);box-shadow:inset 0 -1px var(--green)}.artifact-counter{text-align:right;color:var(--muted)}.artifact-viewport{position:relative;min-height:515px}.artifact-screen{animation:artifact-in .35s ease both;min-height:515px}.artifact-screen[hidden]{display:none}@keyframes artifact-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.research-screen{display:grid;grid-template-columns:118px minmax(0,1fr) 190px}.artifact-sidebar{border-right:1px solid var(--line);padding:24px 12px;display:grid;align-content:start;gap:7px;font-size:11px;color:var(--muted)}.artifact-sidebar span{padding:8px}.artifact-sidebar .is-selected{background:var(--green-soft);color:var(--green);font-weight:600}.transcript{padding:28px 28px 18px}.workspace-label{display:block;color:var(--green);margin-bottom:20px}.transcript p{display:grid;grid-template-columns:47px 76px 1fr;gap:9px;font-size:12px;line-height:1.45;margin:0;padding:12px 0;border-bottom:1px solid #ecece8}.transcript time{color:#8a8c88;font:11px var(--mono)}.transcript b{font-size:11px}.transcript .quote{margin:7px -11px;padding:14px 11px;border:0;background:var(--green-soft)}.insight-note{border-left:1px solid var(--line);background:#fcfcfa;padding:28px 18px;color:#4c4e4a}.insight-note span,.signal-note span{display:block;font:11px var(--mono);color:var(--green);text-transform:uppercase;margin-bottom:22px}.insight-note strong,.signal-note strong{display:block;font-size:18px;line-height:1.15;letter-spacing:-.04em;color:var(--ink)}.insight-note p,.signal-note p{font-size:12px;line-height:1.45;margin-top:18px}
.plan-screen,.signal-screen{padding:34px}.plan-heading,.signal-heading{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.plan-heading p,.signal-heading p{font-size:14px;margin:0;color:var(--muted)}.plan-list{margin-top:28px;border-top:1px solid var(--line)}.plan-row{display:grid;grid-template-columns:100px minmax(190px,1fr) 90px 100px;gap:18px;align-items:center;border-bottom:1px solid var(--line);padding:17px 12px;font-size:12px}.plan-row b{font:11px var(--mono);color:var(--green)}.plan-row em{font-size:11px;font-style:normal;color:var(--green)}.plan-row-head{font:10px var(--mono);color:var(--muted);text-transform:uppercase;padding-block:11px}.plan-footnote{font:12px var(--mono);color:var(--muted);margin:18px 0}.signal-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;margin-top:35px}.signal-chart{padding-right:26px}.signal-chart svg{width:100%;height:auto;overflow:visible}.chart-grid line{stroke:#e0e1db;stroke-width:1}.chart-baseline{fill:none;stroke:#aeb3ac;stroke-dasharray:5 5;stroke-width:2}.chart-line{fill:none;stroke:var(--green);stroke-width:4}.signal-chart circle{fill:var(--green)}.chart-axis{display:flex;justify-content:space-between;color:#858781;font:10px var(--mono)}.signal-note{border-left:1px solid var(--line);padding:25px}.artifact-disclaimer{font:10px var(--mono);color:var(--muted);margin:22px 0 0}
.intro-band{border-bottom:1px solid var(--line);padding:84px 0}.intro-band p{max-width:970px;font-size:clamp(28px,3.2vw,48px);line-height:1.12;letter-spacing:-.055em;margin:0}.section{padding:120px 0;border-bottom:1px solid var(--line)}.section-intro{display:grid;grid-template-columns:90px minmax(280px,1.3fr) minmax(220px,.7fr);gap:20px;align-items:baseline;margin-bottom:65px}.section-number{color:var(--green);margin:0}.section-intro h2,.site-footer h2{font-size:clamp(38px,4.5vw,64px);line-height:.98;letter-spacing:-.065em;font-weight:600;margin:0}.section-intro>p:last-child{font-size:15px;line-height:1.45;color:var(--muted);margin:0;max-width:30ch}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 28px}.project-card{border-top:1px solid var(--ink);padding-top:16px;display:grid;gap:17px}.project-media{display:block;overflow:hidden;border:1px solid var(--line);background:#eceee9;aspect-ratio:4/3}.project-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-card:hover .project-media img{transform:scale(1.025)}.project-meta{display:grid;gap:8px}.project-meta-top{display:flex;justify-content:space-between;font:11px var(--mono);color:var(--green);text-transform:uppercase}.project-meta h3{font-size:28px;line-height:1.05;letter-spacing:-.05em;margin:7px 0 0}.project-company{font-size:14px;margin:0;color:var(--muted)}.project-summary{font-size:15px;line-height:1.45;color:#444641;margin:6px 0}.project-value{border-left:2px solid var(--green);padding-left:11px;margin:9px 0;font-size:13px;color:#4e514c}.project-value span:first-child{display:block;color:var(--green);font:10px var(--mono);text-transform:uppercase;margin-bottom:3px}.project-link{font-size:13px;color:var(--green);width:max-content;margin-top:3px}.project-link::after{content:' ↗';font-size:16px}
.results-section{background:var(--ink);color:var(--pearl)}.results-layout{display:grid;grid-template-columns:90px 1.25fr .75fr;gap:20px;align-items:end}.results-layout .section-number{color:#9bb6a7}.results-figure{font-size:clamp(42px,5.6vw,83px);line-height:.98;letter-spacing:-.07em;margin:0}.results-figure span{color:#8bb09a}.results-caption{font-size:14px;color:#bdbfb9;margin:14px 0 0}.results-copy{font-size:17px;line-height:1.45;color:#d7d8d3;margin:0;max-width:29ch}
.ventures-list{border-top:1px solid var(--ink)}.venture-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:20px;padding:30px 0;border-bottom:1px solid var(--line);align-items:center}.venture-row>div{grid-column:2}.venture-row h3{font-size:32px;letter-spacing:-.05em;margin:0 0 7px}.venture-row h3::before{content:'↗';font:18px var(--mono);color:var(--green);margin-right:18px}.venture-row p{max-width:55ch;color:var(--muted);margin:0}.venture-row>a,.venture-row>.venture-status{grid-column:3;grid-row:1;white-space:nowrap}.venture-status{color:var(--muted);padding:7px 0}
.split-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:90px}.split-layout .section-intro{display:block;margin:0}.split-layout .section-number{margin-bottom:18px}.about-copy{font-size:clamp(20px,2.15vw,30px);line-height:1.22;letter-spacing:-.04em}.about-copy p{margin:0 0 28px}.about-copy p+ p{color:#555753}.about-copy .text-link{font-size:15px;letter-spacing:0}.services-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--ink)}.services-list li{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);font-size:25px;line-height:1.1;letter-spacing:-.045em}.services-list span{font-size:15px;line-height:1.45;letter-spacing:0;color:var(--muted);max-width:35ch}
.site-footer{padding:80px 0;background:var(--green);color:var(--pearl)}.footer-inner{display:flex;align-items:end;justify-content:space-between;gap:30px}.footer-inner .section-number{color:#b5cfc0;margin:0 0 18px}.site-footer h2{max-width:650px}.footer-email{font-size:clamp(18px,2vw,28px);letter-spacing:-.04em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:5px;white-space:nowrap}.footer-email:hover{color:#d6ebdc}
/* Case studies */.project-template .site-header{background:var(--pearl)}.project-template .header-contact{border-color:var(--ink)}.project-hero{border-bottom:1px solid var(--line)}.project-hero-content{padding-top:95px;padding-bottom:65px}.project-hero-content .section-kicker,.project-category{font:11px var(--mono);text-transform:uppercase;color:var(--green)}.project-hero h1{font-size:clamp(52px,7vw,102px);line-height:.94;letter-spacing:-.07em;max-width:11ch;margin:22px 0}.project-subtitle{max-width:690px;font-size:20px;color:var(--muted)}.project-hero-actions,.hero-actions{display:flex;gap:12px;margin-top:28px}.button{border:1px solid var(--ink);padding:11px 16px;font-size:14px}.button-primary{background:var(--ink);color:var(--white)}.button-secondary:hover{background:var(--green-soft)}.project-hero-image{border-top:1px solid var(--line)}.project-hero-image img{display:block;width:100%;height:auto;max-height:780px;object-fit:contain;background:#fcf8ed}.section-divider{border-bottom:1px solid var(--line)}.project-overview-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px}.project-overview-grid h2,.project-process h2,.project-outcome h2{font-size:46px;letter-spacing:-.06em;line-height:1;margin:0 0 24px}.project-overview-copy>p,.project-outcome>p,.project-section-lead{font-size:18px;color:var(--muted);max-width:60ch}.project-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);margin-top:32px}.project-context-item{padding-top:15px}.project-context-item h3,.project-metadata h3{font:11px var(--mono);text-transform:uppercase;color:var(--green);margin:0 0 8px}.project-context-item p{font-size:14px;color:var(--muted);margin:0}.project-metadata{border-top:1px solid var(--ink)}.project-metadata article{padding:16px 0;border-bottom:1px solid var(--line)}.project-metadata p,.project-metadata ul{margin:0;padding:0;list-style:none;font-size:14px;color:var(--muted)}.project-metadata li+li{margin-top:5px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:38px}.process-item{border-top:1px solid var(--ink);padding-top:15px}.process-index{font:11px var(--mono);color:var(--green);margin:0}.process-item h3{font-size:22px;letter-spacing:-.04em;margin:20px 0 8px}.process-item p{font-size:14px;color:var(--muted);margin:0}.project-outcome-list{margin:26px 0 0;padding:0;list-style:none;border-top:1px solid var(--line);max-width:750px}.project-outcome-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}.project-outcome-list li::before{content:'↗';color:var(--green);margin-right:12px}.project-next-step{margin-top:50px;border-left:2px solid var(--green);padding-left:18px}.project-next-step h3{font:11px var(--mono);text-transform:uppercase;color:var(--green)}.next-project-link{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px;border-top:1px solid var(--ink);padding-top:16px}.next-project-link img{width:100%;border:1px solid var(--line)}.next-project-link h2{font-size:43px;letter-spacing:-.06em;line-height:1;margin:0}.next-project-link p{color:var(--muted)}.project-cta{background:var(--green-soft)}.project-cta-inner{max-width:750px}.project-cta-inner h2{font-size:48px;letter-spacing:-.06em;line-height:1;margin:10px 0}.site-footer.section{border:0}
@media(max-width:960px){:root{--pad:24px}.hero-layout{grid-template-columns:1fr;gap:42px}.hero{padding-block:72px}.hero-copy{max-width:630px}.artifact{min-height:500px}.artifact-viewport,.artifact-screen{min-height:445px}.research-screen{grid-template-columns:100px 1fr 165px}.section-intro{grid-template-columns:65px 1fr}.section-intro>p:last-child{grid-column:2}.results-layout{grid-template-columns:65px 1fr}.results-copy{grid-column:2}.split-layout{gap:45px}.work-grid{gap:44px 20px}}
@media(max-width:640px){:root{--pad:18px;--header:64px}.site-nav{display:none}.header-contact{margin-left:auto}.nav-toggle{display:block;order:3;width:34px;height:34px;border:0;background:transparent;padding:0}.nav-toggle span,.nav-toggle::before{content:'';display:block;width:21px;height:1px;background:var(--ink);margin:6px auto;transition:transform .2s}.nav-open .site-nav{display:flex;position:absolute;top:63px;left:0;right:0;background:var(--pearl);border-bottom:1px solid var(--line);padding:18px;flex-direction:column;gap:18px}.nav-open .nav-toggle span{transform:translateY(-3px) rotate(45deg)}.nav-open .nav-toggle::before{transform:translateY(4px) rotate(-45deg)}.nav-open .header-contact{display:none}.hero{padding:45px 0 55px}.hero h1{font-size:58px}.hero-copy>p:not(.hero-role){font-size:16px;margin:22px 0}.artifact{min-height:430px;box-shadow:8px 8px 0 var(--green-soft)}.artifact-toolbar{grid-template-columns:1fr auto;padding:0 12px}.artifact-title{display:none}.artifact-counter{font-size:10px}.artifact-tabs{gap:0}.artifact-tab{font-size:11px;padding:9px 8px}.artifact-viewport,.artifact-screen{min-height:375px}.research-screen{grid-template-columns:1fr}.artifact-sidebar{display:none}.transcript{padding:22px 16px}.transcript p{grid-template-columns:38px 65px 1fr;gap:6px;font-size:10px;padding:9px 0}.transcript time,.transcript b{font-size:9px}.transcript .quote{margin:5px -6px;padding:10px 6px}.insight-note{display:none}.plan-screen,.signal-screen{padding:20px 16px}.plan-heading,.signal-heading{display:block;padding-bottom:14px}.plan-heading p,.signal-heading p{font-size:12px;margin-top:7px}.plan-list{margin-top:18px}.plan-row{grid-template-columns:66px 1fr 60px;padding:11px 5px;gap:8px;font-size:10px}.plan-row span:nth-child(3),.plan-row-head span:nth-child(3){display:none}.plan-row em{font-size:9px}.plan-row-head{font-size:9px}.signal-layout{grid-template-columns:1fr;margin-top:28px}.signal-chart{padding:0}.signal-note{border:0;border-top:1px solid var(--line);padding:15px 0;margin-top:16px}.signal-note span{margin-bottom:10px}.signal-note strong{font-size:15px}.signal-note p{display:none}.artifact-disclaimer{font-size:8px}.intro-band{padding:55px 0}.intro-band p{font-size:29px}.section{padding:70px 0}.section-intro{display:block;margin-bottom:38px}.section-number{margin-bottom:16px!important}.section-intro h2{font-size:45px}.section-intro>p:last-child{font-size:14px;margin-top:14px}.work-grid{grid-template-columns:1fr;gap:44px}.project-meta h3{font-size:26px}.results-layout{display:block}.results-figure{font-size:52px}.results-copy{font-size:16px;margin-top:28px}.venture-row{display:block;padding:25px 0}.venture-row h3{font-size:29px}.venture-row>a,.venture-row>.venture-status{display:inline-flex;margin-top:18px}.split-layout{display:block}.about-copy{font-size:23px;margin-top:36px}.services-list li{display:block;font-size:25px}.services-list span{display:block;font-size:14px;margin-top:9px}.footer-inner{display:block}.footer-email{display:inline-block;margin-top:38px;font-size:19px}.project-hero-content{padding-top:62px;padding-bottom:42px}.project-subtitle{font-size:17px}.project-overview-grid,.process-grid,.next-project-link{grid-template-columns:1fr;gap:30px}.project-context-grid{grid-template-columns:1fr}.project-overview-grid h2,.project-process h2,.project-outcome h2{font-size:38px}.project-cta-inner h2{font-size:39px}.site-footer h2{font-size:43px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Writing keeps the same editorial rhythm as the portfolio. */
#writing{scroll-margin-top:var(--header)}
.writing-list{border-top:1px solid var(--ink)}
.writing-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:35px;padding:32px 0;border-bottom:1px solid var(--line)}
.writing-row time{font:11px/1.5 var(--mono);color:var(--muted);padding-top:6px;text-transform:uppercase}
.writing-story{display:flex;justify-content:space-between;align-items:center;gap:48px;min-width:0}
.writing-copy{max-width:740px}
.writing-copy h3{font-size:clamp(23px,2.4vw,32px);font-weight:500;letter-spacing:-.045em;line-height:1.16;margin:0;transition:color .18s}
.writing-copy p{font-size:15px;line-height:1.5;color:var(--muted);margin:12px 0 14px;max-width:65ch}
.writing-action{font-size:12px;color:var(--green)}
.writing-story:hover h3{color:var(--green)}
.writing-story img{width:160px;height:110px;object-fit:cover;flex-shrink:0;background:var(--green-soft);border:1px solid var(--line)}
.writing-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:30px}
.writing-footer>span{font:10px var(--mono);color:var(--muted);text-transform:uppercase}
@media(max-width:960px){.writing-row{grid-template-columns:105px minmax(0,1fr);gap:25px}.writing-story{gap:24px}.writing-story img{width:130px;height:100px}}
@media(max-width:640px){.writing-row{display:block;padding:25px 0}.writing-row time{display:block;margin-bottom:12px}.writing-story{align-items:flex-start;gap:16px}.writing-story img{width:76px;height:76px;margin-top:4px}.writing-copy h3{font-size:23px;overflow-wrap:anywhere}.writing-copy p{font-size:14px}.writing-footer{align-items:flex-start;flex-direction:column}.writing-footer .text-link{font-size:14px}}

/* Contact paths: one for projects, one for hiring. */
.hero-actions .button{transition:background .18s,border-color .18s,color .18s}.hero-actions .button-primary:hover{background:var(--green);border-color:var(--green)}.hero-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px}
.footer-contact{display:grid;justify-items:end;gap:16px}.footer-actions{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:14px}.footer-actions a,.copy-email{color:var(--pearl);border:0;border-bottom:1px solid rgba(255,255,255,.45);background:none;padding:0 0 3px;cursor:pointer;font-size:14px;transition:color .18s,border-color .18s}.footer-actions a:hover,.copy-email:hover{color:#d6ebdc;border-color:#d6ebdc}.copy-email:focus-visible{outline-color:var(--pearl)}.copy-status{min-height:1.2em;margin:0;font:11px var(--mono);color:#d6ebdc}
@media(max-width:640px){.footer-contact{justify-items:start;margin-top:38px}.footer-contact .footer-email{margin-top:0}.hero-actions{flex-wrap:wrap}}
