@layer base {
  html, body {
    margin: 0;
    padding: 0;
  }
  body {
    overscroll-behavior: none;
  }
  main > :first-child {
    margin-top: 0 !important;
  }
  main > :last-child {
    margin-bottom: 0 !important;
  }
}

/* Hide scrollbar for Chrome, Safari and Opera */
::-webkit-scrollbar {
  display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
html, body {
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
}

/* Reveal on Scroll Animation */
.reveal-section {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 1.5s cubic-bezier(0.22, 1, 0.36, 1), 
              transform 1.5s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hide default cursor on desktop for custom experience */
@media (min-width: 768px) {
  body {
    cursor: none;
  }
  a, button, [role="button"] {
    cursor: none;
  }
}

/* Custom Cursor Active / Hover States */
/* Sembunyikan kursor bawaan di desktop */
@media (min-width: 768px) {
  body, a, button, [role="button"] {
    cursor: none !important;
  }
}

/* Base alignment for cursor elements */
#cursor-dot, #cursor-ring {
  transform: translate(-50%, -50%);
  will-change: transform, width, height;
}

/* Hover state saat kursor di atas button / link */
body.cursor-hover-active #cursor-ring {
  width: 44px;
  height: 44px;
  background-color: rgba(0, 104, 74, 0.15);
  border-color: #00684A;
}

body.cursor-hover-active #cursor-dot {
  width: 10px;
  height: 10px;
  background-color: #00684A;
}

/* Smooth Scroll Smoothness setup */
html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}