body { position: fixed; margin: 0; overflow: hidden; touch-action: none; } @keyframes color { 10% { color: #a43535; } 20% { color: #ff7b00; } 30% { color: #ffff51; } 40% { color: #a7ff4e; } 50% { color: #7addfe; } 60% { color: #6b6bfd; } 70% { color: #ca61ff; } 80% { color: #ff54af; } 90% { color: #f3bbff; } } svg { color: #f3bbff; font-size: 240px; animation: color 10s infinite linear; position: absolute; } div { position: absolute; border-radius: 50%; background-color: #007bff; transition: transform 1000ms ease-in-out, opacity 1000ms ease-in-out; } img { position: absolute; left: 50vw; transform: translateX(-50%); height: 100vh; }