/* Custom CSS Variables & Base Utilities */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Float Animation for Floating Elements */
@keyframes float {
    0% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
    100% { transform: translateY(0px) rotate(0deg); }
}

/* Pulse Glow Pattern */
@keyframes pulse-glow {
    0%, 100% { filter: drop-shadow(0 0 10px rgba(236,178,255,0.4)); }
    50% { filter: drop-shadow(0 0 25px rgba(236,178,255,0.8)); }
}

.floating-element {
    animation: float 6s ease-in-out infinite;
}

/* Scroll-triggered reveal animations */
.reveal-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-up.active {
    opacity: 1;
    transform: translateY(0);
}

/* Frosted Glass Layout Effect */
.glass-card {
    background: rgba(15, 15, 26, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ticket-glow-primary { box-shadow: 0 0 20px rgba(236, 178, 255, 0.2); }
.ticket-glow-secondary { box-shadow: 0 0 20px rgba(0, 224, 255, 0.2); }