/* ============================================================
   ANIMATIONS.CSS — Keyframes, transitions, scroll effects
   Valion Technologies
   ============================================================ */

/* ── PAGE LOAD REVEALS ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

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

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

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

/* Hero entrance stagger */
.hero-badge   { animation: fadeUp 0.5s 0.05s var(--ease) both; }
.hero-title   { animation: fadeUp 0.6s 0.15s var(--ease) both; }
.hero-sub     { animation: fadeUp 0.6s 0.25s var(--ease) both; }
.hero-actions { animation: fadeUp 0.6s 0.35s var(--ease) both; }
.hero-image   { animation: scaleIn 0.8s 0.2s var(--ease) both; }

/* ── PULSE DOT ── */
@keyframes pulse-dot {
  0%, 100% { transform: scale(1);   opacity: 1; }
  50%       { transform: scale(0.7); opacity: 0.5; }
}

.pulse-dot {
  animation: pulse-dot 2s infinite;
}

/* ── HOVER LIFT ── */
.hover-lift {
  transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

/* ── SHINE SWEEP (on cards) ── */
@keyframes shine {
  from { left: -100%; }
  to   { left: 200%; }
}

.card-shine {
  position: relative;
  overflow: hidden;
}

.card-shine::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,0.08),
    transparent
  );
  pointer-events: none;
  transition: none;
}

.card-shine:hover::after {
  animation: shine 0.6s var(--ease) forwards;
}

/* ── GLOW PULSE (green elements) ── */
@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 8px rgba(0,230,57,0.4); }
  50%       { box-shadow: 0 0 20px rgba(0,230,57,0.7); }
}

.glow { animation: glow-pulse 2.5s infinite; }

/* ── BRACKET CORNERS GROW ── */
@keyframes bracket-grow {
  from { width: 8px;  height: 8px; }
  to   { width: 14px; height: 14px; }
}
