@font-face {
  font-family: Charter;
  src: url('fonts/Charter-Roman.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Charter;
  src: url('fonts/Charter-Bold.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: Charter;
  src: url('fonts/Charter-Italic.woff2') format('woff2');
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #fcfbf8;
  --ink: #252b30;
  --muted: #626660;
  --accent: #854a35;
  --rule: #deded5;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Charter, Georgia, serif; font-size: 1.125rem; line-height: 1.7; }
::selection { background: #e9dace; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { text-decoration: underline; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.shell { width: min(100% - 5rem, 980px); margin-inline: auto; }
.site-header { min-height: 114px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--rule); }
.site-header nav { display: flex; flex-wrap: wrap; gap: 2rem; font: .9375rem/1.5 var(--sans); }
.site-header .header-contacts { gap: 1.25rem; font-size: .875rem; }
.site-header nav a { color: var(--muted); text-decoration: none; padding-block: .65rem; }
.site-header nav a:hover { color: var(--ink); }
.site-header nav a[aria-current='page'] { color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .7rem; }
.skip-link { position: absolute; top: -100px; left: 1rem; padding: .5rem 1rem; background: var(--paper); z-index: 2; }
.skip-link:focus { top: 1rem; }
main { min-height: calc(100svh - 270px); padding-bottom: 5rem; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 400; }
h1 { font-size: clamp(2.75rem, 5vw, 4rem); line-height: 1.1; letter-spacing: -.045em; margin-bottom: 1.5rem; }
h2 { font-size: 1.65rem; line-height: 1.3; margin-bottom: 1.5rem; letter-spacing: -.025em; }
h3 { font-size: 1.25rem; line-height: 1.45; margin: 2.5rem 0 1.25rem; }
p { margin-bottom: 1.25rem; }
.eyebrow, .section-label { font: .75rem/1.6 var(--sans); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.eyebrow { margin-bottom: 1.5rem; }
.profile { display: grid; grid-template-columns: minmax(0, 1fr) 174px; align-items: center; gap: 4rem; padding: 4.5rem 0 3.5rem; }
.profile h1 { font-size: clamp(3.75rem, 7vw, 5rem); margin-bottom: 1.125rem; }
.position { font-size: 1.125rem; line-height: 1.5; margin-bottom: .5rem; }
.affiliation { font: .9375rem/1.65 var(--sans); color: var(--muted); margin: 0; }
.portrait-link { display: block; }
.portrait { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.editorial-section { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 2.5rem; border-top: 1px solid var(--rule); padding-top: 2.5rem; margin-top: 1rem; margin-bottom: 2.5rem; }
.section-label { margin-top: .3rem; }
.prose { max-width: 66ch; font-size: 1.25rem; line-height: 1.75; }
.prose p:last-child { margin-bottom: 0; }
.prose strong { font-weight: 400; color: var(--accent); }
.research-vision h3 { font-size: 1.5rem; margin: 2rem 0 .75rem; }
.illustrated-question { position: relative; min-height: 175px; }
.illustrated-question p { margin: 0; }
.research-sketch { display: block; position: absolute; right: calc(100% + 1.5rem); top: 0; height: 100%; width: auto; aspect-ratio: 1; object-fit: contain; border-radius: 12px; mix-blend-mode: multiply; }
@media (max-width: 1059px) {
  .research-sketch { width: 175px; height: 175px; }
}
.social-links { display: flex; flex-wrap: wrap; gap: .6rem 1.35rem; list-style: none; padding: 0; margin: 1.75rem 0 0; font: .875rem/1.7 var(--sans); }
.social-links a { text-decoration: none; }
.social-links a:hover { text-decoration: underline; }
.publication { padding-block: 1.5rem; border-bottom: 1px solid var(--rule); }
.publication:first-of-type { padding-top: 0; }
.pub-title { font-size: 1.25rem; line-height: 1.45; margin-bottom: .5rem; }
.authors { font: .875rem/1.7 var(--sans); color: var(--muted); }
.authors strong { font-weight: 600; color: var(--ink); }
.journal { color: var(--accent); font-size: 1rem; font-style: italic; margin-top: .25rem; }
.selected-work .publication { padding-top: 0; margin-bottom: 1.5rem; padding-bottom: 1.5rem; }
.selected-work .publication:last-of-type { border: 0; padding-bottom: 0; }
.text-link { display: inline-block; font: .875rem/1.6 var(--sans); margin-top: .5rem; }
.text-link span { padding-left: .2rem; }
.page-heading { padding-top: 4.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--rule); margin-bottom: 3rem; }
.page-heading h1 { margin: 0; }
.reading-width { max-width: 700px; margin-inline: auto; }
.blog-empty { padding-top: .25rem; color: var(--muted); font-style: italic; font-size: 1.25rem; }
.publication-list { max-width: 760px; }
.publication-list h2, .publication-list h3 { font: .75rem/1.6 var(--sans); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.publication-list h3 { margin-top: 3rem; }
.publication-list .publication:last-child { border: 0; }
.cv-layout { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.cv-nav { position: sticky; top: 2rem; display: grid; gap: .8rem; font: .875rem/1.5 var(--sans); }
.cv-nav a { color: var(--muted); text-decoration: none; }
.cv-nav a:hover { color: var(--accent); text-decoration: underline; }
.cv-content { min-width: 0; }
.cv-content section { margin-bottom: 3rem; }
.cv-content h2 { padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
.info-card { margin-bottom: 1.75rem; }
.date, .talk-date, .category-name { font: .8125rem/1.6 var(--sans); color: var(--muted); }
.date { margin-bottom: .35rem; }
.title { font-size: 1.2rem; line-height: 1.5; }
.institution, .details { color: var(--muted); font-size: 1rem; }
.details { margin-top: .4rem; }
.research-entry { margin-bottom: 2rem; }
.research-entry h3 { margin-top: .35rem; margin-bottom: .5rem; }
.research-entry:first-of-type h3 { margin-top: 0; }
ul { padding-left: 1.25rem; }
li + li { margin-top: .5rem; }
.social-links li + li { margin: 0; }
.talk-item { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--rule); }
.talk-date { padding-top: .3rem; }
.skill-category { margin-bottom: 1.5rem; }
.skill-tags { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin-top: .4rem; }
.skill-tag { font-size: 1rem; }
details { margin-top: 1rem; font-family: var(--sans); font-size: .875rem; color: var(--muted); }
summary { cursor: pointer; text-underline-offset: .2em; }
summary:hover { color: var(--accent); }
details > div { overflow-x: auto; margin-top: .75rem; }
table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; font-size: .8125rem; }
th, td { padding: .4rem .35rem; border-bottom: 1px solid var(--rule); text-align: right; }
th:first-child, td:first-child { text-align: left; }
tbody tr:last-child { font-weight: 600; }
.site-footer { border-top: 1px solid var(--rule); padding-top: 1.75rem; padding-bottom: 2rem; display: flex; justify-content: space-between; align-items: start; gap: 1rem; color: var(--muted); font: .8125rem/1.8 var(--sans); }
.site-footer p { margin: 0; }
.site-footer a { color: var(--muted); }
@media (max-width: 700px) {
  .shell { width: min(100% - 2.5rem, 980px); }
  .site-header { min-height: 92px; flex-direction: column; align-items: flex-start; gap: .3rem; padding-block: 1rem; }
  .site-header nav { gap: 1.15rem; font-size: .875rem; }
  .profile { grid-template-columns: minmax(0, 1fr) 120px; gap: 1.5rem; padding: 3rem 0 2rem; align-items: start; }
  .profile h1 { font-size: 3.5rem; }
  .position { font-size: 1rem; }
  .affiliation { font-size: .875rem; }
  .portrait-link { margin-top: .25rem; }
  .editorial-section { grid-template-columns: 1fr; gap: .75rem; padding-top: 1.75rem; }
  .section-label { margin-bottom: .5rem; }
  .prose { font-size: 1.125rem; }
  .illustrated-question { display: flow-root; }
  .research-sketch { position: static; float: left; width: min(180px, 40%); height: auto; margin: .25rem 1rem .5rem 0; }
  .page-heading { padding-top: 3rem; padding-bottom: 2rem; margin-bottom: 2rem; }
  .cv-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .cv-nav { position: static; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
  .site-footer { flex-direction: column; }
  main { padding-bottom: 3rem; }
}
@media (max-width: 390px) {
  .site-header { flex-direction: column; align-items: flex-start; gap: .3rem; padding-block: 1rem; }
  .site-header nav { width: 100%; justify-content: space-between; gap: .5rem; }
  .profile { grid-template-columns: minmax(0, 1fr) 88px; gap: 1rem; }
}
@media print {
  :root { --paper: #fff; --ink: #000; --muted: #333; --accent: #222; }
  body { font-size: 10pt; }
  .shell { width: 100%; }
  .site-header, .cv-nav, .skip-link { display: none; }
  .page-heading { padding-top: 0; margin-bottom: 1.5rem; }
  .cv-layout { display: block; }
  h1 { font-size: 28pt; }
  h2 { break-after: avoid; }
  .info-card, .publication, .talk-item { break-inside: avoid; }
  .cv-content section { margin-bottom: 1.5rem; }
  a { text-decoration: none; }
  main { min-height: 0; padding-bottom: 1rem; }
}
