.background {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    backface-visibility: hidden;
}

.background span {
    width: 20vmin;
    height: 20vmin;
    border-radius: 20vmin;
    backface-visibility: hidden;
    position: absolute;
    animation-name: move;
    animation-duration: 6s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.background span:nth-child(1) {
    color: #1a4d7a;
    top: 9%;
    left: 40%;
    animation-duration: 11.6s;
    animation-delay: -11.8s;
    transform-origin: -11vw 6vh;
    box-shadow: 40vmin 0 11.2244954949vmin currentColor;
}

.background span:nth-child(2) {
    color: #4fa3d1;
    top: 95%;
    left: 10%;
    animation-duration: 11.1s;
    animation-delay: -8.8s;
    transform-origin: 6vw -11vh;
    box-shadow: -40vmin 0 10.7527617336vmin currentColor;
}

.background span:nth-child(3) {
    color: #1a4d7a;
    top: 1%;
    left: 6%;
    animation-duration: 10.4s;
    animation-delay: -5.1s;
    transform-origin: 16vw -24vh;
    box-shadow: -40vmin 0 12.529395907vmin currentColor;
}

.background span:nth-child(4) {
    color: #4fa3d1;
    top: 84%;
    left: 15%;
    animation-duration: 15.4s;
    animation-delay: -15.5s;
    transform-origin: 21vw 1vh;
    box-shadow: 40vmin 0 13.4029969492vmin currentColor;
}

.background span:nth-child(5) {
    color: #4fa3d1;
    top: 82%;
    left: 53%;
    animation-duration: 12.4s;
    animation-delay: -1s;
    transform-origin: -16vw 6vh;
    box-shadow: -40vmin 0 13.1602589963vmin currentColor;
}

.background span:nth-child(6) {
    color: #4fa3d1;
    top: 30%;
    left: 53%;
    animation-duration: 10.1s;
    animation-delay: -3.7s;
    transform-origin: 22vw -21vh;
    box-shadow: -40vmin 0 10.0018733506vmin currentColor;
}

.background span:nth-child(7) {
    color: #2b6a9e;
    top: 25%;
    left: 79%;
    animation-duration: 13.2s;
    animation-delay: -8.1s;
    transform-origin: 14vw -14vh;
    box-shadow: 40vmin 0 6.767426562vmin currentColor;
}

.background span:nth-child(8) {
    color: #4fa3d1;
    top: 72%;
    left: 16%;
    animation-duration: 11s;
    animation-delay: -5.5s;
    transform-origin: 10vw -5vh;
    box-shadow: 40vmin 0 14.3523314257vmin currentColor;
}

.background span:nth-child(9) {
    color: #2b6a9e;
    top: 44%;
    left: 80%;
    animation-duration: 15.4s;
    animation-delay: -14.7s;
    transform-origin: 24vw -10vh;
    box-shadow: -40vmin 0 7.8191625684vmin currentColor;
}

.background span:nth-child(10) {
    color: #2b6a9e;
    top: 30%;
    left: 50%;
    animation-duration: 13.4s;
    animation-delay: -2.3s;
    transform-origin: 6vw -1vh;
    box-shadow: 40vmin 0 6.1058676225vmin currentColor;
}

.background span:nth-child(11) {
    color: #4fa3d1;
    top: 64%;
    left: 19%;
    animation-duration: 10.1s;
    animation-delay: -5.1s;
    transform-origin: 0vw 8vh;
    box-shadow: 40vmin 0 11.3179903873vmin currentColor;
}

.background span:nth-child(12) {
    color: #1a4d7a;
    top: 8%;
    left: 8%;
    animation-duration: 13.8s;
    animation-delay: -9.4s;
    transform-origin: 12vw -13vh;
    box-shadow: -40vmin 0 13.0770329299vmin currentColor;
}

.background span:nth-child(13) {
    color: #2b6a9e;
    top: 51%;
    left: 46%;
    animation-duration: 13.4s;
    animation-delay: -7.9s;
    transform-origin: -20vw -3vh;
    box-shadow: -40vmin 0 14.231587177vmin currentColor;
}

.background span:nth-child(14) {
    color: #1a4d7a;
    top: 12%;
    left: 32%;
    animation-duration: 15s;
    animation-delay: -9.6s;
    transform-origin: 2vw 11vh;
    box-shadow: 40vmin 0 7.0783330873vmin currentColor;
}

.background span:nth-child(15) {
    color: #2b6a9e;
    top: 84%;
    left: 24%;
    animation-duration: 14.7s;
    animation-delay: -2s;
    transform-origin: 20vw -4vh;
    box-shadow: 40vmin 0 12.6119688744vmin currentColor;
}

.background span:nth-child(16) {
    color: #1a4d7a;
    top: 100%;
    left: 78%;
    animation-duration: 15.3s;
    animation-delay: -8.3s;
    transform-origin: -16vw -20vh;
    box-shadow: -40vmin 0 7.7369028002vmin currentColor;
}

.background span:nth-child(17) {
    color: #1a4d7a;
    top: 39%;
    left: 99%;
    animation-duration: 14.1s;
    animation-delay: -10.1s;
    transform-origin: 25vw -10vh;
    box-shadow: 40vmin 0 13.7761155839vmin currentColor;
}

.background span:nth-child(18) {
    color: #2b6a9e;
    top: 4%;
    left: 42%;
    animation-duration: 10.2s;
    animation-delay: -14.1s;
    transform-origin: 0vw -15vh;
    box-shadow: 40vmin 0 5.4280440242vmin currentColor;
}

.background span:nth-child(19) {
    color: #1a4d7a;
    top: 13%;
    left: 59%;
    animation-duration: 14.7s;
    animation-delay: -5s;
    transform-origin: 7vw 10vh;
    box-shadow: -40vmin 0 9.7812788681vmin currentColor;
}

.background span:nth-child(20) {
    color: #1a4d7a;
    top: 32%;
    left: 44%;
    animation-duration: 12.5s;
    animation-delay: -6.1s;
    transform-origin: -10vw -3vh;
    box-shadow: -40vmin 0 8.5523205962vmin currentColor;
}

@keyframes move {
    100% {
        transform: translate3d(0, 0, 1px) rotate(360deg);
    }
}