.square-55d63.move-normal::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 35%;
    height: 35%;
    background: radial-gradient(circle, rgba(200, 200, 200, 0.7) 0%, rgba(150, 150, 150, 0.4) 50%, transparent 70%);
    border-radius: 50%;
    box-shadow: 0 0 15px rgba(200, 200, 200, 0.5);
    animation: pulse-normal 2s infinite;
    pointer-events: none;
    z-index: 100;
}
@keyframes pulse-normal {
    0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.15); }
}

.square-55d63.move-capture::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: 
        linear-gradient(45deg, transparent 35%, rgba(220, 50, 50, 0.5) 45%, rgba(220, 50, 50, 0.5) 55%, transparent 65%),
        linear-gradient(-45deg, transparent 35%, rgba(220, 50, 50, 0.5) 45%, rgba(220, 50, 50, 0.5) 55%, transparent 65%);
    box-shadow: inset 0 0 20px rgba(220, 50, 50, 0.3);
    animation: pulse-capture 1.5s infinite;
    pointer-events: none;
    z-index: 100;
}
@keyframes pulse-capture {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 0.9; }
}

.square-55d63.move-castle::before {
    content: '⇄';
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 2.8em;
    color: rgba(100, 200, 255, 0.8);
    text-shadow: 0 0 15px rgba(100, 200, 255, 0.6);
    animation: pulse-castle 2s infinite;
    pointer-events: none;
    z-index: 100;
}
@keyframes pulse-castle {
    0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

.square-55d63.in-check {
    background: radial-gradient(circle, rgba(255, 50, 50, 0.5) 0%, rgba(255, 50, 50, 0.2) 50%, transparent 75%) !important;
    box-shadow: inset 0 0 30px rgba(255, 50, 50, 0.6), 0 0 20px rgba(255, 50, 50, 0.5);
    animation: check-pulse 1.5s infinite;
}
@keyframes check-pulse {
    0%, 100% { box-shadow: inset 0 0 30px rgba(255, 50, 50, 0.6), 0 0 20px rgba(255, 50, 50, 0.5); }
    50% { box-shadow: inset 0 0 45px rgba(255, 50, 50, 0.8), 0 0 35px rgba(255, 50, 50, 0.7); }
}

.square-55d63.in-checkmate {
    background: radial-gradient(circle, rgba(180, 0, 0, 0.8) 0%, rgba(100, 0, 0, 0.6) 50%, rgba(50, 0, 0, 0.4) 75%) !important;
    box-shadow: inset 0 0 50px rgba(180, 0, 0, 0.9), 0 0 40px rgba(180, 0, 0, 0.8), 0 0 70px rgba(100, 0, 0, 0.6);
    animation: checkmate-pulse 1s infinite;
}
@keyframes checkmate-pulse {
    0%, 100% { box-shadow: inset 0 0 50px rgba(180, 0, 0, 0.9), 0 0 40px rgba(180, 0, 0, 0.8); transform: scale(1); }
    50% { box-shadow: inset 0 0 70px rgba(255, 0, 0, 1), 0 0 60px rgba(255, 0, 0, 0.9); transform: scale(1.03); }
}

.square-55d63.move-normal:hover, 
.square-55d63.move-capture:hover, 
.square-55d63.move-castle:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    cursor: pointer;
}
