html {
  scroll-behavior: smooth;
}

html,
body {
  overflow-x: hidden;
  font-smoothing: antialiased;
  -webkit-font-smoothing: antialiased;
  font-size: calc(15px + 0.390625vw);
}

/* Hero stacking: media (1) → video overlay (2) → content (3) */
.section.hero {
  isolation: isolate;
}

.hero-media {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

.hero-media .hero-img {
  position: absolute;
}

#bottom-image {
  top: 0;
  left: 0;
  width: 100%;
  width: 100vw;
  width: 100dvw;
  height: 100%;
  height: 100vh;
  z-index: 1;
  object-fit: cover;
  border: none;
}

#top-image {
  top: 0;
  left: 0;
  width: 100%;
  width: 100vw;
  width: 100dvw;
  height: 100%;
  height: 100vh;
  z-index: 2;
  object-fit: cover;
  transform: translateZ(0);
  -webkit-mask-image: radial-gradient(
    circle at calc(var(--mx, 0.5) * 100%) calc(var(--my, 0.5) * 100%),
    transparent 0%,
    transparent 25%,
    black 40%
  );
  mask-image: radial-gradient(
    circle at calc(var(--mx, 0.5) * 100%) calc(var(--my, 0.5) * 100%),
    transparent 0%,
    transparent 25%,
    black 40%
  );
}

.hero-intro {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  width: 100vw;
  width: 100dvw;
  height: 100%;
  height: 100vh;
  z-index: 10;
  object-fit: cover;
  opacity: 1;
  transition: opacity 2.5s ease;
  pointer-events: auto;
}

.hero-intro.is-faded {
  opacity: 0;
  pointer-events: none;
}

.hero-intro.is-hidden {
  display: none;
}

.section.hero .context-box._50.hero {
  z-index: 20;
  right: 0;
  bottom: 60px;
  left: auto;
  max-width: 42%;
  padding: 1.5rem 3.5rem 2rem 1.5rem;
  transition: opacity 1.5s ease;
}

.section.hero .context-box._50.hero .heading {
  margin-bottom: 0.75rem;
}

.section.hero .context-box._50.hero .paragraph {
  margin-bottom: 1rem;
}

.section.hero .context-box._50.hero .paragraph:last-of-type {
  margin-bottom: 1.25rem;
}

.hero.is-intro-playing .context-box._50.hero {
  opacity: 0;
  pointer-events: none;
}

/* Vector overlays box corner; text sits in transparent upper-left of graphic */
.section.hero .hero-vector {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 25vw;
  height: auto;
  z-index: 25;
  pointer-events: none;
  transition: opacity 1.5s ease;
}

.hero.is-intro-playing .hero-vector {
  opacity: 0;
}

@media screen and (max-width: 991px) {
  .section.hero .context-box._50.hero {
    max-width: 48%;
    padding: 1.5rem 3rem 1.75rem 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .section.hero .context-box._50.hero {
    max-width: 76%;
    padding: 5vw;
  }
}

.w-lightbox-backdrop {
  z-index: 5000 !important;
}

.section.contact {
  justify-content: center;
}

.section.contact .centered {
  align-items: center;
  width: 100%;
}

.section-image.research-development {
  background-image: url("../assets/images/workflow-image-annotation-1774294653826-0.png");
  background-position: 50%;
}

.section-image.training-workshops {
  background-image: url("../assets/images/image%20700.jpg");
  background-position: 50%;
}
