#snowcouple > img {
  --height: 376px;
  --width: 312px;
  position: sticky;
  top: calc(1.1 * (50% - var(--height) / 2));
  display: block;
  margin-left: auto;
  margin-right: auto;

  height: var(--height);
  width: var(--width);
  object-fit: cover;

  --zoom: calc(min(.8 * 90vh / var(--height), .8 * 100vw / var(--width)));

  animation: snowcouple-sprite steps(105, jump-none) forwards, snowcouple-zoom, snowcouple-tilt forwards;
  animation-range: contain, cover cover 90%, cover;
  animation-timeline: view();
}

@keyframes snowcouple-sprite {
  from {
    object-position: 0% 0%;
  }
  to {
    object-position: 0% 100%;
  }
}

@keyframes snowcouple-zoom {
  30% {
    scale: var(--zoom);
  }
  70% {
    scale: var(--zoom);
  }
}

@keyframes snowcouple-tilt {
  20% {
    rotate: 0deg;
  }
  53% {
    rotate: -10deg;
  }
  55% {
    rotate: 0deg;
  }
  63% {
    rotate: 15deg;
  }
  77% {
    rotate: 5deg;
  }
  79% {
    rotate: 15deg;
  }
  100% {
    rotate: 5deg;
  }
}
