/* Academic homepage. Shared styling for the homepage and CV. */
:root { color-scheme: light; --text: #494e52; --muted: #656d73; --link: #287f96; --line: #eeeeee; --page-width: 1280px; }
* { box-sizing: border-box; }
html { font-size: 18px; scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; background: #fff; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; line-height: 1.55; overflow-wrap: break-word; }
a { color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: #17576a; }
a:focus-visible, button:focus-visible { outline: 3px solid #287f96; outline-offset: 5px; }
.skip-link { position: absolute; top: -100px; left: 1rem; z-index: 10; padding: .6rem 1rem; background: white; }
.skip-link:focus { top: .5rem; }
.masthead { border-bottom: 1px solid #f2f3f3; }
.navigation { display: flex; gap: 4rem; align-items: center; min-height: 80px; max-width: var(--page-width); margin: auto; padding: 1rem; }
.navigation a { color: #6e7478; text-decoration: none; }
.navigation a:hover { color: var(--text); }
.navigation .site-name { font-weight: 700; }
.layout { display: grid; grid-template-columns: 220px minmax(0, 800px); column-gap: 36px; max-width: var(--page-width); margin: 0 auto; padding: 36px 18px 64px; min-height: calc(100vh - 235px); }
.profile { font-size: .78rem; align-self: start; }
.avatar { display: block; width: 168px; height: auto; border: 1px solid #f0f0f0; padding: 5px; border-radius: 0; object-fit: contain; margin-bottom: 12px; }
.avatar-placeholder { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; background: #edf1f3; background-clip: content-box; font-size: 2.7rem; font-weight: 500; letter-spacing: -.06em; color: #8a9ca7; user-select: none; }
.profile h2 { font-size: 1rem; margin: 0 0 7px; line-height: 1.3; }
.bio { margin: 0 0 20px; }
.contact-list { list-style: none; padding: 0; margin: 0; }
.contact-list li { display: flex; align-items: center; gap: 7px; margin-bottom: 9px; }
.contact-list svg { width: 14px; height: 14px; flex-shrink: 0; fill: currentColor; }
.contact-list a { color: var(--text); text-decoration: none; }
.contact-list a:hover { text-decoration: underline; }
.page-content { min-width: 0; }
h1 { font-size: 1.6rem; letter-spacing: -.025em; line-height: 1.2; margin: 0 0 12px; }
p { margin: 0 0 1.3rem; }
.page-content section { margin-top: 2.5rem; }
.page-content section h2 { font-size: 1.25rem; line-height: 1.35; margin: 0 0 1rem; padding-bottom: .45rem; border-bottom: 1px solid var(--line); }
.page-content ul { padding-left: 2.2rem; margin-top: 0; }
.news-list li { padding-left: .05rem; margin-bottom: .9rem; }
.section-note { font-size: .9rem; margin-bottom: 1rem; }
.publication-list li { padding-left: .05rem; margin-bottom: 1.5rem; }
.resource-placeholder { color: var(--muted); font-size: .9rem; }
.footer { background: #f2f3f3; border-top: 1px solid #e5e7e8; color: #656d73; font-size: .72rem; }
.footer-inner { max-width: var(--page-width); margin: auto; padding: 25px 18px 30px; }
.footer p { margin: 0 0 8px; }
.footer a { color: inherit; }
.footer-follow { font-size: .7rem; font-weight: 700; letter-spacing: .02em; }
.footer-follow a { margin-left: 9px; text-decoration: none; }
.cv-note { color: var(--muted); font-size: .9rem; }
.print-button { font: inherit; font-size: .85rem; color: var(--text); background: #f2f3f3; border: 1px solid #d7dce0; border-radius: 3px; padding: .45rem .8rem; cursor: pointer; }
.print-button:hover { background: #e5eaed; }
@media (max-width: 900px) {
  .layout { grid-template-columns: 180px minmax(0, 1fr); column-gap: 28px; }
  .avatar { width: 145px; height: auto; }
}
@media (max-width: 680px) {
  html { font-size: 16px; }
  .navigation { min-height: 65px; gap: 2.5rem; padding: 1rem 20px; }
  .layout { display: block; padding: 25px 20px 45px; }
  .profile { display: flex; align-items: center; gap: 20px; margin-bottom: 32px; font-size: .875rem; }
  .avatar { flex-shrink: 0; width: 96px; height: auto; margin: 0; }
  .avatar-placeholder { font-size: 2rem; }
  .profile-body { min-width: 0; }
  .bio { margin-bottom: 12px; }
  .contact-list li { margin-bottom: 5px; }
  h1 { font-size: 1.65rem; }
  .page-content section { margin-top: 2rem; }
  .page-content ul { padding-left: 1.4rem; }
  .footer-inner { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  .masthead, .profile, .footer, .print-button, .skip-link { display: none; }
  .layout { display: block; max-width: none; padding: 0; }
  html { font-size: 11pt; }
  a { color: inherit; }
  .publication-list li { break-inside: avoid; }
}
