:root {
  color-scheme: light;
  --background: #ffffff;
  --text: #222222;
  --muted: #666666;
  --link: #1772d0;
  --link-hover: #f09228;
  --button-background: #f2f2f2;
  --button-border: #d5d5d5;
  --white-gradient: repeating-linear-gradient(100deg, #ffffff 0%, #ffffff 7%, transparent 10%, transparent 12%, #ffffff 16%);
  --dark-gradient: repeating-linear-gradient(100deg, #000000 0%, #000000 7%, transparent 10%, transparent 12%, #000000 16%);
  --aurora: repeating-linear-gradient(100deg, #3b82f6 10%, #a5b4fc 15%, #93c5fd 20%, #ddd6fe 25%, #60a5fa 30%);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --background: #121417;
  --text: #e7e7e7;
  --muted: #a4a8ad;
  --link: #79b8ff;
  --link-hover: #ffb86b;
  --button-background: #20242a;
  --button-border: #40454c;
}

body,
td,
th,
tr,
p,
a,
li {
  font-family: "Lora", Georgia, serif;
  font-size: 15px;
  line-height: 1.45;
}

body {
  position: relative;
  isolation: isolate;
  margin: 0;
  color: var(--text);
  background-color: var(--background);
  transition: color 160ms ease, background-color 160ms ease;
}

.aurora-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.aurora-bg__layer {
  position: absolute;
  inset: -10px;
  background-image: var(--white-gradient), var(--aurora);
  background-size: 300%, 200%;
  background-position: 50% 50%, 50% 50%;
  opacity: 0.5;
  filter: blur(10px) invert(1);
  will-change: transform;
  mask-image: radial-gradient(ellipse at 100% 0%, black 10%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 100% 0%, black 10%, transparent 70%);
}

html[data-theme="dark"] .aurora-bg__layer {
  background-image: var(--dark-gradient), var(--aurora);
  filter: blur(10px) invert(0);
}

.aurora-bg__layer::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--white-gradient), var(--aurora);
  background-size: 200%, 100%;
  background-position: 50% 50%, 50% 50%;
  background-attachment: fixed;
  mix-blend-mode: difference;
  animation: aurora 60s linear infinite;
}

html[data-theme="dark"] .aurora-bg__layer::after {
  background-image: var(--dark-gradient), var(--aurora);
}

@keyframes aurora {
  from {
    background-position: 50% 50%, 50% 50%;
  }
  to {
    background-position: 350% 50%, 350% 50%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aurora-bg__layer::after {
    animation: none;
  }
}

a {
  color: var(--link);
  text-decoration: none;
}

a:focus,
a:hover {
  color: var(--link-hover);
}

strong,
.papertitle {
  font-family: "Lora", Georgia, serif;
  font-size: 16px;
  font-weight: 700;
}

h2 {
  margin: 0;
  font-family: "Lora", Georgia, serif;
  font-size: 22px;
  font-weight: 400;
}

.name {
  margin: 0;
  padding-top: 20px;
  font-family: "Lora", Georgia, serif;
  font-size: 32px;
}

.page {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  border: 0;
  border-spacing: 0;
  border-collapse: separate;
}

.inner-table,
.entry-table {
  width: 100%;
  margin: 0 auto;
  border: 0;
  border-spacing: 0;
  border-collapse: separate;
}

.entry-table {
  border-spacing: 0 4px;
}

.profile-copy {
  width: 63%;
  padding: 2.5%;
  vertical-align: middle;
}

.profile-photo {
  width: 37%;
  max-width: 37%;
  padding: 2.5%;
  vertical-align: middle;
}

.profile-photo img {
  width: 80%;
  max-width: 80%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
}

.section-heading {
  width: 100%;
  padding: 16px;
  vertical-align: middle;
}

.section-heading p {
  margin-bottom: 0;
}

.thumb-cell {
  width: 22%;
  padding: 16px;
  vertical-align: middle;
}

.thumb-cell img {
  display: block;
  width: 160px;
  max-width: 100%;
  height: 160px;
  margin: 0 auto;
  object-fit: contain;
}

.entry-copy {
  width: 78%;
  padding: 12px 16px 12px 8px;
  vertical-align: middle;
}

.entry-copy p {
  margin: 8px 0 0;
}

.venue-cell {
  width: 22%;
  padding: 12px 16px;
  color: var(--muted);
  text-align: center;
  vertical-align: top;
}

.venue-cell strong {
  display: inline-block;
  padding: 3px 10px;
  color: var(--text);
  background: var(--button-background);
  border: 1px solid var(--button-border);
  border-radius: 999px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.venue-cell strong.venue-plain {
  display: block;
  padding: 0;
  color: var(--text);
  background: none;
  border: 0;
  border-radius: 0;
  font-family: "Lora", Georgia, serif;
  font-size: inherit;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
}

.text-entry {
  width: 78%;
  padding: 12px 16px 12px 8px;
  vertical-align: top;
}

.text-entry p {
  margin: 5px 0 0;
}

.award {
  color: #c23b22;
  font-weight: 700;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 10px;
}

.gallery img {
  width: 100%;
  height: 110px;
  object-fit: cover;
}

.footer {
  padding: 24px 16px 36px;
  color: var(--muted);
  text-align: center;
}

.footer p {
  font-size: 13px;
}

.quote-cn {
  font-family: "SimSun", "Songti SC", serif;

}

.theme-toggle {
  position: fixed;
  z-index: 10;
  top: 14px;
  right: 16px;
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--text);
  background: var(--button-background);
  border: 1px solid var(--button-border);
  border-radius: 50%;
  font-family: "Lora", Georgia, serif;
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
}

.theme-toggle:hover {
  border-color: var(--link);
}

.theme-toggle:focus-visible {
  outline: 2px solid var(--link);
  outline-offset: 2px;
}

.theme-icon {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 650px) {
  .page {
    width: calc(100% - 20px);
  }

  .theme-toggle {
    top: 8px;
    right: 8px;
  }

  .profile-copy,
  .profile-photo {
    display: block;
    width: auto;
    max-width: none;
    padding: 14px 16px;
  }

  .profile-photo img {
    width: 210px;
    margin: 0 auto;
  }

  .name {
    padding-top: 6px;
  }

  .thumb-cell,
  .venue-cell {
    width: 29%;
    padding: 10px 8px;
  }

  .entry-copy,
  .text-entry {
    width: 71%;
    padding: 10px 8px;
  }

  .thumb-cell img {
    height: auto;
    max-height: 160px;
  }

  .gallery {
    grid-template-columns: 1fr;
  }

  .gallery img {
    height: auto;
  }
}
