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


.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-title {
}

.publication-banner {
  max-height: parent;

}

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

.publication-header .hero-body {
}

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

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

.publication-venue {
    color: #555;
    width: fit-content;
    font-weight: bold;
}

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

.publication-authors {
}

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

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

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

.publication-banner img {
}

.publication-authors {
  /*color: #4286f4;*/
}

.publication-video {
    position: relative;
    width: 90%;
    height: 90%;

    overflow: hidden;
    border-radius: 10px !important;
    margin: 0 auto; /* Centers horizontally */
    display: flex;
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
}

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

.publication-body img {
}

.results-carousel {
  overflow: hidden;
}

.results-carousel .item {
  margin: 5px;
  overflow: hidden;
  border: 1px solid #bbb;
  border-radius: 10px;
  padding: 0;
  font-size: 0;
}

.results-carousel video {
  margin: 0;
}


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

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

.interpolation-video-column {
}

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

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

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


/* Container that holds both images */
.img-comp-container {
  position: relative;
  width: 800px;   /* match your image width */
  height: 600px;  /* match your image height */
  overflow: hidden;
  margin: 0 auto; /* center, if desired */
}

/* Both "bottom" and "overlay" images are absolutely positioned on top of each other */
.img-comp-img {
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden; /* crucial so that the overlay can be clipped */
  height: 100%;
  width: 100%;
}

/* Overlay image will start at half the container width (JS sets its width dynamically) */
.img-comp-overlay {
  width: 50%;
}

/* Make sure images fill their parent (no max-width:100% issues) */
.img-comp-img img {
  display: block;
  width: 100%;
  height: auto;
}

/* The slider "handle" styling */
.img-comp-slider {
  position: absolute;
  z-index: 99;
  cursor: col-resize;
  /* Basic circular handle styling */
  width: 30px;
  height: 30px;
  background-color: #2196F3;
  border-radius: 50%;
  opacity: 0.7;
  /* center the handle vertically by default, adjusted in JS */
}

*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}



/* img {
  display: block;
  max-width: 100%;
} */

main {
  display: grid;
  place-items: center;
  /* min-height: 100vh; */
} 

.slidercontainer {
  display: grid;
  place-content: center;
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  --position: 35%;
}

.image-slidercontainer {
  max-width: 600px;
  /* max-height: 90vh; */
  /* aspect-ratio: 1/1; */
}

.slider-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left;
}

.image-before {
  position: absolute;
  inset: 0;
  width: var(--position);
  /* filter: grayscale(100%) */
}

.slider {
  position: absolute;
  inset: 0;
  cursor: pointer;
  opacity: 0;
  /* for Firefox */
  width: 100%;
  height: 100%;
}

.slider:focus-visible ~ .slider-button {
  outline: 5px solid black;
  outline-offset: 3px;
}

.slider-line {
  position: absolute;
  inset: 0;
  width: .2rem;
  height: 100%;
  background-color: #fff;
  /* z-index: 10; */
  left: var(--position);
  transform: translateX(-50%);
  pointer-events: none;
}

.slider-button {
  position: absolute;
  background-color: #fff;
  color: black;
  padding: .5rem;
  border-radius: 100vw;
  display: grid;
  place-items: center;
  top: 50%;
  left: var(--position);
  transform: translate(-50%, -50%);
  pointer-events: none;
  /* z-index: 100; */
  box-shadow: 1px 1px 1px hsl(0, 50%, 2%, .5);
}

 .slice-slider {
    position: relative;
    overflow: hidden;
    border-radius: 1rem;
    max-width: 900px;
    width: 100%;
    aspect-ratio: 16 / 9; /* adjust as you like */
    touch-action: none;
    --p1: 25%;
    --p2: 50%;
    --p3: 75%;
  }

  .slice-images {
    position: absolute;
    inset: 0;
  }

  .slice-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* Each image is clipped to its slice: [0..p1], [p1..p2], [p2..p3], [p3..100] */
  .img-1 { clip-path: inset(0 calc(100% - var(--p1)) 0 0); }
  .img-2 { clip-path: inset(0 calc(100% - var(--p2)) 0 var(--p1)); }
  .img-3 { clip-path: inset(0 calc(100% - var(--p3)) 0 var(--p2)); }
  .img-4 { clip-path: inset(0 0 0 var(--p3)); }

  .divider-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0.2rem;
    background: #fff;
    transform: translateX(-50%);
    cursor: ew-resize;
  }

  .divider-line[data-handle="1"] { left: var(--p1); }
  .divider-line[data-handle="2"] { left: var(--p2); }
  .divider-line[data-handle="3"] { left: var(--p3); }

  .divider-handle {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 0;
    background: #fff;
    box-shadow: 1px 1px 1px hsl(0 50% 2% / 0.5);
    cursor: grab;
    touch-action: none;
  }

  .divider-handle:active { cursor: grabbing; }
  .divider-handle:focus-visible {
    outline: 4px solid black;
    outline-offset: 3px;
  }

  .divider-handle.h1 { left: var(--p1); }
  .divider-handle.h2 { left: var(--p2); }
  .divider-handle.h3 { left: var(--p3); }