/* BASE & LENIS */
html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Hide Scrollbar */
::-webkit-scrollbar { width: 0px; background: transparent; }

/* CURSOR */
.cursor-dot, .cursor-outline {
  position: fixed; top: 0; left: 0;
  transform: translate(-50%, -50%);
  border-radius: 50%; z-index: 99999;
  pointer-events: none;
}
.cursor-dot { width: 8px; height: 8px; background-color: #00FF88; }
.cursor-outline {
  width: 40px; height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  transition: width 0.2s, height 0.2s, background-color 0.2s;
}
body.hovering .cursor-outline {
  width: 60px; height: 60px;
  background-color: rgba(0, 255, 136, 0.1); border-color: #00FF88;
}

/* PRELOADER */
#preloader { transition: transform 1s cubic-bezier(0.76, 0, 0.24, 1); }

/* INITIAL ANIMATION STATES */
.reveal-text { transform: translateY(100%); opacity: 0; }
.hero-subtitle, .cta-btn { opacity: 0; transform: translateY(20px); }

/* --- MOBILE OPTIMIZATION --- */
/* Cache le curseur custom sur mobile pour éviter les glitchs tactiles */
@media (max-width: 1024px) {
    .cursor-dot, .cursor-outline {
        display: none !important;
    }
}