.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s ease-out, transform 1s ease-out;
}
.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

.icon-anim {
  transition: transform 0.3s ease, filter 0.3s ease;
}
.icon-anim:hover {
  transform: scale(1.2);
  filter: drop-shadow(0 0 8px rgba(0, 200, 255, 0.4));
}

#news a:hover {
  background: linear-gradient(to right, #bae6fd, #a7f3d0);
  border-color: transparent;
  color: #0c4a6e;
}

#news span[class*="bg-"] {
  transition: transform 0.3s ease, opacity 0.3s ease;
}
#news article:hover span[class*="bg-"] {
  transform: translateY(-2px) scale(1.05);
  opacity: 0.95;
  
  /* === Skeleton Loader === */
.skeleton {
  background: linear-gradient(90deg, #e2e8f0 25%, #f8fafc 37%, #e2e8f0 63%);
  background-size: 400% 100%;
  animation: shimmer 1.4s ease infinite;
  border-radius: 0.5rem;
}

@keyframes shimmer {
  0% { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

.skeleton-img {
  height: 11rem;
}

.skeleton-line {
  height: 0.75rem;
  margin-top: 0.5rem;
  width: 100%;
}

.skeleton-small {
  width: 40%;
}

.fade-out {
  opacity: 0;
  transform: scale(0.98);
  transition: opacity 0.3s ease, transform 0.3s ease;
}