        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        .modern-button {
            position: relative;
            overflow: hidden;
        }

        .modern-button::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 0;
            height: 0;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            transform: translate(-50%, -50%);
            transition: width 0.6s, height 0.6s;
        }

        .modern-button:hover::before {
            width: 300px;
            height: 300px;
        }

        .upload-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5);
        }

        .convert-btn:hover {
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 8px 24px rgba(66, 153, 225, 0.5);
        }

        .download-btn:hover {
            transform: translateY(-2px);
        }

        #downloadZipBtn:hover {
            box-shadow: 0 6px 20px rgba(139, 92, 246, 0.5);
            background: linear-gradient(135deg, #7c3aed, #6d28d9);
        }

        #downloadIndividualBtn:hover {
            box-shadow: 0 6px 20px rgba(34, 197, 94, 0.5);
        }

        .modern-button:active {
            transform: translateY(0);
        }

        #imagePreviewGrid::-webkit-scrollbar {
            width: 8px;
        }

        #imagePreviewGrid::-webkit-scrollbar-track {
            background: #f1f5f9;
            border-radius: 4px;
        }

        #imagePreviewGrid::-webkit-scrollbar-thumb {
            background: #cbd5e0;
            border-radius: 4px;
        }

        #imagePreviewGrid::-webkit-scrollbar-thumb:hover {
            background: #a0aec0;
        }

        #clearBtn:hover {
            background: #fee2e2;
            border-color: #fca5a5;
        }

        .page-btn {
            transition: all 0.2s ease;
        }

        .page-btn:hover {
            transform: translateY(-1px);
        }

        [data-format] {
            transition: all 0.2s ease;
        }

        [data-format]:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
        
        /* PNG format specific styling */
        [data-format="png"] .format-icon {
            background: linear-gradient(135deg, #4299e1, #2b6cb0);
            color: white;
        }
        
        [data-format="png8"] .format-icon {
            background: linear-gradient(135deg, #38b2ac, #2c7a7b);
            color: white;
        }
        
        [data-format="png24"] .format-icon {
            background: linear-gradient(135deg, #ed8936, #dd6b20);
            color: white;
        }
        
        [data-format="png32"] .format-icon {
            background: linear-gradient(135deg, #9f7aea, #805ad5);
            color: white;
        }