:root {
  color-scheme: dark;
  --background: #111111;
  --panel: rgb(27 27 27 / 94%);
  --paper: #222222;
  --text: #f0eae0;
  --muted: #b9afa0;
  --accent: #ff9c7d;
  --line: #383634;
  --header: rgb(17 17 17 / 90%);
  --glow: rgb(243 136 69 / 12%);
  --shadow: 0 10px 30px -18px rgb(0 0 0 / 40%);
}
:root[data-theme="light"] {
  color-scheme: light;
  --background: #f7f5f1;
  --panel: rgb(255 254 251 / 90%);
  --paper: #fffefc;
  --text: #27231e;
  --muted: #696258;
  --accent: #b83f25;
  --line: #e6e1d9;
  --header: rgb(255 254 251 / 87%);
  --glow: rgb(213 114 63 / 12%);
  --shadow: 0 2px 3px rgb(52 37 18 / 3%), 0 14px 35px -22px rgb(52 37 18 / 18%);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 95px; }
body { margin: 0; background: var(--background); color: var(--text); font: 15px/1.8 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; background: radial-gradient(ellipse at 8% 0, var(--glow), transparent 42%); pointer-events: none; }
::selection { background: var(--accent); color: var(--background); }
a { color: var(--accent); text-decoration: none; text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; border-radius: 4px; }
button { font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p { margin: 0; }
sup { font-size: .7em; }
.skip-link { position: fixed; left: 16px; top: 10px; padding: 8px 15px; background: var(--paper); transform: translateY(-150%); z-index: 10; }
.skip-link:focus { transform: none; }
.masthead { position: sticky; top: 0; z-index: 5; background: var(--header); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.navigation { width: min(1200px, calc(100% - 64px)); margin: auto; min-height: 68px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.brand { font-family: Georgia, "Times New Roman", serif; font-size: 23px; font-weight: 700; letter-spacing: -.5px; color: var(--text); white-space: nowrap; }
.brand:hover { text-decoration: none; }
.navigation-links { display: flex; gap: 3px; border: 1px solid var(--line); border-radius: 30px; padding: 4px; background: var(--panel); }
.navigation-links a { padding: 4px 17px; font-size: 12px; color: var(--muted); border-radius: 22px; transition: background .2s, color .2s; }
.navigation-links a:hover { color: var(--accent); background: var(--paper); text-decoration: none; }
.theme-toggle { border: 1px solid var(--line); color: var(--text); background: var(--paper); width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-size: 20px; line-height: 1; }
.theme-toggle[hidden] { display: none; }
.theme-toggle:hover { color: var(--accent); }
.page-layout { position: relative; width: min(1200px, calc(100% - 64px)); margin: 44px auto 32px; display: grid; grid-template-columns: 248px minmax(0, 1fr); align-items: start; gap: 36px; }
.profile-card, .content-card { border: 1px solid var(--line); border-radius: 14px; background: var(--panel); box-shadow: var(--shadow); }
.profile-card { position: sticky; top: 100px; padding: 24px 22px; text-align: center; }
.portrait { width: 120px; height: 144px; object-fit: cover; object-position: center 22%; border-radius: 10px; margin: 0 auto 18px; box-shadow: 0 2px 12px rgb(0 0 0 / 7%); }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: 25px; line-height: 1.25; font-weight: 600; white-space: nowrap; }
.chinese-name { font-family: "Songti SC", "SimSun", serif; color: var(--muted); font-size: 18px; letter-spacing: .16em; margin-top: 7px; }
.affiliation-mark { display: block; background: #fff; border-radius: 7px; padding: 10px 6px; margin: 22px 0 20px; }
.affiliation-mark img { width: 100%; }
.profile-lines { list-style: none; padding: 17px 0 0; margin: 0; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.65; }
.profile-lines li + li { margin-top: 5px; }
.profile-lines a { color: var(--text); }
.profile-lines li:first-child { color: var(--muted); font-size: 11px; margin-bottom: 8px; }
.interests { margin: 0; padding-left: 20px; color: var(--muted); font-size: 14px; }
.interests li::marker { color: var(--accent); }
.profile-links { display: grid; gap: 8px; margin-top: 22px; }
.profile-links a { border: 1px solid var(--line); background: var(--paper); border-radius: 25px; padding: 6px 10px; color: var(--text); font-size: 12px; transition: border-color .2s, color .2s; }
.profile-links a:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }
.profile-links span { margin-left: 6px; color: var(--muted); }
.content-flow { min-width: 0; }
.content-card { padding: 29px; }
.content-section + .content-section { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 26px; }
h2, h3 { font-family: Georgia, "Times New Roman", "Songti SC", serif; font-weight: 600; }
h2 { font-size: 24px; line-height: 1.3; margin-bottom: 16px; }
.biography { color: var(--muted); }
.biography p + p { margin-top: 14px; }
.news-line { display: flex; gap: 17px; padding-top: 18px; margin-top: 21px; border-top: 1px dashed var(--line); align-items: baseline; font-size: 12px; }
.news-line time { color: var(--accent); white-space: nowrap; font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 11px; }
.news-line p { color: var(--muted); }
.news-line strong { color: var(--text); font-weight: 550; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.section-heading h2 { margin: 0; }
.section-note { color: var(--muted); font-size: 10px; }
.publication-list { margin: 0; padding: 0; list-style: none; }
.publication { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 22px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--muted); }
.paper-copy { min-width: 0; }
.paper-venue { font-size: 12px; line-height: 1.5; color: var(--accent); margin-bottom: 8px; }
.publication h3 { font-size: 19px; line-height: 1.35; margin-bottom: 9px; }
.paper-authors { font-size: 12px; line-height: 1.75; }
.publication strong { color: var(--text); font-weight: 650; }
.paper-title { color: var(--text); }
.paper-title:hover { color: var(--accent); }
.paper-thumbnail { display: grid; place-items: center; width: 180px; height: 135px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.paper-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.paper-thumbnail:hover { border-color: var(--accent); }
.publication-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.publication-links a { border: 1px solid var(--line); border-radius: 20px; padding: 4px 12px; font-size: 11px; }
.publication-links a:hover { border-color: var(--accent); text-decoration: none; }
.publication-links span { padding-left: 5px; }
.email-link { font-size: 14px; overflow-wrap: anywhere; }
.email-link span { padding-left: 7px; }
address { font-size: 12px; color: var(--muted); font-style: normal; line-height: 1.9; margin-top: 12px; }
.footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 24px; margin-top: 26px; border-top: 1px solid var(--line); font-size: 10px; color: var(--muted); }
.footer a { color: var(--muted); }
.cursor-light-layer { position: fixed; inset: 0; overflow: clip; pointer-events: none; z-index: 0; }
.cursor-glow { position: absolute; left: 0; top: 0; width: 480px; height: 480px; margin: -240px; background: radial-gradient(circle, var(--glow), transparent 67%); pointer-events: none; opacity: 0; transition: opacity .4s; }
.cursor-glow.active { opacity: 1; }
.cursor-trail { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 7; }
@media (max-width: 1000px) {
  .page-layout { gap: 24px; grid-template-columns: 226px minmax(0, 1fr); }
  .profile-card { padding: 22px 16px; }
  h1 { font-size: 24px; }
  .content-card { padding: 23px; }
  .publication { grid-template-columns: minmax(0, 1fr) 125px; gap: 16px; padding: 16px; }
  .paper-thumbnail { width: 125px; height: 94px; padding: 6px; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 85px; }
  .navigation { width: calc(100% - 36px); min-height: 62px; gap: 12px; }
  .navigation-links a { padding: 4px 11px; font-size: 11px; }
  .brand { font-size: 20px; }
  .theme-toggle { width: 30px; height: 30px; flex: 0 0 30px; }
  .page-layout { width: calc(100% - 36px); grid-template-columns: 1fr; margin-top: 24px; gap: 22px; }
  .profile-card { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: center; padding: 25px 22px; }
  .portrait { width: 110px; height: 134px; margin-bottom: 14px; }
  h1 { font-size: 23px; white-space: normal; }
  .chinese-name { font-size: 17px; }
  .affiliation-mark { width: min(100%, 195px); margin: 0 auto 14px; }
  .profile-lines { padding-top: 12px; font-size: 11px; }
  .profile-links { margin-top: 14px; gap: 6px; }
  .profile-links a { padding: 4px 7px; font-size: 11px; }
  .content-card { padding: 24px; }
  h2 { font-size: 24px; }
  .biography { font-size: 14px; }
}
@media (max-width: 430px) {
  .profile-card { gap: 14px; padding: 22px 16px; }
  .portrait { width: 100px; height: 124px; }
  h1 { font-size: 22px; }
  .profile-lines { font-size: 10px; }
  .profile-links a { font-size: 10px; }
  .content-card { padding: 20px; }
  .section-heading { align-items: baseline; flex-wrap: wrap; gap: 8px; }
  .section-note { font-size: 9px; }
  .news-line { flex-direction: column; gap: 4px; }
  .publication-links a { font-size: 10px; padding: 4px 9px; }
  .navigation { gap: 8px; }
  .brand { font-size: 18px; }
  .navigation-links a { padding: 4px 8px; font-size: 10px; }
}
@media (max-width: 1000px) and (min-width: 761px), (max-width: 600px) {
  .publication { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .paper-thumbnail { justify-self: end; }
  .publication h3 { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .cursor-glow, .cursor-trail { display: none; }
}
@media (pointer: coarse) { .cursor-glow, .cursor-trail { display: none; } }
@media print {
  :root, :root[data-theme] { --background: white; --paper: white; --panel: white; --text: #222; --muted: #555; --accent: #993e28; --line: #ccc; --shadow: none; }
  .masthead, .cursor-light-layer, .cursor-trail, .footer { display: none; }
  .page-layout { width: 100%; margin-top: 0; gap: 20px; grid-template-columns: 190px 1fr; }
  .profile-card { position: static; } .content-card { break-inside: avoid; }
}
