/* ═══════════════════════════════════════════
   ANIMATIONS — Subtle & Refined
   ═══════════════════════════════════════════ */

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.visible,
.reveal-left.visible,
.reveal-right.visible {
  opacity: 1;
  transform: translate(0);
}

.d1 { transition-delay: 0.08s; }
.d2 { transition-delay: 0.16s; }
.d3 { transition-delay: 0.24s; }
.d4 { transition-delay: 0.32s; }

/* Hero entrance */
.hero-brand {
  opacity: 0;
  transform: translateY(16px);
  animation: gentleIn 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.15s forwards;
}

.hero-slogan {
  opacity: 0;
  transform: translateY(12px);
  animation: gentleIn 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.3s forwards;
}

.hero-body {
  opacity: 0;
  animation: gentleFade 0.8s ease 0.5s forwards;
}

.hero-actions {
  opacity: 0;
  animation: gentleFade 0.8s ease 0.65s forwards;
}

.hero-label {
  opacity: 0;
  animation: gentleFade 0.6s ease 0.05s forwards;
}

@keyframes gentleIn {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes gentleFade {
  to { opacity: 1; }
}