/* ============================================================
   Gauss v4.0 — Friendly Precision
   Minimal motion, maximum purpose.
   ============================================================ */

/* ============================================================
   1. SCROLL REVEAL
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out,
              transform 0.6s ease-out;
}

.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; }
.reveal-d5 { transition-delay: 0.5s; }

/* ============================================================
   2. KEYFRAMES — 6 total, each with a purpose
   ============================================================ */

@keyframes pulse-dot {
  0%,
  100% { transform: scale(1);   opacity: 1;   }
  50%  { transform: scale(0.6); opacity: 0.4; }
}

@keyframes phone-float {
  0%,
  100% { transform: translateY(0);     }
  50%  { transform: translateY(-10px); }
}

@keyframes msg-appear {
  from { transform: translateY(8px) scale(0.97); opacity: 0; }
  to   { transform: translateY(0)   scale(1);    opacity: 1; }
}

@keyframes typing-bounce {
  0%,
  60%,
  100% { transform: translateY(0);    }
  30%  { transform: translateY(-4px); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes slide-up {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* ============================================================
   3. MESSAGE STAGGER
   ============================================================ */

.msg:nth-child(1) { animation-delay: 0.6s; }
.msg:nth-child(2) { animation-delay: 1.1s; }
.msg:nth-child(3) { animation-delay: 1.8s; }
.msg:nth-child(4) { animation-delay: 2.3s; }
.msg:nth-child(5) { animation-delay: 3.0s; }
.msg:nth-child(6) { animation-delay: 3.5s; }
.msg:nth-child(7) { animation-delay: 4.2s; }

/* Typing indicator appears after last message */
.typing-indicator { animation-delay: 4.8s; }

/* ============================================================
   4. REDUCED MOTION — Accessibility first
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
