/**
 * Enhanced Animations & Effects Library
 * 
 * Based on the stunning animations from points.php
 * Can be included in any page for consistent visual effects
 * 
 * @package LastZAlliance
 * @version 1.0.0
 */

/* ============================================================================
   ENTRANCE ANIMATIONS
   ============================================================================ */

/* Slide In - From Left */
@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-slideIn {
    animation: slideIn 0.6s ease-out;
}

/* Float In - From Bottom */
@keyframes floatIn {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-floatIn {
    animation: floatIn 0.6s ease-out;
}

/* Fade In Up */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fadeInUp {
    animation: fadeInUp 0.6s ease-out;
}

/* Fade In Down */
@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fadeInDown {
    animation: fadeInDown 0.6s ease-out;
}

/* Scale In */
@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.animate-scaleIn {
    animation: scaleIn 0.6s ease-out;
}

/* Fade In */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.animate-fadeIn {
    animation: fadeIn 0.6s ease-out;
}

/* ============================================================================
   CONTINUOUS ANIMATIONS
   ============================================================================ */

/* Rotate - Continuous rotation */
@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.animate-rotate {
    animation: rotate 20s linear infinite;
}

/* Bounce - Gentle vertical bounce */
@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

.animate-bounce {
    animation: bounce 2s infinite;
}

/* Pulse - Scale up and down */
@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

.animate-pulse {
    animation: pulse 2s ease-in-out infinite;
}

/* Glow - Text shadow animation */
@keyframes glow {
    from {
        text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
    }
    to {
        text-shadow: 2px 2px 4px rgba(0,0,0,0.3), 0 0 30px rgba(255, 255, 255, 0.5);
    }
}

.animate-glow {
    animation: glow 2s ease-in-out infinite alternate;
}

/* Points Pulse - Special for points/values */
@keyframes pointsPulse {
    0%, 100% {
        transform: scale(1);
        text-shadow: 0 0 30px rgba(255, 215, 0, 0.8), 2px 2px 4px rgba(0, 0, 0, 0.3);
    }
    50% {
        transform: scale(1.05);
        text-shadow: 0 0 50px rgba(255, 215, 0, 1), 2px 2px 4px rgba(0, 0, 0, 0.3);
    }
}

.animate-pointsPulse {
    animation: pointsPulse 2s ease-in-out infinite;
}

/* Shake - Horizontal shake */
@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-5px);
    }
    75% {
        transform: translateX(5px);
    }
}

.animate-shake {
    animation: shake 0.5s ease-in-out;
}

/* ============================================================================
   HERO EFFECTS
   ============================================================================ */

/* Hero Gradient Background with Animation */
.hero-gradient {
    background: linear-gradient(135deg, var(--accent-purple) 0%, var(--accent-teal) 100%);
    position: relative;
    overflow: hidden;
}

.hero-gradient::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    animation: rotate 20s linear infinite;
}

/* Hero Card Style */
.hero-card {
    background: linear-gradient(135deg, var(--accent-purple) 0%, var(--accent-teal) 100%);
    border-radius: var(--radius-xl);
    padding: var(--spacing-2xl);
    box-shadow: 0 20px 60px rgba(139, 92, 246, 0.4);
    animation: slideIn 0.6s ease-out;
    position: relative;
    overflow: hidden;
}

/* ============================================================================
   CARD EFFECTS
   ============================================================================ */

/* Card with Shine Effect on Hover */
.card-shine {
    position: relative;
    overflow: hidden;
    transition: all var(--transition-normal);
}

.card-shine::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
    transition: left 0.5s;
}

.card-shine:hover::before {
    left: 100%;
}

.card-shine:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 50px rgba(139, 92, 246, 0.3);
    border-color: var(--accent-purple);
}

/* Card with Scale on Hover */
.card-scale {
    transition: all var(--transition-normal);
}

.card-scale:hover {
    transform: scale(1.05);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
}

/* Glass Card Effect */
.card-glass {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--radius-lg);
}

/* ============================================================================
   TEXT EFFECTS
   ============================================================================ */

/* Text Gradient - Purple to Teal */
.text-gradient {
    background: linear-gradient(135deg, var(--accent-purple) 0%, var(--accent-teal) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Text Glow - Subtle glow effect */
.text-glow {
    text-shadow: 0 0 20px rgba(139, 92, 246, 0.5);
}

.text-glow-gold {
    text-shadow: 0 0 30px rgba(255, 215, 0, 0.8), 2px 2px 4px rgba(0, 0, 0, 0.3);
}

/* ============================================================================
   BUTTON EFFECTS
   ============================================================================ */

/* Button with Gradient */
.btn-gradient {
    background: linear-gradient(135deg, var(--accent-purple) 0%, var(--accent-teal) 100%);
    color: white;
    border: none;
    transition: all var(--transition-fast);
}

.btn-gradient:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(139, 92, 246, 0.3);
}

/* Button with Glass Effect */
.btn-glass {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.4);
    transition: all var(--transition-fast);
}

.btn-glass:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* ============================================================================
   VALUE DISPLAY STYLES
   ============================================================================ */

/* Large Value Display */
.value-display {
    font-size: 3.5rem;
    font-weight: 900;
    animation: pointsPulse 2s ease-in-out infinite;
}

.value-display-gold {
    color: #FFD700;
    text-shadow: 0 0 30px rgba(255, 215, 0, 0.8), 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.value-display-purple {
    color: var(--accent-purple);
    text-shadow: 0 0 20px rgba(139, 92, 246, 0.5);
}

/* ============================================================================
   ICON EFFECTS
   ============================================================================ */

/* Icon with Bounce */
.icon-bounce {
    animation: bounce 2s infinite;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Icon Container */
.icon-container {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-lg);
    transition: all var(--transition-normal);
}

.icon-container:hover {
    transform: scale(1.1);
}

/* ============================================================================
   DELAYED ANIMATIONS
   ============================================================================ */

/* Delays for staggered animations */
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }
.delay-800 { animation-delay: 0.8s; }
.delay-900 { animation-delay: 0.9s; }
.delay-1000 { animation-delay: 1s; }

/* ============================================================================
   UTILITY CLASSES
   ============================================================================ */

/* Animation Duration */
.duration-300 { animation-duration: 0.3s; }
.duration-500 { animation-duration: 0.5s; }
.duration-700 { animation-duration: 0.7s; }
.duration-1000 { animation-duration: 1s; }

/* Animation Timing */
.ease-in { animation-timing-function: ease-in; }
.ease-out { animation-timing-function: ease-out; }
.ease-in-out { animation-timing-function: ease-in-out; }

/* Animation Iteration */
.once { animation-iteration-count: 1; }
.twice { animation-iteration-count: 2; }
.infinite { animation-iteration-count: infinite; }

/* ============================================================================
   RESPONSIVE ADJUSTMENTS
   ============================================================================ */

@media (max-width: 768px) {
    .value-display {
        font-size: 2.5rem;
    }
    
    .hero-card {
        padding: var(--spacing-xl);
    }
}