@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}

.reveal-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 800ms cubic-bezier(0.16, 1, 0.3, 1), transform 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

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

[data-reveal="lux"].reveal-up {
  opacity: 0;
  transform: translateY(36px);
  filter: blur(10px);
  clip-path: inset(0 0 100% 0);
  transition:
    opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1200ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1200ms cubic-bezier(0.16, 1, 0.3, 1),
    clip-path 1200ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter, clip-path;
}

[data-reveal="lux"].reveal-up.in-view {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  clip-path: inset(0 0 0 0);
}

[data-reveal="fade"].reveal-up {
  opacity: 0;
  transform: scale(1.06);
  filter: blur(6px);
  transition:
    opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1300ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1300ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}

[data-reveal="fade"].reveal-up.in-view {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}

.lux-parallax {
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.faq-item.reveal-up {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1), transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

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

.faq-item.reveal-up-stagger {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1), transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.faq-item.reveal-up-stagger.in-view {
  opacity: 1;
  transform: translateY(0);
}

.faq-list .faq-item.reveal-up-stagger:nth-child(1) { transition-delay: 0ms; }
.faq-list .faq-item.reveal-up-stagger:nth-child(2) { transition-delay: 70ms; }
.faq-list .faq-item.reveal-up-stagger:nth-child(3) { transition-delay: 140ms; }
.faq-list .faq-item.reveal-up-stagger:nth-child(4) { transition-delay: 210ms; }
.faq-list .faq-item.reveal-up-stagger:nth-child(5) { transition-delay: 280ms; }

.highlight-card.reveal-up,
.service-card.reveal-up {
  opacity: 0;
  transform: translateY(30px) scale(0.96);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1), transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.highlight-card.reveal-up.in-view,
.service-card.reveal-up.in-view {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.home-highlights__grid .highlight-card.reveal-up:nth-child(1) { transition-delay: 0ms; }
.home-highlights__grid .highlight-card.reveal-up:nth-child(2) { transition-delay: 80ms; }
.home-highlights__grid .highlight-card.reveal-up:nth-child(3) { transition-delay: 160ms; }
.home-highlights__grid .highlight-card.reveal-up:nth-child(4) { transition-delay: 240ms; }

.home-services__grid .service-card.reveal-up:nth-child(1) { transition-delay: 0ms; }
.home-services__grid .service-card.reveal-up:nth-child(2) { transition-delay: 60ms; }
.home-services__grid .service-card.reveal-up:nth-child(3) { transition-delay: 120ms; }
.home-services__grid .service-card.reveal-up:nth-child(4) { transition-delay: 180ms; }
.home-services__grid .service-card.reveal-up:nth-child(5) { transition-delay: 240ms; }
.home-services__grid .service-card.reveal-up:nth-child(6) { transition-delay: 300ms; }

.highlight-card.reveal-up-stagger,
.service-card.reveal-up-stagger {
  opacity: 0;
  transform: translateY(30px) scale(0.96);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1), transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.highlight-card.reveal-up-stagger.in-view,
.service-card.reveal-up-stagger.in-view {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.home-highlights__grid .highlight-card.reveal-up-stagger:nth-child(1) { transition-delay: 0ms; }
.home-highlights__grid .highlight-card.reveal-up-stagger:nth-child(2) { transition-delay: 80ms; }
.home-highlights__grid .highlight-card.reveal-up-stagger:nth-child(3) { transition-delay: 160ms; }
.home-highlights__grid .highlight-card.reveal-up-stagger:nth-child(4) { transition-delay: 240ms; }

.home-services__grid .service-card.reveal-up-stagger:nth-child(1) { transition-delay: 0ms; }
.home-services__grid .service-card.reveal-up-stagger:nth-child(2) { transition-delay: 60ms; }
.home-services__grid .service-card.reveal-up-stagger:nth-child(3) { transition-delay: 120ms; }
.home-services__grid .service-card.reveal-up-stagger:nth-child(4) { transition-delay: 180ms; }
.home-services__grid .service-card.reveal-up-stagger:nth-child(5) { transition-delay: 240ms; }
.home-services__grid .service-card.reveal-up-stagger:nth-child(6) { transition-delay: 300ms; }


.reveal-up-stagger {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 900ms cubic-bezier(0.16, 1, 0.3, 1), transform 1000ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

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

.reveal-up-stagger.fast {
  transition: opacity 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 500ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-up-stagger.slow {
  transition: opacity 1000ms cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 1200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-up-stagger.slide-left {
  transform: translateX(25px);
  transition: opacity 700ms cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 900ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-up-stagger.slide-left.in-view {
  transform: translateX(0);
}

.reveal-up-stagger.slide-right {
  transform: translateX(-25px);
  transition: opacity 700ms cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 900ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-up-stagger.slide-right.in-view {
  transform: translateX(0);
}

.reveal-up-stagger.scale {
  transform: translateY(20px) scale(0.95);
  transition: opacity 800ms cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 1000ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

section:not(.no-reveal) { contain: layout paint; }

#progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 4px;
  width: 0;
  background: var(--accent-color, #FFC125);
  z-index: 9999;
  box-shadow: 0 1px 6px rgba(255,193,37,0.6);
  transition: width 260ms ease-out, opacity 400ms ease;
  will-change: width, opacity;
}

#progress-bar.is-complete { 
  opacity: 0; 
  transition: opacity 400ms ease; 
}
