/* Shared Custom Styles */

.text-balance { text-wrap: balance; }

/* Animations */
@keyframes infinite-scroll { 
    from { transform: translateX(0); } 
    to { transform: translateX(-50%); } 
}
.animate-infinite-scroll { 
    animation: infinite-scroll 15s linear infinite; 
}

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-60px) rotate(20deg); }
}
.levitate {
    animation: float 10s ease-in-out infinite;
    pointer-events: none;
}

/* Navbar Custom Underline */
.nav-link { position: relative; }
.nav-link::after {
    content: ''; 
    position: absolute; 
    width: 0; 
    height: 2px; 
    bottom: -4px; 
    left: 0;
    background-color: #0db14b; 
    transition: width 0.3s ease;
}
.nav-link:hover::after { width: 100%; }

/* GSAP Reveal State */
.reveal { 
    opacity: 0; 
    transform: translateY(30px); 
}

/* Utilities */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.grid-view-card { display: flex; flex-direction: column; text-align: center; }
.list-view-card { display: flex; align-items: center; justify-content: space-between; text-align: left; }
