.bg-animated{background-size:400% 400%;animation:gradientAnimation 15s ease infinite}.bg-dots{background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 0);background-size:20px 20px;opacity:.5}.dark .bg-animated{background-image:linear-gradient(-45deg,#0d1117,#05080a,#1a202c,#0d1117)}.light .bg-animated{background-image:linear-gradient(-45deg,#f0f2f5,#dde4f0,#e2e8f0,#f0f2f5)}@keyframes gradientAnimation{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.loader{display:inline-block;border-top:4px solid var(--text-primary);border-right:4px solid transparent;animation:rotation 1s linear infinite}.loader,.loader:after{width:60px;height:60px;border-radius:50%;box-sizing:border-box}.loader:after{content:"";position:absolute;left:0;top:0;border-bottom:4px solid var(--accent-color);border-left:4px solid transparent}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-fade-in,.animate-fade-in-fast{animation:fadeIn .8s ease-in-out}.animate-fade-in-fast{animation-duration:.5s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.interactive-card{transition:transform .3s ease-out,box-shadow .3s ease-out}.interactive-card:hover{transform:translateY(-8px);box-shadow:0 25px 40px -15px rgba(0,0,0,.2)}.main-button{transition:transform .2s ease,box-shadow .2s ease!important}.main-button:hover:not(:disabled){box-shadow:0 0 25px -5px var(--accent-color);transform:scale(1.03)}.main-button:active:not(:disabled){transform:scale(.98)}