/* ---------- Floating candles ---------- */
.floating-candle {
    position: absolute;
    animation: float-candle 6s ease-in-out infinite;
}
@keyframes float-candle {
    0%, 100% { transform: translateY(0) rotate(-1deg); }
    50% { transform: translateY(-14px) rotate(1deg); }
}
.candle-flame { animation: flicker 1.6s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes flicker {
    0%, 100% { transform: scaleY(1) scaleX(1); opacity: 1; }
    30% { transform: scaleY(1.08) scaleX(0.94); opacity: 0.92; }
    60% { transform: scaleY(0.92) scaleX(1.05); opacity: 1; }
}

/* ---------- Sparkle accents ---------- */
.sparkle-spin { animation: sparkle-spin 5s linear infinite; transform-origin: center; }
@keyframes sparkle-spin {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.15); }
    100% { transform: rotate(360deg) scale(1); }
}

/* ---------- Page / reveal transitions ---------- */
.fade-in { animation: fade-in 0.6s ease both; }
@keyframes fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.reveal-pop { animation: reveal-pop 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
@keyframes reveal-pop {
    0% { transform: scale(0.5); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
.crest-glow { animation: crest-glow 2.4s ease-in-out infinite; }
@keyframes crest-glow {
    0%, 100% { filter: drop-shadow(0 0 6px rgba(184,147,63,0.4)); }
    50% { filter: drop-shadow(0 0 22px rgba(184,147,63,0.8)); }
}

@media (prefers-reduced-motion: reduce) {
    .floating-candle, .candle-flame, .sparkle-spin,
    .fade-in, .reveal-pop, .crest-glow {
        animation: none !important;
    }
}
