body{
    height: 100vh;
    background: radial-gradient(circle at center, #fff, #ccc);
    display: flex;
    justify-content: center;
    align-items: center;
}

.dna{
    /* width: 360px; */
    height: 70px;
    perspective: 400px;
    transform-style: preserve-3d;

}

.ele{
    position: relative;
    width: 1px;
    height: 70px;
    border-left: 1px #b0b0b0 dashed;
    float: left;
    margin: 0 8px;
    transform: rotateX(-360deg);
    animation: run 2s linear infinite;
    animation-delay: calc(0.15s * var(--i));
}

.ele:before,
.ele:after{
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    background: deepskyblue;
    border-radius: 50%;
    left: 50%;
    transform: translateX(-50%);
}

.ele:before{
    top: -3px;
    background: #000;

}

.ele:after{
    bottom: -2px;
}

@keyframes run{
    to{
        transform: none;
    }
}