@font-face{font-family:Manrope Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_astro/manrope-latin-wght-normal.DHIcAJRg.woff2)format("woff2")}@font-face{font-family:Newsreader Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_astro/newsreader-latin-standard-normal.s-izfB6B.woff2)format("woff2")}@font-face{font-family:Newsreader Variable;font-style:italic;font-weight:200 800;font-display:swap;src:url(/_astro/newsreader-latin-standard-italic.kJKFiXvB.woff2)format("woff2")}:root{--white:#fff;--ink:#17251f;--green:#26533d;--muted:#59635d;--line:#cdd3ce;--tint:#f4f6f3;--serif:"Newsreader Variable", Georgia, serif;--sans:"Manrope Variable", Arial, sans-serif;font-family:var(--sans);color:var(--ink);background:var(--white);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;font-size:16px;line-height:1.7}a{color:inherit;text-underline-offset:.25em}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit}.arrow-icon{vertical-align:-.18em;flex-shrink:0;width:1.25em;height:1.25em;display:inline-block}.arrow-up-right{transform:rotate(-45deg)}.arrow-left{transform:rotate(180deg)}.arrow-up{transform:rotate(-90deg)}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:6px}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}em{font-weight:inherit;color:var(--green)}::selection{color:var(--ink);background:#dbe6dc}.wrap{width:min(1344px,87.5%);margin-inline:auto}.skip-link{z-index:10;background:var(--green);color:#fff;padding:.65rem 1rem;position:absolute;top:12px;left:12px;transform:translateY(-170%)}.skip-link:focus{transform:translateY(0)}.site-header{justify-content:space-between;align-items:center;gap:32px;min-height:115px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-.04em;white-space:nowrap;padding-top:7px;font-size:41px;line-height:1;text-decoration:none}.site-header nav{align-items:center;gap:44px;font-size:16px;display:flex}.site-header nav>a:not(.button){padding-block:10px;text-decoration:none}.site-header nav>a:not(.button):hover{text-decoration:underline}.button{background:var(--green);color:#fff;border:1px solid var(--green);cursor:pointer;border-radius:0;justify-content:center;align-items:center;min-height:61px;padding:14px 34px;font-size:17px;font-weight:500;text-decoration:none;transition:background .18s;display:inline-flex}.button:hover{background:var(--ink)}.button-small{min-height:50px;padding:12px 28px;font-size:15px}.text-link{border-bottom:1px solid;font-size:16px;line-height:1.6;text-decoration:none;display:inline-block}.text-link:hover,.quiet-link:hover,.inline-link:hover{color:var(--green)}.hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:stretch;gap:55px;padding-top:30px;padding-bottom:48px;display:grid}.hero-copy{align-self:center;padding-top:25px}.hero h1{letter-spacing:-.058em;max-width:800px;font-size:clamp(66px,6.8vw,106px);line-height:1.04}.hero-intro{letter-spacing:-.025em;max-width:685px;margin-top:38px;font-size:clamp(19px,1.62vw,24px);line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:42px;margin-top:34px;display:flex}.hero-actions .text-link{font-size:17px}.hero-actions .button{min-width:222px;font-size:18px}.portrait{background:#dce4dd;min-width:0;height:570px;position:relative;overflow:hidden}.portrait img{object-fit:cover;object-position:50% 35%;width:100%;height:100%}.portrait figcaption{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.capability-strip{border-block:1px solid var(--line);align-items:center;gap:75px;padding-block:30px;font-size:18px;display:flex}.section{padding-block:86px 92px}.section-index{text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:24px;font-size:12px;line-height:1.5}.section-index span{color:var(--green);letter-spacing:0;margin-right:6px;font-weight:700}.section-heading{justify-content:space-between;align-items:end;gap:35px;margin-bottom:48px;display:flex}h2{letter-spacing:-.045em;font-size:clamp(42px,4.5vw,66px);line-height:1.08}.section-heading>p{color:var(--muted);padding-bottom:6px;font-size:15px;line-height:1.65}.section-heading>.text-link{flex-shrink:0;margin-bottom:8px}.work-row{border-top:1px solid var(--line);grid-template-columns:70px minmax(0,1fr) 190px 36px;align-items:center;gap:30px;padding-block:23px;display:grid}.work-row:last-child{border-bottom:1px solid var(--line)}.project-status{color:var(--green)}.work-description h3{font-family:var(--serif);letter-spacing:-.035em;margin-bottom:7px;font-size:36px;font-weight:500;line-height:1.12}.work-description h3 a{text-decoration:none}.work-description h3 a:hover{color:var(--green)}.work-description>p{max-width:700px;color:var(--muted);font-size:16px}.work-description .project-detail{color:var(--muted);max-width:660px;margin-top:5px;font-size:11px}.live-project-link{margin-top:5px;font-size:11px;text-decoration:underline;display:inline-block}.work-row>.project-status{font-size:16px}.project-arrow{min-width:36px;min-height:44px;color:var(--green);place-items:center;font-size:29px;line-height:1;text-decoration:none;display:grid}.project-arrow:hover{transform:translate(3px)}.project-arrow .arrow-icon{width:27px;height:27px}.quiet-link{color:var(--muted);font-size:13px;text-decoration:none}.project-number{color:var(--muted);align-self:start;padding-top:8px;font-size:15px;line-height:1}.experience-section{padding-top:0}.experience-list{border-top:1px solid var(--line)}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);gap:40px;padding-block:25px;display:grid}.experience-dates{color:var(--muted);padding-top:4px;font-size:15px}.experience-row h3{font-family:var(--serif);letter-spacing:-.025em;font-size:35px;font-weight:500;line-height:1.25}.organisation{color:var(--muted);margin-top:4px;font-size:16px}.experience-cv-link{margin-top:30px}.about-section{grid-template-columns:1fr 1.12fr;gap:90px;display:grid}.about-intro h2{margin-top:33px;font-size:clamp(50px,5.3vw,78px);line-height:1.05}.about-body{padding-top:47px}.lead{letter-spacing:-.02em;font-size:22px;line-height:1.55}.about-body>p+p{color:var(--muted);margin-top:21px;font-size:15px}.capabilities{margin-top:39px}.capability{border-top:1px solid var(--line);padding-block:24px}.capability h3{margin-bottom:7px;font-size:17px;font-weight:600}.capability>p{color:var(--muted);font-size:14px}.capability .tools{color:var(--green);margin-top:11px;font-size:12px}.contact-section{background:var(--green);color:var(--white);padding-block:76px 80px}.contact-inner{display:block}.contact-section .section-index,.contact-section .section-index span{color:#d2dfd5}.contact-section em{color:var(--white)}.contact-section h2{font-size:clamp(47px,4.9vw,68px)}.contact-section p:not(.section-index){color:#e0e8e2;margin-top:14px;font-size:17px}.contact-links{flex-wrap:wrap;align-items:start;gap:20px 42px;padding-top:22px;display:flex}.contact-links .arrow-icon{margin-left:16px}.contact-links a{border-bottom:1px solid #ffffff6b;font-size:15px;line-height:1.6;text-decoration:none}.contact-links a:hover{border-color:#fff}.contact-links a:focus-visible{outline-color:#fff}.site-footer{min-height:108px;color:var(--muted);justify-content:space-between;align-items:center;gap:24px;font-size:12px;display:flex}.site-footer>div{gap:28px;display:flex}.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}.prose-page{max-width:860px;padding-block:65px 100px}.prose-page h1{letter-spacing:-.05em;margin-bottom:35px;font-size:clamp(55px,7vw,90px);line-height:1}.prose-page h2{font-family:var(--sans);letter-spacing:-.02em;margin-block:36px 12px;font-size:21px;font-weight:600;line-height:1.4}.prose-page>p:not(.section-index):not(.lead){color:var(--muted)}.prose-page .small-text{margin-block:35px;font-size:13px}.not-found{min-height:64vh}.not-found .button{margin-top:30px}.cv-page{max-width:1040px;padding-block:45px 80px}.cv-actions{justify-content:space-between;align-items:center;gap:20px;margin-bottom:50px;display:flex}.cv-header{border-bottom:1px solid var(--line);padding-bottom:30px}.cv-header h1{letter-spacing:-.05em;margin-bottom:10px;font-size:77px;line-height:1}.cv-profession{margin-bottom:12px;font-size:20px}.cv-header>p:not(.cv-profession):not(.section-index){color:var(--muted);font-size:14px}.cv-contact{flex-wrap:wrap;gap:6px 22px;margin-top:10px;display:flex}.cv-section{margin-top:35px}.cv-section>h2{font-family:var(--sans);letter-spacing:-.025em;margin-bottom:19px;font-size:22px;font-weight:600}.cv-section>p{font-size:15px}.cv-job{border-top:1px solid var(--line);break-inside:avoid;grid-template-columns:1fr auto;gap:4px 20px;padding-block:18px;display:grid}.cv-job h3,.cv-capabilities h3,.cv-project h3{font-size:16px;font-weight:600;line-height:1.4}.cv-job>div p{color:var(--muted);font-size:14px}.cv-date{color:var(--muted);white-space:nowrap;font-size:13px}.cv-job-summary{color:var(--muted);grid-column:1/-1;margin-top:5px;font-size:14px}.cv-capabilities{grid-template-columns:1fr 1fr;gap:20px 35px;display:grid}.cv-capabilities p,.cv-project p{color:var(--muted);margin-top:6px;font-size:13px}.cv-project{border-top:1px solid var(--line);break-inside:avoid;padding-block:16px}.cv-project h3 span{color:var(--muted);margin-left:10px;font-size:12px;font-weight:400}@media (width>=1600px){.hero{gap:65px}}@media (width>=721px) and (width<=1350px){.site-header{min-height:100px}.hero{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:40px;padding-top:22px;padding-bottom:35px}.hero-copy{padding-top:0}.hero h1{font-size:clamp(46px,6.3vw,85px)}.hero-intro{margin-top:24px;font-size:18.5px}.hero-actions{gap:30px;margin-top:26px}.hero-actions .button{min-height:56px}.portrait{height:460px}}@media (width<=1180px){.wrap{width:calc(100% - 80px)}.site-header nav{gap:28px}.hero{grid-template-columns:1.45fr 1fr;gap:35px}.hero h1{font-size:6.3vw}.hero-intro{margin-top:24px}.portrait{height:440px}.hero-actions{gap:25px}.hero-actions .button{min-width:0;padding-inline:23px}.capability-strip{gap:20px;font-size:15px}.section-heading{flex-direction:column;align-items:start;gap:20px}.desktop-break{display:none}.experience-row{grid-template-columns:170px 1fr;gap:35px}.work-row{grid-template-columns:45px minmax(0,1fr) 160px 30px;gap:22px}.about-section{gap:55px}}@media (width<=850px){.site-header nav{gap:21px;font-size:14px}.site-header nav .button{padding-inline:18px;font-size:13px}.wordmark{font-size:36px}.hero{gap:29px}.hero h1{font-size:6.3vw}.hero-copy{padding-top:0}.portrait{height:420px}.hero-intro{font-size:17px}.hero-actions{gap:22px;margin-top:25px}.hero-actions .button,.hero-actions .text-link{font-size:14px}.hero-actions .button{min-height:50px;padding:10px 20px}.capability-strip{flex-wrap:wrap;justify-content:start;gap:11px 30px;padding-block:23px}.section{padding-block:66px}.work-description h3{font-size:33px}.work-description>p{font-size:14px}.experience-row{grid-template-columns:140px 1fr;gap:15px 25px}.about-section{grid-template-columns:.9fr 1.1fr;gap:35px}.about-intro h2{font-size:50px}.lead{font-size:20px}.contact-inner{gap:35px}.contact-section h2{font-size:49px}}@media (width<=720px){.wrap{width:calc(100% - 40px)}.site-header{flex-direction:column;align-items:start;gap:20px;min-height:135px;padding-block:25px}.site-header nav{justify-content:space-between;gap:12px;width:100%}.site-header nav .button{min-height:42px;padding:7px 14px}.wordmark{font-size:37px}.hero{grid-template-columns:1fr;gap:35px;padding-top:25px;padding-bottom:35px}.hero h1{letter-spacing:-.055em;font-size:clamp(49px,9.3vw,73px);line-height:1.03}.hero-break{display:none}.hero-intro{max-width:550px;margin-top:25px;font-size:18px}.hero-actions{gap:28px}.hero-actions .button{min-width:0;min-height:52px;padding-inline:22px;font-size:14px}.hero-actions .text-link{font-size:14px}.portrait{aspect-ratio:1.15;height:auto}.portrait img{object-position:50% 29%}.capability-strip{gap:11px 23px;font-size:13px}h2{font-size:clamp(39px,7.6vw,52px)}.section{padding-block:55px 60px}.section-index{margin-bottom:19px;font-size:10px}.section-heading{margin-bottom:30px}.section-heading>p{font-size:14px}.work-row{grid-template-columns:25px minmax(0,1fr) 30px;gap:7px 15px;padding-block:24px}.work-description h3{margin-bottom:7px;font-size:31px}.work-description>p{font-size:15px}.project-number{align-self:start;margin-top:0;padding-top:9px;font-size:12px}.work-row>.project-status{grid-area:2/2;font-size:12px}.project-arrow{grid-area:1/3/3;min-width:30px;font-size:26px}.experience-row{grid-template-columns:1fr;gap:8px;padding-block:24px}.experience-dates{align-items:center;gap:15px;padding:0;display:flex}.experience-row h3{font-size:29px}.organisation{font-size:14px}.about-section{grid-template-columns:1fr;gap:25px}.about-intro h2{margin-top:24px;font-size:52px}.about-body{padding-top:0}.capabilities{margin-top:28px}.contact-section{padding-block:52px}.contact-inner{grid-template-columns:1fr;gap:25px}.contact-section h2{font-size:clamp(43px,9vw,62px)}.contact-links{gap:16px 25px;padding-top:22px}.contact-links .arrow-icon{margin-left:10px}.site-footer{flex-direction:column;align-items:start;gap:13px;min-height:0;padding-block:25px;font-size:11px}.site-footer>div{flex-wrap:wrap;gap:22px}.prose-page{padding-block:40px 65px}.prose-page h1{font-size:62px}.cv-page{padding-block:25px 50px}.cv-actions{flex-direction:column;align-items:start;margin-bottom:37px}.cv-actions .button{min-height:48px;padding:10px 22px;font-size:14px}.cv-header h1{font-size:64px}.cv-profession{font-size:17px}.cv-contact{flex-direction:column;align-items:start}.cv-job{grid-template-columns:1fr}.cv-date{grid-row:1}.cv-capabilities{grid-template-columns:1fr}.cv-project h3 span{margin:6px 0 0;display:block}}@media (width<=360px){.site-header nav{gap:8px;font-size:12px}.site-header nav .button{padding-inline:10px;font-size:11px}.hero h1{font-size:47px}.hero-intro{font-size:16px}.hero-actions{gap:18px}.hero-actions .button{padding-inline:16px;font-size:12px}.hero-actions .text-link{font-size:12px}.project-number{font-size:11px}.work-row{grid-template-columns:20px minmax(0,1fr) 25px;gap:7px 10px}.work-description h3{font-size:27px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{size:A4;margin:15mm 16mm}:root{color:#17251f;background:#fff}body{font-size:10pt;line-height:1.5}.site-header,.site-footer,.skip-link,.cv-actions{display:none!important}.wrap,.cv-page{width:100%;max-width:none;margin:0;padding:0}.cv-header{padding-bottom:14px}.cv-header .section-index{margin-bottom:10px;font-size:8pt}.cv-header h1{font-size:40pt}.cv-profession{font-size:12pt}.cv-header>p:not(.cv-profession):not(.section-index),.cv-contact{font-size:8pt}.cv-contact{flex-direction:row;gap:5px 15px;display:flex}.cv-section{margin-top:20px}.cv-section>h2{break-after:avoid;margin-bottom:10px;font-size:13pt}.cv-section>p{font-size:9pt}.cv-job{grid-template-columns:1fr auto;gap:3px 15px;padding-block:10px}.cv-job h3,.cv-capabilities h3,.cv-project h3{font-size:10pt}.cv-job>div p,.cv-job-summary,.cv-date,.cv-project p,.cv-capabilities p{font-size:8pt}.cv-date{grid-row:auto}.cv-capabilities{grid-template-columns:1fr 1fr;gap:12px 24px}.cv-project{padding-block:10px}.cv-project h3 span{margin-left:8px;font-size:8pt;display:inline}a{text-decoration:none}}
