<div id="countdown"></div>
@import url(https://fonts.googleapis.com/css?family=Roboto+Condensed:700italic);
body {
  background-color: black;  
}
#countdown {
  font-family: 'Roboto Condensed', sans-serif;
  width: 200px;
  height: 100px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -100px;
  margin-top: -50px;
  color: white;
  font-size: 5em;
  text-align: center;
  font-weight: bold;
  font-style: italic;
  .opacity(1.0);
  .transition(opacity 0.4s ease);
  /* solve for flicker problem */
  -webkit-perspective: 1000;
  -webkit-backface-visibility: hidden;    
} 
#countdown.puffer {
  .opacity(0);
  .transform(scale(1.6,1.6));
  .transition(all 0.4s ease-out);
}

/* LESS Mixins */
.opacity (@opacity: 0.5) {
	-webkit-opacity: 	@opacity;
	-moz-opacity: 		@opacity;
	opacity: 		@opacity;
}
.transition (@transition) {
	-webkit-transition: @transition;  
	-moz-transition:    @transition;
	-ms-transition:     @transition; 
	-o-transition:      @transition;  
}
.transform(@string){
	-webkit-transform: @string;
	-moz-transform: 	 @string;
	-ms-transform: 		 @string;
	-o-transform: 		 @string;
}
View Compiled
var startNum;
var currentNum;

function addClassDelayed(jqObj, c, to) {    
    setTimeout(function() { jqObj.addClass(c); }, to);
}

function anim() { 
  addClassDelayed($("#countdown"), "puffer", 600);
  if (currentNum == 0) currentNum = startNum-1; else currentNum--;
  $('#countdown').html(currentNum+1);
  $('#countdown').removeClass("puffer");
}
      
$(function() {
  startNum = 25; 
  currentNum = startNum;
  $("#countdown").html(currentNum); // init first time based on n
  self.setInterval(function(){anim()},1325);
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js