/* Custom styles for animations, map, parallax, and navbar */
.reveal-on-scroll { opacity: 0; transform: translateY(50px); transition: all 0.6s ease-out; }
.revealed { opacity: 1; transform: translateY(0); }
.map-dot { position: absolute; width: 10px; height: 10px; background: #ef4444; border-radius: 50%; z-index: 2; }
.map-label { position: absolute; background: white; padding: 4px 8px; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); font-size: 12px; white-space: nowrap; z-index: 2; }
.tech-box { opacity: 0; transform: scale(0.8); transition: all 0.5s ease-out; }
.tech-box.revealed { opacity: 1; transform: scale(1); }

/* Parallax styles */
.parallax-map {
  position: relative;
  overflow: hidden;
  background: none;
}
.parallax-map::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #e5e7eb; /* Tailwind bg-gray-200 */
  z-index: -1;
}
.parallax-map .map-image {
  transition: transform 0.1s ease-out;
  z-index: 1;
  will-change: transform;
}

/* Disable parallax on mobile for better performance */
@media (max-width: 768px) {
  .parallax-map .map-image {
    transform: none !important;
  }
}

/* Navbar styles */
.mobile-menu {
  transition: all 0.3s ease-out;
}