/* reviews.html — hero animation (prefix: rv-)
   Theme: 4.9★ aggregate rating with stars drawing in + quote card + 4 outcome counters */
@keyframes rvGlow { 0%,100% { opacity: 0.1; } 50% { opacity: 0.22; } }
@keyframes rvFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes rvStar { from { opacity: 0; transform: scale(0.4); } to { opacity: 1; transform: scale(1); } }
@keyframes rvCount { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.rv-glow { animation: rvGlow 4s ease-in-out infinite; }
.rv-rating { animation: rvFade 0.55s var(--ease-spring) 0.4s both; }
.rv-star { transform-box: fill-box; transform-origin: center; }
.rv-s1 { animation: rvStar 0.4s var(--ease-spring) 0.9s both; }
.rv-s2 { animation: rvStar 0.4s var(--ease-spring) 1.05s both; }
.rv-s3 { animation: rvStar 0.4s var(--ease-spring) 1.2s both; }
.rv-s4 { animation: rvStar 0.4s var(--ease-spring) 1.35s both; }
.rv-s5 { animation: rvStar 0.4s var(--ease-spring) 1.5s both; }
.rv-quote   { animation: rvFade 0.55s var(--ease-spring) 1.6s both; }
.rv-counter { }
.rv-c1 { animation: rvCount 0.45s var(--ease-spring) 1.85s both; }
.rv-c2 { animation: rvCount 0.45s var(--ease-spring) 2.0s both; }
.rv-c3 { animation: rvCount 0.45s var(--ease-spring) 2.15s both; }
.rv-c4 { animation: rvCount 0.5s var(--ease-spring) 2.3s both; }
