Skip to main content
3 of 8
added 5 characters in body

#Python 2, 218 200 bytes

f = 'Happy birthday Raffaele Cecco ';import time
while 1:
    print '\n'*30,f[:12],''.join('\n'+a+' '*10+b for a,b in zip(f[-1]+f[-3:-1][::-1],f[12:16])),'\n',f[-15:-3][::-1];f=f[1:]+f[:1];time.sleep(.5)

Probably could be optimized a bit

Try it online!