/* Анимация для бегущей строки */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.animate-marquee {
    animation: marquee 30s linear infinite;
}
/* Скрытие скроллбара */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}
.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
/* Мобильное меню — плавный блюр и выезжающая панель */
#mobile-menu {
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
#mobile-menu[aria-hidden="true"] {
    opacity: 0;
    pointer-events: none;
}
#mobile-menu[aria-hidden="false"] {
    opacity: 1;
}
#menu-backdrop {
    transition: opacity 0.7s cubic-bezier(0.25, 0.1, 0.25, 1);
}
#mobile-menu[aria-hidden="true"] #menu-backdrop {
    opacity: 0;
}
#mobile-menu[aria-hidden="false"] #menu-backdrop {
    opacity: 1;
}
.mobile-menu-panel {
    transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.3s ease;
}
#mobile-menu[aria-hidden="true"] .mobile-menu-panel {
    transform: translateX(100%);
    opacity: 0;
}
#mobile-menu[aria-hidden="false"] .mobile-menu-panel {
    transform: translateX(0);
    opacity: 1;
}
/* Анимация частиц для карточек услуг */
@keyframes float-up {
    0% { transform: translateY(0) translateX(0); opacity: 0; }
    10% { opacity: var(--speck-opacity, 0.6); }
    90% { opacity: var(--speck-opacity, 0.6); }
    100% { transform: translateY(-500px) translateX(var(--speck-drift, 20px)); opacity: 0; }
}
.speck-container {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
    border-radius: 32px;
}
.speck {
    position: absolute;
    background-color: white;
    border-radius: 50%;
    box-shadow: 0 0 6px 1px rgba(255, 255, 255, 0.4);
    animation: float-up infinite linear;
    bottom: -20px;
}
.speck-sm { width: 2px; height: 2px; --speck-opacity: 0.4; }
.speck-md { width: 3px; height: 3px; --speck-opacity: 0.6; }
.speck-lg { width: 4px; height: 4px; --speck-opacity: 0.3; }
/* Реальный вид курсора — тень и контур */
.cursor-pointer-svg {
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)) drop-shadow(0 0 0 1px rgba(255,255,255,0.8));
}
/* Фон с точками для секций */
.bg-dots-section {
    background-image: radial-gradient(#e5e7eb 1px, transparent 1px);
    background-size: 20px 20px;
}
