/* ─── ANIMATIONS ────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

@keyframes scrollDot {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: 0.3; transform: translateY(6px); }
}

@keyframes introLogoPop {
  0% { opacity: 0; transform: scale(0.78) translateY(18px); }
  20% { opacity: 1; }
  55% { transform: scale(1.02) translateY(0); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes introGlowPulse {
  0%, 100% { opacity: 0.35; transform: scaleX(0.82); }
  50% { opacity: 1; transform: scaleX(1.06); }
}

@keyframes introSweep {
  0% { transform: translateX(-26%); opacity: 0; }
  18% { opacity: 1; }
  50% { opacity: 0.9; }
  100% { transform: translateX(26%); opacity: 0; }
}

@keyframes introBars {
  0%, 100% { transform: scaleY(0.58); opacity: 0.55; }
  50% { transform: scaleY(1); opacity: 1; }
}

.fade-up { animation: fadeUp 1s ease both; }
.fade-up-d1 { animation: fadeUp 1s ease 0.2s both; }
.fade-up-d2 { animation: fadeUp 1s ease 0.4s both; }
.fade-up-d3 { animation: fadeUp 1s ease 0.6s both; }
.fade-up-d4 { animation: fadeUp 1s ease 0.8s both; }
.fade-up-d5 { animation: fadeUp 1s ease 1s both; }

.section-animate {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 1s ease, transform 1s ease;
}

.section-animate.visible {
  opacity: 1;
  transform: translateY(0);
}

