#lentera-page-loader {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(246, 249, 252, 0.92);
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
  pointer-events: none;
}

#lentera-page-loader,
#lentera-page-loader * {
  box-sizing: border-box;
}

#lentera-page-loader.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.lentera-loader-card {
  min-width: 170px;
  padding: 26px 28px 22px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
  text-align: center;
  border-top: 4px solid #18a6b8;
  overflow: hidden;
}

#lentera-page-loader .lentera-loader-logo {
  width: 76px !important;
  height: 76px !important;
  max-width: 76px !important;
  max-height: 76px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: inline-block !important;
  object-fit: contain;
  object-position: center;
  vertical-align: middle;
  border-radius: 14px;
  animation: lentera-logo-hop .72s cubic-bezier(.28,.84,.42,1) infinite;
  filter: drop-shadow(0 12px 14px rgba(15, 23, 42, .18));
}

.lentera-loader-text {
  margin-top: 14px;
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: .3px;
}

.lentera-loader-dots {
  display: inline-block;
  min-width: 18px;
  text-align: left;
}

.lentera-loader-dots::after {
  content: "";
  animation: lentera-dots 1s steps(4, end) infinite;
}

@keyframes lentera-logo-hop {
  0%, 100% { transform: translateY(0) scale(1); }
  35% { transform: translateY(-18px) scale(1.04); }
  55% { transform: translateY(0) scale(.98); }
  72% { transform: translateY(-6px) scale(1.01); }
}

@keyframes lentera-dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75%, 100% { content: "..."; }
}
