body {
  font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Gradient text */
.gradient-text {
  background: linear-gradient(135deg, #4f46e5 0%, #8b5cf6 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* BG gradient brand */
.bg-brand {
  background: linear-gradient(135deg, #4f46e5 0%, #8b5cf6 100%);
}

.bg-brand-light {
  background: linear-gradient(135deg, #eef2ff 0%, #f3e8ff 100%);
}

/* Blob shapes */
.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none;
}

/* Grid Overlay */
.bg-grid {
  background-size: 40px 40px;
  background-image: 
    linear-gradient(to right, rgba(0, 0, 0, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.04) 1px, transparent 1px);
}

/* Reveal animation */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.4, 0, .2, 1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero fade-up delays */
.du-0 {
  animation-delay: 0s;
}

.du-1 {
  animation-delay: .12s;
}

.du-2 {
  animation-delay: .24s;
}

.du-3 {
  animation-delay: .40s;
}

.du-4 {
  animation-delay: .55s;
}

/* Active nav */
.nav-a.active-nav {
  color: #4f46e5 !important;
  background: #eef2ff !important;
}

/* Shimmer mock cards */
.mock-card {
  animation: shimmer 2s ease-in-out infinite;
}

.mock-card:nth-child(2) {
  animation-delay: .3s;
}

.mock-card:nth-child(3) {
  animation-delay: .6s;
}

/* Pulse glow button */
.btn-glow {
  animation: pulseGlow 2.5s infinite;
}

/* Floating WA */
#waFloat {
  animation: bounceIn .6s .8s backwards;
}

/* Typing cursor */
.typing-cursor {
  display: inline-block;
  width: 3px;
  margin-left: 2px;
  background: linear-gradient(135deg, #4f46e5 0%, #8b5cf6 100%);
  animation: cursorBlink 1s step-end infinite;
  vertical-align: baseline;
  border-radius: 2px;
}

@keyframes cursorBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
