:root {
  color-scheme: light dark;
  --profile-bg: #ffffff;
  --profile-text: #242d2a;
  --profile-muted: #66716c;
  --profile-accent: #246554;
  --profile-accent-hover: #154637;
  --profile-line: #e3e8e5;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body {
  margin: 0;
  background: var(--profile-bg);
  color: var(--profile-text);
  font: 16px/1.75 -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--profile-accent); text-decoration: none; text-underline-offset: .2em; }
a:hover { color: var(--profile-accent-hover); text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--profile-accent); outline-offset: 5px; border-radius: 2px; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.4; }
.profile-shell { width: min(100% - 64px, 900px); margin-inline: auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--profile-line); }
.site-brand { color: var(--profile-text); font-size: 17px; font-weight: 650; letter-spacing: .015em; }
.site-navigation { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; font-size: 14px; }
.site-navigation a { padding-block: 6px; }
.site-navigation .language-link { border-left: 1px solid var(--profile-line); padding-left: 24px; }
.profile-intro { display: grid; grid-template-columns: minmax(0, 1fr) 160px; align-items: start; gap: 56px; padding: 52px 0 42px; }
.profile-intro h1 { font-size: 34px; font-weight: 650; letter-spacing: -.02em; }
.profile-intro h1 span { display: inline-block; color: var(--profile-muted); font-size: 21px; font-weight: 400; margin-left: 10px; letter-spacing: 0; }
.profile-role { margin-top: 12px; font-size: 18px; font-weight: 500; }
.profile-affiliation { color: var(--profile-muted); font-size: 14px; margin-top: 2px; }
.profile-bio { margin-top: 20px; }
.profile-bio p + p { margin-top: 10px; }
.profile-links { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 18px; font-size: 15px; }
.profile-avatar { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; margin-top: 5px; }
.profile-section { border-top: 1px solid var(--profile-line); padding: 27px 0 8px; }
.profile-section h2 { font-size: 21px; font-weight: 600; margin-bottom: 24px; }
.experience-entry, .honors-list li { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; margin-bottom: 27px; }
.experience-period, .honor-date { color: var(--profile-muted); font-size: 14px; padding-top: 2px; font-variant-numeric: tabular-nums; }
.experience-body h3 { font-size: 17px; font-weight: 600; }
.experience-body h3 a { color: var(--profile-text); }
.experience-role { font-size: 15px; margin-top: 3px; }
.experience-description { margin-top: 8px; color: var(--profile-muted); font-size: 15px; }
.honors-list { list-style: none; padding: 0; margin: 0; }
.honors-list li { margin-bottom: 20px; font-size: 15px; }
.honors-list strong { color: var(--profile-accent); font-weight: 500; }
.site-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; border-top: 1px solid var(--profile-line); margin-top: 16px; padding: 23px 0 32px; color: var(--profile-muted); font-size: 12px; }
.site-footer nav { display: flex; gap: 16px; }
.site-footer a { color: var(--profile-muted); }
.site-credit { margin-left: auto; }
.auxiliary-page { padding: 52px 0; min-height: 55vh; }
.auxiliary-page h1 { font-size: 28px; margin-bottom: 24px; }
.auxiliary-page p + p { margin-top: 16px; }
.skip-link { position: absolute; top: -100px; left: 20px; padding: 10px 16px; background: var(--profile-bg); border: 1px solid var(--profile-accent); z-index: 1; }
.skip-link:focus { top: 10px; }

@media (prefers-color-scheme: dark) {
  :root {
    --profile-bg: #171c1b;
    --profile-text: #e3e9e6;
    --profile-muted: #a9b7b0;
    --profile-accent: #8fcdb7;
    --profile-accent-hover: #b7e8d7;
    --profile-line: #35433d;
  }
}

@media (max-width: 640px) {
  .profile-shell { width: calc(100% - 40px); }
  .site-header { gap: 12px; padding: 18px 0; }
  .site-brand { font-size: 15px; }
  .site-navigation { gap: 14px; font-size: 13px; }
  .site-navigation .language-link { padding-left: 14px; }
  .profile-intro { grid-template-columns: minmax(0, 1fr) 96px; gap: 20px; padding: 34px 0; }
  .profile-intro h1 { font-size: 28px; }
  .profile-intro h1 span { display: block; font-size: 18px; margin: 4px 0 0; }
  .profile-intro__text { display: contents; }
  .profile-intro h1, .profile-role, .profile-affiliation { grid-column: 1; }
  .profile-role { margin: 0; font-size: 16px; }
  .profile-affiliation { margin-top: -16px; }
  .profile-avatar { grid-column: 2; grid-row: 1 / 4; width: 96px; height: 96px; margin-top: 0; align-self: start; }
  .profile-bio, .profile-links { grid-column: 1 / -1; margin: 0; }
  .profile-section { padding-top: 24px; }
  .profile-section h2 { font-size: 20px; margin-bottom: 20px; }
  .experience-entry, .honors-list li { grid-template-columns: 1fr; gap: 4px; margin-bottom: 24px; }
  .experience-period, .honor-date { font-size: 13px; }
  .site-credit { width: 100%; margin-left: 0; }
}

@media (max-width: 380px) {
  .site-header { align-items: flex-start; flex-direction: column; gap: 8px; }
  .site-navigation { width: 100%; justify-content: space-between; }
  .profile-intro { grid-template-columns: minmax(0, 1fr) 80px; gap: 16px; }
  .profile-avatar { width: 80px; height: 80px; }
  .profile-intro h1 { font-size: 26px; }
  .profile-affiliation { margin-top: -12px; }
}

@media print {
  :root { color-scheme: light; --profile-bg: #fff; --profile-text: #111; --profile-muted: #444; --profile-accent: #222; --profile-line: #ccc; }
  @page { margin: 16mm; }
  body { font-size: 10pt; line-height: 1.5; }
  .profile-shell { width: 100%; max-width: none; }
  .site-header, .site-footer, .skip-link { display: none; }
  .profile-intro { grid-template-columns: minmax(0, 1fr) 100px; padding: 0 0 16px; gap: 24px; }
  .profile-intro h1 { font-size: 22pt; }
  .profile-intro h1 span { font-size: 13pt; }
  .profile-avatar { width: 100px; height: 100px; }
  .profile-role { font-size: 12pt; margin-top: 8px; }
  .profile-affiliation { font-size: 10pt; }
  .profile-bio { margin-top: 12px; }
  .profile-bio p + p { margin-top: 6px; }
  .profile-links { font-size: 10pt; margin-top: 10px; }
  .profile-section { padding-top: 12px; }
  .profile-section h2 { font-size: 13pt; margin-bottom: 10px; break-after: avoid; }
  .experience-entry, .honors-list li { grid-template-columns: 120px minmax(0, 1fr); gap: 16px; margin-bottom: 12px; break-inside: avoid; }
  .experience-body h3 { font-size: 11pt; }
  .experience-description { margin-top: 4px; }
  .experience-description, .experience-role, .experience-period, .honor-date, .honors-list li { font-size: 10pt; }
  a { color: inherit; }
}
