#stage{padding:12px;overflow:auto;touch-action:pan-y;justify-content:flex-start}
.challenge{width:100%;max-width:520px;margin:0 auto;min-height:0;flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2dvh,18px);padding:22px 16px;position:relative;text-align:center;border:1px solid var(--color-line);border-radius:var(--radius-xl);background:var(--color-surface);overflow:hidden;flex-shrink:0}
.challenge h1{font-size:clamp(24px,5dvh,34px)}
.challenge h2{font-size:clamp(19px,3.2dvh,24px);line-height:1.25;max-width:400px}
.challenge .instructions{font-size:15px;line-height:1.55;color:var(--color-muted);max-width:370px}
.challenge-clock{position:absolute;top:0;left:0;right:0;height:5px;background:var(--color-line-soft)}
.challenge-clock i{display:block;height:100%;background:var(--me);transform-origin:left;animation:challenge-drain linear forwards}
@keyframes challenge-drain{to{transform:scaleX(0)}}
.challenge-display{width:100%;max-width:320px;display:grid;place-items:center;gap:7px}
.challenge-display.text{font-size:clamp(28px,6dvh,48px);font-weight:800;letter-spacing:.025em;min-height:80px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.challenge-display.compact{font-size:clamp(23px,4.8dvh,32px)}
.challenge-cell{width:100%;min-height:clamp(40px,7dvh,58px);display:grid;place-items:center;font-size:clamp(24px,5dvh,34px);background:var(--color-paper);border:1px solid var(--color-line-soft);border-radius:var(--radius-lg)}
.challenge-cell.marked{background:var(--me-tint);border:2px solid var(--me);color:var(--me)}
.challenge-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:360px}
.challenge-choices.sequence{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.challenge-choice{position:relative;min-height:clamp(62px,11dvh,82px);padding:8px;border:1.5px solid var(--color-line);border-radius:var(--radius-xl);background:var(--color-surface);color:var(--color-ink);font:inherit;font-size:clamp(21px,4dvh,28px);font-weight:750;cursor:pointer;touch-action:manipulation;display:flex;align-items:center;justify-content:center}
.sequence .challenge-choice{font-size:clamp(16px,3dvh,23px)}
.challenge-choice:focus-visible{outline:3px solid var(--me);outline-offset:2px}
.challenge-choice:active:not(:disabled){transform:scale(.96);background:var(--me-tint)}
.challenge-choice:disabled{cursor:default}
.challenge-choice.picked{border:2px solid var(--color-ink);background:var(--color-paper)}
.challenge-choice.used,.challenge-choice.right{border-color:var(--me);background:var(--me-tint);color:var(--me)}
.challenge-choice.used{opacity:.5}
.challenge-choices.blocked{opacity:.55}
.challenge-choice .bar{height:12px;border-radius:3px;background:var(--me);display:block}
.challenge-dots{display:grid;grid-template-columns:repeat(3,8px);gap:4px}
.challenge-dots i{width:8px;height:8px;border-radius:50%;background:var(--color-ink)}
.challenge-position{position:absolute;top:4px;right:7px;font-size:12px;color:var(--me)}
.challenge-feedback{font-size:15px;min-height:22px;font-weight:650;line-height:1.4}
.challenge-feedback.bad{color:var(--color-danger-ink)}
.challenge-feedback.good{color:var(--color-signal-ink)}
.challenge-results{width:100%;max-width:360px;display:flex;flex-direction:column;gap:7px;text-align:left}
.challenge-row{display:flex;gap:8px;align-items:center;font-size:14px;border-bottom:1px solid var(--color-line-soft);padding:6px 0}
.challenge-row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.challenge-row em{font-size:12px;font-style:normal;color:var(--color-muted)}
.challenge-row b{min-width:24px;text-align:right;color:var(--me)}
.challenge-answer{font-size:16px;font-weight:700;line-height:1.4}
@media(max-height:580px){.challenge{gap:10px;padding:16px 12px}.challenge-cell{min-height:36px;font-size:24px}.challenge-choice{min-height:52px}.challenge-display.text{min-height:50px;font-size:28px}}
@media(prefers-reduced-motion:reduce){.challenge-choice:active:not(:disabled){transform:none}}
