#app-loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: #ffffff;
  opacity: 1;
  transition: opacity 180ms ease;
}

#app-page-loading {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.72);
  opacity: 1;
  pointer-events: none;
  transition: opacity 160ms ease;
}

#app-page-loading .app-loading-mark {
  width: 72px;
  height: 66px;
}

#app-loading.app-loading-hide,
#app-page-loading.app-loading-hide {
  opacity: 0;
  pointer-events: none;
}

.app-loading-mark {
  position: relative;
  width: 96px;
  height: 88px;
}

.app-loading-mark::before,
.app-loading-mark::after {
  content: "";
  position: absolute;
  inset: 0;
  background: center / contain no-repeat url("/app-loading-logo.png");
}

.app-loading-mark::before {
  filter: grayscale(1);
  opacity: 0.2;
}

.app-loading-mark::after {
  clip-path: inset(100% 0 0 0);
  animation: appLoadingReveal 1.1s ease-in-out infinite;
}

@keyframes appLoadingReveal {
  0% {
    clip-path: inset(100% 0 0 0);
    opacity: 0.55;
  }

  55% {
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }

  100% {
    clip-path: inset(0 0 100% 0);
    opacity: 0.55;
  }
}
