JSFiddle - React, Tailwind, and code Playground

HTML

<div id="line1">gozvqtqxmpjqjftuvbaevdkmjtzylyyjsryfahzsotygxsuzihfwfzfmrvvcaqejpkjqzxyzeoxotdabpmmbknycvvkqlpxpkfory</div>
<div id="line2">jvaboapseayzbymyjfvkrozyutvqqsjfxjxfqnttuvejyhqiqzctlfkyxrcmvxjmdooksdvyzrlhpakpbfpzfpgvkgmyzzqmtoxew</div>
<div id="moves">51:u 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 51:r 72:u 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 72:r 76:u 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 76:r 82:u 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 82:r 71:u 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 71:r 68:u 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 68:r 81:u 81:r 81:r 81:r 81:r 81:r 81:r 81:r 81:r 81:r 43:u 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 43:r 0:u 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 0:r 53:u 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 53:r 54:u 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r 54:r...

CSS

html   {font-family:monospace;font-size:15px;}
#line1 {position:absolute;top:2em;}
#line2 {color:gray;position:absolute;top:5em;}
#moves {display:none;}
span   {float:left;position:absolute;width:1em;}

JavaScript

$('div:not(#moves)').each(function(){
    c = $(this).text().split("");
    $this = $(this);
    $this.empty();
    i = 0;
    $.each(c, function(x, y) {
        $this.append("<span>" + y + "</span>");
        $('span').last().css({top: "0px", left: i++ + "em"});
    });
});

moves = $('#moves').text().split(" ");    
function animateNextMove() {
    m = moves.shift().split(":");
    if (m[1] == 'l') o = {left:"-=1em"};
    if (m[1] == 'r') o = {left:"+=1em"};
    if (m[1] == 'u') o = {top:"-=1em"};
    if (m[1] == 'd') o = {top:"+=1em"};
    
    $('#line1 span:nth-child(' + ++m[0] + ')').animate(o, 40, 'linear', animateNextMove);
}
animateNextMove();