html, body {
    height: 100%;
    overflow-y: auto;
    /* touch-action: none; */
}

@keyframes modalIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
.modal-animate {
    animation: modalIn .3s ease-out;
}

* {
    -webkit-tap-highlight-color: transparent;
}

/* pulse animate button */
@keyframes pulseSoft {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

.btn-pulse {
    animation: pulseSoft 2.8s ease-in-out infinite;
}

/* variasi delay supaya tidak gerak bareng */
.delay-1 { animation-delay: 0s; }
.delay-2 { animation-delay: .4s; }
.delay-3 { animation-delay: .8s; }
.delay-4 { animation-delay: 1.2s; }
.delay-5 { animation-delay: 1.6s; }

/* pause animasi saat disentuh */
.btn-pulse:active {
    animation-play-state: paused;
}

/* reveal gallery animate */
.gallery-item {
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.6s ease,
        transform 0.6s ease;
}

.gallery-item.reveal {
    opacity: 1;
    transform: translateY(0);
}

.huruf-sambung {
    font-family: 'Great Vibes', cursive;
}