* {
    font-family: 'Inter', sans-serif;
}

/* 自定義漸變背景 */
.bg-gradient-main {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.bg-gradient-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.bg-gradient-button {
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 100%);
}

.bg-gradient-accent {
    background: linear-gradient(135deg, #4ecdc4 0%, #44a08d 100%);
}

/* 玻璃擬態效果 */
.glassmorphism {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* 動畫效果 */
.float-animation {
    animation: float 6s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* 脈衝動畫 */
.pulse-glow {
    animation: pulse-glow 2s infinite;
}

@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 0 20px rgba(102, 126, 234, 0.4);
    }
    50% {
        box-shadow: 0 0 30px rgba(102, 126, 234, 0.8), 0 0 40px rgba(102, 126, 234, 0.4);
    }
}

/* 輸入框聚焦效果 */
.input-glow:focus {
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1), 0 0 20px rgba(102, 126, 234, 0.2);
}

/* 錯誤訊息動畫 */
.error-shake {
    animation: shake 0.5s ease-in-out;
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}
