::-webkit-scrollbar { 
  width: 6px; 
  height: 6px; 
}
::-webkit-scrollbar-track { 
  background: #f8fafc; 
}
::-webkit-scrollbar-thumb { 
  background: #cbd5e1; 
  border-radius: 4px; 
}
::-webkit-scrollbar-thumb:hover { 
  background: #94a3b8; 
}

/* Skeleton Loading Animation */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .4; }
}
.animate-pulse-fast { 
  animation: pulse 1.2s cubic-bezier(0.4, 0, 0.6, 1) infinite; 
}

/* Smooth Entrance Keyframe Animation */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up { 
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; 
}

/* Hide scrollbar for category selector bar while keeping horizontal scroll functionality */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* ========================================================== */
/* ABSOLUTE BOX CONTAINMENT & WORD WRAPPING (Zero Side Effects) */
/* ========================================================== */

/* 1. Force all flexible containers and cards to respect boundaries and never push past screen edges */
.testimony-card, 
.single-testimony-content, 
.comment-box, 
.reply-item,
div[class*="card"],
div[class*="detail"],
div[class*="comment"],
div[class*="reply"] {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  word-break: break-word !important;
}

/* 2. Force text wrapping on all child content inside testimony cards, comment boxes, and replies */
.testimony-card *,
.single-testimony-content *,
.comment-box *,
.reply-item * {
  overflow-wrap: break-word !important;
  word-wrap: break-word !important;
  word-break: break-all !important;
  max-width: 100% !important;
}