/* === Animations CSS === */
/* Fade animations - only trigger once .site-loaded is present on body */
.fade-up { opacity:0; transform:translateY(40px); transition:opacity 0.8s cubic-bezier(0.25,0.46,0.45,0.94), transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94); }
.site-loaded .fade-up.visible { opacity:1; transform:translateY(0); }
.fade-right { opacity:0; transform:translateX(-40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.site-loaded .fade-right.visible { opacity:1; transform:translateX(0); }
.fade-left { opacity:0; transform:translateX(40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.site-loaded .fade-left.visible { opacity:1; transform:translateX(0); }
.scale-up { opacity:0; transform:scale(0.9); transition:opacity 0.6s ease, transform 0.6s ease; }
.site-loaded .scale-up.visible { opacity:1; transform:scale(1); }
/* Stagger */
.stagger-1 { transition-delay:0.1s; }
.stagger-2 { transition-delay:0.2s; }
.stagger-3 { transition-delay:0.3s; }
.stagger-4 { transition-delay:0.4s; }
.stagger-5 { transition-delay:0.5s; }
.stagger-6 { transition-delay:0.6s; }
.stagger-7 { transition-delay:0.7s; }
.stagger-8 { transition-delay:0.8s; }
/* Glow */
.hover-glow:hover { box-shadow:0 0 30px rgba(90,47,88,0.2); }
/* Magnetic */
.magnetic { transition:transform 0.3s ease; }
/* Parallax */
.parallax { will-change:transform; }
/* Pulse */
@keyframes pulse { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.05); } }
.pulse { animation:pulse 2s infinite; }
/* Slide in */
@keyframes slideInRight { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
@keyframes slideInLeft { from { transform:translateX(-100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
/* Counter animation handled by JS */
