JSFiddle - React, Tailwind, and code Playground
by fxi
HTML
<body bgcolor=x onload='setInterval(f=H/*appy New Year*/=>{for(i=0,w=19,b=30583,t++,o=``,l=f+o;i<l.length;o+=(l[i++]+(i%w?``:`\n`)).fontcolor(!([b,17492,30551,4433,b][i/w+t&7]&1<<i%w-3)&&H));p.innerHTML=o/**/},t=500)'><pre id=p>
CSS
body {
display: flex;
justify-content: center;
align-items: center;
margin: 50px;
outline: 1px solid #f0f;
background-color: #333;
}
JavaScript
// better, but characters are not all monospaced, prduce unreguar lines
//setInterval(f=H/*appy New Year*/=>{for(i=0,w=19,t++,o=``,l=f+o;i<l.length;o+=(l[i++]+(i%w?``:`\n`)).fontcolor(!(H.charCodeAt(i/w+t&7)&1<<i%w-3)&&p.x));p.innerHTML=o},t=6e2,`睷䑔睗ᅑ睷`)
// Smarter, but encoded 2022 not included
//setInterval(f=H/*appy New Year*/=>{for(i=0,w=19,t++,o=``,l=f+o;i<l.length;o+=(l[i++]+(i%w?``:`\n`)).fontcolor(!(H.charCodeAt(i/w+t&7)&1<<i%w-3)&&p.x));p.innerHTML=o},t=6e2,`睷䑔睗ᅑ睷`)
// Compromise : char numbers
//setInterval(f=H/*appy New Year*/=>{for(i=0,w=19,b=30583,t++,o=``,l=f+o;i<l.length;o+=(l[i++]+(i%w?``:`\n`)).fontcolor(!([b,17492,30551,4433,b][i/w+t&7]&1<<i%w-3)&&H));p.innerHTML=o/**/},t=500)