/* ===== KEYFRAME ANIMATIONS ===== */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

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

@keyframes floatOrb {
  0%, 100% { transform: scale(1) translate(0, 0); }
  33%       { transform: scale(1.08) translate(20px, -20px); }
  66%       { transform: scale(0.96) translate(-15px, 15px); }
}

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

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

@keyframes spinSlow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes borderGlow {
  0%, 100% { border-color: rgba(201,168,76,0.2); }
  50%       { border-color: rgba(201,168,76,0.6); box-shadow: 0 0 20px rgba(201,168,76,0.2); }
}

@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Gold shimmer text */
.shimmer-text {
  background: linear-gradient(
    90deg,
    var(--gold-dark) 0%,
    var(--gold-light) 40%,
    var(--gold) 60%,
    var(--gold-dark) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 3s linear infinite;
}

/* Page transition */
.page-enter {
  animation: fadeUp 0.5s ease forwards;
}

/* Blinking cursor for code */
.cursor-blink::after {
  content: '|';
  color: var(--gold);
  animation: pulse 1s infinite;
}

/* Glow button pulse */
.btn-primary.pulse {
  animation: borderGlow 2s ease-in-out infinite;
}

/* Loading bar */
.loading-bar {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-dark), var(--gold-light));
  z-index: 9999;
  animation: loadProgress 1.5s ease forwards;
}

@keyframes loadProgress {
  from { width: 0%; }
  to   { width: 100%; }
}

/* Tag badge shine */
.hero-tag {
  position: relative;
  overflow: hidden;
}
.hero-tag::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -100%;
  width: 80%;
  height: 200%;
  background: linear-gradient(
    120deg,
    transparent 30%,
    rgba(201,168,76,0.15) 50%,
    transparent 70%
  );
  transform: skewX(-15deg);
  animation: slideShine 4s ease infinite 2s;
}

@keyframes slideShine {
  0%   { left: -100%; }
  50%, 100% { left: 150%; }
}

/* Staggered service cards */
.service-card:nth-child(1) { transition-delay: 0.05s; }
.service-card:nth-child(2) { transition-delay: 0.1s; }
.service-card:nth-child(3) { transition-delay: 0.15s; }
.service-card:nth-child(4) { transition-delay: 0.2s; }
.service-card:nth-child(5) { transition-delay: 0.25s; }
.service-card:nth-child(6) { transition-delay: 0.3s; }

/* Staggered reveal */
.scroll-reveal:nth-child(1) { transition-delay: 0s; }
.scroll-reveal:nth-child(2) { transition-delay: 0.1s; }
.scroll-reveal:nth-child(3) { transition-delay: 0.2s; }
.scroll-reveal:nth-child(4) { transition-delay: 0.3s; }
.scroll-reveal:nth-child(5) { transition-delay: 0.4s; }
.scroll-reveal:nth-child(6) { transition-delay: 0.5s; }
