*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#1a1a1a;font:17px/1.65 'Source Sans 3',system-ui,sans-serif}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:oklch(0.45 0.1 30)}
a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid oklch(0.45 0.1 30);outline-offset:3px}
.wrap{max-width:1040px;margin:0 auto;padding:0 32px}
.serif{font-family:'Newsreader',Georgia,serif}
.muted{color:#75716a}
.accent{color:oklch(0.45 0.1 30)}
header.top{padding:56px 0 0;display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:40px;align-items:stretch}
.name{font-family:'Newsreader',Georgia,serif;font-size:60px;line-height:1;letter-spacing:-.01em;margin:0;font-weight:400}
.name a{text-decoration:none}
.role{font-size:18px;margin-top:14px;color:#3d3b37}
.sub{font-size:15px;margin-top:4px;color:#75716a}
.meta{margin-top:22px;padding-top:16px;border-top:1px solid #e5e1d8;font-size:15px;line-height:1.6;color:#75716a;display:flex;flex-direction:column;gap:2px}
.email{height:26px;width:auto;max-width:100%;object-fit:contain;object-position:left center;align-self:flex-start;margin-top:10px;opacity:.85;display:block}
.logos{display:flex;align-items:center;gap:22px;margin-top:18px}
.logos img{height:34px;width:auto;display:block}
.photo{position:relative;background:#ece8e0}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
nav.main{margin-top:36px;border-top:1px solid #1a1a1a;border-bottom:1px solid #d9d5cc;display:flex;flex-wrap:wrap;gap:8px 34px;font-size:15px;padding:12px 0}
nav.main a{text-decoration:none;font-weight:600;color:#75716a}
nav.main a[aria-current]{color:oklch(0.45 0.1 30)}
nav.main a:hover{color:#1a1a1a}
nav.main .ext{margin-left:auto;display:flex;flex-wrap:wrap;gap:22px}
nav.main .ext a{font-weight:600;color:#1a1a1a;white-space:nowrap;text-decoration:underline;text-decoration-color:oklch(0.45 0.1 30);text-decoration-thickness:1.5px;text-underline-offset:4px}
nav.main .ext a:hover{color:oklch(0.45 0.1 30)}
main{padding:44px 0 80px}
.grid{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:40px;row-gap:36px;max-width:960px}
.grid>*{min-width:0}
.label{font-family:'Newsreader',Georgia,serif;font-size:20px;line-height:1.4}
.label small{display:block;font-family:'Source Sans 3',sans-serif;font-size:14px;color:#75716a;line-height:1.5;margin-top:8px}
.prose p{margin:0 0 14px;text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px solid #e5e1d8;font-size:16px;line-height:1.55}
.row .d{color:oklch(0.45 0.1 30);font-weight:600}
.row.plain{border:0;padding:4px 0;font-size:15px}
.row.plain .d,.cv .row .d{color:#75716a;font-weight:400}
.more-link{margin:16px 0 0;font-size:15px;font-weight:600}
.news-list .row:first-child{padding-top:0}
.lead{margin:0}
.theme{border-top:1px solid #e5e1d8;padding-top:16px}
.theme h2{font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:24px;margin:0 0 8px;line-height:1.3}
.theme p{margin:0 0 8px;text-wrap:pretty}
.num{font-size:14px;font-weight:600;color:oklch(0.45 0.1 30);padding-top:20px}
.pub{display:grid;grid-template-columns:60px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid #e5e1d8;font-size:16px;line-height:1.5}
.pub h3{font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:19px;line-height:1.35;margin:0 0 3px}
.pub h3,.pub .au,.pub .ve,.row>div{overflow-wrap:anywhere}
.pub .au{color:#3d3b37}.pub .au strong{color:#1a1a1a}
.pub sup{font-size:.68em;vertical-align:super;line-height:0}
.pub .ve{font-style:italic;color:#75716a}
.pub .no{font-size:14.5px;color:oklch(0.45 0.1 30)}
.pub .lk{display:flex;gap:14px;font-size:14px;font-weight:600;margin-top:3px}
.pub-type{display:none;margin-top:2px;font-size:11px;line-height:1.25;color:#75716a}
.pub-section{margin:0 0 36px;scroll-margin-top:20px}
.pub-section h2{font-family:'Newsreader',Georgia,serif;font-size:23px;font-weight:400;line-height:1.3;margin:0;padding:4px 0 9px;border-bottom:1px solid #1a1a1a}
.pub-section .section-note{font-size:14px;line-height:1.5;color:#75716a;margin:10px 0 2px}
.pub-section--all .pub-type{display:block}
.pub-section--all .pub:first-child{padding-top:0}
.pub-controls{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 22px;padding:0 0 18px;margin-bottom:30px;border-bottom:1px solid #d9d5cc}
.filter-group{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.filter-label,.year-filter{font-size:13px;font-weight:600;color:#75716a}
.filter-buttons{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.filter-buttons button{appearance:none;background:none;border:0;border-bottom:1.5px solid transparent;padding:4px 0;margin:0;font:600 15px/1.2 'Source Sans 3',system-ui,sans-serif;color:#75716a;cursor:pointer}
.filter-buttons button:hover{color:#1a1a1a}
.filter-buttons button[aria-pressed="true"]{color:oklch(0.45 0.1 30);border-bottom-color:oklch(0.45 0.1 30)}
.year-filter{display:flex;align-items:baseline;gap:8px}
.year-filter select{appearance:none;-webkit-appearance:none;min-width:116px;border:1px solid #d9d5cc;border-radius:3px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2375716a' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 9px center;color:#1a1a1a;padding:4px 26px 4px 10px;font:15px 'Source Sans 3',system-ui,sans-serif;cursor:pointer}
.year-filter select:hover{border-color:#75716a}
.filter-status{margin-left:auto;font-size:13px;color:#75716a;white-space:nowrap}
.empty-state{margin:0;padding:20px 0;border-top:1px solid #e5e1d8;color:#75716a}
[hidden]{display:none!important}
.gs{display:block;margin-top:12px;font-size:13px;line-height:1.5;color:#75716a}
.gs:empty{display:none}
.cv-download{align-self:start;padding-top:2px;font-size:15px;font-weight:600}
.cv-download a{text-decoration-color:oklch(0.45 0.1 30);text-decoration-thickness:1.5px;text-underline-offset:4px}
.sec{font-size:14px;font-weight:600;color:oklch(0.45 0.1 30);padding-top:12px}
footer{border-top:1px solid #d9d5cc;padding:20px 0 40px;font-size:13px;color:#75716a}
@media (max-width:760px){
 body{font-size:16px}
 .wrap{padding:0 20px}
 header.top{padding-top:32px;grid-template-columns:minmax(0,1fr) 96px;gap:18px}
 .name{font-size:40px}
 .email{height:20px;max-width:100%}
 .logos img{height:26px}
 .logos{gap:16px}
 .role{font-size:16px}
 nav.main .ext{margin-left:0;width:100%}
 .grid{grid-template-columns:minmax(0,1fr);row-gap:14px}
 .grid>.label,.grid>.num,.grid>.gs{display:block;margin-top:12px;font-size:13px;line-height:1.5;color:#75716a}
 .cv-download{padding-top:0}
.gs:empty{display:none}
.sec{padding-top:20px}
 .row{grid-template-columns:78px minmax(0,1fr)}
 .pub-controls{margin-top:6px}
 .pub-section h2{font-size:21px}
 .pub{grid-template-columns:50px minmax(0,1fr);gap:12px}
}
@media (max-width:480px){
 header.top{grid-template-columns:minmax(0,1fr) 80px;gap:10px}
 .name{font-size:35px}
 .role{font-size:15px;line-height:1.5}
 .logos{gap:10px}
 .logos img{height:22px}
 nav.main{gap:8px 18px}
 nav.main .ext{gap:18px}
 .pub-controls{display:block}
 .filter-group{display:block}
 .filter-buttons{margin-top:5px;gap:5px 16px}
 .year-filter{margin-top:14px}
 .filter-status{margin:12px 0 0}
 .row{grid-template-columns:72px minmax(0,1fr);gap:12px}
}
