
.scroll-dots {
  position: fixed !important;
  top: 50% !important;
  right: 25px !important;
  transform: translateY(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  z-index: 2000 !important;
  transition: opacity 0.3s ease !important;
}
.scroll-dots button,
.scroll-dots .scroll-dot,
.scroll-dot {
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  border: 2px solid rgba(255, 255, 255, 0.7) !important;
  background: rgba(255, 255, 255, 0.2) !important;
  cursor: pointer !important;
  transition: all 0.1s ease !important; /* Much faster transition for instant feel */
  position: relative !important;
  padding: 0 !important;
  margin: 0 !important;
  outline: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
  min-width: 14px !important;
  min-height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
  text-indent: -9999px !important;
  overflow: visible !important;
  opacity: 1 !important;
}
.scroll-dot.horizontal-slide-dot {
  border-color: rgba(255, 255, 255, 0.9) !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

.horizontal-indicator {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 8px;
  height: 8px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  font-size: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(0, 0, 0, 0.8);
  text-indent: 0 !important;
  overflow: visible !important;
  pointer-events: none;
}
.scroll-dots button:hover,
.scroll-dots .scroll-dot:hover,
.scroll-dot:hover {
  border-color: rgba(255, 255, 255, 1) !important;
  background: rgba(255, 255, 255, 0.5) !important;
  transform: scale(1.2) !important;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.4) !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  transition: all 0.05s ease !important;
}

.scroll-dots button.active,
.scroll-dots .scroll-dot.active,
.scroll-dot.active {
  background: rgba(255, 255, 255, 1) !important;
  border-color: rgba(255, 255, 255, 1) !important;
  transform: scale(1.3) !important;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.6), 0 3px 15px rgba(0, 0, 0, 0.4) !important;
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  transition: all 0.05s ease !important;
}
.snap-container {
  scroll-behavior: auto;
  scroll-snap-type: none;
  -webkit-scroll-snap-type: none;
  will-change: scroll-position;
  backface-visibility: hidden;
  perspective: 1000px;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.snap-section {
  will-change: transform, opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
  contain: layout style paint;
  transition: opacity 0.3s ease;
}

.swipe-container {
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  backface-visibility: hidden;
  transform: translateZ(0);
  touch-action: pan-x;
}

.swipe-container.is-swiped {
  transform: translateX(-50%) translateZ(0);
}
.enhanced-scroll-loading .snap-container {
  overflow: hidden;
}

.enhanced-scroll-animating .snap-section {
  pointer-events: none;
}

.enhanced-scroll-animating .swipe-container {
  pointer-events: none;
}
.snap-section:not(.active) {
  transform: translateZ(0);
}

.snap-section.active {
  transform: translateZ(0);
}
@media (max-width: 768px) {
  .scroll-dots {
    right: 20px !important;
    gap: 14px !important;
  }
  
  .scroll-dots button,
  .scroll-dots .scroll-dot,
  .scroll-dot {
    width: 12px !important;
    height: 12px !important;
    border-width: 2px !important;
    min-width: 12px !important;
    min-height: 12px !important;
    max-width: 12px !important;
    max-height: 12px !important;
  }
  
  .scroll-dots button:hover,
  .scroll-dots .scroll-dot:hover,
  .scroll-dot:hover {
    transform: scale(1.1) !important;
    width: 12px !important;
    height: 12px !important;
  }
  
  .scroll-dots button.active,
  .scroll-dots .scroll-dot.active,
  .scroll-dot.active {
    transform: scale(1.2) !important;
    width: 12px !important;
    height: 12px !important;
  }
  
  .swipe-container {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-dot,
  .swipe-container,
  .snap-section {
    transition-duration: 0.1s;
  }
  
  .scroll-dot:hover {
    transform: none;
  }
  
  .scroll-dot.active {
    transform: none;
  }
}
@media (prefers-contrast: high) {
  .scroll-dot {
    border-color: #ffffff;
    background: #000000;
  }
  
  .scroll-dot.active {
    background: #ffffff;
    border-color: #000000;
  }
}
.scroll-dot:focus {
  outline: 2px solid rgba(255, 255, 255, 0.8);
  outline-offset: 2px;
}

.scroll-dot:focus:not(:focus-visible) {
  outline: none;
}
.scroll-dots button.active,
.scroll-dots .scroll-dot.active,
.scroll-dot.active {
  animation: activeGlow 1s ease-in-out infinite !important;
}

@keyframes activeGlow {
  0% {
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.6), 0 3px 15px rgba(0, 0, 0, 0.4);
  }
  50% {
    box-shadow: 0 0 30px rgba(255, 255, 255, 0.8), 0 3px 15px rgba(0, 0, 0, 0.4);
  }
  100% {
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.6), 0 3px 15px rgba(0, 0, 0, 0.4);
  }
}
.layer {
  transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
              opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform, opacity;
  backface-visibility: hidden;
}
.section1-img {
  transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: opacity, transform;
  backface-visibility: hidden;
}

.section1-img.hidden {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.95) translateZ(0);
}
.home-navbar {
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              opacity 0.25s ease;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
.section2-left,
.section3-slide1,
.section3-slide2,
.section4-slide1,
.section4-slide2,
.section5-slide1,
.section5-slide2,
.section6 .content,
.section7-slide1,
.section7-slide2,
.section8 .content {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              opacity 0.3s ease;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
.enhanced-scroll-loading * {
  animation-play-state: paused;
}
.enhanced-scroll-section-0 .layer {
  transition-duration: 0.6s;
}

.enhanced-scroll-section-7 .custom-footer {
  opacity: 1;
}

.enhanced-scroll-horizontal-active .swipe-container {
  cursor: grab;
}

.enhanced-scroll-horizontal-active .swipe-container:active {
  cursor: grabbing;
}
.enhanced-scroll-indicator {
  position: fixed;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 16px;
  background: rgba(0, 0, 0, 0.8);
  color: white;
  border-radius: 20px;
  font-size: 14px;
  z-index: 3000;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.enhanced-scroll-indicator.show {
  opacity: 1;
}
.snap-container,
.snap-section,
.swipe-container,
.layer,
.scroll-dot {
  transform: translateZ(0);
}
.enhanced-scroll-animating * {
  user-select: none;
  -webkit-user-select: none;
}
