.ls-wide { letter-spacing: 0.05rem; }
.text-purple { color: #6c22c4 !important; }
.bg-purple { background-color: #6c22c4 !important; }
.bg-purple-50 { background-color: #f7f3ff; }
.border-purple-200 { border-color: #e9d5ff !important; }

.upload-zone:hover {
    border-color: #6c22c4 !important;
    background-color: #fcfaff !important;
}

.btn-purple {
    background-color: #6c22c4;
    color: white;
    border: none;
}
.btn-purple:hover {
    background-color: #4a148c;
    color: white;
}

.btn-outline-purple {
    color: #6c22c4;
    border: 2px solid #e9d5ff;
    background-color: white;
}
.btn-outline-purple:hover {
    background-color: #6c22c4;
    border-color: #6c22c4;
    color: white;
}

.hvr-up { transition: transform 0.2s; }
.hvr-up:hover { transform: translateY(-3px); }

.border-2 { border-width: 2px !important; }
.border-light { border-color: #f1f5f9 !important; }

.animate-fade-in { animation: fadeIn 0.4s ease-out forwards; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.progress-bar-premium {
    animation: progress-pulse 1.5s infinite;
}
@keyframes progress-pulse {
    0% { opacity: 0.4; }
    50% { opacity: 1; }
    100% { opacity: 0.4; }
}

.animate-bounce {
    animation: bounce 2s infinite;
}
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
