/* Personal portfolio only. Loaded by the new home and /portfolio-sb/ pages. */
:root{--paper:#f6f4ee;--white:#fffefa;--ink:#203b39;--muted:#66716b;--line:#d9ded3;--green:#173f3b;--lime:#c2db99;--soft:#e9ede2;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}.sb-portfolio{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,pre:focus-visible{outline:3px solid #85a965;outline-offset:5px}button{color:inherit}.container{width:min(1184px,calc(100% - 112px));margin-inline:auto}.section{padding-block:104px}.eyebrow{font-size:11px;font-weight:650;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;margin:0 0 24px}.site-header{background:rgba(246,244,238,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.nav-wrap{width:min(1320px,calc(100% - 80px));height:90px;margin:auto;display:flex;align-items:center;gap:32px}.wordmark{display:flex;gap:16px;align-items:center;flex-shrink:0}.monogram{font-family:var(--serif);font-weight:700;font-size:38px;letter-spacing:-4px;line-height:1}.monogram span{color:#789c4c}.brand-name{font-size:13px;font-weight:650;line-height:1.5}.brand-name small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:.025em}.site-header nav{display:flex;gap:26px;margin-left:auto;font-size:12px;font-weight:550}.site-header nav a{padding:10px 0}.site-header nav a:hover,.site-header nav a.is-active{color:#557943}.language-switch{font-size:12px;padding-left:24px;border-left:1px solid var(--line);white-space:nowrap}.language-switch span{margin-left:4px}.menu-toggle{display:none}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--green);color:white;padding:12px 18px;border-radius:6px}.skip-link:focus{top:12px}.hero{display:grid;grid-template-columns:1.12fr .88fr;gap:70px;align-items:center;padding-block:74px 70px}.hero .eyebrow{font-size:10px;letter-spacing:.09em;display:flex;align-items:center;gap:8px;margin-bottom:24px}.live-dot{width:6px;height:6px;border-radius:50%;background:#75994f;flex-shrink:0}.hero h1{font-size:clamp(76px,8.2vw,116px);font-weight:450;letter-spacing:-.072em;line-height:.91;margin:0 0 28px}.hero h1>span:not(.name-dot){font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.065em}.hero .name-dot{color:#7d9d5b}.role{font-size:17px;margin-bottom:16px;font-weight:550;line-height:1.4}.hero-description{font-size:16px;color:var(--muted);max-width:470px;line-height:1.8;margin-bottom:28px}.hero-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;border-radius:4px;padding:13px 19px;font-size:12px;font-weight:600;line-height:1.4;border:1px solid transparent;transition:background .16s,transform .16s}.button:hover{transform:translateY(-2px)}.primary{background:var(--green);color:var(--white)}.primary:hover{background:#28534d}.button span{font-size:17px}.text-link{font-size:12px;font-weight:600;border:0;background:transparent;padding:5px 0;border-bottom:1px solid transparent}.text-link span{font-size:10px;letter-spacing:.04em;margin-left:5px}.text-link:hover{border-bottom-color:currentColor}.hero-note{font-size:10px;color:var(--muted);margin-top:25px}.portrait-panel{background:var(--green);border-radius:6px;min-height:455px;position:relative;overflow:hidden;color:#e3e9d5;display:flex;flex-direction:column;align-items:center;padding:28px 28px 24px;justify-content:space-between}.portrait-eyebrow{font-size:8px;letter-spacing:.18em;align-self:flex-start;z-index:1}.portrait-panel figure{width:250px;margin:25px auto 8px;position:relative}.portrait-panel img{display:block;width:250px;height:258px;object-fit:cover;border-radius:3px;filter:saturate(.7)}.portrait-panel figcaption{font-size:11px;display:flex;justify-content:space-between;gap:12px;padding-top:12px}.portrait-panel figcaption span{font-size:9px;opacity:.65}.network{position:absolute;width:480px;height:480px;top:15px;left:50%;transform:translateX(-50%);color:#c8dcaa}.panel-label{display:flex;justify-content:space-between;width:100%;font-size:10px;line-height:1.55;letter-spacing:.035em;margin-top:18px;position:relative}.panel-arrow{font-size:32px;line-height:1;color:var(--lime)}.metrics{display:grid;grid-template-columns:1.2fr 1fr .8fr .8fr;gap:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:28px 30px}.metrics-heading{font-family:var(--serif);font-size:24px;letter-spacing:-.025em;line-height:1.2;padding-top:5px}.metrics small{display:block;color:var(--muted);font-family:var(--sans);font-size:9px;line-height:1.65;letter-spacing:0;margin-top:9px;max-width:210px}.metrics>a{border-left:1px solid var(--line);padding-left:28px}.metrics strong{font-size:38px;letter-spacing:-.06em;font-weight:450;display:flex;justify-content:space-between;line-height:1.1}.metrics strong span{font-size:18px;color:#82966c;font-weight:400;margin-right:10px}.metrics p{font-size:11px;font-weight:550;margin:10px 0 0}.metrics a:hover strong{color:#648144}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:55px;margin-bottom:48px}.section-heading .eyebrow{color:#6d8360;margin-bottom:18px}h2{font-size:clamp(31px,3.5vw,46px);font-weight:450;letter-spacing:-.045em;line-height:1.16;margin:0}h3{font-weight:550;letter-spacing:-.025em;line-height:1.35;margin:0}p{margin-top:0}.section-intro{max-width:350px;font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 3px}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 38px}.research-card{border-top:1px solid var(--line);padding-top:18px}.card-no{font-size:10px;color:#91a080;display:block;margin-bottom:28px}.research-card h3{font-size:19px;margin-bottom:13px}.research-card p{font-size:12px;color:var(--muted);line-height:1.85;min-height:90px}.research-card small{font-size:9px;color:#58724b;display:block;line-height:1.7}.research-foot{margin-top:46px;display:grid;grid-template-columns:1fr 2fr;gap:40px;background:var(--soft);border-radius:4px;padding:26px 30px;align-items:center}.research-foot strong{font-family:var(--serif);font-size:24px;line-height:1.3;font-weight:400}.research-foot p{font-size:12px;color:var(--muted);line-height:1.8;margin:0}.projects-band{background:var(--green);color:#f3f3e8}.projects-band .eyebrow{color:#b8cf98}.projects-band .section-intro{color:#b7c9bc}.project-filters{display:flex;gap:12px;margin-bottom:32px;flex-wrap:wrap}.project-filters button{border:1px solid #496760;border-radius:4px;background:transparent;padding:10px 17px;color:#c5d4c9;font-size:11px}.project-filters button span{padding-left:20px;font-size:9px}.project-filters button[aria-pressed=true]{background:var(--lime);color:#193e31;border-color:var(--lime)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{padding:29px 30px;background:#204a43;border:1px solid #365c53;border-radius:5px;display:flex;flex-direction:column}.project-card[hidden]{display:none}.project-card[data-active=true]:nth-child(5){grid-column:1/-1}.project-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:29px;line-height:1.4;font-size:9px;color:#b9cbba}.status{white-space:nowrap;font-size:8px;padding:4px 7px;border:1px solid #67816b;border-radius:20px;color:#c8deaa;line-height:1.2}.status.is-funded{white-space:normal;max-width:160px}.project-card h3{font-size:30px;letter-spacing:-.04em;margin-bottom:8px}.project-title{font-size:11px;line-height:1.5;color:#c2d2c5;max-width:420px;margin-bottom:21px}.project-role{font-size:12px;font-weight:550;color:#dce7cb;display:block;margin-bottom:10px}.project-card>p:not(.project-title){font-size:12px;line-height:1.8;max-width:500px;color:#c0d1c5;margin-bottom:23px}.project-bottom{margin-top:auto;padding-top:14px;border-top:1px solid #46675d;display:grid;gap:8px}.project-bottom>span{font-size:10px;color:var(--lime)}.project-bottom small{font-size:9px;line-height:1.7;color:#b8cabb}.publications-note{font-size:12px;color:var(--muted);max-width:650px;margin-top:-20px;margin-bottom:28px}.publication-tools{display:grid;grid-template-columns:minmax(0,1fr) 220px 160px;gap:14px}.search-field{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);padding-left:15px;border-radius:4px}.search-field svg{height:18px;width:18px;fill:none;stroke:#7e8c77;stroke-width:1.5}.search-field input{min-width:0;width:100%;border:0;background:transparent;padding:14px 15px 14px 0;font-size:12px;color:var(--ink);outline-offset:0}.publication-tools select{padding:12px 30px 12px 13px;width:100%;border:1px solid var(--line);border-radius:4px;background:var(--white);font-size:11px;color:var(--ink)}.publication-meta{display:flex;align-items:center;justify-content:space-between;margin:19px 0 9px;font-size:10px;color:var(--muted)}.publication-meta p{margin:0}.reset-filters{font-size:10px;font-weight:400}.publication-list{list-style:none;margin:0;padding:0}.publication{display:grid;grid-template-columns:100px 1fr 86px;gap:24px;border-top:1px solid var(--line);padding:25px 0}.publication[hidden]{display:none}.pub-year{font-size:16px;letter-spacing:-.03em}.pub-year small{font-size:8px;display:block;letter-spacing:0;color:var(--muted);margin-top:6px}.publication h3{font-size:15px;line-height:1.5;margin-bottom:9px;font-weight:550}.authors{font-size:10px;color:var(--muted);line-height:1.7;margin-bottom:5px}.venue{font-size:10px;line-height:1.6;color:#56744b;margin:0}.pub-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-size:10px;padding-top:4px}.pub-actions a:hover{text-decoration:underline}.cite-button{border:1px solid var(--line);background:transparent;border-radius:3px;padding:4px 9px;font-size:9px}.cite-button:hover{background:var(--soft)}.load-more{margin:22px auto 0;display:flex}.load-more[hidden]{display:none}.outline{border-color:#a3b09a;color:var(--ink);background:transparent}.empty-state{padding:30px;text-align:center;border-top:1px solid var(--line);font-size:13px}.teaching-band{background:#e9ede4;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.teaching-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:70px}.course{border-top:1px solid #cbd3c3;padding:24px 0}.course>span{font-size:9px;letter-spacing:.025em;color:#758469}.course h3{font-size:21px;margin:9px 0}.course p{font-size:12px;color:#586958;line-height:1.7;margin-bottom:7px}.course small{font-size:10px;color:var(--muted);line-height:1.7;display:block}.thesis-card{background:var(--paper);padding:35px;border-radius:5px;align-self:start}.plus-mark{font-size:38px;line-height:1;color:#86a063;display:block;margin-bottom:23px}.thesis-card h3{font-size:25px;margin-bottom:20px}.thesis-card p{font-size:12px;color:var(--muted);line-height:1.8}.thesis-card strong{font-size:12px}.thesis-card hr{border:0;border-top:1px solid var(--line);margin:28px 0}.university-link{display:inline-block;margin-top:25px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px}.service-feature{background:#e4eadc;border-radius:5px;padding:36px;display:flex;flex-direction:column;align-items:flex-start;min-height:340px}.small-label{font-size:9px;letter-spacing:.1em;color:#5f7550}.service-feature h3{font-family:var(--serif);font-weight:400;font-size:38px;line-height:1.15;margin:31px 0 22px;letter-spacing:-.04em}.service-role{background:var(--green);color:#eef2e4;padding:5px 12px;border-radius:3px;font-size:11px;margin-bottom:13px}.service-feature>p:not(.service-role){font-size:11px;color:#617458;margin-bottom:10px}.service-feature small{font-size:9px;color:var(--muted)}.service-list article{border-top:1px solid var(--line);padding:20px 0 19px}.service-list article>span{font-size:9px;color:var(--muted)}.service-list h3{font-size:18px;margin:6px 0}.service-list p{font-size:11px;color:var(--muted);margin-bottom:0}.career-strip{margin-top:65px;border-top:1px solid var(--line);padding-top:40px;display:grid;grid-template-columns:1fr 2fr;gap:55px}.career-strip h3{font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.2}.career-strip .eyebrow{font-size:9px;margin-bottom:20px}.career-strip ol{padding:0;margin:0;list-style:none}.career-strip li{display:grid;grid-template-columns:135px 1fr;border-bottom:1px solid var(--line);padding:0 0 14px;margin-bottom:14px;gap:20px;font-size:12px}.career-strip li strong{font-size:10px;font-weight:500;color:var(--muted)}.career-strip li p{margin:0}.career-strip li span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.transfer-section{padding-bottom:95px}.venture-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px}.venture-grid article{border-top:1px solid var(--line);padding-top:20px}.venture-grid article>span{font-size:9px;color:var(--muted)}.venture-grid h3{font-family:var(--serif);font-weight:400;font-size:34px;display:flex;justify-content:space-between;align-items:center;margin:22px 0}.venture-grid h3 span{font-family:var(--sans);font-size:25px;color:#93a17e}.venture-grid strong{font-size:10px;display:block;margin-bottom:16px;font-weight:600}.venture-grid p{font-size:12px;color:var(--muted);line-height:1.8;max-width:470px}.venture-note{font-size:10px;color:var(--muted);margin-top:25px}.contact-section{background:var(--green);color:#f2f2e8;padding:75px 0 85px}.contact-section .eyebrow{color:var(--lime);margin-bottom:25px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.contact-layout h2{font-size:45px}.contact-layout>div>p{color:#bacdc0;font-size:12px;max-width:350px}.contact-email{font-size:clamp(15px,2vw,23px);letter-spacing:-.035em;display:inline-block;margin:12px 0 25px;border-bottom:1px solid #77957c;padding-bottom:7px}.contact-email:hover{color:var(--lime)}address{font-size:11px;font-style:normal;color:#b3c9b9;line-height:1.8}.contact-profiles{display:flex;flex-wrap:wrap;gap:18px;font-size:10px;color:var(--lime);margin-top:26px}.site-footer{display:flex;align-items:center;gap:25px;padding-block:28px;font-size:9px;color:var(--muted)}.site-footer .monogram{font-size:30px;color:var(--ink);margin-right:10px}.site-footer p{margin:0 auto 0 0}.site-footer>a:not(.monogram):hover{text-decoration:underline}.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}dialog{border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:26px;max-width:min(760px,calc(100% - 36px));max-height:85vh;width:760px}dialog::backdrop{background:rgba(11,30,25,.65)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head h2{font-size:25px}.dialog-head button{border:0;background:transparent;font-size:30px;line-height:1}.dialog-head+pre{font-size:11px;white-space:pre-wrap;overflow:auto;max-height:48vh;padding:17px;background:#e8eddf;border-radius:5px;line-height:1.7}.dialog-actions{display:flex;gap:12px}.dialog-actions .button{font-size:11px}#citation-feedback{font-size:11px;margin:15px 0 0}.legal-page{max-width:760px}.legal-page h1{font-size:48px;line-height:1.2;margin:40px 0 30px;font-family:var(--serif);font-weight:400}.legal-page p{font-size:15px;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1500px){.hero{padding-top:95px;padding-bottom:88px}.portrait-panel{min-height:480px}}
@media(max-width:1100px){.container{width:calc(100% - 70px)}.nav-wrap{width:calc(100% - 52px);gap:20px}.site-header nav{gap:18px;font-size:11px}.brand-name{display:none}.hero{gap:35px}.hero h1{font-size:94px}.hero-description{font-size:14px}.hero .eyebrow{font-size:8px}.role{font-size:15px}.hero-actions{gap:16px}.metrics{gap:20px}.metrics>a{padding-left:20px}.publication-tools{grid-template-columns:1fr 190px 140px}.teaching-layout{gap:40px}.section{padding-block:80px}}
@media(max-width:800px){html{scroll-padding-top:85px}.container{width:calc(100% - 44px)}.nav-wrap{height:74px;width:calc(100% - 44px);gap:20px}.brand-name{display:block}.monogram{font-size:34px}.brand-name small{font-size:9px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;border:0;background:transparent;padding:10px;margin-left:auto;min-width:42px;min-height:42px}.menu-toggle span{display:block;width:22px;height:1px;background:var(--ink)}.site-header nav{display:none;position:absolute;top:74px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px 24px;font-size:15px;gap:0;flex-direction:column;box-shadow:0 14px 18px #203b390b}.site-header nav.is-open{display:flex}.site-header nav a{padding:11px 0}.language-switch{padding-left:16px}.hero{gap:30px;padding-block:45px}.hero h1{font-size:80px}.portrait-panel{min-height:385px;padding:22px 18px}.portrait-panel figure,.portrait-panel img{width:210px}.portrait-panel img{height:220px}.portrait-panel figcaption{font-size:9px}.portrait-panel figcaption span{font-size:8px}.portrait-eyebrow{font-size:6px}.hero-description{font-size:13px}.hero .eyebrow{font-size:7px;letter-spacing:.05em}.role{font-size:14px}.hero-actions .button{padding:11px 14px;font-size:10px;gap:12px}.hero-actions .text-link{font-size:10px}.hero-actions .text-link span{font-size:8px}.hero-note{font-size:8px}.metrics{gap:17px;grid-template-columns:1.05fr 1fr .8fr .8fr;padding-block:25px}.metrics-heading{font-size:20px}.metrics strong{font-size:30px}.metrics>a{padding-left:15px}.metrics p{font-size:9px}.metrics small{font-size:8px}.metrics strong span{font-size:13px;margin-right:0}.section-heading{gap:30px;align-items:start;margin-bottom:35px}.section-intro{max-width:260px;font-size:11px}.eyebrow{font-size:9px}.section-heading h2{font-size:34px}.research-grid{grid-template-columns:1fr 1fr;gap:30px}.research-card p{min-height:90px}.research-foot{grid-template-columns:1fr 2fr;gap:24px;padding:24px}.research-foot strong{font-size:22px}.research-foot p{font-size:11px}.project-card{padding:23px}.project-top{font-size:8px;gap:10px;flex-direction:column;margin-bottom:22px}.project-card h3{font-size:27px}.project-title{font-size:10px}.project-role{font-size:11px}.project-card>p:not(.project-title){font-size:11px}.publication-tools{grid-template-columns:1fr 160px 120px;gap:10px}.publication{grid-template-columns:80px 1fr 65px;gap:16px}.publication h3{font-size:13px}.pub-year{font-size:14px}.pub-year small{font-size:7px}.authors,.venue{font-size:9px}.teaching-layout{grid-template-columns:1.3fr 1fr;gap:28px}.thesis-card{padding:26px}.thesis-card h3{font-size:22px}.course h3{font-size:18px}.course p{font-size:11px}.service-grid{gap:35px}.service-feature{padding:26px}.service-feature h3{font-size:32px}.service-list h3{font-size:16px}.career-strip{gap:30px}.career-strip h3{font-size:25px}.career-strip li{grid-template-columns:110px 1fr;gap:12px;font-size:11px}.career-strip li strong{font-size:9px}.venture-grid{gap:30px}.venture-grid h3{font-size:29px}.contact-layout{gap:40px}.contact-layout h2{font-size:38px}.site-footer{gap:15px}.site-footer p{font-size:8px}}
@media(max-width:600px){.section{padding-block:64px}.hero{grid-template-columns:1fr;padding-top:36px;gap:33px}.hero .eyebrow{font-size:8px;letter-spacing:.06em;margin-bottom:25px}.hero h1{font-size:100px;margin-bottom:24px}.role{font-size:16px}.hero-description{font-size:14px;max-width:100%;margin-bottom:24px}.hero-actions{gap:22px}.hero-actions .button{font-size:11px;padding:13px 17px;gap:18px}.hero-actions .text-link{font-size:11px}.hero-note{font-size:9px;margin-top:22px}.portrait-panel{min-height:330px;padding:20px}.portrait-eyebrow{font-size:7px}.portrait-panel figure{margin-top:16px;margin-bottom:0}.portrait-panel figure,.portrait-panel img{width:190px}.portrait-panel img{height:195px}.portrait-panel figcaption{font-size:9px}.network{width:390px;height:390px;top:-30px}.panel-label{font-size:9px;margin-top:13px}.panel-arrow{font-size:26px}.metrics{grid-template-columns:1fr 1fr;gap:25px;padding:25px 0}.metrics-heading{font-size:25px;padding-right:10px}.metrics>a{padding-left:18px;border-left:1px solid var(--line)}.metrics>a:nth-child(3){padding-left:0;border:0}.metrics p{font-size:11px}.metrics strong{font-size:37px}.metrics small{font-size:8px;max-width:165px}.metrics strong span{font-size:18px;margin-right:10px}.section-heading{display:block;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:18px}.section-heading h2{font-size:35px}.section-intro{font-size:12px;max-width:100%;margin-top:20px}.section-heading>.text-link{display:inline-block;margin-top:20px}.research-grid{gap:30px 24px}.research-card h3{font-size:17px}.research-card p{font-size:11px;min-height:0;margin-bottom:16px}.research-card small{font-size:8px}.card-no{margin-bottom:20px}.research-foot{grid-template-columns:1fr;padding:24px;gap:15px;margin-top:35px}.research-foot strong{font-size:25px}.research-foot p{font-size:12px}.project-grid{grid-template-columns:1fr}.project-card{padding:25px}.project-card[data-active=true]:nth-child(5){grid-column:auto}.project-top{flex-direction:row;gap:15px;font-size:8px}.project-card h3{font-size:30px}.project-card>p:not(.project-title){font-size:12px}.project-role{font-size:12px}.project-title{font-size:11px}.project-bottom small{font-size:9px}.project-filters{gap:8px}.project-filters button{font-size:10px;padding:9px 12px}.project-filters button span{padding-left:12px}.publications-note{margin-top:-10px;font-size:11px}.publication-tools{grid-template-columns:1fr 1fr;gap:9px}.search-field{grid-column:1/-1}.publication-tools select{font-size:11px;min-height:44px}.search-field input{font-size:12px;padding-block:14px}.publication{grid-template-columns:1fr 80px;gap:10px 20px;padding-block:24px}.pub-year{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;font-size:13px}.pub-year small{font-size:8px;margin-top:0}.publication h3{font-size:14px;line-height:1.6}.pub-content{grid-column:1/-1}.pub-actions{grid-column:1/-1;flex-direction:row;align-items:center;gap:18px;margin-top:3px;font-size:11px;padding:0}.authors,.venue{font-size:10px}.cite-button{font-size:10px;padding:5px 10px}.publication-meta{font-size:9px}.teaching-layout{grid-template-columns:1fr;gap:28px}.course h3{font-size:20px}.course p{font-size:12px}.course small{font-size:10px}.thesis-card{padding:28px}.thesis-card p{font-size:12px}.thesis-card h3{font-size:26px}.service-grid{grid-template-columns:1fr;gap:25px}.service-feature{min-height:320px;padding:30px}.service-feature h3{font-size:40px}.service-list h3{font-size:18px}.service-list p{font-size:12px}.career-strip{grid-template-columns:1fr;gap:30px;margin-top:40px;padding-top:30px}.career-strip h3{font-size:29px}.career-strip li{grid-template-columns:115px 1fr;font-size:12px}.career-strip li strong{font-size:9px}.venture-grid{grid-template-columns:1fr;gap:32px}.venture-grid h3{font-size:32px;margin-block:17px}.venture-grid strong{font-size:11px}.venture-grid p{font-size:12px}.transfer-section{padding-bottom:60px}.venture-note{font-size:9px}.contact-section{padding:60px 0}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-layout h2{font-size:42px}.contact-email{font-size:21px}.contact-profiles{gap:16px;font-size:10px}.site-footer{flex-wrap:wrap;padding-block:28px;gap:14px}.site-footer p{width:calc(100% - 65px);font-size:8px;margin:0}.site-footer>a:not(.monogram){margin-left:0;font-size:10px}.site-footer>a:nth-last-child(2){margin-left:49px}dialog{padding:20px}dialog pre{font-size:10px}.dialog-actions .button{padding:11px 13px}.legal-page h1{font-size:40px}.legal-page p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header,.hero-actions,.publication-tools,.publication-meta,.load-more,.cite-button,.project-filters,dialog,.site-footer,.thesis-card,.contact-section{display:none!important}.sb-portfolio{background:white;font-size:10px}.container{width:100%}.section{padding-block:25px}.hero{padding-top:0;gap:25px}.hero h1{font-size:65px}.portrait-panel{display:none}.hero{display:block}.metrics{padding-block:15px}.metrics strong{font-size:25px}.projects-band,.teaching-band{background:white;color:var(--ink)}.project-card{background:white;color:var(--ink);border-color:#aaa;break-inside:avoid}.project-card>p,.project-title,.project-role,.project-bottom small,.projects-band .section-intro,.projects-band .eyebrow{color:var(--ink)!important}.project-card[hidden],.publication[hidden]{display:grid!important}.publication{break-inside:avoid}.section-heading h2{font-size:25px}.research-card h3{font-size:15px}.research-card p{min-height:0}.career-strip,.service-grid,.venture-grid{break-inside:avoid}a[href^="http"]:after{content:none}}
/* v2: complete public professional CV and prominent links from the overview. */
.complete-section-link{margin:28px 0 0;font-size:12px}.projects-band .complete-section-link{color:var(--lime)}.complete-teaching-link{padding:25px 28px;background:var(--paper);border:1px solid #cad3c0;border-radius:5px;margin:0 0 36px;display:flex;align-items:center;justify-content:space-between;gap:28px}.complete-teaching-link strong{font-size:16px;font-weight:550}.complete-teaching-link p{font-size:11px;color:var(--muted);margin:8px 0 0;max-width:550px}.complete-teaching-link .button{white-space:nowrap}.service-grid{margin-top:25px}.archive-main{padding-block:65px 90px}.archive-intro h1{font-size:clamp(38px,5vw,65px);font-weight:450;letter-spacing:-.055em;line-height:1.12;margin:0 0 25px}.archive-intro h1 span{color:#7d9d5b}.archive-intro>p:not(.eyebrow){max-width:700px;color:var(--muted);font-size:14px;line-height:1.8}.archive-intro-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:25px 0 33px;border-bottom:1px solid var(--line)}.archive-intro-bottom p{font-size:13px;margin:0}.archive-intro-bottom strong{font-size:22px;font-weight:500}.archive-intro-bottom small{display:block;font-size:10px;color:var(--muted);margin-top:8px}.archive-tools{display:grid;grid-template-columns:1fr 300px 90px;gap:12px;margin-top:30px}.archive-tools input{padding-left:16px}.archive-tools select{font:inherit;font-size:11px;padding:12px;width:100%;border:1px solid var(--line);background:var(--white);border-radius:4px;color:var(--ink)}.archive-status{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:18px 0 28px;color:var(--muted);font-size:11px}.archive-status p{margin:0}.archive-status>div{display:flex;gap:18px}.archive-status button{font-size:10px}.archive-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:38px;align-items:start}.archive-index{position:sticky;top:115px;max-height:calc(100vh - 140px);overflow-y:auto;padding-right:12px;scrollbar-width:thin}.archive-index>strong{font-size:10px;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:15px}.archive-index>a{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:10px;line-height:1.55;color:var(--muted)}.archive-index>a:hover{color:var(--green)}.archive-index small{font-size:9px;color:#6c8859}.cv-group{border-top:1px solid var(--line);scroll-margin-top:105px}.cv-group:last-of-type{border-bottom:1px solid var(--line)}.cv-group>summary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:21px 0;list-style:none;cursor:pointer;font-size:17px;line-height:1.45;letter-spacing:-.02em;font-weight:500}.cv-group>summary::-webkit-details-marker{display:none}.cv-group>summary:after{content:'+';font-size:23px;font-weight:300;color:#77935f}.cv-group[open]>summary:after{content:'−'}.cv-group>summary>span:first-child{margin-right:auto}.cv-group-count{font-size:11px;font-weight:400;color:#6a7b60;letter-spacing:0}.cv-group-body{padding:0 0 28px}.cv-section-intro{font-size:12px;line-height:1.8;color:var(--muted);padding:5px 0 17px;margin:0}.cv-record{display:grid;grid-template-columns:135px minmax(0,1fr);gap:20px;padding:18px 0;border-top:1px solid #e1e4da;scroll-margin-top:110px;overflow-wrap:anywhere}.cv-date{font-size:11px;color:#58724c;line-height:1.65}.cv-date strong{font-weight:550}.cv-date small{display:block;font-size:9px;margin-top:7px;color:var(--muted)}.cv-body{font-size:12px;line-height:1.85;color:#4c5e52}.cv-body strong{font-weight:600;color:var(--ink)}.cv-body em{font-style:italic}.cv-body a{color:#3e6b51;text-decoration:underline;text-decoration-color:#b2c4a4;text-underline-offset:3px}.cv-body p{margin:7px 0}.cv-body br+br{display:none}.archive-content .empty-state{font-size:13px}.cv-archive .site-footer{border-top:1px solid var(--line)}.cv-archive .site-header nav a{font-size:11px}
@media(max-width:1000px){.archive-layout{grid-template-columns:190px minmax(0,1fr);gap:26px}.cv-record{grid-template-columns:110px minmax(0,1fr);gap:16px}.archive-tools{grid-template-columns:1fr 240px 80px}.archive-index>a{font-size:9px}}
@media(max-width:800px){.archive-main{padding-top:44px}.archive-index{display:none}.archive-layout{grid-template-columns:1fr}.archive-tools{grid-template-columns:1fr 240px 80px}.archive-intro-bottom .button{font-size:11px}.complete-teaching-link{align-items:flex-start}.complete-teaching-link .button{white-space:normal;max-width:180px}.archive-intro h1{font-size:45px}}
@media(max-width:600px){.complete-teaching-link{display:block;padding:24px}.complete-teaching-link .button{display:inline-flex;max-width:none;margin-top:20px}.complete-section-link .text-link{font-size:11px;line-height:1.8}.archive-intro h1{font-size:42px}.archive-intro .eyebrow{font-size:9px}.archive-intro>p:not(.eyebrow){font-size:13px}.archive-intro-bottom{display:block;padding-block:18px 25px}.archive-intro-bottom .button{margin-top:20px}.archive-tools{grid-template-columns:1fr 85px;gap:10px}.archive-tools>.search-field{grid-column:1/-1}.archive-tools select{font-size:11px;min-height:44px}.archive-status{font-size:10px;gap:12px;align-items:flex-start}.archive-status p{max-width:190px}.archive-status>div{gap:10px;flex-shrink:0}.archive-status button{font-size:9px}.cv-group>summary{font-size:16px;gap:13px;padding-block:19px}.cv-record{grid-template-columns:1fr;gap:8px;padding-block:19px}.cv-date{font-size:11px}.cv-date small{display:inline;margin-left:10px}.cv-body{font-size:12px}.cv-group-body{padding-bottom:20px}}
@media print{.archive-index,.archive-tools,.archive-status,.archive-intro-bottom .button{display:none!important}.archive-layout{display:block}.archive-main{padding-top:0}.archive-intro h1{font-size:35px}.cv-group{display:block!important}.cv-group>summary{font-size:15px}.cv-group>.cv-group-body{display:block!important}.cv-record{break-inside:avoid;grid-template-columns:100px 1fr}.cv-body{font-size:9px}.cv-date{font-size:8px}.complete-teaching-link{break-inside:avoid}}
