.spinner1 {
    transform: rotateZ(45deg);
    perspective: 1000px;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    color: #1a2c5e;
}
.spinner1:before,
.spinner1:after {
    content: '';
    display: block;
    position: absolute;
    width: inherit;
    height: inherit;
    border-radius: 50%;
    transform: rotateX(70deg);
    animation: 1s spin linear infinite;
}
.spinner1:after {
    color: #6f91ee;
    transform: rotateY(70deg);
    animation-delay: .4s;
}

@keyframes rotate {
    0% {
        transform: translate(-50%, -50%) rotateZ(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotateZ(360deg);
    }
}
@keyframes rotateccw {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(-360deg);
    }
}
@keyframes spin {
    0%,
    100% {
        box-shadow: .2em 0px 0 0px currentcolor;
    }
    12% {
        box-shadow: .2em .2em 0 0 currentcolor;
    }
    25% {
        box-shadow: 0 .2em 0 0px currentcolor;
    }
    37% {
        box-shadow: -.2em .2em 0 0 currentcolor;
    }
    50% {
        box-shadow: -.2em 0 0 0 currentcolor;
    }
    62% {
        box-shadow: -.2em -.2em 0 0 currentcolor;
    }
    75% {
        box-shadow: 0px -.2em 0 0 currentcolor;
    }
    87% {
        box-shadow: .2em -.2em 0 0 currentcolor;
    }
}


.spinner2 {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: block;
    margin:15px auto;
    position: relative;
    background: #09573d;
    box-shadow: -24px 0 #09573d, 24px 0 #09573d;
    box-sizing: border-box;
    animation: shadowPulse 2s linear infinite;
}

@keyframes shadowPulse {
    33% {
        background: #09573d;
        box-shadow: -24px 0 aquamarine, 24px 0 #09573d;
    }
    66% {
        background: aquamarine;
        box-shadow: -24px 0 #09573d, 24px 0 #09573d;
    }
    100% {
        background: #09573d;
        box-shadow: -24px 0 #09573d, 24px 0 aquamarine;
    }
}


.spinner3 {
    width: 16px;
    height: 16px;
    position: relative;
    left: -32px;
    border-radius: 50%;
    color: #09573d;
    background: currentColor;
    box-shadow: 32px 0 , -32px 0 ,  64px 0;
}

.spinner3::after {
    content: '';
    position: absolute;
    left: -32px;
    top: 0;
    width: 16px;
    height: 16px;
    border-radius: 10px;
    background: aquamarine;
    animation: move 3s linear infinite alternate;
}

@keyframes move {
    0% , 5%{
        left: -32px;
        width: 16px;
    }
    15% , 20%{
        left: -32px;
        width: 48px;
    }
    30% , 35%{
        left: 0px;
        width: 16px;
    }
    45% , 50%{
        left: 0px;
        width: 48px;
    }
    60% , 65%{
        left: 32px;
        width: 16px;
    }

    75% , 80% {
        left: 32px;
        width: 48px;
    }
    95%, 100% {
        left: 64px;
        width: 16px;
    }
}