body {
  font-family: 'Noto Sans', sans-serif;
}

.link-block a {
    margin-top: 5px;
    margin-bottom: 5px;
    margin-left: 6px;
    margin-right: 6px;
}

.teaser .hero-body {
  padding-top: 0;
  padding-bottom: 3rem;
}

.teaser {
  font-family: 'Google Sans', sans-serif;
}

.publication-title {
    font-family: 'Google Sans', sans-serif;
}

.publication-authors {
    font-family: 'Google Sans', sans-serif;
}

.publication-authors a {
   color: hsl(204, 86%, 53%) !important;
}

.publication-authors a:hover {
    text-decoration: underline;
}

.author-block {
  display: inline-block;
}

/* The author-list line break only applies where the list fits on two lines. */
@media screen and (max-width: 768px) {
  br.desktop-only {
    display: none;
  }
}

/* Paper figures (vector): scale with the column. */
.paper-figure {
  display: block;
  width: 75%;
  height: auto;
  margin: 0 auto 1.5rem;
}

/* Samples panel: four groups per row, each two tiles above a caption; captions are selectable text. */
.samples-hint { color: #666; margin-bottom: 0.75rem; }
.samples-grid { text-align: left; margin-bottom: 1.5rem; }
.samples-row { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 5px; align-items: stretch; }
.samples-cells { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2px; }
.samples-header .samples-cells { padding-bottom: 3px; }
.samples-header span { text-align: center; font-size: 1.05rem; line-height: 1.6; white-space: nowrap; color: #111; }
.samples-pair { display: flex; flex-direction: column; margin: 0 0 5px 0; cursor: zoom-in; outline-offset: 2px;
                 position: relative; transition: transform 0.18s ease, box-shadow 0.18s ease; }
.samples-pair:hover, .samples-pair:focus-visible { transform: scale(1.06); z-index: 2;
                                                    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22); }
.samples-pair:focus-visible { outline: 2px solid #1965B0; }
@media (prefers-reduced-motion: reduce) { .samples-pair { transition: none; } }
.samples-pair img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; }
.samples-caption { flex: 1; background: #f9f8f4; padding: 6px 7px 8px 7px; font-size: 0.78rem;
                    line-height: 1.36; color: #111; text-align: left; }
.samples-kind { display: inline-block; color: #fff; font-size: 0.66rem; line-height: 1.35;
                 letter-spacing: 0.1em; padding: 0 3px 0 4px; margin-right: 4px; text-transform: uppercase;
                 vertical-align: 1px; }
.samples-kind.k-tag { background: #0072B2; }
.samples-kind.k-short { background: #009E73; }
.samples-kind.k-medium { background: #D55E00; }
.samples-kind.k-long { background: #CC79A7; }
@media screen and (max-width: 768px) {
  .samples-row { grid-template-columns: repeat(2, 1fr); }
  .samples-header .samples-cells:nth-child(n+3) { display: none; }
}

/* Zoom modal: one pair at native-or-larger size with its caption. */
.samples-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; }
.samples-modal[hidden] { display: none; }
.samples-modal-backdrop { position: absolute; inset: 0; background: rgba(10, 10, 10, 0.82); backdrop-filter: blur(2px); }
.samples-modal-card { position: relative; max-width: min(94vw, 1100px); max-height: 94vh; background: #fff;
                       border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,0.45); display: flex;
                       flex-direction: column; overflow: hidden; }
.samples-modal-images { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; background: #111; }
.samples-modal-images figure { margin: 0; }
.samples-modal-images img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1;
                             max-height: 64vh; object-fit: contain; image-rendering: auto; }
.samples-modal-images figcaption { color: #eee; text-align: center; font-size: 0.95rem; padding: 6px 0 2px; }
.samples-modal-label { padding: 14px 20px 18px; font-size: 0.95rem; line-height: 1.5; color: #111;
                        border-top: 1px solid #eee; overflow-y: auto; text-align: left; }
.samples-modal-label .samples-kind { font-size: 0.7rem; margin-right: 8px; }
.samples-modal-close, .samples-modal-nav { position: absolute; border: 0; border-radius: 50%; background: rgba(0,0,0,0.55);
                                            color: #fff; cursor: pointer; display: flex; align-items: center;
                                            justify-content: center; z-index: 2; }
.samples-modal-close { top: 10px; right: 12px; width: 32px; height: 32px; font-size: 22px; line-height: 1; }
.samples-modal-nav { top: 50%; width: 36px; height: 36px; font-size: 28px; line-height: 1; transform: translateY(-50%); }
.samples-modal-nav.prev { left: 10px; }
.samples-modal-nav.next { right: 10px; }
.samples-modal-close:hover, .samples-modal-nav:hover { background: rgba(0,0,0,0.78); }
body.samples-modal-open { overflow: hidden; }

@media screen and (max-width: 768px) {
  .paper-figure { width: 100%; }
}
