/* ==========================================================================
   Animasi "masuk" halaman publik iplusnet — halus & profesional.
   Stylesheet bersama untuk semua halaman publik. Melengkapi sistem .fade-up
   (reveal saat scroll) yang sudah ada di CSS inline tiap halaman — file ini
   khusus animasi saat halaman DIMUAT.

   REVISI (Okt 2026):
   - Blok ".fade-up" global DIHAPUS. Blok itu memakai shorthand `transition`
     yang (a) mereset transition-delay sehingga stagger .fade-up-d1..d4 hilang,
     dan (b) menimpa transition hover milik .service-card / .feature-box /
     .testi-card (border, shadow, background jadi tidak halus, lift jadi lambat).
   - Penetralan "reduce motion" tetap dikalahkan sesuai permintaan pemilik,
     tetapi kini hanya di dalam @media (prefers-reduced-motion) dan memakai
     properti terpisah (longhand) agar delay & transition lain tidak tertimpa.
   - Animasi navbar memakai fill-mode "backwards" supaya transform tidak
     menempel permanen setelah animasi selesai.
   ========================================================================== */

@keyframes pubNavDrop {
  from { opacity: 0; transform: translateY(-100%); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pubFadeDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pubKenBurns {
  from { transform: scale(1); }
  to   { transform: scale(1.06); }
}

/* Navbar turun lembut saat halaman dimuat. */
.navbar {
  animation: pubNavDrop 0.55s cubic-bezier(0.2, 0.7, 0.3, 1) backwards;
}

/* Item menu & tombol CTA masuk bertahap (stagger) setelah navbar turun. */
.nav-links li {
  animation: pubFadeDown 0.5s ease backwards;
  animation-delay: 0.25s;
}
.nav-links li:nth-child(2) { animation-delay: 0.32s; }
.nav-links li:nth-child(3) { animation-delay: 0.39s; }
.nav-links li:nth-child(4) { animation-delay: 0.46s; }
.nav-links li:nth-child(5) { animation-delay: 0.53s; }
.nav-cta {
  animation: pubFadeDown 0.5s ease backwards;
  animation-delay: 0.55s;
}

/* Background hero zoom sangat pelan (Ken Burns). Hanya menyentuh layer
   background hero, bukan teks/konten. Berhenti di skala akhir (both). */
.hero-bg,
.page-hero-bg,
.hero-photo {
  animation: pubKenBurns 22s ease-out both;
  will-change: transform;
}

/* Animasi tetap tampil di perangkat yang menyetel "kurangi gerak" (permintaan
   pemilik). Tiap halaman punya blok reduce-motion inline yang menetralkan
   .fade-up; aturan ini dimuat SETELAH CSS inline itu sehingga menang, tetapi
   hanya aktif pada kondisi tersebut dan tidak menyentuh transition-delay. */
@media (prefers-reduced-motion: reduce) {
  .fade-up {
    transform: translateY(34px);
    transition-property: opacity, transform;
    transition-duration: 0.75s;
    transition-timing-function: ease;
  }
  .fade-up.visible { transform: translateY(0); }
}