html {
  scroll-snap-type: y mandatory;
}

/* Désactiver scroll-snap sur mobile pour une meilleure UX */
@media (max-width: 768px) {
  html {
    scroll-snap-type: none;
  }
  
  section {
    scroll-snap-align: none;
  }
}

body {
  scroll-behavior: smooth;
  overflow-y: scroll;
  height: 100vh;
}

section {
  scroll-snap-align: start;
}

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeIn 0.8s ease-out forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Loader */
#loader {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s ease;
}

#loader.hide {
  opacity: 0;
  pointer-events: none;
}

/* Menu latéral */
.side-menu {
  position: fixed;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 15px;
  z-index: 100;
}

.side-menu .dot {
  width: 12px;
  height: 12px;
  background-color: #ccc;
  border-radius: 50%;
  transition: background-color 0.3s ease, transform 0.3s ease;
  cursor: pointer;
}

.side-menu .dot.active {
  background-color: #000;
  transform: scale(1.5);
} 