h.SHOW.pop();
  container.insertBefore(newState, target);
  target.style.transitionDelay = -fastForward + 'ms';
}

requestAnimationFrame(function(time) {
  var startTime = time - duration;
  var step = 0;

  function staggeredStart(time) {
    var elapsed = time - startTime;
    var targetStep = Math.floor(N * elapsed / duration);
    step = Math.max(targetStep - N, step);
    for (; step < targetStep; step++) {
      startTransition(targets[step % N], elapsed - (step / N * duration));
    }
    requestAnim