:root{color:#252b28;font-synthesis:none;--paper:#fbfaf7;--ink:#252b28;--muted:#626962;--green:#244a3d;--line:#dbded5;--sage:#edf0e8;--serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;background:#fbfaf7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;font-size:16px;line-height:1.65}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--green)}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline-offset:6px;border-radius:2px;outline:2px solid #657b46}::selection{color:var(--ink);background:#dce5d4}img{max-width:100%;height:auto;display:block}svg{flex:none;width:20px;height:20px}.container{width:min(1168px,100% - 112px);margin-inline:auto}.skip-link{z-index:20;background:var(--ink);color:#fff;padding:12px 20px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:32px;min-height:96px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-.8px;white-space:nowrap;font-size:25px;font-weight:600;text-decoration:none}.wordmark span{color:var(--green)}.primary-navigation{align-items:center;gap:36px;margin-left:auto;display:flex}.primary-navigation a{font-size:14px;text-decoration:none}.primary-navigation a:hover{text-decoration:underline}.language-navigation{letter-spacing:1px;border-left:1px solid var(--line);gap:12px;padding-left:30px;font-size:11px;display:flex}.language-navigation a{color:var(--muted);padding-block:10px;text-decoration:none}.language-navigation a[aria-current=page]{color:var(--ink);text-underline-offset:6px;font-weight:700;text-decoration:underline}.language-navigation>span{color:#a0a69c;padding-block:10px}.eyebrow{text-transform:uppercase;letter-spacing:2.2px;color:var(--green);font-size:10px;font-weight:650;line-height:1.6}.hero{grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:96px;padding-block:88px 74px;display:grid}.hero .eyebrow{margin-bottom:25px}h1{font-family:var(--serif);letter-spacing:-2px;font-size:clamp(42px,4.5vw,64px);font-weight:400;line-height:1.09}h1 em{color:var(--green);font-weight:400;display:block}.hero-introduction{max-width:560px;margin-top:28px;font-size:18px;line-height:1.65}.hero-current{color:var(--muted);max-width:490px;margin-top:15px;font-size:14px}.hero-actions{flex-wrap:wrap;align-items:center;gap:28px;margin-top:32px;display:flex}.button{border:1px solid #0000;justify-content:center;align-items:center;gap:21px;min-height:50px;padding:14px 20px;font-size:13px;font-weight:550;text-decoration:none;transition:background .15s;display:inline-flex}.button-primary{color:var(--paper);background:var(--green)}.button-primary:hover{color:#fff;background:#193b2f}.text-link{align-items:center;gap:10px;font-size:13px;font-weight:550;text-decoration:underline;display:inline-flex}.cv-link{padding-block:4px 12px;position:relative}.file-note{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:400;position:absolute;top:calc(100% - 8px);left:0}.availability{color:var(--muted);align-items:flex-start;gap:9px;margin-top:29px;font-size:11px;display:flex}.availability>span{background:#6b7c51;border-radius:100%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.portrait{align-self:center;padding-top:4px}.portrait-frame{background:#e3e7de;padding:0 0 15px 15px;position:relative}.portrait-frame img{aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;filter:saturate(.55);width:100%;transform:translate(12px,-12px)}.portrait figcaption{color:var(--muted);max-width:270px;margin-top:19px;padding-left:15px;font-size:11px;line-height:1.6}.proof-points{border-block:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));padding-block:30px;display:grid}.proof-points>div{border-left:1px solid var(--line);flex-direction:column-reverse;padding-inline:38px;display:flex}.proof-points>div:first-child{border-left:0;padding-left:0}.proof-points dd{font-family:var(--serif);letter-spacing:-1px;font-size:42px;line-height:1.2}.proof-points dt{margin-top:6px;font-size:13px}.proof-points dt span{color:var(--muted);margin-top:3px;font-size:11px;display:block}.section{padding-block:100px}.section-heading{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:60px;margin-bottom:52px;display:grid}.section-heading .eyebrow{margin-bottom:12px}h2{font-family:var(--serif);letter-spacing:-.9px;font-size:clamp(31px,3.2vw,42px);font-weight:400;line-height:1.2}.section-introduction{color:var(--muted);justify-self:end;max-width:350px;font-size:14px;line-height:1.75}.experience-item{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:80px;padding-block:40px;display:grid}.experience-meta{padding-left:38px;position:relative}.experience-number{color:var(--muted);font-size:10px;position:absolute;top:3px;left:0}.experience-meta h3{max-width:270px;font-size:18px;font-weight:550;line-height:1.4}.current-label{text-transform:uppercase;letter-spacing:1.3px;color:var(--green);background:var(--sage);margin-bottom:12px;padding:3px 7px;font-size:9px;display:inline-block}.experience-role{margin-top:10px;font-size:13px}.experience-period{color:var(--muted);margin-top:3px;font-size:12px}.previous-role{color:var(--muted);max-width:240px;margin-top:14px;font-size:11px;line-height:1.7}.experience-description h4{font-family:var(--serif);letter-spacing:-.4px;margin-bottom:14px;font-size:26px;font-weight:400;line-height:1.3}.experience-description>p{color:var(--muted);font-size:14px;line-height:1.8}.experience-description ul{margin-block:18px;padding:0;list-style:none}.experience-description li{margin-top:7px;padding-left:17px;font-size:13px;line-height:1.8;position:relative}.experience-description li:before{content:"—";color:#8f9c85;position:absolute;left:0}.experience-description .technology-context{color:var(--muted);margin-top:22px;font-size:10px}.earlier-experience{border-block:1px solid var(--line)}.earlier-experience summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding-block:24px;font-size:14px;font-weight:550;list-style:none;display:flex}.earlier-experience summary::-webkit-details-marker{display:none}.earlier-experience summary>span{color:var(--green);font-size:22px;font-weight:400}.earlier-experience[open] summary>span{transform:rotate(45deg)}.earlier-experience>p{color:var(--muted);margin-bottom:24px;font-size:13px}.earlier-experience ul{margin:0 0 25px;padding:0;list-style:none}.earlier-experience li{grid-template-columns:1fr 1fr 1.2fr;gap:20px;padding-block:10px;font-size:12px;display:grid}.earlier-experience li strong{font-weight:550}.earlier-experience li>span{color:var(--muted)}.approach-section{background:var(--sage)}.approach-section .section{padding-block:80px}.approach-section .section-heading{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:46px;display:grid}.principles article{border-top:1px solid #cdd4c5;padding-top:22px}.principle-number{letter-spacing:1px;color:var(--green);font-size:10px}.principles h3{margin-block:14px 10px;font-size:17px;font-weight:550}.principles p{color:#555f54;font-size:13px;line-height:1.85}.recommendations{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;display:grid}.recommendations figure{flex-direction:column;justify-content:space-between;display:flex}.recommendations blockquote{font-family:var(--serif);letter-spacing:-.2px;font-size:22px;line-height:1.55}.recommendations figcaption{align-items:center;gap:13px;margin-top:25px;display:flex}.recommendations figcaption img{object-fit:cover;filter:grayscale();border-radius:50%;width:44px;height:44px}.recommendation-initials{background:var(--sage);width:44px;height:44px;color:var(--green);font-family:var(--serif);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;display:flex}.recommendations figcaption img{flex-shrink:0}.recommendations figcaption a{text-decoration:none}.recommendations figcaption a:hover{text-decoration:underline}.recommendations figcaption time{color:var(--muted);margin-top:3px;font-size:10px;display:block}.recommendations-source{color:var(--muted);margin-top:-28px;margin-bottom:32px;font-size:12px}.more-recommendations{border-block:1px solid var(--line);margin-top:36px}.more-recommendations summary{cursor:pointer;align-items:center;gap:20px;padding-block:20px;font-size:13px;font-weight:550;list-style:none;display:flex}.more-recommendations summary::-webkit-details-marker{display:none}.more-recommendations .disclosure-indicator{color:var(--green);margin-left:auto;font-size:22px;font-weight:400}.more-recommendations .disclosure-hide,.more-recommendations[open] .disclosure-show{display:none}.more-recommendations[open] .disclosure-hide{display:inline}.more-recommendations[open] .disclosure-indicator{transform:rotate(45deg)}.more-recommendations .recommendations{row-gap:44px;padding-block:24px 36px}.recommendations-originals{margin-top:20px;font-size:12px}.recommendations figcaption strong{font-size:12px;font-weight:550;display:block}.recommendations figcaption span span{color:var(--muted);margin-top:2px;font-size:10px;display:block}.independent-work{border-top:1px solid var(--line);grid-template-columns:1fr 2.3fr;gap:80px;margin-top:75px;padding-top:32px;display:grid}.independent-work .eyebrow{margin-top:5px}.independent-work h3{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.4}.independent-work p:not(.eyebrow){color:var(--muted);max-width:650px;margin-block:12px;font-size:13px}.independent-work .text-link{font-size:12px}.independent-work svg{width:16px;height:16px}.contact-section{color:var(--paper);background:#213d33}.contact-inner{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:100px;padding-block:80px 75px;display:grid}.contact-section .eyebrow{color:#c2cfb6;margin-bottom:18px}.contact-section h2{max-width:570px;font-size:clamp(36px,3.6vw,48px)}.contact-introduction{color:#d0dad1;max-width:520px;margin-top:23px;font-size:14px;line-height:1.85}.contact-email{text-underline-offset:8px;align-items:center;gap:25px;margin-top:30px;font-size:22px;text-decoration-thickness:1px;display:inline-flex}.contact-section a:hover{color:#d8e5c9}.contact-details{align-self:end;padding-bottom:4px}.contact-details p{margin-bottom:25px;font-size:13px}.contact-details p span{color:#c0cec2;margin-top:4px;font-size:11px;display:block}.contact-details>a{border-top:1px solid #4d6458;justify-content:space-between;align-items:center;gap:24px;padding-block:13px;font-size:13px;text-decoration:none;display:flex}.contact-details>a:last-child{border-bottom:1px solid #4d6458}.contact-details svg{width:17px;height:17px}.footer-inner{color:#c0cec2;border-top:1px solid #4d6458;justify-content:space-between;align-items:center;padding-block:22px;font-size:10px;display:flex}.footer-inner a{align-items:center;gap:20px;min-height:28px;text-decoration:none;display:flex}.footer-inner a span{font-size:17px}@media (width>=1600px){.hero{padding-block:110px 95px}}@media (width<=1100px){.container{width:calc(100% - 80px)}.hero{grid-template-columns:minmax(0,1fr) 250px;gap:54px;padding-block:70px}h1{font-size:51px}.hero-introduction{font-size:16px}.hero-actions{gap:24px}.button{gap:13px;padding-inline:16px;font-size:12px}.section-heading,.experience-item{gap:44px}.proof-points>div{padding-inline:25px}.recommendations{gap:32px}.contact-inner{gap:60px}}@media (width<=800px){.container{width:calc(100% - 48px)}.header-inner{gap:22px;min-height:84px}.wordmark{font-size:22px}.primary-navigation{gap:20px}.primary-navigation a{font-size:12px}.language-navigation{gap:8px;padding-left:17px}.hero{grid-template-columns:minmax(0,1fr) 200px;gap:35px;padding-block:65px}h1{letter-spacing:-1.5px;font-size:42px}.hero .eyebrow{letter-spacing:1.4px;font-size:9px}.hero-introduction{font-size:15px}.hero-current{font-size:12px}.hero-actions{align-items:flex-start;gap:22px}.availability{font-size:10px}.portrait figcaption{padding-left:0;font-size:10px}.proof-points dd{font-size:34px}.proof-points dt{font-size:12px}.proof-points dt span{font-size:10px}.section{padding-block:72px}.section-heading,.approach-section .section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:38px}.section-introduction{justify-self:start;max-width:500px}.experience-item{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:30px}.experience-meta{padding-left:28px}.experience-meta h3{font-size:16px}.experience-description h4{font-size:23px}.experience-description>p{font-size:13px}.experience-description li{font-size:12px}.principles{gap:25px}.principles h3{font-size:16px}.principles p{font-size:12px}.recommendations{grid-template-columns:1fr;gap:35px}.recommendations blockquote{font-size:21px}.independent-work{grid-template-columns:1fr 2.3fr;gap:30px}.contact-inner{gap:40px}}@media (width<=600px){html{scroll-padding-top:24px}.container{width:calc(100% - 40px)}.header-inner{flex-wrap:wrap;gap:12px 20px;padding-block:17px 13px}.wordmark{font-size:23px}.language-navigation{border-left:0;margin-left:auto;padding-left:0}.primary-navigation{order:3;gap:28px;width:100%;margin-left:0}.primary-navigation a{min-height:32px;padding-top:4px;font-size:12px}.hero{grid-template-columns:1fr;gap:40px;padding-block:45px 40px}.hero .eyebrow{margin-bottom:22px;font-size:9px}h1{letter-spacing:-1.5px;max-width:450px;font-size:clamp(38px,10.7vw,56px);line-height:1.12}.hero-introduction{margin-top:23px;font-size:16px}.hero-current{margin-top:14px;font-size:13px}.hero-actions{align-items:center;gap:24px;margin-top:28px}.button{min-height:48px;padding:13px 16px;font-size:12px}.text-link{font-size:12px}.availability{margin-top:25px;font-size:10px}.portrait{align-items:center;gap:22px;margin-right:12px;display:flex}.portrait-frame{flex-shrink:0;width:100px;padding:0 0 5px 5px}.portrait-frame img{aspect-ratio:1;transform:translate(6px,-6px)}.portrait figcaption{max-width:190px;margin-top:0;font-size:11px}.proof-points{grid-template-columns:1fr;padding-block:0}.proof-points>div{border-left:0;border-top:1px solid var(--line);grid-template-columns:100px minmax(0,1fr);gap:20px;padding:20px 0;display:grid}.proof-points>div:first-child{border-top:0}.proof-points dd{grid-area:1/1;align-self:center;font-size:32px}.proof-points dt{grid-area:1/2;align-self:center;margin-top:0;font-size:12px;line-height:1.5}.proof-points dt span{margin-top:4px;font-size:10px}.section{padding-block:58px}h2{font-size:31px}.section-heading .eyebrow{font-size:9px}.section-introduction{font-size:13px}.experience-item{grid-template-columns:1fr;gap:22px;padding-block:28px}.experience-meta{padding-left:29px}.experience-number{top:3px}.experience-meta h3{max-width:none;font-size:17px}.experience-role{margin-top:5px}.experience-period{margin-top:2px}.current-label{margin-bottom:10px;font-size:8px}.previous-role{max-width:none;margin-top:8px}.experience-description{padding-left:29px}.experience-description h4{font-size:24px}.experience-description>p{font-size:14px}.experience-description li{font-size:13px}.experience-description .technology-context{font-size:9px;line-height:1.9}.earlier-experience summary{font-size:13px}.earlier-experience li{grid-template-columns:1fr;gap:1px;padding-block:12px}.approach-section .section{padding-block:58px}.principles{grid-template-columns:1fr;gap:28px}.principles article{padding-top:15px}.principles h3{margin-top:9px;font-size:18px}.principles p{font-size:14px}.recommendations{grid-template-columns:1fr;gap:38px}.recommendations blockquote{font-size:23px}.recommendations figcaption{margin-top:20px}.independent-work{grid-template-columns:1fr;gap:17px;margin-top:45px;padding-top:28px}.independent-work h3{font-size:22px}.independent-work p:not(.eyebrow){font-size:13px}.contact-inner{grid-template-columns:1fr;gap:42px;padding-block:55px 40px}.contact-section h2{font-size:37px}.contact-introduction{font-size:14px}.contact-email{gap:18px;font-size:21px}.contact-details p{font-size:13px}.contact-details>a{padding-block:15px}.footer-inner{padding-block:17px;font-size:9px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
