/* Classroom Edition 3: additions to the original stadium design. */
:root{color-scheme:dark;--muted:#b0c6d6}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffe386;outline-offset:4px}
button:disabled{cursor:default;opacity:.45;transform:none!important}
.edition-label{font-size:.68rem;letter-spacing:.2em;color:#7dd9c1;margin:14px 0 -12px;font-weight:800}
.hero-actions{flex-wrap:wrap}.hero-ball{pointer-events:none}.mode-section{margin:28px 0}.mode-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.mode-card{position:relative;text-align:left;display:flex;flex-direction:column;gap:9px;border:1px solid var(--line);border-radius:20px;padding:20px;background:linear-gradient(145deg,#102f46,#0a2032);color:white;min-width:0;transition:background .2s,border-color .2s}
.mode-card.active{border-color:#72deff;box-shadow:inset 0 0 0 1px #72deff;background:linear-gradient(140deg,#16445b,#0b2f46)}.mode-card.active:after{content:'✓';position:absolute;right:16px;top:16px;color:#7ff1b6}.mode-card b{font-size:1.18rem}.mode-card small{color:#c0d4e1;line-height:1.5}.mode-card em{font-size:.62rem;letter-spacing:.1em;color:#82eac1;font-weight:900;font-style:normal;margin-top:auto}.mode-icon{font-size:1.8rem;line-height:1}.mode-description,.field-note{color:var(--muted);font-size:.8rem;line-height:1.55}
.team-name-inputs{display:block}.team-input-row{display:grid;grid-template-columns:1fr 80px;gap:10px;margin-bottom:10px}.team-input-row input{min-width:0}.field-label small{display:block;font-weight:400;line-height:1.5;margin-top:8px}.classroom-options{margin-top:20px;border:1px solid var(--line);border-radius:18px;background:#0c2438;padding:18px}.classroom-options summary{cursor:pointer;font-weight:800}.classroom-options summary span{font-weight:400;color:var(--muted);font-size:.8rem;margin-left:10px}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding-top:12px}.check-option{display:flex;align-items:flex-start;gap:12px;padding-top:16px;font-size:.85rem}.check-option input{width:21px;height:21px;flex-shrink:0;accent-color:var(--cyan)}.check-option b,.check-option small{display:block}.check-option small{color:var(--muted);line-height:1.5;margin-top:5px}.toggle-row{gap:15px;position:relative}.toggle-row input{display:block;position:absolute;opacity:0;width:1px;height:1px}.toggle-row input:focus-visible+i{outline:3px solid #ffe386;outline-offset:4px}.toggle-row i{flex-shrink:0}.pool-status{font-size:.85rem;color:#b6e7d7;min-height:1.5em;line-height:1.5}
.match-tools{display:flex;align-items:center;gap:8px;padding:9px 22px;background:#0a2234;border-bottom:1px solid var(--line);flex-wrap:wrap;min-height:54px}.match-tools>span:first-child{font-size:.65rem;font-weight:900;letter-spacing:.12em;color:#86e4bd}.match-tools #speakerBadge{font-size:.75rem;color:var(--muted);margin-right:auto}.match-tools .mini-btn{min-height:36px}.game-main{height:calc(100dvh - 130px);min-height:550px}.team-lane{cursor:pointer;border-width:2px}.team-lane.active-turn{border-color:var(--team-color);box-shadow:inset 0 0 30px #0004,0 0 15px #44d8ff15}.team-lane.active-turn:after{content:'YOUR TURN';position:absolute;left:50%;bottom:44px;transform:translateX(-50%);font-size:.54rem;white-space:nowrap;font-weight:900;letter-spacing:.12em;color:var(--team-color);background:#042a1bdd;border-radius:6px;padding:4px 6px}.lane-team{max-width:75%;min-width:0}.lane-team b{overflow-wrap:anywhere}.lane-info{gap:5px}.lane-goal{top:17%;height:22%}.lane-score{flex-shrink:0}.board-meta{gap:14px;line-height:1.4}.letter-tile small{color:#b4d0e2}.letter-tile.empty{visibility:hidden}.letter-tile.used:after{content:attr(data-mark)}.letter-tile.used{opacity:.65}.letter-tile[data-mark='↻']:after{color:#ffd45a}.round-notice{padding:10px 22px;background:#493b19;color:#ffe2a4;font-size:.8rem;line-height:1.5}.class-progress{padding:12px 22px;background:linear-gradient(90deg,#113e38,#0d2940)}.class-progress>div{display:flex;justify-content:space-between;gap:10px;font-size:.76rem;margin-bottom:6px}.class-progress b{color:#99f2c5;letter-spacing:.1em}.class-progress progress{width:100%;height:10px;accent-color:#67efa4}.screen-game:has(.class-progress:not(.hidden)) .game-main{height:calc(100dvh - 200px)}
.question-card{width:min(1000px,96vw);max-height:94dvh}.question-top{padding:12px 18px}.question-body{padding:26px 34px}.question-body h3{font-size:clamp(27px,3.2vw,43px);line-height:1.18;letter-spacing:-.025em;margin-bottom:20px}.q-image-wrap{height:180px;margin-bottom:18px}.question-actions{position:sticky;bottom:0;z-index:3;background:#081f31;display:flex;flex-wrap:wrap}.question-actions>.btn{flex:1;min-height:50px;font-size:.76rem;padding:13px}.question-actions #scoreMove{flex:1.6}.question-tags{flex-wrap:wrap}.learning-flow{text-align:left;background:linear-gradient(110deg,#123849,#0c2b40);border:1px solid #5ed8ad44;border-radius:18px;padding:17px 20px;margin:0 auto 18px;max-width:820px}.phase-track{display:flex;gap:10px;font-size:.66rem;font-weight:900;letter-spacing:.09em;margin-bottom:13px}.phase-track span{padding:5px 10px;border-radius:6px;color:#819da9;border:1px solid #ffffff16}.phase-track span.active{background:#86eac4;color:#04241b;border-color:#86eac4}.learning-flow>b{font-size:clamp(17px,1.5vw,21px);line-height:1.5;display:block}.learning-flow p{font-size:.78rem;color:#bcd4da;margin:10px 0}.learning-flow .btn{padding:11px 14px;font-size:.72rem;min-height:42px}.support-tools{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0}.support-tools .mini-btn{min-height:40px}.hint-panel{border:1px solid #62d9fd44;border-radius:14px;background:#153d54;padding:15px 18px;font-size:1.05rem;line-height:1.5;text-align:left;margin:14px auto;max-width:800px}.feedback-cue{color:#ffe1a2;font-size:.85rem;line-height:1.5;margin:8px 0}.permission-note{font-size:.74rem;color:var(--muted);margin:10px 0 15px}.answer-panel b{font-size:1.12rem;line-height:1.5}.answer-panel p{line-height:1.6}.reveal-btn{min-height:42px}.goal-content{max-width:100%;padding:22px}.goal-content p{line-height:1.6;letter-spacing:.03em;max-width:850px}.goal-actions{flex-wrap:wrap}.goal-word{font-size:clamp(64px,14vw,175px)}#goalExplanation{font-size:.88rem;letter-spacing:0;font-weight:500}.goal-modal{overflow:auto}.help-extra{line-height:1.65;font-size:.9rem}.help-extra p{color:#c4d9e5}
.review-card h2,.summary-card h2,.confirm-card h2{font-size:clamp(27px,4vw,43px);padding-right:26px}.review-card h3{font-size:clamp(23px,3vw,34px);line-height:1.35}.review-image{display:block;max-width:100%;height:165px;object-fit:contain;background:white;border-radius:12px;margin:15px auto}.review-actions{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 5px}.review-actions .btn{font-size:.75rem;min-height:44px}.summary-table-wrap{overflow:auto}.summary-table{width:100%;border-collapse:collapse;font-size:.84rem}.summary-table th,.summary-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.summary-table th{color:#b7d2e2;font-size:.72rem}.summary-table td:first-child{font-weight:800}.summary-card>p{color:#bfd4e2;line-height:1.6;font-size:.9rem}.exit-ticket{background:#173c3b;border:1px solid #79e4b83d;border-radius:16px;padding:20px;margin:22px 0}.exit-ticket b{color:#9defc6;font-size:.7rem;letter-spacing:.12em}.exit-ticket p{line-height:1.6;font-size:1.08rem;margin:10px 0}.exit-ticket small{color:#b7d8cb}.confirm-card{max-width:520px}.app-status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:min(600px,92vw);background:#173c4d;border:1px solid #75d6ed66;color:white;border-radius:14px;padding:13px 20px;box-shadow:0 6px 30px #0008;z-index:120;font-size:.87rem;line-height:1.5;display:none;pointer-events:none}.app-status.show{display:block}.shot-result{pointer-events:none!important}.info-card{scrollbar-gutter:stable}.file-btn:focus-visible{outline:3px solid #ffe386;outline-offset:4px}
body.calm *,body.calm *:before,body.calm *:after{animation:none!important;transition:none!important}body.calm .confetti{display:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}}
@media(max-width:980px){.game-main,.screen-game:has(.class-progress:not(.hidden)) .game-main{height:auto;min-height:0}.arena-panel{min-height:350px}.board-panel{min-height:490px}.match-tools{padding:9px 14px}.mode-card{padding:17px}.stadium-caption{flex-wrap:wrap}.team-lanes{min-height:280px}.team-lanes.count-3,.team-lanes.count-4{min-height:480px}.classroom-options summary span{display:block;margin:8px 0 0}}
@media(max-width:640px){.mode-picker{grid-template-columns:1fr}.mode-card{padding:17px 20px;display:grid;grid-template-columns:36px 1fr;gap:4px 12px}.mode-icon{grid-row:1 / 4}.mode-card small,.mode-card em{grid-column:2}.mode-card em{margin-top:6px}.mode-card.active:after{right:12px;top:12px}.options-grid{grid-template-columns:1fr}.question-body{padding:18px 16px}.modal{padding:10px}.question-card{width:100%;border-radius:21px}.question-top{padding:10px 12px}.question-letter{width:40px;height:40px;flex-shrink:0;font-size:1.1rem}.question-tags span{font-size:.53rem;padding:5px}.learning-flow{padding:14px}.learning-flow>b{font-size:17px}.question-actions{padding:10px;gap:7px}.question-actions .btn{padding:12px 9px;font-size:.65rem;min-width:85px}.question-body h3{font-size:28px}.question-actions #scoreMove{flex:1.3}.support-tools .mini-btn{font-size:.68rem;padding:9px}.info-card{padding:25px 18px}.goal-actions{flex-direction:column}.goal-content h2{font-size:27px}.match-tools #speakerBadge{width:50%;margin-left:auto;text-align:right}.match-tools .mini-btn{flex:1;padding:9px 6px;font-size:.64rem}.turn-chip{min-width:0}.turn-chip b{max-width:145px;overflow-wrap:anywhere;font-size:.75rem}.game-header{height:66px}.header-actions{gap:5px}.header-actions .icon-btn{width:36px;height:38px}.board-panel{min-height:430px}.arena-panel{min-height:320px}.board-head h2{font-size:26px}.team-lanes{min-height:230px}.letter-tile b{font-size:37px}.letter-tile small{font-size:.5rem;left:8px}.letter-board{min-height:300px}.q-image-wrap{height:135px}.class-progress>div{flex-wrap:wrap}.hero-ball{opacity:.35;top:-10px;font-size:65px}.start-hero h1{font-size:64px}.screen-start{padding:28px}.summary-table th,.summary-table td{padding:10px 8px}}

body.calm .stadium-glow,body.calm .noise{display:none}body.calm .topbar,body.calm .game-header,body.calm .lane-team,body.calm .modal-backdrop{backdrop-filter:none}
