/* Modern animations for KService website */

/* Floating particles animation */
@keyframes float {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  33% { transform: translateY(-10px) rotate(120deg); }
  66% { transform: translateY(5px) rotate(240deg); }
}

/* Modern button hover effects */
.btn-hover-effect {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(120, 119, 198, 0.8), rgba(120, 119, 198, 0.6));
  border: 1px solid rgba(120, 119, 198, 0.3);
  color: white;
  padding: 15px 30px;
  border-radius: 25px;
  font-weight: 600;
  transition: all 0.4s ease;
  box-shadow: 0 10px 25px rgba(120, 119, 198, 0.3);
  backdrop-filter: blur(10px);
}

.btn-hover-effect::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: 0.6s ease;
}

.btn-hover-effect:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 15px 35px rgba(120, 119, 198, 0.5);
  background: linear-gradient(135deg, rgba(120, 119, 198, 1), rgba(120, 119, 198, 0.8));
  border: 1px solid rgba(120, 119, 198, 0.5);
}

.btn-hover-effect:hover::before {
  left: 100%;
}

/* Enhanced pulse animation for important elements */
.pulse {
  animation: modernPulse 3s infinite;
}

@keyframes modernPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.6);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 0 20px rgba(78, 205, 196, 0.2);
    transform: scale(1.02);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(69, 183, 209, 0);
    transform: scale(1);
  }
}

/* Glow effect animation */
.glow {
  animation: glow 2s ease-in-out infinite alternate;
}

@keyframes glow {
  from {
    box-shadow: 0 0 20px rgba(255, 107, 107, 0.5);
  }
  to {
    box-shadow: 0 0 30px rgba(78, 205, 196, 0.8);
  }
}

/* Enhanced typing animation for headings */
.typing-animation {
  overflow: hidden;
  white-space: nowrap;
  margin: 0 auto;
  animation: modernTyping 4s steps(40, end);
  position: relative;
}

@keyframes modernTyping {
  from {
    width: 0;
    opacity: 0;
  }
  to {
    width: 100%;
    opacity: 1;
  }
}

@keyframes textGlow {
  from {
    text-shadow: 0 0 10px rgba(255, 107, 107, 0.5);
  }
  to {
    text-shadow: 0 0 20px rgba(78, 205, 196, 0.8), 0 0 30px rgba(69, 183, 209, 0.6);
  }
}

/* Floating elements animation */
.float {
  animation: float 6s ease-in-out infinite;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
}

/* Scale in animation for cards */
.scale-in {
  animation: scaleIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes scaleIn {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

/* Enhanced shine effect for images */
.shine-effect {
  position: relative;
  overflow: hidden;
}

.shine-effect::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(45deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 107, 107, 0.3) 25%,
    rgba(78, 205, 196, 0.4) 50%,
    rgba(69, 183, 209, 0.3) 75%,
    rgba(255, 255, 255, 0) 100%);
  transform: skewX(-20deg);
  z-index: 2;
  transition: all 0.6s ease;
}

.shine-effect:hover::before {
  animation: modernShine 1.2s ease-out;
}

@keyframes modernShine {
  0% {
    left: -100%;
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    left: 150%;
    opacity: 0;
  }
}

/* Ripple effect for interactive elements */
.ripple {
  position: relative;
  overflow: hidden;
}

.ripple::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%);
  transition: width 0.6s, height 0.6s;
}

.ripple:hover::after {
  width: 300px;
  height: 300px;
}
