.formula {font-size:clamp(1.35rem,4vw,3rem);overflow-wrap:anywhere;line-height:1.35}
.answer {overflow-wrap:anywhere;min-width:0;font-size:clamp(1rem,2.2vw,1.5rem)}
.variety-dots {display:grid;grid-template-columns:repeat(5,1fr);gap:12px;max-width:320px;margin:20px auto;font-size:2rem}
.variety-option,.variety-reveal {white-space:pre-wrap;line-height:1.5;overflow-wrap:anywhere;letter-spacing:normal}
.variety-option {font-size:1rem!important;min-height:56px;font-family:monospace}
.lab-feedback button {display:block;margin:18px auto 0;min-height:44px}
.lab-prompt p {font-size:1rem;line-height:1.5}
.variety-preview[hidden],.variety-controls[hidden] {display:none!important}
.lab-card {max-height:90vh;overflow:auto}

/* The legacy session shell renders the round content as siblings inside .session-top.
   Reflow those siblings into the intended stacked layout so the game cannot be
   squeezed into a narrow flex column on phones. */
.session-top {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 14px;width:100%;min-width:0}
.session-top>.back-button {grid-column:1;grid-row:1;justify-self:start;min-width:0}
.session-top>.session-time {grid-column:2;grid-row:1;justify-self:end;white-space:nowrap}
.session-top>.stage-track {grid-column:1/-1;grid-row:2;width:100%;min-width:0}
.session-top>:not(.back-button):not(.session-time):not(.stage-track) {grid-column:1/-1;width:100%;min-width:0}
.session-top>.game-panel {justify-self:stretch}
.session-top>.session-bottom {justify-self:stretch}

@media(max-width:620px){
  .session-shell {width:100%;max-width:none;padding-top:18px}
  .session-top {gap:0 10px}
  .session-top>.back-button {font-size:.8rem}
  .session-top>.session-time {font-size:.8rem}
  .session-top>.game-panel {border-radius:15px}
  .session-top>.game-panel .game-meta {padding:15px 17px}
  .session-top>.game-panel .game-body {padding:23px 18px 25px}
  .session-top>.game-panel .game-body h1 {font-size:clamp(1.8rem,9vw,2.2rem)}
  .session-top>.game-panel .play-zone {min-height:210px;margin:20px 0 17px}
  .session-top>.game-panel .answers {width:100%;gap:10px}
  .session-top>.game-panel .answer {min-height:62px}
}
.numeric-answer-form{width:min(100%,540px);margin:26px auto 0;text-align:left;display:grid;gap:10px}.numeric-answer-form>label{font-size:.82rem;font-weight:700;color:var(--text)}.numeric-entry-row{display:flex;align-items:stretch;gap:10px}.numeric-entry-row input{min-width:0;flex:1;min-height:51px;border:1px solid #5a6565;border-radius:12px;background:#151b1c;color:var(--text);font:600 1.14rem var(--heading);padding:11px 15px}.numeric-entry-row input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.numeric-entry-row button{min-height:51px;white-space:nowrap}.numeric-answer-form>small{font-size:.72rem;color:var(--muted);line-height:1.5}.numeric-review{display:flex;gap:12px;justify-content:center;margin-top:24px}.numeric-review>div{flex:1;max-width:215px;min-width:0;padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.numeric-review span{display:block;font-size:.73rem;color:var(--muted)}.numeric-review strong{display:block;font:600 1.45rem var(--heading);margin-top:8px;overflow-wrap:anywhere}
@media(max-width:560px){.numeric-entry-row{flex-direction:column}.numeric-entry-row input,.numeric-entry-row button{width:100%}}
