:root{--ink:#172f31;--muted:#526261;--teal:#215b58;--paper:#faf9f5;--white:#fff;--line:#d7ded7;--wash:#edf1eb;--rust:#91503a;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.23em}
a:hover{color:var(--teal)}
a:focus-visible{outline:3px solid var(--rust);outline-offset:5px;border-radius:2px}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{line-height:1.2}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
h1{font-size:clamp(3.5rem,7.6vw,6.9rem)}
h2{font-size:clamp(2rem,3.6vw,3.25rem)}
h3{font-weight:550;font-size:1.4rem;letter-spacing:-.025em}
h4{font-size:1rem;font-weight:650}
p+p{margin-top:1rem}
.container{width:min(1160px,calc(100% - 6rem));margin-inline:auto}
.section{padding-block:6.5rem}
.skip-link{position:absolute;top:-100px;left:1rem;background:var(--ink);color:white;padding:.8rem 1rem;z-index:10}
.skip-link:focus{top:1rem;color:white}
.site-header{border-bottom:1px solid var(--line)}
.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.wordmark{font-weight:650;font-size:1.3rem;letter-spacing:-.04em;text-decoration:none;white-space:nowrap}
.wordmark span{color:var(--rust)}
nav{display:flex;flex-wrap:wrap;gap:.4rem 1.7rem}
nav a{font-size:.88rem;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
nav a:hover{text-decoration:underline}
.eyebrow{text-transform:uppercase;font-size:.7rem;letter-spacing:.17em;line-height:1.6;font-weight:650;color:var(--teal)}
.hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.8fr);gap:6rem;padding-block:6.5rem 5.5rem;align-items:center}
.hero h1{margin-top:1.5rem}
.hero-role{margin-top:.5rem;color:var(--muted);font-size:1.1rem}
.hero-statement{font-family:var(--serif);font-size:clamp(1.8rem,3.1vw,2.65rem);line-height:1.23;letter-spacing:-.025em;margin-top:2.25rem}
.hero-intro{color:var(--muted);max-width:38rem;margin-top:1.4rem;font-size:1.05rem}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.8rem;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:48px;padding:.8rem 1.2rem;background:var(--ink);color:#fff;text-decoration:none;font-size:.86rem;font-weight:600;border:1px solid var(--ink);border-radius:3px}
.button:hover{background:var(--teal);color:#fff}
.button-outline{background:transparent;color:var(--ink)}
.text-link{font-size:.86rem;display:inline-flex;align-items:center;gap:.55rem;min-height:44px;font-weight:600}
.portrait-frame{position:relative;padding:13px 13px 40px;background:#e5e8dd;transform:rotate(2deg);max-width:330px;margin:auto}
.portrait-frame img{width:100%;aspect-ratio:1/1;object-fit:cover}
.portrait-label{position:absolute;left:13px;bottom:10px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}
.affiliation{font-size:.8rem;line-height:1.8;margin:1.8rem auto 0;max-width:330px;color:var(--muted)}
.about-band{border-block:1px solid var(--line);background:var(--wash)}
.about-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;padding-block:3rem;align-items:center}
.about-inner h2{font-size:1.85rem;line-height:1.25}
.about-inner p{color:var(--muted);font-size:.95rem}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3rem}
.section-heading h2{margin-top:.65rem}
.section-heading>p{max-width:16rem;color:var(--muted);font-size:.9rem}
.research-list{display:grid;gap:2rem}
.research-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);border:1px solid var(--line);border-radius:5px;background:var(--white);overflow:hidden}
.research-copy{padding:2.4rem}
.card-kicker{display:flex;align-items:center;gap:1rem;margin-bottom:1.3rem}
.area-number{font-family:var(--serif);color:var(--rust);font-size:1.5rem}
.status{font-size:.67rem;line-height:1.5;letter-spacing:.055em;text-transform:uppercase;color:var(--muted)}
.research-copy h3{font-family:var(--serif);font-weight:400;font-size:1.9rem}
.research-copy .tagline{font-size:.97rem;font-weight:600;color:var(--teal);margin-top:1rem}
.research-copy>p{font-size:.9rem;line-height:1.75;color:var(--muted);margin-top:1rem}
.tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;margin:1.3rem 0 0}
.tags li{background:var(--wash);font-size:.65rem;padding:.3rem .6rem;border-radius:3px;color:var(--teal)}
.resource-links{display:flex;flex-wrap:wrap;gap:.3rem 1.5rem;margin-top:.8rem}
.research-figure{background:#f1f3ee;display:flex;flex-direction:column;justify-content:center;padding:1.5rem}
.research-figure img{width:100%;max-width:520px;margin-inline:auto}
.research-figure figcaption{font-size:.72rem;line-height:1.6;color:var(--muted);margin:1rem auto 0;max-width:360px}
.publications-band{background:#edf1eb;border-block:1px solid var(--line)}
.publication-list{list-style:none;padding:0;margin:0}
.publication{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:2rem;padding:2rem 0;border-top:1px solid #cad4cc}
.publication-year{font-family:var(--serif);font-size:1.65rem;color:var(--teal)}
.publication h3{max-width:850px;font-size:1.25rem;line-height:1.4;margin-top:.5rem}
.publication h3 a{text-decoration:none}
.publication h3 a:hover{text-decoration:underline}
.publication-meta{font-size:.76rem;color:var(--muted)}
.publication-meta>span[aria-hidden]{margin-inline:.4rem}
.publication-status{font-weight:600;color:var(--teal)}
.authors{font-size:.86rem;margin-top:.55rem;color:var(--muted)}
.publication-note{font-size:.79rem;color:var(--muted);max-width:770px;margin-top:.65rem}
.software-note{margin-top:2rem;padding:1.8rem 2rem;border:1px solid #bdcdc1;display:flex;align-items:center;gap:1.5rem;background:#f5f7f2;border-radius:4px}
.software-note h3{font-size:1.15rem}
.software-note p{font-size:.85rem;color:var(--muted);margin-top:.3rem}
.software-note .button{margin-left:auto;flex-shrink:0}
.software-mark{font-size:2rem;color:var(--teal)}
.background-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:6rem}
.experience{padding:1.5rem 0;border-top:1px solid var(--line)}
.experience h3{font-size:1.2rem;margin-top:.5rem}
.experience-place{font-size:.86rem;color:var(--teal);margin-top:.4rem}
.experience>p:last-child{font-size:.88rem;color:var(--muted);margin-top:.6rem}
.skills-panel{background:var(--wash);padding:2rem;border-radius:4px}
.skills-panel>h3{font-family:var(--serif);font-size:1.6rem;font-weight:400}
.skill{margin-top:1.5rem}
.skill p{font-size:.85rem;color:var(--muted);margin-top:.4rem}
.contact-section{background:var(--ink);color:#f3f3e9;padding-block:4.5rem}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}
.contact-section .eyebrow{color:#bbcebe}
.contact-section h2{font-size:3.4rem;margin-block:.5rem 1rem}
.contact-section p:not(.eyebrow){font-size:.9rem;color:#d2ddd3;max-width:440px}
.contact-section a:hover{color:#d6e9cd}
.contact-email{display:inline-block;font-size:clamp(1.15rem,2.3vw,1.7rem);text-decoration:none;padding-block:.5rem;border-bottom:1px solid #667c73;overflow-wrap:anywhere}
.contact-links ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-block:1rem}
.contact-links li a{display:inline-flex;align-items:center;min-height:44px;font-size:.82rem}
.contact-links>p{font-size:.75rem!important}
.site-footer{padding-block:1.5rem}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.footer-inner p,.footer-inner>a{font-size:.7rem;color:var(--muted);margin:0}
@media(min-width:1400px){.hero{min-height:740px}}
@media(max-width:950px){.container{width:calc(100% - 3rem)}.hero{gap:3rem;padding-block:4.5rem}.research-copy{padding:1.7rem}.research-figure{padding:1rem}.background-grid,.contact-inner{gap:3rem}.about-inner{gap:2.5rem}.section{padding-block:4.5rem}.software-note{flex-wrap:wrap}.software-note .button{margin-left:0}}
@media(max-width:700px){.header-inner{align-items:flex-start;flex-direction:column;gap:.3rem;padding-block:1rem}.header-inner nav{gap:.2rem 1.15rem}nav a{font-size:.79rem}.hero{grid-template-columns:1fr;gap:2.75rem;padding-block:3rem}.hero-aside{display:grid;grid-template-columns:130px minmax(0,1fr);gap:1.4rem;align-items:center}.portrait-frame{padding:7px 7px 23px;transform:rotate(1deg)}.portrait-label{font-size:.35rem;left:7px;bottom:6px}.affiliation{margin:0;font-size:.72rem}.hero-statement{margin-top:1.7rem}.hero-intro{font-size:.96rem}.about-inner{grid-template-columns:1fr;gap:1.1rem;padding-block:2.2rem}.about-inner h2{font-size:1.65rem}.section-heading{display:block;margin-bottom:2rem}.section-heading>p{margin-top:1rem;max-width:none}.section-heading>.text-link{margin-top:.6rem}.research-card{grid-template-columns:1fr}.research-copy{padding:1.5rem}.research-copy h3{font-size:1.75rem}.research-figure{padding:1.2rem 1.5rem 1.5rem}.research-figure img{max-width:400px}.publication{grid-template-columns:1fr;gap:.5rem}.publication-year{font-size:1.2rem}.publication h3{font-size:1.15rem}.software-note{padding:1.5rem}.software-mark{display:none}.background-grid,.contact-inner{grid-template-columns:1fr;gap:2rem}.contact-section{padding-block:3rem}.contact-section h2{font-size:2.8rem}.footer-inner{display:block}.footer-inner p,.footer-inner>a{display:block;margin-top:.45rem}}
@media(max-width:360px){.container{width:calc(100% - 2rem)}.hero-aside{grid-template-columns:105px minmax(0,1fr)}.hero-actions{align-items:flex-start;flex-direction:column;gap:.3rem}.research-copy{padding:1.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:white;color:black}.site-header,.hero-actions,.site-footer,.skip-link{display:none}.container{width:100%}.section,.hero{padding-block:1.5rem}.hero{gap:2rem}.research-card{break-inside:avoid}.contact-section{background:white;color:black;padding-block:1.5rem}.contact-section p:not(.eyebrow){color:black}.research-figure{background:white}.publication{break-inside:avoid}}
