/* ── Purposeful Animations: Cinematic & Alive ──────── */

@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    14% { transform: scale(1.025); }
    28% { transform: scale(1); }
    42% { transform: scale(1.012); }
}

.heartbeat-pulse { animation: heartbeat 1.2s ease-in-out infinite; }

@keyframes breathe {
    0%, 100% { opacity: 0.9; }
    50% { opacity: 1; transform: scale(1.02); }
}

.breathe-element { animation: breathe 4s ease-in-out infinite; }

.typewriter-cursor::after {
    content: '|';
    color: var(--accent);
    opacity: 0.6;
    margin-left: 1px;
    animation: cursor-blink 1.1s ease-in-out infinite;
}

@keyframes cursor-blink {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 0; }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes shimmer {
    0% { background-position: -200% center; }
    100% { background-position: 200% center; }
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 20px rgba(201, 169, 110, 0.05); }
    50% { box-shadow: 0 0 40px rgba(201, 169, 110, 0.15); }
}

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
}
