/* Gameplay text has two homes: the first 100px and the last 32px.
   World objects keep their geometry and signals; Jolt owns the space between. */
body.is-playing .stage .charge-label{display:none}
body.is-playing .stage .stage-notice{
  top:auto!important;bottom:env(safe-area-inset-bottom)!important;
  left:calc(12px + env(safe-area-inset-left))!important;
  right:calc(198px + env(safe-area-inset-right))!important;
  height:36px;box-sizing:border-box;display:flex;align-items:center;
  font-size:12px;line-height:16px;letter-spacing:0;text-align:left;
  white-space:normal;overflow:hidden;
  background:linear-gradient(90deg,#07121bcc,transparent);padding:0 6px;
}
body.is-playing .stage:has(#lane-controls:not([hidden])) .stage-notice{
  left:calc(198px + env(safe-area-inset-left))!important;
}
body.is-playing .stage .journey-hud{
  top:calc(82px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));
  right:calc(14px + env(safe-area-inset-right));max-width:none;height:22px;
  overflow:hidden;pointer-events:none;
}
body.is-playing .stage .journey-hud>div:first-child{display:flex;gap:10px;align-items:center;height:22px;min-width:0}
body.is-playing .stage .journey-hud b{font-size:12px;letter-spacing:0;flex:none;max-width:44%;overflow:hidden;text-overflow:ellipsis}
body.is-playing .stage #journey-objective{font-size:12px;line-height:20px;max-width:none;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-playing .stage .journey-stage-steps{display:none}
body.is-playing .stage .journey-charge{margin:0;width:100%;height:22px;box-sizing:border-box}
body.is-playing .stage .journey-charge>span{padding:1px 8px;font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-playing .stage .journey-hud:has(.journey-charge:not([hidden]))>div:first-child{display:none}
body.is-playing .stage .transition-cue,
body.is-playing .stage:fullscreen .transition-cue{
  top:calc(82px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));
  right:calc(14px + env(safe-area-inset-right));bottom:auto;width:auto;max-width:none;
  min-height:22px;height:22px;box-sizing:border-box;padding:1px 7px;gap:6px;
  transform:none!important;box-shadow:none;overflow:hidden;border-width:0 0 0 2px;
}
body.is-playing .stage .transition-bolt{display:none}
body.is-playing .stage .transition-cue>div{display:flex;align-items:center;gap:8px;min-width:0;width:100%}
body.is-playing .stage .transition-cue b{font-size:12px;line-height:18px;letter-spacing:0;white-space:nowrap;flex:none;max-width:36%;overflow:hidden;text-overflow:ellipsis}
body.is-playing .stage .transition-cue #transition-control{font-size:12px;line-height:18px;letter-spacing:0;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
body.is-playing .stage:has(.transition-cue.visible) .journey-hud{opacity:0}
body.is-playing .stage:has(.transition-cue.visible) .stage-top{visibility:visible}
body.is-playing .stage:has(#game-overlay:not([hidden])) :is(.journey-hud,.transition-cue,.stage-top,.stage-notice){visibility:hidden}
@media(pointer:coarse),(max-height:600px) and (orientation:landscape){
  body.is-playing .run-header{top:calc(3px + env(safe-area-inset-top));min-height:44px;max-height:44px}
  body.is-playing .progress-row{top:calc(47px + env(safe-area-inset-top));height:10px}
  body.is-playing .progress-row>b{font-size:12px;line-height:14px}
  body.is-playing .stage .stage-controls{top:calc(3px + env(safe-area-inset-top));bottom:auto}
  body.is-playing .stage .stage-top{top:calc(60px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));right:calc(14px + env(safe-area-inset-right));height:20px;align-items:center;overflow:hidden}
  body.is-playing .stage .stage-top>span{font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.is-playing .stage .live-score{display:flex;align-items:center;gap:8px}
  body.is-playing .stage .live-score strong{font-size:14px;line-height:16px}
  body.is-playing .stage .live-score small{font-size:12px;line-height:18px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.is-playing .stage .beat-meter{display:none}
}
body.is-playing .run-title>span{font-size:12px;line-height:14px;letter-spacing:0}
body.is-playing .run-title>b{font-size:14px;line-height:16px}
body.is-playing .stage #touch-action-label,body.is-playing .stage .input-feedback,body.is-playing .stage .zap-action span,body.is-playing .stage .zap-action small,body.is-playing .stage .lane-controls>span{font-size:12px;line-height:14px;letter-spacing:0}
body.is-playing .stage .input-feedback{top:-20px;padding:3px 6px}
body.is-playing .stage .zap-action small{color:#e2d0aa}
body.is-playing .stage .zap-action{gap:1px}
body.is-playing .stage .zap-action b{font-size:20px;line-height:22px}
body.is-playing .stage .rotate-suggestion :is(button,div>span){font-size:14px;line-height:1.4}
body.is-playing .stage .rotate-suggestion b{font-size:16px}
body.is-playing.portrait-blocked .game-overlay{pointer-events:none}
body.is-playing.portrait-blocked .rotate-suggestion{pointer-events:auto}
@media(max-width:700px){
  body.is-playing .stage .live-score small{display:none}
  body.is-playing .stage #mode-label{max-width:65%}
}
@media(orientation:portrait){
  body.is-playing .stage .journey-hud>div:first-child{display:block;height:auto}
  body.is-playing .stage .journey-hud{height:44px}
  body.is-playing .stage .journey-hud b{display:block;max-width:none;line-height:20px}
  body.is-playing .stage #journey-objective{display:block;line-height:20px}
  body.is-playing .stage .transition-cue{height:auto;max-height:52px}
  body.is-playing .stage .transition-cue>div{display:block}
  body.is-playing .stage .transition-cue b{display:block;max-width:none}
  body.is-playing .stage .transition-cue #transition-control{display:block;white-space:normal;line-height:15px}
  body.is-playing .stage:has(#lane-controls:not([hidden])) .stage-notice{left:12px!important;right:12px!important;bottom:calc(96px + env(safe-area-inset-bottom))!important}
}

/* A single 44px pause/menu target protects play space and opens the full menu. */
body.is-playing .stage .stage-controls>button:not(#stage-pause){display:none!important}
body.is-playing .stage #journey-objective{display:none!important}
body.is-playing .stage .journey-hud:not(:has(.journey-charge:not([hidden]))){display:none!important}
