.emoji { font-size: min(30vh, 30vw); text-align: center; animation: 1.2s linear infinite rotation } @keyframes rotation { from { transform: rotate(0deg) } to { transform: rotate(360deg) } } body { --s: 25vmin; --鱻: calc(var(--s)/2); --䨻: rgb(225, 0, 255); --龘: rgb(62, 0, 121); --麤: rgb(46, 0, 0); --𱁬: var(--麤); --d: 4000ms; --e: cubic-bezier(0.76, 0, 0.24, 1); background-color: var(--𱁬); background-image: linear-gradient(45deg, var(--䨻)25%, transparent 25%), linear-gradient(-45deg, var(--䨻)25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--龘)75%), linear-gradient(-45deg, transparent 75%, var(--龘)75%); background-size: var(--s)var(--s); background-position: calc(var(--鱻)*1)calc(var(--鱻)*0), calc(var(--鱻)*-1)calc(var(--鱻)*1), calc(var(--鱻)*1)calc(var(--鱻)*-1), calc(var(--鱻)*-1)calc(var(--鱻)*0); animation: color var(--d)var(--e)infinite, position var(--d)var(--e)infinite } @keyframes color { 0%, 25% { --𱁬: var(--麤) } 26%, 50% { --𱁬: var(--䨻) } 51%, 75% { --𱁬: var(--麤) } 76%, 100% { --𱁬: var(--龘) } } @keyframes position { 0% { background-position: calc(var(--鱻)*1)calc(var(--鱻)*0), calc(var(--鱻)*-1)calc(var(--鱻)*1), calc(var(--鱻)*1)calc(var(--鱻)*-1), calc(var(--鱻)*-1)calc(var(--鱻)*0) } 25% { background-position: calc(var(--鱻)*1)calc(var(--鱻)*4), calc(var(--鱻)*-1)calc(var(--鱻)*5), calc(var(--鱻)*1)calc(var(--鱻)*3), calc(var(--鱻)*-1)calc(var(--鱻)*4) } 50% { background-position: calc(var(--鱻)*3)calc(var(--鱻)*8), calc(var(--鱻)*-3)calc(var(--鱻)*9), calc(var(--鱻)*2)calc(var(--鱻)*7), calc(var(--鱻)*-2)calc(var(--鱻)*8) } 75% { background-position: calc(var(--鱻)*3)calc(var(--鱻)*12), calc(var(--鱻)*-3)calc(var(--鱻)*13), calc(var(--鱻)*2)calc(var(--鱻)*11), calc(var(--鱻)*-2)calc(var(--鱻)*12) } 100% { background-position: calc(var(--鱻)*5)calc(var(--鱻)*16), calc(var(--鱻)*-5)calc(var(--鱻)*17), calc(var(--鱻)*5)calc(var(--鱻)*15), calc(var(--鱻)*-5)calc(var(--鱻)*16) } }