/* Animation keyframes sourced from the anti-generic-ai-design skill's
   data/animations-100.json (ids noted per block). Motion energy: measured. */

/* a071 — Hero Staggered Text Reveal */
@keyframes wordUp{
  from{ opacity:0; transform:translateY(0.4em); }
  to{ opacity:1; transform:translateY(0); }
}
.hero h1 .word{ animation:wordUp 620ms cubic-bezier(0.25,1,0.5,1) both; }
.hero-sub{ animation:wordUp 620ms cubic-bezier(0.25,1,0.5,1) both; animation-delay:420ms; }
.hero-ctas{ animation:wordUp 620ms cubic-bezier(0.25,1,0.5,1) both; animation-delay:520ms; }
.hero-proof{ animation:wordUp 620ms cubic-bezier(0.25,1,0.5,1) both; animation-delay:600ms; }

/* a073 — Hero Product UI Unroll */
@keyframes unrollRow{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}
.mockup-cal .d{ animation:unrollRow 420ms cubic-bezier(0.25,1,0.5,1) both; }
.mockup-row{ animation:unrollRow 460ms cubic-bezier(0.25,1,0.5,1) both; }

/* a060 — Button Sheen Sweep */
@keyframes sheenSweep{
  from{ left:-60%; }
  to{ left:120%; }
}

@media (prefers-reduced-motion: reduce){
  .hero h1 .word,.hero-sub,.hero-ctas,.hero-proof,.mockup-cal .d,.mockup-row{
    animation:none !important; opacity:1 !important; transform:none !important;
  }
}
