:root {
  --color-page: #f7f8fa;
  --color-surface: #ffffff;
  --color-text: #20242b;
  --color-muted: #626a76;
  --color-brand: #6f176c;
  --color-brand-dark: #4d104b;
  --color-brand-soft: #f5edf5;
  --color-border: #e2e5e9;
  --color-focus: #b77ab4;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-heading: Georgia, "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", serif;
}

body {
  color: var(--color-text);
  background-color: var(--color-page);
  font-family: var(--font-body);
}

a {
  color: var(--color-brand);
  text-decoration-color: transparent;
  text-underline-offset: 0.2em;
}

a:hover,
a:focus-visible {
  color: var(--color-brand-dark);
  text-decoration-color: currentColor;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
label:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-text);
  font-family: var(--font-heading);
  font-weight: 600;
}

.navigation,
.navigation a,
.navigation span,
.navigation .menu-button,
.pagination,
.content .list ul li .title {
  font-family: var(--font-body);
}

.centered .about h1 {
  font-family: var(--font-heading);
  font-weight: 600;
}

.centered .about h2 {
  font-family: var(--font-body);
}

article h2,
article h3 {
  color: var(--color-brand-dark);
}

.navigation {
  background-color: rgba(247, 248, 250, 0.96);
  border-bottom: 1px solid var(--color-border);
}

.navigation a,
.navigation span,
.navigation .menu-button {
  color: var(--color-text);
}

.navigation a:hover,
.navigation a:focus-visible,
.navigation .menu-button:hover,
.navigation .menu-button:focus-visible {
  color: var(--color-brand);
}

.navigation a[aria-current="page"] {
  color: var(--color-brand);
  box-shadow: inset 0 -2px 0 var(--color-brand);
}

.content article,
.content .list {
  color: var(--color-text);
}

.content article .post-meta,
.content article figcaption,
.content article .date,
.content .list .date {
  color: var(--color-muted);
}

.content article ul li .title,
.content .list ul li .title {
  color: var(--color-text);
}

.content article ul li .title:hover,
.content article ul li .title:focus-visible,
.content .list ul li .title:hover,
.content .list ul li .title:focus-visible {
  color: var(--color-brand);
}

.publication-title,
.publication-authors,
.publication-venue {
  display: inline-block;
}

.publication-title {
  color: var(--color-text);
  font-weight: 600;
  line-height: 1.45;
}

.publication-authors {
  color: var(--color-text);
}

.publication-venue {
  color: var(--color-muted);
}

.publication-venue em {
  font-style: italic;
}

.publication-venue .patent-type,
.publication-venue .copyright-type {
  color: var(--color-brand);
}

.publication-venue a {
  color: var(--color-brand);
  text-decoration-color: currentColor;
}

.publication-venue a:hover,
.publication-venue a:focus-visible {
  color: var(--color-brand-dark);
}

.centered .about h2 {
  color: var(--color-muted);
}

.centered .about .social-links {
  margin-top: 2rem;
}

.centered .about ul li a {
  color: var(--color-text);
}

.centered .about ul li a:hover,
.centered .about ul li a:focus-visible {
  color: var(--color-brand);
}

blockquote {
  border-left-color: var(--color-brand);
  background-color: var(--color-brand-soft);
  color: var(--color-muted);
  margin-left: 0;
  padding: 1.2rem 2rem;
}

table td,
table th {
  border-color: var(--color-border);
}

table th {
  background-color: var(--color-brand-soft);
  color: var(--color-brand-dark);
}

code {
  background-color: var(--color-brand-soft);
  color: var(--color-text);
}

.recruitment-notice {
  margin: 3.2rem 0;
  padding: 1.6rem 2rem;
  border-left: 3px solid var(--color-brand);
  background-color: var(--color-brand-soft);
  color: var(--color-text);
}

.recruitment-notice > strong {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--color-brand-dark);
}

.recruitment-notice p {
  margin: 0;
  text-align: left;
}

.award-badge,
.award-year,
.project-year {
  display: inline-block;
  border-radius: 3px;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.5;
  vertical-align: 0.08em;
}

.award-badge {
  margin-left: 0.5rem;
  padding: 0.15rem 0.6rem;
  border: 1px solid #d7bd72;
  background-color: #fff8df;
  color: #76590b;
}

.award-badge:hover,
.award-badge:focus-visible {
  background-color: #f8edc3;
  color: #5f4707;
}

.award-list,
.project-list {
  list-style: none;
  padding-left: 0 !important;
}

.award-list li,
.project-list li {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin: 1rem 0;
}

.award-year {
  flex: 0 0 auto;
  min-width: 4.8rem;
  padding: 0.15rem 0.6rem;
  background-color: #fff8df;
  color: #76590b;
  text-align: center;
}

.project-year {
  flex: 0 0 auto;
  min-width: 4.8rem;
  padding: 0.15rem 0.6rem;
  background-color: var(--color-brand-soft);
  color: var(--color-brand-dark);
  text-align: center;
}

.student-table {
  width: 100%;
  margin: 1.6rem 0 3.2rem;
  table-layout: fixed;
}

.student-table th,
.student-table td {
  padding: 1rem 1.2rem;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.student-table th {
  background-color: var(--color-brand-soft);
  color: var(--color-brand-dark);
  font-size: 1.4rem;
}

.student-table th:first-child {
  width: 38%;
}

.student-table th:nth-child(2) {
  width: 24%;
}

.student-table th:last-child {
  width: 38%;
}

.student-table tbody tr:hover {
  background-color: var(--color-surface);
}

.student-table .empty {
  color: var(--color-muted);
}

.footer {
  color: var(--color-muted);
}

.footer a {
  color: var(--color-brand);
}

@media only screen and (max-width: 1024px) {
  .navigation .navigation-list {
    background-color: var(--color-page);
    border-color: var(--color-border);
  }

  .navigation .navigation-list a[aria-current="page"] {
    background-color: var(--color-brand-soft);
    box-shadow: none;
  }

  .student-table th,
  .student-table td {
    padding: 0.8rem 0.6rem;
    font-size: 1.4rem;
  }
}