.cursor { display: inline-block; width: 8px; height: 1.2em; background-color: #155dfc; margin-left: 4px; animation: blink 1s infinite; vertical-align: middle; }

@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

/* Reveal Animation */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }
.reveal.active { opacity: 1; transform: translateY(0); }


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

.cert-hidden { display: none !important; }
.fade-in { animation: fadeIn 0.3s ease-out forwards; }
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}