:root {
  --home-op-blue: #39779d; --text-v37-home-op-blue: #6594c0;
  --home-op-ease: cubic-bezier(.22, 1, .36, 1); --text-v37-home-op-ease: cubic-bezier(.22, 1, .36, 1);
}

body.home-op-active {
  overflow: hidden;
}

.home-op {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  background: var(--home-op-blue);
  cursor: pointer;
  transition: opacity .68s var(--home-op-ease), filter .78s var(--home-op-ease);
  will-change: opacity, filter;
}

.home-op__bird {
  display: block;
  width: clamp(148px, 13vw, 200px);
  height: auto;
  opacity: 0;
  transform: scale(.94);
  filter: brightness(0) invert(1) drop-shadow(0 8px 18px rgba(57, 119, 157, .2));
  transition: opacity .42s ease, transform .7s var(--home-op-ease);
  will-change: opacity, transform;
}

.home-op.is-running .home-op__bird {
  opacity: 1;
  transform: scale(1);
}

.home-op.is-opening {
  opacity: 0;
  filter: blur(6px);
  pointer-events: none;
}

@media (max-width: 768px) {
  .home-op__bird { width: clamp(128px, 34vw, 164px); }
}

/* The curved white field and the photograph divide the second line. */
.hero__title-line--adaptive {
  --hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 45%, #fff 60%, #fff 100%); --text-v37-hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 45%, #fff 60%, #fff 100%);
  color: transparent;
  background: var(--hero-title-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  filter: drop-shadow(0 2px 3px rgba(20, 29, 34, .3));
}

body[data-hero-title-tone="dark"] .hero__title-line--adaptive {
  --hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 100%); --text-v37-hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 100%);
  filter: drop-shadow(0 1px 2px rgba(255, 255, 255, .34));
}

body[data-hero-title-tone="mixed"] .hero__title-line--adaptive {
  --hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 43%, #fff 52%, #fff 66%, #151515 78%, #151515 100%); --text-v37-hero-title-gradient: linear-gradient(90deg, #151515 0%, #151515 43%, #fff 52%, #fff 66%, #151515 78%, #151515 100%);
  filter: drop-shadow(0 1px 2px rgba(20, 29, 34, .3));
}

/* Keep the motion system from adding a second vertical entrance to the FV title. */
body.page-home.motion-ready .hero__title.motion-heading {
  opacity: 1;
  filter: none;
  transform: none;
  letter-spacing: .1em;
  transition: none;
}

body.page-home.motion-ready .hero__title.motion-heading.is-visible {
  opacity: 1;
  filter: none;
  transform: none;
  letter-spacing: .1em;
  transition: none;
}

body.page-home.motion-ready .hero__title .motion-copy,
body.page-home.motion-ready .hero__title .motion-copy.is-visible {
  opacity: 1;
  clip-path: none;
  filter: none;
  transform: none;
  transition: none;
}

body.page-home.motion-ready .hero__title .hero__title-line--adaptive.motion-copy,
body.page-home.motion-ready .hero__title .hero__title-line--adaptive.motion-copy.is-visible {
  filter: drop-shadow(0 2px 3px rgba(20, 29, 34, .3));
}

body.page-home[data-hero-title-tone="dark"].motion-ready .hero__title .hero__title-line--adaptive.motion-copy,
body.page-home[data-hero-title-tone="dark"].motion-ready .hero__title .hero__title-line--adaptive.motion-copy.is-visible {
  filter: drop-shadow(0 1px 2px rgba(255, 255, 255, .34));
}

body.page-home[data-hero-title-tone="mixed"].motion-ready .hero__title .hero__title-line--adaptive.motion-copy,
body.page-home[data-hero-title-tone="mixed"].motion-ready .hero__title .hero__title-line--adaptive.motion-copy.is-visible {
  filter: drop-shadow(0 1px 2px rgba(20, 29, 34, .3));
}

body.page-home.home-op-complete .site-header {
  transition: opacity .8s cubic-bezier(.16, 1, .3, 1), filter 1s cubic-bezier(.16, 1, .3, 1);
}

@media (prefers-reduced-motion: reduce) {
  body.home-op-active {
    overflow: auto;
  }

  .home-op {
    display: none;
  }

  body.page-home.motion-ready .hero__title.motion-heading,
  body.page-home.motion-ready .hero__title.motion-heading.is-visible {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    letter-spacing: .1em !important;
    transition: none !important;
  }
}
