@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(0,123,255,.7)}70%{transform:scale(1.05);box-shadow:0 0 0 10px transparent}to{transform:scale(1);box-shadow:0 0 0 0 transparent}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%0}to{background-position:200%0}}@keyframes deviceRotate{0%{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}@keyframes ping{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(66,153,225,.7)}70%{transform:scale(1);box-shadow:0 0 0 10px transparent}to{transform:scale(.95);box-shadow:0 0 0 0 transparent}}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{50%{border-color:transparent}}.animate-in{animation:fadeIn .6s ease forwards}.app-feature-showcase.animate-in{animation:slideUp .8s ease forwards}.app-feature-showcase.animate-in .device-frame{animation:scaleIn .8s ease forwards .2s;opacity:0;animation-fill-mode:forwards}.app-feature-showcase.animate-in .feature-content{animation:slideUp .8s ease forwards .4s;opacity:0;animation-fill-mode:forwards}.device-float{animation:float 6s ease-in-out infinite}.device-pulse{animation:pulse 2s infinite}.shimmer-effect{background:linear-gradient(90deg,rgba(255,255,255,0)0,rgba(255,255,255,.2) 50%,rgba(255,255,255,0) 100%);background-size:200% 100%;animation:shimmer 2s infinite}.notification-ping{position:relative}.notification-ping::after{content:"";position:absolute;width:10px;height:10px;background-color:#4299e1;border-radius:50%;top:0;right:0;animation:ping 1.5s cubic-bezier(0,0,.2,1) infinite}.typing-animation{display:inline-block;overflow:hidden;white-space:nowrap;border-right:3px solid var(--sapphire);animation:typing 3.5s steps(40,end),blink .75s step-end infinite}.device-tilt{transition:transform .3s ease}.device-tilt:hover{transform:perspective(1000px) rotateX(5deg) rotateY(-5deg)}