:root{--paper:#f8f8f2;--ink:#1d3531;--muted:#606b63;--green:#153d38;--line:#d9ded3;--lime:#d7e7b8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #92802e;outline-offset:6px}a:hover{color:#587247}p,h1,h2,h3{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h2{font-size:clamp(30px,3.3vw,44px);font-weight:500;line-height:1.22;letter-spacing:-1.7px;margin-bottom:24px}h3{line-height:1.4;font-weight:600}p{margin-bottom:22px}.wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:106px;border-bottom:1px solid var(--line)}.brand{font-family:Manrope,sans-serif;font-size:38px;font-weight:800;letter-spacing:-3px;line-height:1}.brand span{color:#7b965d}.site-header nav{display:flex;align-items:center;gap:34px;font-size:14px}.nav-contact{border:1px solid #b6c0b0;padding:10px 19px;border-radius:4px}.nav-contact span{margin-left:18px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:65px;padding-block:76px 70px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:28px;display:flex;align-items:center;gap:9px}.status-dot{width:7px;height:7px;border-radius:50%;background:#789a59}.hero h1{font-size:clamp(44px,4.9vw,68px);line-height:1.12;letter-spacing:-3.7px;font-weight:500;margin-bottom:28px}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:#52734f;letter-spacing:-3px}.hero-name{font-size:23px;font-weight:600;margin-bottom:12px;letter-spacing:-.5px}.hero-name span{font-size:17px;color:var(--muted);font-weight:400}.hero-description{max-width:440px;color:var(--muted);font-size:17px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}.button{background:var(--green);color:white;padding:15px 23px;border-radius:4px;font-size:13px;font-weight:500;display:inline-flex;gap:35px;align-items:center;transition:background .2s,transform .2s}.button:hover{background:#2a5147;color:white;transform:translateY(-2px)}.text-link{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:15px;border-bottom:1px solid #a9b6a0;padding-bottom:4px}.location{font-size:11px;color:var(--muted);margin:30px 0 0}.location span{font-size:17px;vertical-align:middle;margin-right:6px}.hero-art{position:relative;background:var(--green);min-height:510px;overflow:hidden;border-radius:5px;color:#e1e9d3}.hero-art svg{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.art-top,.art-bottom{position:absolute;left:27px;right:27px;display:flex;justify-content:space-between;z-index:1;font-size:9px;letter-spacing:1.5px}.art-top{top:25px}.art-bottom{bottom:24px;align-items:center}.art-bottom span:last-child{font-family:Georgia,serif;font-style:italic;font-size:16px;letter-spacing:0}.affiliations{padding:27px 0 34px;border-block:1px solid var(--line)}.affiliations>p{font-size:9px;letter-spacing:1.7px;color:var(--muted);margin-bottom:18px}.affiliations>div{display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:Manrope,sans-serif;font-size:18px;font-weight:650;letter-spacing:-.6px;color:#69746a}.section{padding-block:100px}.about{display:grid;grid-template-columns:1fr 1.15fr;gap:95px}.about-copy p{color:var(--muted);font-size:15px}.about-copy .lead{font-size:21px;color:var(--ink);line-height:1.65}.expertise-section{background:#eef1e7}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{color:var(--muted);font-size:14px;margin:0 0 4px}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.expertise-card{padding:27px;background:var(--paper);border:1px solid #dce2d3;border-radius:5px;position:relative}.card-number{font-size:11px;color:#657660}.discipline-icon{font-size:41px;margin:18px 0 23px;color:#5b7956;line-height:1}.expertise-card h3{font-size:19px;letter-spacing:-.6px;margin-bottom:13px}.expertise-card p{font-size:14px;color:var(--muted);min-height:95px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tags span,.topic{font-size:10px;color:#4e634a}.tags span{border:1px solid #d7dece;padding:4px 7px;border-radius:3px}.research-filters{display:flex;gap:9px;margin-bottom:30px;flex-wrap:wrap}.research-filters button{border:1px solid var(--line);background:transparent;padding:7px 15px;color:var(--muted);font-size:12px;border-radius:30px;cursor:pointer}.research-filters button:hover,.research-filters button.active{background:var(--green);color:white;border-color:var(--green)}.publication-group+.publication-group{margin-top:54px}.publication-group-title{font-size:14px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0 0 12px 24px}.publication{display:grid;grid-template-columns:115px 1fr;gap:30px;padding:30px 24px;border-bottom:1px solid var(--line)}.publication.featured{background:#edf1e5;border-radius:4px;border-bottom:0}.publication-year{font-family:Manrope,sans-serif;font-size:25px;font-weight:500;letter-spacing:-.8px}.publication-year span{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:1px;margin-top:12px;color:#61764d}.publication-journal{font-size:9px;letter-spacing:1.3px;color:#62735d;margin-bottom:8px}.publication h3{font-size:19px;letter-spacing:-.3px;margin-bottom:10px;max-width:850px}.publication h3 a span{white-space:nowrap;font-size:20px}.publication h3 a:hover{text-decoration:underline;text-underline-offset:4px}.publication h3+p{font-size:12px;color:var(--muted);margin-bottom:12px}.topic{background:#e6ecdf;padding:4px 8px;border-radius:3px}.journey-section{background:#eef1e7}.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.journey-intro{color:var(--muted);font-size:15px;max-width:360px}.education-list article{border-left:1px solid #b9c7ad;padding:0 0 30px 27px;position:relative}.education-list article:last-child{padding-bottom:0}.education-list article:before{content:'';width:7px;height:7px;background:#597650;border:4px solid #eef1e7;box-sizing:content-box;border-radius:50%;position:absolute;left:-8px;top:5px}.education-place{font-size:9px;letter-spacing:1.5px;color:#5c7353}.education-list h3{font-size:22px;letter-spacing:-.6px;margin:7px 0 4px}.education-list p{font-size:14px;margin-bottom:9px}.education-list .education-detail{font-size:12px;color:var(--muted);max-width:375px}.service-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:45px}.service h2{font-size:34px}.service h3{font-size:16px;margin-bottom:12px}.service p:not(.eyebrow){font-size:14px;color:var(--muted)}.contact-section{background:var(--green);color:var(--paper);position:relative;overflow:hidden}.contact-inner{padding-block:80px;text-align:center}.contact-inner .eyebrow{justify-content:center;color:#bfcea9;margin-bottom:24px}.contact-inner h2{font-size:clamp(38px,4.6vw,58px);letter-spacing:-2px}.contact-inner>p:not(.eyebrow){font-size:15px;color:#c1cfc3}.button-light{background:var(--lime);color:var(--green);margin-top:9px}.button-light:hover{background:#e7f2d0;color:var(--green)}.social-links{display:flex;justify-content:center;gap:28px;margin-top:32px;font-size:12px;color:#d3dfcd}.social-links a:hover{color:white;text-decoration:underline}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:25px;font-size:10px;color:var(--muted)}footer p{margin:0}.skip-link{position:fixed;top:-80px;left:12px;background:white;padding:12px;z-index:20}.skip-link:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(min-width:1500px){.hero{padding-block:90px}.hero-art{min-height:540px}}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.hero{gap:30px}.hero h1{font-size:50px}.hero-art{min-height:470px}.site-header nav{gap:20px}.about{gap:50px}.expertise-card{padding:22px}.expertise-card p{min-height:140px}.journey-grid{gap:50px}.service-grid{gap:25px}.affiliations>div{font-size:15px}.hero-actions{gap:18px}.button{gap:20px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{min-height:80px;position:relative;flex-wrap:wrap;padding-block:20px}.brand{font-size:32px}.js .menu-toggle{display:flex;align-items:center;gap:15px;background:none;border:0;font-size:13px;color:var(--ink);padding:6px}.site-header nav{width:100%;flex-wrap:wrap;padding-top:20px;font-size:13px;gap:18px}.js .site-header nav{display:none}.js .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;padding-bottom:10px}.js .site-header nav a{padding:8px}.hero{grid-template-columns:1fr;padding-block:45px;gap:35px}.hero h1{font-size:clamp(43px,9vw,64px);letter-spacing:-2.7px}.eyebrow{font-size:9px;letter-spacing:1.5px}.hero-name{font-size:22px}.hero-description{font-size:16px;max-width:490px}.hero-art{min-height:380px}.hero-art svg{height:120%;top:-12%}.hero-actions{gap:24px}.affiliations>div{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:14px}.section{padding-block:65px}.about,.journey-grid{grid-template-columns:1fr;gap:24px}.about-copy .lead{font-size:19px}.section-heading{display:block;margin-bottom:30px}.section-heading>p,.section-heading>.text-link{margin-top:22px}.expertise-grid{grid-template-columns:1fr;gap:15px}.expertise-card{padding:26px}.expertise-card p{min-height:0;max-width:500px}.discipline-icon{position:absolute;top:24px;right:28px;margin:0}.expertise-card h3{margin-top:25px}.publication{grid-template-columns:1fr;gap:12px;padding:25px 12px}.publication-year{font-size:20px;display:flex;gap:18px;align-items:center}.publication-year span{margin:0}.publication h3{font-size:18px}.publication-journal{font-size:8px}.journey-grid{gap:38px}.service-grid{grid-template-columns:1fr;gap:16px}.service h2{margin-bottom:10px}.contact-inner{padding-block:65px}.social-links{gap:20px}footer{flex-wrap:wrap;justify-content:center;text-align:center;gap:8px 20px}footer p:first-child{width:100%}h2{letter-spacing:-1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.hero-art,.hero-actions,.research-filters,.contact-section,footer,.skip-link{display:none}.wrap{width:100%}.hero,.section{padding-block:20px}.hero,.about,.journey-grid{display:block}.expertise-grid{display:block}.expertise-card{break-inside:avoid}.publication{break-inside:avoid}.publication[hidden]{display:grid!important}body{font-size:11pt;background:white;color:black}a{color:black}.affiliations{display:none}}

/* Industry profile, selected solutions, and technical toolkit. */
.credentials{list-style:none;padding:0;margin:26px 0;display:flex;flex-wrap:wrap;gap:8px}.credentials li{font-size:11px;background:#edf1e5;border:1px solid var(--line);border-radius:3px;padding:7px 10px}.solutions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.solution-card{border-top:2px solid #789a59;background:#eef1e7;padding:28px;display:flex;flex-direction:column;border-radius:0 0 5px 5px}.solution-card .eyebrow{font-size:8px;letter-spacing:1.2px;min-height:28px;margin-bottom:15px}.solution-card h3{font-size:23px;letter-spacing:-.7px;margin-bottom:16px}.solution-card>p:not(.eyebrow){font-size:14px;color:var(--muted)}.solution-detail{margin-top:auto;padding-top:20px;border-top:1px solid #d3dcc9}.solution-detail>span{font-size:8px;letter-spacing:1.4px;color:var(--muted)}.solution-detail p{font-size:12px;margin:6px 0 0}.toolkit{margin-top:65px;padding-top:45px;border-top:1px solid var(--line)}.toolkit h2{font-size:30px;letter-spacing:-1px}.toolkit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.toolkit-grid h3{font-size:14px;margin-bottom:15px}.toolkit-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:7px}.toolkit-grid li{font-size:11px;border:1px solid var(--line);border-radius:3px;padding:4px 8px}.hero h1{font-size:clamp(40px,4.2vw,59px);letter-spacing:-2.8px}.hero h1 em{letter-spacing:-2px}
@media(max-width:1000px){.solutions-grid{gap:15px}.solution-card{padding:22px}.toolkit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.site-header nav{gap:15px}}
@media(max-width:760px){.solutions-grid{grid-template-columns:1fr}.solution-card .eyebrow{min-height:0}.toolkit{margin-top:45px}.toolkit-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(37px,8.8vw,58px);letter-spacing:-2px}.solution-card{padding:26px}}
@media print{.solutions-grid,.toolkit-grid{display:block}.solution-card,.toolkit-grid>div{break-inside:avoid}.toolkit-grid>div{margin-bottom:16px}}

/* Career chronology preserves overlapping research and teaching appointments. */
.experience-section{background:#eef1e7}.career-role{display:grid;grid-template-columns:185px minmax(0,1fr);gap:40px;padding:32px 0;border-top:1px solid #ced8c5}.career-date{font-size:12px;font-weight:600;color:#52694a;padding-top:3px}.career-organization{font-size:11px;font-weight:600;color:#52694a;margin-bottom:8px}.career-content h3{font-size:24px;letter-spacing:-.6px;margin-bottom:7px}.career-content p{font-size:14px;max-width:800px}.career-content .career-location{font-size:11px;color:var(--muted);margin-bottom:16px}.career-content>p:last-child{margin-bottom:0}.career-content details{font-size:13px;color:var(--muted)}.career-content summary{cursor:pointer;color:var(--ink);font-size:12px;font-weight:600;padding:6px 0;width:fit-content}.career-content summary:hover{color:#52734f}.career-content summary:focus-visible{outline:3px solid #92802e;outline-offset:4px}.career-content ul{padding-left:18px;margin:14px 0 0;max-width:800px}.career-content li{padding-left:4px;margin-bottom:9px}.site-header nav{gap:22px}
@media(min-width:761px) and (max-width:1100px){.site-header{flex-wrap:wrap;padding-block:22px;gap:20px}.site-header nav{flex-wrap:wrap;gap:17px;font-size:12px}}
@media(max-width:760px){.career-role{grid-template-columns:1fr;gap:12px;padding-block:26px}.career-content h3{font-size:21px}.site-header nav{gap:18px}}
@media print{.career-role{display:block;break-inside:avoid}.career-content details::details-content{content-visibility:visible}.career-content details>summary{display:none}.career-content details>*{display:block}}

/* Generated geological cutaway: preserve the full system at every viewport. */
.hero-art.subsurface-figure{margin:0;min-height:0;background:#12343b;align-self:center}.subsurface-figure picture{display:block}.subsurface-figure img{display:block;width:100%;height:auto}.subsurface-figure figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;padding:13px 18px;color:#e1e9d3;font-size:11px}.subsurface-figure figcaption span{font-size:9px;color:#bdcfc7}
@media(max-width:760px){.hero-art.subsurface-figure{width:100%;max-width:480px;justify-self:center}}

/* Persistent section navigation on wide screens, with a compact menu on smaller devices. */
@media(min-width:1101px){
  body{padding-left:250px}
  .site-header{position:fixed;inset:0 auto 0 0;z-index:10;width:250px;height:100vh;min-height:0;margin:0;padding:34px 22px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}
  .site-header .brand{font-size:42px}
  .sidebar-caption{font-size:9px;line-height:1.7;letter-spacing:1.5px;color:var(--muted);margin:18px 0 34px}
  .site-header .menu-toggle{display:none}
  .site-header nav{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;overflow-y:auto}
  .site-header nav>a{font-size:12px;padding:9px 11px;border-radius:3px}
  .site-header nav>a:hover,.site-header nav>a:focus-visible{background:#eef1e7}
  .site-header nav .nav-contact{margin-top:13px;border:1px solid #b6c0b0;padding:10px 11px}
  .site-header nav .nav-contact span{float:right;margin-left:0}
}
@media(max-width:1100px){
  html{scroll-padding-top:86px}
  .site-header{position:sticky;top:0;z-index:10;width:100%;min-height:70px;margin:0;padding:14px 28px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
  .sidebar-caption{display:none}
  .site-header .menu-toggle{display:block;border:1px solid #b6c0b0;border-radius:4px;background:transparent;padding:8px 12px;color:var(--ink);font-size:13px;cursor:pointer}
  .site-header nav{display:none}
  .site-header nav.open{position:absolute;top:100%;right:16px;display:flex;flex-direction:column;align-items:stretch;gap:2px;width:min(340px,calc(100vw - 32px));max-height:calc(100vh - 90px);overflow-y:auto;padding:12px;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 28px #1d353126}
  .site-header nav>a{padding:9px 11px;font-size:13px}
  .site-header nav .nav-contact{margin-top:5px}
  .site-header nav .nav-contact span{float:right;margin-left:0}
}
.career-divider{scroll-margin-top:100px;padding:23px 0 9px;border-top:1px solid #ced8c5;font-family:Manrope,sans-serif;font-size:13px;font-weight:650;letter-spacing:.4px;color:#52694a}
.publication-group{scroll-margin-top:90px}
.sample-work{scroll-margin-top:90px}
.sample-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sample-work-card{margin:0;min-width:0;background:#eef1e7;border-radius:5px;overflow:hidden}
.sample-work-image-link{display:block;position:relative;background:#fff}
.sample-work-card img{display:block;width:100%;height:230px;object-fit:contain;background:#fff}
.sample-work-image-hint{position:absolute;right:10px;bottom:10px;padding:5px 8px;border-radius:3px;background:#153d38e6;color:#fff;font-size:10px;opacity:0;transition:opacity .2s}
.sample-work-image-link:hover .sample-work-image-hint,.sample-work-image-link:focus-visible .sample-work-image-hint{opacity:1}
@media(hover:none){.sample-work-image-hint{opacity:1}}
.sample-work-card figcaption{padding:20px}
.sample-work-card h3{font-size:17px;letter-spacing:-.3px;margin:0 0 10px}
.sample-work-card p{font-size:13px;color:var(--muted);margin:0 0 14px}
.sample-work-card figcaption>span{font-size:10px;color:var(--muted)}
.sample-work-card figcaption a{font-weight:600;text-decoration:underline;text-underline-offset:2px}
@media(max-width:1000px){.sample-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sample-work-grid{grid-template-columns:1fr}.sample-work-card img{height:260px}}
@media print{body{padding-left:0}.site-header{display:none}main,footer{margin:0}}
