body { 
    background: linear-gradient(-45deg, #050505, #13002b, #001220, #000000);
    background-size: 400% 400%;
    animation: gradientMove 15s ease infinite;
    color: #ffffff; 
    overflow-x: hidden; 
    cursor: default; 
    min-height: 100vh;
}
@keyframes gradientMove {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.noise-overlay { position: fixed; inset: 0; pointer-events: none; z-index: 9000; opacity: 0.04; background: url('https://grainy-gradients.vercel.app/noise.svg'); filter: contrast(150%); }
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: #0a0a0a; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #5B4DFF; }
.h-scroll { display: flex; overflow-x: auto; gap: 1.5rem; padding-bottom: 1rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.h-scroll::-webkit-scrollbar { display: none; }
.scroll-item { flex-shrink: 0; }
.glass-panel { background: rgba(30, 30, 46, 0.6); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); }
.tilt-card { transition: transform 0.1s ease; transform-style: preserve-3d; perspective: 1000px; }
.bento-card { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); position: relative; overflow: hidden; }
.bento-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); z-index: 0; pointer-events: none; }
.bento-card:hover { transform: translateY(-5px) scale(1.02); border-color: rgba(91, 77, 255, 0.5); background: rgba(255, 255, 255, 0.07); box-shadow: 0 10px 40px -10px rgba(91, 77, 255, 0.3); }
.active-page { opacity: 1; visibility: visible; transition: all 0.6s ease; transform: translateY(0); position: relative; z-index: 10; }
.hidden-page { opacity: 0; visibility: hidden; position: absolute; top: 0; left: 0; width: 100%; transform: translateY(20px); pointer-events: none; z-index: -1; }
.text-stroke { -webkit-text-stroke: 1px rgba(255,255,255,0.1); color: transparent; }
.ambient-blob { position: fixed; filter: blur(100px); opacity: 0.4; z-index: -1; animation: blob 10s infinite; }
#loading-screen { background: #0B0B15; z-index: 10000; transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1); }
.slide-up-exit { transform: translateY(-100%) !important; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.news-slide { min-width: 100%; height: 100%; position: relative; overflow: hidden; }
.news-slide img { transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1); }
.news-slide:hover img { transform: scale(1.1); }
.news-nav-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.2); transition: all 0.3s; cursor: pointer; }
.news-nav-dot.active { width: 24px; background: #00f3ff; border-radius: 10px; box-shadow: 0 0 10px #00f3ff; }

/* --- PERBAIKAN KHUSUS (JANGAN DIHAPUS) --- */
/* Logic untuk menyembunyikan Navbar/Footer saat masuk Detail Dokumentasi/Acara */
body.clean-mode nav, 
body.clean-mode footer,
body.clean-mode .header-container,
body.clean-mode #mobile-nav { 
    display: none !important; 
}

/* Pastikan halaman detail muncul penuh menutupi layar */
body.clean-mode #detail-page {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 99999 !important;
    background: #000; /* Background hitam solid agar tidak tembus */
    padding-top: 0 !important;
    overflow-y: auto;
}

/* Pastikan tombol tutup/kembali tetap terlihat di mode bersih */
body.clean-mode .back-button, 
body.clean-mode .close-modal {
    z-index: 100000 !important;
    position: fixed;
    top: 20px;
    left: 20px;
}
