/*  css-loading-spinners.css
  Copyright (c) Ian A. Cook
  MIT License
  https://github.com/nai888/css-loading-spinners
*/

:root {
    --cls-color: #558B6E;
    --cls-sec-color: #EEEEEE;
    --cls-size: 5rem;
    --cls-margin: 1rem;
    --cls-speed: 2s;
  }
  
  @-webkit-keyframes spin {
    0% {
      -webkit-transform: rotate(0deg);
    } 100% {
      -webkit-transform: rotate(360deg);
    }
  }
  
  @keyframes spin {
    0% {
      -webkit-transform: rotate(0deg);
              transform: rotate(0deg);
    } 100% {
      -webkit-transform: rotate(360deg);
              transform: rotate(360deg);
    }
  }
  
  @-webkit-keyframes flip-flop {
    0%, 100% {
      -webkit-transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(0deg);
    } 50% {
      -webkit-transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(180deg);
    }
  }
  
  @keyframes flip-flop {
    0%, 100% {
      -webkit-transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(0deg);
              transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(0deg);
    } 50% {
      -webkit-transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(180deg);
              transform: perspective(calc(var(--cls-size) / 5 * 8)) rotateY(180deg);
    }
  }
  
  @-webkit-keyframes signal {
    0% {
      -webkit-transform: scale(0);
      -webkit-opacity: 0;
    } 50% {
      -webkit-opacity: 1;
    } 100% {
      -webkit-transform: scale(1);
      -webkit-opacity: 0;
    }
  }
  
  @keyframes signal {
    0% {
      -webkit-transform: scale(0);
              transform: scale(0);
      -webkit-opacity: 0;
              opacity: 0;
    } 50% {
      -webkit-opacity: 1;
              opacity: 1;
    } 100% {
      -webkit-transform: scale(1);
              transform: scale(1);
      -webkit-opacity: 0;
              opacity: 0;
    }
  }
  
  @-webkit-keyframes grow-shrink {
    0%, 100% {
      -webkit-transform: scale(0);
    } 50% {
      -webkit-transform: scale(1);
    }
  }
  
  @keyframes grow-shrink {
    0%, 100% {
      -webkit-transform: scale(0);
              transform: scale(0);
    } 50% {
      -webkit-transform: scale(1);
              transform: scale(1);
    }
  }
  
  [class^="cls-"] {
    box-sizing: border-box;
  }
  
  .cls-spinner {
    display: block;
    position: relative;
    width: var(--cls-size);
    height: var(--cls-size);
    margin: var(--cls-margin);
  }
  
  .cls-flip-flop {
    -webkit-animation: flip-flop calc(var(--cls-speed) / 2) ease infinite;
            animation: flip-flop calc(var(--cls-speed) / 2) ease infinite;
  }
  
  .cls-spin {
    -webkit-animation: spin var(--cls-speed) linear infinite;
            animation: spin var(--cls-speed) linear infinite;
  }
  
  .cls-circle {
    border-width: calc(var(--cls-size) / 5 * 0.75);
    border-style: solid;
    border-color: var(--cls-sec-color);
    border-top-color: var(--cls-color);
    border-radius: 50%;
    width: 100%;
    height: 100%;
  }
  
  .cls-dual-circle {
    border-width: calc(var(--cls-size) / 5 * 0.75);
    border-style: solid;
    border-color: var(--cls-color) transparent;
    border-radius: 50%;
    width: 100%;
    height: 100%;
  }
  
  .cls-bowtie, .cls-bowtie-v {
    border-width: calc(var(--cls-size) / 2);
    border-style: solid;
    border-color: transparent var(--cls-color);
    border-radius: 50%;
  }
  
  .cls-bowtie-v {
    border-color: var(--cls-color) transparent;
  }
  
  .cls-square {
    width: 100%;
    height: 100%;
    background-color: var(--cls-color);
  }
  
  .cls-signal, .cls-triple-signal, .cls-triple-signal::before, .cls-triple-signal::after {
    border-width: calc(var(--cls-size) / 25);
    border-style: solid;
    border-color: var(--cls-color);
    border-radius: 50%;
    width: 100%;
    height: 100%;
    opacity: 0;
    position: absolute;
  }
  
  .cls-triple-signal::before, .cls-triple-signal::after, .cls-rings::before, .cls-rings::after {
    content: '';
    top: 50%;
    left: 50%;
    margin: calc(var(--cls-size) / -2) 0 0 calc(var(--cls-size) / -2);
  }
  
  .cls-signal, .cls-triple-signal, .cls-triple-signal::before, .cls-triple-signal::after {
    -webkit-animation: signal calc(var(--cls-speed) / 2) ease-out infinite;
            animation: signal calc(var(--cls-speed) / 2) ease-out infinite;
  }
  
  .cls-triple-signal::before {
    -webkit-animation-delay: calc(var(--cls-speed) / 20);
            animation-delay: calc(var(--cls-speed) / 20);
  }
  
  .cls-triple-signal::after {
    -webkit-animation-delay: calc(var(--cls-speed) * 3 / 20);
            animation-delay: calc(var(--cls-speed) * 3 / 20);
  }
  
  .cls-ring, .cls-rings, .cls-rings::before, .cls-rings::after {
    border-width: calc(var(--cls-size) / 25);
    border-style: solid;
    border-color: var(--cls-color);
    border-radius: 50%;
    width: 100%;
    height: 100%;
  }
  
  .cls-rings, .cls-rings::before, .cls-rings::after {
    position: absolute;
  }
  
  .cls-ring, .cls-rings, .cls-rings::before, .cls-rings::after {
    -webkit-animation: grow-shrink var(--cls-speed) ease-in-out infinite;
            animation: grow-shrink var(--cls-speed) ease-in-out infinite;
  }
  
  .cls-rings::before {
    -webkit-animation-delay: calc(var(--cls-speed) / -4);
            animation-delay: calc(var(--cls-speed) / -4);
  }
  
  .cls-rings::after {
    -webkit-animation-delay: calc(var(--cls-speed) / 4);
            animation-delay: calc(var(--cls-speed) / 4);
  }
  