/* =========================
   Premium Light Theme
   ========================= */
:root{
  --bg: #ffffff;
  --soft: #f8fafc;      /* section background */
  --text: #0f172a;
  --muted: #475569;
  --line: rgba(15, 23, 42, 0.10);
  --shadow: 0 14px 50px rgba(2, 6, 23, 0.10);
  --shadow2: 0 10px 30px rgba(2, 6, 23, 0.08);
  --radius: 18px;
  --radius2: 22px;
  --maxw: 1120px;
}

html, body{
  font-family: "Google Sans", "Noto Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
}

/* layout width */
.container.is-max-desktop{ max-width: var(--maxw) !important; }
.container.is-max-widescreen{ max-width: 1280px !important; }

/* section rhythm */
.section{ padding: 4.25rem 1.25rem; }
.hero .hero-body{ padding: 4.5rem 1.25rem; }
.spacer-16{ height: 16px; }
.spacer-24{ height: 24px; }

/* Navbar */
.premium-navbar{
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,0.88);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}
.premium-brand{
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* Hero */
.premium-hero{
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 60%, #ffffff 100%);
}
.publication-title{
  letter-spacing: -0.02em;
  line-height: 1.12;
}
.hero-hint{
  margin-top: 1rem;
}
.hint-pill{
  display: inline-block;
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.10);
  color: #0f172a;
  background: rgba(248,250,252,0.7);
  font-size: .95rem;
}

/* Authors */
.publication-authors{
  margin-top: 1rem;
}
.publication-authors .author-block{
  white-space: nowrap;
  margin: 0 .15rem;
}
.publication-authors .author-block a{
  font-weight: 650;
}
.publication-affils{
  margin-top: .6rem;
  color: var(--muted);
}

/* Buttons */
.publication-links .button{
  border-radius: 999px !important;
  padding: 0.85rem 1.15rem;
  box-shadow: var(--shadow2);
  border: 1px solid rgba(255,255,255,0.10);
}
.publication-links .button.is-dark{
  background: #0f172a !important;
}
.publication-links .button:hover{
  transform: translateY(-1px);
  box-shadow: var(--shadow);
  transition: 180ms ease;
}

/* Headings & text */
.title.is-1{ letter-spacing: -0.02em; }
.title.is-3{ letter-spacing: -0.01em; }
.content p{
  font-size: 1.05rem;
  line-height: 1.85;
  color: #1f2937;
}
.content strong{ color: #0f172a; }

/* Premium card */
.premium-card{
  background: #fff;
  border-radius: var(--radius2);
  border: 1px solid var(--line);
  box-shadow: var(--shadow2);
  padding: 1.25rem 1.25rem;
}

/* images */
.image-container img{
  width: 100%;
  height: auto;
  border-radius: var(--radius2);
  border: 1px solid var(--line);
  box-shadow: var(--shadow2);
}

/* videos */
.video-block{
  width: 100%;
  height: auto;
  border-radius: var(--radius2);
  border: 1px solid var(--line);
  box-shadow: var(--shadow2);
  background: #000;
}

/* captions */
.figure-caption{
  margin-top: .75rem;
  font-size: .98rem;
  color: #334155;
}
.figure-caption .tag{
  font-weight: 750;
  font-size: .85rem;
  border-radius: 999px;
  padding: .15rem .6rem;
  margin-right: .45rem;
  background: rgba(2, 132, 199, 0.08);
  color: #075985;
  border: 1px solid rgba(2, 132, 199, 0.12);
}

/* Light sections */
.section.is-light, .hero.is-light{
  background: var(--soft) !important;
}

/* carousel */
.results-carousel .item{
  padding: .45rem;
}

/* one video per row with nice spacing */
.stack-videos{
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 10px;
}

/* anchor offset for fixed navbar */
:target{ scroll-margin-top: 80px; }

/* footer */
.premium-footer{
  background: #ffffff;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

/* back to top */
.back-to-top{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 50;
  border-radius: 999px;
  padding: 10px 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 14px 40px rgba(2,6,23,0.12);
  cursor: pointer;
  display: none;
  font-weight: 700;
}
.back-to-top:hover{
  transform: translateY(-1px);
  transition: 180ms ease;
}

/* Responsive */
@media (max-width: 768px){
  .section{ padding: 3.0rem 1.0rem; }
  .hero .hero-body{ padding: 3.2rem 1.0rem; }
  .title.is-1{ font-size: 2.1rem !important; }
  .content p{ font-size: 1.0rem; }
}


#results-carousel,
#results-carousel .carousel-container,
#results-carousel .carousel-items {
  overflow: hidden !important;
}


#results-carousel {
  border-radius: 22px;
}

#results-carousel .carousel-item,
#results-carousel .item {
  margin: 0 !important;
}


#results-carousel .carousel-item,
#results-carousel .item {
  padding: 10px !important;
  box-sizing: border-box !important;
}


#results-carousel .video-block {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
}


#results-carousel .carousel-nav-left,
#results-carousel .carousel-nav-right {
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.92) !important;
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  box-shadow: 0 14px 40px rgba(2, 6, 23, 0.12) !important;
}



.premium-hero .hero-body{
  padding-top: 2.4rem !important;
  padding-bottom: 1.6rem !important;
}


.premium-hero .publication-title{
  margin-bottom: 0.9rem !important;
  line-height: 1.08 !important;
}


.premium-hero .publication-authors{
  margin-top: 0.6rem !important;
  margin-bottom: 0.4rem !important;
}
.premium-hero .publication-affils{
  margin-top: 0.35rem !important;
  margin-bottom: 0.9rem !important;
}


.premium-hero .publication-links{
  margin-top: 0.6rem !important;
  margin-bottom: 0.6rem !important;
}


.premium-hero .hero-hint{
  margin-top: 0.5rem !important;
}
.premium-hero .hint-pill{
  padding: .25rem .65rem !important;
  font-size: .9rem !important;
}


.premium-hero + .section{
  padding-top: 2.2rem !important;
}


@media (max-width: 768px){
  .premium-hero .hero-body{
    padding-top: 1.6rem !important;
    padding-bottom: 1.1rem !important;
  }
  .premium-hero + .section{
    padding-top: 1.6rem !important;
  }
}
