* { -webkit-tap-highlight-color: transparent; }
body { scroll-behavior: smooth; }

/* Shimmer loading for images */
.shimmer {
  background: linear-gradient(110deg, #e0f2f1 8%, #fef3e0 18%, #e0f2f1 33%);
  background-size: 200% 100%;
  animation: shimmer 1.4s linear infinite;
}
@keyframes shimmer {
  to { background-position-x: -200%; }
}

/* Hero reveal */
.reveal { animation: rise .7s ease both; }
.reveal:nth-child(2) { animation-delay: .15s; }
@keyframes rise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Dot pattern for hero */
.pattern-dots {
  background-image: radial-gradient(rgba(255,255,255,.6) 1.5px, transparent 1.5px);
  background-size: 22px 22px;
}

/* Toast */
.toast-in { animation: toastIn .3s ease both; }
@keyframes toastIn {
  from { opacity: 0; transform: translate(50%, 20px); }
  to { opacity: 1; transform: translate(50%, 0); }
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #0B4F5C; border-radius: 4px; }
::-webkit-scrollbar-track { background: #e2e8f0; }