:root { --text: #171717; --link: #0563b5; --border: #e4e4e4; }
* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--text); font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.6; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
.container { width: min(860px, calc(100% - 40px)); margin: 32px auto 24px; }
.profile { display: grid; grid-template-columns: 240px 1fr; gap: 20px; align-items: start; margin-bottom: 42px; }
.portrait { display: block; width: 240px; height: 300px; object-fit: cover; }
.profile-info { padding-top: 2px; }
h1 { margin: 0 0 10px; font-size: 34px; line-height: 1.25; font-weight: 700; letter-spacing: -.5px; }
.email { display: block; margin-bottom: 13px; font-weight: 700; }
.position { margin: 0 0 12px; line-height: 1.45; }
.social-links { display: flex; gap: 10px; margin-top: 12px; }
.social-links a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.social-links a:hover { background: #f7f7f7; text-decoration: none; }
.social-links svg { width: 21px; height: 21px; fill: currentColor; }
.social-links .github { color: #171717; }
.social-links .scholar { color: #4285f4; }
.social-links .linkedin { color: #0a66c2; }
.about { margin-bottom: 28px; }
p { margin: 0 0 8px; }
section { margin-top: 26px; }
h2 { margin: 0 0 14px; font-size: 24px; line-height: 1.3; }
.empty { color: #444; }
.publication { position: relative; margin: 0 0 18px; padding-left: 18px; }
.publication::before { position: absolute; top: 0; left: 0; content: "•"; }
.publication-line { margin: 0; line-height: 1.75; }
.publication-line a { font-weight: 700; }
.publication-line .coauthor-link { font-weight: 400; }
.abstract-toggle { margin: 0; padding: 0; border: 0; background: none; color: var(--link); font: inherit; font-weight: 700; cursor: pointer; }
.abstract-toggle:hover { text-decoration: underline; }
.abstract-toggle:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
.abstract-text { margin: 8px 0 4px 20px; color: #444; text-align: justify; }
.abstract-text p { margin: 0; }
footer { margin-top: 54px; font-size: 14px; color: #555; }
@media (max-width: 620px) {
  body { font-size: 17px; }
  .container { margin-top: 22px; }
  .profile { grid-template-columns: 140px 1fr; gap: 16px; margin-bottom: 32px; }
  .portrait { width: 140px; height: 180px; }
  h1 { font-size: 26px; }
  .email { overflow-wrap: anywhere; font-size: 15px; }
  .position { font-size: 15px; }
}
@media (max-width: 430px) {
  .profile { grid-template-columns: 1fr; }
  .portrait { width: 180px; height: 225px; }
}
