@keyframes ripple{0%{opacity:.7;transform:scale(.8)}to{opacity:0;transform:scale(2)}}.animate-ripple{animation:.8s ease-out ripple}@keyframes breathe{0%,to{box-shadow:0 0 15px 5px #8b5cf666}50%{box-shadow:0 0 25px 10px #8b5cf699,0 0 35px 15px #4f46e54d}}@keyframes breathe-unfocused{0%,to{box-shadow:0 0 10px 3px #8b5cf633}50%{box-shadow:0 0 15px 5px #8b5cf64d,0 0 25px 10px #4f46e526}}.keyboard-glow{animation:3s ease-in-out infinite breathe;animation-play-state:running!important}.keyboard-glow-unfocused{animation:4s ease-in-out infinite breathe-unfocused;animation-play-state:running!important}@keyframes appear{0%{opacity:0;transform:translateY(10px)scale(.95)}20%{opacity:1;transform:translateY(0)scale(1)}80%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-10px)scale(.95)}}.key-popup-animation{animation:2s ease-in-out appear}@keyframes key-press{0%{transform:translateY(0)}50%{transform:translateY(1px)}to{transform:translateY(0)}}.key-press-animation{animation:.15s ease-in-out key-press}@keyframes color-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.color-shift-animation{background:linear-gradient(90deg,#8b5cf6b3,#4f46e5b3,#3b82f6b3,#8b5cf6b3) 0 0/300% 100%;animation:3s ease-in-out infinite color-shift}
