*
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    min-height: 100vh;
    background: #111;
    overflow: hidden;
}
span
{
    position: absolute;
    pointer-events: none;
    filter: drop-shadow(0 0 15px rgba(0,0,0,0.5));
    animation: fadeInOut 1s linear infinite;
}
@keyframes fadeInOut
{
    0%,100%
    {
        opacity: 0;
    }
    20%,80%
    {
        opacity: 1;
    }
}
span::before
{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: url(heart.png);
    background-size: cover;
    animation: moveShape 1s linear infinite;
}
@keyframes moveShape
{
    0%
    {
        transform: translate(0) rotate(0deg);
    }
    100%
    {
        transform: translate(300px) rotate(360deg);
    }
}