/* Dilarang keras menghapus credits
Devoleper : Rahmad Tenpoles
Dilarang keras menghapus credits */

/* ===== Smooth layer: transisi halus tanpa mengubah tampilan dasar ===== */

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Fade-in saat halaman pertama kali tampil */
@keyframes smoothPageIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
body {
  animation: smoothPageIn .35s ease-out both;
}

/* Fade-out ringan saat pindah halaman (dipicu smooth.js) */
body.smooth-leaving {
  opacity: 0;
  transition: opacity .18s ease-in;
  pointer-events: none;
}

/* Transisi interaktif: tombol, kartu, link, input */
a, button, .btn, .card, [class*="-card"], .form-control, .form-select,
.nav-link, .cat-btn, .tab-btn {
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    box-shadow .2s ease,
    transform .2s cubic-bezier(.2,.7,.3,1),
    opacity .2s ease;
}
.btn:active, button:active {
  transform: scale(.98);
}

/* Gambar tampil bertahap, tidak "meloncat" */
img {
  transition: opacity .3s ease;
}
img[loading="lazy"]:not([data-loaded]) {
  opacity: 0;
}
img[data-loaded] {
  opacity: 1;
}

/* Hindari layout bergeser saat scroll / tap */
body {
  overscroll-behavior-y: none;
}

/* Hormati pengaturan "kurangi gerakan" di perangkat */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body, body.smooth-leaving { animation: none; transition: none; }
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
