# [Jelly], <s>74&nbsp;</s> 65 [bytes]

    “ÆÇÐÑ÷øœ‘Ṭœṗ⁸ṙ©-¤4421œ?U0¦;"⁷,⁶ẋ⁵¤¤ṁ9¤ȮœS.®ß
    “9ɲcḟ#%⁴1t(ŀȷUCOw⁾»Ç

Windows version running in a 6 line high cp-65001 console.  
There is a half a second (plus evaluation) pause between iterations:

[![gif of output][1]][1]

### How?


    “9ɲcḟ#%⁴1t(ŀȷUCOw⁾»Ç - Main link: no arguments
    “9ɲcḟ#%⁴1t(ŀȷUCOw⁾»  - compression of [d( Happy)+d( birthday)+d( Raff)+s(aele)+d( Ce)+d(cc)+s(o)] - d=dictionaryLookup, s=stringEncode.
                         -              = " Happy birthday Raffaele Cecco"
                       Ç - call last link (1) as a monad
    
    “ÆÇÐÑ÷øœ‘Ṭœṗ⁸ṙ©-¤4421œ?U0¦;"⁷,⁶ẋ⁵¤¤ṁ9¤ȮœS.®ß - Link 1, rotate, print, recurse: string s
                    ¤                            - nilad followed by link(s) as a nilad:
                ⁸                                -   link's left argument (initially s)
                   -                             -   literal -1
                 ṙ                               -   rotate left -1 (e.g. "blah" -> "hbla")
                  ©                              -   copy to register and yield
    “ÆÇÐÑ÷øœ‘                                    - literal: [13,14,15,16,28,29,30]
             Ṭ                                   - untruth: [0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1]
              œṗ                                 - partition right at truthy indexes of left
                                                 -   chops up the rotated string into 8
                                                 -   e.g. [" Happy birth",'d','a','y'," Raffaele Ce",'c','c','o'])
                 4421œ?                          - get the 4421st permutation of those items
                                                 -   e.g. [" Happy birth",'o','d','c','a','c','y'," Raffaele Ce"]
                             ¦                   - apply to indexes:
                            0                    -   0 (right most)
                           U                     -   upend  (e.g. " Raffaele Ce" -> "eC eleaffaR ")
                                         ¤       - nilad followed by link(s) as a nilad:
                                      ¤          -   nilad followed by link(s) as a nilad:
                                     ¤           -     nilad followed by link(s) as a nilad:
                                  ⁶              -       literal space
                                    ⁵            -       literal 10
                                   ẋ             -       repeat: "          "
                                ⁷                -     literal new line
                                 ,               -     pair: ['\n',"          "]
                                         9       -   literal 9
                                        ṁ        -   mould like: ['\n',"          ",'\n',"          ",'\n',"          ",'\n',"          ",'\n']
                               "                 - zip with:
                              ;                  -   concatenation
                                                 -     e.g. [" Happy birth\n","o          ","d\n","c          ","a\n","c          ","y\n","eC eleaffaR           ","\n"])
                                          Ȯ      - print and yield
                                             .   - literal 0.5
                                           œS    - after sleeping right seconds yield left
                                              ®  - recall value from register (s rotated by 1)
                                               ß - call this link (1) with the same arity (as a monad)



[Jelly]: https://github.com/DennisMitchell/jelly
[bytes]: https://github.com/DennisMitchell/jelly/wiki/Code-page


  [1]: https://i.sstatic.net/H9cJd.gif