/* ── Shared Keyframe Animations ── */

/* ── Disco ball pendulum ── */
@keyframes pendulum {
    0%, 100% { transform: translateX(-50%) rotate(-5deg); }
    50% { transform: translateX(-50%) rotate(5deg); }
}

/* ── Disco ball rays ── */
@keyframes rayFade {
    0%, 100% { opacity: 0.1; }
    50% { opacity: 0.55; }
}

/* ── Vinyl record spinning ── */
@keyframes vinylSpin {
    to { transform: rotate(360deg); }
}

/* ── Wine bottle pour ── */
@keyframes pourBottle {
    0%, 100% { transform: rotate(0deg); }
    25%, 55% { transform: rotate(-42deg); }
}

/* ── Wine drops fall ── */
@keyframes dropFall {
    0% { opacity: 0; transform: translate(0, 0); }
    6% { opacity: 0.75; transform: translate(0, 0); }
    22% { opacity: 0.55; transform: translate(-10px, 52px); }
    30%, 100% { opacity: 0; transform: translate(-17px, 74px); }
}

/* ── Wine glass reaction ── */
@keyframes glassReact {
    /* Still (wait for drops to reach the bowl) */
    0%, 72% { transform: scale(1.02) translateX(0) rotate(0deg); }

    /* Quick "clink" reaction AFTER the pour lands */
    76% { transform: scale(1.02) translateX(-2px) rotate(-1.2deg); }
    79% { transform: scale(1.02) translateX(2px) rotate(1.3deg); }
    82% { transform: scale(1.02) translateX(-3px) rotate(-1.8deg); }
    85% { transform: scale(1.02) translateX(3px) rotate(1.9deg); }
    88% { transform: scale(1.02) translateX(-2px) rotate(-1.1deg); }

    /* Settle back */
    92%, 100% { transform: scale(1.02) translateX(0) rotate(0deg); }
}

/* ── Hotel reveal ── */
@keyframes hotelReveal {
    0%      { opacity: 0; }
    8%      { opacity: 1; }
    55%     { opacity: 1; }
    70%     { opacity: 0; }
    100%    { opacity: 0; }
}

/* ── Float animations ── */
@keyframes floaty {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

/* ── Sparkle pulse ── */
@keyframes sparkle-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}

/* ── Footer heart double pulse ── */
@keyframes footer-heart-double-pulse {
    0%, 72% { transform: scale(1); }
    76% { transform: scale(1.08); }
    80% { transform: scale(1); }
    84% { transform: scale(1.08); }
    88%, 100% { transform: scale(1); }
}

/* ── Float class application ── */
.float { 
    animation: floaty 4s ease-in-out infinite; 
}

.float-delay { 
    animation: floaty 4s ease-in-out infinite 1s; 
}

.float-slow { 
    animation: floaty 5s ease-in-out infinite 0.5s; 
}

/* ── Reduced motion support ── */
@media (prefers-reduced-motion: reduce) {
    .footer-heart svg { 
        animation: none; 
    }
}