        /* Animasi Gradient */
        @keyframes gradientShift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
        
        @keyframes float {
            0%, 100% { transform: translateY(0px) rotate(0deg); }
            50% { transform: translateY(-20px) rotate(5deg); }
        }
        
        @keyframes slideInUp {
            from { opacity: 0; transform: translateY(50px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        @keyframes pulse-glow {
            0%, 100% { 
                box-shadow: 0 4px 20px rgba(251, 191, 36, 0.4);
            }
            50% { 
                box-shadow: 0 8px 30px rgba(251, 191, 36, 0.6);
            }
        }
        
        /* Glass Effect */
        .glass {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }
        
        .glass-dark {
            background: rgba(15, 23, 42, 0.8);
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }
        
        /* Gradient Background */
        .gradient-bg {
            background: linear-gradient(-45deg, #0f172a, #1e293b, #334155, #475569);
            background-size: 400% 400%;
            animation: gradientShift 15s ease infinite;
        }
        
        /* Floating Animation */
        .float { 
            animation: float 8s ease-in-out infinite; 
        }
        
        /* Reveal Animation */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
        }
        
        .reveal.active {
            animation: slideInUp 0.8s ease-out forwards;
        }
        
        /* Card Hover Effect */
        .card-hover {
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
        }
        
        /* Input Focus Effects */
       
        
        /* Button Ripple Effect */
        .btn-ripple {
            position: relative;
            overflow: hidden;
        }
        
        .btn-ripple::after {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 5px;
            height: 5px;
            background: rgba(255, 255, 255, 0.5);
            opacity: 0;
            border-radius: 100%;
            transform: scale(1, 1) translate(-50%);
            transform-origin: 50% 50%;
        }
        
        .btn-ripple:active::after {
            animation: ripple 1s ease-out;
        }
        
        @keyframes ripple {
            0% {
                transform: scale(0, 0);
                opacity: 0.5;
            }
            100% {
                transform: scale(50, 50);
                opacity: 0;
            }
        }
        
        /* Loading Animation */
        .loading-spin {
            animation: spin 1s linear infinite;
        }
        
        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        
        /* Responsive Adjustments */
        @media (max-width: 640px) {
            .login-container {
                padding: 1.5rem !important;
                margin: 1rem !important;
            }
            
            .mobile-full {
                width: 100% !important;
                max-width: 100% !important;
            }
        }
        
        @media (max-height: 700px) {
            .login-card {
                margin-top: 2rem !important;
                margin-bottom: 2rem !important;
            }
        }
        
        /* Smooth transitions */
        * {
            transition: background-color 0.3s ease, 
                        border-color 0.3s ease,
                        transform 0.3s ease,
                        opacity 0.3s ease;
        }