/* rescue-lovable.html — hero animation (prefix: lv-)
   Theme: Before (red, drifting auth, bloated bundle) → After (green, steady, pruned) */
@keyframes lvGlow  { 0%,100% { opacity: 0.08; } 50% { opacity: 0.2; } }
@keyframes lvFade  { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } }
@keyframes lvFadeR { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } }
@keyframes lvDraw  { from { stroke-dashoffset: 200; } to { stroke-dashoffset: 0; } }
@keyframes lvBarShrink { from { width: 160px; } to { width: 82px; } }
@keyframes lvArrow { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
.lv-glow   { animation: lvGlow 3.5s ease-in-out infinite; }
.lv-before { animation: lvFade 0.55s var(--ease-spring) 0.4s both; }
.lv-drift  { stroke-dasharray: 200; animation: lvDraw 1.3s ease-out 0.9s both; }
.lv-arrow  { transform-box: fill-box; transform-origin: center; animation: lvFade 0.5s var(--ease-spring) 1.25s both, lvArrow 1.8s ease-in-out 1.9s infinite; }
.lv-after  { animation: lvFadeR 0.55s var(--ease-spring) 1.4s both; }
.lv-steady { stroke-dasharray: 200; animation: lvDraw 1.2s ease-out 1.9s both; }
.lv-bar    { animation: lvBarShrink 1s var(--ease-out) 2.1s both; }
