/* Luxury motion layers — subtle, additive only */

.luxury-ambient {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.luxury-ambient--hero {
  z-index: 1;
}

.luxury-ambient--shooting {
  z-index: 4;
}

.luxury-starfield {
  position: absolute;
  inset: -1%;
  will-change: transform;
  transition: transform 120ms ease-out;
}

.luxury-starfield--panel {
  z-index: 2;
}

.luxury-star {
  position: absolute;
  border-radius: 50%;
  background: #ffffff;
  transform: translate(-50%, -50%);
  animation: luxury-twinkle var(--twinkle-duration, 8s) ease-in-out infinite;
  animation-delay: var(--twinkle-delay, 0s);
}

@keyframes luxury-twinkle {
  0%,
  100% {
    opacity: var(--star-opacity-min, 0.2);
  }

  50% {
    opacity: var(--star-opacity-max, 0.8);
  }
}

.luxury-shooting-star {
  position: absolute;
  top: 0;
  left: 0;
  width: 72px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.55) 45%,
    rgba(255, 255, 255, 0.15) 100%
  );
  transform-origin: left center;
}

.luxury-shooting-star.is-active {
  animation: luxury-shoot 2.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes luxury-shoot {
  0% {
    opacity: 0;
    transform: translate(var(--shoot-x-start, -5vw), var(--shoot-y-start, -5vh)) rotate(var(--shoot-angle, -32deg));
  }

  12% {
    opacity: 0.65;
  }

  88% {
    opacity: 0.2;
  }

  100% {
    opacity: 0;
    transform: translate(var(--shoot-x-end, 105vw), var(--shoot-y-end, 55vh)) rotate(var(--shoot-angle, -32deg));
  }
}

.love-gallery__img-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
  will-change: transform;
  transition: transform 140ms ease-out;
}

.love-gallery__img-wrap .love-gallery__img {
  position: relative;
  width: 100%;
  height: 100%;
}

.luxury-product-fx {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}

.luxury-highlight {
  position: absolute;
  inset: 0;
  opacity: 0;
  background: linear-gradient(
    108deg,
    rgba(255, 255, 255, 0) 40%,
    rgba(255, 255, 255, 0.025) 47%,
    rgba(255, 255, 255, 0.06) 50%,
    rgba(255, 255, 255, 0.025) 53%,
    rgba(255, 255, 255, 0) 60%
  );
  background-size: 220% 100%;
  background-position: 180% 0;
}

.love-gallery__panel.is-active .luxury-highlight {
  animation: luxury-reflection-sweep var(--highlight-duration, 12s) ease-in-out infinite;
  animation-delay: var(--highlight-delay, 1s);
}

.love-gallery__panel[data-slide="0"].is-active .luxury-highlight {
  --highlight-duration: 12s;
  --highlight-delay: 0.5s;
}

.love-gallery__panel[data-slide="1"].is-active .luxury-highlight {
  --highlight-duration: 14s;
  --highlight-delay: 2s;
}

.love-gallery__panel[data-slide="2"].is-active .luxury-highlight {
  --highlight-duration: 15s;
  --highlight-delay: 1.5s;
}

.love-gallery__panel[data-slide="3"].is-active .luxury-highlight {
  --highlight-duration: 13s;
  --highlight-delay: 0.8s;
}

@keyframes luxury-reflection-sweep {
  0%,
  72%,
  100% {
    background-position: 180% 0;
    opacity: 0;
  }

  76% {
    opacity: 0.35;
  }

  84% {
    background-position: -80% 0;
    opacity: 0.5;
  }

  92% {
    opacity: 0;
  }
}

.luxury-glass-reflection {
  position: absolute;
  top: 18%;
  left: 22%;
  width: 56%;
  height: 52%;
  opacity: 0;
  background: linear-gradient(
    118deg,
    rgba(255, 255, 255, 0) 42%,
    rgba(255, 255, 255, 0.02) 48%,
    rgba(255, 255, 255, 0.05) 50%,
    rgba(255, 255, 255, 0.02) 52%,
    rgba(255, 255, 255, 0) 58%
  );
  background-size: 280% 100%;
  background-position: 200% 0;
}

.love-gallery__panel[data-slide="2"].is-active .luxury-glass-reflection {
  animation: luxury-glass-sweep 12s linear infinite;
}

@keyframes luxury-glass-sweep {
  0% {
    background-position: 200% 0;
    opacity: 0;
  }

  18% {
    opacity: 0.25;
  }

  50% {
    background-position: -120% 0;
    opacity: 0.35;
  }

  82% {
    opacity: 0.12;
  }

  100% {
    background-position: -200% 0;
    opacity: 0;
  }
}

.luxury-metal-shimmer {
  position: absolute;
  inset: 0;
  opacity: 0;
  background: linear-gradient(
    125deg,
    rgba(255, 255, 255, 0) 35%,
    rgba(255, 255, 255, 0.015) 44%,
    rgba(255, 255, 255, 0.04) 50%,
    rgba(255, 255, 255, 0.015) 56%,
    rgba(255, 255, 255, 0) 65%
  );
  background-size: 200% 200%;
  background-position: 120% 80%;
}

.love-gallery__panel[data-slide="3"].is-active .luxury-metal-shimmer.is-shimmering {
  animation: luxury-metal-shimmer 2.4s ease-in-out forwards;
}

@keyframes luxury-metal-shimmer {
  0% {
    opacity: 0;
    background-position: 120% 80%;
  }

  35% {
    opacity: 0.45;
  }

  100% {
    opacity: 0;
    background-position: -20% 20%;
  }
}

.luxury-orbit {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.luxury-orbit-particle {
  opacity: 0;
  filter: url(#luxury-orbit-glow);
}

.luxury-orbit-particle__core {
  fill: rgba(255, 255, 255, 0.95);
}

.luxury-orbit-particle__halo {
  fill: rgba(210, 228, 255, 0.35);
}

.luxury-orbit-particle__trail {
  fill: rgba(190, 215, 255, 0.22);
}

.luxury-orbit-particle--trail {
  filter: none;
}

.love-gallery__panel[data-slide="0"].is-active .luxury-orbit-particle {
  opacity: 1;
}

.love-gallery__panel[data-slide="0"].is-active .luxury-orbit-particle--trail {
  opacity: 0.7;
}

.luxury-gem-sparkle {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  opacity: 0;
  box-shadow: 0 0 3px rgba(255, 255, 255, 0.35);
}

.love-gallery__panel[data-slide="3"].is-active .luxury-gem-sparkle.is-sparkling {
  animation: luxury-gem-sparkle 1.8s ease-out forwards;
}

@keyframes luxury-gem-sparkle {
  0% {
    opacity: 0;
    transform: scale(0.6);
  }

  25% {
    opacity: 0.7;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(0.8);
  }
}

@media (prefers-reduced-motion: reduce) {
  .luxury-orbit {
    display: none;
  }

  .luxury-star,
  .luxury-shooting-star,
  .luxury-highlight,
  .luxury-glass-reflection,
  .luxury-metal-shimmer,
  .luxury-gem-sparkle,
  .luxury-orbit-particle {
    animation: none !important;
    opacity: 0 !important;
  }

  .luxury-starfield,
  .love-gallery__img-wrap {
    transform: none !important;
    transition: none !important;
  }
}
