/**
 * Sri Jeyaram Bakery & Sweets — Animations, Micro-Interactions and Keyframes
 */
/* Fade-in animations */
@keyframes fadeIn {
 from { opacity: 0; }
to { opacity: 1; }
 }
.fade-in { animation: fadeIn var(--transition-normal) forwards; }
/* Slide up details */
@keyframes slideUp {
 from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
 }
.slide-up { animation: slideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
/* Cart Badge Micro-Bounce on count update / item added */
@keyframes badgeBounce {
 0% { transform: scale(1); }
35% { transform: scale(1.38); }
65% { transform: scale(0.9); }
100% { transform: scale(1); }
 }
.badge-bounce { animation: badgeBounce 0.45s cubic-bezier(0.16, 1, 0.3, 1) !important; }
/* Pulse keyframe for badge counts or polling indicators */
@keyframes pulse {
 0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(234, 88, 12, 0.4); }
70% { transform: scale(1.05); box-shadow: 0 0 0 10px rgba(234, 88, 12, 0); }
100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(234, 88, 12, 0); }
 }
.pulse { animation: pulse 2s infinite; }
/* Badge entrance scale+fade */
@keyframes badgePopIn {
 0% { opacity: 0; transform: scale(0.82); }
100% { opacity: 1; transform: scale(1); }
 }
.badge-pop-in { animation: badgePopIn 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
/* "Save ₹X" badge pop on price switch */
@keyframes saveBadgePop {
 0% { opacity: 0; transform: scale(0.85); }
100% { opacity: 1; transform: scale(1); }
 }
/* Seamless Marquee Track Animation */
@keyframes marqueeScroll {
 0% { transform: translate3d(0, 0, 0); }
100% { transform: translate3d(-50%, 0, 0); }
 }
/* Spinner for API loading transitions */
.spinner { width: 26px; height: 26px; border: 3px solid rgba(234, 88, 12, 0.2); border-radius: 50%; border-top-color: var(--green); animation: spin 1s linear infinite; }
@keyframes spin {
 to { transform: rotate(360deg); }
 }
/* Timeline status active pulsing dot */
@keyframes statusActive {
 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }
70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); }
100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
 }
.status-active-pulse { animation: statusActive 1.5s infinite; }
