.flip-number {
  background-color: rgb(0, 90, 176);
  height: 76vh;
}

.flip-number-title {
  position: absolute !important;
  color: white;
  font-weight: bolder;
  padding-top: 7.5vh;
  z-index: 10;
}

.flip-number-subtitle {
  color: black;
  letter-spacing: 3px;
}

@keyframes animate-top {

  0% {
    transform-origin: 50% 100%;
  }

  99% {
    opacity: 1;
    transform-origin: 50% 100%;
    transform: translateX(0px) translateY(0.0em) translateZ(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
  }

  100% {
    opacity: 0;
    transform-origin: bottom center;
    transform: translateX(0px) translateY(0em) translateZ(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
  }

}

@keyframes animate-bottom {

  0% {
    opacity: 1;
  }

  100% {
    opacity: 1;
    transform-origin: top center;
    transform: translateX(0) translateY(0) translateZ(0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }

}

@-webkit-keyframes animate-top {

  0% {
    -webkit-transform-origin: 50% 100%;
  }

  99% {
    opacity: 1;
    -webkit-transform-origin: 00% 100%;
    -webkit-transform: translateX(0px) translateY(0.0em) translateZ(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
  }

  100% {
    opacity: 0;
    -webkit-transform-origin: bottom center;
    -webkit-transform: translateX(0px) translateY(0em) translateZ(0px) rotateX(-90deg) rotateY(0deg) rotateZ(0deg);
  }

}

@-webkit-keyframes animate-bottom {

  0% {
    opacity: 1;
  }

  100% {
    opacity: 1;
    -webkit-transform-origin: top center;
    -webkit-transform: translateX(0) translateY(0) translateZ(0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }

}

.number {
  display: inline-block;
  position: relative;
  font-size: 5em;
  width: 1em;
  height: 1.5em;
}

.number span {
  position: absolute;
  display: block;
  font-weight: bolder;
  text-align: center;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  color: white;
  width: 1em;
  height: 1.5em;
  /* perspective: 7.14em; */
}

.number span:before {
  display: block;
  height: 0.75em;
  overflow: hidden;
  line-height: 1.5em;
  background: rgb(0, 90, 176);
}

.number span:after {
  display: block;
  height: 0.75em;
  overflow: hidden;
  line-height: 0;
  background: rgb(0, 90, 176);
}

.flip .primary:before {
  animation: animate-top 67.5ms;
  -moz-animation-fill-mode: forwards;
  -webkit-animation: animate-top 67.5ms;
  -webkit-animation-fill-mode: forwards;
  background:  rgb(0, 90, 176);
}

.flip .primary:after {
  animation: animate-bottom 67.5ms;
  -moz-animation-fill-mode: forwards;
  animation-delay: 67.5ms;
  -webkit-animation: animate-bottom 67.5ms;
  -webkit-animation-fill-mode: forwards;
  -webkit-animation-delay: 67.5ms;
}

.digit-0.flip .primary:before {
  animation: animate-top 67.5ms;
  -moz-animation-fill-mode: forwards;
  -webkit-animation: animate-top 67.5ms;
  -webkit-animation-fill-mode: forwards;
  background:  rgb(0, 90, 176);
}

.digit-0.flip .primary:after {
  animation: animate-bottom 67.5ms;
  -moz-animation-fill-mode: forwards;
  animation-delay: 67.5ms;
  -webkit-animation: animate-bottom 67.5ms;
  -webkit-animation-fill-mode: forwards;
  -webkit-animation-delay: 67.5ms;
}

.primary:before {
  transform-origin: bottom center;
  transform: translateX(0px) translateY(0.0em) translateZ(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);
}

.primary:after {
  opacity: 0;
  transform-origin: top center;
  transform: translateX(0) translateY(0em) translateZ(0em) rotateX(90deg) rotateY(0deg) rotateZ(0deg);
  -webkit-transform-origin: top center;
  -webkit-transform: translateX(0) translateY(0em) translateZ(0em) rotateX(90deg) rotateY(0deg) rotateZ(0deg);
}

.primary {
  z-index: 2;
}

.secondary {
  z-index: 1;
}

/* Number 0 */

[data-number="0"] span.primary:before {
  content: "0";
}

[data-number="0"] span.secondary:after {
  content: "0";
}

[data-number="0"] span.secondary:before {
  content: "1";
}

[data-number="0"] span.primary:after {
  content: "1";
}

/* Number 9 */

[data-number="9"] span.primary:before {
  content: "9";
}

[data-number="9"] span.secondary:after {
  content: "9";
}

[data-number="9"] span.secondary:before {
  content: "0";
}

[data-number="9"] span.primary:after {
  content: "0";
}

/* Number 8 */

[data-number="8"] span.primary:before {
  content: "8";
}

[data-number="8"] span.secondary:after {
  content: "8";
}

[data-number="8"] span.secondary:before {
  content: "9";
}

[data-number="8"] span.primary:after {
  content: "9";
}

/* Number 7 */

[data-number="7"] span.primary:before {
  content: "7";
}

[data-number="7"] span.secondary:after {
  content: "7";
}

[data-number="7"] span.secondary:before {
  content: "8";
}

[data-number="7"] span.primary:after {
  content: "8";
}

/* Number 6 */

[data-number="6"] span.primary:before {
  content: "6";
}

[data-number="6"] span.secondary:after {
  content: "6";
}

[data-number="6"] span.secondary:before {
  content: "7";
}

[data-number="6"] span.primary:after {
  content: "7";
}

/* Number 5 */

[data-number="5"] span.primary:before {
  content: "5";
}

[data-number="5"] span.secondary:after {
  content: "5";
}

[data-number="5"] span.secondary:before {
  content: "6";
}

[data-number="5"] span.primary:after {
  content: "6";
}

/* Number 4 */

[data-number="4"] span.primary:before {
  content: "4";
}

[data-number="4"] span.secondary:after {
  content: "4";
}

[data-number="4"] span.secondary:before {
  content: "5";
}

[data-number="4"] span.primary:after {
  content: "5";
}

/* Number 3 */

[data-number="3"] span.primary:before {
  content: "3";
}

[data-number="3"] span.secondary:after {
  content: "3";
}

[data-number="3"] span.secondary:before {
  content: "4";
}

[data-number="3"] span.primary:after {
  content: "4";
}

/* Number 2 */

[data-number="2"] span.primary:before {
  content: "2";
}

[data-number="2"] span.secondary:after {
  content: "2";
}

[data-number="2"] span.secondary:before {
  content: "3";
}

[data-number="2"] span.primary:after {
  content: "3";
}

/* Number 1 */

[data-number="1"] span.primary:before {
  content: "1";
}

[data-number="1"] span.secondary:after {
  content: "1";
}

[data-number="1"] span.secondary:before {
  content: "2";
}

[data-number="1"] span.primary:after {
  content: "2";
}

@media(min-width: 0px) {
  .number {
    font-size: 1em;
  }

  .flip-number-title {
    padding-top: 7.5vh;
    font-size: 0.8em;
  }

  .flip-number-animation {
    padding-top: 0;
  }

  .flip-number-subtitle {
    padding-top: 6vh;
    font-size: 0.8em;
  }
}

@media(min-width: 320px) {
  .number {
    font-size: 3em;
  }

  .flip-number-title {
    padding-top: 7.5vh;
    font-size: 1.2em;
  }

  .flip-number-animation {
    padding-top: 0;
  }

  .flip-number-subtitle {
    padding-top: 3vh;
    font-size: 1.2em;
  }
}

@media(min-width: 544px) {
  .number {
    font-size: 5em;
  }

  .flip-number-title {
    padding-top: 7.5vh;
    font-size: 1.5em;
  }

  .flip-number-animation {
    padding-top: 0;
  }

  .flip-number-subtitle {
    padding-top: 3vh;
    font-size: 1.5em;
  }
}

@media(min-width: 768px) {
  .number {
    font-size: 3.7em;
  }

  .flip-number-title {
    padding-top: 7.5vh;
    font-size: 1.5em;
  }

  .flip-number-animation {
    padding-top: 0;
  }

  .flip-number-subtitle {
    font-size: 1.5em;
  }
}

@media(min-width: 992px) {
  .number {
    font-size: 4.9em;
  }

  .flip-number-title {
    padding-top: 7.5vh;
    font-size: 1.5em;
  }

  .flip-number-animation {
    padding-top: 0;
  }

  .flip-number-subtitle {
    font-size: 1.5em;
  }
}