/* Shared keyframe animations and the reduced-motion override (keep this file last). */

@keyframes crtFlicker { 50% { opacity: .9; } }
@keyframes crtRoll { from { transform: translateY(-22vh); } to { transform: translateY(100vh); } }
@keyframes pulse { to { transform: scale(1.12); } }
@keyframes blink { 50% { opacity: 0; } }
@keyframes fadeIn { from { opacity: 0; } }
@keyframes titleBob { 50% { transform: translateY(-6px) rotate(-1deg); } }
@keyframes feverGlow { to { filter: brightness(1.6); } }
@keyframes feverPulse { to { opacity: .6; } }
@keyframes shake { 25% { transform: translateX(-6px); } 75% { transform: translateX(6px); } }
@keyframes slideIn { from { opacity: 0; transform: translateY(14px); } }
@keyframes slamIn { from { opacity: 0; transform: scale(2.2); } }
@keyframes starPop { from { transform: scale(3) rotate(-30deg); opacity: 0; } }
@keyframes contTick { from { transform: scale(1.5); color: var(--blood); } }
@keyframes floatUp {
    0% { opacity: 0; transform: translate(-50%, -30%) scale(.5); }
    15% { opacity: 1; transform: translate(-50%, -70%) scale(1.25); }
    30% { transform: translate(-50%, -90%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -220%) scale(.9); }
}
@keyframes bannerPop {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(2.6); }
    25% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    75% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(.7); }
}
@media (prefers-reduced-motion: reduce) { .title, .blink, #scanlines, #scanlines::after { animation: none; } #secret-reveal .sk { animation: none; } }
