@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(calc(-100% - 16px))}}@keyframes marquee-vertical{0%{transform:translateY(0)}to{transform:translateY(calc(-100% - 16px))}}.animate-marquee{animation:marquee var(--marquee-duration,40s) linear infinite}.animate-marquee-vertical{animation:marquee-vertical var(--marquee-duration,40s) linear infinite}@keyframes gradient-text{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animate-gradient-text{background-size:200% 200%;animation:gradient-text 4s ease infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(59,130,246,.3)}50%{box-shadow:0 0 40px rgba(59,130,246,.6),0 0 60px rgba(59,130,246,.3)}}.animate-pulse-glow{animation:pulse-glow 3s ease-in-out infinite}@keyframes float-smooth{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-10px) rotate(1deg)}50%{transform:translateY(-5px) rotate(0deg)}75%{transform:translateY(-15px) rotate(-1deg)}}.animate-float-smooth{animation:float-smooth 6s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1) 50%,transparent);background-size:200% 100%;animation:shimmer 2s infinite}@keyframes calendar-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}@keyframes calendar-glow{0%,to{box-shadow:0 0 5px currentColor}50%{box-shadow:0 0 20px currentColor,0 0 30px currentColor}}.calendar-day-animated{animation:calendar-pulse 4s ease-in-out infinite}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fade-in-up .8s ease-out}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.float-animation{animation:float 10s ease-in-out infinite}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.animated-gradient{background-size:200% 200%;animation:gradient-shift 4s ease infinite}@keyframes gentle-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rotate-animation{animation:gentle-rotate 10s linear infinite}.button-glow:hover{box-shadow:0 0 20px rgba(59,130,246,.5);transition:box-shadow .3s ease}@keyframes typewriter{0%{width:0}to{width:100%}}.typewriter{overflow:hidden;white-space:nowrap;animation:typewriter 3s steps(40) 1s forwards}.animated-border:before{content:"";position:absolute;inset:-1px;border-radius:1rem;padding:1px;background:linear-gradient(90deg,rgba(59,130,246,0),rgba(59,130,246,.35),rgba(59,130,246,0));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s ease}.animated-border:focus-visible:before,.animated-border:hover:before{opacity:1}.animated-border:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 20%,rgba(59,130,246,.28),transparent 40%);transform:translateX(-100%) rotate(15deg);transition:transform .6s ease;pointer-events:none}.dark .animated-border:after{background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.35),transparent 40%)}.animated-border:hover:after{transform:translateX(0) rotate(15deg)}.bento-card{position:relative;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1)}.bento-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(59,130,246,.05),transparent 50%,rgba(99,102,241,.05));opacity:0;transition:opacity .4s ease}.bento-card:hover:before{opacity:1}.bento-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -12px rgba(0,0,0,.15)}.dark .bento-card:hover{box-shadow:0 20px 40px -12px rgba(0,0,0,.4)}.glass{background:rgba(255,255,255,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.dark .glass{background:rgba(17,24,39,.7);border:1px solid rgba(255,255,255,.1)}.gradient-border{position:relative;background:linear-gradient(var(--background),var(--background)) padding-box,linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899) border-box;border:2px solid transparent;border-radius:1rem}.spotlight-card{position:relative;overflow:hidden}.spotlight-card:after{content:"";position:absolute;width:200px;height:200px;background:radial-gradient(circle,rgba(59,130,246,.15) 0,transparent 70%);pointer-events:none;opacity:0;transition:opacity .3s ease;transform:translate(-50%,-50%)}.spotlight-card:hover:after{opacity:1}.text-gradient{background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent}.animated-underline{position:relative}.animated-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .3s ease}.animated-underline:hover:after{width:100%}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}@keyframes blob{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-30px) scale(1.1)}50%{transform:translate(-20px,20px) scale(.9)}75%{transform:translate(30px,10px) scale(1.05)}}.animate-blob{animation:blob 10s ease-in-out infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}