
/* Accessibility & SEO Utilities */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Base Reveal Classes */
.reveal {
  opacity: 0;
  transform: translateY(40px) scale(0.95);
  transition: opacity 1s cubic-bezier(0.2, 0.8, 0.2, 1), 
              transform 1s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

.reveal.reveal-left {
  transform: translateX(-50px);
}

.reveal.reveal-right {
  transform: translateX(50px);
}

.reveal.active {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

/* Stagger Delay System */
.stagger-parent .reveal {
  transition-delay: calc(var(--stagger-index, 0) * 0.1s);
}

/* Specific Section Animations */

/* Hero Section Enhancements */
.hero-main-ttl {
  transition: transform 0.3s ease;
}
.hero-logo-wrap:hover .hero-main-ttl {
  transform: scale(1.02);
}

/* Fair Title Reveal Effect */
.section-title-reveal {
  overflow: hidden;
  position: relative;
}
.section-title-reveal::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
  transform: translateX(-100%);
}
.section-title-reveal.active::after {
  animation: shine 1.5s ease-out forwards;
}

@keyframes shine {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Floating Animation Refined */
@keyframes premium-float {
  0% { transform: translateY(0) rotate(0); }
  33% { transform: translateY(-10px) rotate(1deg); }
  66% { transform: translateY(5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}

.float-hover:hover {
  animation: premium-float 3s ease-in-out infinite;
}

/* Button & Banner Pulse/Scale */
.hover-premium {
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.hover-premium:hover {
  transform: scale(1.05);
  filter: brightness(1.1) drop-shadow(0 10px 20px rgba(0,0,0,0.2));
}

/* Phase Transitions (Background subtle zoom) */
.phase-bg-zoom {
  overflow: hidden;
}
.phase-bg-zoom img {
  transition: transform 10s ease-out;
}
.phase-bg-zoom.active img {
  transform: scale(1.1);
}

/* Special Reveal for Cars */
.car-reveal {
  opacity: 0;
  transform: translateX(100px) rotate(5deg);
  transition: all 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.car-reveal.active {
  opacity: 1;
  transform: translateX(0) rotate(0);
}

/* Grid/Stack Stagger */
.reveal-group {
  display: contents;
}

/* Bounce Reveal */
.reveal-bounce {
  opacity: 0;
  transform: scale(0.8) translateY(50px);
  transition: opacity 0.8s ease-out, transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change: opacity, transform;
}
.reveal-bounce.active {
  opacity: 1;
  transform: scale(1) translateY(0);
}
