/* ============ Page Fade-In ============ */
.fade-in {
    animation: fadeIn 0.8s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============ Gentle Float (Profile Photo) ============ */
.profile-photo {
    animation: gentleFloat 4s ease-in-out infinite;
}

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

/* ============ Slide Up (Quote Card, Holiday Image) ============ */
.slide-up {
    animation: slideUp 0.6s ease-out 0.3s both;
}

.quote-card {
    animation: slideUp 0.6s ease-out 0.4s both;
}

@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============ Fun Fact Crossfade ============ */
.fun-fact-card {
    transition: opacity 0.5s ease-in-out;
}

.fun-fact-card.fading {
    opacity: 0;
}

/* ============ Holiday Image Subtle Pulse ============ */
.holiday-image {
    animation: subtlePulse 3s ease-in-out infinite;
}

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

/* ============ Dark Mode Toggle Hover ============ */
.dark-mode-toggle {
    transition: transform 0.3s;
}

.dark-mode-toggle:hover {
    transform: scale(1.2);
}

/* ============ Profile Photo Hover ============ */
.profile-photo-wrapper {
    transition: transform 0.3s ease;
}

.profile-photo-wrapper:hover {
    transform: scale(1.03);
}

/* ============ Reduced Motion ============ */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
