/* Personal homepage spacing, preserving the original jemdoc palette. */
* { box-sizing: border-box; }
body { color: #292929; font-size: 16px; }
#layout-content { width: 100%; max-width: 1064px; padding: 28px 32px 40px; }
div#toptitle { margin-bottom: 32px; padding-bottom: 14px; }
div#toptitle h1, #layout-content div#toptitle h1 { margin-top: 0; line-height: 1.35; }
.profile { display: grid; grid-template-columns: 220px minmax(0, 1fr) 179px; gap: 36px; align-items: center; margin-bottom: 38px; }
.portrait { display: block; width: 220px; max-width: 100%; height: auto; }
.profile-info { min-width: 0; }
.profile-name { margin-bottom: 22px; }
.name-zh { font-family: Kaiti, STKaiti, "KaiTi", serif; font-size: 38px; font-weight: 700; line-height: 1.3; letter-spacing: 3px; }
.name-en { margin-top: 6px; font-size: 25px; line-height: 1.4; }
p { line-height: 1.8; margin-bottom: 0; }
.affiliation { line-height: 1.85; }
.affiliation span { display: block; }
.location { color: #666; font-size: 15px; }
.supervisor { margin-top: 20px; line-height: 1.7; }
.profile-logos { display: flex; flex-direction: column; align-items: center; gap: 26px; }
.profile-logos a { display: block; border: none; }
.profile-logos img { display: block; max-width: 100%; object-fit: contain; }
h2 { margin: 32px 0 14px; padding: 0 0 9px; line-height: 1.4; }
.contact { display: grid; grid-template-columns: 76px minmax(0, 1fr); column-gap: 20px; row-gap: 16px; margin: 0; line-height: 1.8; }
.contact dt { margin: 0; font-weight: bold; }
.contact dd { margin: 0; overflow-wrap: anywhere; }
.address-zh { display: block; margin-top: 9px; font-size: 14px; color: #666; line-height: 1.9; }
div#footer { margin-top: 36px; padding-top: 12px; }
div#footer-text { float: none; text-align: right; }
@media (max-width: 900px) {
    .profile { grid-template-columns: 180px minmax(0, 1fr); gap: 28px; }
    .portrait { width: 180px; }
    .profile-logos { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; gap: 24px; }
    .profile-logos img { width: auto; height: 64px; }
}
@media (max-width: 560px) {
    #layout-content { padding: 22px 20px 32px; }
    h1 { font-size: 22px; }
    .profile { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .portrait { width: 160px; }
    .profile-logos { justify-content: flex-start; }
    .name-zh { font-size: 34px; }
    .name-en { font-size: 23px; }
    .contact { grid-template-columns: minmax(0, 1fr); row-gap: 5px; }
    .contact dd { margin-bottom: 12px; }
}
