/* No layout or control changes on a mouse/keyboard device. */
.ss-touch-screen:not([open]),.ss-touch-hint,.ss-touch-thrust{display:none}
.ss-touch .ss-touch-hint{display:block;margin:0;padding:7px 10px;background:#1b3c45;color:#e5f4ef;font-size:13px;font-weight:650;line-height:1.3;text-align:center}
.ss-touch .race-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px}
.ss-touch .race-control[data-hold=gas]{display:none}
.ss-touch .race-control,.ss-touch .mission-layout .control,.ss-touch .mission-boost,.ss-touch .steer-btn{min-width:0;min-height:76px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border-radius:14px;font-size:17px;font-weight:850;line-height:1.15;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px}
.ss-touch .race-control small,.ss-touch .control small,.ss-touch .mission-boost small,.ss-touch .steer-btn small{display:block;font-size:11px;line-height:1.2;font-weight:600;color:inherit;opacity:.9}
.ss-touch .race-control,.ss-touch .control,.ss-touch .mission-boost{white-space:nowrap}.ss-touch .race-control small,.ss-touch .control small,.ss-touch .mission-boost small{white-space:normal}
.ss-touch .mission-layout .controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;background:#102631}
.ss-touch #flightGame .throttle{grid-column:auto;order:2;font-size:16px}
.ss-touch #angleUpBtn{order:0}.ss-touch #angleDownBtn{order:1}.ss-touch .controls #missionBoost{order:3;font-size:16px}
.ss-touch #throttleBtn[aria-pressed=true]{background:#d9ff61;color:#173541;box-shadow:inset 0 0 0 3px #60843b}
.ss-touch .ss-touch-thrust{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ss-touch-thrust button{min-height:48px;min-width:60px;border:1px solid #779995;background:#e3f2ed;border-radius:12px;font-size:28px;font-weight:800;color:#183e42;touch-action:manipulation}
.ss-touch-thrust span{font-size:12px;color:#365d60}.ss-touch-thrust button:disabled{opacity:.4}
.ss-touch #rocketGame .control-card{grid-column:1/-1;padding:8px 10px}
.ss-touch #rocketGame .control-card label{margin:0;font-size:16px}
.ss-touch #rocketGame input[type=range]{height:44px;min-height:44px;touch-action:none;accent-color:#177b6e;margin:0;width:100%}
.ss-touch #rocketGame input[type=range]::-webkit-slider-thumb{min-width:28px;min-height:28px}
.ss-touch #rocketGame .gauge{display:flex;gap:10px;margin-top:5px}
.ss-touch #rocketGame .gauge-item{padding:3px 7px;display:flex;gap:8px;align-items:center;flex:1}
.ss-touch #rocketGame .gauge-item span,.ss-touch #rocketGame .gauge-item strong{font-size:13px}
.ss-touch #rocketGame #thrustTip{font-size:12px;line-height:1.2;margin:4px 0 0;display:block}
.ss-touch #rocketGame .stage-btn{grid-column:span 3;min-height:70px;padding:8px;font-size:17px;line-height:1.2;touch-action:manipulation}
.ss-touch #rocketGame .stage-btn small{font-size:12px;line-height:1.2;display:block;margin-top:5px}
.ss-touch #rocketGame .stage-btn.stage-ready{animation:none;transform:none;box-shadow:inset 0 0 0 3px #e1fc99;background:#d9ff61;color:#173541}
.ss-touch #rocketGame .steer-card{grid-column:span 3;padding:0;background:none;border:0;gap:8px}
.ss-touch #rocketGame .steer-card.show{display:grid;grid-template-columns:1fr 1fr}
.ss-touch #rocketGame .steer-help{display:none}
.ss-touch #rocketGame .steer-btn{width:100%;padding:10px 4px}
.ss-touch #rocketGame.in-space~.ss-touch-hint{display:none}
.ss-touch-open{overflow:hidden;overscroll-behavior:none}
.ss-touch-screen[open]{position:fixed;inset:0;box-sizing:border-box;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;border-radius:0;background:#102631;color:#fff;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;overscroll-behavior:none}
.ss-touch-screen::backdrop{background:#102631}
.ss-touch-screen button{font-family:inherit;cursor:pointer}
.ss-touch-screen button:focus-visible{outline:3px solid #fcf2a9;outline-offset:-4px}
.ss-touch-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#1b3c45;border-bottom:1px solid #436369}
.ss-touch-header>div{flex:1;min-width:0}.ss-touch-header strong{font-size:12px;color:#d9ff61;display:block;line-height:1.3}.ss-touch-header p{font-size:15px;line-height:1.3;margin:3px 0 0;color:#f2f9f6}
.ss-touch-header button,.ss-touch-science-close{min-width:44px;min-height:44px;border:1px solid #729a9e;border-radius:10px;background:#234650;color:#fff;padding:9px 10px;font-size:14px;font-weight:750;touch-action:manipulation}
.ss-touch-content{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.ss-touch-content>*{flex-shrink:0}
.ss-touch-content .race-driving{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.ss-touch-content .race-driving>*{flex-shrink:0}
.ss-touch-content .race-stage,.ss-touch-content>.stage{flex:1;min-height:0;height:auto!important}
.ss-touch-content .stage>svg{height:100%!important;min-height:0!important;max-height:100%;width:100%;display:block}
.ss-touch-content .race-topbar{min-height:50px;padding:3px 10px}.ss-touch-content .race-tools button{min-height:44px}
.ss-touch-content .race-hud>div{padding:6px}.ss-touch-content .race-hud span{font-size:9px;letter-spacing:0}.ss-touch-content .race-hud strong{font-size:18px}.ss-touch-content #boostStatus,.ss-touch-content #batteryStatus{font-size:10px}
.ss-touch-content .race-mission,.ss-touch-content .race-kit-status,.ss-touch-content .mission-status,.ss-touch-content .sun-guide{display:none}
.ss-touch-content .race-controls,.ss-touch-content>.controls{position:static;flex-shrink:0}
.ss-touch-content .race-drive-hint{font-size:12px;top:37px;bottom:auto;max-width:calc(100% - 32px);line-height:1.25}
.ss-touch-content .mission-toolbar{padding:4px 10px;min-height:52px}.ss-touch-content .mission-toolbar>div{flex:1}
.ss-touch-content .mission-toolbar button{min-height:44px;font-size:14px}.ss-touch-content .mission-toolbar span{font-size:11px}
.ss-touch-content .hud .stat{padding:6px}.ss-touch-content .hud .stat span{font-size:10px}.ss-touch-content .hud .stat strong{font-size:14px}
.ss-touch-content .hud .stat strong,.ss-touch-content .control-card,.ss-touch-content .overlay:not(.race-overlay){color:#143d43}
.ss-touch #rocketGame:not(.in-space) #rocketDamageText{display:none}
.ss-touch-content #rocketDamageText{font-size:11px;padding:4px 10px}
.ss-touch-content .overlay:not(.mission-start){max-height:calc(100% - 16px);overflow:auto;z-index:15}
.ss-touch-content .race-panel{max-height:100%}
.ss-touch-content .phase-banner{top:8px;right:8px;left:auto;transform:none;max-width:60%;font-size:12px;padding:6px}
.ss-touch-content .fuel-meter{top:8px;left:8px;width:104px;padding:8px;font-size:12px}
.ss-touch-content .fuel-meter strong{font-size:17px}.ss-touch-content .fuel-meter small{font-size:10px}
.ss-touch-content .rocket-integrity{font-size:12px;padding:6px 8px}
.ss-touch-science[hidden]{display:none}
.ss-touch-science{position:absolute;inset:0;z-index:30;padding:14px;background:#102b36;overflow:auto;overscroll-behavior:contain}
.ss-touch-science-close{position:sticky;top:0;z-index:2;width:100%;background:#d9ff61;color:#173541;font-size:17px;margin-bottom:12px}
.ss-touch-science .race-engine,.ss-touch-science .mission-system{border:0;padding:14px;width:100%}
.ss-touch-science .race-engine canvas,.ss-touch-science .mission-system canvas{width:100%;max-width:320px;height:auto;margin:12px auto;display:block}
.ss-touch-science h2{font-size:22px!important}.ss-touch-science p{font-size:17px!important;line-height:1.5}
@media(max-width:360px){.ss-touch-header{padding:8px;gap:6px}.ss-touch-header p{font-size:14px}.ss-touch-header button{padding:7px;font-size:12px}.ss-touch .race-control,.ss-touch .mission-layout .control,.ss-touch .controls #missionBoost{font-size:14px;min-height:68px}.ss-touch .race-control small,.ss-touch .control small,.ss-touch .mission-boost small{font-size:10px}.ss-touch .race-controls,.ss-touch .mission-layout .controls{gap:5px;padding:7px}.ss-touch-content .race-hud span{font-size:8px}}
@media(max-height:650px) and (orientation:portrait){.ss-touch-header p{font-size:14px}.ss-touch-header{padding:7px 10px}.ss-touch-content .ss-touch-hint{font-size:11px;padding:5px}.ss-touch-content .race-control,.ss-touch-content .control,.ss-touch-content .mission-boost{min-height:64px}.ss-touch-content .controls{padding:6px!important}.ss-touch #rocketGame .control-card{padding:5px 8px}.ss-touch #rocketGame .gauge{margin:3px 0}.ss-touch-content .ss-touch-thrust button{min-height:44px}.ss-touch-content #thrustTip{display:none!important}.ss-touch-content .fuel-meter{padding:5px;width:86px}.ss-touch-content .fuel-meter small{display:none}.ss-touch-content .race-drive-hint{font-size:10px;padding:5px 8px}}
@media(max-height:650px) and (orientation:portrait){
 .ss-touch #rocketGame .control-card{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;align-items:center}
 .ss-touch #rocketGame .control-card label{display:flex;flex-direction:column;align-items:start;font-size:13px;gap:0;line-height:1.2}
 .ss-touch #rocketGame .control-card label output{font-size:18px}
 .ss-touch #rocketGame .control-card input[type=range],.ss-touch #rocketGame .ss-touch-thrust span{display:none}
 .ss-touch #rocketGame .ss-touch-thrust{gap:6px}.ss-touch #rocketGame .ss-touch-thrust button{min-width:0;flex:1}
 .ss-touch #rocketGame .gauge{grid-column:1/-1;margin:0}
 .ss-touch #rocketGame .stage-btn{min-height:62px;font-size:14px}.ss-touch #rocketGame .stage-btn small{font-size:11px}
 .ss-touch #rocketGame .hud{grid-template-columns:1.4fr 1fr 1fr}.ss-touch #rocketGame .hud>.stat:nth-child(3),.ss-touch #rocketGame .hud>.stat:nth-child(5){display:none}
 .ss-touch-content #missionChargeState{display:none}
}
@media(orientation:landscape) and (max-height:600px){
 .ss-touch-header{padding:5px 12px}.ss-touch-header>div{display:flex;align-items:center;gap:12px}.ss-touch-header p{margin:0;font-size:14px}.ss-touch-header strong{font-size:12px;max-width:72px}.ss-touch-header button{min-height:44px}
 .ss-touch-content:has(>.stage),.ss-touch-content .race-driving{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:auto auto minmax(0,1fr);position:relative}
 .ss-touch-content .race-topbar,.ss-touch-content>.mission-toolbar{grid-column:1;grid-row:1;min-height:46px}
 .ss-touch-content .race-hud,.ss-touch-content>.hud{grid-column:1;grid-row:2}
 .ss-touch-content .race-stage,.ss-touch-content>.stage{grid-column:1;grid-row:3;min-width:0;min-height:0}
 .ss-touch-content .race-controls,.ss-touch-content>.controls{grid-column:2;grid-row:1/4;display:grid;grid-template-columns:1fr 1fr;align-content:center;padding:12px 10px 46px!important;border-left:1px solid #436369;gap:10px}
 .ss-touch .mission-layout .ss-touch-content>.controls{grid-template-columns:1fr 1fr}
 .ss-touch-content .ss-touch-hint{position:absolute;bottom:4px;right:2px;width:216px;padding:5px 8px;background:transparent;font-size:11px;box-sizing:border-box}
 .ss-touch .ss-touch-content .race-control,.ss-touch .ss-touch-content .control,.ss-touch .ss-touch-content .mission-boost{min-height:80px}
 .ss-touch-content .race-drive-hint{top:32px;font-size:10px;padding:4px 6px}
 .ss-touch-content .race-hud>div{padding:3px 6px}.ss-touch-content .race-hud progress{margin:2px 0}.ss-touch-content .race-hud strong{font-size:16px}.ss-touch-content .race-hud #boostStatus{font-size:8px}
 .ss-touch #rocketGame .stage-btn{grid-column:1;min-height:64px;font-size:14px}.ss-touch #rocketGame .controls #missionBoost{min-height:64px;font-size:14px}
 .ss-touch #rocketGame .stage-btn small{font-size:10px}.ss-touch #rocketGame .control-card{padding:5px 7px}.ss-touch #rocketGame .gauge-item{padding:2px 4px;gap:4px}.ss-touch #rocketGame .gauge-item span,.ss-touch #rocketGame .gauge-item strong{font-size:11px}.ss-touch #rocketGame #thrustTip{display:none}.ss-touch-content .ss-touch-thrust button{min-width:50px;min-height:44px}.ss-touch-content .ss-touch-thrust span{font-size:10px}
 .ss-touch #rocketGame .steer-card{grid-column:1/3}.ss-touch #rocketGame.in-space .controls #missionBoost{grid-column:1/3}.ss-touch #rocketGame .steer-btn{font-size:16px;min-height:75px}
 .ss-touch-content .fuel-meter{width:82px;padding:5px;font-size:10px;top:4px;left:4px}.ss-touch-content .fuel-meter small{display:none}.ss-touch-content .phase-banner{top:4px;font-size:10px;padding:4px}.ss-touch-content .rocket-integrity{padding:3px;font-size:10px}
}
.ss-touch #rocketGame.in-space .control-card,.ss-touch #rocketGame.in-space .stage-btn{display:none}
