<img src='https://images.unsplash.com/photo-1544568100-847a948585b9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1517423440428-a5a00ad493e8?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1510771463146-e89e6e86560e?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1507146426996-ef05306b995a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1530281700549-e82e7bf110d6?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1548199973-03cce0bbc87b?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1552053831-71594a27632d?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1518717758536-85ae29035b6d?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1535930891776-0c2dfb7fda1a?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
<img src='https://images.unsplash.com/photo-1504595403659-9088ce801e29?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ' alt=''>
:root {
  --duration: 20s;
  --delay: 20s;
}

html {
  background-color: black;
  animation: shrink var(--duration) var(--delay) linear infinite;
}

body {
  position: relative;
  margin: 0 auto;
  padding: 0 1rem;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  animation: spin var(--duration) var(--delay) linear infinite;
  transform-style: preserve-3d;
  perspective: 25rem;
}

@mixin setImage($a, $x) {
  --name: float-up-#{$a};
  --duration: calc(20s * #{$a});
  left: #{$x}vw;
  z-index: -1 * $a;
}

img {
  --duration: 40s;
  --name: float-up-1;
  position: absolute;
  top: 0;
  left: 0;
  width: 33vw;
  transform: translateY(200vh);
  animation: var(--name) var(--duration) linear infinite;
  box-shadow: 1px 3px 15px rgba(0,0,0,0.5);
  z-index: 1;

  @for $i from 1 through 10 {
    &:nth-child(#{$i}) {
      animation-delay: ($i - 1) * -3s;
    }
  }
  
  &:nth-child(1)  { @include setImage(1,  0) }
  &:nth-child(2)  { @include setImage(3, 10) }
  &:nth-child(3)  { @include setImage(2, 90) }
  &:nth-child(4)  { @include setImage(1, 36) }
  &:nth-child(5)  { @include setImage(3, 62) }
  &:nth-child(6)  { @include setImage(2, 15) }
  &:nth-child(7)  { @include setImage(2, 55) }
  &:nth-child(8)  { @include setImage(3,-20) }
  &:nth-child(9)  { @include setImage(1, 68) }
  &:nth-child(10) { @include setImage(2,  0) }
}

@keyframes float-up-3 {
  from {
    transform: translateY(200vh) translateZ(-50vh);
  }
  to {
    transform: translateY(-200vh) translateZ(-50vh);
  }
}

@keyframes float-up-2 {
  from {
    transform: translateY(150vh) translateZ(-25vh);
  }
  to {
    transform: translateY(-150vh) translateZ(-25vh);
  }
}

@keyframes float-up-1 {
  from {
    transform: translateY(100vh);
  }
  to {
    transform: translateY(-100vh);
  }
}

@keyframes spin {
  10%,
  100% {
    transform: rotateY(360deg);
  }
}

@keyframes shrink {
  0% {
    transform: scale(1) translateX(0);
  }
  2.5% {
    transform: scale(0.75) translateX(5%);
  }
  7.5% {
    transform: scale(0.75) translateX(-5%);
  }
  10%,
  100% {
    transform: scale(1);
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.