/* Independent touch controls, including the 40-second jump course. */
.orange{background:#ffa16a}
.course-badge{display:flex;flex-direction:column;gap:2px;margin:18px 0 15px;background:#fff0a5;border:2px solid var(--navy);border-radius:12px;padding:10px;box-shadow:0 3px 0 var(--navy)}
.course-badge strong{font-size:19px}.course-badge span{font-size:11px;font-weight:700}
.play[data-genre="jump"] .feedback{top:16%;font-size:24px}
.play[data-genre="jump"] .combo-badge{top:49px;font-size:10px}
.play[data-genre="jump"] #instruction{font-size:clamp(12px,3.7vw,15px)}
.round-banner.enter{animation-duration:.5s}
#game{object-fit:contain}
.game-window[data-genre="rhythm"] #game{object-fit:fill}
.game-window[data-genre="romance"]{background:#fcebdc}
.lanes{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;touch-action:none}
.lane-button{height:72px;border:3px solid var(--navy);border-radius:12px;box-shadow:0 4px 0 var(--navy);font-size:23px;font-weight:900;background:var(--cyan);touch-action:none;user-select:none;-webkit-user-select:none}
.lane-button:nth-child(2){background:#ff85ba}.lane-button:nth-child(3){background:#ffdd39}.lane-button:nth-child(4){background:#bd9aff}
.lane-button span{display:block;font-size:10px;line-height:1}
.lane-button.pressed{transform:translateY(4px);box-shadow:none;filter:brightness(1.25)}
.choices{display:grid;gap:5px}
.choice-button{width:100%;min-height:43px;background:#fffdf7;color:var(--navy);border:2px solid var(--navy);border-radius:9px;font-size:13px;font-weight:700;padding:8px 10px;line-height:1.35;text-align:left;box-shadow:0 2px 0 #101f4b;touch-action:manipulation}
.choice-button:disabled{opacity:.65}.choice-button.chosen{background:#ffd9e7;opacity:1}.choice-button.correct:disabled{background:#dbf9ee;border-color:#18826d;opacity:1}
.romance-panel{position:absolute;top:9px;left:9px;right:9px;border:2px solid #913e65;background:#fffdf6f5;border-radius:10px;padding:10px 12px;color:#4d2540;box-shadow:0 3px 0 #913e6530;z-index:2}
.romance-panel>b{display:block;color:#bd2860;font-size:12px;letter-spacing:.6px}
.romance-panel p{font-size:14px;font-weight:700;margin:5px 0 0;line-height:1.6;white-space:pre-line}
.romance-panel small{display:block;font-size:10px;margin-top:5px;line-height:1.5}
.hint-button{background:transparent;color:#804968;border:0;padding:7px 0 0;text-decoration:underline;font-size:10px;min-height:26px}
.play[data-genre="romance"] .feedback{top:auto;bottom:24px;font-size:24px}
.play[data-genre="rhythm"] .feedback{top:auto;bottom:22px;font-size:19px}
.play[data-genre="dodge"] .feedback{top:auto;bottom:16px;font-size:22px}
.play[data-genre="parry"] .feedback{top:14%;font-size:26px}
.play .combo-badge{top:53px;bottom:auto;font-size:10px;padding:2px 6px;opacity:.85}
.play[data-genre="romance"] .combo-badge,.play[data-genre="rhythm"] .combo-badge{display:none}
.result-stats{grid-template-columns:repeat(2,1fr);gap:6px}.result-stats>div{display:grid;grid-template-columns:1fr auto;align-items:center;padding:6px 9px}.result-stats span{text-align:left}.result-stats i{grid-column:1/-1}.result-stats small{display:block;grid-column:1/-1;font-size:10px;text-align:left;margin-top:4px;font-weight:700}
.rank-guide{font-size:10px;line-height:1.7;text-align:left;max-width:330px;margin:5px auto 12px}
.rank-guide summary{cursor:pointer;font-weight:700;text-align:center}
.round-banner{font-size:25px}.round-banner.enter{animation-duration:.5s}
@media(min-width:521px){.play{height:min(760px,calc(100svh - 130px));min-height:590px;flex:none}.arcade:has(.play:not([hidden])){min-height:0;height:auto}}
@media(max-width:520px){.play{height:calc(100svh - 78px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:540px}.game-window{min-height:220px}}
@media(max-height:740px) and (max-width:520px){
 .play{height:calc(100svh - 72px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:10px 12px;gap:6px;min-height:510px}
 .game-window{min-height:185px}.play[data-genre="romance"] #instruction{font-size:14px;margin-bottom:5px;min-height:19px}
 .play[data-genre="romance"] #control-help{margin-top:5px;font-size:9px}
 .romance-panel{padding:7px 9px;top:6px;left:6px;right:6px}.romance-panel p{font-size:13px;line-height:1.5}
 .choice-button{min-height:39px;padding:6px 9px;font-size:12px}.lane-button{height:60px}
 .play-top strong{font-size:25px}.stage-bar{font-size:12px}.round-banner{font-size:23px}
}
.revealed .result-actions{animation-delay:.8s}.revealed .best-stamp{animation-delay:1s}@media(max-height:730px){.course-badge{margin:13px 0 12px;padding:8px}.course-badge strong{font-size:17px}}
