@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/lato-regular.woff2") format("woff2");
}

@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/lato-bold.woff2") format("woff2");
}

:root {
  color-scheme: light;
  font-family: Lato, Verdana, Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: #171717;
  background: #fff;
  -webkit-text-size-adjust: 100%;
}

* { box-sizing: border-box; }
body { margin: 0; }
main { width: 100%; max-width: 840px; margin: 0 auto; padding: 46px 20px 22px; }
a { color: #1772d0; text-decoration: none; }
a:hover { color: #b3630b; }
a:focus-visible { outline: 2px solid #1772d0; outline-offset: 4px; border-radius: 2px; }
p { margin: 0 0 14px; }
strong { font-weight: 700; }
h1, h2, h3 { margin: 0; }
h1 { font-size: 32px; font-weight: 400; line-height: 1.3; margin-bottom: 23px; text-align: center; }
h2 { font-size: 22px; font-weight: 400; line-height: 1.3; margin-bottom: 16px; }
h3 { font-size: 14px; line-height: 1.5; font-weight: 700; }
.profile { display: grid; grid-template-columns: minmax(0, 1fr) 232px; gap: 34px; align-items: center; padding: 0 20px 29px; }
.profile-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 13px; margin-top: 20px; }
.profile-links span { color: #777; }
.portrait-link { display: block; }
.portrait { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
section { padding: 22px 20px 10px; }
.news { padding-top: 20px; }
.news-list { list-style: none; padding: 0; margin: 0 0 5px; }
.news-list li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 9px; }
.news-list time { color: #666; font-variant-numeric: tabular-nums; }
.section-intro { margin-bottom: 22px; }
.paper { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 25px; align-items: center; margin: 0 -20px; padding: 22px 20px; }
.paper-highlight { background: #ffffd0; }
.paper-figure { display: block; }
.paper-figure img { display: block; width: 160px; height: 120px; object-fit: contain; }
.paper h3 { margin-bottom: 4px; }
.authors, .venue { margin-bottom: 2px; }
.venue-note { font-size: 13px; }
.paper-links { margin: 3px 0 9px; }
.paper-links span { padding: 0 2px; color: #777; }
.paper-summary { margin: 0; }
.education { padding-top: 23px; }
.education-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); column-gap: 25px; margin-bottom: 16px; }
.education-row p { margin: 0; }
.education-date { color: #606060; font-variant-numeric: tabular-nums; }
.education-date span { display: block; font-size: 12px; }
.education-row h3 { margin-bottom: 2px; }
.honors-list { list-style: none; margin: 0; padding: 0; }
.honors-list li { position: relative; padding-right: 86px; margin-bottom: 13px; }
.honor-date { position: absolute; top: 0; right: 0; color: #666; font-variant-numeric: tabular-nums; }
.honors-list li p { margin: 3px 0 0; color: #606060; font-size: 13px; }
.skip-link { position: absolute; top: -60px; left: 16px; padding: 10px 15px; background: #fff; z-index: 1; }
.skip-link:focus { top: 10px; }

@media (max-width: 650px) {
  main { padding: 30px 22px 22px; }
  .profile { grid-template-columns: minmax(0, 1fr) 170px; gap: 22px; padding: 0 0 22px; }
  h1 { font-size: 28px; margin-bottom: 18px; }
  section { padding-left: 0; padding-right: 0; }
  .paper { margin-left: -12px; margin-right: -12px; padding: 20px 12px; grid-template-columns: 135px minmax(0, 1fr); gap: 18px; }
  .paper-figure img { width: 135px; height: auto; }
  .education-row { grid-template-columns: 135px minmax(0, 1fr); gap: 18px; }
}

@media (max-width: 480px) {
  main { padding-top: 27px; }
  .profile { display: flex; flex-direction: column-reverse; gap: 23px; }
  .portrait-link { width: 170px; }
  h1 { font-size: 30px; }
  .profile-links { margin-top: 17px; }
  .paper { grid-template-columns: 1fr; gap: 16px; }
  .paper-figure { width: 160px; }
  .paper-figure img { width: 160px; height: 120px; }
  .education-row { grid-template-columns: 1fr; gap: 3px; }
  .education-date span { display: inline; }
  .honors-list li { padding-right: 0; }
  .honor-date { display: block; position: static; font-size: 12px; margin-top: 2px; }
}
