/* Project-specific refinements to the Academic Project Page Template. */
html { scroll-behavior: smooth; }
body { background: #fff; }
:root { --project-copy-color: #475569; --figure-radius: 10px; }
.skip-link { position: absolute; top: -4rem; left: 1rem; z-index: 10; padding: .5rem 1rem; background: #fff; }
.skip-link:focus { top: 1rem; }
.publication-header .hero-body { padding: 3.5rem 1.5rem 2rem; }
.publication-title { max-width: 1020px; margin-left: auto; margin-right: auto; font-size: clamp(2.3rem, 3vw, 3.2rem) !important; }
.publication-authors { line-height: 1.6; }
.publication-authors .author-block { color: rgb(25, 25, 112); font-weight: 600; }
.publication-title .title-accent { color: rgb(25, 25, 112); }
.title.is-3::after { background: rgb(25, 25, 112); }
.publication-authors.affiliation { color: var(--text-primary); font-weight: 500; margin-bottom: 1.5rem; }
.publication-links { display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; gap: .5rem; margin-top: 1.5rem; }
.publication-links .link-block { display: inline-flex; margin: 0; }
.publication-links .button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; width: auto; margin: 0 !important; white-space: nowrap; }
.publication-links .button-icon { display: block; width: 1.1rem; height: 1.1rem; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.publication-links .button.is-dark:hover { background: rgb(25, 25, 112) !important; }
.bibtex-panel { max-width: 760px; margin: .65rem auto 0; text-align: left; }
.bibtex-panel summary { width: fit-content; margin: 0 auto; color: var(--text-secondary); font-size: .9rem; cursor: pointer; }
.bibtex-panel pre { margin-top: .8rem; text-align: left; }
.bibtex-panel code { white-space: pre; }
.bibtex-status { color: var(--text-secondary); font-size: .85rem; margin-top: .4rem; }
.bibtex-status:empty { display: none; }
.teaser .hero-body { display: flex; flex-direction: column; align-items: center; padding-top: 2rem; }
.teaser .figure-link { width: 100%; margin-inline: auto; }
.teaser-image { display: block; width: 60%; height: auto; margin-inline: auto; border-radius: var(--figure-radius); box-shadow: var(--shadow-lg); }
.teaser .subtitle { width: 100%; max-width: 850px; margin: 1.5rem auto 0; }
.figure-link { display: block; border-radius: var(--figure-radius); }
.project-copy { max-width: 850px; margin: 1.3rem auto 2.25rem; }
.project-intro { max-width: 850px; margin: 0 auto 2rem; }
.project-figure { margin: 0; }
.project-figure img { display: block; width: 100%; height: auto; border-radius: var(--figure-radius); box-shadow: var(--shadow-md); }
.project-figure figcaption { margin-top: 1.2rem; text-align: left; font-size: 1.05rem; }
.project-video { display: block; width: 100%; max-width: 850px; height: auto; margin: 0 auto; border-radius: var(--border-radius); box-shadow: var(--shadow-md); background: #0f172a; opacity: 0; pointer-events: none; }
.project-video.is-ready { opacity: 1; pointer-events: auto; }
.teaser .subtitle,
.project-copy,
.project-intro,
.project-figure figcaption,
#abstract .content,
#abstract .content p {
  color: var(--project-copy-color) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 1rem;
  line-height: 1.7;
}
#abstract .content p { margin-bottom: 0; margin-top: 1.5rem }
:focus-visible { outline: 3px solid var(--primary-color); outline-offset: 3px; }
@media (max-width: 768px) {
  .publication-header .hero-body { padding: 2.5rem 1rem 1.5rem; }
  .publication-title { font-size: clamp(2rem, 7vw, 2.5rem) !important; }
  .publication-authors { font-size: 1rem !important; }
  .publication-links { gap: .3rem; }
  .publication-links .link-block { display: inline-flex; margin: 0; }
  .publication-links .button { width: auto !important; margin: 0 !important; padding: .65rem .7rem !important; font-size: .78rem !important; }
  .teaser .figure-link { width: 100%; }
  .project-figure figcaption { margin-top: 1.2rem; font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
