@keyframes gradient-text{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.gradient-text{background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-text 4s ease infinite;background-image:linear-gradient(90deg,#2563eb,#0ea5e9,#2563eb)}.highlight-link{position:relative;display:inline-block}.highlight-link:after{content:"";position:absolute;width:0;height:2px;bottom:0;left:0;background-color:#3b82f6;transition:width .3s ease}.highlight-link:hover:after{width:100%}.page-transition-enter{opacity:0;transform:translateY(20px)}.page-transition-enter-active{transition:opacity .5s,transform .5s}.page-transition-enter-active,.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .3s,transform .3s}@keyframes pulse-subtle{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.pulse-animation{animation:pulse-subtle 3s ease infinite}.card-hover-effect{transition:transform .3s ease,box-shadow .3s ease}.card-hover-effect:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px rgba(59,130,246,.1),0 8px 10px -6px rgba(59,130,246,.1)}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .6s ease forwards}.active-underline{position:relative}.active-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,#2563eb,#0ea5e9);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.active-underline.active:after,.active-underline:hover:after{transform:scaleX(1)}.blur-others{transition:filter .3s ease,transform .3s ease}.blur-container:hover .blur-others:not(:hover){filter:blur(2px) grayscale(20%);transform:scale(.98)}@keyframes arc-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-arc{width:40px;height:40px;border-radius:50%;border-color:#2563eb #2563eb transparent transparent;border-style:solid;border-width:3px;animation:arc-spin 1s linear infinite}@keyframes wave{0%{transform:translateX(0) translateZ(0) scaleY(1)}50%{transform:translateX(-25%) translateZ(0) scaleY(.8)}to{transform:translateX(-50%) translateZ(0) scaleY(1)}}.wave-bg{background-size:50% 100%;animation:wave 15s linear infinite;transform-origin:center bottom}.button-pop{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.button-pop:hover{transform:scale(1.05)}.button-pop:active{transform:scale(.97)}@keyframes typewriter{0%{width:0}to{width:100%}}.typewriter{overflow:hidden;white-space:nowrap;margin:0 auto;animation:typewriter 3s steps(40) forwards}.card-rotate-3d{transition:transform .5s ease;transform-style:preserve-3d}.card-rotate-3d:hover{transform:rotateY(5deg) rotateX(5deg)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.button-pop:hover,.card-hover-effect:hover,.card-rotate-3d:hover{transform:none}.blur-container:hover .blur-others:not(:hover){filter:none;transform:none}}@keyframes neuron-pulse{0%{opacity:.2}50%{opacity:.8}to{opacity:.2}}.neuron-connection{animation:neuron-pulse 3s infinite}@keyframes flow-along-path{0%{offset-distance:0}to{offset-distance:100%}}.flow-dot{offset-path:path("...");animation:flow-along-path 5s linear infinite}