 /* Nová animace pomalého zoomu pozadí */
@keyframes slow-zoom {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}
.animate-slow-zoom {
    animation: slow-zoom 20s ease-in-out infinite;
}

/* Animace posunu gradientu */
@keyframes gradient-xy {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.animate-gradient-xy {
    background-size: 200% auto;
    animation: gradient-xy 6s ease infinite;
}

/* Animace světelného lesku */
@keyframes shine {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
.animate-shine {
    animation: shine 2s infinite;
}

/* Animace světelných paprsků */
@keyframes light-beam-1 {
    0%, 100% { opacity: 0.1; height: 70%; }
    50% { opacity: 0.3; height: 100%; }
}
@keyframes light-beam-2 {
    0%, 100% { opacity: 0.2; height: 60%; }
    50% { opacity: 0.4; height: 90%; }
}
@keyframes light-beam-3 {
    0%, 100% { opacity: 0.15; height: 80%; }
    50% { opacity: 0.35; height: 100%; }
}
.animate-light-beam-1 {
    animation: light-beam-1 8s ease-in-out infinite;
}
.animate-light-beam-2 {
    animation: light-beam-2 12s ease-in-out infinite;
}
.animate-light-beam-3 {
    animation: light-beam-3 10s ease-in-out infinite;
}

/* Animace postupného objevování */
@keyframes fade-in {
    0% { opacity: 0; }
    100% { opacity: 1; }
}
.animate-fade-in {
    animation: fade-in 1s ease-out forwards;
}
.animate-fade-in-delayed {
    animation: fade-in 2s ease-out 1s forwards;
}
.animate-fade-in-delayed-more {
    animation: fade-in 3s ease-out 2s forwards;
}

/* Animace postupného objevování s posunem */
@keyframes fade-in-up {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
    animation: fade-in-up 1.5s ease-out forwards;
}

/* Animace vstupu zleva */
@keyframes slide-in-left {
    0% { opacity: 0; transform: translateX(-30px); }
    100% { opacity: 1; transform: translateX(0); }
}
.animate-slide-in-left {
    animation: slide-in-left 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* Animace vstupu zprava */
@keyframes slide-in-right {
    0% { opacity: 0; transform: translateX(30px); }
    100% { opacity: 1; transform: translateX(0); }
}
.animate-slide-in-right {
    animation: slide-in-right 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* Animace vstupu shora */
@keyframes slide-in-top {
    0% { opacity: 0; transform: translateY(-30px); }
    100% { opacity: 1; transform: translateY(0); }
}
.animate-slide-in-top {
    animation: slide-in-top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* Animace plovoucích částic */
@keyframes floating-particle-1 {
    0%, 100% { transform: translate(0, 0); opacity: 0.6; }
    25% { transform: translate(20px, 30px); opacity: 0.9; }
    50% { transform: translate(40px, 10px); opacity: 0.7; }
    75% { transform: translate(20px, -20px); opacity: 0.5; }
}
@keyframes floating-particle-2 {
    0%, 100% { transform: translate(0, 0); opacity: 0.5; }
    25% { transform: translate(-30px, 20px); opacity: 0.7; }
    50% { transform: translate(-10px, 40px); opacity: 0.9; }
    75% { transform: translate(-40px, 15px); opacity: 0.6; }
}
@keyframes floating-particle-3 {
    0%, 100% { transform: translate(0, 0); opacity: 0.7; }
    33% { transform: translate(25px, -35px); opacity: 0.5; }
    66% { transform: translate(-20px, -25px); opacity: 0.9; }
}
@keyframes floating-particle-4 {
    0%, 100% { transform: translate(0, 0); opacity: 0.6; }
    33% { transform: translate(-30px, -20px); opacity: 0.9; }
    66% { transform: translate(-40px, 25px); opacity: 0.5; }
}
@keyframes floating-particle-5 {
    0%, 100% { transform: translate(0, 0); opacity: 0.7; }
    25% { transform: translate(40px, 25px); opacity: 0.5; }
    50% { transform: translate(15px, -30px); opacity: 0.9; }
    75% { transform: translate(-15px, -15px); opacity: 0.6; }
}
@keyframes floating-particle-6 {
    0%, 100% { transform: translate(0, 0); opacity: 0.5; }
    25% { transform: translate(-20px, 40px); opacity: 0.8; }
    50% { transform: translate(30px, 20px); opacity: 0.6; }
    75% { transform: translate(15px, -25px); opacity: 0.9; }
}
@keyframes floating-particle-7 {
    0%, 100% { transform: translate(0, 0); opacity: 0.6; }
    33% { transform: translate(35px, 15px); opacity: 0.8; }
    66% { transform: translate(20px, -35px); opacity: 0.7; }
}
@keyframes floating-particle-8 {
    0%, 100% { transform: translate(0, 0); opacity: 0.5; }
    25% { transform: translate(-15px, -25px); opacity: 0.7; }
    50% { transform: translate(-35px, 15px); opacity: 0.9; }
    75% { transform: translate(-10px, 30px); opacity: 0.6; }
}

.animate-floating-particle-1 {
    animation: floating-particle-1 12s ease-in-out infinite;
}
.animate-floating-particle-2 {
    animation: floating-particle-2 15s ease-in-out infinite;
}
.animate-floating-particle-3 {
    animation: floating-particle-3 10s ease-in-out infinite;
}
.animate-floating-particle-4 {
    animation: floating-particle-4 14s ease-in-out infinite;
}
.animate-floating-particle-5 {
    animation: floating-particle-5 13s ease-in-out infinite;
}
.animate-floating-particle-6 {
    animation: floating-particle-6 16s ease-in-out infinite;
}
.animate-floating-particle-7 {
    animation: floating-particle-7 11s ease-in-out infinite;
}
.animate-floating-particle-8 {
    animation: floating-particle-8 14s ease-in-out infinite;
}

/* Radiální gradient */
.bg-gradient-radial {
    background-image: radial-gradient(var(--tw-gradient-stops));
}

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-visible {
    opacity: 1;
    transform: translateY(0);
}