#app-loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

#app-loading p.lk-title {
  color: #111;
  font-size: 18px;
  font-weight: 500;
  margin: 0;
}

#app-loading p.lk-msg {
  color: #aaa;
  font-size: 12px;
  margin: 0;
}

#lk-bar-track {
  width: 180px;
  height: 3px;
  background: rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  overflow: hidden;
}

#lk-bar {
  height: 100%;
  width: 0%;
  background: #b80f52;
  border-radius: 10px;
  transition: width 0.3s ease;
}

@keyframes lk-float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-6px); }
}

@keyframes lk-shadow {
  0%, 100% { transform: translateY(0px); opacity: 0.5; }
  50%       { transform: translateY(3px); opacity: 0.25; }
}

@keyframes lk-line {
  0%        { opacity: 0; transform: translateX(-6px); }
  30%, 80%  { opacity: 1; transform: translateX(0); }
  100%      { opacity: 0; transform: translateX(-6px); }
}

#lk-icon rect.lk-note-shadow { animation: lk-shadow 1.8s ease-in-out infinite; }
#lk-icon rect.lk-note-main   { animation: lk-float  1.8s ease-in-out infinite; }
#lk-icon circle               { animation: lk-float  1.8s ease-in-out infinite; }
#lk-icon text                 { animation: lk-float  1.8s ease-in-out infinite; }

#lk-icon rect.lk-line-1 { animation: lk-line 1.8s ease-in-out infinite; animation-delay: 0s; }
#lk-icon rect.lk-line-2 { animation: lk-line 1.8s ease-in-out infinite; animation-delay: 0.15s; }
#lk-icon rect.lk-line-3 { animation: lk-line 1.8s ease-in-out infinite; animation-delay: 0.3s; }
#lk-icon rect.lk-line-4 { animation: lk-line 1.8s ease-in-out infinite; animation-delay: 0.45s; }