:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #fff;
  color: #25313b;
  font: 16px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.site { width: min(100% - 40px, 820px); margin: 0 auto; }
.intro { display:grid; grid-template-columns:minmax(0, 1fr) 185px; grid-template-rows:1fr auto auto auto 1fr; column-gap:32px; padding:52px 0 28px; border-bottom:1px solid #d9e0e5; }
h1, h2, h3, p { margin-top: 0; }
h1 { grid-column:1; grid-row:2; margin-bottom:3px; color:#18242d; font-size:2.2rem; font-weight:700; letter-spacing:-.035em; line-height:1.2; }
.intro > p { grid-column:1; grid-row:3; margin-bottom:15px; color:#53616c; font-size:1rem; }
.contact { grid-column:1; grid-row:4; display:flex; flex-wrap:wrap; align-content:start; gap:6px 20px; font-size:.91rem; }
.intro__photo { grid-column:2; grid-row:1 / 6; display:block; width:185px; height:185px; object-fit:cover; object-position:45% center; border-radius:3px; }
a { color: #185d83; text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }
.content { padding-top: 29px; }
.content > p { margin-bottom: 14px; }
.content h2 {
  margin: 42px 0 14px;
  padding-bottom: 5px;
  border-bottom: 1px solid #d9e0e5;
  color: #18242d;
  font-size: 1.28rem;
  font-weight: 700;
  letter-spacing: -.018em;
  line-height: 1.35;
}
.content h2:first-of-type { margin-top: 36px; }
.publication { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; align-items: start; padding: 20px 0 23px; border-bottom: 1px solid #e5e9ec; }
.publication__text { min-width: 0; }
.publication__image { display: block; margin-top: 2px; }
.publication__image img { display: block; width: 100%; height: auto; border: 1px solid #e5e9ec; }
.publication__heading, .entry__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 18px; }
.publication__heading > span, .entry__heading > span { flex: 0 0 auto; color: #697680; font-size: .83rem; }
.publication__heading > h3 { order: -1; flex: 1; }
.publication h3, .entry h3 { margin: 0 0 5px; color: #18242d; font-size: 1rem; font-weight: 700; line-height: 1.45; }
.publication p, .entry p { margin-bottom: 7px; }
.publication__authors { color: #58656e; font-size: .86rem; line-height: 1.55; }
.publication__authors strong { color: #25313b; }
.publication__links { display: flex; gap: 18px; font-size: .9rem; }
.note { margin-top: 10px; color: #697680; font-size: .84rem; }
.entry { margin: 20px 0 24px; }
.entry--compact { margin: 17px 0; }
.entry--with-logo { display: grid; grid-template-columns: minmax(0, 1fr) 220px; column-gap:24px; row-gap:8px; align-items:center; margin:0; padding:17px 0 19px; border-bottom:1px solid #e5e9ec; }
.entry--with-logo .entry__heading { display:block; min-width:0; }
.entry--with-logo .entry__heading h3 { margin-bottom:3px; }
.entry--with-logo .entry__heading span { display:block; }
.entry--with-logo > p { grid-column:1 / -1; margin:0; }
.entry__logo { grid-column:2; grid-row:1; width:220px; height:62px; }
.entry__logo img { display:block; width:100%; height:100%; object-fit:contain; object-position:right center; }
.entry__logo--hnu img { filter:brightness(0) saturate(100%) invert(19%) sepia(59%) saturate(1334%) hue-rotate(330deg) brightness(94%) contrast(93%); }
.engineering__body { display:grid; grid-template-columns:minmax(0, 1fr) 280px; gap:24px; align-items:start; }
.engineering__body > p { margin:0; }
.engineering__figure { margin:0; }
.engineering__figure img { display:block; width:100%; height:auto; border:1px solid #e5e9ec; }
.engineering__figure figcaption { margin-top:5px; color:#697680; font-size:.78rem; line-height:1.4; }
.skills { margin-bottom: 40px; }
footer { margin: 52px 0 28px; padding-top: 15px; border-top: 1px solid #d9e0e5; color: #79858d; font-size: .82rem; }
@media (max-width: 760px) {
  .publication { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .publication__image { width: min(100%, 360px); }
  .engineering__body { grid-template-columns:1fr; gap:14px; }
  .engineering__figure { width:min(100%, 360px); }
}
@media (max-width: 640px) {
  body { font-size: 15px; }
  .site { width: min(100% - 32px, 820px); }
  .intro { grid-template-columns:minmax(0, 1fr) 112px; grid-template-rows:auto auto auto; column-gap:16px; padding-top:34px; }
  h1 { grid-row:1; font-size: 1.9rem; }
  .intro > p { grid-row:2; }
  .intro__photo { width:112px; height:112px; grid-row:1 / 3; }
  .contact { grid-column:1 / -1; grid-row:3; margin-top:12px; }
  .publication__heading, .entry__heading { display: block; }
  .publication__heading > span, .entry__heading > span { display: block; margin: 0 0 4px; }
  .publication h3, .entry h3 { margin-bottom: 7px; }
  .entry--with-logo { grid-template-columns:1fr; row-gap:7px; }
  .entry__logo { grid-column:1; grid-row:2; width:min(260px, 100%); height:58px; }
  .entry__logo img { object-position:left center; }
  .entry--with-logo > p { grid-column:1; grid-row:3; }
}
