/* ==========================================================================
   X SMILE RECORDS - ANIMATION & MOTION DESIGN (LIGHTWEIGHT PRO EDITION)
   ========================================================================== */

/* --- Lenis Smooth Scroll Engine --- */
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;
}

/* --- Optimized Hardware Acceleration --- */
.artist-card, .music-box, .video-box, .apple-box, .btn, .about-btn {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
                border-color 0.35s ease, 
                opacity 0.35s ease;
    transform-style: preserve-3d;
    backface-visibility: hidden;
}

/* --- Glowing Hover Effects --- */
.video-box:hover, .music-box:hover, .apple-box:hover {
    transform: translateY(-5px) scale(1.01);
    box-shadow: 0 0 25px rgba(255, 0, 0, 0.8), 0 0 50px rgba(255, 0, 0, 0.35) !important;
    border-color: rgba(255, 0, 0, 0.9) !important;
}

.artist-card:hover { 
    transform: translateY(-6px) scale(1.03); 
}

.artist-card:hover .artist-thumb {
    border-color: #00f0ff;
    box-shadow: 0 0 20px rgba(0, 240, 255, 0.8);
}

.artist-card:hover .artist-name {
    opacity: 1;
    color: #00f0ff;
    text-shadow: 0 0 8px rgba(0, 240, 255, 0.6);
}

.btn:hover {
    transform: translateY(-3px) scale(1.02); 
    background: rgba(255, 255, 255, 0.18);
    border-color: #fff; 
    box-shadow: 0 0 25px rgba(255, 255, 255, 0.4);
}

.about-btn:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    color: #fff !important;
    border: 1px solid #fff !important;
    transform: translateY(-4px) scale(1.04);
    box-shadow: 0 0 35px rgba(255, 255, 255, 0.9), 0 0 15px rgba(0, 240, 255, 0.5) !important;
}

.map-wrapper:hover {
    transform: translateY(-4px);
    box-shadow: 0 0 35px rgba(0, 240, 255, 0.7), 0 0 50px rgba(255, 0, 0, 0.5);
}

.powered-by-link:hover {
    box-shadow: 0 0 18px rgba(34, 197, 94, 0.8) !important;
    background-color: rgba(34, 197, 94, 0.12) !important;
    color: #ffffff !important;
}

.social-footer a:hover {
    opacity: 1;
    transform: translateY(-5px) scale(1.25);
}

.back-home:hover { 
    color: #fff; 
    transform: translateX(-5px); 
    text-shadow: 0 0 10px #fff; 
}

/* --- Section Headline Neon Sweep --- */
.section-headline {
    position: relative;
    overflow: hidden;
}

.section-headline::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: -100%;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, transparent, #22c55e, #00f0ff, #ff0000, transparent);
    animation: neonLine 2.5s infinite linear;
}

/* --- Custom Keyframes --- */
@keyframes neonLine {
    0% { left: -100%; }
    100% { left: 100%; }
}

@keyframes blink {
    50% { border-color: transparent; }
}

.typing-cursor {
    animation: blink 0.7s step-end infinite;
}

.fade-out { 
    opacity: 0; 
}

@keyframes hackerFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in-hacker { 
    animation: hackerFadeIn 1.2s ease-out forwards; 
}