@charset "utf-8";
/* Layout adapted from luost26/academic-homepage, MIT License. */
:root { --ink: #26313b; --muted: #65717c; --blue: #225c8f; --line: #e7ebee; }
html { scroll-padding-top: 90px; }
body { background: #f5f6f8; color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; font-size: 15px; line-height: 1.65; padding-top: 99px; }
a { color: var(--blue); text-underline-offset: 3px; }
a:hover { color: #163f63; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
h1, h2, h3, p { margin-top: 0; }
h2 { font-size: 21px; font-weight: 600; letter-spacing: -.025em; margin-bottom: 19px; }
.container-lg { max-width: 1160px; }
.navbar { min-height: 64px; background: #fff; border-bottom: 1px solid var(--line); padding: 10px 0; }
.navbar-brand { font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
.site-navigation { display: flex; align-items: center; gap: 9px; }
.site-navigation .nav-link { color: #4d5964; font-size: 14px; padding: 8px 11px; }
.site-navigation .nav-link:hover { color: var(--blue); }
.navbar-toggler { font-size: 14px; padding: 7px 10px; }
.skip-link { position: fixed; z-index: 2000; left: 15px; top: -80px; background: #fff; padding: 9px 14px; }
.skip-link:focus { top: 10px; }
.homepage-grid { align-items: flex-start; }
.card { border: 1px solid var(--line); border-radius: 9px; box-shadow: 0 2px 5px rgba(29, 43, 55, .025); }
.card-body { padding: 27px 29px; }
.profile-column { position: sticky; top: 90px; }
.profile-card .card-body { padding: 27px 22px; }
.profile-card h1 { font-size: 27px; font-weight: 650; letter-spacing: -.04em; line-height: 1.2; margin: 1px 0 4px; }
.profile-alias { color: var(--muted); margin-bottom: 20px; }
.profile-position { font-size: 14px; line-height: 1.7; }
.profile-location { color: var(--muted); font-size: 13px; margin: 11px 0 23px; }
.profile-portrait { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: 25% 50%; border-radius: 5px; margin-bottom: 22px; }
.profile-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; font-size: 13px; }
.profile-links a { overflow-wrap: anywhere; }
.profile-interests { border-top: 1px solid var(--line); padding-top: 22px; margin-top: 24px; }
.profile-interests h2 { font-size: 13px; letter-spacing: 0; margin: 0 0 12px; }
.profile-interests ul { list-style: none; color: var(--muted); font-size: 13px; line-height: 1.8; margin: 0; padding: 0; }
.content-card { margin-bottom: 23px; }
.profile-bio p { margin-bottom: 13px; }
.profile-bio p:last-child { margin-bottom: 0; }
.section-heading { padding: 23px 29px 18px; border-bottom: 1px solid var(--line); }
.section-heading h2 { margin-bottom: 2px; }
.section-heading p { color: var(--muted); font-size: 13px; margin: 0; }
.publication-item { display: grid; grid-template-columns: 195px minmax(0, 1fr); gap: 23px; padding: 25px 29px; }
.publication-item + .publication-item { border-top: 1px solid var(--line); }
.publication-cover { display: block; align-self: start; margin-top: 3px; overflow: hidden; border: 1px solid var(--line); background: #fff; border-radius: 4px; }
.publication-cover img { display: block; width: 100%; height: auto; }
.publication-item.publication-item--wide { grid-template-columns: minmax(0, 1fr); gap: 17px; }
.publication-item--wide .publication-cover { width: 100%; max-width: none; margin-top: 0; }
.publication-body h3 { font-size: 16px; font-weight: 600; line-height: 1.45; margin-bottom: 7px; }
.publication-body h3 a { color: var(--ink); }
.publication-authors { font-size: 13px; margin-bottom: 5px; }
.publication-venue { font-size: 12px; color: #55616c; line-height: 1.7; margin-bottom: 9px; }
.review-status { display: inline-block; border: 1px solid #d8e1e9; border-radius: 3px; color: #4a6278; font-size: 11px; padding: 0 5px; margin-left: 3px; white-space: nowrap; }
.publication-abstract { color: #596570; font-size: 13px; line-height: 1.65; margin-bottom: 10px; }
.publication-links { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; }
.honors-item + .honors-item { margin-top: 17px; }
.honors-heading { display: flex; gap: 8px 16px; align-items: baseline; justify-content: space-between; }
.honors-heading h3 { font-size: 15px; font-weight: 600; margin: 0; }
.honors-heading span { font-size: 12px; color: var(--muted); white-space: nowrap; }
.honors-item p { color: var(--muted); font-size: 13px; margin: 2px 0 0; }
.education-item + .education-item { margin-top: 21px; }
.education-heading { display: flex; gap: 8px 16px; align-items: baseline; justify-content: space-between; }
.education-heading h3 { font-size: 15px; font-weight: 600; margin: 0; }
.education-heading span { font-size: 12px; color: var(--muted); white-space: nowrap; }
.education-item p { font-size: 13px; margin: 2px 0 0; }
.education-detail { color: var(--muted); }
.footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; border-top: 1px solid var(--line); margin-top: 23px; padding-top: 23px; padding-bottom: 29px; font-size: 12px; color: var(--muted); }
@media (max-width: 1199px) { .container-lg { max-width: 1040px; } .publication-item { grid-template-columns: 170px minmax(0, 1fr); gap: 20px; } }
@media (max-width: 991px) { .publication-item { grid-template-columns: minmax(0, 1fr); gap: 17px; } .publication-cover { max-width: 280px; } .honors-heading, .education-heading { flex-direction: column; gap: 1px; } }
@media (max-width: 767px) { body { padding-top: 84px; } .profile-column { position: static; margin-bottom: 21px; } .profile-card .card-body { padding: 23px; } .profile-interests { display: none; } .profile-links { flex-direction: row; flex-wrap: wrap; gap: 8px 19px; } .profile-links a:first-child { flex-basis: 100%; } .profile-location { margin-bottom: 15px; } .profile-alias { margin-bottom: 14px; } .card-body, .publication-item { padding: 23px; } .section-heading { padding: 20px 23px 17px; } .publication-cover { max-width: 100%; width: 100%; } .content-card { margin-bottom: 20px; } }
@media (max-width: 767px) { .profile-portrait { max-width: 160px; margin-bottom: 20px; } }
@media (max-width: 575px) { .navbar { padding: 10px 15px; } .navbar > .container-lg { padding: 0; } .site-navigation { width: 100%; flex-wrap: wrap; gap: 0; } .site-navigation .nav-link { padding: 8px 14px 8px 0; } .enhanced .site-navigation { display: none; } .enhanced .navbar-toggler[aria-expanded="true"] + .site-navigation { display: flex; } body:has(.navbar:not(.enhanced)) { padding-top: 130px; } }
@media print { body { background: #fff; padding: 0; } .navbar, .skip-link, .footer { display: none; } .profile-column { position: static; } .card { box-shadow: none; } .publication-item { break-inside: avoid; } }
