:root{--ink:#14231f;--ink-soft:#48554f;--green:#173f35;--green-light:#2d5b4d;--paper:#f7f4ec;--paper-deep:#eee8dc;--white:#fffdf8;--line:#14231f29;--clay:#d66b46;--sage:#a8b7a2;--shadow:0 24px 70px #23302921;--shell:min(1180px, calc(100vw - 48px));--serif:Georgia, "Times New Roman", serif;--sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;width:100%;scroll-padding-top:88px;overflow-x:clip}body{width:100%;color:var(--ink);background:var(--paper);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65;overflow-x:clip}body:before{z-index:-1;pointer-events:none;content:"";opacity:.45;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.025'/%3E%3C/svg%3E");position:fixed;inset:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{color:var(--white);background:var(--green)}.skip-link{z-index:999;color:var(--white);background:var(--green);padding:10px 14px;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-140%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.shell,.section-shell{width:var(--shell);margin-inline:auto}.site-header{z-index:100;position:fixed;top:0;left:0;right:0}.site-header:before{z-index:-1;content:"";pointer-events:none;border-bottom:1px solid #0000;transition:background-color .18s,border-color .18s,box-shadow .18s;position:absolute;inset:0}.site-header.is-scrolled:before{border-color:var(--line);backdrop-filter:blur(16px);background:#f7f4ece6;box-shadow:0 8px 28px #2330290f}.nav-wrap{grid-template-columns:1fr auto 1fr;align-items:center;min-height:78px;display:grid}.brand{letter-spacing:-.01em;align-items:center;gap:11px;width:max-content;font-size:14px;font-weight:700;display:inline-flex}.brand-mark{width:39px;height:39px;color:var(--white);background:var(--green);font-family:var(--serif);border-radius:50%;place-items:center;font-size:15px;font-style:italic;display:grid}.site-nav{align-items:center;gap:32px;font-size:13px;font-weight:650;display:flex}.site-nav a,.nav-cta,.text-link,.site-footer a{position:relative}.site-nav a:after,.text-link:after,.site-footer a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .18s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.text-link:hover:after,.text-link:focus-visible:after,.site-footer a:hover:after,.site-footer a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.nav-cta{border:1px solid var(--line);border-radius:999px;justify-self:end;padding:9px 14px;font-size:13px;font-weight:700;transition:color .18s,background-color .18s,border-color .18s}.nav-cta:hover{color:var(--white);border-color:var(--green);background:var(--green)}.menu-toggle{display:none}.hero{grid-template-rows:1fr auto;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:48px 72px;min-height:min(900px,100vh);padding-top:148px;padding-bottom:62px;display:grid}.hero>*{min-width:0}.hero-copy{align-self:center;padding-bottom:30px}.eyebrow{color:var(--green-light);letter-spacing:.13em;text-transform:uppercase;margin:0 0 22px;font-size:12px;font-weight:800;line-height:1.4}.status-dot{background:#68a166;border-radius:50%;width:7px;height:7px;margin-right:9px;display:inline-block;box-shadow:0 0 0 5px #68a16624}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin-top:0;line-height:1.05}h1,h2{font-family:var(--serif);letter-spacing:-.045em;font-weight:400}h1{max-width:780px;margin-bottom:29px;font-size:clamp(3.4rem,6.35vw,6.4rem)}h1 em,h2 em{color:var(--clay);font-weight:400}.hero-intro{max-width:680px;color:var(--ink-soft);margin:0;font-size:clamp(1.05rem,1.5vw,1.24rem);line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:center;gap:26px;margin-top:38px;display:flex}.button{cursor:pointer;letter-spacing:.02em;border:0;border-radius:2px;justify-content:center;align-items:center;gap:18px;min-height:52px;padding:12px 22px;font-size:13px;font-weight:800;transition:transform .18s,background-color .18s,color .18s,opacity .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{color:var(--white);background:var(--green)}.button-primary:hover{background:#0f3028}.text-link{font-size:14px;font-weight:700}.hero-visual{align-self:center;position:relative}.portrait-frame{width:min(100%,480px);box-shadow:var(--shadow);background:#fffdf8a6;margin-left:auto;padding:14px;position:relative}.portrait-frame:before,.portrait-frame:after{z-index:-1;content:"";border-radius:50%;position:absolute}.portrait-frame:before{border:1px solid #173f3533;width:190px;height:190px;top:-78px;right:-80px}.portrait-frame:after{background:var(--clay);width:76px;height:76px;bottom:-35px;right:-35px}.portrait-frame picture,.portrait-frame img{width:100%;height:auto}.portrait-frame img{aspect-ratio:2/2.72;object-fit:cover;object-position:center 24%}.portrait-accent{z-index:2;background:var(--clay);width:44px;height:2px;position:absolute;top:30px;left:-22px}.portrait-label{min-width:194px;color:var(--white);background:var(--green);flex-direction:column;padding:13px 18px;display:flex;position:absolute;bottom:36px;right:-22px;box-shadow:0 12px 32px #173f3538}.portrait-label span{opacity:.62;letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:700}.portrait-label strong{font-family:var(--serif);margin-top:2px;font-size:16px;font-weight:400}.hero-metrics{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,1fr);display:grid}.hero-metrics div{align-items:center;gap:18px;padding:28px 0 0;display:flex}.hero-metrics div+div{border-left:1px solid var(--line);padding-left:32px}.hero-metrics strong{font-family:var(--serif);letter-spacing:-.05em;font-size:clamp(2.2rem,4vw,4.2rem);font-weight:400;line-height:.9}.hero-metrics span{color:var(--ink-soft);font-size:12px;font-weight:650;line-height:1.5}.capability-strip{color:var(--white);background:var(--green);overflow:auto}.strip-track{min-width:max-content;font-family:var(--serif);justify-content:center;align-items:center;gap:clamp(18px,2.5vw,38px);padding:18px 30px;font-size:16px;font-style:italic;display:flex}.strip-track i{color:var(--clay);font-family:var(--sans);font-size:10px;font-style:normal}.about,.experience,.work,.credentials{padding-top:clamp(96px,12vw,160px);padding-bottom:clamp(96px,12vw,160px)}.section-kicker{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:clamp(54px,7vw,94px);font-size:11px;font-weight:800;display:flex}.section-kicker:after{content:"";background:var(--line);width:70px;height:1px}.section-kicker span{border:1px solid var(--line);border-radius:50%;place-items:center;width:32px;height:32px;font-size:9px;display:grid}.section-kicker.light{color:#fffdf89e}.section-kicker.light:after,.section-kicker.light span{border-color:#fffdf82e}.section-kicker.light:after{background:#fffdf82e}.about-grid{grid-template-columns:.93fr 1.07fr;gap:9vw;display:grid}.section-heading h2{max-width:690px;margin-bottom:0;font-size:clamp(2.65rem,5vw,5.1rem)}.section-heading.narrow h2{max-width:760px}.about-copy>p{max-width:650px;color:var(--ink-soft);margin-top:0}.about-copy .lead{color:var(--ink);font-family:var(--serif);font-size:clamp(1.32rem,2vw,1.78rem);line-height:1.48}.principles{border-top:1px solid var(--line);margin-top:48px}.principles>div{border-bottom:1px solid var(--line);grid-template-columns:42px 1fr;gap:18px;padding:22px 0;display:grid}.principles span{color:var(--clay);font-family:var(--serif);font-size:14px;font-style:italic}.principles p{color:var(--ink-soft);margin:0;font-size:14px}.principles strong{color:var(--ink)}.skills-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:100px;display:grid}.skill-card{padding:32px 26px 36px}.skill-card+.skill-card{border-left:1px solid var(--line)}.skill-card h3{font-family:var(--serif);margin-bottom:24px;font-size:20px;font-weight:400}.skill-card ul,.tag-list{margin:0;padding:0;list-style:none}.skill-card li{color:var(--ink-soft);margin-top:7px;font-size:13px}.experience{width:100%;color:var(--white);background:var(--green);padding-left:max(24px,50vw - 590px);padding-right:max(24px,50vw - 590px)}.experience .section-kicker{color:#fff9}.experience .section-kicker:after{background:#fff3}.experience .section-kicker span{border-color:#fff3}.experience .eyebrow{color:#b8cbbf}.timeline{margin-top:86px}.timeline-item{border-top:1px solid #ffffff2b;grid-template-columns:56px 210px 1fr;gap:38px;padding:44px 0;display:grid}.timeline-item:last-child{border-bottom:1px solid #ffffff2b}.timeline-marker span{width:42px;height:42px;font-family:var(--serif);border:1px solid #ffffff3d;border-radius:50%;place-items:center;font-size:12px;font-style:italic;display:grid}.timeline-meta p{margin:3px 0 2px;font-size:13px;font-weight:750}.timeline-meta span{color:#ffffff87;font-size:12px}.timeline-body{grid-template-columns:1fr 1.2fr;column-gap:44px;display:grid}.timeline-body .role{color:#b8cbbf;letter-spacing:.13em;text-transform:uppercase;grid-column:1;margin:0 0 8px;font-size:11px;font-weight:800}.timeline-body h3{font-family:var(--serif);grid-column:1;margin-bottom:8px;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:400}.company-expansion{color:#ffffff80;grid-column:1;margin:0;font-size:12px;line-height:1.5}.timeline-body ul{grid-area:1/2/span 3;margin:0;padding:0;list-style:none}.timeline-body li{color:#ffffffb8;margin-bottom:10px;padding-left:19px;font-size:14px;position:relative}.timeline-body li:before{content:"";background:var(--clay);border-radius:50%;width:5px;height:5px;position:absolute;top:.75em;left:0}.work-heading{grid-template-columns:1.4fr .6fr;align-items:end;gap:9vw;display:grid}.work-heading>p{max-width:390px;color:var(--ink-soft);margin:0 0 7px;font-size:14px}.projects-list{grid-template-columns:1fr 1fr;gap:22px;margin-top:82px;display:grid}.project-card{border:1px solid var(--line);background:#fffdf8ad;flex-direction:column;min-height:450px;padding:30px;transition:transform .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden}.project-card:hover{transform:translateY(-5px);box-shadow:0 20px 60px #2330291a}.project-card:before{content:"";opacity:.42;background:var(--project-accent,var(--sage));filter:blur(1px);border-radius:50%;width:230px;height:230px;position:absolute;top:-90px;right:-100px}.project-card.sage{--project-accent:#a8b7a2}.project-card.blue{--project-accent:#9fb9be}.project-card.sand{--project-accent:#d3bb91}.project-card.clay{--project-accent:#dba284}.project-card.plum{--project-accent:#baacc0}.project-card:last-child{grid-column:1/-1;min-height:390px}.project-top{z-index:1;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;display:grid;position:relative}.project-number{font-family:var(--serif);font-size:14px;font-style:italic}.project-eyebrow,.project-role{color:var(--ink-soft);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800}.project-top a{border:1px solid var(--line);background:#fffdf880;border-radius:50%;place-items:center;width:42px;height:42px;transition:color .18s,background .18s,transform .18s;display:grid}.project-top a:hover{color:var(--white);background:var(--green);transform:rotate(8deg)}.project-main{z-index:1;grid-template-columns:1fr .85fr;align-items:end;gap:24px;margin:72px 0 35px;display:grid;position:relative}.project-role{margin:0 0 12px}.project-main h3{max-width:420px;font-family:var(--serif);letter-spacing:-.04em;margin-bottom:0;font-size:clamp(2rem,3.5vw,3.65rem);font-weight:400}.project-main>p{color:var(--ink-soft);margin:0;font-size:13px}.project-impact{z-index:1;border-left:2px solid var(--clay);font-family:var(--serif);background:#fff6;margin:auto 0 24px;padding:18px 20px;font-size:15px;line-height:1.5;position:relative}.project-impact span{color:var(--clay);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;font-size:9px;font-weight:900;display:block}.tag-list{z-index:1;flex-wrap:wrap;gap:7px;display:flex;position:relative}.tag-list li{border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:10px;font-weight:700}.credentials{padding-top:0}.credential-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.credential-card{padding:48px}.credential-card+.credential-card{border-left:1px solid var(--line)}.education>div{padding-left:68px;position:relative}.education>div+div{border-top:1px solid var(--line);margin-top:36px;padding-top:36px}.education>div>span{color:var(--clay);font-family:var(--serif);font-size:13px;font-style:italic;position:absolute;top:4px;left:0}.credential-card h3{font-family:var(--serif);margin-bottom:8px;font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:400}.credential-card p:not(.eyebrow){color:var(--ink-soft);margin:0;font-size:13px}.publication{background:var(--paper-deep);flex-direction:column;display:flex}.publication-year{color:var(--clay);letter-spacing:.12em;font-size:11px;font-weight:800}.publication h3{max-width:500px;margin-top:28px}.publication a{width:max-content;margin-top:auto;padding-top:36px;font-size:12px;font-weight:800}.contact{color:var(--white);background:#112f28}.contact-inner{grid-template-columns:.85fr 1.15fr;gap:9vw;padding-top:clamp(94px,11vw,150px);padding-bottom:clamp(94px,11vw,150px);display:grid}.contact-copy .eyebrow{color:#a8c2b6}.contact-copy h2{margin-bottom:28px;font-size:clamp(3rem,5vw,5rem)}.contact-copy>p:not(.eyebrow){color:#ffffffa6;font-size:14px}.contact-details{flex-direction:column;align-items:flex-start;gap:8px;margin-top:44px;display:flex}.contact-details a{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.45rem)}.contact-details a span{color:var(--clay);font-family:var(--sans);font-size:13px}.contact-details p{color:#ffffff85;margin:13px 0 0;font-size:12px}.social-links{gap:22px;margin-top:30px;display:flex}.social-links a{color:#b9c9c1;letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.contact-form{color:var(--ink);background:var(--white);align-self:start;padding:44px;box-shadow:0 30px 80px #00000029}.field-row{grid-template-columns:1fr 1fr;gap:22px;display:grid}.field{margin-bottom:24px}.field label{margin-bottom:8px;font-size:11px;font-weight:800;display:block}.field input,.field textarea{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #14231f3d;border-radius:0;outline:none;padding:13px 0;transition:border-color .18s}.field textarea{resize:vertical;min-height:132px}.field input::placeholder,.field textarea::placeholder{color:#8d958f;font-size:13px}.field input:focus,.field textarea:focus{border-color:var(--clay)}.honey-field{position:absolute;left:-9999px}.form-footer{align-items:center;gap:22px;margin-top:8px;display:flex}.button-light{color:var(--white);background:var(--green);flex:none}.button-light:hover{background:var(--clay)}.button:disabled{cursor:wait;opacity:.65;transform:none}.form-footer p{color:var(--ink-soft);margin:0;font-size:10px;line-height:1.4}.form-status{min-height:24px;margin:20px 0 0;font-size:12px;font-weight:700}.form-status.success{color:#2e7458}.form-status.error,.form-fallback{color:#a94032}.form-fallback{font-size:12px;font-weight:800}.site-footer{color:#ffffffad;background:#0d211c}.footer-inner{grid-template-columns:1.2fr 1fr 1fr auto;align-items:center;gap:28px;min-height:116px;font-size:11px;display:grid}.footer-brand .brand-mark{color:var(--green);background:var(--paper)}.footer-brand .brand-name{color:var(--white)}.footer-inner>a{color:var(--white);font-weight:800}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(24px)}.js .hero .reveal{opacity:1;transform:none}.js .reveal[data-delay="1"]{transition-delay:.1s}.js .reveal[data-delay="2"]{transition-delay:.2s}.js .reveal.is-visible{opacity:1;transform:translateY(0)}@media (width<=1080px){:root{--shell:min(100% - 40px, 940px)}.hero{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:42px}.hero h1{font-size:clamp(3.3rem,6.5vw,5.2rem)}.about-grid,.contact-inner{gap:6vw}.skills-grid{grid-template-columns:1fr 1fr}.skill-card:nth-child(3){border-left:0;border-top:1px solid var(--line)}.skill-card:nth-child(4){border-top:1px solid var(--line)}.timeline-item{grid-template-columns:50px 165px 1fr;gap:24px}.timeline-body{display:block}.timeline-body ul{margin-top:24px}.contact-form{padding:34px}}@media (width<=820px){:root{--shell:calc(100% - 36px)}body.menu-open{overscroll-behavior:none;overflow:hidden}.nav-wrap{grid-template-columns:1fr auto}.menu-toggle{z-index:2;border:1px solid var(--line);background:0 0;border-radius:50%;place-content:center;gap:6px;width:42px;height:42px;padding:0;display:grid;position:relative}.menu-toggle span:not(.sr-only){background:var(--ink);width:17px;height:1px;transition:transform .18s}.menu-toggle[aria-expanded=true] span:nth-child(2){transform:translateY(3.5px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-3.5px)rotate(-45deg)}.site-nav{min-height:100dvh;padding:max(84px, env(safe-area-inset-top)) max(36px, env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(36px, env(safe-area-inset-left));visibility:hidden;opacity:0;background:var(--paper);flex-direction:column;justify-content:center;align-items:flex-start;transition:opacity .18s,visibility .18s,transform .18s;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translateY(-12px)}.site-nav.is-open{visibility:visible;opacity:1;transform:translateY(0)}.site-nav a{font-family:var(--serif);letter-spacing:-.04em;font-size:clamp(2.4rem,11vw,4rem);font-weight:400}.nav-cta{display:none}.hero{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);gap:54px;min-height:auto;padding-top:130px;padding-bottom:50px}.hero-copy{padding-bottom:0}.hero-visual{width:min(90%,520px);margin-inline:auto}.portrait-frame{margin:0}.hero-metrics{grid-column:1}.hero-metrics div{flex-direction:column;align-items:flex-start;gap:10px}.hero-metrics div+div{padding-left:20px}.about-grid,.work-heading,.contact-inner{grid-template-columns:1fr}.about-copy{margin-top:48px}.timeline-item{grid-template-columns:48px 1fr}.timeline-meta,.timeline-body{grid-column:2}.timeline-marker{grid-row:1/span 2}.projects-list,.credential-grid{grid-template-columns:1fr}.project-card:last-child{grid-column:1}.credential-card+.credential-card{border-top:1px solid var(--line);border-left:0}.contact-copy{max-width:680px}.footer-inner{grid-template-columns:1fr 1fr;padding:30px 0}}@media (width<=560px){:root{--shell:calc(100% - 28px)}.brand-name{font-size:13px}h1{font-size:clamp(3.1rem,15vw,4.6rem)}.hero-intro{font-size:1rem}.hero-actions{flex-direction:column;align-items:flex-start}.portrait-label{bottom:22px;right:-8px}.portrait-frame:after{right:-8px}.hero-metrics{grid-template-columns:1fr}.hero-metrics div{flex-direction:row;padding:22px 0}.hero-metrics div+div{border-top:1px solid var(--line);border-left:0;padding-left:0}.strip-track{justify-content:flex-start}.skills-grid{grid-template-columns:1fr;margin-top:70px}.skill-card+.skill-card,.skill-card:nth-child(3){border-top:1px solid var(--line);border-left:0}.timeline{margin-top:60px}.timeline-item{grid-template-columns:38px 1fr;gap:16px}.timeline-marker span{width:34px;height:34px}.projects-list{margin-top:58px}.project-card{min-height:0;padding:22px}.project-main{grid-template-columns:1fr;margin-top:58px}.project-main h3{font-size:2.5rem}.project-impact{margin-top:16px}.credential-card{padding:30px 22px}.education>div{padding-left:0}.education>div>span{margin-bottom:9px;display:inline-block;position:static}.contact-form{padding:28px 20px}.field-row{grid-template-columns:1fr;gap:0}.form-footer{flex-direction:column;align-items:flex-start}.footer-inner{grid-template-columns:1fr;gap:12px}.footer-inner p{margin:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
