/* Shared academic site styles */
:root { --ink:#171717; --body:#334155; --brand:#003B71; --muted:#536070; --accent:#365477; --hover:#172B4D; --highlight:#365477; --line:#DDE4ED; --wash:#F3F6FA; --white:#FFFFFF; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:17px; line-height:1.7; color:var(--body); background:var(--white); }
a { color:var(--accent); text-underline-offset:3px; }
a:hover { color:var(--hover); }
:focus-visible { outline:3px solid #5878C6; outline-offset:4px; }
.container { max-width:1040px; }
.navbar { border-bottom:1px solid var(--line); background:white!important; }
.navbar-brand { font-weight:650; font-size:1.05rem; }
.nav-link { font-size:.95rem; }
.nav-link.active { font-weight:700; }
.hero { background:var(--wash); padding:3rem 0; border-bottom:1px solid var(--line); }
.hero-grid { display:grid; grid-template-columns:180px 1fr; gap:2.5rem; align-items:center; }
.headshot { width:180px; height:180px; object-fit:cover; border-radius:50%; }
h1,h2,h3 { color:var(--ink); line-height:1.25; }
h1 { font-size:clamp(2rem,4vw,2.8rem); font-weight:700; letter-spacing:-.035em; }
h2 { font-size:1.65rem; font-weight:650; margin:0 0 1.1rem; letter-spacing:-.02em; }
h3 { font-size:1.15rem; font-weight:650; }
.eyebrow { font-size:.75rem; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.09em; margin-bottom:.8rem; }
.affiliation { color:var(--muted); margin:.7rem 0; }
.hero-summary { font-size:1.15rem; max-width:58ch; margin-bottom:1.4rem; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1rem; }
.btn { border-radius:5px; padding:.6rem 1rem; font-weight:600; }
.btn-primary { background:var(--brand); border-color:var(--brand); color:var(--white); }
.btn-primary:hover,.btn-primary:focus { background:var(--accent); border-color:var(--accent); color:var(--white); }
.btn-outline-primary { color:var(--accent); border-color:var(--accent); }
.btn-outline-primary:hover { background:var(--accent); border-color:var(--accent); }
.section { padding:2.25rem 0; border-bottom:1px solid var(--line); }
.section > p,.section > ul { max-width:76ch; }
.section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.research-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin:1.5rem 0; }
.research-card { border-top:3px solid var(--accent); padding:1.2rem 0; }
.research-card p { font-size:1rem; }
.research-card a { font-size:.9rem; }
.theme-number { display:block; color:var(--muted); font-size:.8rem; margin-bottom:.7rem; }
.featured-project { background:var(--wash); border-left:4px solid var(--accent); padding:1.4rem 1.6rem; margin:1rem 0; }
.featured-project p:last-child { margin-bottom:0; }
.project-meta,.post-meta { color:var(--muted); font-size:.9rem; }
.project-details { margin-top:1.2rem; }
summary { cursor:pointer; color:var(--accent); font-weight:600; }
.detail-list { margin-top:1rem; }
.detail-list li { margin-bottom:1rem; }
.publication { padding:1.1rem 0; border-bottom:1px solid var(--line); max-width:76ch; }
.publication:last-child { border:0; padding-bottom:0; }
.publication-venue { font-size:.78rem; font-weight:700; color:var(--accent); margin-bottom:.4rem; }
.publication-authors { font-size:.9rem; color:var(--muted); margin:.5rem 0 0; }
.contact-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:2rem; }
.profile-links { display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; align-content:start; }
.contact-grid p { margin-bottom:.4rem; }
.contact-grid a { overflow-wrap:anywhere; }
.reading-page { max-width:850px; }
.reading-page .section { padding-top:2.5rem; }
.blog-post { max-width:76ch; }
.blog-post h2 { margin-top:2rem; }
.post-list { display:grid; gap:1.5rem; margin-top:1.5rem; }
.post-list-item { border-bottom:1px solid var(--line); padding-bottom:1.5rem; }
footer { color:var(--muted); font-size:.85rem; }
.skip-link { position:absolute; left:1rem; top:-5rem; z-index:1100; }
.skip-link:focus { top:1rem; }
@media (max-width:767px) {
 .container { padding-left:1.25rem; padding-right:1.25rem; }
 .hero { padding:1.75rem 0; }
 .hero-grid { grid-template-columns:1fr; gap:1.1rem; }
 .headshot { width:112px; height:112px; }
 .hero-summary { font-size:1.05rem; }
 .research-grid,.contact-grid { grid-template-columns:1fr; gap:1rem; }
 .research-card { padding:.9rem 0; }
 .research-card p { margin-bottom:.6rem; }
 .section { padding:1.7rem 0; }
 .featured-project { padding:1.1rem; }
 .hero-actions a { min-height:44px; display:inline-flex; align-items:center; }
}
.contact-grid > div:first-child > a { display:block; }
.hero-actions .small { margin-left:.3em; }
.archive-nav { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.5rem; }
.archive-nav a { border:1px solid var(--line); border-radius:5px; padding:.45rem .8rem; font-size:.9rem; }
.paper-downloads { display:flex; flex-wrap:wrap; gap:.6rem 1.2rem; margin-top:.75rem; font-size:.9rem; font-weight:600; }
.paper-downloads a { min-height:44px; display:inline-flex; align-items:center; }
.archive-note { color:var(--muted); font-size:.85rem; margin-top:.6rem; margin-bottom:0; }
.archive-top { font-size:.85rem; margin-top:1.5rem; }
.publication h3 a { color:var(--ink); text-decoration:none; }
.publication h3 a:hover { color:var(--hover); text-decoration:underline; }
:target { scroll-margin-top:1.5rem; }
.overview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:1.5rem; }
.overview-card { border-top:2px solid var(--line); padding-top:1rem; }
.overview-card h3 a { text-decoration:none; }
.overview-card h3 a:hover { text-decoration:underline; }
.overview-card p { font-size:1rem; margin-bottom:0; }
.navbar-nav .nav-link { font-size:.9rem; }
@media (max-width:767px) { .overview-grid { grid-template-columns:1fr; gap:1rem; } }

.research-topic-nav { margin:1.25rem 0 1.5rem; }
.publication-filters { display:grid; grid-template-columns:2fr 1fr 1fr auto; gap:.8rem; align-items:end; margin:1.5rem 0; }
.publication-filters label { display:block; font-size:.85rem; font-weight:600; margin-bottom:.3rem; }
.publication-filters input,.publication-filters select { width:100%; min-height:44px; border:1px solid #9DAECC; border-radius:5px; padding:.5rem; background:white; color:var(--body); }
[hidden] { display:none!important; }
.paper-summary { font-size:1rem; margin-top:.7rem; }
.related-papers,.blog-background { margin-top:1.2rem; }
.related-papers ul { margin-top:1rem; }
.related-papers li { margin-bottom:.7rem; }
.blog-background p:first-of-type { margin-top:1rem; }
.appointments li { margin-bottom:.6rem; }
@media (max-width:767px) { .publication-filters { grid-template-columns:1fr 1fr; } .publication-filters > div:first-child { grid-column:1 / -1; } }

/* Publication search panel */
.publication-filters {
  padding:1.25rem; margin:1.75rem 0 .8rem;
  background:var(--wash); border:1px solid var(--line); border-radius:14px;
  grid-template-columns:minmax(0,2.4fr) minmax(105px,1fr) minmax(125px,1.1fr) auto;
  gap:1rem; box-shadow:0 3px 14px rgba(35,59,102,.05);
}
.publication-filters label { color:var(--muted); font-size:.78rem; letter-spacing:.025em; margin-bottom:.5rem; }
.publication-filters input,.publication-filters select {
  min-height:48px; border:1px solid #BCC9E1; border-radius:9px;
  font-size:.95rem; padding:.65rem .8rem; transition:border-color .15s,box-shadow .15s;
}
.publication-filters input:focus,.publication-filters select:focus {
  border-color:var(--accent); box-shadow:0 0 0 3px rgba(88,120,198,.16);
}
.search-input-wrap { position:relative; }
.search-input-wrap svg { position:absolute; left:.85rem; top:50%; transform:translateY(-50%); width:20px; height:20px; color:var(--accent); pointer-events:none; }
.publication-filters .search-input-wrap input { padding-left:2.7rem; }
.publication-filters input::placeholder { color:#53627D; opacity:1; }
.filter-reset { color:var(--accent); border:1px solid transparent; font-size:.85rem; min-height:48px; padding:.6rem .5rem; white-space:nowrap; }
.filter-reset:hover { background:#E8EEF9; color:var(--brand); }
#filter-status { margin:.65rem 0 1rem; font-size:.85rem; }
@media (max-width:991px) {
 .publication-filters { grid-template-columns:1fr 1fr auto; }
 .publication-filters .search-field { grid-column:1 / -1; }
}
@media (max-width:767px) {
 .publication-filters { padding:1rem; gap:.85rem; grid-template-columns:1fr 1fr; }
 .publication-filters .filter-reset { grid-column:1 / -1; justify-self:end; min-height:44px; }
}
@media (prefers-reduced-motion:reduce) { .publication-filters input,.publication-filters select { transition:none; } }

/* Distinguish the three research directions with restrained color washes. */
.research-direction { padding:2rem!important; margin:1.5rem 0; border:1px solid var(--line); border-left:4px solid var(--direction-accent); border-radius:12px; }
.research-direction-1 { background:#F3F6FA; --direction-accent:#003B71; }
.research-direction-2 { background:#F3F6FA; --direction-accent:#003B71; }
.research-direction-3 { background:#F3F6FA; --direction-accent:#003B71; }
.research-direction .eyebrow,.research-direction .publication-venue { color:var(--direction-accent); }
@media (max-width:767px) { .research-direction { padding:1.25rem!important; } }

/* Clean Tech Academic — Black Edition. */
.navbar-brand,.navbar-light .navbar-nav .nav-link.active { color:var(--brand); }
.navbar-light .navbar-nav .nav-link { color:var(--brand); }
.navbar-light .navbar-nav .nav-link:hover { color:var(--hover); }
.navbar-light .navbar-nav .nav-link.active { box-shadow:inset 0 -2px var(--highlight); }
.hero { border-top:3px solid var(--highlight); }
.archive-nav a:hover { background:#E8EEF9; border-color:var(--highlight); }
.archive-nav a:focus-visible { outline-color:var(--highlight); }
.research-direction { border-left-color:var(--highlight); }
footer.bg-light { background:var(--wash)!important; }
.blog-post { margin-inline:auto; }
.blog-figure { margin:2rem 0; }
.blog-figure img { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:10px; }
.blog-figure figcaption { color:var(--muted); font-size:.85rem; line-height:1.5; margin-top:.7rem; }

.blog-filters { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto; }
.blog-filters .search-field { grid-column:1 / -1; }
.post-tags { display:flex; flex-wrap:wrap; gap:.5rem; padding:0; margin:.75rem 0 1rem; list-style:none; }
.post-tags a { display:inline-block; padding:.3rem .7rem; border:1px solid var(--line); background:var(--wash); border-radius:999px; font-size:.8rem; text-decoration:none; }
.post-tags a:hover { background:#E8EEF9; color:var(--hover); border-color:var(--accent); }
@media (max-width:767px) { .blog-filters { grid-template-columns:1fr 1fr; } .blog-filters .filter-reset { grid-column:auto; align-self:end; } }
