/* svc-mvp.html — hero animation (prefix: mv-)
   Theme: 4-week sprint timeline → scope cuts → ship → learn loop */
@keyframes mvGlow { 0%,100% { opacity: 0.08; } 50% { opacity: 0.2; } }
@keyframes mvFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes mvCutStrike { 0% { opacity: 0; text-decoration-color: transparent; } 60% { opacity: 0.9; } 100% { opacity: 0.55; text-decoration-color: rgba(255,120,120,0.9); } }
@keyframes mvKeepIn { from { opacity: 0; transform: scale(0.85); } to { opacity: 1; transform: scale(1); } }
@keyframes mvLoopSpin { to { transform: rotate(360deg); } }
.mv-glow { animation: mvGlow 3.5s ease-in-out infinite; }
.mv-sprint { }
.mv-s1 { animation: mvFade 0.45s var(--ease-spring) 0.4s both; }
.mv-s2 { animation: mvFade 0.45s var(--ease-spring) 0.6s both; }
.mv-s3 { animation: mvFade 0.45s var(--ease-spring) 0.8s both; }
.mv-s4 { animation: mvFade 0.5s  var(--ease-spring) 1.0s both; }
.mv-scope { animation: mvFade 0.5s var(--ease-spring) 1.15s both; }
.mv-cut  { animation: mvCutStrike 0.6s ease-out both; }
.mv-c1 { animation-delay: 1.4s; } .mv-c2 { animation-delay: 1.55s; } .mv-c3 { animation-delay: 1.7s; }
.mv-keep { animation: mvKeepIn 0.45s var(--ease-spring) 1.9s both; transform-box: fill-box; transform-origin: center; }
.mv-loop-wrap { animation: mvFade 0.5s var(--ease-spring) 1.4s both; }
.mv-loop { transform-box: fill-box; transform-origin: center; animation: mvLoopSpin 6s linear 2s infinite; }
