* {
  box-sizing: border-box;
}

body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: flex-start;
  background: linear-gradient(180deg, rgb(0, 150, 180) 0%, rgb(0, 100, 150) 100%);
  overflow: hidden;
  position: relative;
}

.fish {
  width: 150px;
  filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
}

.fish:nth-child(1) {
  animation: swim1 8s ease-in-out infinite;
}

.fish:nth-child(2) {
  animation: swim2 10s ease-in-out infinite;
  animation-delay: -2s;
}

.fish:nth-child(3) {
  animation: swim3 12s ease-in-out infinite;
  animation-delay: -4s;
}

.fish:nth-child(4) {
  animation: swim4 9s ease-in-out infinite;
  animation-delay: -6s;
}

@keyframes swim1 {
  0% {
    transform: translateX(-200px) translateY(0);
  }

  100% {
    transform: translateX(calc(100vw + 50px)) translateY(-100px);
  }
}

@keyframes swim2 {
  0% {
    transform: translateX(100vw) translateY(0px) scaleX(-1);
  }

  50% {
    transform: translateX(calc(50vw)) translateY(120px) scaleX(-1);
  }

  100% {
    transform: translateX(-150px) translateY(-240px) scaleX(-1) rotate(-20deg);
  }
}

@keyframes swim3 {
  0% {
    transform: translateX(-400px) translateY(0);
  }

  100% {
    transform: translateX(calc(100vw + 50px)) translateY(200px);
  }
}

@keyframes swim4 {
  0% {
    transform: translateX(-200px) translateY(0px);
  }

  50% {
    transform: translateX(50vw) translateY(35px);
  }

  51% {
    transform: translateX(50vw) translateY(35px) scaleX(-1);
  }

  100% {
    transform: translateX(-100px) translateY(35px) scaleX(-1);
  }
}