/* Thumb controls, safe areas and a browser-independent game mode. */
.mobile-toolbar{display:none}.touch-controls button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.touch-controls button.is-held{background:#ffc928!important;color:#17202b!important;box-shadow:inset 0 0 0 2px #fff8}.touch-controls button:disabled{opacity:.38}.touch-controls button span{display:block}.touch-controls button .touch-icon{font:23px/1.1 sans-serif}.touch-controls button .touch-label{font:700 10px/1.3 'Roboto Mono',monospace;margin-top:4px}.touch-controls .touch-primary{border-color:#ffcc00!important;background:#ffcc00!important;color:#15202a!important}.touch-controls .touch-primary.is-held{background:#fff0a3!important}.touch-controls button:focus{outline:none}.touch-controls button:focus-visible{outline:2px solid white}
body.game-focused{overflow:hidden;overscroll-behavior:none}body.game-focused .machine,.machine:fullscreen{position:fixed;inset:0;z-index:1000;width:100%;height:100dvh;max-height:100dvh;background:#101923;display:flex;flex-direction:column;align-items:center;border:0;overflow:hidden;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);box-sizing:border-box}body.game-focused .machine-label,.machine:fullscreen .machine-label,body.game-focused .control-strip,body.game-focused .controls,.machine:fullscreen .control-strip,.machine:fullscreen .controls{display:none}body.game-focused .mobile-toolbar,.machine:fullscreen .mobile-toolbar{display:flex}body.game-focused .screen,.machine:fullscreen .screen{position:relative;flex:none;min-height:0;width:var(--play-width,100%);height:var(--play-height,auto);max-width:100%;max-height:100%;margin:auto;aspect-ratio:auto}body.game-focused canvas#game,.machine:fullscreen canvas#game{width:100%;height:100%;object-fit:contain}.mobile-toolbar{flex:none;width:100%;min-height:46px;align-items:center;gap:6px;padding:2px 8px;background:#152330;color:#c0ced9;z-index:8}.mobile-toolbar button{min-width:44px;height:44px;padding:0 10px;border:1px solid #526675;background:#233847;color:#fff;border-radius:8px;font-size:18px}.mobile-toolbar .mobile-back{display:none;font:11px 'Roboto Mono',monospace;min-width:98px}.mobile-toolbar .mobile-tip{margin-right:auto;font-size:10px;line-height:1.4}.game-focused .mobile-back,.machine:fullscreen .mobile-back{display:block}.game-focused .mobile-expand,.machine:fullscreen .mobile-expand{display:none}
.mobile-game .app{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));max-width:100%}.mobile-game .mobile-toolbar{display:flex}.mobile-game .topbar,.mobile-game header{height:68px}.mobile-game .edition{display:none}.mobile-game .top-actions button,.mobile-game .tools button{min-width:44px;height:44px}.mobile-game .touch-controls,.mobile-game .touch-controls.playing{position:relative;inset:auto;display:flex;flex:none;width:100%;min-height:132px;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#182633;border-top:1px solid #445869;pointer-events:auto}.mobile-game .touch-controls .touch-move{display:grid;grid-template-columns:repeat(2,minmax(50px,1fr));gap:8px;flex:0 0 34%;max-width:170px}.mobile-game .touch-controls .touch-actions{display:grid;grid-template-columns:repeat(3,minmax(48px,1fr));gap:8px;flex:1;max-width:240px}.mobile-game .touch-controls button{width:100%;min-width:48px;min-height:56px;height:56px;border:1px solid #7593a7;border-bottom:3px solid #5a7489;background:#294252;color:#f4f0df;border-radius:12px;margin:0;padding:5px;font-weight:700}.mobile-game .touch-controls .touch-move button{height:88px;font-size:29px}.mobile-game .touch-controls .touch-actions.kind-actions{grid-template-columns:repeat(2,minmax(62px,1fr));max-width:200px}.mobile-game .kind-actions button{height:88px}.mobile-game .touch-controls .touch-actions.kind-actions .touch-label{font-size:12px}.mobile-game .control-strip,.mobile-game .controls{display:none}.mobile-game .screen{min-height:0}.mobile-game .primary{min-height:48px;padding:12px 16px;font-size:12px;letter-spacing:.4px}.mobile-game .overlay{overflow-y:auto;padding:20px;background:linear-gradient(90deg,#0b1728e8 0%,#0b1728b0 43%,#0b172825 85%)}.mobile-game .overlay h1,.mobile-game h1{font-size:clamp(24px,5vw,38px);line-height:1.13}.mobile-game .overlay p{font-size:12px;line-height:1.6;margin:14px 0 18px;max-width:70%}.mobile-game .intro-tag{display:none}.mobile-game .overlay-hint,.mobile-game #overlay-hint{display:none}.mobile-game .hud{inset:14px 14px auto}.mobile-game .hud-name,.mobile-game .hud-name b,.mobile-game .calm b{font-size:10px;letter-spacing:0}.mobile-game .hud-name span,.mobile-game .calm b span{display:inline}.mobile-game .hud .player-hud,.mobile-game .hud .calm{width:36%;max-width:none}.mobile-game .hud .score-hud,.mobile-game .hud .score{padding-right:0;width:27%}.mobile-game .hud .score-hud button,.mobile-game .hud .score button{display:none}.mobile-game .hud .score-hud>b,.mobile-game .hud .score>b{font-size:18px;letter-spacing:1px}.mobile-game .hud .score-hud>span,.mobile-game .hud .score>small{font-size:8px}.mobile-game .center-hud b,.mobile-game .chapter b{font-size:24px}.mobile-game .center-hud span,.mobile-game .chapter span{font-size:8px;letter-spacing:.7px}.mobile-game .energy-label,.mobile-game .calm small{font-size:7px;line-height:1.5;letter-spacing:0}.mobile-game .health-track,.mobile-game .track{height:12px}.mobile-game .boss-hud{top:79px;left:27%;right:27%}.mobile-game .boss-hud>div:first-child{font-size:8px}.mobile-game .screen-bottom{bottom:10px;font-size:8px;left:10px;right:10px}.mobile-game .screen-bottom span:first-child{display:none}.mobile-game .screen-bottom{justify-content:flex-end}.mobile-game .mission-bar{width:100%;flex:none;gap:10px;padding:12px 15px}.mobile-game .mission-bar span{font-size:9px;margin-bottom:5px;letter-spacing:.5px}.mobile-game .mission-bar b{font-size:17px}.mobile-game .mission-bar p{font-size:12px;line-height:1.5;margin-top:6px}.mobile-game .mission-count{font-size:19px}.mobile-game #toast{font-size:12px;bottom:20px;padding:10px 12px;max-width:92%;width:max-content}.mobile-game .cast-card b{font-size:11px}.mobile-game .cast-card small{font-size:9px}.mobile-game .route-stop b,.mobile-game .route-card b{font-size:13px}.mobile-game .route-stop small,.mobile-game .route-card small{font-size:8px;line-height:1.5}.mobile-game .route-heading,.mobile-game .section-caption b{font-size:10px}.mobile-game .product-note p{font-size:11px}.mobile-game .product-note b{font-size:12px}.mobile-game footer{font-size:9px;line-height:1.6}.mobile-game footer button,.mobile-game footer a{font-size:10px;min-height:44px;display:flex;align-items:center}.mobile-game footer>span{max-width:50%}.mobile-game .share{min-height:44px;font-size:10px}.mobile-game .loading{padding:20px;font-size:12px;line-height:1.6}.mobile-game dialog{max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);width:min(460px,calc(100% - 24px));overflow:auto;overscroll-behavior:contain;padding:24px;border-radius:18px;margin:auto}.mobile-game dialog .close,.mobile-game #close-help{min-width:44px;width:44px;min-height:44px;height:44px;top:8px;right:8px;font-size:28px;z-index:2}.mobile-game dialog button.wide{min-height:52px;font-size:14px}.mobile-game dialog .vehicle{min-height:74px}.mobile-game .phone-top{padding-right:37px;margin-bottom:22px}.mobile-game dialog h2{font-size:26px}.mobile-game dialog p{font-size:14px}.mobile-game .payment-disclaimer{font-size:11px!important}
.portrait-game .machine-label{font-size:8px}.portrait-game .machine-label span:nth-child(2){display:none}.portrait-game .overlay h1,.portrait-game h1{font-size:30px}.portrait-game .overlay p{max-width:85%;font-size:13px}.portrait-game .overlay{justify-content:flex-start;padding-top:25px}.portrait-game .primary{margin-top:auto}.portrait-game .overlay #share:not([hidden]){margin-top:8px}.portrait-game .touch-controls{padding-bottom:max(12px,env(safe-area-inset-bottom))}.portrait-game .route-stops,.portrait-game .route-cards{gap:6px}.portrait-game .route-stop,.portrait-game .route-card{flex-wrap:wrap;padding:12px 8px;gap:8px}.portrait-game .station-state,.portrait-game .route-card i{display:none}.portrait-game .cast{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-game .cast-card canvas{max-height:160px;object-fit:contain}.portrait-game .product-note{align-items:flex-start}.portrait-game .mission-bar{min-height:98px}
.landscape-game body.game-focused .screen{margin:auto}.landscape-game body.game-focused .touch-controls,.landscape-game .machine:fullscreen .touch-controls{position:absolute;inset:46px 0 0;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:0;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));background:none;border:0;pointer-events:none}.landscape-game body.game-focused .touch-controls .touch-move,.landscape-game .machine:fullscreen .touch-controls .touch-move{width:116px;flex:0 0 116px;gap:8px;pointer-events:auto}.landscape-game body.game-focused .touch-controls .touch-actions,.landscape-game .machine:fullscreen .touch-controls .touch-actions{width:136px;flex:0 0 136px;grid-template-columns:repeat(2,64px);gap:8px;pointer-events:auto}.landscape-game body.game-focused .touch-controls button,.landscape-game .machine:fullscreen .touch-controls button{height:56px;min-height:56px}.landscape-game body.game-focused .touch-controls .touch-move button{height:82px}.landscape-game body.game-focused .mission-bar,.landscape-game .machine:fullscreen .mission-bar{padding:6px 148px 8px 130px;min-height:0;max-height:72px;background:#172633}.landscape-game body.game-focused .mission-bar b{font-size:12px}.landscape-game body.game-focused .mission-bar p{font-size:10px;line-height:1.3;margin-top:3px}.landscape-game body.game-focused .mission-bar span{display:none}.landscape-game body.game-focused .overlay{padding:16px;justify-content:center}.landscape-game body.game-focused .overlay p{font-size:10px;line-height:1.4;margin:8px 0 10px;max-width:90%}.landscape-game body.game-focused h1{font-size:25px}.landscape-game body.game-focused .primary{font-size:10px;min-height:44px;padding:9px 12px}.landscape-game body.game-focused .hud{inset:8px 9px auto}.landscape-game body.game-focused .hud-name,.landscape-game body.game-focused .hud-name b,.landscape-game body.game-focused .calm b{font-size:8px}.landscape-game body.game-focused .center-hud b,.landscape-game body.game-focused .chapter b{font-size:18px}.landscape-game body.game-focused .center-hud span,.landscape-game body.game-focused .chapter span{font-size:6px}.landscape-game body.game-focused .energy-label,.landscape-game body.game-focused .calm small{font-size:6px}.landscape-game body.game-focused .hud .score-hud>b,.landscape-game body.game-focused .hud .score>b{font-size:14px}.landscape-game body.game-focused #toast{font-size:9px;padding:6px;bottom:6px}.landscape-game body.game-focused .boss-hud{top:62px}.landscape-game body.game-focused .boss-hud>div:first-child{font-size:6px}.landscape-game body.game-focused .screen-bottom{font-size:6px;bottom:6px}.landscape-game dialog{width:min(580px,calc(100% - 30px));padding:18px 25px}.landscape-game .phone-icon{width:48px;height:48px;font-size:27px;margin-bottom:10px}.landscape-game .phone-top{margin-bottom:12px}.landscape-game dialog h2{font-size:22px;margin:9px 0}.landscape-game dialog p{font-size:12px;margin:8px 0}.landscape-game .payment-disclaimer{padding-top:8px;margin-top:10px}
@media(max-width:350px){.mobile-game .touch-controls{gap:8px;padding:10px}.mobile-game .touch-controls .touch-move{flex-basis:32%;gap:6px}.mobile-game .touch-controls .touch-actions{gap:6px}.mobile-game .touch-controls button .touch-label{font-size:9px}.mobile-game .hud-name span{display:none}.mobile-game .calm b span{display:none}.portrait-game h1,.portrait-game .overlay h1{font-size:25px}.portrait-game .overlay p{font-size:12px}.mobile-game .mission-bar b{font-size:15px}.mobile-game .mobile-toolbar .mobile-tip{font-size:8px}.mobile-game .brand b{font-size:15px}}

/* One left-thumb pad: jump above left/right. Actions stay under the right thumb. */
.mobile-game .touch-controls .touch-move{grid-template-columns:repeat(2,minmax(48px,1fr));grid-template-rows:56px 56px;gap:7px;max-width:156px;flex-basis:40%}
.mobile-game .touch-controls .touch-move button{height:56px;min-height:56px}
.mobile-game .touch-controls .touch-move .touch-jump{grid-column:1 / -1;grid-row:1;width:calc(50% - 3.5px);justify-self:center}
.mobile-game .touch-controls{min-height:146px;gap:12px}
.mobile-game .touch-controls .touch-actions{grid-template-columns:repeat(3,minmax(48px,1fr));gap:6px}
.mobile-game .touch-controls .touch-actions.kind-actions{grid-template-columns:1fr;max-width:130px}
.mobile-game .touch-controls .touch-actions.kind-actions button{height:100px}
.landscape-game body.game-focused .touch-controls .touch-move,.landscape-game .machine:fullscreen .touch-controls .touch-move{width:116px;flex-basis:116px;gap:7px}
.landscape-game body.game-focused .touch-controls .touch-move button,.landscape-game .machine:fullscreen .touch-controls .touch-move button{height:56px}
.landscape-game body.game-focused .touch-controls .touch-actions,.landscape-game .machine:fullscreen .touch-controls .touch-actions{grid-template-columns:repeat(2,64px)}
.landscape-game body.game-focused .touch-controls .kind-actions,.landscape-game .machine:fullscreen .touch-controls .kind-actions{grid-template-columns:1fr;max-width:116px}
@media(max-width:350px){.mobile-game .touch-controls .touch-move{flex-basis:36%;gap:6px}.mobile-game .touch-controls{gap:8px}.mobile-game .touch-controls .touch-actions{gap:5px}}
