:root {
  --academic-blue: #0066cc;
  --academic-blue-dark: #224b8d;
  --text: #222222;
  --line: #aaaaaa;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; padding: 0 16px 20px; background: #fff; color: var(--text); font-family: Georgia, "Times New Roman", serif; font-size: 16px; line-height: 1.35; }
a { color: var(--academic-blue-dark); text-decoration: none; }
a:hover { border-bottom: 1px dotted #777; }
p { margin: 0 0 .8em; padding: 0; }
.page-shell { width: min(920px, 100%); margin: 28px auto 0; }
.layout-content { min-width: 0; padding: 0 24px 60px; }
.top-title { margin-bottom: 1.5em; padding-bottom: .2em; border-bottom: 3px double #808080; }
.top-title h1 { margin: .5em 0 0; padding: 0 0 .12em; color: var(--academic-blue); font-size: 1.72em; line-height: 1.1; }
.section-title { margin-top: 2.7em; }
h2, h3 { margin: .7em 0 .35em; padding: .8em 0 .2em; border-bottom: 1px solid var(--line); color: var(--academic-blue); line-height: 1.05; }
h2 { font-size: 1.27em; }
.profile { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; align-items: start; margin-bottom: 10px; }
.profile-photo img { width: 210px; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 38%; }
.profile-details { padding-top: 2px; }
.profile-details p { margin-bottom: .62em; }
.profile-name { font-size: 1.2em; font-weight: 700; }
.profile-summary { max-width: 650px; margin-top: 1.05em; line-height: 1.48; }
ul, ol { margin: .2em 0 .9em; padding-top: 0; }
ul { padding-left: 1.7em; list-style-type: square; }
ol { padding-left: 2.05em; }
li p { margin-bottom: .42em; }
.biography-list li, .teaching-list li { margin-bottom: .24em; }
.publication-list li { margin-bottom: .82em; padding-left: .12em; }
.publication-list p { line-height: 1.38; }
.more-publications { margin-top: 1.5em; }
footer { display: flex; justify-content: space-between; gap: 24px; margin-top: 4em; padding-top: .55em; border-top: 1px solid #c0c0c0; color: #999; font-size: .82em; }
footer a { color: #6f91a3; }
@media (max-width: 760px) {
  body { padding: 0; font-size: 15px; }
  .page-shell { margin-top: 0; }
  .layout-content { padding: 18px 20px 46px; }
  .profile { grid-template-columns: 160px minmax(0, 1fr); gap: 20px; }
  .profile-photo img { width: 160px; }
}
@media (max-width: 520px) {
  .profile { grid-template-columns: 1fr; }
  .profile-photo img { width: 190px; }
  footer { display: block; }
}
@media print {
  .page-shell { width: 100%; }
  .layout-content { padding: 0; }
}
