@keyframes slideInFromTop {
    from { transform: translateY(-20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
@keyframes smoothFadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes zoomInTransition {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes churchSpin3D {
    0% { transform: rotateY(0deg); }
    20% { transform: rotateY(360deg); }
    100% { transform: rotateY(360deg); }
}
/* Hanya aktifkan background SVG jika body memiliki kelas khusus atau secara default diatur via JS */
body.church-theme-active {
    background-image: url('background.svg') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
}
.animate-church-spin {
    animation: churchSpin3D 9s infinite ease-in-out;
    transform-style: preserve-3d;
}

.animate-slide-in { animation: slideInFromTop 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-fade-in { animation: smoothFadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-zoom-in { animation: zoomInTransition 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-card-hover { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.animate-card-hover:active { transform: scale(0.94); }

#floatingBackBtn {
    touch-action: none;
    user-select: none;
}
/* --- Mode Lansia (Teks Besar Tanpa Scale) --- */
.senior-mode p, 
.senior-mode span, 
.senior-mode button, 
.senior-mode a, 
.senior-mode label {
    font-size: 1.1rem !important; /* Setara ~17.6px */
    line-height: 1.6 !important;
}

.senior-mode h3, 
.senior-mode h4, 
.senior-mode h5 {
    font-size: 1.35rem !important; /* Setara ~21.6px */
    line-height: 1.4 !important;
}

/* Penyesuaian khusus agar ikon tetap proporsional */
.senior-mode i {
    font-size: 1.15rem !important;
}

/* Memastikan teks yang berada di dalam badge/label sangat kecil tetap terbaca */
.senior-mode .text-\[9px\], 
.senior-mode .text-\[10px\], 
.senior-mode .text-\[11px\] {
    font-size: 0.95rem !important; /* Setara ~15px */
}
