:root{color:#202b27;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#202b27;--muted:#606b63;--green:#234c3b;--line:#dce2d8;--paper:#fafbf8;--white:#fff;background:#fafbf8;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body,h1,h2,h3,p,ul,dl,dd{margin:0}ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}::selection{color:#183b29;background:#dcebc5}:focus-visible{outline-offset:5px;border-radius:3px;outline:3px solid #3d7552}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:95px}section[id],article[id]{scroll-margin-top:95px}.container{width:min(1240px,100% - 80px);margin-inline:auto}.icon{vertical-align:middle;flex-shrink:0;width:17px;height:17px}.skip-link{z-index:50;background:var(--green);color:#fff;padding:12px 18px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafbf8f7;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:74px;display:flex}.brand{letter-spacing:-.3px;align-items:center;gap:9px;font-size:15px;font-weight:600;display:flex}.brand-dot{background:#6d8962;border-radius:50%;width:6px;height:6px}.site-nav{align-items:center;gap:30px;font-size:13px;display:flex}.site-nav a{align-items:center;gap:8px;display:inline-flex}.site-nav a:hover,.quiet-link:hover,.back-link:hover{color:#477c51}.site-nav .icon{width:13px;height:13px}.nav-contact{border:1px solid #b4c1ad;border-radius:5px;padding:10px 15px}.nav-contact:hover{background:#eef3e8}.menu-toggle{display:none}.eyebrow{letter-spacing:1.25px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600;line-height:1.7}.intro{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:45px;padding-block:45px 40px;display:flex}.intro h1{letter-spacing:-1.3px;margin-top:13px;font-size:51px;font-weight:600;line-height:1.15}.intro-focus{letter-spacing:-.6px;color:var(--green);margin-top:12px;font-size:23px;line-height:1.4}.intro-description{color:var(--muted);max-width:760px;margin-top:15px;font-size:15px;line-height:1.7}.intro-actions{flex-direction:column;flex-shrink:0;align-items:start;gap:15px;padding-bottom:3px;display:flex}.button{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:5px;justify-content:center;align-items:center;gap:25px;padding:13px 19px;font-size:13px;font-weight:500;display:inline-flex}.button:hover{background:#35664a}.button .icon{width:15px;height:15px}.quiet-link{align-items:center;gap:8px;font-size:13px;display:inline-flex}.quiet-link .icon{width:13px;height:13px}.work-section{padding-top:34px}.section-heading{justify-content:space-between;align-items:end;gap:30px;display:flex}.section-heading h2,.expertise-section h2{letter-spacing:-.8px;margin-top:6px;font-size:28px;font-weight:500;line-height:1.3}.section-heading>p{color:var(--muted);padding-bottom:4px;font-size:13px}.section-heading>p>span{margin-left:10px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:18px;margin-top:24px;display:grid}.project-card{border:1px solid var(--line);background:#fff;border-radius:7px;flex-direction:column;padding:25px;display:flex}.project-card-heading{grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:start;gap:14px;min-height:65px;display:grid}.project-card-heading time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:5px;font-size:13px;line-height:1.6}.project-card h3{letter-spacing:-.4px;font-size:25px;font-weight:600;line-height:1.3}.project-role{color:var(--muted);margin-top:9px;font-size:13px;line-height:1.6}.project-purpose{color:var(--green);text-wrap:pretty;margin-top:23px;font-size:16px;line-height:1.65}.project-work{flex-grow:1;margin-top:25px}.project-work h4{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:600;line-height:1.6}.project-work p{color:var(--muted);text-wrap:pretty;font-size:15px;line-height:1.75}.project-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;display:grid}.project-facts dt{color:#354d3b;margin-bottom:8px;font-size:13px;font-weight:600;line-height:1.6}.project-facts dd{color:#5b665f;text-wrap:pretty;font-size:15px;line-height:1.8}.project-footer{margin-top:25px}.technologies{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;line-height:1.4;display:flex}.technologies li{color:var(--ink);background:#f1f4ec;border-radius:4px;padding:6px 9px}.project-details{border-top:1px solid var(--line);min-height:44px;color:var(--green);justify-content:space-between;align-items:center;gap:14px;margin-top:24px;padding-top:14px;font-size:13px;font-weight:500;display:flex}.project-details:hover{color:#477c51}.project-details .icon{width:17px;height:17px}.experience-section{padding-block:65px 55px}.experience-section .section-heading{margin-bottom:25px}.experience-list{border-top:1px solid var(--line)}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:130px 1fr 1.4fr;align-items:center;gap:30px;padding-block:22px;display:grid}.experience-period{color:var(--muted);font-size:12px}.experience-row h3{letter-spacing:-.3px;font-size:16px;font-weight:500}.experience-row>div>p{color:var(--muted);margin-top:5px;font-size:13px}.experience-detail{color:var(--muted);max-width:450px;font-size:13px;line-height:1.7}.expertise-section{border-bottom:1px solid var(--line);grid-template-columns:1fr 2.1fr;gap:60px;padding-bottom:55px;display:grid}.expertise-list{grid-template-columns:1fr 1fr;gap:22px 35px;display:grid}.expertise-list dt{margin-bottom:7px;font-size:13px;font-weight:500}.expertise-list dd{color:var(--muted);font-size:13px;line-height:1.8}.contact-section{grid-template-columns:1fr 1.3fr;align-items:center;gap:50px;padding-block:50px;display:grid}.contact-section h2{letter-spacing:-1px;margin-top:7px;font-size:34px;font-weight:500}.contact-section>div>p:not(.eyebrow){color:var(--muted);margin-top:13px;font-size:13px;line-height:1.8}.email-link{letter-spacing:-.6px;border-bottom:1px solid #c8d3c1;justify-content:space-between;align-items:center;gap:20px;padding-bottom:15px;font-size:22px;display:flex}.email-link:hover{color:#477c51}.contact-links>div{color:var(--muted);align-items:center;gap:25px;margin-top:17px;font-size:12px;display:flex}.contact-links>div>a{align-items:center;gap:8px;display:flex}.contact-links>div .icon{width:13px;height:13px}.site-footer{border-top:1px solid var(--line)}.footer-inner{color:var(--muted);align-items:center;gap:24px;padding-block:24px;font-size:13px;display:flex}.footer-inner>p:nth-child(2){margin-left:auto}.footer-inner>a{align-items:center;gap:7px;display:inline-flex}.footer-inner .icon{width:12px;height:12px}.project-page{max-width:1000px}.back-link{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.project-page>.back-link{margin-top:30px}.project-page-header{padding-block:42px 32px}.project-page-topline{justify-content:space-between;align-items:center;gap:20px;display:flex}.project-page-topline time{color:var(--muted);font-size:13px}.project-page-header h1{letter-spacing:-1.3px;margin-top:18px;font-size:58px;font-weight:500;line-height:1.15}.project-page-role{color:var(--green);margin-top:12px;font-size:16px}.project-overview{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:30px}.project-overview .project-facts{align-items:start;margin:0}.project-overview .project-facts dt{margin-bottom:8px}.project-overview .project-facts dd{line-height:1.8}.delivery-section{padding-block:43px}.delivery-section h2{letter-spacing:-.8px;margin-top:8px;font-size:27px;font-weight:500}.delivery-grid{grid-template-columns:1fr 1fr;gap:30px 45px;margin-top:30px;display:grid}.delivery-grid h3{letter-spacing:-.2px;font-size:16px;font-weight:500;line-height:1.5}.delivery-grid p{color:var(--muted);margin-top:10px;font-size:15px;line-height:1.9}.project-technology{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:24px}.project-technology h2{margin-bottom:14px;font-size:13px;font-weight:500}.project-technology .technologies{font-size:13px}.project-technology .quiet-link{margin-top:22px}.next-project{justify-content:space-between;align-items:center;gap:25px;padding-block:40px 50px;display:flex}.next-project small{color:var(--muted);font-size:12px}.next-project strong{letter-spacing:-.7px;margin-top:10px;font-size:27px;font-weight:500;display:block}.next-project>.icon{width:25px;height:25px}.resume{max-width:1000px;padding-block:30px 55px}.resume-actions{justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px;display:flex}.resume-header h1{letter-spacing:-1.5px;font-size:43px;font-weight:500}.resume-header p{color:var(--muted);margin-top:10px;font-size:15px;line-height:1.8}.resume-header a{text-underline-offset:3px;text-decoration:underline}.resume-introduction{color:var(--muted);margin-block:25px;font-size:15px;line-height:1.8}.resume section{margin-top:30px}.resume section>h2{text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:10px;font-size:13px;font-weight:500}.resume-project{break-inside:avoid;margin-top:22px}.resume-project>div{justify-content:space-between;align-items:start;gap:25px;display:flex}.resume h3{font-size:15px;font-weight:500;line-height:1.7}.resume h3 small{color:var(--muted);margin-left:10px;font-size:12px;font-weight:400}.resume-project time{color:var(--muted);white-space:nowrap;padding-top:5px;font-size:12px}.resume-project p,.resume-job p,.resume section>p{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.8}.resume-project p strong{color:var(--ink);font-weight:500}.resume-job{margin-top:15px}@media (width>=1600px){.container{width:min(1280px,100% - 100px)}}@media (width<=1100px){.project-grid{grid-template-columns:1fr 1fr}.container{width:calc(100% - 56px)}.intro{gap:30px}.intro h1{font-size:45px}.intro-focus{font-size:20px}.intro-description{max-width:620px;font-size:15px}.intro-actions{gap:13px}.intro-actions .quiet-link{font-size:12px}.project-card{padding:22px}.project-card h3{font-size:24px}.experience-row{grid-template-columns:110px 1fr 1.2fr;gap:25px}.contact-section{gap:30px}.email-link{font-size:19px}.expertise-section{gap:35px}}@media (width<=900px){.intro{align-items:start}.intro h1{font-size:43px}.intro-focus{letter-spacing:-.4px;font-size:18px}.intro-actions{padding-top:36px}.intro-actions .button{white-space:nowrap;gap:15px;font-size:13px}.project-grid{grid-template-columns:1fr 1fr}.experience-row{grid-template-columns:95px 1fr 1.3fr;gap:20px}.experience-detail{font-size:13px}.email-link{font-size:17px}.contact-section{grid-template-columns:1fr 1.4fr;gap:25px}.project-overview .project-facts{gap:20px}}@media (width<=760px){.project-grid{grid-template-columns:1fr}.project-card-heading{min-height:0}html{scroll-padding-top:84px}section[id],article[id]{scroll-margin-top:84px}.container{width:calc(100% - 36px)}.header-inner{flex-wrap:wrap;gap:0;min-height:66px}.brand{font-size:15px}.menu-toggle:not([hidden]){color:var(--ink);background:0 0;border:1px solid #cbd5c3;border-radius:4px;align-items:center;gap:9px;padding:9px 12px;font-size:13px;display:flex}.menu-toggle>span{font-size:13px}.site-nav{flex-direction:column;flex-basis:100%;align-items:stretch;gap:0;width:100%;padding-block:12px 18px;font-size:15px}.site-nav>a{border-top:1px solid var(--line);padding:13px 0}.site-nav .nav-contact{align-self:start;gap:22px;margin-top:8px;padding:10px 13px}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.intro{padding-block:32px 29px;display:block}.intro .eyebrow{letter-spacing:.8px;font-size:12px}.intro h1{letter-spacing:-1px;margin-top:12px;font-size:39px}.intro-focus{max-width:440px;margin-top:11px;font-size:19px;line-height:1.5}.intro-description{max-width:500px;margin-top:13px;font-size:15px;line-height:1.8}.intro-actions{flex-flow:wrap;align-items:center;gap:12px 18px;margin-top:22px;padding:0}.intro-actions .button{gap:12px;padding:12px 15px;font-size:13px}.intro-actions .quiet-link{font-size:13px}.work-section{padding-top:27px}.section-heading{gap:15px}.section-heading h2,.expertise-section h2{letter-spacing:-.7px;font-size:25px}.section-heading>.eyebrow{font-size:12px}.section-heading>p{white-space:nowrap;font-size:13px}.section-heading>p>span{margin-left:5px}.eyebrow{letter-spacing:1px;font-size:12px}.project-grid{gap:15px}.project-card{padding:22px}.project-card h3{font-size:24px}.experience-section{padding-block:45px 38px}.experience-section .section-heading{gap:20px;margin-bottom:23px}.experience-section h2{max-width:220px}.experience-section .quiet-link{white-space:nowrap;gap:5px;font-size:13px}.experience-row{grid-template-columns:minmax(0,1fr);align-items:start;gap:10px;padding-block:21px}.experience-period{grid-area:2/1;padding-top:0;font-size:13px}.experience-row>div{grid-area:1/1}.experience-row h3{font-size:16px}.experience-row>div>p{font-size:12px}.experience-detail{grid-column:1/-1;max-width:500px;font-size:13px}.expertise-section{grid-template-columns:1fr;gap:22px;padding-bottom:38px}.expertise-list{gap:20px 25px}.expertise-list dt{font-size:12px}.expertise-list dd{font-size:12px;line-height:1.8}.contact-section{grid-template-columns:1fr;gap:25px;padding-block:36px}.contact-section h2{font-size:30px}.contact-section>div>p:not(.eyebrow){margin-top:11px;font-size:13px}.email-link{letter-spacing:-.5px;gap:10px;font-size:clamp(15px,4.1vw,22px)}.email-link .icon{width:17px;height:17px}.contact-links>div{gap:23px;font-size:13px}.footer-inner{gap:16px;padding-block:22px;font-size:13px}.footer-inner>p:nth-child(2){display:none}.footer-inner>a{margin-left:auto}.project-page>.back-link{margin-top:25px;font-size:13px}.project-page-header{padding-block:32px 25px}.project-page-topline{align-items:start;gap:15px}.project-page-topline>.eyebrow{letter-spacing:.6px;max-width:220px;font-size:12px}.project-page-topline time{white-space:nowrap;padding-top:2px;font-size:13px}.project-page-header h1{letter-spacing:-1px;margin-top:18px;font-size:43px}.project-page-role{margin-top:10px;font-size:15px;line-height:1.7}.project-overview{padding-block:24px}.project-overview .project-facts{grid-template-columns:1fr;gap:24px}.project-overview .project-facts dt{margin-bottom:7px;font-size:13px}.project-overview .project-facts dd{font-size:15px;line-height:1.8}.delivery-section{padding-block:32px}.delivery-section h2{font-size:25px}.delivery-grid{grid-template-columns:1fr;gap:25px;margin-top:25px}.delivery-grid h3{font-size:15px}.delivery-grid p{margin-top:8px;font-size:15px}.project-technology{padding-block:21px}.next-project{padding-block:32px 40px}.next-project strong{font-size:24px}.resume{padding-block:24px 40px}.resume-actions{gap:15px;margin-bottom:30px}.resume-actions .button{gap:9px;padding:12px;font-size:13px}.resume-actions .back-link{font-size:13px}.resume-header h1{letter-spacing:-1px;font-size:35px}.resume-header p,.resume-introduction{font-size:13px}.resume h3 small{margin-left:0;display:block}.resume-project>div{gap:15px}.resume-project time,.resume-project p,.resume-job p{font-size:13px}.resume section>h2{font-size:12px}}@media (width<=600px){.project-grid{grid-template-columns:1fr}.project-card{padding:23px}.project-card h3{font-size:26px}}@media (width<=360px){.container{width:calc(100% - 30px)}.intro h1{font-size:35px}.intro-focus{font-size:17px}.intro-actions{gap:16px}.intro-actions .quiet-link{font-size:13px}.project-card{padding:20px}.project-page-header h1{font-size:37px}.project-page-topline>.eyebrow{max-width:175px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.project-context{max-width:76ch;padding-top:32px}.project-context h2,.deployment h3,.live-product h2{font-size:16px;font-weight:600}.project-context p,.deployment p,.live-product p,.project-history{color:var(--muted);margin-top:10px;font-size:15px;line-height:1.75}.project-history{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;font-size:13px}.decisions-section{border-top:1px solid var(--line);padding-block:32px 40px}.decisions-section>h2{letter-spacing:-.5px;font-size:25px;font-weight:500;line-height:1.3}.deployment{margin-top:24px}.live-product{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;padding-block:28px;display:flex}.live-product p{max-width:62ch;font-size:14px}.live-product .button{flex-shrink:0}.button,.quiet-link,.back-link,.site-nav a{min-height:44px}@media (width<=760px){.live-product{flex-direction:column;align-items:start;gap:20px}.delivery-grid h3{font-size:17px}}@media print{@page{size:A4;margin:13mm}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#000!important;background:#fff!important}.site-header,.site-footer,.resume-actions,.skip-link{display:none!important}.resume{width:100%;max-width:none;padding:0}.resume-header h1{font-size:26pt}.resume-header p{margin-top:6px;font-size:9pt}.resume-introduction{margin-block:15px;font-size:9pt;line-height:1.6}.resume section{margin-top:20px}.resume section>h2{margin-bottom:13px;padding-bottom:7px;font-size:9pt}.resume-project{break-inside:avoid;margin-top:14px}.resume h3{font-size:10pt}.resume h3 small{margin-left:8px;font-size:8pt;display:inline}.resume-project time{font-size:8pt}.resume-project p,.resume-job p,.resume section>p{margin-top:3px;font-size:8pt;line-height:1.6}.resume .expertise-list{gap:12px 25px}.resume .expertise-list dt,.resume .expertise-list dd{font-size:8pt}a{text-decoration:none}}
