/* Executive Mind — global stylesheet.
 * style.css was empty until 2026-09-06 when we wired the scroll-reveal system
 * (spec: aria/ACTIVE-CONTENT.md). Add other global rules here over time.
 *
 * Pages still mostly use Tailwind CDN + per-page <style> blocks. style.css is
 * for cross-cutting rules that should not be duplicated in every page.
 */

/* ===== Scroll reveal (dynamic content) =====
   Tuned 2026-09-07 to be ~2x more noticeable per Kris request.
   Travel distance roughly doubled (28→56, 24→48), duration slightly
   longer (0.7s→0.9s, 0.6s→0.8s), scale-start deeper (0.94→0.88),
   stagger delays widened (0.05/0.15/...→0.10/0.30/...) for a stronger
   cascade. Single-file change, affects all 28 reveal-enabled pages. */
.reveal {
  opacity: 0;
  transform: translateY(56px);
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.reveal-left  { transform: translateX(-72px); }
.reveal.reveal-right { transform: translateX(72px); }
.reveal.reveal-scale { transform: scale(0.88); }
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}

/* stagger children inside a revealed container */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal-stagger.is-visible > *              { opacity: 1; transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0.10s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.30s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.50s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.70s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.90s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 1.10s; }

/* ===== Section-level fade-in (added 2026-09-08) =====
   Whole <section> fades in as one unit when it scrolls into view.
   Softer + slower than block-level reveals so big containers feel
   like they're settling into place, not snapping in. Tuned for the
   "WordPress/Wix section fade" feel: gentle rise + tiny scale-up.
   Triggers early (threshold 0.08) so the fade begins as the section
   peeks into the viewport, not after it's fully visible.
   The IntersectionObserver in reveal.js picks up .reveal-section
   via the .reveal selector list (one observer entry per element).
   Internal .reveal / .reveal-stagger children still fire on their own
   as the user scrolls deeper into the section. */
.reveal-section {
  opacity: 0;
  transform: translateY(80px) scale(0.96);
  transform-origin: center top;
  transition: opacity 1.2s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal-section.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Accessibility: respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-section, .reveal-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
