/* PopeX v154 — Y-axis-only spacing adjustment based on v150.
 * Strictly no changes to palette, typography, bubbles, cards, mascot,
 * board dimensions, border radii, X positions or game logic.
 * The spare vertical space on tall portrait phones is distributed across
 * header inset, stage separation, inter-row rhythm and tray position.
 * On compact phone heights <=710px, every offset becomes zero. */
@media (orientation:portrait){
  :root{
    /* Equivalent to 58% of the viewport-height excess above 710px,
       capped smoothly. Four parts sum to the total intended drift. */
    --pw154-head-y: clamp(0px, calc(14.5dvh - 102.95px), 35px);
    --pw154-stage-y: clamp(0px, calc(11.6dvh - 82.36px), 28px);
    --pw154-row-y: clamp(0px, calc(5.8dvh - 41.18px), 14px);
    --pw154-rack-y: clamp(0px, calc(14.5dvh - 102.95px), 35px);
  }
  main.moonlit-app{
    padding-top:calc(8px + env(safe-area-inset-top,0px) + var(--pw154-head-y))!important;
  }
  #gameStage{
    margin-top:calc(3px + var(--pw154-stage-y))!important;
    row-gap:var(--pw154-row-y)!important;
  }
  #gameStage>#rack{
    margin-top:calc(clamp(34px,6.2dvh,62px) + var(--pw154-rack-y))!important;
  }
}
@media (orientation:portrait) and (max-height:740px){
  #gameStage{margin-top:calc(2px + var(--pw154-stage-y))!important}
  #gameStage>#rack{margin-top:calc(28px + var(--pw154-rack-y))!important}
}
@media (orientation:portrait) and (max-height:620px){
  #gameStage>#rack{margin-top:calc(16px + var(--pw154-rack-y))!important}
}
