/* 弹窗容器：设为屏幕正中心或中偏上 */
#toast-container {
    position: fixed;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    pointer-events: none;
    width: 100%;
}

/* 仿 iOS 弹性进场 */
@keyframes spring-in {
    0% { opacity: 0; transform: scale(0.4) translateY(40px); filter: blur(10px); }
    70% { transform: scale(1.05) translateY(-5px); }
    100% { opacity: 1; transform: scale(1) translateY(0); filter: blur(0); }
}

/* 呼吸闪烁：用于录制状态灯 */
@keyframes recording-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(1.2); }
}

/* 进度条流动 */
@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.shimmer-progress {
    background: linear-gradient(90deg, #FF7DB4 25%, #ffb1d1 50%, #FF7DB4 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite linear;
}


/* 数字跳动动画 */
@keyframes heart-beat {
    0% { transform: scale(1); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

#countdown-num {
    display: inline-block;
    animation: heart-beat 1s infinite;
    color: #ff80a0;
}

/* 保持之前的玻璃卡片和进度条样式 */
.glass-card {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 20px 40px rgba(255, 153, 176, 0.2);
}

.shimmer-progress {
    background: linear-gradient(90deg, #ff99b0 25%, #ffc1d1 50%, #ff99b0 75%);
    background-size: 200% 100%;
    animation: shimmer 2s infinite linear, progress-shrink 3s linear forwards;
}

@keyframes progress-shrink {
    from { width: 100%; }
    to { width: 0%; }
}




