/*
 Fresh standalone animated number counter CSS.
 Compatible with common .odometer-* markup.
 No vendor branding, external URLs, fonts, images, or dependencies.
*/

:root{
  --counter-duration:2s;
  --counter-line-height:1.1em;
  --counter-font:Arial, Helvetica, sans-serif;
}

.odometer.odometer-auto-theme,
.odometer.odometer-theme-default{
  display:inline-block;
  vertical-align:middle;
  position:relative;
  font-family:var(--counter-font);
  line-height:var(--counter-line-height);
}

.odometer.odometer-auto-theme .odometer-digit,
.odometer.odometer-theme-default .odometer-digit{
  display:inline-block;
  vertical-align:middle;
  position:relative;
}

.odometer.odometer-auto-theme .odometer-digit-spacer,
.odometer.odometer-theme-default .odometer-digit-spacer{
  display:inline-block;
  vertical-align:middle;
  visibility:hidden;
}

.odometer.odometer-auto-theme .odometer-digit-inner,
.odometer.odometer-theme-default .odometer-digit-inner{
  position:absolute;
  inset:0;
  display:block;
  overflow:hidden;
  text-align:left;
}

.odometer.odometer-auto-theme .odometer-ribbon,
.odometer.odometer-theme-default .odometer-ribbon{
  display:block;
}

.odometer.odometer-auto-theme .odometer-ribbon-inner,
.odometer.odometer-theme-default .odometer-ribbon-inner{
  display:block;
  backface-visibility:hidden;
  will-change:transform;
}

.odometer.odometer-auto-theme .odometer-value,
.odometer.odometer-theme-default .odometer-value{
  display:block;
  text-align:center;
  transform:translateZ(0);
}

.odometer.odometer-auto-theme .odometer-value.odometer-last-value,
.odometer.odometer-theme-default .odometer-value.odometer-last-value{
  position:absolute;
  left:0;
  right:0;
}

/* Upward number transition */
.odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner,
.odometer.odometer-theme-default.odometer-animating-up .odometer-ribbon-inner{
  transition:transform var(--counter-duration) ease;
}

.odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner,
.odometer.odometer-theme-default.odometer-animating-up.odometer-animating .odometer-ribbon-inner{
  transform:translateY(-100%);
}

/* Downward number transition */
.odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner,
.odometer.odometer-theme-default.odometer-animating-down .odometer-ribbon-inner{
  transform:translateY(-100%);
}

.odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner,
.odometer.odometer-theme-default.odometer-animating-down.odometer-animating .odometer-ribbon-inner{
  transition:transform var(--counter-duration) ease;
  transform:translateY(0);
}

/* Optional utility states */
.odometer.odometer-animating .odometer-digit-inner{
  overflow:hidden;
}

@media (prefers-reduced-motion:reduce){
  .odometer.odometer-auto-theme .odometer-ribbon-inner,
  .odometer.odometer-theme-default .odometer-ribbon-inner{
    transition:none!important;
  }
}
