/* small animation helpers */
.typewriter-cursor{display:inline-block;width:2px;height:1.1em;background:var(--neon);margin-left:6px;animation:blinkCur .9s infinite}
@keyframes blinkCur{0%{opacity:1}50%{opacity:0}100%{opacity:1}}
.fade-in{opacity:0;transform:translateY(14px);animation:fadeIn .9s forwards}
@keyframes fadeIn{to{opacity:1;transform:none}}
.floatSlow{animation:floatSlow 6s ease-in-out infinite}
@keyframes floatSlow{0%{transform:translateY(0)}50%{transform:translateY(-12px)}100%{transform:translateY(0)}}
.shimmer::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg, rgba(255,255,255,0.02), rgba(255,255,255,0) 40%);mix-blend-mode:overlay;pointer-events:none;transform:translateX(-40%);animation:shimmer 9s linear infinite}
@keyframes shimmer{0%{transform:translateX(-40%)}100%{transform:translateX(120%)}}
