/* animations.css */

/* ── Scroll Reveal ── */
.reveal         { opacity:0; transform:translateY(30px); transition:opacity 0.7s ease,transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── Keyframes ── */
@keyframes fadeUp  { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes blink   { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes blink-cur{ 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes spin    { to{transform:rotate(360deg)} }
@keyframes float   { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes msgIn   { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse   { 0%,100%{opacity:.6;transform:scale(1) translateX(-50%)} 50%{opacity:1;transform:scale(1.08) translateX(-50%)} }
@keyframes pulse2  { 0%,100%{opacity:.5;transform:scale(1)} 50%{opacity:.9;transform:scale(1.1)} }

/* ── Typing Cursor ── */
.typing-cursor { display:inline-block; width:2px; height:1em; background:var(--accent); vertical-align:text-bottom; animation:blink-cur 0.8s ease infinite; margin-left:2px; }
