.cs-loader {
  position: fixed;
top: 0; left: 0; width: 100vw; height: 100vh;
  display: flex;
  align-items: center; justify-content: center;
  background: #0a0e13dd;
  z-index: 9999;
}
.cs-loader-ball {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(140deg, #1df260 65%, #0a0e13 90%);
  border: 4px solid #fff;
  box-shadow: 0 0 28px #1df260cc, 0 0 0 6px #009f3466 inset;
  animation: csBounce .98s infinite cubic-bezier(.51,.01,.29,1.16);
}
@keyframes csBounce {
  0%,100%{transform:translateY(0);}
  40%{transform:translateY(-54px);}
  70%{box-shadow:0 0 50px #1df260bb;}
}

.cs-btn-primary-cta {
    animation: cs-pulse 2s infinite;
}

@keyframes cs-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(29, 242, 96, 0.7), 0 4px 20px #1df26077;
    }
    70% {
        box-shadow: 0 0 0 20px rgba(29, 242, 96, 0), 0 4px 20px #1df26077;
    }
    100% {
        box-shadow: 0 0 0 0 rgba(29, 242, 96, 0), 0 4px 20px #1df26077;
    }
}

/* NUEVAS ANIMACIONES DE PULSO */
@keyframes cs-pulse-gold {
    0% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.7); }
    70% { box-shadow: 0 0 0 15px rgba(255, 215, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0); }
}

@keyframes cs-pulse-blue {
    0% { box-shadow: 0 0 0 0 rgba(45, 158, 255, 0.7); }
    70% { box-shadow: 0 0 0 15px rgba(45, 158, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(45, 158, 255, 0); }
}


@keyframes cs-fade-in-up { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}
.cs-skeleton-loader::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, var(--cs-skeleton-shine), transparent);
    animation: shimmer 1.5s infinite linear;
}
@keyframes triviaTimerPulse {
    from {
        transform: scale(1);
        box-shadow: 0 2px 16px #1df26055;
    }
    to {
        transform: scale(1.05);
        box-shadow: 0 0 8px #1df26088;
    }
}
@keyframes triviaBadgePop {
    from {
        transform: translateX(-50%) scale(0.7);
        opacity: 0;
    }
    to {
        transform: translateX(-50%) scale(1);
        opacity: 1;
    }
}
.cs-profile-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5em;
}
.cs-fieldset-danger {
    border-color: var(--cs-error) !important;
    margin-top: 3em;
}
.cs-fieldset-danger legend {
    color: var(--cs-error);
}