:root {
  --lzz-paper: #ffffff;
  --lzz-ink: #f36fa9;
  --lzz-ink-soft: rgba(243, 111, 169, .28);
  --lzz-gold: #efad16;
  --lzz-gold-soft: rgba(239, 173, 22, .26);
  --lzz-muted: rgba(198, 117, 138, .72);
}

* {
  box-sizing: border-box;
}

html:has(#__loading_overlay),
body:has(#__loading_overlay) { overflow: hidden; }

#__loading_overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  min-height: 100svh;
  height: 100dvh;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: max(26px, env(safe-area-inset-top)) max(26px, env(safe-area-inset-right)) max(26px, env(safe-area-inset-bottom)) max(26px, env(safe-area-inset-left));
  background: var(--lzz-paper);
  overflow: hidden;
  transition: opacity .8s ease, visibility .8s ease;
}

#__loading_overlay.fade_out {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#__loading_logo_container {
  position: relative;
  width: min(94vw, 1080px);
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  animation: __logo_float 4.2s ease-in-out infinite;
}

#__loading_logo {
  display: block;
  width: min(78%, 840px);
  height: auto;
  aspect-ratio: 850 / 509;
  overflow: visible;
}

#__loading_progress {
  position: absolute;
  left: 50%;
  bottom: 6.5%;
  width: min(45vw, 380px);
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 14px;
  color: var(--lzz-muted);
  font: 13px "Segoe UI", "Microsoft YaHei", sans-serif;
  letter-spacing: 1px;
}

#__progress_track {
  height: 2px;
  background: rgba(243, 111, 169, .13);
  overflow: hidden;
}

#__progress_fill {
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--lzz-ink), var(--lzz-gold));
  transition: width .24s ease;
}

#__progress_text {
  min-width: 3em;
  text-align: right;
}

#__loading_tip {
  position: absolute;
  left: 50%;
  bottom: 3.2%;
  transform: translateX(-50%);
  color: rgba(198, 117, 138, .58);
  font-size: 12px;
  letter-spacing: 5px;
  white-space: nowrap;
}

@keyframes __logo_float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@media (max-width: 767px) {
  #__loading_overlay {
    padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  }

  #__loading_logo_container {
    width: 100%;
  }

  #__loading_logo {
    width: min(88%, 680px);
  }

  #__loading_progress {
    width: min(76vw, 340px);
    bottom: 8.5%;
  }

  #__loading_tip {
    bottom: 4.8%;
  }
}

@media (max-width: 479px) {
  #__loading_logo {
    width: 92%;
  }

  #__loading_progress {
    width: min(82%, 300px);
    gap: 10px;
  }

  #__loading_tip {
    max-width: 88%;
    letter-spacing: 3px;
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  #__loading_logo_container {
    width: min(78%, 720px);
  }

  #__loading_logo {
    width: min(82%, 620px);
  }

  #__loading_progress {
    bottom: 9%;
  }

  #__loading_tip {
    bottom: 3%;
  }
}
