.js-loading{
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	background-color: hsla(0,0%,90%,.8);
	z-index: 99999;
	flex-wrap: wrap;

  :is(.spin, .spin::after) {
    border-radius: 50%;
    width: 50px;
    height: 50px;
  }

  > .spin {
    margin: 0 auto;
    font-size: 10px;
    position: relative;
    text-indent: -9999em;
    border-top: 8px solid hsl(0,0%,0%);
    border-right: 8px solid hsl(0,0%,0%);
    border-bottom: 8px solid hsl(0,0%,0%);
    border-left: 8px solid #ffffff;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation: js_loding_key 1.1s infinite linear;
    animation: js_loding_key 1.1s infinite linear;
  }
}

@-webkit-keyframes js_loding_key {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes js_loding_key {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}