/* Shared design. Edit these colour and type tokens to change every page. */
:root { --ink: #162b42; --muted: #536377; --link: #175e81; --line: #d8e1e8; --paper: #fff; --wash: #f2f6f9; --accent: #2b6f8a; --serif: Georgia, 'Times New Roman', serif; --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; }
* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 1rem/1.7 var(--sans); border-top: 5px solid var(--ink); }
a { color: var(--link); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { color: var(--ink); }
a:focus-visible, summary:focus-visible { outline: 3px solid #bd660b; outline-offset: 4px; }
img { max-width: 100%; height: auto; }
.skip-link { position: absolute; left: 1rem; top: -6rem; background: #fff; padding: .6rem 1rem; z-index: 10; }
.skip-link:focus { top: 1rem; }
.masthead, .layout, .site-footer { max-width: 1180px; margin-inline: auto; padding-inline: 2.5rem; }
.masthead { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; padding-block: 1.8rem; }
.brand { font: 1.85rem/1.2 var(--serif); color: var(--ink); text-decoration: none; }
.affiliation { font-size: .9rem; color: var(--muted); }
.layout { display: grid; grid-template-columns: 175px minmax(0, 1fr); gap: 3.5rem; padding-block: 2.5rem 5rem; border-top: 1px solid var(--line); }
.sidebar nav { position: sticky; top: 2rem; }
.site-nav { list-style: none; padding: 0; margin: 0; }
.site-nav li { margin: 0; }
.site-nav a { display: block; padding: .53rem .8rem; margin-block: .15rem; font-size: .94rem; line-height: 1.5; color: var(--muted); border-left: 2px solid transparent; text-decoration: none; }
.site-nav a:hover { background: var(--wash); color: var(--ink); }
.site-nav a[aria-current="page"] { color: var(--ink); font-weight: 600; border-left-color: var(--accent); background: var(--wash); }
.mobile-nav { display: none; }
main { min-width: 0; }
h1, h2, h3, h4 { color: var(--ink); }
h1 { font: 3rem/1.12 var(--serif); letter-spacing: -.025em; margin: .15rem 0 1.5rem; }
h2 { font: 1.8rem/1.25 var(--serif); margin: 2.8rem 0 1rem; }
h3 { font-size: 1.12rem; line-height: 1.4; margin: 1.8rem 0 .5rem; }
h4 { font-size: 1rem; margin-bottom: .3rem; }
p { margin: 0 0 1.1rem; }
li { margin-bottom: .65rem; }
ul, ol { padding-left: 1.4rem; }
.eyebrow { font-size: .875rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); margin-bottom: .8rem; }
.lead { font-size: 1.18rem; line-height: 1.7; }
.profile { display: grid; grid-template-columns: minmax(0, 1fr) 144px; gap: 2.5rem; align-items: start; padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.profile h1 { font-size: 3.5rem; margin-bottom: .7rem; }
.profile .role { color: var(--muted); margin-bottom: 1.5rem; }
.portrait { width: 144px; height: 192px; object-fit: cover; }
.profile-links { display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; font-weight: 600; }
.opportunity { padding: 1.4rem 1.7rem; background: var(--wash); border-left: 3px solid var(--accent); margin-top: 2rem; }
.opportunity h2 { margin: 0 0 .7rem; font-size: 1.5rem; }
.opportunity p:last-child { margin-bottom: 0; }
.news-list { list-style: none; padding: 0; margin: 0; }
.news-list li { display: grid; grid-template-columns: 98px minmax(0, 1fr); gap: 1.4rem; padding: 1.25rem 0; border-top: 1px solid var(--line); margin: 0; }
.news-list time { color: var(--muted); font-size: .875rem; font-variant-numeric: tabular-nums; }
.news-list p { margin: 0; }
.archive { margin-top: 1.5rem; }
summary { cursor: pointer; font-weight: 600; padding: .65rem 0; }
.page-intro { color: var(--muted); max-width: 65ch; }
.section-nav { display: flex; flex-wrap: wrap; gap: .45rem 1.25rem; margin: 1.5rem 0 2rem; padding-block: .8rem; border-block: 1px solid var(--line); font-size: .9rem; }
.publication-list { padding-left: 2rem; line-height: 1.45; }
.publication-list > li { padding: 0 0 .6rem .35rem; margin-bottom: .6rem; border-bottom: 1px solid var(--line); }
.publication-list > li::marker { color: var(--muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
.publication-list p { margin: 0; }
.pub-title { display: block; font-size: 1rem; font-weight: 600; line-height: 1.4; }
.pub-authors { color: var(--muted); font-size: .94rem; }
.pub-source { display: inline; font-size: .94rem; }
.pub-links { display: inline; font-size: .875rem; }
.publication-list .pub-links { margin-left: .5rem; }
.pub-links a { display: inline-block; margin-right: .9rem; padding-block: .1rem; }
.citation-note { color: var(--muted); font-size: .9rem; }
.most-cited { background: var(--wash); padding: .2rem 1.5rem 1rem; margin-block: 1.5rem; }
.most-cited h2 { margin-top: 1rem; }
.most-cited li { line-height: 1.5; }
.timeline { margin: 1rem 0; }
.timeline article { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 1.5rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.timeline h3 { margin: 0; }
.timeline p { margin: .2rem 0 0; }
.timeline .date { font-size: .9rem; color: var(--muted); }
.link-list { list-style: none; padding: 0; }
.link-list li { border-top: 1px solid var(--line); padding-block: 1rem; margin: 0; }
.prose { max-width: 74ch; overflow-wrap: break-word; }
.prose blockquote { margin: .6rem 0 1.5rem; }
.prose table { max-width: 100%; }
.prose td { vertical-align: top; padding: .35rem .7rem .35rem 0; }
.prose pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.contact-grid h2 { margin-top: 1rem; }
address { font-style: normal; }
.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 1.4rem 2rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .875rem; }
.site-footer p { margin: 0; }
@media (max-width: 800px) {
  .masthead, .layout, .site-footer { padding-inline: 1.4rem; }
  .masthead { display: block; padding-block: 1.3rem; }
  .affiliation { display: block; margin-top: .45rem; }
  .layout { display: block; padding-top: 1.8rem; }
  .sidebar { display: none; }
  .mobile-nav { display: block; padding-inline: 1.4rem; background: var(--wash); border-top: 1px solid var(--line); }
  .mobile-nav summary { padding-block: .85rem; }
  .mobile-nav .site-nav { display: grid; grid-template-columns: 1fr 1fr; padding-bottom: .8rem; }
  .mobile-nav .site-nav a { padding-block: .7rem; }
  h1 { font-size: 2.5rem; }
  .profile h1 { font-size: 2.9rem; }
  .profile { gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 120px; }
  .portrait { width: 120px; height: 160px; }
  .profile .intro { grid-column: 1 / -1; }
  .timeline article { grid-template-columns: 150px minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .masthead, .layout, .site-footer { padding-inline: 1.1rem; }
  .mobile-nav { padding-inline: 1.1rem; }
  .brand { font-size: 1.65rem; }
  .profile { grid-template-columns: minmax(0, 1fr) 90px; gap: 1.1rem; }
  .portrait { width: 90px; height: 120px; }
  .profile h1 { font-size: 2.35rem; }
  .profile .role { font-size: .9rem; margin-bottom: 0; }
  .lead { font-size: 1.075rem; }
  .eyebrow { font-size: .8rem; }
  .opportunity { padding: 1.1rem; }
  .news-list li { display: block; }
  .news-list time { display: block; margin-bottom: .4rem; }
  .timeline article { display: block; }
  .timeline .date { margin-bottom: .4rem; }
  .contact-grid { display: block; }
  .publication-list { padding-left: 1.4rem; }
}
@media print {
  body { border: 0; font-size: 10pt; }
  .sidebar, .mobile-nav, .skip-link, .section-nav, .site-footer, .profile-links { display: none; }
  .masthead, .layout { display: block; padding: 0; max-width: none; }
  .masthead { padding-bottom: 1rem; margin-bottom: 1rem; }
  h1 { font-size: 26pt; }
  h2 { break-after: avoid; }
  li, article { break-inside: avoid; }
  a { color: inherit; }
}
