@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skeletonPulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}.animate-fade-in{animation:fadeIn .3s var(--ease-out) forwards}.animate-fade-in-up{animation:fadeInUp .4s var(--ease-out) forwards}.animate-fade-in-scale{animation:fadeInScale .3s var(--ease-out) forwards}.animate-delay-1{animation-delay:50ms}.animate-delay-2{animation-delay:.1s}.animate-delay-3{animation-delay:150ms}.animate-delay-4{animation-delay:.2s}.animate-delay-5{animation-delay:250ms}.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.reveal.revealed{opacity:1;transform:translateY(0)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-2px)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.skeleton{background:var(--bg-tertiary);animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.skeleton--text{height:16px;width:100%}.skeleton--title{height:24px;width:60%}.skeleton--card{height:80px}.focus-ring:focus-visible{outline:0;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent-primary)}@media (prefers-reduced-motion:reduce){.animate-fade-in,.animate-fade-in-scale,.animate-fade-in-up,.reveal{animation:none;opacity:1;transform:none;transition:none}.hover-lift:hover,.hover-scale:hover{transform:none}.skeleton{animation:none}}.will-animate{will-change:transform,opacity}