/* ═══════════════════════════════════════════════
   PRELOADER
═══════════════════════════════════════════════ */
#preloader{
  position:fixed;inset:0;z-index:100000;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
  transition:opacity .7s ease,visibility .7s ease;
}
#preloader.hide{opacity:0;visibility:hidden}
.pre-sup{font-size:.6rem;font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:var(--text-dim);opacity:0;animation:fadeIn .6s ease forwards .1s}
.pre-logo{
  font-family:var(--ff-display);font-size:clamp(2.2rem,6vw,4.8rem);
  font-weight:300;letter-spacing:.4em;
  color:transparent;-webkit-text-stroke:1px var(--gold);position:relative;overflow:hidden;
}
.pre-logo::after{
  content:attr(data-text);position:absolute;inset:0;
  color:var(--gold);-webkit-text-stroke:0;
  clip-path:inset(0 100% 0 0);
  animation:fillReveal 1.9s cubic-bezier(.77,0,.175,1) forwards .35s;
}
.pre-line{
  width:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:lineGrow 1.2s ease forwards .2s;
}
.pre-sub{font-size:.6rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--text-dim);opacity:0;animation:fadeIn .7s ease forwards 1.5s}