:root { --max: 900px; --g: 24px; --fg: #0c0c0d; --muted:#6c727f; --bg:#fff; --line:#e8e8ef; }
* { box-sizing: border-box; }
html,body { margin:0; padding:0; font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif; color:var(--fg); background:var(--bg); }
a { color:#0a58ca; text-decoration: none; }
a:hover, a:focus { text-decoration: underline; }
.skip { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip:focus { position:static; width:auto; height:auto; padding:.5rem 1rem; background:#ffe08a; display:inline-block; }

.container { max-width: var(--max); margin-inline:auto; padding: 0 20px; }
.site-header { border-bottom:1px solid var(--line); background:#fafbff; }

.head {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 24px;
  align-items: start;
  padding: 48px 0 28px;
}

.info { min-width: 0; }
.name { margin:0 0 .25rem; font-size:clamp(28px, 4vw, 40px); line-height:1.1; }
.tagline { margin:.25rem 0 1rem; color:var(--muted); }

.affil { margin: .5rem 0 1.1rem; color: var(--muted); line-height: 1.45; }

.photo img {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 38%;
  border: 2px solid #e8e8ef;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.contact, .contact-bottom {
  display:flex; gap:16px; flex-wrap:wrap; padding:0; margin:0; list-style:none;
}
.contact-bottom { margin-top:.25rem; }

@media (max-width: 680px) {
  .head {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: 16px;
  }
  .photo img { width: 128px; height: 128px; }
}

main { padding: 28px 0 64px; }
h2 { margin: 40px 0 12px; font-size: clamp(20px, 3vw, 26px); border-bottom:1px solid var(--line); padding-bottom:6px; }
h3 { margin:.25rem 0 .25rem; font-size: clamp(16px, 2.5vw, 20px); }
.light { color: var(--muted); font-weight:400; }
.keylines { margin:.25rem 0 0 0; padding-left: 18px; }

.cards { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr; gap:12px; }
@media (min-width: 720px){ .cards{ grid-template-columns: 1fr 1fr; } }

.pubs { padding-left: 20px; }
.badge { background:#e9f2ff; color:#0747a6; border:1px solid #c7defc; border-radius:4px; padding:2px 6px; font-size: 12px; margin-left:6px; }

.role { border-left: 3px solid #d7d7e8; padding-left: 14px; margin-bottom: 18px; }
.role ul { margin-top: 8px; }

.note { color:var(--muted); font-size: 0.95rem; }

.site-footer { border-top:1px solid var(--line); background:#fafbff; }
.site-footer .container { padding: 16px 0; color:var(--muted); font-size:.95rem; }

@media print {
  a[href]:after { content: " (" attr(href) ")"; font-size: 90%; }
  .site-header, .site-footer, .skip { display:none !important; }
  h2 { border: 0; }
}
