.publications-heading { margin-bottom: 28px; }
/* The reveal transform creates a stacking context; keep it above footer cards. */
.publications-page .page > .section { position: relative; z-index: 1; }
.publications-heading h1 { color: var(--primary); font-size: 1.8rem; margin-bottom: 8px; }
.publications-heading p { line-height: 1.7; }
.publications-page .pub-text h3 { font-size: 1.2rem; }
.publications-page .pub-text > p { font-size: 1.05rem; }
.publication-languages { display: flex; gap: 20px; flex-wrap: wrap; }
.search-notice { margin: 14px 0; line-height: 1.7; }
.publication-copy { font: inherit; color: var(--primary); background: transparent; border: 0; cursor: pointer; }
.publication-copy:hover,
.publication-copy:active,
.publication-copy:focus-visible { color: var(--accent); }
.publication-authors-toggle { font: inherit; font-weight: 700; color: var(--primary); background: transparent; border: 0; padding: 0; cursor: pointer; }
.publication-authors-toggle:hover,
.publication-authors-toggle:active { color: var(--accent); }
.publication-author-summary { position: relative; }
.publication-author-summary:not(.is-expanded) > .publication-authors-toggle {
  position: absolute;
  right: 0;
  bottom: 0;
  padding-left: 6px;
  background: var(--card);
}
.publication-author-lines {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.publication-author-lines.is-expanded {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
}
.publications-page :is(button, a, input):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.publications-page hr { margin-top: 24px; }
.publications-page [hidden] { display: none !important; }
.publication-languages { align-items: center; gap: 8px; }
.publications-page .search-notice { scroll-margin-top: 110px; }
@media (max-width: 640px) {
  .publications-page .pub-text h3 { font-size: 1.1rem; }
  .publications-page .pub-text > p { font-size: 0.95rem; }
  /* Original yuxlab mobile publication image sizing. */
  .publications-page .pub-item img {
    width: auto;
    height: 150px;
    max-width: 100%;
  }
  .publications-page .pub-search { min-width: 0; }
  .publications-page .search-toggle { flex-shrink: 0; }
}
