html { scroll-behavior: smooth; }

/* Fade + slide up as sections enter the viewport */
.scroll-fade {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 700ms ease-out, transform 700ms ease-out;
  will-change: opacity, transform;
}
.scroll-fade.in-view {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .scroll-fade { opacity: 1; transform: none; transition: none; }
}

/* Scroll progress bar */
#scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: #046C85;
  z-index: 9999;
  transition: width 60ms linear;
  pointer-events: none;
}

/* Stronger parallax on the carousel - ensures fixed attachment wins */
#myCarousel .fill { background-attachment: fixed !important; }
@media (max-width: 768px) {
  /* Mobile browsers handle fixed inconsistently; fall back to scroll */
  #myCarousel .fill { background-attachment: scroll !important; }
}
