body {
    margin: 0;
    background-color: #111;
    color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    font-family: 'Malgun Gothic', sans-serif;
    overflow: hidden;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
    touch-action: manipulation;
}

/* Prevent image and element dragging */
img, .enemy, .tower-card, .relic-slot {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInScale {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes shrinkAndMove {
    0% {
        transform: scale(1) translate(0, 0);
        opacity: 1;
        border-radius: 0;
    }
    100% {
        transform: scale(0.1) translate(400%, 400%);
        opacity: 0;
        border-radius: 20px;
    }
}

@keyframes textBreathing {
    from { opacity: 0.8; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); text-shadow: 0 0 15px rgba(255, 69, 0, 1), 0 0 5px #fff; }
}

@keyframes divinePulse {
    from { opacity: 0.8; text-shadow: 0 0 15px #ffd700; }
    to { opacity: 1; text-shadow: 0 0 45px #ffd700, 0 0 75px #ff8c00; }
}

@keyframes hintPulse {
    from { opacity: 0.4; }
    to { opacity: 0.8; }
}

@keyframes hintBreathe {
    from { opacity: 0.4; }
    to { opacity: 1; }
}

@keyframes shake {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(-2px, -2px); }
    50% { transform: translate(2px, 2px); }
    75% { transform: translate(-2px, 2px); }
}
