.animate-fade-up{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.animate-fade-up.is-visible{opacity:1;transform:translateY(0)}.animate-fade-in{opacity:0;transition:opacity var(--transition-slow)}.animate-fade-in.is-visible{opacity:1}.animate-scale-up{opacity:0;transform:scale(.95);transition:opacity var(--transition-slow),transform var(--transition-slow)}.animate-scale-up.is-visible{opacity:1;transform:scale(1)}.animate-fade-left{opacity:0;transform:translate(-30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.animate-fade-left.is-visible{opacity:1;transform:translate(0)}.animate-fade-right{opacity:0;transform:translate(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.animate-fade-right.is-visible{opacity:1;transform:translate(0)}.stagger>*{transition-delay:calc(var(--stagger-index, 0) * .1s)}.card{transition:transform var(--transition-base),box-shadow var(--transition-base)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}@keyframes pulse-accent{0%,to{box-shadow:0 0 0 0 var(--color-accent-light)}50%{box-shadow:0 0 0 8px transparent}}.animate-pulse{animation:pulse-accent 2s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.skeleton{background:linear-gradient(90deg,var(--color-bg-alt) 25%,rgba(255,255,255,.05) 50%,var(--color-bg-alt) 75%);background-size:200% auto;animation:shimmer 1.5s linear infinite;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){.animate-fade-up,.animate-fade-in,.animate-scale-up,.animate-fade-left,.animate-fade-right{opacity:1;transform:none;transition:none}.card:hover{transform:none}.animate-pulse{animation:none}.skeleton{animation:none;background:var(--color-bg-alt)}}
