/* Variables */
/* Base */


.loader {
  width: 90px;
  height: 90px;
  display: inline-block;
  vertical-align: middle;
  position: relative; }

/* Loaders */
.loader-quart {
  border-radius: 50px;
  border: 6px solid rgba(255, 255, 255, 0.4); }

.loader-quart:after {
  content: '';
  position: absolute;
  top: -6px;
  left: -6px;
  bottom: -6px;
  right: -6px;
  border-radius: 50px;
  border: 6px solid transparent;
  border-top-color: #FFF;
  -webkit-animation: spin 1s linear infinite;
  -moz-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite; }

.loader-double {
  border-radius: 50px;
  border: 6px solid transparent;
  border-top-color: #FFF;
  border-bottom-color: #FFF;
  -webkit-animation: spin 1s linear infinite;
  -moz-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite; }
  .loader-double:after {
    content: '';
    position: absolute;
    top: 5px;
    left: 5px;
    bottom: 5px;
    right: 5px;
    border-radius: 50px;
    border: 6px solid transparent;
    border-top-color: #FFF;
    border-bottom-color: #FFF;
    opacity: 0.6;
    -webkit-animation: spinreverse 2s linear infinite;
    -moz-animation: spinreverse 2s linear infinite;
    animation: spinreverse 2s linear infinite; }

.loader-circles {
  border-radius: 50px;
  border: 3px solid transparent;
  border-top-color: #1e3c72;
  -webkit-animation: spin 1s linear infinite;
  -moz-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite; }
  .loader-circles:before, .loader-circles:after {
    content: '';
    position: absolute;
    top: 5px;
    left: 5px;
    bottom: 5px;
    right: 5px;
    border-radius: 50px;
    border: 3px solid transparent;
    border-top-color: #1e3c72;
    opacity: 0.8;
    -webkit-animation: spin 10s linear infinite;
    -moz-animation: spin 10s linear infinite;
    animation: spin 10s linear infinite; }
  .loader-circles:before {
    top: 12px;
    left: 12px;
    bottom: 12px;
    right: 12px;
    opacity: .5;
    -webkit-animation: spin 5s linear infinite;
    -moz-animation: spin 5s linear infinite;
    animation: spin 5s linear infinite;

     }

.loader-bars:before, .loader-bars:after,
.loader-bars span {
  content: '';
  display: block;
  position: absolute;
  left: 0px;
  top: 0;
  width: 10px;
  height: 30px;
  background-color: #FFF;
  -webkit-animation: grow 1s linear infinite;
  -moz-animation: grow 1s linear infinite;
  animation: grow 1s linear infinite; }
.loader-bars:after {
  left: 15px;
  -webkit-animation-delay: -0.66s;
  -moz-animation-delay: -0.66s;
  animation-delay: -0.66s; }
.loader-bars span {
  left: 30px;
  -webkit-animation-delay: -0.33s;
  -moz-animation-delay: -0.33s;
  animation-delay: -0.33s; }

.loader-bubbles:before, .loader-bubbles:after,
.loader-bubbles span {
  content: '';
  display: block;
  box-sizing: border-box;
  width: 25px;
  height: 25px;
  background-color: white;
  border-radius: 50px;
  border: 0px solid white;
  position: absolute;
  left: -25px;
  top: 0;
  -webkit-animation: shatter 2.3s ease-in-out infinite;
  -moz-animation: shatter 2.3s ease-in-out infinite;
  animation: shatter 2.3s ease-in-out infinite;
  -webkit-animation-delay: -0.66s;
  -moz-animation-delay: -0.66s;
  animation-delay: -0.66s; }
.loader-bubbles:after {
  left: 1.66667px;
  -webkit-animation-delay: -0.33s;
  -moz-animation-delay: -0.33s;
  animation-delay: -0.33s; }
.loader-bubbles span {
  left: 28.33333px;
  -webkit-animation-delay: 0s;
  -moz-animation-delay: 0s;
  animation-delay: 0s; }

/* Animations */
@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg); }

  to {
    -webkit-transform: rotate(360deg); } }
@-moz-keyframes spin {
  from {
    -moz-transform: rotate(0deg); }

  to {
    -moz-transform: rotate(360deg); } }
@keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }

  to {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg); } }
@-webkit-keyframes spinreverse {
  from {
    -webkit-transform: rotate(0deg); }

  to {
    -webkit-transform: rotate(-360deg); } }
@-moz-keyframes spinreverse {
  from {
    -moz-transform: rotate(0deg); }

  to {
    -moz-transform: rotate(-360deg); } }
@keyframes spinreverse {
  from {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg); }

  to {
    -webkit-transform: rotate(-360deg);
    -moz-transform: rotate(-360deg);
    -ms-transform: rotate(-360deg);
    -o-transform: rotate(-360deg);
    transform: rotate(-360deg); } }
@-webkit-keyframes grow {
  0% {
    -webkit-transform: scaleY(0);
    opacity: 0; }

  50% {
    -webkit-transform: scaleY(1);
    opacity: 1; }

  100% {
    -webkit-transform: scaleY(0);
    opacity: 0; } }
@-moz-keyframes grow {
  0% {
    -moz-transform: scaleY(0);
    opacity: 0; }

  50% {
    -moz-transform: scaleY(1);
    opacity: 1; }

  100% {
    -moz-transform: scaleY(0);
    opacity: 0; } }
@keyframes grow {
  0% {
    -webkit-transform: scaleY(0);
    -moz-transform: scaleY(0);
    -ms-transform: scaleY(0);
    -o-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0; }

  50% {
    -webkit-transform: scaleY(1);
    -moz-transform: scaleY(1);
    -ms-transform: scaleY(1);
    -o-transform: scaleY(1);
    transform: scaleY(1);
    opacity: 1; }

  100% {
    -webkit-transform: scaleY(0);
    -moz-transform: scaleY(0);
    -ms-transform: scaleY(0);
    -o-transform: scaleY(0);
    transform: scaleY(0);
    opacity: 0; } }
@-webkit-keyframes shatter {
  0% {
    -webkit-transform: scale(0); }

  50% {
    -webkit-transform: scale(0.5); }

  65% {
    -webkit-transform: scale(0.4);
    background-color: white;
    border-width: 0px; }

  90% {
    background-color: rgba(255, 255, 255, 0);
    opacity: 1; }

  100% {
    -webkit-transform: scale(1);
    border-width: 1px;
    background-color: transparent;
    opacity: 0; } }
@-moz-keyframes shatter {
  0% {
    -moz-transform: scale(0); }

  50% {
    -moz-transform: scale(0.5); }

  65% {
    -moz-transform: scale(0.4);
    background-color: white;
    border-width: 0px; }

  90% {
    background-color: rgba(255, 255, 255, 0);
    opacity: 1; }

  100% {
    -moz-transform: scale(1);
    border-width: 1px;
    background-color: transparent;
    opacity: 0; } }
@keyframes shatter {
  0% {
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0); }

  50% {
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5); }

  65% {
    -webkit-transform: scale(0.4);
    -moz-transform: scale(0.4);
    -ms-transform: scale(0.4);
    -o-transform: scale(0.4);
    transform: scale(0.4);
    background-color: white;
    border-width: 0px; }

  90% {
    background-color: rgba(255, 255, 255, 0);
    opacity: 1; }

  100% {
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    border-width: 1px;
    background-color: transparent;
    opacity: 0; } }
