html{scroll-behavior:smooth}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.fade-in{animation:fadeIn .6s ease-out}
.slide-up{animation:slideUp .6s ease-out}
.scale-in{animation:scaleIn .5s ease-out}
img[loading="lazy"]{opacity:0;transition:opacity .3s}
img[loading="lazy"].loaded{opacity:1}
.observe{opacity:0}
.observe.fade-in,.observe.slide-up,.observe.scale-in{opacity:1}
.typewriter-cursor{animation:blink 1s infinite;color:var(--color-accent);font-weight:400}
@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}
.typewriter-text{display:inline-block;min-height:1.2em}
