/* LuxBMI Indigo Ghost Cloud Dissolve v30.
   Full-screen cinematic cloud transition built from existing site art.
   No doors, stretched logos, forced scroll, or layout shift. */
.lux-cloud-curtain[hidden]{display:none!important;}
.lux-cloud-curtain{
  position:fixed;inset:0;z-index:11050;pointer-events:none;
  isolation:isolate;overflow:hidden;contain:layout paint;
  background:transparent;
}
/* Soft translucent indigo veil allows a little of the page to show through,
   even when the cloud banks reach their peak. */
.lux-cloud-curtain__veil{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse at 50% 52%,
      rgba(86,71,151,.64) 0%,
      rgba(49,38,109,.70) 56%,
      rgba(19,15,54,.76) 100%);
  opacity:0;
  transition:opacity 430ms cubic-bezier(.16,.66,.33,1);
}
/* Independent cloud banks drift through the space rather than behaving
   like opaque panels. Photo cloud detail is preserved by image-backed layers. */
.lux-cloud-curtain__clouds{
  position:absolute;inset:-18%;z-index:1;pointer-events:none;
  background-repeat:no-repeat;background-size:cover;
  mix-blend-mode:screen;
  /* Shift electric blue toward deep indigo without modifying the original art. */
  filter:hue-rotate(25deg) saturate(.76) brightness(.90);
  opacity:0;
  will-change:opacity,transform;
  transition:
    opacity 440ms ease-out,
    transform 490ms cubic-bezier(.2,.58,.28,1);
}
.lux-cloud-curtain__clouds--far{
  background-image:url('./lux-ghost-cloud-far-v29.webp');
  background-position:center 46%;
  transform:translate3d(-4%,-7%,0) scale(1.12);
  -webkit-mask-image:radial-gradient(ellipse 94% 78% at center,black 19%,rgba(0,0,0,.87) 54%,transparent 98%);
  mask-image:radial-gradient(ellipse 94% 78% at center,black 19%,rgba(0,0,0,.87) 54%,transparent 98%);
}
.lux-cloud-curtain__clouds--near{
  z-index:2;
  background-image:url('./lux-ghost-cloud-near-v29.webp');
  background-position:center 63%;
  transform:translate3d(5%,14%,0) scale(1.2);
  -webkit-mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.7) 30%,black 70%,rgba(0,0,0,.8) 92%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 1%,rgba(0,0,0,.7) 30%,black 70%,rgba(0,0,0,.8) 92%,transparent 100%);
}
/* Small center pulse, never a blinding full-screen white flash. */
.lux-cloud-curtain__pulse{
  position:absolute;z-index:3;left:50%;top:50%;
  width:min(42vmin,410px);aspect-ratio:1;border-radius:50%;
  pointer-events:none;opacity:0;
  transform:translate3d(-50%,-50%,0) scale(.28);
  background:
    radial-gradient(circle at center,rgba(249,222,176,.53) 0%,rgba(208,168,120,.16) 17%,rgba(141,117,226,.16) 43%,transparent 72%);
  box-shadow:0 0 52px rgba(111,104,208,.10);
}
.lux-cloud-curtain__pulse::after{
  content:"";position:absolute;inset:24%;border-radius:50%;
  border:1px solid rgba(230,190,134,.23);
  box-shadow:0 0 15px rgba(139,123,229,.12),inset 0 0 14px rgba(222,174,120,.06);
}
.lux-cloud-curtain[data-state="cover"] .lux-cloud-curtain__veil,
.lux-cloud-curtain[data-state="covered"] .lux-cloud-curtain__veil{opacity:.62;}
.lux-cloud-curtain[data-state="cover"] .lux-cloud-curtain__clouds--far,
.lux-cloud-curtain[data-state="covered"] .lux-cloud-curtain__clouds--far{
  opacity:.38;
  transform:translate3d(0,0,0) scale(1.04);
}
.lux-cloud-curtain[data-state="cover"] .lux-cloud-curtain__clouds--near,
.lux-cloud-curtain[data-state="covered"] .lux-cloud-curtain__clouds--near{
  opacity:.48;
  transform:translate3d(0,0,0) scale(1.04);
}
.lux-cloud-curtain[data-state="covered"] .lux-cloud-curtain__pulse{
  animation:lux-ghost-energy-pulse 200ms ease-out both;
}
@keyframes lux-ghost-energy-pulse{
  0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.25);}
  34%{opacity:.46;}
  100%{opacity:0;transform:translate3d(-50%,-50%,0) scale(1.33);}
}
.lux-cloud-curtain[data-state="reveal"] .lux-cloud-curtain__veil{
  opacity:0;transition-duration:420ms;transition-timing-function:ease-in-out;
}
.lux-cloud-curtain[data-state="reveal"] .lux-cloud-curtain__clouds{
  opacity:0;
  transition-duration:420ms;
  transition-timing-function:cubic-bezier(.26,.64,.4,1);
}
.lux-cloud-curtain[data-state="reveal"] .lux-cloud-curtain__clouds--far{
  transform:translate3d(-5%,-10%,0) scale(1.16);
}
.lux-cloud-curtain[data-state="reveal"] .lux-cloud-curtain__clouds--near{
  transform:translate3d(6%,16%,0) scale(1.22);
}
.lux-cloud-curtain[data-state="reveal"] .lux-cloud-curtain__pulse{
  opacity:0;animation:none;
}
.lux-cloud-puff{
  position:fixed;z-index:10850;width:64px;height:54px;left:0;top:0;
  pointer-events:none;contain:paint;transform:translate3d(-50%,-35%,0);
}
.lux-cloud-puff i{
  position:absolute;inset:0;display:block;
  background:url('./cloud-puff-v26.webp') center/contain no-repeat;
  transform-origin:50% 65%;
  opacity:0;animation:lux-vapor-puff 580ms cubic-bezier(.1,.35,.3,1) forwards;
}
.lux-cloud-puff i:nth-child(2){animation-delay:65ms;filter:blur(1px);transform:scale(.72) translate(10px,-4px)}
.lux-cloud-puff i:nth-child(3){animation-delay:115ms;filter:blur(2px);transform:scale(.58) translate(-9px,4px)}
@keyframes lux-vapor-puff{
  0%{opacity:0;transform:translate3d(0,7px,0) scale(.28)}
  22%{opacity:.53}
  70%{opacity:.3}
  100%{opacity:0;transform:translate3d(0,-33px,0) scale(1.18)}
}
@media (pointer:fine){.lux-cloud-puff{display:none!important;}}
@media(prefers-reduced-motion:reduce){
 .lux-cloud-curtain{display:none!important}
 .lux-cloud-puff{display:none!important}
 .lux-cloud-curtain__clouds,.lux-cloud-curtain__veil,.lux-cloud-curtain__pulse{transition:none!important;animation:none!important}
}
