:root{--ink:#142b3b;--text:#405364;--muted:#5a6b79;--accent:#226452;--line:#dce4e9;--paper:#fff;--wash:#f4f7f9;--serif:Georgia,'Times New Roman',serif;--sans:Inter,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:5px}
a:hover{color:var(--ink)}
button{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #36866f;outline-offset:5px;border-radius:2px}
::selection{background:#dbece5;color:var(--ink)}
.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:10px 20px;background:var(--ink);color:white}
.skip-link:focus{top:12px}
.template-notice{background:var(--ink);color:#e4edf2;text-align:center;padding:8px 20px;font-size:.8125rem;line-height:1.6}
.template-notice span{display:inline-block;color:#fff;font-size:.6875rem;letter-spacing:.12em;font-weight:700;margin-right:14px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.header-inner{max-width:1240px;margin:auto;min-height:82px;padding:16px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.wordmark{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:1rem;font-weight:650;text-decoration:none;white-space:nowrap}
.wordmark-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid #b8c8d2;font-family:var(--serif);font-size:.875rem;font-weight:400}
.site-nav{display:flex;align-items:center;gap:25px}
.site-nav a{color:var(--muted);text-decoration:none;font-size:.875rem}
.site-nav a:hover,.site-nav a[aria-current]{color:var(--ink)}
.site-nav a[aria-current]:not(.nav-cv){text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:10px}
.site-nav .nav-cv{padding:7px 13px;border:1px solid var(--line);color:var(--ink)}
.site-nav .nav-cv:hover{border-color:var(--ink)}
.menu-button{display:none;background:white;border:1px solid var(--line);padding:6px 12px;color:var(--ink);cursor:pointer}
.menu-button span{margin-left:8px;font-size:1.125rem}
.page-shell{max-width:1240px;margin:auto;padding:60px 48px 0;display:grid;grid-template-columns:230px minmax(0,1fr);gap:80px}
.profile{position:sticky;top:120px;align-self:start;padding-bottom:30px}
.portrait-placeholder{width:100%;height:212px;background:var(--wash);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:.75rem;margin-bottom:32px}
.portrait-initials{font-family:var(--serif);font-size:4.25rem;font-weight:400;line-height:1.1;color:#8199a8;letter-spacing:-.06em}
.eyebrow,.small-label{text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;font-weight:700;line-height:1.6;color:var(--accent)}
.eyebrow{margin:0 0 14px}
.profile-name{font-family:var(--serif);font-size:1.625rem;line-height:1.25;color:var(--ink);margin:0 0 13px}
.profile-role{font-size:.875rem;line-height:1.8;margin:0;color:var(--muted)}
.profile-rule{width:36px;height:1px;background:#b8c8d2;margin:28px 0 24px}
.profile .small-label{margin:0 0 12px}
.focus-list{padding:0;margin:0 0 25px;list-style:none;font-size:.875rem;line-height:2}
.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 19px;font-size:.875rem;line-height:1.5;font-weight:600;text-decoration:none;border:1px solid var(--ink)}
.button-dark{background:var(--ink);color:white}
.button-dark:hover{background:#24465a;color:white}
.profile-note{font-size:.75rem;line-height:1.75;color:var(--muted);margin-top:20px}
.main-column{min-width:0}
.intro{padding:10px 0 0}
h1,h2,h3{color:var(--ink)}
h1{font-family:var(--serif);font-size:clamp(3rem,5.5vw,4.875rem);font-weight:400;letter-spacing:-.04em;line-height:1.08;margin:18px 0 23px;overflow-wrap:anywhere}
.title-period{color:var(--accent)}
.intro-subtitle{font-size:1.3125rem;line-height:1.65;color:var(--ink);margin:0 0 25px}
.intro-subtitle span{font-size:1rem;color:var(--muted)}
.intro-copy{font-size:1.0625rem;line-height:1.9;max-width:630px;margin:0}
.intro-actions{display:flex;gap:28px;flex-wrap:wrap;margin:27px 0 34px}
.text-link{font-size:.875rem;font-weight:600}
.interest-strip{border-top:1px solid var(--line);padding:23px 0 0}
.interest-strip .small-label{display:block;margin-bottom:12px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{background:var(--wash);border:1px solid #e3e9ed;padding:3px 10px;color:var(--muted);font-size:.8125rem;line-height:1.7}
.content-section{padding:52px 0 0;margin-top:52px;border-top:1px solid var(--line)}
.section-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.section-number{color:var(--accent);font-size:.75rem;font-family:var(--sans)}
h2{font-family:var(--serif);font-weight:400;font-size:1.875rem;line-height:1.3;letter-spacing:-.025em;margin:0}
.section-intro{margin:0 0 26px;font-size:.9375rem;color:var(--muted)}
.project-card{border:1px solid var(--line);padding:27px 29px;margin:0 0 18px;background:#fff;transition:border-color .15s}
.project-card:hover{border-color:#b6c9c2}
.project-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;font-size:.75rem;color:var(--muted);margin-bottom:11px}
h3{font-size:1.0625rem;font-weight:600;line-height:1.5;margin:0 0 10px}
.project-card>p{font-size:.9375rem;line-height:1.8;margin:0 0 18px}
details{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
summary{color:var(--accent);font-size:.875rem;font-weight:600;cursor:pointer;width:fit-content}
summary::marker{font-size:.75rem}
.details-content{font-size:.875rem;padding-top:2px}
.details-content p{margin:13px 0 0}
.details-content strong{color:var(--ink);font-weight:600}
.publication{display:grid;grid-template-columns:62px minmax(0,1fr);gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}
.publication:last-child{border-bottom:0;padding-bottom:0}
.publication-year{font-size:.8125rem;line-height:1.9;color:var(--muted)}
.publication h3{margin-bottom:7px}
.publication p{font-size:.875rem;margin:4px 0}
.publication-venue{font-style:italic;color:var(--muted)}
.pending-link{font-size:.75rem;display:inline-block;color:var(--muted);border:1px dashed #b9c7cf;padding:1px 9px;margin-top:12px}
.timeline{margin-top:29px}
.timeline-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:25px;padding-bottom:31px}
.timeline-date{font-size:.8125rem;color:var(--muted);margin:3px 0}
.timeline-item h3{margin:0 0 4px}
.timeline-item p:not(.timeline-date){font-size:.9375rem;margin:7px 0 0}
.timeline-item .timeline-place{color:var(--accent);font-size:.875rem;margin:0}
.supporting-grid{border-top:1px solid var(--line);padding-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:28px}
.supporting-grid p{font-size:.875rem;line-height:2;margin:12px 0 0}
.contact-section{margin-top:58px;background:var(--wash);padding:35px 36px;border:1px solid var(--line);border-top:3px solid var(--accent)}
.contact-section h2{font-size:2.25rem;margin-bottom:18px}
.contact-section>p:not(.eyebrow){font-size:.9375rem;line-height:1.8}
.contact-list{margin:23px 0 0}
.contact-list>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;margin:11px 0;font-size:.875rem}
.contact-list dt{font-weight:600;color:var(--ink)}
.contact-list dd{margin:0;overflow-wrap:anywhere}
.contact-section .contact-note{font-size:.75rem;color:var(--muted);margin:24px 0 0}
.site-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:34px 0;margin-top:22px;font-size:.75rem;color:var(--muted)}
.site-footer a{color:var(--muted)}
.section-anchor{scroll-margin-top:20px}
@media(min-width:1400px){.page-shell{gap:100px}.header-inner,.page-shell{max-width:1280px}}
@media(max-width:1050px){.header-inner{padding:17px 30px}.site-nav{gap:18px}.page-shell{padding:42px 30px 0;grid-template-columns:200px minmax(0,1fr);gap:45px}.portrait-placeholder{height:190px}}
@media(max-width:800px){html{scroll-padding-top:100px}.header-inner{min-height:72px;flex-wrap:wrap;gap:0;padding:17px 24px}.menu-button:not([hidden]){display:block}.site-nav{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px 0 2px}.js-nav .site-nav{display:none}.js-nav .site-nav.is-open{display:grid}.site-nav .nav-cv{text-align:center;padding:5px 8px}.page-shell{grid-template-columns:1fr;gap:0;padding:34px 24px 0}.profile{position:static;display:grid;grid-template-columns:100px 1fr;column-gap:22px;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:28px}.portrait-placeholder{grid-column:1;grid-row:1 / 5;margin:0;height:114px}.portrait-initials{font-size:2.75rem}.portrait-placeholder>span:last-child{font-size:.6875rem}.profile .eyebrow{grid-column:2;margin:0 0 5px;align-self:end}.profile-name{grid-column:2;font-size:1.375rem;margin:0 0 7px}.profile-role{grid-column:2;font-size:.8125rem;line-height:1.65}.profile-rule,.profile>.small-label,.focus-list,.profile>.button,.profile-note{display:none}.intro{padding:4px 0 0}.intro>.eyebrow{display:none}h1{margin:8px 0 20px;font-size:3.5rem}.intro-copy{font-size:1rem}.content-section{padding-top:35px;margin-top:38px}.contact-section{margin-top:40px}}
@media(max-width:480px){.template-notice{font-size:.75rem;padding:7px 16px}.template-notice span{display:block;font-size:.6875rem;margin:0}.header-inner{padding:14px 20px}.page-shell{padding:28px 20px 0}h1{font-size:3rem}.intro-subtitle{font-size:1.125rem}.intro-actions{gap:24px}.section-heading{align-items:baseline;gap:12px}h2{font-size:1.625rem}.project-card{padding:22px 20px}.publication{grid-template-columns:1fr;gap:5px;padding:23px 0}.timeline-item{grid-template-columns:1fr;gap:5px;padding-bottom:27px}.supporting-grid{grid-template-columns:1fr;gap:25px}.contact-section{padding:28px 23px}.contact-list>div{grid-template-columns:1fr;gap:0;margin:16px 0}.site-footer{font-size:.75rem}.site-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{.site-header,.template-notice,.skip-link,.intro-actions,.site-footer,.profile>.button{display:none}.page-shell{display:block;padding:0;max-width:none}.profile{display:none}body{font-size:10pt;color:#222}.content-section{margin-top:24px;padding-top:24px}h1{font-size:32pt}h2{font-size:20pt}.contact-section{background:white;break-inside:avoid}.project-card,.publication,.timeline-item{break-inside:avoid}details .details-content{display:block}a{color:#222}}
