/* ============================================================
   PRELOADER.CSS
   The opening act. Letter assembly, progress bar, slam reveal.
   ============================================================ */

#preloader {
  position: fixed;
  inset: 0;
  background: var(--black);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  overflow: hidden;
}

#preloader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}

/* ── NAME LETTERS ── */
#name-wrap {
  display: flex;
  align-items: flex-end;
  gap: 0;
  overflow: hidden;
}

.loader-letter {
  font-family: var(--font-display);
  font-size: clamp(56px, 11vw, 130px);
  color: var(--offwhite);
  display: inline-block;
  letter-spacing: 0.06em;
  line-height: 1;
  transform: translateY(130px) rotateX(45deg);
  opacity: 0;
  transform-origin: bottom center;
  /* transition set individually in JS for stagger */
}

.loader-space {
  display: inline-block;
  width: 0.28em;
}

/* ── PROGRESS BAR ── */
#loader-bar-wrap {
  width: clamp(200px, 40vw, 480px);
  margin-top: 36px;
  position: relative;
}

#loader-bar {
  width: 100%;
  height: 1px;
  background: var(--gray-3);
  position: relative;
  overflow: hidden;
}

#loader-fill {
  position: absolute;
  top: 0; left: 0;
  height: 1px;
  width: 0%;
  background: var(--amber);
  transition: width 0.08s linear;
}

#loader-percent {
  position: absolute;
  right: 0;
  top: -22px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  color: var(--amber);
}

/* ── ROLE TAGLINE ── */
#preloader-role {
  margin-top: 22px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--amber-dim);
  opacity: 0;
  transition: opacity 0.6s var(--ease-out-expo);
}
#preloader-role.visible { opacity: 1; }

/* ── SLAM BAR ── */
/* The dramatic horizontal line that floods the screen */
#slam-bar {
  position: fixed;
  left: 0;
  top: 50%;
  width: 100%;
  height: 2px;
  background: var(--amber);
  transform: scaleX(0);
  transform-origin: left center;
  z-index: 1001;
  opacity: 0;
  pointer-events: none;
}

/* ── EXIT STATES ── */
#preloader.is-leaving {
  pointer-events: none;
}
#preloader.is-gone {
  display: none;
}