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

.column {
  max-width: 70%;
  margin: 0 auto;
}

.footer .icon-link {
    font-size: 25px;
    color: #000;
}

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

.dnerf {
  font-variant: small-caps;
}


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

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

.publication-banner {
  max-height: parent;

}

.publication-banner video {
  position: relative;
  left: auto;
  top: auto;
  transform: none;
  object-fit: fit;
}

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

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

.publication-venue {
    font-family: 'Google Sans', sans-serif;
    color: #555;
}

.publication-awards {
    color: #ff3860;
    width: fit-content;
    font-weight: bolder;
}

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

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

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

.publication-video {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;

    overflow: hidden;
    border-radius: 10px !important;
}

.publication-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.results-carousel {
  overflow: hidden;
  margin-bottom: 30px;
}

.results-carousel .item {
  display: flex;
  flex-direction: column; /* Stack children vertically */
  justify-content: center; /* Center vertically */
  align-items: center; /* Center horizontally */
  margin: 5px;
  overflow: hidden;
  padding: 0;
  font-size: 0;
}

.results-carousel video {
  height: 300px; /* Fixed height */
  width: auto; /* Adjust width based on aspect ratio */
  object-fit: contain;
}

.results-carousel .item .caption {
  z-index: 100; /* Adjust as necessary */
  text-align: center;
  font-size: 14px; /* Adjust the font size as needed */
  margin-top: 5px; /* Space between video and caption */
  margin-bottom: 10px; /* Space between video and caption */
  color: #555; /* Caption text color */
  font-size: large;
}

.interpolation-panel {
  background: #f5f5f5;
  border-radius: 10px;
}

.interpolation-panel .interpolation-image {
  width: 100%;
  border-radius: 5px;
}

.interpolation-panel .slider {
  margin: 0 !important;
}

.interpolation-panel .slider {
  margin: 0 !important;
}

#interpolation-image-wrapper {
  width: 100%;
}
#interpolation-image-wrapper img {
  border-radius: 5px;
}

.content .container {
  max-width: 960px;
  margin: 0 auto;
}

.content .columns.is-multiline {
  margin-bottom: 1rem;
}

.content .column video {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  margin: 0 auto;
}

.content .column .caption {
  text-align: center;
  margin-top: 0.5rem;
  font-size: 0.9rem;
  color: #4a4a4a;
}

.content .columns.is-centered .column.is-half video {
  width: 100%;
  height: auto;
  /* max-height: 300px; */
  object-fit: cover;
}

.subtitle.is-7 {
  font-size: 1rem;
  font-weight: normal;
}

/* Helper layout: two items per row (use by adding `two-per` class to the .columns container)
   Example: <div class="columns is-multiline is-centered two-per"> ... </div>
*/
.columns.two-per {
  gap: 16px; /* horizontal/vertical gap between columns */
}
.columns.two-per .column {
  flex: 0 0 calc(50% - 16px);
  max-width: calc(50% - 16px);
}

/* Slightly reduce image size only for two-per layout */
.columns.two-per .column figure.image img {
  width: 88%;
  max-width: 400px;
  margin: 0 auto;
  display: block;
  height: auto;
  object-fit: cover;
  transform: none; /* cancel any previous scaling */
}

/* Ensure small headings show bold weight despite other rules */
.columns.two-per .column h3.title,
.columns.two-per .column h5.subtitle,
.column h3.title,
.column h5.subtitle {
  font-weight: 700 !important;
}

/* Two-per columns helper */
@media (max-width: 768px) {
  .columns.two-per .column {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Images that set max-width:none inline will be allowed to expand */
.columns .image img[style*="max-width:none"],
.columns .image video[style*="max-width:none"] {
  max-width: none !important;
}

/* Default two-per image sizing */
.columns.two-per .column figure.image img,
.columns.two-per .column figure.image video {
  width: 88%;
  max-width: 500px;
  display: block;
  margin: 0 auto;
  height: auto;
  object-fit: cover;
}

/* Five-per columns helper: five items per row with responsive fallbacks */
.columns.five-per {
  gap: 16px;
}
.columns.five-per .column {
  flex: 0 0 calc(20% - 16px);
  max-width: calc(20% - 16px);
}
@media (max-width: 1100px) {
  .columns.five-per .column {
    flex: 0 0 calc(33.333% - 16px);
    max-width: calc(33.333% - 16px);
  }
}
@media (max-width: 768px) {
  .columns.five-per .column {
    flex: 0 0 calc(50% - 16px);
    max-width: calc(50% - 16px);
  }
}
@media (max-width: 480px) {
  .columns.five-per .column {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Default sizing for media inside five-per columns */
.columns.five-per .column figure.image,
.columns.five-per .column .video-crop-container {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
}
.columns.five-per .column figure.image img,
.columns.five-per .column figure.image video,
.columns.five-per .column .video-crop-container video {
  width: 100% !important;
  height: auto;
  display: block;
  object-fit: cover;
}
.container.is-header { max-width: 1400px; }

/* @media (max-width: 768px) {
  .columns.two-per .column figure.image img {
    width: 100%;
    max-width: none;
  }
}

/* Keep Bulma spacing behavior on small screens */
/* @media (max-width: 768px) {
  .columns.two-per .column {
    flex: 0 0 100%;
    max-width: 100%;
  }
} */