/* ===========================================
   ANIMATIONS & KEYFRAMES
   ========================================= */
@import url('tokens.css');

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: none; } }
@keyframes fadeInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: none; } }
@keyframes fadeInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
@keyframes slideInUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { opacity: 1; transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { transform: scale(1); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes wiggle { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes shimmer { 0% { background-position: -1000px 0; } 100% { background-position: 1000px 0; } }
@keyframes gradient { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes glow { 0%, 100% { box-shadow: 0 0 16px 4px var(--color-bright-gold); } 50% { box-shadow: 0 0 32px 12px var(--color-gold); } }

/* Animation Utility Classes */
.animate-fade-in.is-visible { animation: fadeIn 0.8s ease-out forwards; }
.animate-fade-in-up.is-visible { animation: fadeInUp 0.8s ease-out forwards; }
.animate-fade-in-down.is-visible { animation: fadeInDown 0.6s ease-out forwards; }
.animate-fade-in-left.is-visible { animation: fadeInLeft 1s ease-out forwards; }
.animate-fade-in-right.is-visible { animation: fadeInRight 1s ease-out forwards; }
.animate-scale-in.is-visible { animation: scaleIn 0.5s ease-out forwards; }
.animate-slide-in-up.is-visible { animation: slideInUp 0.8s ease-out forwards; }
.animate-bounce-in.is-visible { animation: bounceIn 0.6s ease-out forwards; }
.animate-pulse { animation: pulse 2s ease-in-out infinite; }
.animate-bounce { animation: bounce 1s ease-in-out infinite; }
.animate-wiggle { animation: wiggle 0.5s ease-in-out; }
.animate-shimmer { animation: shimmer 2s linear infinite; }
.animate-gradient { animation: gradient 15s ease infinite; }
.animate-float { animation: float 3s ease-in-out infinite; }
.animate-glow { animation: glow 2s ease-in-out infinite; } 