/* ===== Base ===== */
html, body {
    scroll-behavior: smooth;
}

#main-content {
    overflow-x: hidden;
}

/* ===== Loader ===== */
#loader.hide {
    opacity: 0;
    pointer-events: none;
}

/* ===== Cover ===== */
#cover.hide {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

#main-content.show {
    opacity: 1;
}

/* ===== Music control ===== */
@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-spin-slow {
    animation: spin-slow 3s linear infinite;
}
#music-icon.paused {
    animation-play-state: paused;
}

/* ===== Glass card on cover ===== */
.glass-card {
    background: rgba(255, 255, 255, 0.08);
}

/* ===== Countdown ===== */
.countdown-box {
    background: linear-gradient(135deg, #16a34a 0%, #22c55e 100%);
    color: #fff;
    border-radius: 0.85rem;
    padding: 0.85rem 0.25rem;
    text-align: center;
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.25);
}
.countdown-box .num {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}
.countdown-box .label {
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    opacity: 0.85;
    margin-top: 0.25rem;
    display: block;
}

/* ===== Gallery Swiper (slider kiri ke kanan) ===== */
.gallery-swiper {
    padding-bottom: 2.5rem;
}
.gallery-swiper .swiper-slide {
    border-radius: 0.75rem;
}
.gallery-swiper .swiper-pagination-bullet {
    background: #86efac;
    opacity: 0.6;
}
.gallery-swiper .swiper-pagination-bullet-active {
    background: #16a34a;
    opacity: 1;
}

/* ===== Wishes list ===== */
.wish-card {
    border: 1px solid #f1f5f9;
    border-radius: 1rem;
    padding: 1rem;
    background: #fafafa;
}
.wish-card .wish-name {
    font-weight: 600;
    font-size: 0.85rem;
    color: #15803d;
}
.wish-card .wish-time {
    font-size: 0.65rem;
    color: #94a3b8;
}
.wish-card .wish-text {
    font-size: 0.8rem;
    color: #475569;
    margin-top: 0.35rem;
    line-height: 1.5;
}
.wish-card .wish-status {
    display: inline-block;
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    margin-top: 0.35rem;
}
.wish-status.hadir {
    background: #f0fdf4;
    color: #16a34a;
}
.wish-status.tidak-hadir {
    background: #fef2f2;
    color: #dc2626;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}