:root { --accent:#1e51db; --soft:#f4f4fb; }
html { scroll-behavior:smooth; }
body { overflow-x:hidden; }
body,h1,h2,h3,h4 { -webkit-font-smoothing:antialiased; }
.skip-link { position:fixed; left:1rem; top:-5rem; padding:.65rem 1rem; background:#fff; color:#1e51db; z-index:3000; box-shadow:0 2px 15px #17255025; border-radius:.35rem; }
.skip-link:focus { top:.5rem; }
:focus-visible { outline:3px solid #5f88fa; outline-offset:4px; }
#news,#team,#publication,#main-content { scroll-margin-top:95px; }
.banner-container { min-height:350px; }
.banner-container h1 { font-size:clamp(2.2rem,4.7vw,4.25rem); letter-spacing:-.035em; }
.banner-container h3 { max-width:none; margin-inline:auto; padding-inline:0; line-height:1.45; }
.profile-container { row-gap:1.8rem; }
.profile-card { gap:.35rem; }
.profile-card a { text-decoration:none; }
.parent-img { box-shadow:0 3px 12px #22335812; border:3px solid #fff; }
.filter-panel { display:flex!important; flex-wrap:wrap; gap:.7rem; }
.filter-panel button { border-radius:6px; border:1px solid #d6dff7; padding:9px 14px; background:#f7f8fe; color:#3c4d77; font:inherit; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.filter-panel button:hover { background:#e8edff; border-color:#5f88fa; }
.filter-panel button.active { background:#1e51db; border-color:#1e51db; color:#fff; }
.publication[hidden],.year[hidden] { display:none!important; }
.publication-content h3 { line-height:1.4; }
.publication-content .authors,.publication-content .venue { line-height:1.5; }
.extra-links { display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin-top:.45rem; }
.extra-links a { margin-right:0; white-space:nowrap; }
.publication .thumbnail img { box-shadow:0 2px 10px #28395610; }
#btn-back-to-top { background:#1e51db; color:#fff; width:44px; height:44px; border-radius:50%; box-shadow:0 3px 14px #1e51db30; z-index:1000; }
.news-item .time-span { white-space:nowrap; color:#6e6e6e; font-size:.88rem; padding-left:1.25rem; }
footer { padding-block:2.5rem; }
@media(max-width:700px) {
  .banner-container { height:auto; min-height:320px; }
  .banner-container>div { top:0; transform:none; padding:65px 6vw; }
  .wrapper { padding:2.5rem 6vw; }
  .profile-container { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem .55rem; }
  .profile-card { width:auto; min-width:0; }
  .profile-card .parent-img,.profile-image { width:22vw!important; height:22vw!important; min-width:0!important; min-height:0!important; max-width:110px; max-height:110px; }
  .profile-card a { width:100%; }
  .profile-name { line-height:1.3; overflow-wrap:anywhere; }
  .filter-panel { gap:.45rem; margin-bottom:1.5rem; }
  .filter-panel button { padding:.55rem .7rem; font-size:.87rem; }
  .news-item { gap:.25rem; }
  .news-item .time-span { padding-left:.65rem; font-size:.75rem; }
  .publication { padding:1rem; margin-bottom:1.25rem; }
  .publication .thumbnail img { width:100%; max-height:210px; object-fit:contain; }
  .navbar-custom .avatar-container { display:none; }
  .navbar-custom { padding-block:.65rem; }
  .navbar-brand { font-size:1rem; }
  #news,#team,#publication,#main-content { scroll-margin-top:75px; }
}
@media(max-width:360px) {
  .navbar-brand { font-size:.9rem; }
  .profile-container { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .firework-outer { display:none; }
}
