@keyframes pulse {
  0% { opacity: .25; }
  25% { opacity: .25; }
  35% { opacity: 1; }
  55% { opacity: 1; }
  75% { opacity: .25; }
  100% { opacity: .25; }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

.reset-box-sizing {
  box-sizing: border-box;
}

.reset-font-smoothing {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

.reset {
  box-sizing: border-box;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

/* Box-shadows */

.box-shadow-100:before {
  border-radius: 4px;
  bottom: 1px;
  box-shadow: 0 1px 1px 0 rgba(42, 59, 77, 0.12);
  content: "";
  left: 1px;
  position: absolute;
  right: 1px;
  top: 1px;
  z-index: -1;
 }

.box-shadow-200:before {
  border-radius: 4px;
  bottom: 2px;
  box-shadow: 0 4px 6px 0 rgba(42, 59, 77, 0.32);
  content: "";
  left: 2px;
  position: absolute;
  right: 2px;
  top: 2px;
  z-index: -1;
 }

.box-shadow-300:before {
  border-radius: 4px;
  bottom: 4px;
  box-shadow: 0 8px 10px 0 rgba(42, 59, 77, 0.32);
  content: "";
  left: 4px;
  position: absolute;
  right: 4px;
  top: 4px;
  z-index: -1;
}

.box-shadow-400:before {
  border-radius: 4px;
  bottom: 8px;
  box-shadow: 0 24px 32px 0 rgba(42, 59, 77, 0.42);
  content: "";
  left: 8px;
  position: absolute;
  right: 8px;
  top: 8px;
  z-index: -1;
}

/* Clearfix */

.clearfix {
  *zoom: 1;
}

.clearfix:before,
.clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

/* Disabling */

.disable-user-select {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Orientation */

/* Devices (defined by max width) */

/* Devices (defined by min-width) */

.loading-spinner {
  display: inline-block;
  position: relative;
  vertical-align: middle;
}

.loading-spinner:before {
    box-sizing: border-box;
    content: '';
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    width: 100%;
  }

.is-neutral.is-lightest:before {
    border: 2px solid rgba(255, 255, 255, 0.18);
    border-top-color: #ffffff;
  }

.is-neutral.is-light:before {
    border: 2px solid rgba(247, 247, 250, 0.18);
    border-top-color: #f7f7fa;
  }

.is-neutral.is-normal:before {
    border: 2px solid rgba(228, 228, 230, 0.18);
    border-top-color: #e4e4e6;
  }

.is-neutral.is-dark:before {
    border: 2px solid rgba(192, 192, 196, 0.18);
    border-top-color: #c0c0c4;
  }

.is-neutral.is-darkest:before {
    border: 2px solid rgba(130, 130, 140, 0.18);
    border-top-color: #82828c;
  }

.is-mint.is-lightest:before {
    border: 2px solid rgba(240, 250, 250, 0.18);
    border-top-color: #f0fafa;
  }

.is-mint.is-light:before {
    border: 2px solid rgba(87, 211, 210, 0.18);
    border-top-color: #57d3d2;
  }

.is-mint.is-normal:before {
    border: 2px solid rgba(0, 178, 178, 0.18);
    border-top-color: #00b2b2;
  }

.is-mint.is-dark:before {
    border: 2px solid rgba(0, 138, 140, 0.18);
    border-top-color: #008a8c;
  }

.is-mint.is-darkest:before {
    border: 2px solid rgba(0, 75, 77, 0.18);
    border-top-color: #004b4d;
  }

.is-violet.is-lightest:before {
    border: 2px solid rgba(247, 247, 255, 0.18);
    border-top-color: #f7f7ff;
  }

.is-violet.is-light:before {
    border: 2px solid rgba(211, 209, 254, 0.18);
    border-top-color: #d3d1fe;
  }

.is-violet.is-normal:before {
    border: 2px solid rgba(146, 140, 255, 0.18);
    border-top-color: #928cff;
  }

.is-violet.is-dark:before {
    border: 2px solid rgba(105, 97, 255, 0.18);
    border-top-color: #6961ff;
  }

.is-violet.is-darkest:before {
    border: 2px solid rgba(19, 10, 191, 0.18);
    border-top-color: #130abf;
  }

.is-ruby.is-lightest:before {
    border: 2px solid rgba(255, 240, 236, 0.18);
    border-top-color: #fff0ec;
  }

.is-ruby.is-light:before {
    border: 2px solid rgba(255, 188, 166, 0.18);
    border-top-color: #ffbca6;
  }

.is-ruby.is-normal:before {
    border: 2px solid rgba(255, 112, 64, 0.18);
    border-top-color: #ff7040;
  }

.is-ruby.is-dark:before {
    border: 2px solid rgba(232, 75, 23, 0.18);
    border-top-color: #e84b17;
  }

.is-ruby.is-darkest:before {
    border: 2px solid rgba(153, 38, 0, 0.18);
    border-top-color: #992600;
  }

.is-gold.is-lightest:before {
    border: 2px solid rgba(255, 246, 229, 0.18);
    border-top-color: #fff6e5;
  }

.is-gold.is-light:before {
    border: 2px solid rgba(255, 218, 143, 0.18);
    border-top-color: #ffda8f;
  }

.is-gold.is-normal:before {
    border: 2px solid rgba(255, 204, 102, 0.18);
    border-top-color: #ffcc66;
  }

.is-gold.is-dark:before {
    border: 2px solid rgba(237, 158, 0, 0.18);
    border-top-color: #ed9e00;
  }

.is-gold.is-darkest:before {
    border: 2px solid rgba(143, 60, 0, 0.18);
    border-top-color: #8f3c00;
  }

.is-aqua.is-lightest:before {
    border: 2px solid rgba(242, 248, 255, 0.18);
    border-top-color: #f2f8ff;
  }

.is-aqua.is-light:before {
    border: 2px solid rgba(204, 228, 255, 0.18);
    border-top-color: #cce4ff;
  }

.is-aqua.is-normal:before {
    border: 2px solid rgba(153, 201, 255, 0.18);
    border-top-color: #99c9ff;
  }

.is-aqua.is-dark:before {
    border: 2px solid rgba(0, 113, 242, 0.18);
    border-top-color: #0071f2;
  }

.is-aqua.is-darkest:before {
    border: 2px solid rgba(0, 77, 166, 0.18);
    border-top-color: #004da6;
  }

.is-teal.is-lightest:before {
    border: 2px solid rgba(240, 245, 252, 0.18);
    border-top-color: #f0f5fc;
  }

.is-teal.is-light:before {
    border: 2px solid rgba(193, 206, 222, 0.18);
    border-top-color: #c1cede;
  }

.is-teal.is-normal:before {
    border: 2px solid rgba(100, 120, 143, 0.18);
    border-top-color: #64788f;
  }

.is-teal.is-dark:before {
    border: 2px solid rgba(42, 59, 77, 0.18);
    border-top-color: #2a3b4d;
  }

.is-teal.is-darkest:before {
    border: 2px solid rgba(26, 28, 32, 0.18);
    border-top-color: #1a1c20;
  }

.is-small {
  height: calc(1.4 * 10px);
  width: calc(1.4 * 10px);
}

.is-medium {
  height: calc(2.2 * 10px);
  width: calc(2.2 * 10px);
}
