@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:.3s ease-out forwards fadeIn}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:.25s ease-out forwards slideInRight}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.animate-pulse-slow{animation:2s ease-in-out infinite pulse}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{background:linear-gradient(90deg,#f0f0f0 0%,#f8f8f8 50%,#f0f0f0 100%) 0 0/1000px 100%;animation:2s linear infinite shimmer}.hover-scale{transition:transform .15s ease-out}.hover-scale:hover{transform:scale(1.02)}.focus-visible-ring:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #2563eb}.transition-colors-smooth{transition:background-color .2s,color .2s,border-color .2s}.transition-transform-smooth{transition:transform .2s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.smooth-scroll{scroll-behavior:smooth}.stagger-fade-in-1{opacity:0;animation:.3s ease-out 50ms forwards fadeIn}.stagger-fade-in-2{opacity:0;animation:.3s ease-out .1s forwards fadeIn}.stagger-fade-in-3{opacity:0;animation:.3s ease-out .15s forwards fadeIn}.timeline-item-appear{animation:.3s ease-out forwards fadeIn}.hover-glow{transition:box-shadow .2s}.hover-glow:hover{box-shadow:0 0 0 2px #2563eb1a}.active-press:active{transform:scale(.98)}
