:root{color:#233027;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;--paper:#f6f5f0;--paper-deep:#edece5;--surface:#fffefa;--ink:#233027;--muted:#687169;--muted-light:#8b928b;--line:#d9ded5;--line-strong:#c3cbbf;--green:#47654f;--green-dark:#354d3c;--green-pale:#e5eae1;--serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--page-width:1180px;--gutter:clamp(22px, 5.4vw, 82px);background:#f6f5f0;font-family:Avenir Next,Avenir,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--paper);min-width:320px;color:var(--ink);margin:0}body,button,input,textarea{font-family:Avenir Next,Avenir,Segoe UI,sans-serif}button,input,textarea{font-size:inherit}a{color:inherit;text-decoration:none}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:4px;outline:3px solid #96ac91}::selection{color:#fffefa;background:#47654f}.site-shell{overflow:clip}.page-width{width:min(var(--page-width), calc(100% - var(--gutter) * 2));margin-inline:auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;color:#fff;background:var(--green-dark);border-radius:4px;padding:12px 16px;position:fixed;top:12px;left:12px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:10;background:#f6f5f0f0;border-bottom:1px solid #d9ded5cc;position:relative}.header-inner{width:min(1440px, calc(100% - var(--gutter) * 1.35));align-items:center;min-height:84px;margin-inline:auto;display:flex}.brand{align-items:center;gap:11px;min-width:245px;display:inline-flex}.brand-mark{border:1px solid var(--line-strong);width:38px;height:38px;color:var(--green);font-family:var(--serif);letter-spacing:-.08em;border-radius:50%;place-items:center;font-size:19px;font-style:italic;display:grid}.brand-words{gap:3px;display:grid}.brand-name{letter-spacing:-.025em;font-size:13px;font-weight:600}.brand-subtitle{color:var(--muted);font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;font-size:9px}.main-nav{flex:1;justify-content:center;align-items:center;gap:clamp(18px,2.8vw,42px);display:flex}.main-nav a,.language-switch a{font-size:12px;font-weight:500;transition:color .16s}.main-nav a:hover,.language-switch a:hover{color:var(--green)}.main-nav .nav-contact{color:var(--green);align-items:center;gap:7px;display:inline-flex}.nav-contact span,.text-link span,.button span,.external-mark{font-size:14px;transition:transform .18s}.nav-contact:hover span,.text-link:hover span,.button:hover span,.footer-links a:hover .external-mark{transform:translate(2px,-2px)}.language-switch{justify-content:flex-end;align-items:center;gap:3px;min-width:76px;display:inline-flex}.language-switch a{color:var(--muted-light);font-family:var(--mono);padding:7px 6px;font-size:10px}.language-switch a+a:before{color:var(--line-strong);content:"/";position:relative;left:-8px}.language-switch a.active{color:var(--green-dark)}.hero{grid-template-columns:minmax(0,1.12fr) minmax(350px,.72fr);align-items:center;gap:clamp(48px,8vw,120px);padding-block:clamp(70px,10vw,146px) clamp(80px,10vw,138px);display:grid}.hero-copy{max-width:690px}.eyebrow{color:var(--green);font-family:var(--mono);letter-spacing:.095em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 23px;font-size:10px;line-height:1.5;display:flex}.eyebrow-dot{background:#7f977d;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #7f977d21}.hero h1,.resume-hero h1{max-width:720px;font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(55px,7vw,96px);font-weight:400;line-height:.97}.hero h1:after{background:var(--green);content:"";width:68px;height:1px;margin-top:34px;display:block}.hero-lead{color:#58635a;max-width:545px;margin:29px 0 0;font-size:clamp(16px,1.5vw,18px);line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:26px;margin-top:34px;display:flex}.button{border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;gap:19px;min-height:48px;padding:0 19px;font-size:12px;font-weight:600;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.button-primary{color:#fffefa;background:var(--green-dark)}.button-primary:hover{background:#283c2e}.button-primary span{font-size:15px}.text-link{color:var(--green-dark);align-items:center;gap:9px;font-size:12px;font-weight:600;display:inline-flex}.hero-note{color:var(--muted);align-items:center;gap:11px;margin:39px 0 0;font-size:11px;display:flex}.note-line{background:var(--line-strong);width:26px;height:1px}.hero-aside{border:1px solid var(--line);background:#fffefa7a;padding:32px 31px 24px;position:relative}.hero-aside:before{background:var(--green);content:"";width:48px;height:2px;position:absolute;top:-1px;left:31px}.aside-topline{color:var(--muted-light);font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:15px;font-size:9px;display:flex}.aside-index{color:var(--green)}.hero-aside h2{max-width:340px;font-family:var(--serif);letter-spacing:-.035em;margin:41px 0 13px;font-size:clamp(30px,3.2vw,42px);font-weight:400;line-height:1.05}.hero-aside>p{max-width:350px;color:var(--muted);margin:0;font-size:12px;line-height:1.7}.focus-list{margin:31px 0 0;padding:0;list-style:none}.focus-list li{border-top:1px solid var(--line);grid-template-columns:27px 1fr 14px;align-items:center;gap:9px;min-height:43px;font-size:11px;display:grid}.focus-number{color:var(--muted-light);font-family:var(--mono);font-size:9px}.focus-arrow{color:var(--green);font-size:12px}.aside-signature{color:var(--muted-light);font-family:var(--mono);letter-spacing:.065em;text-transform:uppercase;align-items:center;gap:10px;margin-top:24px;font-size:8px;display:flex}.signature-stroke{background:var(--line-strong);width:21px;height:1px}.aside-signature span:nth-child(2){color:var(--green);font-family:var(--serif);font-size:13px;font-style:italic}.help-section{border-block:1px solid var(--line);background:#f0efe9;padding-block:79px 74px}.section-heading{justify-content:space-between;align-items:end;gap:36px;display:flex}.section-index{color:#919a90;margin-right:5px;font-size:9px;display:inline-block}.section-heading h2,.approach-intro h2,.contact-copy h2,.resume-cta h2{max-width:720px;font-family:var(--serif);letter-spacing:-.04em;margin:0;font-size:clamp(38px,4.2vw,59px);font-weight:400;line-height:1.04}.section-heading .eyebrow,.approach-intro .eyebrow,.contact-copy .eyebrow{margin-bottom:16px}.section-intro{max-width:365px;color:var(--muted);margin:0;font-size:13px;line-height:1.75}.services-grid{border:1px solid var(--line);background:#fffefa5c;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:43px;display:grid}.service-card{min-height:225px;padding:26px 28px 25px;position:relative}.service-card+.service-card{border-left:1px solid var(--line)}.service-featured{background:var(--green-pale)}.service-index{color:var(--muted-light);font-family:var(--mono);font-size:9px}.service-card h3{max-width:260px;font-family:var(--serif);letter-spacing:-.025em;margin:27px 0 10px;font-size:clamp(23px,2.4vw,30px);font-weight:400;line-height:1.1}.service-detail{max-width:270px;color:var(--muted);margin:0;font-size:12px;line-height:1.6}.approach-section{grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(54px,9vw,130px);padding-block:clamp(82px,10vw,140px);display:grid}.approach-intro h2{font-size:clamp(42px,4.8vw,65px)}.approach-intro .section-intro{margin-top:19px}.approach-intro .text-link{margin-top:27px}.steps-list{border-top:1px solid var(--line-strong)}.approach-step{border-bottom:1px solid var(--line);grid-template-columns:43px minmax(0,1fr) 19px;align-items:start;gap:17px;padding:23px 0 25px;display:grid}.step-number{color:var(--green);font-family:var(--mono);padding-top:4px;font-size:10px}.approach-step h3{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 7px;font-size:25px;font-weight:400}.approach-step p{max-width:475px;color:var(--muted);margin:0;font-size:12px;line-height:1.7}.step-mark{color:#93a091;font-family:var(--serif);font-size:24px;line-height:1}.about-section{color:#f3f2eb;background:#34483a;padding-block:77px}.about-inner{grid-template-columns:.35fr 1.05fr .6fr;align-items:start;gap:clamp(28px,5vw,72px);display:grid}.about-marker{color:#bdc9ba;flex-direction:column;align-items:flex-start;gap:17px;padding-top:5px;display:flex}.marker-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.marker-number{font-family:var(--serif);font-size:44px;font-style:italic;line-height:1}.marker-rule{background:#708273;width:42px;height:1px}.about-copy .eyebrow{color:#b7c5b6}.about-copy h2{max-width:560px;font-family:var(--serif);letter-spacing:-.04em;margin:0;font-size:clamp(40px,4.6vw,64px);font-weight:400;line-height:1.03}.about-body{color:#d1d8cf;max-width:580px;margin:20px 0 0;font-size:13px;line-height:1.85}.about-meta{color:#b8c4b7;font-family:var(--mono);letter-spacing:.04em;flex-wrap:wrap;gap:10px 21px;margin-top:24px;font-size:9px;display:flex}.about-quote{border-left:1px solid #718272;align-self:center;padding:23px 0 13px 22px;position:relative}.quote-mark{color:#a9b8a7;font-family:var(--serif);font-size:41px;line-height:1;position:absolute;top:-5px;left:20px}.about-quote p{font-family:var(--serif);margin:30px 0 17px;font-size:26px;font-style:italic;line-height:1.2}.quote-attribution{color:#b8c4b7;font-family:var(--mono);letter-spacing:.1em;font-size:9px}.experience-section{padding-block:clamp(80px,10vw,130px)}.experience-intro{justify-items:start;gap:17px;display:grid}.experience-preview{border-top:1px solid var(--line-strong);margin-top:44px}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr) 30px;align-items:start;gap:24px;padding:26px 0;display:grid}.experience-period,.resume-period{color:var(--muted-light);font-family:var(--mono);letter-spacing:.04em;margin:4px 0 0;font-size:9px}.experience-title-line{flex-wrap:wrap;align-items:baseline;gap:7px 15px;display:flex}.experience-title-line h3{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:400}.experience-title-line>span{color:var(--green);font-size:11px;font-weight:600}.experience-main>p{max-width:720px;color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.65}.experience-arrow{color:var(--green);justify-self:end;font-size:17px}.contact-section{border-top:1px solid var(--line);background:#efeee8;padding-block:clamp(76px,9vw,116px)}.contact-inner{grid-template-columns:minmax(270px,.8fr) minmax(0,1fr);align-items:start;gap:clamp(48px,8vw,120px);display:grid}.contact-copy h2{font-size:clamp(42px,4.5vw,61px)}.contact-copy>.section-intro{margin-top:18px}.contact-aside-note{border-top:1px solid var(--line-strong);max-width:340px;color:var(--muted);align-items:flex-start;gap:10px;margin-top:38px;padding-top:15px;font-size:11px;line-height:1.6;display:flex}.contact-note-icon{color:var(--green);font-family:var(--serif);font-size:20px;line-height:1}.inquiry-form{border:1px solid var(--line);background:var(--surface);gap:17px;padding:27px;display:grid}.form-feedback{border-left:2px solid var(--green);color:var(--ink);background:#f0f3ed;padding:13px 15px;font-size:12px;line-height:1.55}.form-feedback p{color:var(--muted);margin:3px 0 0}.form-error{background:#fbf0ec;border-left-color:#a74d3c}.field-error{color:#a13d31;font-size:10px;font-weight:500}.inquiry-form input[aria-invalid=true],.inquiry-form textarea[aria-invalid=true]{border-color:#a74d3c}.inquiry-form label{color:#47534a;gap:8px;font-size:11px;font-weight:600;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.inquiry-form input,.inquiry-form textarea{width:100%;color:var(--ink);background:#fffefa;border:1px solid #d9ded6;border-radius:1px;font-size:12px;font-weight:400;transition:border-color .16s,box-shadow .16s}.inquiry-form input{min-height:42px;padding:0 11px}.inquiry-form textarea{resize:vertical;min-height:116px;padding:11px}.inquiry-form input:focus,.inquiry-form textarea:focus{border-color:#80947d;outline:none;box-shadow:0 0 0 3px #47654f1a}.form-submit-row{justify-content:space-between;align-items:center;gap:18px;margin-top:1px;display:flex}.form-submit-row .button{cursor:pointer;border:0;flex-shrink:0}.privacy-note{max-width:285px;color:var(--muted-light);margin:0;font-size:9px;line-height:1.65}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.site-footer{padding:45px var(--gutter) 20px;background:#e9e9e1}.footer-inner,.footer-bottom{width:min(var(--page-width), 100%);margin-inline:auto}.footer-inner{justify-content:space-between;align-items:start;gap:30px;padding-bottom:38px;display:flex}.footer-name{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:26px}.footer-note{color:var(--muted);margin:5px 0 0;font-size:11px}.footer-meta{color:var(--muted);font-family:var(--mono);letter-spacing:.045em;justify-items:end;gap:13px;font-size:9px;display:grid}.footer-links{gap:19px;display:flex}.footer-links a{color:var(--green-dark);align-items:center;gap:4px;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;font-size:11px;font-weight:600;display:inline-flex}.footer-links .external-mark{font-size:11px}.footer-bottom{color:var(--muted-light);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-top:1px solid #d3d7ce;justify-content:space-between;gap:20px;padding-top:14px;font-size:8px;display:flex}.resume-hero{border-bottom:1px solid var(--line);padding-block:clamp(62px,8vw,110px) clamp(61px,8vw,100px)}.resume-heading-grid{grid-template-columns:minmax(0,1.2fr) minmax(250px,.55fr);align-items:end;gap:55px;display:grid}.resume-hero h1{max-width:810px;font-size:clamp(51px,6.5vw,86px)}.resume-heading-grid .hero-lead{margin:0 0 18px;font-size:14px}.resume-content{padding-block:65px 88px}.resume-section-heading{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:center;gap:25px;padding-bottom:18px;display:flex}.resume-section-heading .eyebrow{margin:0}.resume-location{color:var(--muted-light);font-family:var(--mono);letter-spacing:.04em;font-size:9px}.resume-role{grid-template-columns:58px minmax(0,1fr);gap:16px;padding-top:30px;display:grid}.timeline-indicator{color:var(--green);font-family:var(--mono);flex-direction:column;align-items:center;gap:12px;font-size:9px;display:flex}.timeline-indicator i{background:var(--line);width:1px;min-height:100%}.resume-role-content{border-bottom:1px solid var(--line);padding-bottom:31px}.resume-role-heading{justify-content:space-between;align-items:baseline;gap:25px;display:flex}.resume-role-heading h2,.education-card h2{font-family:var(--serif);letter-spacing:-.03em;margin:0;font-size:clamp(24px,2.8vw,34px);font-weight:400}.resume-company{color:var(--green);margin:5px 0 0;font-size:12px;font-weight:600}.resume-period{flex-shrink:0}.resume-summary{max-width:820px;color:var(--muted);margin:15px 0 0;font-size:12px;line-height:1.7}.resume-highlights{color:#505b52;gap:8px;margin:14px 0 0;padding-left:17px;font-size:11px;line-height:1.65;display:grid}.resume-highlights li::marker{color:#80947d}.technology-list,.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.technology-list{margin-top:17px}.technology-list span,.skill-tags span{border:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.035em;border-radius:1px;padding:5px 8px;font-size:8px}.resume-details-section{border-block:1px solid var(--line);background:#f0efe9;padding-block:63px 71px}.resume-details{grid-template-columns:.9fr 1.4fr .5fr;gap:45px;display:grid}.resume-details .eyebrow{margin-bottom:21px}.education-card{border-top:1px solid var(--line-strong);padding-top:16px}.education-card h2{font-size:24px}.education-card p{color:var(--muted);margin:9px 0;font-size:11px;line-height:1.65}.education-card>span{color:var(--muted-light);font-family:var(--mono);font-size:9px}.skills-groups{gap:15px;display:grid}.skill-group{border-top:1px solid var(--line);padding-top:12px}.skill-group h3{margin:0 0 9px;font-size:11px;font-weight:600}.language-list{color:var(--muted);gap:12px;margin:0;padding:0;font-size:11px;list-style:none;display:grid}.resume-cta{justify-content:space-between;align-items:center;gap:30px;padding-block:67px 76px;display:flex}.resume-cta .eyebrow{margin-bottom:11px}.resume-cta h2{max-width:700px;font-size:clamp(34px,4vw,51px)}@media (width<=970px){.header-inner{min-height:77px}.brand{min-width:205px}.main-nav{gap:16px}.main-nav a{font-size:11px}.hero{grid-template-columns:minmax(0,1fr) minmax(300px,.78fr);gap:45px}.about-inner{grid-template-columns:.28fr 1fr}.about-quote{grid-column:2;max-width:480px}.resume-details{grid-template-columns:1fr 1.4fr}.resume-details>section:last-child{grid-column:2}}@media (width<=760px){.header-inner{flex-wrap:wrap;min-height:0;padding-block:14px 12px}.brand{flex:1;min-width:0}.brand-mark{width:34px;height:34px;font-size:17px}.language-switch{order:1;min-width:62px}.main-nav{border-top:1px solid var(--line);flex:1 0 100%;order:2;justify-content:space-between;gap:10px;width:100%;margin-top:13px;padding-top:12px}.main-nav a{font-size:10px}.hero{grid-template-columns:1fr;gap:48px;padding-block:66px 72px}.hero h1{max-width:630px;font-size:clamp(57px,12vw,82px)}.hero-aside{max-width:520px}.section-heading{flex-direction:column;align-items:start;gap:18px}.section-heading .section-intro{max-width:520px}.services-grid{grid-template-columns:1fr}.service-card{min-height:0;padding:22px 24px}.service-card+.service-card{border-top:1px solid var(--line);border-left:0}.service-card h3{margin-top:18px}.approach-section{grid-template-columns:1fr;gap:41px;padding-block:76px}.approach-intro h2{max-width:600px}.about-section{padding-block:60px}.about-inner{grid-template-columns:1fr;gap:28px}.about-marker{flex-direction:row;align-items:center}.marker-number{font-size:30px}.marker-rule{flex:1;width:auto}.about-quote{grid-column:auto;max-width:540px;margin-left:5px}.experience-row{grid-template-columns:1fr 24px;gap:9px 15px}.experience-period{grid-area:1/1}.experience-main{grid-area:2/1}.experience-arrow{grid-area:1/2/span 2}.contact-inner{grid-template-columns:1fr;gap:39px}.contact-copy h2{max-width:650px}.contact-aside-note{margin-top:23px}.resume-heading-grid{grid-template-columns:1fr;gap:25px}.resume-heading-grid .hero-lead{max-width:560px}.resume-details{grid-template-columns:1fr;gap:35px}.resume-details>section:last-child{grid-column:auto}}@media (width<=540px){.header-inner{width:calc(100% - 32px)}.brand-subtitle{font-size:8px}.main-nav{gap:8px}.main-nav a{font-size:9px}.main-nav .nav-contact{gap:3px}.hero{padding-block:52px 59px}.hero h1{font-size:clamp(51px,13vw,67px)}.hero-lead{font-size:15px}.hero-actions{flex-direction:column;align-items:flex-start;gap:17px}.hero-note{align-items:flex-start;max-width:280px;line-height:1.5}.hero-aside{padding:25px 22px 19px}.hero-aside:before{left:22px}.aside-signature{flex-wrap:wrap}.help-section{padding-block:62px 57px}.section-heading h2,.approach-intro h2,.contact-copy h2{font-size:43px}.services-grid{margin-top:31px}.approach-step{grid-template-columns:31px minmax(0,1fr) 14px;gap:10px;padding-block:19px}.approach-step h3{font-size:23px}.form-row{grid-template-columns:1fr;gap:17px}.inquiry-form{gap:16px;padding:19px 16px}.form-submit-row{flex-direction:column;align-items:flex-start}.privacy-note{max-width:100%}.footer-inner{flex-direction:column;gap:25px;padding-bottom:28px}.footer-meta{justify-items:start}.footer-bottom{font-size:7px}.resume-hero{padding-block:52px 55px}.resume-hero h1{font-size:clamp(47px,12.5vw,66px)}.resume-content{padding-block:45px 59px}.resume-section-heading{flex-direction:column;align-items:flex-start;gap:9px}.resume-role{grid-template-columns:33px minmax(0,1fr);gap:9px;padding-top:23px}.resume-role-heading{flex-direction:column;align-items:flex-start;gap:7px}.resume-role-heading h2{font-size:26px}.resume-period{margin-top:0}.resume-cta{flex-direction:column;align-items:flex-start;padding-block:50px 60px}.resume-cta h2{font-size:39px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
