@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.slide-up{animation:slideUp .5s ease-out}@keyframes slideFromRight{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}.slide-from-right{animation:slideFromRight .4s ease-out}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes glow{0%{box-shadow:0 0 5px hsla(5,81%,73%,.2)}50%{box-shadow:0 0 20px hsla(5,81%,73%,.6)}to{box-shadow:0 0 5px hsla(5,81%,73%,.2)}}.glow{animation:glow 2s ease-in-out infinite}@keyframes modalOpen{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-open{animation:modalOpen .3s ease-out}@keyframes modalClose{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.modal-close{animation:modalClose .2s ease-in forwards}.button-hover{transition:transform .2s,box-shadow .2s}.button-hover:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.metadata-hover{transition:transform .3s ease-out}.metadata-hover:hover{transform:scale(1.1)}@keyframes scrollIndicator{0%{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(10px)}to{opacity:.6;transform:translateY(0)}}.scroll-indicator{animation:scrollIndicator 2s infinite}