@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px) scale(.98);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.animate-fade-in-up{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) forwards}.animate-fade-in-up-delay-1{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .15s forwards}.animate-fade-in-up-delay-2{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) .3s forwards}@keyframes expandWidth{0%{width:0}to{width:100%}}.animate-expand-width{width:0;animation:expandWidth 1s cubic-bezier(.16,1,.3,1) .5s forwards}@keyframes slideUnderlineCheck{0%{transform:scaleX(0);transform-origin:left}45%{transform:scaleX(1);transform-origin:left}55%{transform:scaleX(1);transform-origin:right}to{transform:scaleX(0);transform-origin:right}}.animate-underline-loop{width:100%;transform:scaleX(0);animation:slideUnderlineCheck 3s cubic-bezier(.8,0,.2,1) infinite}@keyframes pulseUnderline{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.85);opacity:.7}}.animate-underline-pulse{width:100%;animation:pulseUnderline 2s ease-in-out infinite}@keyframes scribbleLoop{0%{stroke-dashoffset:1000;opacity:0}10%{stroke-dashoffset:1000;opacity:1}40%{stroke-dashoffset:0;opacity:1}70%{stroke-dashoffset:0;opacity:1}80%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:1000;opacity:0}}.animate-scribble{stroke-dasharray:1000;stroke-dashoffset:1000;animation:scribbleLoop 3s ease-in-out infinite}@keyframes shimmerUnderline{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-underline-shimmer{width:100%;background:linear-gradient(90deg,#3b82f6,#a855f7,#3b82f6);background-size:200% auto;animation:shimmerUnderline 3s linear infinite}
