* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background-color: #000;
}
.circle {
    position: relative;
    width: 500px;
    height: 500px;
    filter: url(#wavy) blur(1px);
}
.circle::before{
    content: '';
    position: absolute;
    top: 100px;
    left: 100px;
    right: 100px;
    bottom: 100px;
    border: 20px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 50px #0f0,inset 0 0 50px #0f0;
    -webkit-box-reflect: below 10px linear-gradient(transparent, transparent,#0002);
    animation: animate 5s linear infinite;
}
.circle::after{
    content: '';
    position: absolute;
    top: 100px;
    left: 100px;
    right: 100px;
    bottom: 100px;
    border: 20px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 50px #fff,inset 0 0 50px #fff;
}

@keyframes animate {
    0%{
        box-shadow: 0 0 50px #0f0,inset 0 0 50px #0f0;
        filter: hue-rotate(0deg);
    }
    20%{
        box-shadow: 0 0 40px #0f0,inset 0 0 60px #0f0;
    }
    40%{
        box-shadow: 0 0 40px #0f0,inset 0 0 80px #0f0;
    }
    60%{
        box-shadow: 0 0 80px #0f0,inset 0 0 80px #0f0;
    }
    80%{
        box-shadow: 0 0 100px #0f0,inset 0 0 100px #0f0;
    }
    100%{
        box-shadow: 0 0 50px #0f0,inset 0 0 50px #0f0;
        filter: hue-rotate(360deg);
    }
}
svg{
    width: 0;
    height: 0;
}