/* Пользовательские стили поверх Tailwind: анимации, темы */

@keyframes float-slow { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -30px) scale(1.05); } 66% { transform: translate(-20px, 20px) scale(0.95); } }
@keyframes float-slow-reverse { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-40px, 20px) scale(1.1); } 66% { transform: translate(30px, -30px) scale(0.9); } }
@keyframes float-medium { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(20px, -20px); } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fade-in-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scroll-dot { 0%, 100% { transform: translateY(0); opacity: 1; } 50% { transform: translateY(8px); opacity: 0.3; } }
@keyframes modal-in { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes toast-in { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

.animate-float-slow { animation: float-slow 20s ease-in-out infinite; }
.animate-float-slow-reverse { animation: float-slow-reverse 25s ease-in-out infinite; }
.animate-float-medium { animation: float-medium 15s ease-in-out infinite; }
.animate-fade-in { animation: fade-in 0.8s ease-out forwards; opacity: 0; }
.animate-fade-in-up { animation: fade-in-up 0.8s ease-out forwards; opacity: 0; }
.animate-scroll-dot { animation: scroll-dot 1.5s ease-in-out infinite; }
.animate-modal-in { animation: modal-in 0.3s ease-out forwards; }
.animate-toast-in { animation: toast-in 0.3s ease-out forwards; }
.animate-shake { animation: shake 0.3s ease-in-out; }

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transition: background-color 0.3s, color 0.3s; }
html.dark body { background-color: #030712; color: #ffffff; }
html.light body { background-color: #f9fafb; color: #111827; }

/* Уважение к настройкам уменьшения движения */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    html { scroll-behavior: auto; }
}
