/* Whole-class game layouts; never affect lesson cards or the existing word games. */
.class-game{--cg-ink:#322052;--cg-purple:#713dbb;--cg-line:#e4daef;--cg-green:#217050;display:flex;flex-direction:column;width:100%;height:100%;max-width:1500px;min-height:0;gap:12px;padding:20px 26px;overflow:auto;overscroll-behavior:contain;border-radius:18px;background:#fffdfc;color:var(--cg-ink);outline:none}
.class-game *{box-sizing:border-box}.class-game button{font:inherit;font-weight:750;min-width:48px;min-height:48px;padding:10px 17px;border:2px solid var(--cg-line);border-radius:14px;background:#fff;color:var(--cg-ink);touch-action:manipulation;cursor:pointer}.class-game button:focus-visible{outline:4px solid #e7b535;outline-offset:3px}.class-game button:disabled{cursor:default;opacity:.5}.class-game .cg-primary{background:var(--cg-purple);border-color:var(--cg-purple);color:white}.class-game .cg-header{display:flex;justify-content:space-between;align-items:start;gap:15px;flex:none}.class-game .cg-kicker{margin:0 0 5px;color:var(--cg-purple);font-size:12px;text-transform:uppercase;font-weight:750;letter-spacing:1.4px}.class-game h2{font-size:clamp(23px,2.65vw,38px);line-height:1.08;letter-spacing:-.6px;margin:0 0 7px;color:var(--cg-ink)}.class-game .cg-instruction{font-size:clamp(14px,1.2vw,18px);line-height:1.3;color:#73657f;margin:0}.class-game .cg-header-controls{display:flex;align-items:center;gap:10px;flex:none}.class-game .cg-progress{font-size:14px;font-weight:750;color:var(--cg-purple);background:#f2ebfb;border-radius:20px;white-space:nowrap;padding:9px 12px}.class-game .cg-restart{font-size:14px;white-space:nowrap}.class-game .cg-body{display:flex;align-items:stretch;justify-content:center;min-height:0;flex:1}.class-game .cg-footer{display:flex;align-items:center;justify-content:center;gap:18px;flex:none;min-height:48px}.class-game .cg-footer>p{flex:1;font-size:clamp(15px,1.4vw,20px);font-weight:700;color:var(--cg-purple);text-align:center;margin:0;line-height:1.3}.class-game .cg-footer>button{white-space:nowrap}.class-game .cg-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.class-game .cg-picture{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;min-width:0;padding:9px 12px;border:2px solid #e5dcf1;border-radius:17px;background:#fcf9ff;overflow:hidden}.class-game .cg-picture img{width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;pointer-events:none;flex:1}.class-game .cg-picture strong{font-size:clamp(18px,1.8vw,29px);line-height:1.1;flex:none;font-weight:750;text-align:center}.class-game .cg-missing-board{display:flex;flex-direction:column;gap:12px;width:100%;min-height:0}.class-game .cg-study-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;min-height:0;flex:1}.class-game .cg-study-grid .cg-picture{flex-direction:row;gap:12px}.class-game .cg-study-grid .cg-picture img{width:65%;flex:1}.class-game .cg-study-grid .cg-picture strong{flex:0 1 35%;overflow-wrap:anywhere}.class-game .cg-missing-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f3edfb;border:3px dashed #ae85d8;border-radius:17px;min-height:0;text-align:center;gap:5px;padding:8px}.class-game .cg-missing-tile span{font-size:clamp(42px,6vw,100px);line-height:1;font-weight:800;color:var(--cg-purple)}.class-game .cg-missing-tile strong{font-size:clamp(14px,1.5vw,22px)}.class-game .cg-found{border-color:var(--cg-green);background:#edf9f1}.class-game .cg-missing-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;flex:none}.class-game .cg-missing-choices button{font-size:clamp(18px,1.75vw,27px);padding:10px 6px;overflow-wrap:anywhere}.class-game .cg-missing-choices small{display:block;font-size:11px;font-weight:500;line-height:1.1;margin-top:3px}.class-game .cg-tried{background:#fff0ec;border-color:#e8b5ac}
.class-game .cg-bingo-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.72fr) minmax(0,1fr);gap:18px;width:100%;min-height:0}.class-game .cg-team{display:flex;flex-direction:column;min-width:0;min-height:0;background:#eef7ff;border:2px solid #bfdff0;border-radius:20px;padding:12px}.class-game .cg-team-1{background:#fff0f6;border-color:#edc0d3}.class-game .cg-team header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex:none;margin-bottom:10px}.class-game .cg-team h3{font-size:clamp(20px,2vw,30px);margin:0}.class-game .cg-team header span{font-weight:750;font-size:17px;color:var(--cg-purple);white-space:nowrap}.class-game .cg-bingo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;min-height:0;flex:1}.class-game .cg-bingo-tile{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:48px;padding:9px;overflow:hidden;border-color:#fff}.class-game .cg-bingo-tile img{width:100%;height:100%;object-fit:contain;min-height:0;flex:1;pointer-events:none;user-select:none}.class-game .cg-bingo-tile strong{font-size:clamp(16px,1.6vw,26px);line-height:1.1}.class-game .cg-bingo-tile.cg-marked{border-color:var(--cg-green);background:#e8f8ec;opacity:1}.class-game .cg-mark{position:absolute;top:5px;right:5px;display:grid;place-items:center;background:var(--cg-green);color:white;border-radius:50%;height:30px;width:30px;font-size:22px}.class-game .cg-caller{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;align-items:stretch;text-align:center}.class-game .cg-caller-label{font-size:15px;font-weight:700;color:var(--cg-purple);line-height:1.25;margin:0;flex:none}.class-game .cg-current-word{flex:1;border-color:#efd185;background:#fff9e9;min-height:0}.class-game .cg-call-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;min-height:0;border:3px dashed #e7ca84;border-radius:17px;background:#fff9e9;padding:10px;gap:12px}.class-game .cg-call-placeholder span{font-size:64px;line-height:1;color:#d59c2c}.class-game .cg-call-placeholder strong{font-size:23px;line-height:1.2}.class-game .cg-called{flex:none;display:flex;flex-direction:column;gap:7px}.class-game .cg-called>strong{font-size:13px;color:#796686}.class-game .cg-called>div{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.class-game .cg-called span{font-size:14px;font-weight:700;padding:4px 7px;background:#f0eafa;border-radius:10px;color:var(--cg-purple)}
.class-game .cg-actor-secret{align-self:center;width:100%;text-align:center;background:#f7f0ff;border:3px dashed #c6abdf;border-radius:24px;padding:clamp(16px,3vw,42px)}.class-game .cg-actor-secret>span{font-size:clamp(42px,7vw,90px);line-height:1;color:#c69a34}.class-game .cg-actor-secret h3,.class-game .cg-actor-message h3{font-size:clamp(26px,3.4vw,47px);line-height:1.15;margin:14px 0}.class-game .cg-actor-secret p,.class-game .cg-actor-message p{font-size:clamp(19px,2vw,28px);line-height:1.3;margin:10px auto;max-width:850px}.class-game .cg-actor-secret .cg-small{font-size:clamp(15px,1.4vw,20px);color:#796886}.class-game .cg-act-now{background:#fff8e6;border-color:#e0c987}.class-game .cg-actor-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;width:100%;min-height:0;align-items:stretch}.class-game .cg-actor-card .cg-picture strong{font-size:clamp(27px,3.4vw,48px)}.class-game .cg-actor-message{align-self:center;text-align:center}.class-game .cg-finish{align-self:center;max-width:900px;text-align:center}.class-game .cg-celebrate{font-size:65px;line-height:1;color:#dfa938}.class-game .cg-finish h3{font-size:clamp(27px,3.5vw,47px);line-height:1.15;margin:12px 0}.class-game .cg-finish p{font-size:clamp(17px,1.9vw,26px);line-height:1.4;margin:12px 0}.class-game .cg-word-review{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:18px 0}.class-game .cg-word-review span{background:#f0eafa;color:var(--cg-purple);font-size:22px;font-weight:750;padding:7px 13px;border-radius:18px}.class-game .cg-team-results{display:flex;gap:15px;justify-content:center;margin:15px 0}.class-game .cg-team-results span{padding:10px 16px;border-radius:12px;background:#e9f7ee;color:var(--cg-green);font-weight:700;font-size:22px}
@media(min-width:1500px) and (min-height:850px){.class-game{padding:25px 35px;gap:20px}.class-game button{min-height:60px}.class-game .cg-missing-choices button{min-height:65px}.class-game .cg-bingo-board{gap:28px}.class-game .cg-team{padding:18px}}
@media(max-width:1050px){.class-game{padding:14px 16px;gap:9px}.class-game .cg-header-controls{gap:6px}.class-game .cg-progress{font-size:12px;padding:8px}.class-game .cg-bingo-board{gap:10px;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr) minmax(0,1fr)}.class-game .cg-team{padding:8px}.class-game .cg-bingo-grid{gap:6px}.class-game .cg-bingo-tile{padding:5px}.class-game .cg-team h3{font-size:21px}.class-game .cg-team header span{font-size:14px}.class-game .cg-caller-label{font-size:13px}.class-game .cg-called span{font-size:12px}.class-game .cg-study-grid{gap:8px}.class-game .cg-study-grid .cg-picture{gap:5px;padding:7px}.class-game .cg-missing-choices{gap:6px}.class-game .cg-picture strong{font-size:20px}}
@media(max-width:700px) and (orientation:portrait){.class-game{padding:12px;gap:8px}.class-game h2{font-size:24px;margin-bottom:5px}.class-game .cg-kicker{font-size:10px;letter-spacing:.8px}.class-game .cg-instruction{font-size:13px}.class-game .cg-header-controls{flex-direction:column;gap:5px}.class-game .cg-restart{font-size:12px;padding:8px}.class-game .cg-progress{font-size:11px;white-space:normal;text-align:center}.class-game .cg-study-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:7px}.class-game .cg-study-grid .cg-picture{flex-direction:row}.class-game .cg-study-grid .cg-picture strong{font-size:17px}.class-game .cg-missing-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.class-game .cg-missing-choices button{font-size:18px;padding:8px 5px}.class-game .cg-footer{flex-direction:column;gap:6px}.class-game .cg-footer>p{font-size:14px;flex:none}.class-game .cg-bingo-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(108px,.65fr) minmax(140px,1fr);gap:8px}.class-game .cg-caller{grid-row:1;grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(48px,1fr) auto;gap:4px;align-items:center}.class-game .cg-caller-label{grid-column:2;grid-row:1}.class-game .cg-caller>.cg-picture,.class-game .cg-call-placeholder{grid-column:1;grid-row:1 / 3;height:100%}.class-game .cg-caller>button{grid-column:2;grid-row:2;font-size:16px;padding:8px}.class-game .cg-called{grid-column:1 / -1;grid-row:3;gap:3px}.class-game .cg-called>div{gap:3px}.class-game .cg-called>strong{line-height:1.1}.class-game .cg-called span{font-size:11px;padding:3px 5px}.class-game .cg-called>strong{font-size:11px}.class-game .cg-team{grid-row:2;padding:6px}.class-game .cg-team header{flex-wrap:wrap;gap:4px;margin-bottom:6px}.class-game .cg-team h3{font-size:18px}.class-game .cg-team header span{font-size:12px}.class-game .cg-bingo-tile strong{font-size:14px}.class-game .cg-mark{height:23px;width:23px;font-size:18px}.class-game .cg-actor-card{grid-template-columns:1fr;grid-template-rows:minmax(70px,1fr) auto;gap:10px}.class-game .cg-actor-message h3{font-size:25px;margin:5px 0}.class-game .cg-actor-message p{font-size:16px;margin:5px 0}.class-game .cg-actor-secret{padding:20px 12px}.class-game .cg-actor-secret h3{font-size:28px}.class-game .cg-actor-secret p{font-size:19px}.class-game .cg-celebrate{font-size:48px}.class-game .cg-word-review{gap:6px;margin:12px 0}.class-game .cg-word-review span{font-size:18px;padding:6px 9px}.class-game .cg-team-results{gap:7px}.class-game .cg-team-results span{font-size:17px;padding:8px}}
@media(max-height:650px) and (orientation:landscape){.class-game{padding:9px 14px;gap:7px}.class-game h2{font-size:23px;margin-bottom:4px}.class-game .cg-kicker{font-size:9px;margin-bottom:3px}.class-game .cg-instruction{font-size:12px}.class-game .cg-progress{font-size:12px}.class-game .cg-restart{font-size:12px;padding:7px 10px}.class-game .cg-footer{gap:10px}.class-game .cg-footer>p{font-size:14px}.class-game .cg-footer button{font-size:14px;padding:8px 12px}.class-game .cg-missing-board{gap:7px}.class-game .cg-study-grid{gap:7px}.class-game .cg-study-grid .cg-picture{padding:5px}.class-game .cg-study-grid .cg-picture strong{font-size:18px}.class-game .cg-missing-choices button{font-size:18px;padding:5px}.class-game .cg-missing-tile span{font-size:40px}.class-game .cg-missing-tile strong{font-size:13px}.class-game .cg-bingo-board{gap:10px}.class-game .cg-team{padding:7px}.class-game .cg-team header{margin-bottom:5px}.class-game .cg-team h3{font-size:19px}.class-game .cg-team header span{font-size:13px}.class-game .cg-bingo-grid{gap:5px}.class-game .cg-bingo-tile{padding:5px}.class-game .cg-bingo-tile strong{font-size:16px}.class-game .cg-caller{gap:5px}.class-game .cg-current-word{padding:5px}.class-game .cg-picture strong{font-size:19px}.class-game .cg-caller-label{font-size:12px}.class-game .cg-caller>button{font-size:14px;padding:6px}.class-game .cg-called{gap:4px}.class-game .cg-called span{font-size:11px;padding:3px 5px}.class-game .cg-call-placeholder span{font-size:36px}.class-game .cg-call-placeholder strong{font-size:17px}.class-game .cg-actor-secret{padding:12px}.class-game .cg-actor-secret>span{font-size:40px}.class-game .cg-actor-secret h3{font-size:27px;margin:8px 0}.class-game .cg-actor-secret p{font-size:18px;margin:7px 0}.class-game .cg-actor-message h3{font-size:27px}.class-game .cg-actor-message p{font-size:18px}.class-game .cg-actor-card{gap:18px}.class-game .cg-celebrate{font-size:38px}.class-game .cg-finish h3{font-size:28px;margin:7px 0}.class-game .cg-finish p{font-size:17px;margin:8px 0}.class-game .cg-word-review{gap:6px;margin:10px 0}.class-game .cg-word-review span{font-size:17px;padding:5px 9px}.class-game .cg-team-results{margin:8px 0}.class-game .cg-team-results span{font-size:18px;padding:7px 12px}}
/* Very small screens retain every control through a short scroll instead of clipping. */
@media(max-height:440px) and (orientation:landscape){.class-game .cg-body{flex:none;min-height:215px}.class-game .cg-missing-board{height:215px}.class-game .cg-bingo-board{height:245px}.class-game .cg-actor-card{height:215px}}
@media(max-width:700px) and (orientation:portrait) and (max-height:800px){.class-game{gap:6px;padding:9px 10px}.class-game .cg-header{gap:8px}.class-game h2{font-size:22px;line-height:1.05}.class-game .cg-instruction{font-size:12px;line-height:1.2}.class-game .cg-kicker{font-size:9px;margin-bottom:3px}.class-game .cg-progress{font-size:10px;padding:5px 7px}.class-game .cg-header-controls{gap:3px}.class-game .cg-restart{padding:6px 8px}.class-game .cg-footer{gap:4px}.class-game .cg-footer>p{font-size:12px;line-height:1.2}.class-game .cg-footer button{font-size:14px;padding:8px 10px}.class-game .cg-bingo-board{gap:6px;grid-template-rows:minmax(108px,.7fr) minmax(128px,1fr)}.class-game .cg-team h3{font-size:16px}.class-game .cg-team header{margin-bottom:3px}.class-game .cg-team header span{font-size:11px}.class-game .cg-team{padding:5px}.class-game .cg-bingo-grid{gap:4px}.class-game .cg-bingo-tile{padding:3px;gap:3px}.class-game .cg-bingo-tile strong{font-size:13px}.class-game .cg-caller-label{font-size:11px;line-height:1.15}.class-game .cg-called>strong{font-size:10px}.class-game .cg-called span{font-size:10px;padding:2px 4px}.class-game .cg-current-word{padding:4px}.class-game .cg-current-word strong{font-size:17px}.class-game .cg-missing-board{gap:6px}.class-game .cg-study-grid{gap:5px}.class-game .cg-study-grid .cg-picture{padding:4px}.class-game .cg-study-grid .cg-picture strong{font-size:15px}.class-game .cg-missing-tile{padding:4px}.class-game .cg-missing-tile span{font-size:31px}.class-game .cg-missing-tile strong{font-size:11px}.class-game .cg-missing-choices{gap:4px}.class-game .cg-missing-choices button{font-size:16px;padding:6px 4px}.class-game .cg-missing-choices small{font-size:9px}.class-game .cg-actor-secret{padding:12px 9px}.class-game .cg-actor-secret>span{font-size:34px}.class-game .cg-actor-secret h3{font-size:25px;margin:8px 0}.class-game .cg-actor-secret p{font-size:16px;line-height:1.2;margin:7px 0}.class-game .cg-actor-secret .cg-small{font-size:13px}.class-game .cg-actor-message h3{font-size:23px}.class-game .cg-actor-message p{font-size:14px}.class-game .cg-actor-card .cg-picture strong{font-size:25px}.class-game .cg-actions{gap:6px}}
/* Compact phones use fluid rows; only unusually short portrait windows need a scroll. */
@media(max-width:700px) and (orientation:portrait) and (max-height:570px){.class-game .cg-body{flex:none;min-height:245px}.class-game .cg-missing-board{height:275px}.class-game .cg-bingo-board{height:265px}.class-game .cg-actor-card{height:245px}}
