/** Advanced Animations */
.sf-stagger > * { animation: staggerIn 0.5s ease both; }
.sf-stagger > *:nth-child(1) { animation-delay: 0.1s; }
.sf-stagger > *:nth-child(2) { animation-delay: 0.2s; }
.sf-stagger > *:nth-child(3) { animation-delay: 0.3s; }
.sf-stagger > *:nth-child(4) { animation-delay: 0.4s; }
.sf-stagger > *:nth-child(5) { animation-delay: 0.5s; }
.sf-stagger > *:nth-child(6) { animation-delay: 0.6s; }
.sf-stagger > *:nth-child(7) { animation-delay: 0.7s; }
.sf-stagger > *:nth-child(8) { animation-delay: 0.8s; }
@keyframes staggerIn { from { opacity: 0; } to { opacity: 1; } }
.sf-parallax { will-change: transform; }
.sf-magnetic { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.sf-text-reveal { overflow: hidden; }
.sf-text-reveal span { display: inline-block; transform: translateY(100%); animation: textReveal 0.6s ease forwards; }
@keyframes textReveal { to { transform: translateY(0); } }
.sf-tilt { transform-style: preserve-3d; perspective: 1000px; }
.sf-glow { position: relative; }
.sf-glow::after { content: ''; position: absolute; inset: -2px; background: linear-gradient(45deg, var(--sf-primary), var(--sf-secondary), var(--sf-primary)); border-radius: inherit; opacity: 0; z-index: -1; transition: opacity 0.3s; filter: blur(10px); }
.sf-glow:hover::after { opacity: 0.5; }
.sf-marquee { overflow: hidden; white-space: nowrap; }
.sf-marquee-content { display: inline-block; animation: marquee 20s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.sf-morph { animation: morph 8s ease-in-out infinite; }
@keyframes morph { 0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; } 50% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; } }
.sf-gradient-animate { background-size: 200% 200%; animation: gradientShift 3s ease infinite; }
@keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
.sf-hero { background-size: 200% 200%; animation: gradientShift 14s ease infinite; }
.sf-hero-image { animation: none; }
.sf-spin-slow { animation: spin 20s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.sf-bounce-in { animation: bounceIn 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
@keyframes bounceIn { 0% { transform: scale(0); opacity: 0; } 60% { transform: scale(1.1); } 100% { transform: scale(1); opacity: 1; } }
