/* Cheapplanet stability layer for the listings section.
   Keeps the neon/3D appearance but avoids Safari compositor glitches
   caused by continuous perspective/filter animation and animated image blur. */

#listings {
  position: relative;
  isolation: isolate;
}

/* Keep the existing 3D neon text styling, but animate only opacity.
   Continuous perspective + filter on this heading could repaint the cards below. */
.cp-neon-latest {
  transform: none !important;
  transform-style: flat !important;
  filter: none !important;
  animation: cpLatestSafePulse 2.3s ease-in-out infinite !important;
  will-change: opacity !important;
  backface-visibility: hidden;
}

.cp-neon-latest::before,
.cp-neon-latest::after {
  animation: none !important;
  will-change: auto !important;
}

@keyframes cpLatestSafePulse {
  0%, 100% { opacity: .97; }
  44% { opacity: .88; }
  52% { opacity: 1; }
  61% { opacity: .93; }
}

/* Photo reveal without animated blur/filter: this prevents the whole listing
   layer from being repeatedly recomposited on mobile Safari. */
#listings .listing-card img.cp-luxury-photo-reveal {
  filter: none !important;
  animation: cpLuxuryPhotoRevealSafe .65s ease-out both !important;
  will-change: opacity !important;
}

@keyframes cpLuxuryPhotoRevealSafe {
  from { opacity: .68; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .cp-neon-latest,
  #listings .listing-card img.cp-luxury-photo-reveal {
    animation: none !important;
    opacity: 1 !important;
  }
}
