/* Big-merge moment (public/merge-moment.js). transform: scale ONLY: no filter,
   blur, backdrop-filter or box-shadow keyframes (GPU heat on phones). The
   classes exist only while a pop plays, so will-change is scoped to it too.
   .cell clips overflow, so the popping cell alone is lifted (.pop-lift).
   Selectors are (0,3,0) so they beat .block.merging and the tier animations
   (.block-tN) regardless of where this sheet sits in the cascade. */
.cell.pop-lift {
  overflow: visible;
  z-index: 4;
}
.cell .block.pop-t1 {
  animation: merge-pop-t1 0.52s ease-out;
  will-change: transform;
}
.cell .block.pop-t2 {
  animation: merge-pop-t2 0.76s ease-out;
  will-change: transform;
}
@keyframes merge-pop-t1 {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.38);
  }
  50% {
    transform: scale(0.94);
  }
  75% {
    transform: scale(1.06);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes merge-pop-t2 {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.55);
  }
  50% {
    transform: scale(0.9);
  }
  75% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cell .block.pop-t1,
  .cell .block.pop-t2 {
    animation: none;
    will-change: auto;
  }
}
