a, button, [role="button"] {
    cursor: pointer;
}

/* Léger flottement pour le logo du hero */
.float {
    animation: float 3.5s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}

/* Le petit danseur qui gigote en continu */
.dance {
    display: inline-block;
    transform-origin: 70% 70%;
    animation: dance 1.1s ease-in-out infinite;
}

@keyframes dance {
    0%, 100% { transform: rotate(-9deg) translateY(0); }
    25%      { transform: rotate(6deg) translateY(-4px); }
    50%      { transform: rotate(-6deg) translateY(0); }
    75%      { transform: rotate(9deg) translateY(-4px); }
}

/* Dégradé animé du titre */
.gradient-text {
    background-size: 220% 220%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradient-shift 6s ease infinite;
}

@keyframes gradient-shift {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

/* Faux lecteur vidéo dans la démo Discord */
.video-shine::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.18) 50%, transparent 70%);
    background-size: 250% 100%;
    animation: shine 3.2s ease-in-out infinite;
}

@keyframes shine {
    0%   { background-position: 150% 0; }
    100% { background-position: -150% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .dance, .float, .gradient-text, .video-shine::after {
        animation: none !important;
    }
}
