/* v25.14.0 Clean Rebuild Guard
   Purpose: stabilize iPhone vertical layout without changing save/data logic. */
:root{
  --v2514-nav-h: 86px;
  --v2514-safe-bottom: env(safe-area-inset-bottom, 0px);
  --v2514-content-bottom: calc(var(--v2514-nav-h) + var(--v2514-safe-bottom) + 24px);
}
html{
  min-height:100%;
  overflow-x:hidden!important;
}
body{
  min-height:100%;
  overflow-x:hidden!important;
  overscroll-behavior:none;
  touch-action:manipulation;
}
body:not(.battle-active):not(.title-active){
  overflow-y:auto!important;
}
body.battle-active,
body.title-active{
  overflow:hidden!important;
}
.app{
  width:min(100%, 520px)!important;
  min-height:100svh!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  margin-inline:auto!important;
  box-sizing:border-box!important;
}
body.battle-active .app,
body.title-active .app{
  height:100svh!important;
  max-height:100svh!important;
  overflow:hidden!important;
}
.screen{
  box-sizing:border-box!important;
}
.screen.active:not(#titleScreen):not(#gameScreen){
  display:block!important;
  min-height:100svh!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  padding-bottom:var(--v2514-content-bottom)!important;
  pointer-events:auto!important;
}
.screen.active:not(#titleScreen):not(#gameScreen)>.pad,
.screen.active:not(#titleScreen):not(#gameScreen) .homePad,
.screen.active:not(#titleScreen):not(#gameScreen) .stageMapPage,
.screen.active:not(#titleScreen):not(#gameScreen) .prepPad{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:var(--v2514-content-bottom)!important;
  box-sizing:border-box!important;
}
#homeScreen.screen.active{
  overflow-y:auto!important;
  touch-action:pan-y!important;
}
#homeScreen .homePad{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
#homeScreen .homeGrid{
  max-height:none!important;
  overflow:visible!important;
}
#v246BottomNav,
.v246BottomNav,
.bottomNav,
.v2487BottomNav,
.bottomNavV24{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:calc(var(--v2514-safe-bottom) + 8px)!important;
  transform:translateX(-50%)!important;
  width:min(94vw, 500px)!important;
  max-width:500px!important;
  height:74px!important;
  min-height:74px!important;
  z-index:6000!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  contain:layout paint!important;
}
#v246BottomNav *,
.v246BottomNav *,
.bottomNav *,
.v2487BottomNav *,
.bottomNavV24 *{
  pointer-events:auto!important;
}
#v246MorePanel,
.v246MorePanel{
  z-index:6100!important;
  pointer-events:auto!important;
}
#v2594MokoMap:not(.show),
#nyankoEventMapScreen:not(.active),
#stageInfoPopup:not(.show),
.stageInfoPopup:not(.show),
.modalBackdrop:not(.show){
  pointer-events:none!important;
}
body.v2514-event-locked #v2594MokoMap.show{
  display:none!important;
  pointer-events:none!important;
}
#resultScreen .dropFxCard,
#resultScreen .resultDropCard,
#resultScreen .rewardDropCard{
  min-width:0!important;
  overflow:hidden!important;
}
#resultScreen .dropFxCard *,
#resultScreen .resultDropCard *,
#resultScreen .rewardDropCard *{
  max-width:100%!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
#gameScreen .cell,
#gameScreen .puzzleCell,
#gameScreen .damagePopup,
#gameScreen .comboPopup{
  will-change:auto!important;
}
body.light-mode #gameScreen .cell,
body.v2514-lite #gameScreen .cell{
  box-shadow:none!important;
  filter:none!important;
}
body.v2514-lite #gameScreen .cell.selected{
  box-shadow:none!important;
  transform:scale(.96)!important;
}
body.v2514-lite .bossCutinOverlay,
body.v2514-lite .damageFlash,
body.v2514-lite .comboPopup,
body.v2514-lite .skillFx,
body.v2514-lite .particle,
body.v2514-lite .sparkle{
  animation-duration:.18s!important;
  transition-duration:.18s!important;
}
