.message-enter { animation: messageEnter .34s cubic-bezier(.22, 1.35, .5, 1) both; }

@keyframes messageEnter {
    from { opacity: 0; transform: translateY(12px) scale(.94); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.message-burst { position: fixed; z-index: 20; left: 50%; bottom: 84px; width: 1px; height: 1px; pointer-events: none; }
.message-burst span { position: absolute; color: #ff6fa8; font-size: 1.45rem; text-shadow: 0 2px 12px rgba(255, 111, 168, .45); animation: messageBurst .85s ease-out forwards; animation-delay: calc(var(--i) * 45ms); }
.message-burst span:nth-child(2n) { color: #a78bfa; }

@keyframes messageBurst {
    from { transform: translate(-50%, 0) scale(.5); opacity: 0; }
    20% { opacity: 1; }
    to { transform: translate(calc(-50% + var(--x)), -84px) rotate(20deg); opacity: 0; }
}

.date-item { position: relative; overflow: hidden; border-color: rgba(255, 255, 255, .92); box-shadow: 0 10px 28px rgba(122, 83, 139, .08); }
.date-item::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(var(--pink), var(--purple)); }
.date-item.accepted { background: linear-gradient(135deg, rgba(233, 255, 247, .9), rgba(250, 244, 255, .9)); }
.date-item.rejected { background: linear-gradient(135deg, rgba(255, 245, 249, .9), rgba(247, 243, 255, .9)); }
.date-main strong span { color: #b05f91; font-size: .78rem; font-weight: 600; }

@media (max-width: 640px) {
    .message-burst { bottom: 72px; }
    .date-item { padding: 14px 13px 14px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .message-enter, .message-burst span { animation: none; }
}

@media (max-width: 640px) {
    /* 手机端保留玻璃质感的颜色和边框，关闭大面积实时模糊。 */
    .glass-card {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(255, 255, 255, .9);
    }
    .aurora {
        filter: none;
        opacity: .08;
    }
    dialog::backdrop {
        backdrop-filter: none;
    }
    .floating-particle {
        filter: none;
    }
}
