.spinner {
  align-items: center;
  display: flex;
  font-size: 0;
  height: 100vh;
  justify-content: center;
  width: 100%
}

.spinner .spinner__bg {
  align-items: center;
  justify-content: center;
  display: flex;
  flex-flow: column;
  height: 53px;
  width: 113px;
  background: #FFFFFF;
  box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
  border-radius: 4px;
  padding: 9px 10px 10px;
}

.spinner .spinner__text {
  font-size: 12px;
  font-weight: 400;
  margin: 4px 0 0 6px;
}

.spinner .spinner__pulse-item {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  border-radius: 100%;
  display: inline-block;
  height: 14px;
  margin: 2px;
  width: 14px
}

.dot__pulse {
  width: 100%;
  height: 40px;
  align-items: center;
  justify-content: center;
  display: inline-flex;
  flex-flow: row;
  background: transparent;
}

.dot__pulse .dot__pulse-item {
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  border-radius: 100%;
  display: inline-block;
  height: 14px;
  margin: 2px;
  width: 14px;
  background: #000; /* TODO: colorに移植 */
}

.spinner .spinner__pulse-item:first-child,
.dot__pulse .dot__pulse-item:first-child {
  -webkit-animation: spinner-pulse-scale .75s ease-in-out -.24s infinite;
  animation: spinner-pulse-scale .75s ease-in-out -.24s infinite
}

.spinner .spinner__pulse-item:nth-child(2),
.dot__pulse .dot__pulse-item:nth-child(2) {
  -webkit-animation: spinner-pulse-scale .75s ease-in-out -.12s infinite;
  animation: spinner-pulse-scale .75s ease-in-out -.12s infinite
}

.spinner .spinner__pulse-item:nth-child(3),
.dot__pulse .dot__pulse-item:nth-child(3) {
  -webkit-animation: spinner-pulse-scale .75s ease-in-out 0s infinite;
  animation: spinner-pulse-scale .75s ease-in-out 0s infinite
}

@-webkit-keyframes spinner-pulse-scale {

  0%,
  80% {
    opacity: 1;
    transform: scale(1)
  }

  45% {
    opacity: .7;
    transform: scale(.1)
  }
}

@keyframes spinner-pulse-scale {

  0%,
  80% {
    opacity: 1;
    transform: scale(1)
  }

  45% {
    opacity: .7;
    transform: scale(.1)
  }
}