/* Game-only input containment. Parent notes retain normal document scrolling.
   Sheets scroll with one finger; two fingers never zoom the browser page. */
html:has(body.game-page){touch-action:pan-y}
body.game-page{position:fixed;inset:0;width:100%;height:100%;touch-action:pan-y;-webkit-touch-callout:none}
body.game-page *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
body.game-page :is(.shop-sheet,.album-book,.credits-card,.calm-panel){touch-action:pan-y;overscroll-behavior:none}

/* Safari toolbars can reduce a mini's landscape height below 700 CSS px.
   The 700 x 600 boundary keeps the original phone portrait rules untouched. */
@media (min-width:700px) and (min-height:600px){
 body.game-page{--tablet-edge:24px}
 body.game-page #everyday-hud{top:calc(env(safe-area-inset-top,0px) + 18px);left:max(24px,env(safe-area-inset-left,0px));right:max(24px,env(safe-area-inset-right,0px));max-width:760px;gap:12px}
 body.game-page .energy-block{padding:12px 16px;min-width:150px}
 body.game-page .energy-block label{font-size:18px;margin-bottom:7px}
 body.game-page #energy{height:11px}
 body.game-page #open-bag{min-height:64px;min-width:124px;padding:12px 16px;font-size:22px;gap:10px}
 body.game-page #bag-count{font-size:17px;min-width:28px}
 body.game-page #sound-toggle,body.game-page #open-album{width:64px;height:64px}
 body.game-page #sound-toggle svg,body.game-page #open-album svg{width:32px;height:32px}
 body.game-page #caption,body.game-page[data-safety-area=road] #caption{top:calc(env(safe-area-inset-top,0px) + 98px);left:max(24px,env(safe-area-inset-left,0px));right:max(24px,env(safe-area-inset-right,0px));max-width:900px;min-height:48px;padding:10px 18px;font-size:22px;line-height:29px;white-space:normal;height:auto}
 body.game-page #scene-labels{left:max(24px,calc((100vw - 760px)/2));right:max(24px,calc((100vw - 760px)/2))}
 body.game-page .scene-label-slot span{font-size:18px}
 body.game-page #movie-route{left:max(24px,env(safe-area-inset-left,0px));width:156px;padding:10px 12px;font-size:15px;line-height:20px}
 body.game-page #movie-route .mr-head b,body.game-page #movie-route .mr-count{font-size:14px}
 body.game-page #movie-route .mr-now,body.game-page #movie-route .mr-stars{font-size:17px;line-height:22px}
 body.game-page #movie-route .mr-dots{margin:9px 0}
 body.game-page #track-toast,body.game-page #toast-space{right:max(24px,env(safe-area-inset-right,0px));width:320px;max-width:320px;font-size:16px;line-height:22px}
 body.game-page #action-bar{left:max(24px,env(safe-area-inset-left,0px));right:max(24px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 18px);max-width:760px;padding:16px;border-radius:22px}
 body.game-page .action-heading,body.game-page #action-bar[data-choice=true] .action-heading{font-size:19px;line-height:25px;margin-bottom:10px;min-height:25px}
 body.game-page .action-list{gap:12px;min-height:84px;grid-template-columns:repeat(2,minmax(0,1fr))}
 body.game-page .action-list button,body.game-page #action-bar[data-choice=true] .action-list button{font-size:21px;line-height:1.3;min-height:84px;padding:12px;gap:10px}
 body.game-page .action-list button>span:first-child{font-size:28px}
 body.game-page .action-list button.card-listen{width:54px;padding:12px;flex:none}
 body.game-page .card-listen svg{width:27px;height:27px}
 body.game-page .action-list button>img.action-image{width:58px;height:44px}
 body.game-page #signalbar,body.game-page #crossing-awareness{bottom:calc(var(--action-bar-height,250px) + env(safe-area-inset-bottom,0px) + 32px)!important}
 body.game-page #crossing-awareness{left:max(24px,calc((100vw - 760px)/2));right:max(24px,calc((100vw - 760px)/2));height:42px!important}
 body.game-page #crossing-awareness>div,body.game-page #crossing-awareness b,body.game-page #crossing-awareness .traffic-state{font-size:16px}
 body.game-page #urge-meter{bottom:calc(var(--action-bar-height,250px) + env(safe-area-inset-bottom,0px) + 34px);font-size:18px;padding:10px 16px}
 body.game-page .start-inner{max-width:600px;padding:24px 40px}
 body.game-page .start-inner h1{font-size:54px;margin-bottom:40px}
 body.game-page .start-sub{font-size:23px;line-height:1.55}
 body.game-page .camera-help{font-size:18px;line-height:1.5;margin-bottom:20px}
 body.game-page #startBtn{font-size:28px;max-width:460px;margin:auto}
 body.game-page #credits-link{font-size:17px;min-height:48px}
 body.game-page #album-dialog[open],body.game-page #music-credits{padding:calc(env(safe-area-inset-top,0px) + 24px) max(24px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 24px) max(24px,env(safe-area-inset-left,0px))}
 body.game-page .album-book{max-width:650px;padding:28px}
 body.game-page .album-book h2,body.game-page .calm-panel h2{font-size:36px}
 body.game-page .movie-eyebrow{font-size:15px}
 body.game-page .album-photo img{height:min(38vh,440px)}
 body.game-page .album-photo figcaption{font-size:25px}
 body.game-page .album-navigation{font-size:19px}
 body.game-page .album-book button{min-width:54px;min-height:54px}
 body.game-page .moment-sticker{font-size:17px;max-width:210px}
 body.game-page .calm-panel{max-width:480px;max-height:calc(100% - 64px);overflow:auto;padding:28px 36px;margin:32px}
 body.game-page .calm-panel>p:not(.movie-eyebrow){font-size:20px}
 body.game-page #calm-hold{width:240px;height:240px;font-size:28px;margin:30px auto}
 body.game-page #calm-hold small,body.game-page .calm-help{font-size:17px!important}
 body.game-page #grocery-modal{inset:calc(env(safe-area-inset-top,0px) + 166px) 0 0;align-items:center;padding:16px max(24px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 24px) max(24px,env(safe-area-inset-left,0px))}
 body.game-page .shop-sheet{max-width:740px;max-height:100%;padding:28px}
 body.game-page .shop-sheet h2,body.game-page #checkout-panel h2{font-size:36px}
 body.game-page .eyebrow{font-size:14px}
 body.game-page .shop-intro,body.game-page .muted{font-size:19px}
 body.game-page .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 body.game-page .product-card strong{font-size:20px}
 body.game-page .product-card span,body.game-page .product-card b,body.game-page .bag-row span,body.game-page .bag-row b{font-size:16px}
 body.game-page .product-card img{height:150px}
 body.game-page .product-detail h3,body.game-page .bag-row strong{font-size:23px}
 body.game-page .choice-note{font-size:20px}
 body.game-page .shop-btn{font-size:22px;min-height:64px}
 body.game-page .shop-btn.quiet{font-size:19px;min-height:54px}
 body.game-page .small-shop{font-size:18px;min-height:54px}
 body.game-page .close-shop{width:54px;height:54px}
 body.game-page #target-status,body.game-page #target-help-card{right:max(24px,env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 240px);width:240px;max-width:240px;font-size:18px;padding:14px}
 body.game-page #target-status span{font-size:16px}
 body.game-page #target-help-card small{font-size:13px}
 body.game-page #target-help-card b{font-size:28px}
 body.game-page #music-credits .credits-card{max-width:680px;font-size:18px;line-height:1.5}
 body.game-page #music-credits h2{font-size:25px}
 body.game-page #music-credits .credits-note{font-size:16px}
 body.game-page #music-credits .credits-close{min-height:54px;font-size:20px}
 body.game-page #station-stars b{font-size:18px;line-height:24px}
 body.game-page #station-stars .ss-count{font-size:23px;line-height:30px}
}
@media (min-width:700px) and (min-height:600px) and (orientation:landscape){
 body.game-page #action-bar{max-width:1080px}
 body.game-page .action-list{grid-template-columns:repeat(4,minmax(0,1fr));min-height:90px}
 body.game-page #action-bar:has(.action-card:nth-child(2):last-child){max-width:760px}
 body.game-page .action-list:has(.action-card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
 body.game-page #action-bar:has(.action-card:nth-child(3):last-child){max-width:1000px}
 body.game-page .action-list:has(.action-card:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
 body.game-page .action-list button,body.game-page #action-bar[data-choice=true] .action-list button{min-height:90px;font-size:20px;padding:10px;gap:8px}
 body.game-page .action-list button.card-listen{padding:10px;width:48px}
 body.game-page .action-list button>img.action-image{width:48px;height:38px}
 body.game-page .album-book{max-width:640px}
 body.game-page .album-photo img{height:32vh}
 body.game-page .album-page{min-height:0}
 body.game-page .calm-panel{padding:22px 32px}
 body.game-page #calm-hold{width:210px;height:210px;margin:24px auto}
}
@media (min-width:700px) and (min-height:600px){
 body.game-page #action-bar:has(.action-card:only-child){max-width:460px}
 body.game-page .action-list:has(.action-card:only-child){grid-template-columns:minmax(0,1fr)}
}
