/* ===== LOGIN CURSOR STYLES ===== */

/* Cat Cursor Base Styles */
.cat-cursor {
    position: fixed;
    width: 60px;
    height: 60px;
    pointer-events: none;
    z-index: 9999;
    transition: transform 0.1s ease-out;
    filter: drop-shadow(0 4px 8px rgba(255, 107, 157, 0.4));
    mix-blend-mode: multiply;
    animation: cursorGlow 2s ease-in-out infinite;
}

@keyframes cursorGlow {
    0%, 100% { 
        filter: drop-shadow(0 4px 8px rgba(255, 107, 157, 0.4));
    }
    50% { 
        filter: drop-shadow(0 4px 12px rgba(255, 107, 157, 0.8));
    }
}

.cat-cursor svg {
    width: 100%;
    height: 100%;
    transition: all 0.2s ease-out;
}

/* Cat Cursor Animations */
.cat-cursor .cat-tail {
    transform-origin: 50px 50px;
    animation: cursorTailWag 2s infinite ease-in-out;
}

@keyframes cursorTailWag {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(15deg); }
    75% { transform: rotate(-10deg); }
}

.cat-cursor .cat-ear {
    animation: cursorEarTwitch 3s infinite ease-in-out;
}

@keyframes cursorEarTwitch {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(5deg); }
}

.cat-cursor .cat-blink {
    animation: cursorBlink 4s infinite;
}

@keyframes cursorBlink {
    0%, 90%, 100% { transform: scaleY(1); }
    95% { transform: scaleY(0.1); }
}

/* Cat Cursor Interactions */
.cat-cursor.hovering {
    transform: scale(1.2);
    filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.4));
}

.cat-cursor.clicking {
    transform: scale(0.9);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.cat-cursor.typing {
    animation: cursorTyping 0.5s ease-in-out;
}

@keyframes cursorTyping {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Cat Cursor Eye Tracking */
.cat-cursor .cat-pupil {
    transition: transform 0.15s ease-out;
}

.cat-cursor.looking-left .cat-pupil {
    transform: translateX(-2px);
}

.cat-cursor.looking-right .cat-pupil {
    transform: translateX(2px);
}

.cat-cursor.looking-up .cat-pupil {
    transform: translateY(-1px);
}

.cat-cursor.looking-down .cat-pupil {
    transform: translateY(1px);
}

/* Cat Cursor Special States */
.cat-cursor.happy {
    filter: drop-shadow(0 4px 8px rgba(255, 215, 0, 0.5));
    animation: happyGlow 1s ease-in-out infinite;
}

.cat-cursor.happy svg {
    filter: brightness(1.2) saturate(1.3) hue-rotate(10deg);
}

@keyframes happyGlow {
    0%, 100% { 
        filter: drop-shadow(0 4px 8px rgba(255, 215, 0, 0.5));
    }
    50% { 
        filter: drop-shadow(0 4px 12px rgba(255, 215, 0, 0.8));
    }
}

.cat-cursor.sad {
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
    opacity: 0.8;
}

.cat-cursor.sad svg {
    filter: grayscale(0.3) brightness(0.9);
}

.cat-cursor.excited {
    animation: cursorExcited 0.6s ease-in-out;
}

@keyframes cursorExcited {
    0%, 100% { transform: scale(1) rotate(0deg); }
    25% { transform: scale(1.3) rotate(-5deg); }
    50% { transform: scale(1.2) rotate(5deg); }
    75% { transform: scale(1.1) rotate(-3deg); }
}

/* Cat Cursor Form Interactions */
.cat-cursor.on-input {
    transform: scale(1.1);
    filter: drop-shadow(0 6px 12px rgba(78, 205, 196, 0.4));
}

.cat-cursor.on-button {
    transform: scale(1.15);
    filter: drop-shadow(0 8px 16px rgba(78, 205, 196, 0.5));
}

.cat-cursor.on-checkbox {
    transform: scale(1.05);
    filter: drop-shadow(0 4px 8px rgba(78, 205, 196, 0.3));
}

/* Cat Cursor Loading State */
.cat-cursor.loading {
    animation: cursorLoading 1s infinite ease-in-out;
}

@keyframes cursorLoading {
    0%, 100% { transform: scale(1) rotate(0deg); }
    25% { transform: scale(1.1) rotate(-5deg); }
    50% { transform: scale(1.05) rotate(5deg); }
    75% { transform: scale(1.08) rotate(-3deg); }
}

/* Cat Cursor Success State */
.cat-cursor.success {
    animation: cursorSuccess 1.5s ease-in-out;
}

@keyframes cursorSuccess {
    0% { transform: scale(1) rotate(0deg); }
    25% { transform: scale(1.4) rotate(-10deg); }
    50% { transform: scale(1.3) rotate(10deg); }
    75% { transform: scale(1.2) rotate(-5deg); }
    100% { transform: scale(1) rotate(0deg); }
}

/* Cat Cursor Error State */
.cat-cursor.error {
    animation: cursorError 0.8s ease-in-out;
}

@keyframes cursorError {
    0%, 100% { transform: scale(1) translateX(0); }
    25% { transform: scale(1.1) translateX(-5px); }
    75% { transform: scale(1.1) translateX(5px); }
}

/* Cat Cursor Responsive Design */
@media (max-width: 768px) {
    .cat-cursor {
        width: 50px;
        height: 50px;
    }
}

@media (max-width: 480px) {
    .cat-cursor {
        width: 45px;
        height: 45px;
    }
}

/* Cat Cursor Accessibility */
@media (prefers-reduced-motion: reduce) {
    .cat-cursor {
        animation: none;
        transition: none;
    }
    
    .cat-cursor .cat-tail,
    .cat-cursor .cat-ear,
    .cat-cursor .cat-blink {
        animation: none;
    }
}

/* Cat Cursor High Contrast Mode */
@media (prefers-contrast: high) {
    .cat-cursor {
        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.8));
    }
}

/* Cat Cursor Dark Mode */
@media (prefers-color-scheme: dark) {
    .cat-cursor {
        filter: drop-shadow(0 4px 8px rgba(255, 255, 255, 0.2));
    }
    
    .cat-cursor.happy {
        filter: drop-shadow(0 4px 8px rgba(255, 215, 0, 0.5));
    }
} 