JSFiddle - React, Tailwind, and code Playground

HTML

<div class="greenbox">Rotate</div>

<!-- I want the transition effect to kick in when the animation stops. Works fine in Firefox, but not in Chrome/Safari -->

CSS

.greenbox {
    position: absolute;
    top: 25px;
    left: 25px;
    width: 100px;
    height: 100px;           
    background-color: #35a834;
    text-align: center;
    
    /* Not working */
    -webkit-transition-duration: 1s;
    -webkit-transition-timing-function: linear;
    -webkit-transform: rotate(360deg);

    /* Working */
    -moz-transition-duration: 1s;
    -moz-transition-timing-function: linear;
    -moz-transform: rotate(360deg);
}

.greenbox:hover {
    -webkit-animation: spin 1.0s linear infinite;
       -moz-animation: spin 1.0s linear infinite;
}

@-webkit-keyframes spin {
      0%   {-webkit-transform: rotate(0deg);}
      100% {-webkit-transform: rotate(360deg);}
}

@-moz-keyframes spin {
      0%   {-moz-transform: rotate(0deg);}
      100% {-moz-transform: rotate(360deg);}
}