.page-intro {
  display: block;
  background: #fff;
  animation: intro-exit 4.9s linear both;
}

.intro-image {
  inset: auto;
  top: 100vh;
  left: 50%;
  width: min(82vw, 920px);
  height: 70vh;
  transform: translateX(-50%);
  background: #0867c9;
  overflow: hidden;
  will-change: top, left, width, height, transform;
  animation: intro-image-journey 4.45s cubic-bezier(.62, 0, .22, 1) both;
}

.intro-image img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  transform: scale(1);
  will-change: transform;
  animation: intro-image-breathe 4.45s cubic-bezier(.45, 0, .2, 1) both;
}

.intro-white-panel {
  top: 0;
  height: 14vh;
  min-height: 82px;
  transform: translateY(-101%);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .05);
  animation: intro-header-drop .72s 3.22s cubic-bezier(.22, .9, .3, 1) forwards;
}

.intro-logo {
  top: max(25px, 4vh);
  left: max(24px, calc((100vw - var(--shell)) / 2 + 24px));
  width: min(280px, 45vw);
  opacity: 0;
  transform: translateY(-12px);
  animation: intro-brand-in .6s 3.52s cubic-bezier(.22, .9, .3, 1) forwards;
}

@keyframes intro-image-journey {
  0%, 11% {
    top: 100vh;
    left: 50%;
    width: min(78vw, 860px);
    height: 68vh;
    transform: translateX(-50%);
  }
  38%, 62% {
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    transform: none;
  }
  79%, 100% {
    top: 14vh;
    left: 50%;
    width: min(92vw, var(--shell));
    height: 69vh;
    transform: translateX(-50%);
  }
}

@keyframes intro-image-breathe {
  0%, 35% { transform: scale(1); }
  53% { transform: scale(1.075); }
  68%, 100% { transform: scale(1); }
}

@keyframes intro-header-drop {
  to { transform: translateY(0); }
}

@keyframes intro-brand-in {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes intro-exit {
  0%, 89% { opacity: 1; visibility: visible; }
  100% { opacity: 0; visibility: hidden; }
}

@media (max-width: 600px) {
  .intro-image {
    width: 82vw;
    height: 65vh;
  }

  @keyframes intro-image-journey {
    0%, 11% {
      top: 100vh;
      left: 50%;
      width: 78vw;
      height: 64vh;
      transform: translateX(-50%);
    }
    38%, 62% {
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      transform: none;
    }
    79%, 100% {
      top: 14vh;
      left: 4vw;
      width: 92vw;
      height: 67vh;
      transform: none;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-intro { display: none; }
}
