/* ============================================================
   LOADING OVERLAY — shared by cover.html and index.html
   ============================================================ */

#ls-overlay {
  position: fixed !important;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 9999 !important; /* FIX 3: Protect z-index from base.css */
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 20px;
  opacity: 1;
  transition: opacity 1s cubic-bezier(0.19,1,0.22,1);
  transform: none !important;
  top: 0 !important; left: 0 !important;
}
#ls-overlay.exit { opacity: 0; pointer-events: none; }

/* FIX 3: Fade up animations (migrated from cover.html) */
@keyframes lsup {
  from { opacity:0; transform:translateY(10px); }
  to   { opacity:1; transform:translateY(0); }
}

/* "Δxolotl presents" */
.ls-presents {
  font-family: 'DM Mono', monospace;
  font-size: clamp(0.42rem, 1.1vw, 0.54rem);
  letter-spacing: 0.65em;
  text-transform: uppercase;
  color: #c9a84c;
  margin-bottom: 1.8rem;
  opacity: 0;
  animation: lsup 0.9s 0.35s cubic-bezier(0.19,1,0.22,1) forwards;
}

/* Title — JS drives decrypt */
.ls-title {
  font-family: 'Cormorant SC', serif;
  font-weight: 300;
  font-size: clamp(1.5rem, 4vw, 2.8rem);
  letter-spacing: 0.55em;
  text-transform: uppercase;
  color: #f0f0f0;
  text-align: center;
  white-space: nowrap;
  margin-bottom: 2.4rem;
  min-height: 1.15em;
  opacity: 0;
  animation: lsup 1s 0.55s cubic-bezier(0.19,1,0.22,1) forwards;
}

/* Cipher / decode line */
.ls-cipher {
  font-family: 'DM Mono', monospace;
  font-size: clamp(0.38rem, 0.9vw, 0.5rem);
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: #c9a84c;
  height: 1.2em;
  margin-bottom: 1.6rem;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  min-width: 30ch;
  opacity: 0;
  animation: lsup 1s 0.55s cubic-bezier(0.19,1,0.22,1) forwards;
}

/* Progress bar */
.ls-bar-wrap {
  width: min(240px, 52vw);
  height: 1px;
  background: rgba(201,168,76,0.1);
  overflow: hidden;
  margin-bottom: 1.4rem;
  opacity: 0;
  animation: lsup 0.8s 0.85s cubic-bezier(0.19,1,0.22,1) forwards;
}
.ls-bar {
  height: 100%;
  background: #c9a84c;
  width: 0%;
}

/* Sub label */
.ls-sub {
  font-family: 'DM Mono', monospace;
  font-size: clamp(0.38rem, 0.9vw, 0.48rem);
  letter-spacing: 0.65em;
  text-transform: uppercase;
  color: #a8a8a8;
  text-align: center;
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.19,1,0.22,1);
}
.ls-sub.show { opacity: 1; }