/* Disable Squarespace scroll-reveal animations site-wide.
 *
 * The captured markup has had its preFade/fadeIn classes and inline transition
 * timings stripped, and the animation tweak is set to "none" in each page's
 * context. This is the safety net: if site-bundle.js still tags anything with
 * a pre* reveal class, show it immediately instead of waiting on an
 * IntersectionObserver that doesn't fire reliably in the static clone.
 */
.preFade,
.preSlide,
.preScale,
.preClip,
.preFlex,
.preFlex .sqs-button-element--primary,
.preFlex .sqs-button-element--secondary,
.preFlex .sqs-button-element--tertiary,
.preFlex .btn {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  transition: none !important;
}

/* Per-block image animations (Image block → Design → Animation). These hide the
 * image/caption at opacity 0 until the bundle adds .animation-loaded on scroll.
 * The loaded state is an identity transform, so `none` is visually identical. */
.image-block-outer-wrapper[class*="combination-animation-"] .image-block-wrapper,
.image-block-outer-wrapper[class*="combination-animation-"] .image-inset,
.image-block-outer-wrapper[class*="combination-animation-"] .image-caption-wrapper,
.image-block-outer-wrapper[class*="combination-animation-"] .sqs-image-content,
.image-block-outer-wrapper[class*="combination-animation-"] .sqs-dynamic-text-container {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Blog list layouts fade each post card in as it loads. Masonry positions its
 * cards with inline transforms, so only opacity/transition are overridden. */
.blog-masonry .entry {
  opacity: 1 !important;
  transition: none !important;
}
.blog-side-by-side .blog-item,
.blog-alternating-side-by-side .blog-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
