/* Academic portfolio: typography, hierarchy and responsive reading layout. */
:root { --ink:#222; --heading:#132333; --link:#214f7c; --rule:#e4e8ec; --muted:#4c5965; }
html { font-size:18px; }
body, button, input, select, textarea { font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--ink); }
body { line-height:1.6; margin:0; padding:0; background:#fff; }
h1,h2,h3,h4,h5,h6,.sidebar h3,.sidebar p,.sidebar li,.masthead__inner-wrap { font-family:inherit; }
a { color:var(--link); }
a:hover { color:#123756; }
a:focus-visible, summary:focus-visible { outline:3px solid #4d83b0; outline-offset:4px; border-radius:2px; }
sup,sub { font-size:.7em; }
.masthead { animation:none; background:rgba(255,255,255,.98); border-bottom:1px solid var(--rule); }
.masthead__inner-wrap { max-width:1240px; padding:0 28px; }
.academic-nav { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; }
.academic-nav .site-brand { color:var(--heading); font-size:18px; font-weight:650; text-decoration:none; white-space:nowrap; }
.academic-nav ul { display:flex; flex-wrap:wrap; gap:4px 18px; list-style:none; margin:0; padding:0; }
.academic-nav li { margin:0; padding:0; font-size:16px; }
.academic-nav li a { display:block; padding:12px 0; color:var(--ink); text-decoration:none; white-space:nowrap; }
.academic-nav a:hover { color:var(--link); text-decoration:underline; text-underline-offset:5px; }
#main { display:grid; grid-template-columns:190px minmax(0,1fr); gap:48px; max-width:1240px; margin:42px auto 0; padding:0 28px; animation:none; }
#main::before,#main::after { display:none; }
#main > .sidebar { float:none; width:auto; padding:0; margin:0; top:108px; align-self:start; }
#main > .page { float:none; width:auto; margin:0; padding:0; min-width:0; }
.page__inner-wrap,.page__content { float:none; width:100%; }
.sidebar .profile_box { display:block; }
.sidebar .author__avatar { display:block; width:152px; height:152px; max-width:100%; margin:0 auto; padding:0; border:0; }
.sidebar img.author__avatar { object-fit:cover; border-radius:50%; }
.sidebar .author__content { display:block; width:100%; padding:0; }
.sidebar .author__name { font-size:21px; line-height:1.4; margin:18px 0 16px!important; color:var(--heading); }
.sidebar .author__urls-wrapper { display:block; padding:0; }
.sidebar .author__urls { display:block!important; position:static; padding:0; margin:0; border:0; background:transparent; box-shadow:none; z-index:auto; }
.sidebar .author__urls::before,.sidebar .author__urls::after { display:none; }
.sidebar .author__urls li { font-size:15px; margin:0 0 9px; padding:0; }
.sidebar .author__urls a { text-decoration:none; }
.sidebar .author__urls a:hover { text-decoration:underline; }
.sidebar .author__urls_sm { display:none; }
.page__content #about-me { margin-top:0; }
.page__content #about-me::before,.page__content h1::before,.page__content .anchor::before { display:none; }
.page__content h1,.page__content h2,.page__content h3 { color:var(--heading); letter-spacing:-.015em; }
.page__content h1 { font-size:32px; line-height:1.2; font-weight:650; margin:0 0 10px; padding:0; border:0; }
.page__content h2 { font-size:26px; line-height:1.3; font-weight:650; margin:0 0 26px; padding:0 0 12px; border-bottom:1px solid var(--rule); }
.page__content h3 { font-size:21px; line-height:1.4; font-weight:650; margin:0 0 10px; }
.page__content p { margin:0 0 18px; }
.page__content p,.page__content li { font-size:18px; }
.page__content ul,.page__content ol { margin:0; padding-left:22px; }
.page__content li { margin-bottom:10px; line-height:1.6; }
.page__content strong { font-weight:650; }
.page__content a { text-underline-offset:3px; text-decoration-thickness:1px; }
.intro { max-width:76ch; margin:0; }
.intro .eyebrow { font-size:14px; font-weight:600; letter-spacing:.035em; color:var(--muted); margin:0 0 10px; }
.intro .intro-role { font-size:19px; color:var(--muted); margin-bottom:22px; }
.intro .phd-notice { border-left:3px solid #688ba8; padding:10px 0 10px 16px; margin:22px 0; font-size:19px; font-weight:600; }
.home-section { margin-top:56px; }
.research-project { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px 30px; align-items:start; padding:30px 0; border-bottom:1px solid var(--rule); }
.research-project:first-of-type { padding-top:0; }
.research-project:last-child { border-bottom:0; padding-bottom:0; }
.project-copy { grid-column:2; grid-row:1; min-width:0; }
.project-figures { grid-column:1; grid-row:1; display:grid; gap:22px; min-width:0; }
.page__content .project-meta { font-size:14px; color:var(--muted); line-height:1.6; margin:0 0 16px; }
.project-summary { margin-bottom:16px!important; }
.project-copy li { margin-bottom:10px; }
.project-figure { display:block; margin:0; min-width:0; }
.project-figure .figure-image { display:block; text-decoration:none; }
.project-figure img { display:block; width:100%; max-width:100%; height:auto; margin:0; box-shadow:none; }
.project-figure a:hover img { box-shadow:none; }
.project-figure a:focus-visible { outline-offset:4px; }
.project-figure figcaption { color:#000; font-family:inherit; font-size:13px; line-height:1.5; text-align:left; margin:8px 0 0; }
.project-wide { grid-column:1/-1; margin-top:0; }
.crop-fabrication { aspect-ratio:1341/750; overflow:hidden; }
.crop-results { aspect-ratio:2086/455; overflow:hidden; }
.publication-list { padding-left:23px!important; }
.publication-list li { margin-bottom:22px; }
.course-project { margin:0 0 28px; padding:0 0 26px; border-bottom:1px solid var(--rule); }
.course-project:last-of-type { border-bottom:0; padding-bottom:0; }
.skills-note { background:#f5f7f9; border-radius:5px; padding:20px 22px; }
.skills-note h3 { font-size:18px; }
.skills-note p { font-size:16px; margin-bottom:0; }
.compact-section { max-width:76ch; }
.education-list { list-style:none; padding:0!important; }
.education-list li { margin-bottom:18px; }
.reading-width { max-width:76ch; }
.personal-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 20px; margin-top:24px; }
.personal-gallery .figure-image { background:#f5f7f9; }
.personal-gallery img { aspect-ratio:4/3; object-fit:contain; }
.home-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; margin:24px 0 32px; }
.home-gallery--orchestra,.home-gallery--travel { grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-gallery img { height:260px; object-fit:cover; }
.home-gallery--sustech figure:first-child img { object-fit:contain; }
.home-gallery--travel img { height:220px; }
.academic-footer { border-top:1px solid var(--rule); margin-top:48px; padding:22px 0 60px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:14px; color:var(--muted); }
.mfp-title,.mfp-counter { font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; }
[id] { scroll-margin-top:100px; }
@media (max-width:1000px) {
  #main { grid-template-columns:160px minmax(0,1fr); gap:30px; padding:0 22px; }
  .research-project { grid-template-columns:1fr; }
  .project-copy { grid-column:1; grid-row:1; }
  .project-figures { grid-column:1; grid-row:2; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .project-figures > :only-child { grid-column:1/-1; max-width:640px; }
  .project-wide { grid-row:3; }
  .academic-nav ul { gap:4px 18px; }
  [id] { scroll-margin-top:132px; }
}
@media (max-width:767px) {
  .masthead__inner-wrap { padding:0 18px; }
  .academic-nav { align-items:flex-start; flex-direction:column; gap:0; padding:10px 0 6px; }
  .academic-nav .site-brand { font-size:16px; }
  .academic-nav ul { gap:0 14px; }
  .academic-nav li { font-size:14px; }
  .academic-nav li a { padding:7px 0; }
  #main { display:block; padding:0 20px; margin-top:26px; }
  #main > .sidebar { display:none; }
  .page__content h1 { font-size:30px; }
  .page__content h2 { font-size:25px; margin-bottom:24px; }
  .page__content h3 { font-size:21px; }
  .intro .intro-role { font-size:17px; }
  .intro .phd-notice { font-size:18px; padding-left:13px; }
  .home-section { margin-top:42px; }
  .research-project { padding:26px 0; gap:22px; }
  .project-figures { grid-template-columns:1fr; }
  .project-figures > :only-child { max-width:none; }
  .project-figure figcaption { font-size:13px; }
  .personal-gallery { grid-template-columns:1fr; }
  .home-gallery { grid-template-columns:1fr; gap:22px; }
  .home-gallery img { height:auto; max-height:480px; object-fit:contain; }
  .academic-footer { margin-top:36px; padding-bottom:44px; }
  [id] { scroll-margin-top:176px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
