/* NARA - FINAL PAGE ISOLATION
   Beranda dan Edukasi adalah dua halaman/scroll-container yang benar-benar terpisah.
   Setiap .page memiliki scroll vertikal sendiri. Main/body tidak ikut menangkap scroll.
*/

html, body {
  width: 100%;
  min-height: 100%;
}

html {
  overflow: hidden;
  overscroll-behavior: none;
}

body {
  margin: 0;
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: auto;
}

/* Main hanya menjadi frame. Bukan scroll container. */
main {
  position: relative;
  width: 100%;
  height: calc(100dvh - var(--nara-topbar-height, 80px));
  min-height: 0 !important;
  max-height: calc(100dvh - var(--nara-topbar-height, 80px));
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: auto;
}

/* Semua halaman benar-benar independen. Hanya halaman aktif yang dirender. */
main > .page {
  display: none !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  box-sizing: border-box;

  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  touch-action: pan-y;

  transform: none !important;
  animation: none !important;
  contain: none !important;
  content-visibility: visible !important;
  scroll-behavior: auto !important;
  scrollbar-gutter: auto;
}

main > .page.active {
  display: block !important;
}

/* Jangan membuat wrapper internal menjadi scroll container vertikal. */
main > .page > .wrap,
main > .page .wrap,
main > .page .section {
  overflow: visible !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* Ruang aman agar konten terakhir tidak tertutup bottom navigation. */
main > .page::after {
  content: '';
  display: block;
  width: 100%;
  height: calc(96px + env(safe-area-inset-bottom));
  pointer-events: none;
}

/* EDUKASI: vertical scroll milik page-edukasi. */
#page-edukasi {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  touch-action: pan-y !important;
  overscroll-behavior-y: auto !important;
}

/* Rail kartu/chips hanya horizontal. Swipe vertikal tetap bisa diteruskan browser. */
#page-edukasi .edu-grid,
#page-edukasi .uji-grid,
#page-edukasi .nara-edu-chips {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  max-width: 100%;
  touch-action: pan-x pan-y !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain !important;
  overscroll-behavior-y: auto !important;
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
}

/* Jangan gunakan optimasi compositor agresif pada area yang harus discroll. */
#page-edukasi,
#page-edukasi * {
  -webkit-tap-highlight-color: transparent;
}

#page-edukasi .edu-card,
#page-edukasi .game-mission-card,
#page-edukasi [data-reveal] {
  content-visibility: visible !important;
  contain: none !important;
}

/* Beranda juga memiliki scroll sendiri, bukan ikut scroll Edukasi. */
#page-beranda {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  touch-action: pan-y !important;
  overscroll-behavior-y: auto !important;
}

/* Semua halaman lain mengikuti arsitektur yang sama. */
main > .page:not(#page-edukasi):not(#page-beranda) {
  overflow-y: auto !important;
  touch-action: pan-y !important;
}

/* Desktop: main tetap berada di sebelah sidebar. */
@media (min-width: 1024px) {
  main {
    margin-left: 248px;
    width: calc(100% - 248px);
  }
}

@media (min-width: 1440px) {
  main {
    margin-left: 264px;
    width: calc(100% - 264px);
  }
}

/* Mobile/tablet: jangan paksa tinggi berbasis pixel lama. */
@media (max-width: 1023px) {
  main {
    margin-left: 0;
    width: 100%;
  }
}
