.panel_frame.loading {
   > * {
      opacity: .6;
   }

   &::before {
      content: "";
      display: block;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      background-color: rgba(241, 242, 246, .32);
      z-index: 1;
   }

   &::after {
      content: "";
      display: block;
      height: 2px;
      background-image: linear-gradient(to right, #4b9fff, #2494f2);
      animation: loader 2s infinite;
      background-size: 100vw;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: 2;
   }
}

@keyframes loader {
   0%, 100% {
      transition-timing-function: cubic-bezier(1, 0, .65, .85);
   }

   0% {
      width: 0;
   }

   100% {
      width: 100%;
   }
}
