@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateY(0)}40%,43%{transform:translateY(-30px)}70%{transform:translateY(-15px)}90%{transform:translateY(-4px)}}.animate-fade-in-up{animation:fadeInUp .8s ease-out}.animate-slide-in-left{animation:slideInLeft .6s ease-out}.animate-pulse-slow{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce-slow{animation:bounce 2s infinite}.category-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.category-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.form-input{transition:all .2s ease-in-out}.form-input:focus{transform:translateY(-1px);box-shadow:0 4px 12px rgba(139,92,246,.15)}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2 50%,#667eea);background-size:200% 200%;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.submit-button:hover{animation-duration:1s}@keyframes typing{0%{width:0}to{width:100%}}.typing-effect{overflow:hidden;white-space:nowrap;border-right:2px solid;animation:typing 3.5s steps(40),blink-caret .75s step-end infinite}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:#667eea}}.custom-spinner{width:20px;height:20px;border:2px solid #ffffff;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.floating-particles{position:absolute;width:100%;height:100%;overflow:hidden;pointer-events:none}.particle{position:absolute;background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(59,130,246,.1));border-radius:50%;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0deg);opacity:.1}50%{transform:translateY(-20px) rotate(180deg);opacity:.3}}.particle:first-child{left:20%;width:10px;height:10px;animation-delay:0s}.particle:nth-child(2){left:50%;width:15px;height:15px;animation-delay:1s}.particle:nth-child(3){left:70%;width:8px;height:8px;animation-delay:2s}.particle:nth-child(4){left:80%;width:12px;height:12px;animation-delay:3s}.star-rating{position:relative}.star-rating .star{transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.star-rating .star:hover{transform:scale(1.2)}.star-rating .star.active{animation:starPulse .6s ease-out}@keyframes starPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.glow-text{background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:textGlow 2s ease-in-out infinite alternate}@keyframes textGlow{0%{text-shadow:0 0 10px rgba(139,92,246,.3)}to{text-shadow:0 0 20px rgba(139,92,246,.6)}}.success-animation{position:relative;overflow:hidden}.success-animation:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;background:linear-gradient(45deg,#667eea,#764ba2,#667eea);background-size:300% 300%;animation:successGlow 2s ease-in-out infinite;border-radius:20px;z-index:-1}@keyframes successGlow{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@media (max-width:768px){.feedback-form{padding:1rem}.star-rating .star{margin:0 2px}.category-card{padding:12px}}@media (max-width:640px){.glow-text{font-size:2rem}.submit-button{padding:16px;font-size:16px}}