.mesh-bg {
    background: linear-gradient(135deg, #0a0a0a 0%, #0d1117 25%, #161b22 50%, #0d1117 75%, #0a0a0a 100%);
    background-size: 400% 400%;
    animation: meshMove 20s ease infinite;
}
@keyframes meshMove {
    0%,100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}
.app-card { transition: all 0.3s ease; }
.app-card:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(59,130,246,0.08); }

/* Ссылки на SEO-страницы программ */
.app-title-link { color: inherit; text-decoration: none; transition: color .2s; }
.app-title-link:hover { color: #3b82f6; }
.app-more { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem; padding: .6rem 1.1rem; border-radius: .75rem;
    font-size: .875rem; font-weight: 600; color: #fff; text-decoration: none;
    background: rgba(59,130,246,.18); border: 1px solid rgba(59,130,246,.4); transition: background .2s, transform .2s; }
.app-more:hover { background: rgba(59,130,246,.3); transform: translateX(2px); }
.app-more svg { width: 1rem; height: 1rem; flex-shrink: 0; }
