/* A plain academic page. Change these few values to adjust the whole design. */
:root {
  color-scheme: light;
  --ink: #272727;
  --muted: #555;
  --link: #214e78;
  --rule: #d6dfe1;
  --heading: #293f50;
  --accent: #426b69;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font: 16px/1.48 Georgia, 'Times New Roman', serif;
}
.page { max-width: 960px; margin: 0 auto; padding: 0 20px; }
a { color: var(--link); text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:visited { color: #594b75; }
a:hover { color: #102c47; text-decoration: underline; }
.biography a, .highlights a { text-decoration: underline; text-decoration-color: #b2bfcb; }
a:focus-visible { outline: 2px solid var(--link); outline-offset: 4px; }
.skip-link { position: absolute; left: 20px; top: -100px; padding: 10px; background: white; }
.skip-link:focus { top: 8px; z-index: 1; }
.site-nav { position: relative; padding: 6px 0; border-bottom: 1px solid var(--rule); }
.nav-links { display: flex; flex-wrap: wrap; gap: 0 24px; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.nav-toggle { display: flex; align-items: center; gap: 8px; min-height: 44px; margin-left: auto; padding: 0 8px; border: 0; background: transparent; color: var(--link); font: inherit; cursor: pointer; }
.nav-icon { position: relative; width: 22px; height: 18px; }
.nav-icon::before, .nav-icon::after, .nav-icon i { position: absolute; left: 0; width: 22px; height: 2px; background: currentColor; transition: transform 220ms ease, opacity 220ms ease; }
.nav-icon::before, .nav-icon::after { content: ''; }
.nav-icon::before { top: 1px; }
.nav-icon i { top: 8px; }
.nav-icon::after { top: 15px; }
.nav-toggle[aria-expanded="true"] .nav-icon::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-icon i { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-icon::after { transform: translateY(-7px) rotate(-45deg); }
.nav-toggle:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }
.site-nav [hidden] { display: none; }
.site-nav.is-compact .nav-links { flex-direction: column; flex-wrap: nowrap; padding: 0; }
.site-nav.is-compact .nav-links > a { flex: 0 0 auto; }
.site-nav .nav-links.measuring { position: absolute; visibility: hidden; display: flex; flex-direction: row; flex-wrap: nowrap; width: max-content; padding: 0; }
.profile {
  display: grid;
  grid-template-columns: 234px minmax(0, 1fr);
  column-gap: 26px;
  margin: 26px 0 26px;
}
.identity { grid-column: 2; grid-row: 1; }
h1 { color: var(--heading); margin: 0 0 7px; font-size: 30px; line-height: 1.2; font-weight: normal; letter-spacing: -.4px; }
.pronunciation { display: inline-block; font-size: 15px; text-decoration: none; vertical-align: middle; padding: 6px; }
.name-suffix { white-space: nowrap; }
.identity p { margin: 0; }
.identity .contact-email { font-size: 14px; color: #4c6069; }
.identity .affiliation { margin-top: 10px; font-size: 17px; }
.identity b { font-weight: bold; }


.portrait { grid-column: 1; grid-row: 1 / span 3; width: 234px; max-width: 100%; height: auto; margin-top: 3px; }
.biography { grid-column: 2; margin-top: 23px; }
p { margin: 0 0 9px; }
.profile-links { grid-column: 2; display: grid; grid-template-columns: repeat(4, max-content); column-gap: 20px; list-style: none; padding: 0; margin: 2px 0 0; font-size: 14px; }
.profile-links a { display: inline-flex; align-items: center; gap: 5px; min-height: 32px; }
.profile-links .fa { width: 16px; text-align: center; font-size: 14px; color: #526a80; }
/* Muted accents keep the profile icons recognizable without dominating the text. */
.profile-links .fa-graduation-cap { color: #506e91; }
.profile-links .fa-twitter { color: #4d7f98; }
.profile-links .fa-github { color: #565467; }
.profile-links .fa-linkedin { color: #3e6c89; }
.profile-links .fa-medium { color: #4f7667; }
.profile-links .fa-book { color: #806c52; }
.profile-links .fa-youtube { color: #a65d58; }
.social-icon { width: 14px; height: 14px; object-fit: contain; }
section { margin: 0 0 26px; }
h2 { color: var(--heading); margin: 0 0 13px; padding-bottom: 6px; border-bottom: 1px solid var(--rule); font-size: 24px; line-height: 1.3; font-weight: normal; }
h3 { margin: 19px 0 10px; font-size: 17px; line-height: 1.4; font-weight: bold; }
.topic-toggle { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 48px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.topic-toggle:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.topic-arrow { flex: 0 0 auto; color: var(--muted); transition: transform 180ms ease; }
.topic-toggle[aria-expanded="true"] .topic-arrow { transform: rotate(90deg); }
.collapsible-topic { margin: 0 0 10px; }
@media (prefers-reduced-motion: reduce) {
  .topic-arrow, .nav-icon::before, .nav-icon::after, .nav-icon i { transition: none; }
}
.highlights { padding: 0; margin: 0; list-style: none; }
.highlights li { display: grid; grid-template-columns: 155px minmax(0,1fr); gap: 14px; margin-bottom: 10px; }
.date { color: #526d70; font-size: 15px; padding-top: 2px; }
.older-highlights { margin-top: 3px; }
.older-highlights summary { width: fit-content; margin-left: 169px; padding: 5px 0; color: var(--link); font-size: 14px; cursor: pointer; }
.older-highlights summary:hover { text-decoration: underline; }
.older-highlights summary:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.older-highlights[open] summary { margin-bottom: 10px; }
.papers { list-style: disc; padding: 0 0 0 19px; margin: 0; }
.paper { padding-left: 12px; margin: 0 0 13px; line-height: 1.4; }
.paper::marker { color: #6c8687; font-size: .8em; }
.paper-title { margin-left: -12px; margin-bottom: 1px; line-height: 1.4; }
.paper-title a { font-weight: normal; }
.authors, .venue { display: inline; font-size: 14px; line-height: 1.4; }
.venue { margin-left: .3em; color: var(--muted); }
.venue b { font-weight: normal; }
footer { border-top: 1px solid var(--rule); padding: 12px 0 24px; font-size: 13px; }
footer a { color: var(--muted); }
/* Keep content in normal reading order on small screens. */
@media (min-width: 641px) and (max-width: 800px) {
  .profile-links { grid-template-columns: repeat(2, max-content); }
}
@media (max-width: 640px) {
  .site-nav { padding: 6px 0; font-size: 16px; }
  .nav-links { column-gap: 20px; }
  .profile { grid-template-columns: minmax(0,1fr); margin: 22px 0 24px; align-items: start; }
  .identity { grid-column: 1; grid-row: 1; text-align: center; }
  h1 { font-size: 25px; }
  .portrait { width: 216px; grid-column: 1; grid-row: 2; justify-self: center; margin-top: 15px; }
  .biography { grid-column: 1 / -1; margin-top: 17px; }
  .profile-links { grid-column: 1 / -1; display: flex; flex-wrap: wrap; column-gap: 17px; margin-top: 1px; }
  .profile-links a { min-height: 40px; }
  h2 { font-size: 23px; }
  h3 { font-size: 17px; }
  .highlights li { display: block; margin-bottom: 12px; }
  .date { display: block; margin-bottom: 3px; }
  .older-highlights summary { margin-left: 0; padding: 10px 0; }
  .paper { padding-left: 12px; margin-bottom: 16px; }
  .paper-title { margin-left: -12px; }
  .authors, .venue { font-size: 14px; }
  section { margin-bottom: 24px; }
}
/* Handles enlarged text and unusually long words without horizontal scrolling. */
main { overflow-wrap: anywhere; }
@media print {
  body { font-size: 11pt; color: #000; }
  h1, h2, .identity .contact-email, .affiliation a, .date, .profile-links .fa { color: #000; }
  .page { max-width: none; padding: 0; }
  .site-nav, .skip-link { display: none; }
  a, a:visited { color: #000; text-decoration: none; }
  .profile { margin-top: 0; }
  h2, h3 { break-after: avoid; }
  .paper, .highlights li { break-inside: avoid; }
  .papers[hidden] { display: block !important; }
  .topic-arrow { display: none; }
  .authors, .venue, .date { font-size: 10pt; }
}
