@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600&family=Libre+Caslon+Text:wght@400&display=swap');
:root{--ink:#292e31;--secondary:#667077;--line:#e4e7e8;--accent:#245f91;--link-hover:#17456b;--serif:'Libre Caslon Text',Georgia,serif;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline;text-underline-offset:4px}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.page{width:min(960px,100% - 96px);margin:0 auto}header{min-height:101px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--line)}.home{font-weight:500;font-size:16px}nav{display:flex;gap:27px;font-size:14px;color:var(--secondary)}nav a{padding:12px 0}.intro{padding:72px 0 66px;max-width:745px}.overline{margin:0 0 18px;color:var(--secondary);font-size:14px;letter-spacing:.025em}h1{font-family:var(--serif);font-weight:400;font-size:44px;line-height:1.3;letter-spacing:-.035em;margin:0 0 9px}.position{margin:0;color:var(--secondary);font-size:16px}.introduction{margin:29px 0 20px;max-width:685px}.introduction p{margin:0 0 13px}.email{font-size:15px;color:var(--accent);text-decoration:underline;text-decoration-color:#becbd0;text-underline-offset:5px;overflow-wrap:anywhere}.section{border-top:1px solid var(--line);padding:42px 0 46px;display:grid;grid-template-columns:190px minmax(0,1fr);column-gap:40px}.section h2{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.6;letter-spacing:-.015em;margin:0}.section h3{font-weight:500;font-size:17px;line-height:1.65;margin:0 0 10px}.section p{margin:0 0 12px}.research-item+.research-item{margin-top:28px}.research-footnote{font-size:14px;color:var(--secondary);margin:26px 0 0!important}.publications{padding:0;margin:0;list-style:none}.publications li{display:grid;grid-template-columns:43px minmax(0,1fr);gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.publications li:first-child{padding-top:0}.publications li:last-child{padding-bottom:0;border-bottom:none}.year{font-size:13px;color:var(--secondary);padding-top:4px;font-variant-numeric:tabular-nums}.publications h3{font-size:16px;line-height:1.65;margin:0 0 9px}.publications p{font-size:14px;line-height:1.7;color:var(--secondary);margin:4px 0}.publications .citation{font-size:13px}.tag{padding-left:9px;margin-left:5px;border-left:1px solid #cbd1d4;font-size:12px}.subheading{font-size:14px!important;color:var(--secondary);margin:0 0 21px!important;font-weight:400!important}.timeline{margin:0 0 33px}.timeline:last-child{margin-bottom:0}.timeline>div{display:grid;grid-template-columns:112px 1fr;gap:16px;margin-bottom:18px}.timeline dt{font-size:14px;color:var(--secondary);padding-top:2px;font-variant-numeric:tabular-nums}.timeline dd{margin:0;font-size:16px;line-height:1.7}.timeline strong{display:block;font-weight:500}.timeline dd span{display:block;font-size:14px;color:var(--secondary)}.honors>div{margin-bottom:13px}.honors dd{font-size:15px}.contact p{font-size:14px;color:var(--secondary);margin-top:20px}.contact{padding-bottom:40px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px 0 35px;color:var(--secondary);font-size:12px}.skip{position:absolute;top:-80px;left:16px;padding:10px;background:var(--ink);color:white}.skip:focus{top:12px}@media(max-width:800px){.page{width:calc(100% - 64px)}.section{grid-template-columns:150px minmax(0,1fr);gap:25px}nav{gap:18px}.intro{padding-top:57px}}@media(max-width:600px){.page{width:calc(100% - 40px)}header{padding:22px 0 18px;min-height:0;align-items:flex-start;flex-direction:column;gap:8px}nav{gap:22px;font-size:13px;flex-wrap:wrap}nav a{padding:4px 0}.intro{padding:42px 0}.overline{font-size:13px}h1{font-size:37px}.introduction{margin-top:24px}.section{grid-template-columns:1fr;gap:23px;padding:30px 0 35px}.section h2{font-size:21px}.desktop-break{display:none}.desktop-break:after{content:' '}.publications li{grid-template-columns:37px minmax(0,1fr);gap:14px}.timeline>div{grid-template-columns:103px minmax(0,1fr);gap:14px}.timeline dt{font-size:13px}.timeline dd{font-size:15px}footer{font-size:11px;gap:14px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.group-link{color:var(--accent);text-decoration:underline;text-decoration-color:#becbd0;text-underline-offset:4px}.group-link:hover{text-decoration-color:var(--accent)}
.page-heading{padding:52px 0 37px}.page-heading h1{font-size:34px}.page-heading p{font-size:15px;color:var(--secondary);margin:12px 0 0}nav a[aria-current=page]{color:var(--accent);text-decoration:underline;text-underline-offset:7px;text-decoration-color:#9caeb4}.synced-list li{grid-template-columns:78px minmax(0,1fr)}.synced-list .year{line-height:1.6}.synced-list p{overflow-wrap:anywhere}.empty-note{font-size:14px;color:var(--secondary)}@media(max-width:600px){.page-heading{padding:36px 0 28px}.page-heading h1{font-size:31px}.synced-list li{grid-template-columns:65px minmax(0,1fr);gap:14px}nav{gap:20px}.section h2{overflow-wrap:anywhere}}
@media(min-width:601px) and (max-width:760px){header{flex-wrap:wrap;gap:6px;padding:22px 0 18px}header nav{width:100%;flex-wrap:wrap}}

.research-groups{display:block}.research-groups>h2{margin-bottom:27px}.group-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.group-thumbnail{display:block}.group-thumbnail img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;margin-bottom:19px}.group-thumbnail h3{display:flex;justify-content:space-between;gap:14px;font-size:18px;margin-bottom:5px}.group-thumbnail h3 span{font-size:16px;color:var(--secondary)}.group-thumbnail:hover{text-decoration:none}.group-thumbnail:hover h3{text-decoration:underline;text-underline-offset:4px}.group-card p{font-size:15px;line-height:1.85}.group-card .group-topic{font-size:13px;color:var(--secondary);margin-bottom:19px}@media(max-width:600px){.group-grid{grid-template-columns:1fr;gap:34px}.group-thumbnail h3{font-size:18px}}

.writing-category{font-size:14px!important;color:var(--secondary);font-weight:400!important;margin:0 0 22px!important}.writing-list+.writing-category{margin-top:40px!important}.writing-list .writing-entry{grid-template-columns:70px minmax(0,1fr);gap:18px;align-items:start}.writing-list .has-cover{grid-template-columns:70px 82px minmax(0,1fr)}.writing-thumb{display:block}.writing-thumb img{display:block;width:82px;height:114px;object-fit:contain;object-position:top center}.writing-entry h4{font-size:16px;font-weight:500;line-height:1.75;margin:0 0 10px}.writing-entry .volume-link{color:var(--accent);text-decoration:underline;text-decoration-color:#becbd0;text-underline-offset:4px}@media(max-width:600px){.writing-list .writing-entry{grid-template-columns:58px minmax(0,1fr);gap:12px}.writing-list .has-cover{grid-template-columns:62px minmax(0,1fr)}.writing-entry.has-cover>.year{grid-column:1/-1}.writing-thumb img{width:62px;height:88px}}

.back-numbers a{color:var(--accent);text-decoration:underline;text-decoration-color:#becbd0;text-underline-offset:3px}.back-numbers span{margin-right:4px}

/* Classes: course materials */
.course-section {
  border-top: 1px solid var(--line);
  padding: 36px 0 48px;
}
.course-section h2 {
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  margin: 0 0 8px;
}
.course-format {
  color: var(--secondary);
  font-size: 14px;
  margin: 0 0 24px;
}
.lecture-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.lecture-list li {
  border-bottom: 1px solid var(--line);
}
.lecture-link,
.lecture-cancelled {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 24px;
  padding: 16px 0;
  font-size: 16px;
  line-height: 1.8;
}
.lecture-date {
  color: var(--secondary);
  font-variant-numeric: tabular-nums;
}
.lecture-cancelled {
  color: var(--secondary);
}
@media (max-width: 600px) {
  .course-section h2 { font-size: 20px; }
  .lecture-link,
  .lecture-cancelled { grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
}

/* Keep links distinct from surrounding text across all pages. */
a:any-link:hover {
  color: var(--link-hover);
}
.lecture-link .lecture-date {
  color: inherit;
}
.skip:any-link:hover {
  color: white;
}

/* Seminar course entries */
.course-term {
  margin: 20px 0 12px;
  font-size: 17px;
  font-weight: 500;
}
.course-details {
  margin: 0;
  padding-left: 1.4em;
}
.course-details li {
  margin: 6px 0;
}
.course-details ul {
  margin: 8px 0;
  padding-left: 1.4em;
}

/* Classes table of contents */
.course-toc {
  display: block;
  margin-bottom: 36px;
  font-size: 16px;
}
.course-toc h2 {
  margin: 0 0 12px;
  color: var(--ink);
  font-size: 17px;
  font-weight: 500;
}
.course-toc ul {
  margin: 0;
  padding-left: 1.4em;
}
.course-toc li {
  margin: 6px 0;
}
.course-toc a {
  padding: 0;
}
