/* ===== HERO ORB ANIMATIONS ===== */
@keyframes orbDrift1 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.7; }
  25%      { transform: translate(60px, -40px) scale(1.15); opacity: 0.9; }
  50%      { transform: translate(-30px, 50px) scale(0.9); opacity: 0.6; }
  75%      { transform: translate(40px, 20px) scale(1.08); opacity: 0.8; }
}
@keyframes orbDrift2 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  30%      { transform: translate(-50px, -30px) scale(1.1); opacity: 0.8; }
  60%      { transform: translate(40px, 40px) scale(0.92); opacity: 0.5; }
  85%      { transform: translate(-20px, -50px) scale(1.05); opacity: 0.75; }
}
@keyframes orbDrift3 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  20%      { transform: translate(50px, 30px) scale(1.12); opacity: 0.7; }
  50%      { transform: translate(-40px, -20px) scale(0.88); opacity: 0.4; }
  80%      { transform: translate(30px, -40px) scale(1.06); opacity: 0.65; }
}
@keyframes orbDrift4 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  35%      { transform: translate(-40px, 50px) scale(1.1); opacity: 0.7; }
  65%      { transform: translate(50px, -30px) scale(0.9); opacity: 0.45; }
  90%      { transform: translate(-20px, 20px) scale(1.03); opacity: 0.6; }
}
@keyframes orbDrift5 {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  25%      { transform: translate(30px, -60px) scale(1.08); opacity: 0.6; }
  55%      { transform: translate(-50px, 20px) scale(0.95); opacity: 0.35; }
  80%      { transform: translate(40px, 40px) scale(1.1); opacity: 0.55; }
}

/* Floating particles */
@keyframes particleFloat {
  0%, 100% { transform: translate(0, 0); opacity: 0.15; }
  25%      { transform: translate(15px, -25px); opacity: 0.35; }
  50%      { transform: translate(-10px, -50px); opacity: 0.1; }
  75%      { transform: translate(20px, -15px); opacity: 0.3; }
}

/* ===== GENERAL ANIMATIONS ===== */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.5; }
}

@keyframes connectorFill {
  from { height: 0; }
  to   { height: 100%; }
}

/* ===== REVEAL ON SCROLL ===== */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.8s cubic-bezier(0.22,1,0.36,1),
              transform 0.9s cubic-bezier(0.22,1,0.36,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-d1 { transition-delay: 0.1s; }
.reveal-d2 { transition-delay: 0.2s; }
.reveal-d3 { transition-delay: 0.3s; }
.reveal-d4 { transition-delay: 0.4s; }
