When generating websites or landing pages, ALWAYS include the full scroll effects system. Mike wants sites to feel premium and animated, not static.

Why: Static sites look cheap. The scroll effects are what make business owners go “holy shit someone built THIS for me.” Confirmed working and approved on the insurance website demo templates (Mar 23, 2026).

How to apply: Include these effects on ALL generated sites — insurance templates, demo pages, client sites, any web page we build:

The Effects (all pure CSS + vanilla JS, zero dependencies)

  1. Hero cascade entrance — eyebrow, h1, description, CTAs, trust bar animate in sequence on page load (200ms, 350ms, 500ms, 650ms, 800ms delays)
  2. Hero image slide-in — slides from right with slight scale, 0.4s delay
  3. Video parallax — hero background video moves at 0.3x scroll speed via requestAnimationFrame
  4. Stats counter animation — numbers count up from 0 with ease-out cubic when scrolled into view
  5. Staggered card reveals — add .stagger to parent, .reveal to children. Cards fade up with 80ms delay between each (supports up to 6 children)
  6. Slide from left/right.reveal-left / .reveal-right for asymmetric layouts (e.g., image left, text right)
  7. Scale reveal.reveal-scale for badges, floating cards
  8. Section heading cascade.s-eyebrow, .s-heading, .s-sub animate in sequence when section scrolls into view
  9. CTA card entrance — scales up from 0.97 + fades in
  10. Nav shadow on scroll — subtle box-shadow appears after scrolling 100px

Implementation

  • CSS classes: .reveal, .reveal-left, .reveal-right, .reveal-scale, .stagger
  • JS: IntersectionObserver-based, fires once per element (unobserves after visible)
  • Performance: uses requestAnimationFrame, will-change: transform, passive scroll listeners
  • Mobile: all effects work on mobile, no heavy animations

Reference Implementation

  • C:\Users\mmoor\no-website-bot\samples\cruz-insurance-group\index-video.html — the full working example with all effects