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;
}


.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: 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%;
}

.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;
}

/* UniFusion project-page additions, following the restrained NTS layout. */
html { scroll-behavior: smooth; }
body {
  color: #202124;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.publication-header {
  background: linear-gradient(180deg, #f8f9fb 0%, #fff 100%);
}
.publication-header .hero-body { padding: 4.5rem 1.5rem 2.25rem; }
.publication-title {
  max-width: 1050px;
  margin: 0 auto 1.4rem !important;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  font-size: clamp(2.15rem, 4vw, 2.75rem) !important;
  font-weight: 600;
  line-height: 1.16;
  letter-spacing: -.025em;
}
.unifusion { font-variant: normal; }
.publication-authors {
  margin-top: 0;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  font-size: 1.15rem !important;
  line-height: 1.75;
}
.publication-affiliation {
  margin-top: .15rem;
  color: #6b7280;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  line-height: 1.55;
}
.author-notes { margin-top: .45rem; color: #777; letter-spacing: .01em; }
.publication-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem; }
.publication-links .link-block { display: inline-flex; align-items: center; margin: 5px 0; }
.publication-links .button { height: 2.5em; margin: 0 !important; }
.button-mark { margin-right: .45rem; font-size: .72rem; font-weight: 800; }
.teaser-image, .method-image { display: block; width: 100%; border-radius: 8px; }
.teaser-video { display: block; width: 100%; border-radius: 8px; background: #000; }
.teaser-copy { margin: 1.5rem 0 0 !important; color: #363636; font-size: 1.15rem; line-height: 1.55; }
.section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.section > .container.is-max-desktop { max-width: 900px !important; }
.section > .container > .columns { margin-left: 0; margin-right: 0; }
.section > .container > .columns > .column { padding-left: 0; padding-right: 0; }
.section .title.is-3 {
  margin-bottom: 1.35rem;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  font-weight: 600;
  letter-spacing: -.018em;
}
.section .centered-section-title { text-align: center; }
.section .content { font-size: 1.03rem; }
.section .content p { line-height: 1.72; }
.abstract-copy, .method-intro, .results-intro { width: 100%; margin: 0 0 1.75rem; }
#abstract .abstract-copy { max-width: 820px; margin-right: auto; margin-left: auto; }
.method-image { margin: 0 0 2rem; border: 1px solid #ddd; }
.method-columns { margin-top: 1rem; text-align: center; }
.method-columns p { color: #555; font-size: .9rem; }
.backend-tabs {
  display: flex;
  gap: .5rem;
  margin: 2rem 0 1.5rem;
  padding: .35rem;
  border: 1px solid #dedede;
  border-radius: 999px;
  background: #f5f5f5;
}
.backend-tab {
  flex: 1;
  padding: .72rem 1rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #666;
  font: 600 1rem/1.2 'Google Sans', 'Noto Sans', sans-serif;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.backend-tab:hover { color: #222; }
.backend-tab:focus-visible { outline: 3px solid rgba(32, 156, 238, .35); outline-offset: 2px; }
.backend-tab.is-active { background: #363636; color: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.backend-panel[hidden] { display: none; }
.result-carousel-shell { position: relative; padding: 0 3rem 2rem; }
.result-carousel-track {
  display: flex;
  overflow-x: auto;
  border-radius: 10px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
}
.result-carousel-track::-webkit-scrollbar { display: none; }
.result-video-card { overflow: hidden; border: 1px solid #d9d9d9; border-radius: 10px; background: #fff; }
.result-carousel-track .result-video-card { flex: 0 0 100%; scroll-snap-align: start; }
.result-video-card video { display: block; width: 100%; aspect-ratio: 1290 / 760; background: #000; }
.result-video-copy { padding: .9rem 1rem 1rem; }
.result-video-copy h3 { margin: 0 0 .2rem; font: 600 1rem/1.35 'Google Sans', 'Noto Sans', sans-serif; }
.result-video-copy p { margin: 0; color: #666; font-size: .86rem; line-height: 1.5; }
.carousel-arrow {
  position: absolute;
  top: calc(50% - 2rem);
  z-index: 2;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid #d7d7d7;
  border-radius: 50%;
  background: #fff;
  color: #333;
  font: 400 2rem/1 'Noto Sans', sans-serif;
  cursor: pointer;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .12);
}
.carousel-arrow:hover { background: #363636; color: #fff; }
.carousel-arrow:focus-visible { outline: 3px solid rgba(32, 156, 238, .35); outline-offset: 2px; }
.carousel-prev { left: 0; }
.carousel-next { right: 0; }
.carousel-dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.carousel-dot { width: .55rem; height: .55rem; padding: 0; border: 0; border-radius: 50%; background: #c9c9c9; cursor: pointer; }
.carousel-dot.is-active { width: 1.6rem; border-radius: 999px; background: #363636; }
.result-subsection-title {
  margin: 2rem 0 .7rem !important;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  font-weight: 600;
  letter-spacing: -.015em;
}
.result-subsection-title + .backend-tabs { margin-top: .9rem; }
.static-comparison-block {
  margin-top: 3.75rem;
  padding-top: 3.5rem;
  border-top: 1px solid #e5e5e5;
}
.static-comparison-block .title.is-4 {
  margin-bottom: .55rem;
  font-family: 'Google Sans', 'Noto Sans', sans-serif;
  font-weight: 600;
  letter-spacing: -.015em;
}
.static-comparison-intro { margin: 0; color: #60656d; font-size: .98rem; }
.static-backend-tabs { margin-top: 1.6rem; }
.static-backend-tab {
  flex: 1;
  padding: .72rem 1rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #666;
  font: 600 1rem/1.2 'Google Sans', 'Noto Sans', sans-serif;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.static-backend-tab:hover { color: #222; }
.static-backend-tab:focus-visible { outline: 3px solid rgba(32, 156, 238, .35); outline-offset: 2px; }
.static-backend-tab.is-active { background: #363636; color: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.static-backend-panel[hidden] { display: none; }
.comparison-carousel { position: relative; padding: 0 3rem 1rem; }
.comparison-track {
  display: flex;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
}
.comparison-track::-webkit-scrollbar { display: none; }
.comparison-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.comparison-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 .75rem; }
.comparison-heading h4 { margin: 0; font: 600 1rem/1.35 'Google Sans', 'Noto Sans', sans-serif; }
.comparison-heading span { color: #777; font-size: .86rem; }
.compare-frame {
  --split: 50%;
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 965 / 273;
  border: 1px solid #cfd2d7;
  border-radius: 10px;
  background: #111;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .08);
  user-select: none;
}
.compare-before,
.compare-after,
.compare-after img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
}
.compare-after { clip-path: inset(0 calc(100% - var(--split)) 0 0); }
.compare-divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--split);
  z-index: 3;
  width: 3px;
  transform: translateX(-50%);
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .14), 0 0 8px rgba(0, 0, 0, .3);
  pointer-events: none;
}
.compare-divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  transform: translate(-50%, -50%);
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #333;
  font: 600 1.1rem/1 'Noto Sans', sans-serif;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}
.compare-range {
  position: absolute;
  inset: 0;
  z-index: 4;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
}
.compare-frame:focus-within { box-shadow: 0 0 0 3px rgba(32, 156, 238, .32), 0 5px 18px rgba(0, 0, 0, .08); }
.compare-label {
  position: absolute;
  bottom: .7rem;
  z-index: 2;
  padding: .32rem .65rem;
  border-radius: 5px;
  background: rgba(22, 22, 22, .72);
  color: #fff;
  font: 600 .78rem/1.3 'Google Sans', 'Noto Sans', sans-serif;
  letter-spacing: .01em;
  backdrop-filter: blur(4px);
  pointer-events: none;
}
.compare-label-left { left: .7rem; }
.compare-label-right { right: .7rem; }
.comparison-arrow {
  position: absolute;
  top: calc(50% - .2rem);
  z-index: 5;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 1px solid #d7d7d7;
  border-radius: 50%;
  background: #fff;
  color: #333;
  font: 400 2rem/1 'Noto Sans', sans-serif;
  cursor: pointer;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .12);
}
.comparison-arrow:hover { background: #363636; color: #fff; }
.comparison-arrow:focus-visible { outline: 3px solid rgba(32, 156, 238, .35); outline-offset: 2px; }
.comparison-prev { left: 0; }
.comparison-next { right: 0; }
.comparison-dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.comparison-dot { width: .55rem; height: .55rem; padding: 0; border: 0; border-radius: 50%; background: #c9c9c9; cursor: pointer; }
.comparison-dot.is-active { width: 1.6rem; border-radius: 999px; background: #363636; }
#BibTeX pre { overflow-x: auto; white-space: pre-wrap; }
@media (max-width: 768px) {
  .publication-header .hero-body { padding: 2.75rem 1.25rem 1.5rem; }
  .publication-title { font-size: 2rem !important; line-height: 1.18; }
  .publication-authors { font-size: 1.05rem !important; }
  .section { padding-top: 2.75rem; padding-bottom: 2.75rem; }
  .result-carousel-shell { padding-right: 0; padding-left: 0; }
  .carousel-arrow { display: none; }
  .comparison-carousel { padding-right: 0; padding-left: 0; }
  .comparison-arrow { display: none; }
  .comparison-heading { align-items: flex-start; flex-direction: column; gap: .1rem; }
  .compare-label { bottom: .4rem; padding: .22rem .45rem; font-size: .65rem; }
  .compare-label-left { left: .4rem; }
  .compare-label-right { right: .4rem; }
  .compare-divider span { width: 2rem; height: 2rem; font-size: .9rem; }
}
