/* animations.css — Premium GPU-Accelerated Web Animations */

@keyframes loadLine {
  0%, 100% { transform: scaleX(.25); opacity: .35; }
  50%      { transform: scaleX(1); opacity: 1; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-12px); }
}

@keyframes pageWipe {
  0%   { transform: translateY(100%) scaleY(.86); opacity: .92; }
  36%  { transform: translateY(0) scaleY(1);      opacity: 1; }
  62%  { transform: translateY(0) scaleY(1);      opacity: 1; }
  100% { transform: translateY(-100%) scaleY(.9); opacity: .96; }
}

@keyframes luxeSweep {
  0%   { transform: translateX(-120%) skewX(-16deg); }
  100% { transform: translateX(120%) skewX(-16deg); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 18px 60px rgba(0,0,0,.42), 0 0 0 rgba(225,29,46,0); }
  50%      { box-shadow: 0 24px 80px rgba(0,0,0,.5), 0 0 42px rgba(225,29,46,.28); }
}

@keyframes softBreathe {
  0%, 100% { opacity: .72; transform: scale(1) translateZ(0); }
  50%      { opacity: 1;   transform: scale(1.018) translateZ(0); }
}

/* Floating Badges & Cards */
.floating-card {
  animation: float 5.5s ease-in-out infinite;
  will-change: transform;
}
.card-two { animation-delay: .8s; }
.card-three { animation-delay: 1.4s; }

/* Scroll entrance reveal animations (GPU promoted) */
.reveal {
  opacity: 0;
  transform: translateY(34px) scale(.985);
  transition: opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--delay, 0ms);
  will-change: transform, opacity;
  backface-visibility: hidden;
}

.reveal.in-view {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.hero-content.reveal,
.page-hero-copy.reveal {
  transform: translateY(38px) scale(.98);
}

.hero-visual.reveal,
.page-hero-media.reveal {
  transform: translateY(28px) scale(.965);
}

/* Card Zoom hover effects (GPU promoted) */
.treatment-card img,
.gallery-item img,
.compare-slider img,
.portrait-frame img,
.founder-media img,
.page-hero-media img {
  transition: transform .9s cubic-bezier(.22,1,.36,1), filter .9s ease;
  will-change: transform;
  backface-visibility: hidden;
}

.treatment-card:hover img,
.gallery-item:hover img,
.compare-card:hover img,
.portrait-frame:hover img,
.founder-media:hover img,
.page-hero-media:hover img {
  transform: scale(1.06) translateZ(0);
  filter: contrast(1.08) saturate(1.08);
}

/* Ambient glow & panels breathing */
.cta-panel,
.hero-bg-glow {
  animation: softBreathe 7s ease-in-out infinite;
  will-change: transform, opacity;
}

.lux-contact-rail a:first-child {
  animation: pulseGlow 3.8s ease-in-out infinite;
}

.lux-contact-rail a:nth-child(2) {
  animation: pulseGlow 4.4s ease-in-out infinite .8s;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .reveal {
    opacity: 1;
    transform: none;
    filter: none;
  }
  .page-transition {
    display: none;
  }
}
