/**
 * Reveal Animation System
 * Scroll-triggered animations for Subsurface theme
 */

/* Base setup */
.reveal-armed [data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-armed [data-reveal].reveal-in {
  opacity: 1;
  transform: translateY(0);
}

/* Class-based reveal for Gutenberg blocks */
.reveal-armed .has-reveal,
.reveal-armed .has-reveal > *,
.reveal-armed .reveal-on-scroll,
.reveal-armed .reveal-on-scroll > * {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.reveal-armed .has-reveal.reveal-in,
.reveal-armed .has-reveal > .reveal-in,
.reveal-armed .reveal-on-scroll.reveal-in,
.reveal-armed .reveal-on-scroll > .reveal-in {
  opacity: 1;
  transform: translateY(0);
}

/* Slide variations */
[data-reveal="slide-up"] {
  transform: translateY(40px);
}

[data-reveal="slide-down"] {
  transform: translateY(-40px);
}

[data-reveal="slide-left"] {
  transform: translateX(40px);
}

[data-reveal="slide-right"] {
  transform: translateX(-40px);
}

[data-reveal="slide-up"].reveal-in,
[data-reveal="slide-down"].reveal-in,
[data-reveal="slide-left"].reveal-in,
[data-reveal="slide-right"].reveal-in {
  transform: translate(0, 0);
}

/* Fade only */
[data-reveal="fade"] {
  transform: none;
}

/* Scale animations */
[data-reveal="scale-up"] {
  transform: scale(0.9);
}

[data-reveal="scale-down"] {
  transform: scale(1.1);
}

[data-reveal="scale-up"].reveal-in,
[data-reveal="scale-down"].reveal-in {
  transform: scale(1);
}

/* Rotate animations */
[data-reveal="rotate"] {
  transform: translateY(30px) rotate(-5deg);
  transform-origin: center bottom;
}

[data-reveal="rotate"].reveal-in {
  transform: translateY(0) rotate(0);
}

/* Specific block animations */

/* Intro 1-2-3 cards */
.intro-123 .intro-card[data-reveal] {
  transform: translateY(50px) scale(0.95);
  transition: all 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.intro-123 .intro-card[data-reveal].reveal-in {
  transform: translateY(0) scale(1);
}

/* Customer/Community sliders */
.customer-slider[data-reveal],
.community-slider[data-reveal] {
  transform: translateY(40px);
  transition: all 0.9s ease-out;
}

/* FAQ accordion */
.faq-accordion .accordion-item[data-reveal] {
  transform: translateX(-20px);
  opacity: 0;
  transition: all 0.5s ease-out;
}

.faq-accordion .accordion-item[data-reveal].reveal-in {
  transform: translateX(0);
  opacity: 1;
}

/* Hero elements */
.hero-board [data-reveal] {
  animation-duration: 1.2s;
  animation-fill-mode: both;
}

.hero-board h1[data-reveal] {
  animation-delay: 0.2s;
}

.hero-board .hero-subheading[data-reveal] {
  animation-delay: 0.4s;
}

.hero-board .hero-cta[data-reveal] {
  animation-delay: 0.6s;
}

/* Group reveals */
[data-reveal-group] {
  /* Group container doesn't animate itself */
}

[data-reveal-group] [data-reveal] {
  /* Children will be staggered */
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal].reveal-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* Utility classes for delays */
[data-reveal-delay="100"] { transition-delay: 100ms; }
[data-reveal-delay="200"] { transition-delay: 200ms; }
[data-reveal-delay="300"] { transition-delay: 300ms; }
[data-reveal-delay="400"] { transition-delay: 400ms; }
[data-reveal-delay="500"] { transition-delay: 500ms; }
[data-reveal-delay="600"] { transition-delay: 600ms; }
[data-reveal-delay="700"] { transition-delay: 700ms; }
[data-reveal-delay="800"] { transition-delay: 800ms; }
[data-reveal-delay="900"] { transition-delay: 900ms; }
[data-reveal-delay="1000"] { transition-delay: 1000ms; }

/* Loading state */
.reveal-armed {
  /* Body class added when system is ready */
}

/* Debug mode - uncomment to see reveal boundaries */
/*
[data-reveal] {
  outline: 2px dashed rgba(255, 0, 0, 0.3);
}

[data-reveal].reveal-in {
  outline-color: rgba(0, 255, 0, 0.3);
}
*/