/* =========================================================
   UMEED FINAL HARD FIX - 2026-05-29
   Goal: intro plays, then one natural scroll with NO visible side rail.
   This file must load last.
   ========================================================= */
html,
body{
  width:100% !important;
  max-width:100% !important;
  min-height:100% !important;
  height:auto !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  position:static !important;
  touch-action:pan-y !important;
  overscroll-behavior-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  scroll-behavior:auto !important;
}

/* Lock only while the intro is actually playing. */
body.intro-on{
  overflow:hidden !important;
}
body.intro-done,
body.intro-done html{
  overflow-y:auto !important;
}

main,
body > main,
.page,
.site,
#app{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  position:relative !important;
  transform:none !important;
  contain:none !important;
}

/* Remove the visible right-side scrollbar/rail. Scrolling still works. */
html,
body,
main,
#galleryAlbums,
#albumBody,
#albumModal .albumBody,
.drawer{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
main::-webkit-scrollbar,
#galleryAlbums::-webkit-scrollbar,
#albumBody::-webkit-scrollbar,
#albumModal .albumBody::-webkit-scrollbar,
.drawer::-webkit-scrollbar,
*::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
  background:transparent !important;
}

/* Kill artificial rails and progress bars. */
#progress,
.progress,
.hero-progress,
.scroll-progress,
.scroll-rail,
.scrollRail,
.page-progress,
.progress-rail,
.progressRail,
.custom-scrollbar,
.custom-scroll,
.page-veil,
#elitePreloader,
.preloader,
.loader,
.splash-screen{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Keep the real intro visible until JS finishes it. */
body.intro-on #intro{
  display:grid !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  z-index:999999 !important;
}
body.intro-on main,
body.intro-on header.nav,
body.intro-on footer{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
body.intro-done #intro,
#intro.out,
#intro.hide{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
body.intro-done main,
body.intro-done header.nav,
body.intro-done footer{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Expensive fixed layers create mobile jank when scrolling stops. */
body::before,
body::after,
.blob,
.sectionGlow,
.vignette:not(#intro .vignette){
  display:none !important;
}

.nav{
  position:relative !important;
  top:auto !important;
  transform:none !important;
  will-change:auto !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* Album gate: never show album cards until Explore albums is pressed. */
#galleryAlbums.albumsCollapsed,
#galleryAlbums:not(.albumsOpen){
  display:none !important;
}
#galleryAlbums.albumsOpen{
  display:grid !important;
}

@media (max-width: 768px){
  *{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.12s !important;
  }
  #intro .logo,
  #intro .sweep{
    animation-duration:1.35s !important;
  }
  .card,
  .panel,
  .notice-card,
  .albumCard,
  .media,
  .contactCard,
  .activityWidget,
  .statItem{
    will-change:auto !important;
    transform:none !important;
  }
  .contactCard,
  .albumCard .cap,
  .media .cap,
  .drawer,
  #albumModal .panel,
  #lightbox .panel{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}
