@keyframes pc-fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes pc-scaleIn {
  from {
    opacity: 0;
    transform: scale(0.92);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes pc-slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pc-slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes pc-slideLeft {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes pc-glow {
  0%, 100% {
    box-shadow: 0 0 10px rgba(45, 106, 79, 0.3);
  }
  50% {
    box-shadow: 0 0 25px rgba(82, 183, 136, 0.5);
  }
}

@keyframes pc-gold-glow {
  0%, 100% {
    text-shadow: 0 0 10px rgba(201, 168, 76, 0.3);
  }
  50% {
    text-shadow: 0 0 25px rgba(201, 168, 76, 0.6);
  }
}

@keyframes pc-shimmer {
  0% {
    background-position: -200% center;
  }
  100% {
    background-position: 200% center;
  }
}

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

@keyframes pc-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

@keyframes pc-rotate-in {
  from {
    opacity: 0;
    transform: rotate(-180deg) scale(0.5);
  }
  to {
    opacity: 1;
    transform: rotate(0) scale(1);
  }
}

@keyframes pc-typing {
  0%, 100% {
    opacity: 0.3;
  }
  50% {
    opacity: 1;
  }
}

/* Apply staggered animations to cards */
.pc-card {
  animation: pc-slideUp 0.5s ease both;
}
.pc-card:nth-child(1) { animation-delay: 0.05s; }
.pc-card:nth-child(2) { animation-delay: 0.1s; }
.pc-card:nth-child(3) { animation-delay: 0.15s; }
.pc-card:nth-child(4) { animation-delay: 0.2s; }
.pc-card:nth-child(5) { animation-delay: 0.25s; }
.pc-card:nth-child(6) { animation-delay: 0.3s; }

.pc-service-card {
  animation: pc-slideUp 0.5s ease both;
}
.pc-service-card:nth-child(1) { animation-delay: 0.05s; }
.pc-service-card:nth-child(2) { animation-delay: 0.1s; }
.pc-service-card:nth-child(3) { animation-delay: 0.15s; }
.pc-service-card:nth-child(4) { animation-delay: 0.2s; }
.pc-service-card:nth-child(5) { animation-delay: 0.25s; }
.pc-service-card:nth-child(6) { animation-delay: 0.3s; }
.pc-service-card:nth-child(7) { animation-delay: 0.35s; }
.pc-service-card:nth-child(8) { animation-delay: 0.4s; }

.pc-section-title {
  animation: pc-slideDown 0.4s ease both;
}

.pc-auth-form {
  animation: pc-slideUp 0.4s ease both;
}

.pc-tx-item {
  animation: pc-slideLeft 0.3s ease both;
}
.pc-tx-item:nth-child(1) { animation-delay: 0.05s; }
.pc-tx-item:nth-child(2) { animation-delay: 0.1s; }
.pc-tx-item:nth-child(3) { animation-delay: 0.15s; }
.pc-tx-item:nth-child(4) { animation-delay: 0.2s; }

.pc-chat-msg {
  animation: pc-slideUp 0.3s ease both;
}

/* Hover shine effect on cards */
.pc-card::before,
.pc-service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.03), transparent);
  transition: left 0.6s ease;
  pointer-events: none;
}
.pc-card:hover::before,
.pc-service-card:hover::before {
  left: 100%;
}

.pc-card,
.pc-service-card {
  position: relative;
  overflow: hidden;
}

/* Premium divider */
.pc-premium-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--swamp-accent), var(--swamp-gold), var(--swamp-accent), transparent);
  margin: 20px 0;
  border: none;
}

/* Chat typing indicator */
.pc-typing-dots {
  display: flex;
  gap: 4px;
  padding: 8px 12px;
  align-items: center;
}
.pc-typing-dots span {
  width: 8px;
  height: 8px;
  background: var(--text-muted);
  border-radius: 50%;
  animation: pc-typing 1.4s ease infinite both;
}
.pc-typing-dots span:nth-child(1) { animation-delay: 0s; }
.pc-typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.pc-typing-dots span:nth-child(3) { animation-delay: 0.4s; }
