HTML Pug and SCSS Animation script not works in Chrome Browser

I get this Boxes Animation script from Codepen but it not working in Chrome browser, Can anyone figure out why it is not working in chrome browser? however it is perfectly working in firefox browser.

The script is built in Html(pug) and SCSS.

SCSS Code:

  $delay: 1250ms;
$duration: 6000ms;
$size: 25px;
$half: $size / 2;
$nalf: $size / -2;

$total-blocks: 50;

html, body {
   height: 100%; 
   margin: 0;
   overflow: hidden;
}

* {
   box-sizing: border-box;
}

body {
   display: flex;
   height: 100%;
   width: 100%;
   justify-content: center;
   align-items: center; 
   background-image: linear-gradient(to top, #c6c6c6, #ffffff 10vh, #e7e7e7 10vh, #EEE);
}

.ready {
   display: grid;
   grid-gap: $size;
   grid-template-columns: repeat(5, 1fr);
   
   animation: lateral $duration linear infinite both;
   animation-delay: $delay / 2;
}

.R { 
   grid-template-areas:
      "a1 a6 a8"
      "a2 . a9"
      "a3 a7 ."
      "a4 . a10"
      "a5 . a11";

   > :nth-child(8),
   > :nth-child(9) {
      top: $half;
      position: relative;
   }
   > :nth-child(10) {
      left: $nalf;
      position: relative;
   }
}

.E { 
   grid-template-areas:
      "a1 a6 a9"
      "a2 . ."
      "a3 a7 a10"
      "a4 . ."
      "a5 a8 a11";
}

.A { 
   grid-template-areas:
      ". a1 ."
      "a2 . a7"
      "a3 . a8"
      "a4 a6 a9"
      "a5 . a10";

   > :nth-child(2) {
      left: $half;
      position: relative;
   }
   > :nth-child(7) {
      left: $nalf;
      position: relative;
   }
}

.D { 
   grid-template-areas:
      "a1 a6 a8"
      "a2 . a9"
      "a3 . a10"
      "a4 . a11"
      "a5 a7 .";
   > :nth-child(n + 8) {
      top: $half;
      position: relative;
   }
}

.Y {
   grid-template-areas:
      "a1 . a6"
      "a2 . a7"
      "a3 . a8"
      ". a4 ."
      ". a5 .";

   > :nth-child(3) {
      left: $half;
      position: relative;
   }
   > :nth-child(8) {
      left: $nalf;
      position: relative;
   }
}

.letter {
   display: grid;
   grid-gap: 4px;
}

.block {
   --ratio: calc(var(--index) / #{$total-blocks});
   --delay: calc(calc(var(--ratio) * #{$delay / 2}) + #{$delay / 2}); 
     
   transform-style: preserve-3d; 
   transform: rotate(calc(var(--angle) * 1deg)) translate3d(calc(var(--sign) * 200vw), 0, 0) rotate3d(1, 0, 0, -90deg) rotate3d(0, 1, 0, 90deg);
   animation-name: block-intro;
   animation-timing-function: ease-in;  
   animation-fill-mode: both;
   animation-iteration-count: infinite;
   animation-delay: var(--delay);
   animation-direction: reverse;
   animation-duration: $duration;
   position: relative;
   z-index: -1;
   
   height: $size;
   width: $size;
   will-change: transform;

   .face {
      display: block;
      position: absolute;
      background-color: #2e92de;
      backface-visibility: visible;
      width: $size;
      height: $size;
      border: solid 1px #2f454f;
      display: flex;
      justify-content: center;
      align-items: center;
   }

   .face-1 {
      transform-origin: bottom center;
   }

   .face-2 {
      transform: rotateX(-90deg);
      transform-origin: bottom center;
      overflow: hidden;
      
      &:before {
         content: '';
         position: absolute;
         background-color: #00d2ff99;
         top: 0;
         left: 0;
         right: 0;
         bottom: 0;
         animation: shimmer $duration linear;
         animation-delay: var(--delay);
         animation-fill-mode: both;
         animation-iteration-count: infinite;
      }
      // display: none;
   }
   .face-3 {
      transform: rotateY(90deg);
      transform-origin: right center;
      // display: none;
   }
}
 
@keyframes block-intro { 
   40%  {
      transform: rotate(0deg) translate3d(0, 0, 0) rotate3d(1, 0, 0, -90deg) rotate3d(0, 1, 0, 90deg);
      animation-timing-function: cubic-bezier(.95,.05,.8,.04);
   }
   70% { 
      transform: rotate(0deg) translate3d(0, 0, 0) rotate3d(1, 0, 0, -90deg) rotate3d(0, 1, 0, 90deg);
      animation-timing-function: linear;
   }
   80% { 
      transform: rotate(0deg) translate3d(0, 0, 0) rotate3d(1, 0, 0, 0deg) rotate3d(0, 1, 0, 0deg);
      animation-timing-function: linear;
   }
   100% {  
      transform: rotate(0deg) translate3d(150vw, 0, 0) rotate3d(1, 0, 0, 0deg) rotate3d(0, 1, 0, 0deg);
      animation-timing-function: ease-out;
   }
}

@keyframes lateral {
   from {
      transform: translateX(12%)
   }
   to {
      transform: translateX(-12%)
   }
}

@keyframes shimmer {
   from, 25% {
      transform: scale(2, 1) rotate(-45deg) translate(-100%);
   }
   35%, to {
      transform: scale(2, 1) rotate(-45deg) translate(0%);
   }
}  

HTML Pug Code

.ready
   - var t = -1
   - var n = -1
   .letter.R
      while n++ < 10
        .block(style={ "--index": ++t, "--angle": (147 * t) % 360, "--sign": t % 2 ? 1 : -1, "grid-area": "a" + (n+1) })
          .face.face-1
          .face.face-2
          .face.face-3

   - n = -1;
   .letter.E
      while n++ < 10
        .block(style={ "--index": ++t, "--angle": (-147 * t) % 360, "--sign": t % 2 ? 1 : -1, "grid-area": "a" + (n+1) })
          .face.face-1
          .face.face-2
          .face.face-3

   - n = -1;
   .letter.A
      while n++ < 9
        .block(style={ "--index": ++t, "--angle": (147 * t) % 360, "--sign": t % 2 ? 1 : -1, "grid-area": "a" + (n+1) })
          .face.face-1
          .face.face-2
          .face.face-3
          
   - n = -1;
   .letter.D
      while n++ < 10
        .block(style={ "--index": ++t, "--angle": (-147 * t) % 360, "--sign": t % 2 ? 1 : -1, "grid-area": "a" + (n+1) })
          .face.face-1
          .face.face-2
          .face.face-3
          
   - n = -1;
   .letter.Y
      while n++ < 7
        .block(style={ "--index": ++t, "--angle": (147 * t) % 360, "--sign": t % 2 ? 1 : -1, "grid-area": "a" + (n+1) })
          .face.face-1
          .face.face-2
          .face.face-3

Please Fix this Code to run in Chrome Browser.

The source for this script is from Codepen:

https://codepen.io/notoriousb1t/pen/vroZox

Thanks