@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900&display=swap');
:root{font-family:Nunito,ui-rounded,system-ui,sans-serif;color:#203241;background:#f8f6ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #142d83;outline-offset:4px}button{border:0;border-radius:14px;font-weight:900;padding:12px 20px}button:disabled{opacity:.5}.shell{max-width:1180px;margin:auto;padding:22px 38px;min-height:100svh}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:18px}.brand-icon{display:grid;place-items:center;background:#204d47;color:#fff;width:37px;height:37px;border-radius:13px;transform:rotate(-7deg)}header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.quiet,.back{background:#fff;border:1px solid #dce3df;color:#35464f;text-decoration:none;font-size:14px;border-radius:12px;padding:10px 14px}.eyebrow{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#52726a;font-weight:900}h1{font-size:clamp(30px,4vw,46px);line-height:1.1;margin:10px 0 14px;letter-spacing:-.04em}h2{margin:0;font-size:26px}.muted{color:#5d6d72;font-size:14px;line-height:1.5}.setup-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.panel{background:white;border:1px solid #e1e4da;border-radius:22px;padding:24px}.hero{background:#e2eee5;position:relative;overflow:hidden;padding:30px;border-radius:24px;min-height:220px;margin-bottom:22px}.hero p{max-width:440px}.hero-symbol{position:absolute;right:38px;bottom:20px;font-weight:900;font-size:72px;color:#387466;transform:rotate(8deg);opacity:.25}.tabs{display:flex;gap:7px;background:#eef1ec;border-radius:14px;padding:5px;margin-bottom:20px}.tabs button{flex:1;background:transparent;padding:11px 8px;color:#53605e;font-size:14px}.tabs button.active{background:#fff;box-shadow:0 2px 5px #24382c15;color:#203f38}label.field{display:block;font-size:13px;font-weight:900;margin:15px 0 7px}select{width:100%;background:white;border:1px solid #cbd6d0;border-radius:12px;padding:11px}.unit-list{max-height:233px;overflow:auto;margin-top:14px;display:grid;gap:7px}.unit-row{display:flex;align-items:center;gap:10px;border:1px solid #e1e6de;border-radius:12px;padding:11px}.unit-row input{width:18px;height:18px;accent-color:#2d7060}.unit-row strong{font-size:14px}.unit-row small{display:block;font-size:11px;color:#788581}.unit-row:has(input:checked){background:#e9f5ed;border-color:#6fa48d}.badge{margin-left:auto;font-size:10px;font-weight:900;background:#eff1ec;border-radius:20px;padding:5px 7px;white-space:nowrap}.badge.ready{background:#d6edda;color:#285f45}.primary{background:#245e50;color:white;box-shadow:0 4px 0 #173f36;padding:15px 24px}.start{width:100%;margin-top:20px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:15px}.note{background:#fff6dc;color:#675a31;padding:12px;border-radius:12px;font-size:12px;line-height:1.5;margin-top:14px}.preview-art{height:190px;width:100%;object-fit:contain}.play{height:100svh;min-height:600px;display:flex;flex-direction:column;padding-top:16px;padding-bottom:16px}.play header{margin-bottom:12px}.hud{display:flex;gap:10px;align-items:center}.pill{background:#fff;border:1px solid #dbe3dc;border-radius:12px;padding:10px 15px;font-size:14px;font-weight:900}.progress{display:flex;gap:5px;margin-bottom:12px}.progress span{height:6px;flex:1;background:#dce3dc;border-radius:20px}.progress span.done{background:#3a8d72}.progress span.current{background:#f4bd4e}.question-top{text-align:center}.question-top h1{font-size:clamp(24px,3vw,35px);margin:6px 0 10px}.question-area{position:relative;flex:1;min-height:120px;display:flex;justify-content:center;align-items:center}.picture-card{background:white;border:1px solid #e1e4db;border-radius:21px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 9px 0 #dfe5d9;max-width:640px;width:75%;height:100%;max-height:350px;padding:8px 16px}.picture-card img{object-fit:contain;max-height:calc(100% - 42px);width:100%;min-height:0}.picture-card.no-cue img{max-height:100%}.cue{font-size:35px;font-weight:900;letter-spacing:.08em;line-height:1.1}.context{font-size:28px;text-align:center;padding:30px}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.choices.four{grid-template-columns:repeat(2,1fr)}.choices.two{grid-template-columns:repeat(2,1fr)}.choice{position:relative;min-height:88px;font-size:clamp(24px,3.6vw,39px);color:#fff;background:#266bc1;border:3px solid transparent;box-shadow:0 5px 0 #1b4f93;border-radius:18px;padding:14px 36px}.choice:nth-child(2){background:#c54961;box-shadow:0 5px 0 #92374b}.choice:nth-child(3){background:#7954b6;box-shadow:0 5px 0 #553982}.choice:nth-child(4){background:#947006;box-shadow:0 5px 0 #715604}.key{position:absolute;left:14px;top:14px;font-size:13px;border:1px solid #ffffff77;border-radius:6px;width:23px;line-height:23px}.choice:disabled{opacity:1}.choice.faded{opacity:.35}.choice.correct{background:#247655;box-shadow:0 5px 0 #174a36;border-color:#c0e5b3}.choice.wrong{border-color:#632538}.choice-marker{position:absolute;right:10px;top:10px;font-size:22px}.bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:74px;padding-top:13px}.feedback{font-weight:900;font-size:18px}.feedback small{font-weight:600;font-size:14px;display:block;margin-top:3px}.timer-track{width:110px;height:7px;background:#d6dfd8;border-radius:10px;overflow:hidden;margin-top:5px}.timer-track div{background:#3c8971;height:100%;transition:width .2s linear}.overlay{position:fixed;inset:0;background:#203d39b8;display:grid;place-items:center;z-index:20;padding:20px}.overlay .panel{text-align:center;max-width:440px;width:100%;box-shadow:0 20px 70px #12352a44}.ready-number{font-size:65px;font-weight:900;color:#347b63}.finish{max-width:850px;margin:auto;text-align:center}.ribbon{font-size:50px;background:#f8d779;border-radius:50%;width:100px;height:100px;display:grid;place-items:center;margin:25px auto 15px;box-shadow:0 7px 0 #d5b65d}.stats{display:flex;gap:14px;justify-content:center;margin:25px 0}.stat{background:#fff;border-radius:18px;padding:18px 30px;border:1px solid #e1e4da}.stat strong{display:block;font-size:30px}.review-list{display:grid;gap:8px;text-align:left;margin-top:24px}.review-row{background:#fff;border:1px solid #e0e5dc;border-radius:12px;padding:12px;display:flex;align-items:center;gap:14px;font-size:14px}.review-row img{width:65px;height:48px;object-fit:contain}.review-row strong{display:block}.review-row span{margin-left:auto;color:#46755e}.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.enter{animation:arrive .28s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:650px){.shell{padding:15px}.setup-grid{grid-template-columns:1fr}.hero{padding:22px}.hero-symbol{display:none}.panel{padding:18px}.brand{font-size:14px}.brand-icon{width:30px;height:30px}.play{min-height:600px;padding:12px}.pill{padding:8px;font-size:12px}.hud{gap:5px}.quiet{padding:9px;font-size:12px}.question-top h1{font-size:24px}.picture-card{width:100%;padding:6px;max-height:320px}.choices{gap:8px;margin-top:15px}.choice{font-size:27px;min-height:80px;padding:26px 8px 12px;border-radius:13px}.key{top:4px;left:7px;font-size:10px;line-height:16px;width:17px}.bottom{min-height:83px}.feedback{font-size:16px}.feedback small{font-size:12px}.timer-track{width:65px}.stat{padding:15px}.settings{gap:10px}.cue{font-size:30px}}@media(max-height:690px) and (min-width:651px){.play{min-height:560px}.picture-card{max-height:270px}.choice{min-height:70px}.bottom{min-height:65px}.question-top h1{font-size:28px}}
/* Original, bounded quiz celebration. No borrowed character artwork. */
#score{background:#fff0bb;border:2px solid #dfb955;color:#59461c;min-width:113px;text-align:center;transform-origin:center}.sound-toggle{min-width:63px}.quiz-cast{position:absolute;pointer-events:none;inset:0;display:flex;align-items:flex-end;justify-content:space-between;padding:0 8px 27px}.cast-pair{display:flex;flex-direction:column;align-items:center;gap:4px;width:110px}.cast-pair:last-child{align-self:center}.cast-pal{width:84px;height:91px;transform:rotate(-6deg)}.cast-pal.blue{filter:hue-rotate(105deg);width:67px;height:73px;transform:translateX(14px) rotate(8deg)}.cast-pal.pink{filter:hue-rotate(285deg);transform:rotate(7deg)}.quiz-pal{display:block;width:100%;height:100%;overflow:visible}.quiz-pal.happy .pal-smile{fill:#fff3d8}.quiz-pal.happy .pal-eyes{transform:scaleY(.6);transform-origin:60px 68px}.feedback{display:flex;align-items:center;gap:11px;position:relative}.feedback>.quiz-pal{width:57px;height:61px;flex-shrink:0}.feedback-win{color:#246347}.feedback-learn{color:#375876}.answer-win{border:3px solid #77bc8f;box-shadow:0 8px 0 #c4dcc7}.answer-learn{border:3px solid #98b9d6;box-shadow:0 8px 0 #d5e1ed}.cue.revealed,.answer-word{color:#28654e;font-size:32px;font-weight:900;letter-spacing:.04em;line-height:1.15}.cue.revealed:first-letter{color:#b04c40;text-decoration:underline;text-decoration-color:#f4c971;text-underline-offset:5px}.reward-flight{position:fixed;z-index:35;background:#ffe384;border:3px solid #fff8d9;border-radius:99px;color:#584117;font-size:25px;font-weight:900;padding:8px 17px;box-shadow:0 5px 0 #ba8d3070;pointer-events:none;min-width:110px;text-align:center}.reward-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.reward-particles i{position:absolute;width:9px;height:15px;border-radius:3px;background:var(--color);top:35%;animation:confetti-drop 1s cubic-bezier(.2,.55,.55,1) both;animation-delay:calc(var(--i)*.012s)}@keyframes confetti-drop{0%{opacity:0;transform:translateY(40px) rotate(0)}20%{opacity:1}60%{opacity:1;transform:translateY(-80px) rotate(160deg)}100%{opacity:0;transform:translateY(80px) rotate(280deg)}}.finish-stage{height:258px;position:relative;display:flex;align-items:flex-end;justify-content:center;margin:0 auto 23px;max-width:490px;isolation:isolate}.finish-sun{position:absolute;width:270px;height:270px;background:repeating-conic-gradient(from 5deg,#f9d77c55 0deg 13deg,transparent 13deg 30deg);border-radius:50%;top:-4px;z-index:-1;mask-image:radial-gradient(circle,black 25%,transparent 70%)}.finish-pal{width:142px;height:154px;position:absolute;left:calc(50% - 71px);top:-5px;transform:rotate(-4deg)}.finish-stage .ribbon{position:absolute;top:91px;left:calc(50% - 30px);font-size:33px;width:60px;height:60px;margin:0;z-index:3;border:3px solid #fff5cf;box-shadow:0 4px 0 #c99730}.own-podium{width:260px;height:135px;border-radius:25px 25px 12px 12px;background:linear-gradient(135deg,#427e65,#205644);box-shadow:0 10px 0 #d7dfcf;color:white;padding:27px 20px 17px;border:4px solid #b8d3b7}.own-podium span{display:block;font-size:10px;font-weight:900;letter-spacing:.13em;color:#daf1d5}.own-podium strong{display:block;font-size:43px;line-height:1.13;letter-spacing:-.04em}.own-podium small{font-size:12px;color:#d8ead8}.finish .stats{margin:20px 0}.review-row{border-left:5px solid #b5cdb4}.review-row img{width:95px;height:69px}.review-row strong{font-size:21px;color:#2a6953}.review-row.needs-practice{border-left-color:#c8b5dd;background:#fbf8fe}.review-row.needs-practice span{color:#79589b}@media(max-width:800px){.cast-pair{width:70px}.cast-pal{width:66px;height:72px}.cast-pal.blue{width:52px;height:57px}.quiz-cast{padding-left:0;padding-right:0}}@media(max-width:650px){.quiz-cast{display:none}.play header{flex-wrap:wrap;gap:8px}.play header .brand{width:100%;font-size:12px}.play header .brand-icon{width:22px;height:22px;border-radius:7px}.hud{width:100%;justify-content:space-between}.hud .pill{font-size:12px;padding:6px 9px}#score{min-width:91px}.sound-toggle{min-width:51px}.feedback>.quiz-pal{width:42px;height:47px}.feedback{gap:5px}.cue.revealed,.answer-word{font-size:28px}.finish-stage{height:242px}.review-row img{width:73px;height:57px}.review-row{gap:10px}.review-row strong{font-size:18px}.bottom .primary{padding:12px;white-space:nowrap;font-size:13px}}@media(prefers-reduced-motion:reduce){.reward-flight,.reward-particles{display:none!important}.cast-pal,.finish-pal{transform:none}}
/* The same review flow, adapted for supplied reading passages. */
.unit-actions{display:flex;gap:8px;flex-wrap:wrap}.unit-actions button{font-size:11px;padding:7px 10px}.preview-context{background:#f4f5ef;border-left:5px solid #75a38d;border-radius:13px;padding:17px;margin:18px 0;max-height:200px;overflow:auto}.preview-context p{font-size:18px;line-height:1.5;margin-bottom:0;white-space:pre-line}.reading-play .question-top h1{font-size:clamp(22px,2.7vw,31px)}.reading-play .question-top .eyebrow{font-size:10px;letter-spacing:.06em}.context-card{max-width:850px;width:82%;align-items:stretch;padding:15px 22px;background:#fffef8}.context-card .context{font-size:23px;line-height:1.5;text-align:left;white-space:pre-line;padding:0;overflow:auto;min-height:0;flex:1;scrollbar-gutter:stable}.context-card .answer-word{flex-shrink:0;text-align:center;margin-top:10px;font-size:23px;padding-top:8px;border-top:1px solid #dce4d9}.reading-play .cast-pal{width:60px;height:66px}.reading-play .cast-pair{width:72px}.reading-play .quiz-cast{padding-left:0;padding-right:0}.choice.long-choice{font-size:clamp(18px,2.3vw,28px);line-height:1.2;padding-left:42px;padding-right:30px;overflow-wrap:anywhere}.reading-play .choices.four .choice{min-height:74px}.reading-play .feedback small{max-width:790px;line-height:1.35}.review-unit{font-size:11px;color:#65766b;line-height:1.5}.review-prompt{font-size:15px;font-weight:800;margin:4px 0 6px}.review-row>div{min-width:0}.review-row>span{flex-shrink:0}.progress{overflow:hidden}.progress span{min-width:2px}@media(max-width:650px){.context-card{width:100%;padding:14px}.context-card .context{font-size:18px;line-height:1.5}.context-card .answer-word{font-size:18px}.reading-play .question-top h1{font-size:20px;margin:5px 0 8px}.reading-play .question-top .eyebrow{font-size:9px}.reading-play .choices.four{gap:7px}.reading-play .choices.four .choice{min-height:78px;padding:23px 8px 10px;font-size:17px}.reading-play .feedback small{font-size:11px}.reading-play .bottom{align-items:center}.review-row>span{font-size:12px}.preview-context p{font-size:16px}}
.review-text{margin:8px 0;color:#466052;font-size:12px}.review-text summary{cursor:pointer;font-weight:800}.review-text p{white-space:pre-line;line-height:1.5;padding:12px;background:#f2f5ee;border-radius:9px;font-size:15px}
@media(max-width:650px){.reading-play .choices{grid-template-columns:repeat(2,1fr)}.reading-play .choices:not(.four):not(.two) .choice:last-child{grid-column:1 / -1}.reading-play .choice{min-height:70px;padding:23px 8px 10px;font-size:17px;line-height:1.2}}
/* Compact text-only questions; publisher picture-card layout is unchanged. */
.reading-play .question-top{margin-top:clamp(18px,6svh,46px)}
.reading-play .question-area{flex:0 1 auto;min-height:128px;margin:14px 0 10px}
.reading-play .context-card{height:auto;min-height:128px;max-height:min(260px,34svh);padding:24px 28px}
.reading-play .context-card .context{flex:0 1 auto;max-height:min(208px,27svh);text-align:center;font-size:clamp(22px,2.5vw,28px);line-height:1.45;scrollbar-gutter:auto}
.reading-play .quiz-cast{align-items:center;padding-bottom:0}
.reading-play .cast-pair{flex-direction:column;width:72px;gap:0}
.reading-play .cast-pal{width:52px;height:56px}
.reading-play .cast-pair:last-child{width:72px}
.reading-play .cast-pal.blue{transform:translateX(10px) rotate(8deg)}
.reading-play .choices{margin-top:12px}
.reading-play .bottom{margin-top:10px}
@media(max-width:650px){.reading-play .question-top{margin-top:clamp(14px,4svh,32px)}.reading-play .question-area{min-height:108px;margin:12px 0 8px}.reading-play .context-card{min-height:108px;padding:20px 18px;max-height:30svh}.reading-play .context-card .context{font-size:21px;max-height:24svh}.reading-play .bottom{margin-top:8px}}
.learning-audio{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;padding:10px 12px;margin-top:4px;background:#eaf1e7;border-radius:14px;flex-shrink:0}.learning-label{font-size:12px;font-weight:900;color:#3b6552;margin-right:5px}.learning-audio .quiet{font-size:12px;padding:8px 10px;min-height:35px}.learning-status{font-size:11px;color:#51665b;width:100%;text-align:center;line-height:1.25}.learning-audio button[aria-pressed="true"]{background:#d0e8ce;border-color:#83ad83}@media(max-width:650px){.learning-audio{padding:7px;gap:5px}.learning-label{width:100%;text-align:center}.learning-audio .quiet{font-size:11px;padding:7px}.learning-status{font-size:10px}.play:has(.learning-audio) .picture-card{max-height:260px}.play:has(.learning-audio) .bottom{min-height:70px}}@media(max-height:740px){.play:has(.learning-audio) .picture-card{max-height:240px}}
.learning-credits{font-size:10px;color:#466b59;text-underline-offset:2px}
/* Teacher-led oral sequence: attempt, reveal, then teacher judgement. */
.preview-word{font-size:64px;font-weight:900;text-align:center;padding:38px 8px;letter-spacing:-.03em}.preview-word mark,.oral-word mark{background:#ffe07e;color:#9b382f;border-radius:.15em;padding:0 .04em;text-decoration:underline;text-underline-offset:.09em}.audio-default{display:flex;align-items:center;gap:8px;margin:15px 0 0;font-size:13px;font-weight:800}.audio-default input{width:19px;height:19px;accent-color:#24644d}.oral-meta{text-align:center;font-size:11px;letter-spacing:.06em}.oral-stage{flex:1;min-height:130px;display:flex;align-items:center;justify-content:center;padding:14px 0}.oral-attempt{text-align:center;width:100%}.oral-attempt h1{font-size:clamp(30px,4.7vw,56px);max-width:1000px;margin:0 auto 25px}.oral-word{display:block;font-size:clamp(75px,12vw,150px);font-weight:900;line-height:1.13;letter-spacing:-.035em}.oral-guidance{font-size:16px;color:#637369;margin:28px 0 0}.oral-context{font-size:clamp(22px,3vw,36px);line-height:1.45;max-width:850px;margin:25px auto;color:#426050}.oral-actions{text-align:center}.oral-actions p{font-size:12px;color:#65766d;margin:11px 0 0}.reveal-button{font-size:22px;min-width:300px;padding:18px 28px}.oral-play .bottom{min-height:74px}.oral-play:has(.is-revealed) .oral-stage{padding:8px 0}.oral-model.picture-card{height:100%;max-height:350px;width:min(82%,700px);padding:5px 12px}.oral-model .oral-reveal-image{width:100%;max-height:calc(100% - 75px);min-height:0;object-fit:contain;animation:picture-descend .2s ease-out both}.oral-model .oral-word{font-size:45px;line-height:1.1}.model-label{font-size:12px;color:#526a5c;line-height:1.35;margin:7px 0;text-align:center}.judge-buttons{display:flex;gap:12px;justify-content:center}.judge-buttons button{min-width:180px;font-size:18px;padding:13px 20px}.oral-model.context-card{max-height:310px;min-height:160px;height:auto;text-align:center;padding:25px}.oral-model h2{font-size:clamp(30px,4vw,48px);line-height:1.2;margin:15px 0}.oral-model p{line-height:1.4}.oral-play .feedback small{display:block}.oral-play:has(.learning-audio) .oral-model.picture-card{max-height:350px}.oral-play .learning-audio{margin-top:0}.oral-play .learning-label{display:none}@keyframes picture-descend{from{opacity:1;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.oral-reveal-image{animation:none!important}}@media(max-width:650px){.oral-play header .hud{flex-wrap:wrap;justify-content:center}.oral-play header .hud>*{font-size:11px;padding:6px 8px}.oral-meta{font-size:9px}.oral-attempt h1{font-size:29px;margin-bottom:23px}.oral-word{font-size:clamp(56px,15vw,84px)}.oral-guidance{font-size:13px;margin-top:24px}.oral-context{font-size:23px;margin:20px 0}.reveal-button{font-size:18px;min-width:260px;padding:16px}.oral-actions p{font-size:10px}.judge-buttons{gap:8px}.judge-buttons button{min-width:0;flex:1;font-size:15px;padding:12px}.oral-model.picture-card{width:100%;max-height:280px}.oral-model .oral-word{font-size:33px}.oral-model .oral-reveal-image{max-height:calc(100% - 65px)}.oral-play:has(.learning-audio) .oral-model.picture-card{max-height:300px}.oral-play .bottom{min-height:65px}.oral-model h2{font-size:29px}.oral-play .feedback{font-size:14px}.oral-play .feedback small{font-size:11px}.model-label{font-size:10px}}
.audio-disclosure{font-size:11px;line-height:1.45;color:#617266;margin:8px 0}.audio-disclosure a{color:#375f50}.oral-recalled-question{font-size:17px;line-height:1.4;color:#4d6859;margin:0 0 18px;font-weight:800}
/* Private, browser-local teacher authoring. All imported strings render as text. */
.teacher-nav{display:flex;align-items:center;gap:8px;flex-shrink:0}.teacher-shell{padding-bottom:42px}.teacher-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:28px 0 24px}.teacher-heading h1{margin:8px 0 12px}.teacher-heading p{margin:0}.teacher-heading>.primary{flex-shrink:0}.local-notice{display:grid;grid-template-columns:180px 1fr;gap:18px;border:1px solid #cddfcf;background:#eaf2e7;border-radius:15px;padding:16px 20px;margin:20px 0;font-size:13px;line-height:1.5;color:#395344}.local-notice strong{font-size:14px}.teacher-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:24px 0 0}.file-button{cursor:pointer;position:relative;overflow:hidden;font-weight:900}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-button:focus-within{outline:4px solid #142d83;outline-offset:3px}.teacher-status{display:block;color:#346b52;font-size:13px;line-height:1.5;margin:8px 0;min-height:20px;overflow-wrap:anywhere}.teacher-status:empty{min-height:0}.teacher-status.is-error,.teacher-error{color:#8b302b}.teacher-error{border:1px solid #e3bbb3;background:#fff0eb;border-radius:14px;padding:15px;margin:16px 0;font-size:14px}.my-quiz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.my-quiz-card{display:flex;flex-direction:column;min-width:0}.my-quiz-card .eyebrow{font-size:10px;letter-spacing:.08em;overflow-wrap:anywhere}.my-quiz-card h2{font-size:24px;line-height:1.2;margin:13px 0 2px;overflow-wrap:anywhere}.my-quiz-card p{margin-bottom:22px}.card-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:auto}.card-actions .primary{padding:11px 20px}.text-button{background:transparent;color:#6b4c53;font-size:12px;font-weight:800;padding:10px;text-decoration:underline;text-underline-offset:3px}.quiz-empty{text-align:center;margin:20px 0;padding:48px 22px}.quiz-empty>div{font-size:46px;font-weight:900;color:#52876e;margin-bottom:18px}.quiz-empty p{max-width:540px;margin:15px auto;font-size:15px;line-height:1.5;color:#51675c}.quiz-trash{margin-top:22px;padding:18px 22px}.quiz-trash summary{cursor:pointer;font-weight:900}.trash-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;border-top:1px solid #e3e9df}.trash-row span{min-width:0;overflow-wrap:anywhere}.teacher-footnote{font-size:12px;line-height:1.6;color:#65766c;margin-top:25px}.quiz-details input,.question-editor textarea{width:100%;border:1px solid #c5d4c9;background:#fff;border-radius:11px;padding:12px 14px;color:#203241;font:inherit;font-size:15px;line-height:1.5}.question-editor textarea{resize:vertical;min-height:72px}.quiz-details input::placeholder,.question-editor textarea::placeholder{color:#78877d}.quiz-details input:focus-visible,.question-editor textarea:focus-visible{outline:3px solid #326e59;outline-offset:2px}.quiz-details .field:first-child{margin-top:0}.required,.optional{font-size:10px;color:#687b6f;font-weight:600;margin-left:5px}.editor-section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:28px 0 15px}.editor-section-title h2{font-size:24px}.question-count{display:inline-grid;place-items:center;background:#e1eadf;border-radius:99px;min-width:30px;height:30px;font-size:15px;margin-left:5px}.question-editor{margin-bottom:18px;padding:20px 24px}.question-editor-head{display:flex;gap:12px;justify-content:space-between;align-items:center}.question-editor h3{font-size:19px;margin:0}.question-tools{display:flex;gap:6px;align-items:center}.question-tools .quiet{padding:8px 11px;font-size:12px}.question-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.answer-side{border-left:1px solid #e2e9dd;padding-left:20px}.field-help{font-size:11px;line-height:1.5;color:#65796b;margin:7px 0 12px}.question-extras{margin-top:8px;border-top:1px solid #e2e9dd;padding-top:14px}.question-extras summary{cursor:pointer;font-size:13px;font-weight:800;color:#506d5a}.add-question{width:100%;border:2px dashed #bdd2c1;background:#f0f6ec;padding:17px}.undo-row{padding:12px 16px;background:#fff3d3;border-radius:12px;margin:16px 0;display:flex;align-items:center;gap:15px;font-size:13px}.editor-savebar{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#e3eddf;border:1px solid #bed2bf;border-radius:18px;padding:20px;margin-top:20px}.editor-savebar>div:first-child{min-width:0}.editor-savebar strong{font-size:14px}.editor-savebar .actions{flex-shrink:0;justify-content:flex-end}.editor-savebar .primary{padding:13px 19px}.teacher-overlay .panel{max-width:720px;max-height:90svh;overflow:auto}.teacher-overlay h2{font-size:26px}.teacher-preview-prompt{font-size:27px;line-height:1.4;background:#f2f5ec;border-radius:14px;padding:24px;margin:20px 0;white-space:pre-wrap;overflow-wrap:anywhere}.teacher-preview-answer{padding:20px;margin-bottom:22px;background:#e5f0df;border-radius:14px;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}.teacher-preview-answer>p:first-of-type{font-size:24px;font-weight:900}.teacher-preview-answer ul{padding-left:24px}.teacher-preview-answer .teacher-note{font-size:14px}.custom-variants,.custom-teacher-note{width:100%;font-size:14px;line-height:1.5;text-align:left;overflow-wrap:anywhere;white-space:pre-wrap;margin-top:10px;padding:12px 16px;border-radius:12px;background:#f0f4e9}.custom-variants ul{margin:6px 0;padding-left:22px}.custom-teacher-note p{font-size:14px!important;margin:6px 0!important}.oral-custom .oral-attempt h1,.oral-custom .oral-model h2,.oral-recalled-question,.review-prompt,.review-row strong{white-space:pre-wrap;overflow-wrap:anywhere}.oral-custom .oral-model{overflow:auto;max-height:none}.oral-custom .oral-stage{min-height:260px}.oral-custom .oral-attempt{overflow:auto;max-height:60svh}.oral-custom .oral-stage.is-revealed{flex:1 0 auto}.review-row .custom-variants,.review-row .custom-teacher-note{font-size:12px;padding:8px}.review-row .custom-variants strong,.review-row .custom-teacher-note strong{font-size:12px}
@media(max-width:800px){.editor-savebar{flex-direction:column;align-items:stretch}.editor-savebar .actions{justify-content:flex-start}.teacher-shell header{flex-wrap:wrap}.local-notice{grid-template-columns:1fr;gap:5px}.teacher-heading{gap:12px}.my-quiz-grid{grid-template-columns:1fr}.question-editor{padding:18px}.question-two-columns{grid-template-columns:1fr;gap:0}.answer-side{border-left:0;border-top:1px solid #e2e9dd;padding-left:0}.teacher-heading h1{font-size:34px}}
@media(max-width:500px){.teacher-heading{align-items:flex-start;flex-direction:column}.teacher-heading>.primary{width:100%}.teacher-nav{width:100%;justify-content:flex-end}.teacher-shell header .brand{font-size:13px}.editor-section-title{align-items:flex-start;flex-direction:column;gap:5px}.question-editor-head{align-items:flex-start;flex-direction:column;gap:10px}.question-tools{width:100%;justify-content:flex-end}.editor-savebar .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.editor-savebar #save-quiz{grid-row:1;grid-column:1 / -1}.teacher-overlay{padding:12px}.teacher-preview-prompt{font-size:23px;padding:18px}.my-quiz-card h2{font-size:22px}.local-notice{padding:15px}.oral-custom .oral-stage{min-height:220px}}

header:has(.teacher-nav){flex-wrap:wrap}

/* Selected-lesson bridge: separate public room, unchanged private catalogue. */
.live-launch{margin-top:20px;padding-top:20px;border-top:1px solid #cddbcc}.live-launch h3{font-size:18px;margin:0 0 8px}.live-launch p{font-size:12px;line-height:1.6;margin:0 0 12px}.live-launch button{width:100%}.live-launch button:disabled{cursor:not-allowed;opacity:.55}.live-overlay{z-index:20}.live-overlay .panel{max-width:620px;max-height:90svh;overflow:auto}.live-overlay h2{font-size:27px;overflow-wrap:anywhere}.live-overlay p{font-size:14px;line-height:1.55}.live-overlay .actions{flex-wrap:wrap}.live-overlay button[hidden]{display:none}.live-model-note{padding:12px;background:#fff3d3;border-radius:12px}.live-status{background:#edf4e8;border-radius:12px;padding:14px;min-height:70px}.live-status.is-error{background:#fff3d3;color:#6b491e}.live-overlay .live-export-help{font-size:11px;color:#53655a}.live-overlay button:focus-visible{outline:3px solid #142d83;outline-offset:3px}@media(max-width:500px){.live-overlay{padding:12px}.live-overlay .actions{flex-direction:column;align-items:stretch}.live-overlay h2{font-size:22px}}

.editor-savebar .actions{flex-shrink:1;min-width:0}

.class-settings{border:1px solid #cfdaea;border-radius:15px;padding:16px;margin:16px 0;display:grid;gap:12px}.class-settings label{display:block}.class-settings small{line-height:1.5}.class-hud{display:flex;flex-wrap:wrap;gap:7px;align-items:center;background:#173e60;color:#fff4cc;padding:9px 13px;border-radius:14px;max-width:580px}.class-hud b{font-size:14px}#class-clock{font-variant-numeric:tabular-nums}#class-scores{font-size:13px}.reward-play{max-width:1200px}.reward-context{font-size:13px;text-align:center;margin:8px}.reward-next{text-align:center;margin:10px}.class-results{background:#e6f6ff;border:2px solid #8bcbdc;border-radius:20px;padding:18px;margin:20px auto;max-width:650px}.class-results p{font-size:22px}.reward-play #score,.reward-play #timer,.reward-play #learning-mute{display:none}.reward-play header{margin-bottom:8px}.reward-play .brand{font-size:17px}
/* Shared-screen header wraps intentionally rather than squeezing the question/arena. */
.oral-play header{flex-wrap:wrap}.oral-play header .hud{width:100%;flex-wrap:wrap}.oral-play .class-hud{flex:1;min-width:220px}.reward-play.shell{padding:12px 18px}.reward-play header .brand{display:none}.reward-play header .hud{width:100%;flex-wrap:wrap;gap:7px}.reward-play .class-hud{flex:1;min-width:230px;max-width:none}.reward-play #class-scores{flex-basis:100%;line-height:1.4}.reward-play .reward-context{margin:5px;font-size:12px}@media(max-width:650px){.reward-play.shell{padding:8px}.reward-play .class-hud{flex-basis:100%}}

/* Short shared-screen landscape: reserve footer/Next rather than clipping controls. */
@media(min-width:701px) and (max-height:850px){.reward-play .class-hud{padding:7px 12px;min-height:42px;gap:10px}.reward-play #class-scores{flex-basis:auto;margin-left:auto}.reward-play .reward-context{font-size:11px;margin:3px}.reward-play header{margin-bottom:4px}.reward-play .reward-next{margin:7px 0}.reward-play .reward-next button{padding:9px 20px;min-height:40px}}

/* The same competition rail stays beside question, reveal and final review. */
.classroom-layout{display:block}.classroom-layout.has-competition{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:22px;align-items:start}.classroom-content{min-width:0}.competition-rail{position:sticky;top:12px;padding:17px 14px;background:#173e60;color:#fff5dc;border:2px solid #2e647f;border-radius:20px;box-shadow:0 5px 0 #0d2941}.competition-kicker{font-size:10px;font-weight:900;letter-spacing:.14em;color:#a7dfef}.competition-rail h2{font-size:22px;margin:6px 0 15px;color:#fff5dc}.competition-teams{display:grid;gap:9px}.competition-team{padding:11px 12px;border:2px solid #64859b;border-radius:13px;background:#244e6e;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px}.competition-team.is-active{background:#fff1bf;color:#183e60;border-color:#ffe293}.competition-team>span{font-size:14px;font-weight:900;overflow-wrap:anywhere}.competition-team>strong{font-size:27px;font-variant-numeric:tabular-nums}.competition-team>small{grid-column:1/-1;font-size:10px;min-height:12px}.competition-gap{font-size:13px;font-weight:800;margin:14px 0 0}.competition-note{font-size:10px;line-height:1.4;color:#c7e3ef;margin:12px 0 0}.item-challenge{display:flex;gap:12px;align-items:center;padding:11px 14px;border-radius:13px;margin:4px 0 12px;background:#e1edf5;border:2px solid #c3d8e5;color:#234d67}.item-challenge strong{font-size:13px;white-space:nowrap}.item-challenge span{font-size:12px}.item-challenge.is-item{background:#fff0bb;border-color:#e2b750;color:#5b4214}.classroom-layout .finish{padding-top:12px}.classroom-layout .oral-stage{width:100%}.reward-play .competition-rail{display:none}.classroom-results-shell .own-podium>span:after{content:' · LEARNING';font-size:10px}@media(max-width:760px){.classroom-layout.has-competition{grid-template-columns:minmax(0,1fr);gap:14px}.competition-rail{position:static;grid-row:1;padding:10px}.competition-teams{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.competition-rail h2{font-size:17px;margin:3px 0 7px}.competition-team{padding:7px}.competition-team>strong{font-size:23px}.competition-gap,.competition-note{margin:6px 0 0}.item-challenge{align-items:flex-start;gap:6px;flex-direction:column}}

.review-row.not-judged{background:#edf2f6;border-color:#bdcbd6}.review-row.not-judged>span{color:#425c70}

/* Cloud Garden host: bright original adventure colors, quiet learning stage. */
:root{--garden-ink:#18556b;--garden-teal:#197e79;--garden-sky:#7edafa;--garden-cream:#fff9e9;color:#193f50;background:#edfaff}
body{background:linear-gradient(180deg,#c3efff 0,#edfaff 370px,#fff9e9 100%);background-attachment:fixed}
.brand{color:var(--garden-ink)}.brand-icon{background:#239f8e;box-shadow:0 3px 0 #126b63;border:2px solid #fff9e9;color:#fff9e9}
.hero{background:linear-gradient(120deg,#fff9e9 0,#fff9e9 45%,#cef3fa 100%);border:2px solid #fff;box-shadow:0 6px 0 #9dd8dd;padding:30px 34px}
.hero:after{content:'';position:absolute;right:-35px;bottom:-89px;width:330px;height:190px;border-radius:50%;background:#a9e8d1;box-shadow:-115px 42px 0 8px #78cc71;pointer-events:none}
.hero h1,.hero p,.hero .eyebrow{position:relative;z-index:1}.hero-symbol{z-index:1;color:#239f8e;opacity:.7;bottom:39px;font-size:66px}
.eyebrow{color:#24667b}.muted{color:#466473}.panel{border:2px solid #c1e2e5;box-shadow:0 5px 0 #d0e6dc;background:#fffefa}.tabs{background:#e4f5f7}.tabs button.active{color:#18556b;box-shadow:0 3px 0 #b8dfe2}.primary{background:#197e79;box-shadow:0 4px 0 #105655}.primary:hover:not(:disabled){background:#126a67}.quiet,.back{color:#18556b;border:2px solid #bcdce0;background:#fffefa}.quiet:hover:not(:disabled),.back:hover{background:#e6f7f6}.unit-row:has(input:checked){background:#e5f7e9;border-color:#68ad82}.unit-row input{accent-color:#197e79}.badge.ready{background:#d2f0d9;color:#245d3d}.preview-context{background:#eff9f8;border-color:#62b8b0}.class-settings{border:2px solid #c6dfe4;background:#f1fafc}.class-settings legend{font-weight:900;color:#18556b}.class-hud{color:#18556b;background:#fff9e9;border:2px solid #74bfc8;box-shadow:0 3px 0 #a0d9dc}.pill{border-color:#a6d6df;background:#fffefa}.reward-context{color:#315f70}
.oral-play{height:auto;min-height:100svh}.oral-stage{background:#fffefa;border:2px solid #bcdee5;border-radius:26px;box-shadow:0 6px 0 #cee7df;min-height:300px;margin:12px 0 22px;padding:28px 20px}.oral-attempt h1{color:#18556b}.oral-context{color:#254b5a}.oral-guidance{color:#486571;line-height:1.5}.oral-word{color:#18556b}.oral-word mark{background:#ffe08a;color:#9b382f}.oral-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}.oral-actions p{flex-basis:100%;margin-top:3px;color:#486571}.judge-buttons{flex-wrap:wrap}.judge-buttons button{min-height:48px}.oral-actions #oral-skip{min-height:48px}.oral-play:has(.is-revealed) .oral-stage{padding:15px}.oral-model.picture-card{min-height:260px;height:300px;border:0;box-shadow:none;background:transparent}.oral-model.context-card{background:transparent;width:100%;max-height:none;min-height:230px;overflow-wrap:anywhere}.learning-audio{background:#e3f3ef;border:1px solid #beded8}.progress span{background:#c1dde4}.progress span.done{background:#239f8e}.progress span.current{background:#eea740}
.competition-rail{background:#fff9e9;color:#18556b;border:2px solid #71bbc3;box-shadow:0 5px 0 #a1d6d4}.competition-kicker{color:#356c7a}.competition-rail h2{color:#18556b}.competition-team{background:#fff;border-color:#c3e3e7;color:#18556b;padding:9px 10px}.competition-team.is-active{background:#ffedb3;border-color:#e4aa45;color:#51421a;box-shadow:0 3px 0 #eed68b}.competition-team>small{line-height:1.4}.competition-note{color:#426575}.competition-gap{font-size:12px;line-height:1.5}.item-challenge{background:#e3f6fa;border-color:#9bd6e0;color:#18556b}.item-challenge.is-item{background:#fff0bc;border-color:#dca240;color:#614310}.own-podium{background:linear-gradient(135deg,#239f8e,#197e79);border-color:#a9e8d1;box-shadow:0 9px 0 #b0d8cd}.review-row{border-color:#c0ded8}.review-row.not-judged{background:#eef7fa;border-color:#b0d7e0}.review-row.needs-practice{background:#fff8e9;border-left-color:#e7b76c}.review-row.needs-practice span{color:#86571b}.overlay{background:#184d65aa}.ready-number{color:#197e79}
@media(min-width:761px) and (max-height:800px){.oral-stage{min-height:240px;padding:20px 15px;margin:8px 0 16px}.oral-attempt h1{font-size:36px;margin-bottom:18px}.oral-word{font-size:100px}.oral-guidance{margin-top:18px}.competition-team{padding:6px 9px;gap:2px}.competition-team>strong{font-size:23px}.competition-teams{gap:6px}.oral-model.picture-card{height:260px;min-height:220px}.oral-model .oral-word{font-size:42px}.reveal-button{padding:13px 24px;font-size:20px}}
@media(max-width:760px){.hero{padding:25px}.hero:after{opacity:.5}.oral-stage{min-height:240px;padding:22px 12px;border-radius:20px}.oral-word{font-size:clamp(60px,14vw,100px)}.competition-teams{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-team>small{font-size:10px}.competition-rail{grid-row:auto}.oral-actions .reveal-button{min-width:0;width:100%}.judge-buttons{width:100%}.judge-buttons button{min-width:140px;flex:1}.oral-model.picture-card{height:280px;min-height:230px}.oral-model .oral-word{font-size:36px}.oral-model.context-card{padding:12px}.oral-play .bottom{flex-wrap:wrap}.oral-play .bottom .primary{margin-left:auto}}

/* Live host budget: eight legible teams fit beside the question at 1180 × 757.
   Compact the content itself; never mask overflowing teacher controls. */
@media(min-width:761px) and (max-height:850px){
 .oral-play .competition-live{padding:10px 12px;position:static}
 .oral-play .competition-live h2{font-size:19px;line-height:1.15;margin:3px 0 9px}
 .oral-play .competition-live .competition-kicker{font-size:9px;line-height:1.1}
 .oral-play .competition-live .competition-teams{gap:4px}
 .oral-play .competition-live .competition-team{padding:4px 8px;gap:0;border-radius:10px}
 .oral-play .competition-live .competition-team>span{font-size:13px;line-height:20px}
 .oral-play .competition-live .competition-team>strong{font-size:21px;line-height:22px}
 .oral-play .competition-live .competition-team>small{font-size:10px;line-height:12px;min-height:12px}
 .oral-play .competition-live .competition-note{font-size:10px;line-height:13px;margin:9px 0 0}
}

.teacher-tips{flex-basis:100%;font-size:12px;color:#486571;text-align:left;max-width:740px;margin:2px auto 0}
.teacher-tips summary{cursor:pointer;font-weight:800;text-align:center;padding:5px;min-height:28px}
.teacher-tips[open]{background:#edf7f8;border:1px solid #b9dbe0;border-radius:12px;padding:8px 12px}
.oral-actions .teacher-tips p{font-size:12px;line-height:1.5;margin:7px 0}

/* Revealed desktop lesson: reserve the full audio/status footer at 1180 × 757.
   Remove vertical whitespace, retaining the model, all judging controls and credits. */
@media(min-width:761px) and (max-height:800px) and (orientation:landscape){
 .oral-play:has(.is-revealed) .oral-stage{padding:6px 12px;min-height:220px;margin-bottom:12px}
 .oral-play:has(.is-revealed) .oral-model.picture-card{height:240px;min-height:220px;padding:3px 12px}
 .oral-play:has(.is-revealed) .bottom{min-height:54px;padding-top:8px}
 .oral-play:has(.is-revealed) .learning-audio{padding:8px 12px;gap:6px}
}

/* Session clock is authoritative in shared-screen mode. */
.hud #timer[hidden]{display:none}

/* Game-first classroom: persistent arena, descending question sheet, fixed teacher deck. */
.game-first.shell{max-width:none;width:100%;height:100svh;min-height:0;margin:0;padding:10px 16px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;background:linear-gradient(#c5f0fb,#f4fbeb)}
.game-first .game-toolbar header{margin:0;display:flex;flex-wrap:nowrap;gap:12px}.game-first .brand{font-size:14px;white-space:nowrap}.game-first .brand .muted{display:none}.game-first .brand-icon{width:29px;height:29px}.game-first .hud{width:auto;flex:1;flex-wrap:nowrap;justify-content:flex-end;gap:7px}.game-first .class-hud{flex:0 1 auto;min-width:180px;max-width:none;padding:8px 12px;box-shadow:none;gap:10px}.game-first .hud .quiet{padding:9px 11px;font-size:12px;white-space:nowrap;min-height:40px}.game-first #learning-mute{font-size:11px}.fullscreen-status:empty{display:none}.fullscreen-status{font-size:12px;line-height:1.4;color:#694b17}.game-first .fullscreen-status:not(:empty){position:absolute;right:18px;top:62px;z-index:30;background:#fff4d1;border:1px solid #d8b65b;padding:9px 12px;border-radius:10px;max-width:400px;box-shadow:0 4px 15px #184d6522}
.game-first .game-surface{position:relative;min-height:0;isolation:isolate}.game-first #unit-reward{height:100%;width:100%;min-height:0}.game-first .question-sheet{position:absolute;z-index:5;top:4px;left:12px;width:calc(100% - 246px);max-height:calc(100% - 36px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:3px solid #69b9bc;border-radius:0 0 26px 26px;background:#fffefa;box-shadow:0 10px 0 #18556b25,0 20px 35px #18556b22;transform:translateY(0);transition:transform .42s cubic-bezier(.2,.75,.25,1),visibility 0s;visibility:visible;animation:quiz-sheet-down .42s cubic-bezier(.2,.75,.25,1) both}.game-first .question-sheet.is-raised{transform:translateY(calc(-100% - 85px));visibility:hidden;pointer-events:none;transition:transform .36s cubic-bezier(.5,0,.8,.3),visibility 0s .36s;animation:none}.game-first #question-content{padding:13px 20px 12px}.game-first .item-challenge{margin:0 0 8px;padding:8px 12px;font-size:12px}.game-first .progress{margin:7px 0}.game-first .oral-meta{font-size:10px}.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:190px;margin:8px 0;padding:12px 14px;border:0;box-shadow:none;background:transparent}.game-first .oral-attempt h1{font-size:clamp(26px,3vw,40px);margin:5px auto 10px}.game-first .oral-word{font-size:clamp(64px,8vw,100px)}.game-first .oral-guidance{font-size:14px;margin:14px 0 0}.game-first .oral-context{font-size:clamp(20px,2.2vw,28px);margin:14px auto;line-height:1.4}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:215px;min-height:190px;width:95%;padding:0}.game-first .oral-model .oral-word{font-size:38px}.game-first .oral-model .oral-reveal-image{max-height:140px;width:auto;max-width:100%}.game-first .model-label{font-size:11px;margin:4px 0}.game-first .oral-model.context-card{padding:9px 12px;min-height:120px;max-height:none}.game-first .oral-model h2{font-size:clamp(26px,3vw,38px);margin:9px 0}.game-first .oral-model p{margin:8px 0}.game-first .oral-recalled-question{font-size:14px}.game-first.oral-play:has(.is-revealed) .learning-audio{margin:3px 0 0;padding:7px 9px;gap:6px}.game-first .learning-status{font-size:10px}.game-first .learning-audio .quiet{padding:7px 10px;min-height:32px}.game-first .learning-audio .learning-label{display:none}
.game-first .teacher-control-deck{position:relative;z-index:8;min-height:104px;background:#fffefa;border:2px solid #85c6c7;border-radius:18px;padding:10px 14px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,1fr);align-items:center;gap:12px;box-shadow:0 4px 0 #b7d8cc}.game-first .oral-actions{justify-content:flex-start;gap:8px}.game-first .oral-actions .reveal-button{min-width:0;width:auto;min-height:46px;font-size:18px;padding:12px 20px}.game-first .oral-actions #oral-skip{min-height:42px}.game-first .judge-buttons{gap:8px;justify-content:flex-start;flex-wrap:wrap}.game-first .judge-buttons button{min-width:0;min-height:44px;padding:11px 13px;font-size:15px}.game-first .oral-actions .judgment-help{margin:0;line-height:1.35;font-size:11px;text-align:left}.game-first .teacher-tips{flex-basis:auto;max-width:none;margin:0;font-size:11px}.game-first .teacher-tips summary{padding:8px;min-height:32px}.game-first .teacher-tips[open]{position:absolute;bottom:calc(100% + 8px);left:12px;max-width:550px;width:calc(100% - 24px);z-index:10;padding:10px 14px;background:#fffefa;box-shadow:0 5px 25px #18556b33}.game-first .bottom,.game-first.oral-play:has(.is-revealed) .bottom{min-height:0;padding:0;gap:12px;justify-content:flex-end;align-items:center}.game-first .feedback{font-size:14px;line-height:1.35;gap:7px}.game-first .feedback small{font-size:11px;line-height:1.35}.game-first .feedback>.quiz-pal{width:36px;height:40px}.game-first .bottom .primary{font-size:16px;padding:13px 18px;min-height:46px;white-space:nowrap}/* Recorded grading slots stay visible and disabled: a physical second click must not land on Undo. */.game-first.answer-recorded #oral-reveal,.game-first.answer-recorded #oral-skip:disabled{display:none}.game-first.reward-active .teacher-control-deck{grid-template-columns:minmax(0,1fr) minmax(260px,1fr)}.game-first .reward-context{text-align:left;font-size:12px;margin:0;color:#3b6170}.game-first.reward-active #learning-mute{display:none}
#app:fullscreen{width:100vw;height:100vh;overflow:auto;background:#edfaff}#app:fullscreen .game-first{height:100vh}
@keyframes quiz-sheet-down{from{transform:translateY(calc(-100% - 85px))}to{transform:translateY(0)}}
@media(min-width:761px) and (max-height:680px){.game-first.shell{padding:7px 10px;gap:6px}.game-first .teacher-control-deck{min-height:86px;padding:8px 12px}.game-first #question-content{padding:9px 15px}.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:145px;margin:5px 0;padding:5px 10px}.game-first .oral-attempt h1{font-size:28px}.game-first .oral-word{font-size:75px}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:170px;min-height:150px}.game-first .oral-model .oral-word{font-size:31px}.game-first .oral-model .oral-reveal-image{max-height:110px}.game-first .oral-guidance{margin-top:8px}.game-first .question-sheet{max-height:calc(100% - 20px)}}
@media(max-width:960px){.game-first .brand{display:none}.game-first .question-sheet{width:calc(100% - 214px);left:7px}.game-first .teacher-control-deck{grid-template-columns:minmax(0,1fr) minmax(240px,.9fr)}.game-first .judge-buttons button{font-size:13px;padding:10px}.game-first .bottom .primary{font-size:14px;padding:11px 13px}}
@media(max-width:760px){.game-first.shell{padding:7px;height:100svh;gap:5px}.game-first .game-toolbar header{display:block}.game-first .hud{flex-wrap:wrap;justify-content:center;gap:5px}.game-first .class-hud{min-width:0;flex:1;max-width:none;font-size:12px}.game-first .class-hud b{font-size:12px}.game-first .hud .quiet{min-height:36px;padding:7px 8px;font-size:11px}.game-first .question-sheet{left:2%;width:96%;top:3px;max-height:calc(100% - 70px);border-radius:0 0 18px 18px}.game-first #question-content{padding:10px 12px}.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:145px;padding:8px 5px}.game-first .oral-attempt h1{font-size:25px}.game-first .oral-word{font-size:64px}.game-first .oral-context{font-size:20px}.game-first .oral-guidance{font-size:12px;margin-top:10px}.game-first .item-challenge{gap:2px;padding:7px 9px}.game-first .item-challenge strong{font-size:11px}.game-first .item-challenge span{font-size:10px}.game-first .teacher-control-deck{grid-template-columns:1fr;gap:7px;min-height:112px;padding:8px 10px}.game-first .oral-actions{justify-content:center;gap:6px}.game-first .oral-actions .reveal-button{font-size:16px;padding:10px 16px}.game-first .judge-buttons{justify-content:center;width:auto}.game-first .judge-buttons button{flex:0 1 auto;min-width:0;padding:9px 11px}.game-first .oral-actions .judgment-help{width:100%;text-align:center;font-size:10px}.game-first .bottom{justify-content:space-between}.game-first .feedback{font-size:12px}.game-first .bottom .primary{margin-left:auto;font-size:13px}.game-first .teacher-tips summary{font-size:10px}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:175px;min-height:150px}.game-first .oral-model .oral-word{font-size:31px}.game-first .oral-model .oral-reveal-image{max-height:110px}.game-first .oral-model h2{font-size:26px}.game-first .learning-audio .quiet{font-size:10px;padding:6px 8px;min-height:30px}.game-first .learning-status{font-size:9px}.game-first.reward-active .teacher-control-deck{grid-template-columns:1fr}.game-first .fullscreen-status:not(:empty){top:95px;right:9px;max-width:calc(100% - 18px)}}
@media(prefers-reduced-motion:reduce){.game-first .question-sheet{animation:none;transition:none}.game-first .question-sheet.is-raised{transition:none}}
.game-first .game-toolbar{position:relative;z-index:9}

/* Stable action geometry across grade → Undo and Undo → regrade, without a delay. */
.game-first .judge-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}
.game-first .judge-buttons button{width:100%;height:48px;min-width:0;white-space:normal;line-height:1.15}
.game-first.answer-recorded .judge-buttons #oral-got,.game-first.answer-recorded .judge-buttons #oral-try{display:block;pointer-events:none}

/* Simple lesson entry: one decision column and one primary action. */
.setup-simple.shell{max-width:720px;padding:24px 28px 32px;min-height:100svh}
.setup-simple .setup-header{margin:0 0 28px;gap:18px}.setup-simple .brand{font-size:15px}.setup-simple .brand-icon{width:30px;height:30px;border-radius:10px}
.text-link{appearance:none;background:none;border:0;box-shadow:none;padding:7px 0;border-radius:4px;color:#356172;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.lesson-picker{background:#fffefa;border:1px solid #c5dde1;border-radius:22px;padding:28px;box-shadow:0 5px 18px #18556b08}
.picker-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.picker-heading h1{font-size:27px;line-height:1.15;letter-spacing:-.025em;margin:0;color:#193f50}
.mode-switch{display:flex;gap:4px;align-items:center;background:#edf5f6;padding:3px;border-radius:10px}.mode-switch button{padding:7px 10px;font-size:12px;font-weight:800;border-radius:8px;background:transparent;color:#54717b;box-shadow:none}.mode-switch button[aria-pressed=true]{background:#fff;color:#18556b;box-shadow:0 1px 4px #18556b16}
.lesson-picker>label.field{font-size:14px;margin:18px 0 8px}.lesson-picker>select{font-size:17px;min-height:54px;padding:12px 14px;border:1px solid #b5cfd5;border-radius:12px;background:#fff;color:#193f50}
.setup-status{font-size:14px;color:#54717b;line-height:1.4;margin:16px 0 0;min-height:20px}.lesson-picker>.start{margin:18px 0 0;min-height:54px;font-size:19px;border-radius:12px;padding:13px 20px;box-shadow:0 3px 0 #105655}.lesson-picker>.start:disabled{box-shadow:none}
.setup-options{margin:22px 0 0;border-top:1px solid #dce8e8;padding-top:14px;font-size:14px}.setup-options>summary{cursor:pointer;color:#53717c;font-weight:800;padding:5px 0}.options-content{padding:9px 0 0}.options-content .settings{gap:16px}.options-content .class-settings{background:#f5faf9;border:1px solid #d4e5e2;padding:15px;margin:18px 0;font-size:13px}.options-content .class-settings label select{margin-top:7px}.options-content .class-settings .settings{margin-top:7px}.options-content .audio-default{font-size:13px}
.more-units,.lesson-notes{border-top:1px solid #dce8e8;margin-top:18px;padding-top:14px}.more-units>summary,.lesson-notes>summary{cursor:pointer;color:#53717c;font-size:13px;font-weight:800}.more-units .unit-actions{margin-top:10px;gap:18px}.more-units .unit-actions button{padding:5px 0;font-size:12px}.more-units .unit-list{max-height:260px}.more-units .unit-row{padding:10px}.more-units .unit-row strong{font-size:13px}.more-units .unit-row small{font-size:11px}.lesson-notes p{font-size:12px;line-height:1.6;color:#53717c;margin:12px 0}
.setup-secondary{display:flex;justify-content:center;align-items:flex-start;gap:24px;margin-top:16px}.setup-secondary .live-launch{position:relative;margin:0;padding:0;border:0}.setup-secondary .live-launch>summary{cursor:pointer;font-size:13px;font-weight:800;color:#356172;padding:7px 0}.setup-secondary .live-options{position:absolute;top:36px;right:0;width:310px;max-width:75vw;padding:16px;background:#fffefa;border:1px solid #c4dce0;border-radius:14px;box-shadow:0 8px 24px #18556b18;z-index:5}.setup-secondary .live-options p{font-size:13px;color:#53717c;line-height:1.5;margin:0 0 12px}.setup-secondary .live-options button{width:100%}
/* Teacher extras stay available without competing with the current action. */
.teacher-extras{position:relative;font-size:13px}.teacher-extras>summary{cursor:pointer;list-style:none;background:#fffefa;border:2px solid #bcdce0;border-radius:12px;color:#18556b;padding:9px 14px;font-weight:900;min-height:40px}.teacher-extras>summary::-webkit-details-marker{display:none}.teacher-extras>summary:after{content:' ▾';font-size:11px}.teacher-extras[open]>summary{background:#e6f7f6}.teacher-menu{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:85vw;max-height:calc(100svh - 100px);overflow:auto;padding:12px;background:#fffefa;border:2px solid #bcdce0;border-radius:15px;box-shadow:0 12px 30px #18556b28;z-index:40;display:grid;gap:8px}.teacher-menu>.quiet{width:100%;text-align:left;box-shadow:none}.teacher-menu #exit{border-color:#dacbc3;color:#714e3a}.teacher-menu .teacher-tips,.game-first .teacher-menu .teacher-tips{position:static;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none;text-align:left}.teacher-menu .teacher-tips summary,.game-first .teacher-menu .teacher-tips summary{padding:10px 4px;font-size:13px;min-height:36px;text-align:left}.teacher-menu .teacher-tips[open],.game-first .teacher-menu .teacher-tips[open]{position:static;bottom:auto;left:auto;width:100%;max-width:none;padding:4px 8px;border-radius:10px;box-shadow:none;background:#eef7f6}.teacher-menu .teacher-tips p{font-size:12px;line-height:1.5;color:#486571;margin:9px 0}.game-first .class-hud{margin-right:auto}.game-first .teacher-control-deck{min-height:88px}.game-first .item-challenge{display:inline-flex;border:0;background:transparent;padding:0;margin:0 0 6px}.game-first .item-challenge strong{font-size:11px;letter-spacing:.03em}.game-first .item-challenge.is-item{background:#fff1bd;padding:5px 9px;border-radius:7px}.game-first .oral-actions .judgment-help:not(:has(button)),.game-first.question-open .feedback{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.game-first .oral-actions .judgment-help:has(button){margin:0}.game-first .feedback{font-size:15px}.game-first .teacher-control-deck .primary{font-size:18px}.game-first .judge-buttons .primary{font-size:15px}
@media(max-width:650px){.setup-simple.shell{padding:18px 16px 28px}.setup-simple .setup-header{margin-bottom:22px}.lesson-picker{padding:22px 20px;border-radius:18px}.picker-heading{align-items:flex-start;flex-direction:column;gap:13px;margin-bottom:22px}.picker-heading h1{font-size:27px}.mode-switch button{font-size:13px;padding:7px 12px}.lesson-picker>select{font-size:16px;min-height:52px}.options-content .settings{grid-template-columns:1fr;gap:8px}.setup-secondary .live-options{right:-12px;width:270px}.game-first .teacher-control-deck{min-height:96px}.game-first .teacher-extras>summary{font-size:11px;padding:8px 10px;min-height:36px}.game-first .teacher-control-deck .primary{font-size:15px}.game-first .judge-buttons .primary{font-size:13px}}
/* One listening action; separate sound/word/auto controls remain in a disclosure. */
.learning-audio .listen-primary{font-size:14px;min-height:38px;padding:8px 16px}.audio-options{font-size:12px;position:relative}.audio-options>summary{cursor:pointer;color:#476b71;padding:8px;font-weight:800}.audio-options-content{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;margin-top:6px;background:#fffefa;border:1px solid #bcd9d7;border-radius:10px}.audio-options-content p{flex-basis:100%;font-size:11px;line-height:1.5;color:#54717b;margin:2px 0}.learning-audio:has(.audio-options[open]){align-items:flex-start}.learning-audio .audio-options[open]{flex:1 1 70%}.game-first .learning-status{font-size:10px;width:auto;max-width:100%;text-align:left}.game-first.oral-play:has(.is-revealed) .learning-audio{justify-content:center;border:0;background:transparent;padding:5px 0}.game-first .learning-audio .listen-primary{min-height:36px;font-size:13px;padding:8px 14px}

/* The quiz owns the whole game stage. Prompt, audio and actions descend together. */
.game-first.shell{grid-template-rows:auto minmax(0,1fr)}
.game-first .question-sheet{inset:0;left:0;top:0;width:100%;height:100%;max-height:none;padding:20px;display:flex;align-items:center;justify-content:center;overflow:hidden;scrollbar-gutter:auto;border:0;border-radius:18px;background:#fff9ec;box-shadow:none;box-sizing:border-box}
.game-first .quiz-composition{width:100%;max-width:920px;max-height:100%;min-height:0;display:flex;flex-direction:column;background:#fffefa;border:1px solid #c5dde1;border-radius:20px;box-shadow:0 6px 22px #18556b0d;overflow:hidden}
.game-first #question-content{padding:18px 24px 8px;min-height:0;overflow-y:auto;overscroll-behavior:contain;flex:0 1 auto}
.game-first .teacher-control-deck{flex:0 0 auto;display:block;min-height:0;border:0;border-top:1px solid #e1ebea;border-radius:0;box-shadow:none;padding:14px 24px 18px;background:#fffefa}
.game-first .oral-actions{justify-content:center;margin:0;gap:10px}.game-first .oral-actions .reveal-button{min-width:200px;min-height:48px}.game-first .judge-buttons{max-width:660px;margin:0 auto}.game-first .oral-actions .judgment-help:has(button){text-align:center;margin-top:4px}.game-first .oral-actions .judgment-help:not(:has(button)){margin:0}
.game-first .teacher-control-deck .bottom{justify-content:center;margin:0;min-height:0}.game-first.question-open .teacher-control-deck .bottom:has(#next[hidden]){height:0;overflow:hidden}
.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{margin:8px 0;padding:12px 16px;min-height:190px}.game-first .oral-attempt h1{margin:8px auto 12px}.game-first .oral-guidance{margin-top:12px}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:225px;min-height:190px}.game-first .oral-model .oral-reveal-image{max-height:150px}
.game-first .turn-receipt{position:absolute;z-index:7;top:10px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);padding:12px 16px;border:2px solid #9dcfcd;border-radius:15px;background:#fffefa;box-shadow:0 6px 20px #18556b22}.game-first .turn-receipt[hidden]{display:none}.turn-receipt-body{display:flex;align-items:center;gap:20px}.turn-receipt-body>strong{color:#18556b;font-size:18px;white-space:nowrap}.turn-receipt-actions{display:flex;align-items:center;gap:10px}.turn-receipt-actions button{min-height:44px}.turn-receipt-actions .primary{font-size:17px;padding:12px 18px}.turn-receipt .reward-context{font-size:10px;margin-bottom:6px;text-align:center}.turn-receipt .bottom{gap:18px}.turn-receipt .feedback{font-size:17px}
@media(min-width:761px) and (max-height:680px){.game-first .question-sheet{padding:12px}.game-first #question-content{padding:12px 20px 5px}.game-first .teacher-control-deck{padding:10px 20px 12px;min-height:0}.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:145px;padding:5px 12px;margin:5px 0}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:175px;min-height:150px}.game-first .oral-model .oral-reveal-image{max-height:110px}}
@media(max-width:760px){.game-first .question-sheet{inset:0;width:100%;height:100%;max-height:none;padding:10px;border-radius:14px}.game-first .quiz-composition{border-radius:15px}.game-first #question-content{padding:12px 13px 5px}.game-first .teacher-control-deck{padding:12px 12px 14px;min-height:0;display:block}.game-first .oral-actions .reveal-button{min-width:150px}.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:140px;padding:5px;margin:5px 0}.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{height:180px;min-height:150px}.game-first .oral-model .oral-reveal-image{max-height:115px}.game-first .turn-receipt{padding:10px 12px;top:8px}.turn-receipt-body{flex-wrap:wrap;justify-content:center;gap:8px}.turn-receipt-body>strong{font-size:16px}.turn-receipt-actions{gap:7px}.turn-receipt-actions button{font-size:13px;padding:10px 12px;min-height:42px}.turn-receipt-actions .primary{font-size:14px;padding:11px 13px}.turn-receipt .bottom{flex-wrap:wrap;justify-content:center;gap:9px}}
/* Visual lesson rails: existing publisher covers, honest text-only unit cards. */
.setup-simple.shell{max-width:1040px;padding:18px 24px 24px}.setup-simple .setup-header{margin-bottom:16px}.lesson-picker{padding:20px 24px}.picker-heading{margin-bottom:10px}.picker-heading h1{font-size:24px}.picker-section{min-width:0;margin-top:10px}.rail-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.rail-heading h2{font-size:13px;margin:0;color:#54717b}.rail-arrows{display:flex;gap:5px}.rail-arrows button{background:#edf5f6;color:#18556b;border:1px solid #c5dde1;border-radius:7px;font-size:20px;line-height:1;padding:2px 10px;min-height:28px;box-shadow:none}.picker-rail{display:flex;gap:10px;overflow-x:auto;padding:3px 3px 8px;scroll-snap-type:x proximity;scrollbar-width:thin;position:relative}.picker-rail>button{flex:0 0 auto;border:2px solid #d5e3e5;background:#fff;color:#244d5d;box-shadow:none;text-align:left;border-radius:12px;scroll-snap-align:start;white-space:normal}.picker-rail>button[aria-pressed=true]{border-color:#168b85;background:#e7f7f3;box-shadow:0 0 0 1px #168b85}.picker-rail button:focus-visible,.rail-arrows button:focus-visible{outline:3px solid #ee8044;outline-offset:2px}.series-card{width:157px;display:flex;align-items:center;gap:9px;padding:7px 9px;min-height:72px}.series-card img{width:36px;height:49px;object-fit:contain}.series-card strong{font-size:13px;line-height:1.3}.book-card{display:flex;align-items:center;gap:12px;width:236px;padding:8px 12px;min-height:118px}.book-card img{width:70px;height:96px;object-fit:contain}.book-card strong{display:block;font-size:14px;line-height:1.3}.book-card small{display:block;font-size:11px;color:#54717b;margin-top:8px}.unit-card{width:168px;padding:10px 12px;min-height:91px;display:flex;flex-direction:column;gap:5px}.unit-card small{font-size:11px;color:#54717b}.unit-card strong{font-size:15px;line-height:1.2}.unit-card span{font-size:11px;color:#54717b;margin-top:auto}.unit-card:disabled{opacity:.65;cursor:not-allowed}.setup-status{margin-top:8px;font-size:13px}.lesson-picker>.start{margin-top:8px;min-height:48px;padding:10px 20px}.setup-options{margin-top:14px;padding-top:8px}.setup-secondary{margin-top:8px}.picker-select-fallback[hidden]{display:none}
@media(max-width:650px){.setup-simple.shell{padding:14px 12px 22px}.lesson-picker{padding:16px 12px}.picker-heading{flex-direction:row;align-items:center;gap:8px;margin-bottom:12px}.picker-heading h1{font-size:20px}.mode-switch button{font-size:11px;padding:6px 7px}.series-card{width:144px}.book-card{width:218px}.unit-card{width:153px}.setup-simple .setup-header{margin-bottom:12px}.setup-simple .brand{font-size:13px}}
/* Use the available lesson viewport, independently of the browser fullscreen API. */
.game-first.shell{width:100%;max-width:none;margin:0;padding:6px;height:100svh;gap:6px}
.game-first .question-sheet{padding:0;border-radius:8px}
.game-first .quiz-composition{width:100%;max-width:none;height:100%;max-height:100%;border:0;border-radius:0;box-shadow:none}
.game-first #question-content{flex:1 1 auto;display:flex;flex-direction:column;padding:14px 28px 8px;min-height:0}
.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{flex:1 1 auto;min-height:0;margin:8px 0;padding:8px 12px}
.game-first .oral-attempt h1{font-size:clamp(32px,4.8vw,68px);max-width:1400px;line-height:1.15;margin:8px auto 16px}
.game-first .oral-word{font-size:clamp(96px,15vw,210px);line-height:1.12;overflow-wrap:anywhere}
.game-first .oral-context{font-size:clamp(25px,3.2vw,44px);max-width:1300px;margin:15px auto}
.game-first .oral-guidance{font-size:18px;margin-top:16px}
.game-first.oral-play:has(.is-revealed) .oral-model.picture-card{width:100%;height:100%;min-height:0;max-height:none;padding:8px 18px;overflow:auto}
.game-first .oral-model .oral-reveal-image{height:calc(100% - 110px);width:100%;max-height:none;min-height:0;object-fit:contain}
.game-first .oral-model .oral-word{font-size:clamp(56px,7vw,100px)}
.game-first .oral-model h2{font-size:clamp(34px,4.2vw,62px);line-height:1.2;overflow-wrap:anywhere}
.game-first .oral-model.context-card{display:flex;flex-direction:column;justify-content:center}
.game-first .teacher-control-deck{padding:14px 28px 18px}
.game-first .oral-actions .reveal-button{min-width:300px;min-height:64px;font-size:26px}
.game-first .oral-actions>.quiet{min-height:60px;font-size:22px;padding:12px 25px}
.game-first .judge-buttons{max-width:1000px;gap:14px}.game-first .judge-buttons button{height:64px;font-size:22px}.game-first .judge-buttons .primary{font-size:22px}
@media(max-width:760px),(max-height:560px){.game-first #question-content{padding:9px 12px 4px}.game-first .oral-attempt h1{font-size:clamp(25px,5vw,40px);margin:5px auto 10px}.game-first .oral-word{font-size:clamp(64px,15vw,120px)}.game-first .oral-context{font-size:23px}.game-first .oral-guidance{font-size:14px;margin-top:10px}.game-first .oral-model .oral-reveal-image{height:calc(100% - 80px);max-height:none}.game-first .oral-model .oral-word{font-size:48px}.game-first .oral-model h2{font-size:30px}.game-first .teacher-control-deck{padding:10px 12px}.game-first .oral-actions .reveal-button{min-width:170px;min-height:52px;font-size:21px}.game-first .oral-actions>.quiet{min-height:50px;font-size:18px}.game-first .judge-buttons{gap:7px}.game-first .judge-buttons button,.game-first .judge-buttons .primary{height:56px;font-size:16px}}
.sentence-tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:24px auto;max-width:1400px}.sentence-tiles span{font-size:clamp(32px,4.3vw,64px);font-weight:900;line-height:1.25;background:#e7f7f3;border:2px solid #add8d0;border-bottom:5px solid #86bfb6;border-radius:14px;padding:12px 22px;color:#18556b}.game-first .oral-attempt:has(.sentence-tiles) h1{font-size:clamp(28px,4vw,52px)}
@media(max-width:760px){.sentence-tiles{gap:9px;margin:16px auto}.sentence-tiles span{font-size:clamp(26px,6vw,40px);padding:9px 14px;border-radius:10px}.mode-switch{flex-wrap:wrap;justify-content:flex-end}}
.theme-picker{display:flex;gap:10px;margin:6px 0 14px}.theme-choice{flex:1;min-width:0;background:#fffefa;border:2px solid #d0e3e1;border-radius:12px;color:#18556b;font-size:13px;font-weight:900;padding:8px;box-shadow:none}.theme-choice[aria-pressed=true]{background:#e5f7f2;border-color:#168b85}.theme-choice>span{display:block;height:44px;margin-bottom:4px;font-size:28px}.theme-choice svg{height:44px;width:100%;max-width:100px}
/* Lesson selection occupies the viewport too; native fullscreen is optional. */
.setup-simple.shell{width:100%;max-width:none;min-height:100svh;margin:0;padding:16px clamp(12px,2vw,40px);display:grid;grid-template-rows:auto 1fr auto;gap:10px}
.setup-simple .setup-header{margin:0;min-width:0;gap:12px}.setup-tools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px}.setup-tools .quiet{min-height:40px;font-size:14px;padding:8px 16px}.setup-tools #fullscreen-status:not(:empty){flex-basis:100%;max-width:460px;font-size:12px;color:#714e3a}
.setup-simple .lesson-picker{min-width:0;min-height:0;display:flex;flex-direction:column;padding:18px clamp(14px,2vw,34px);border-radius:20px}
.setup-simple .picker-heading{flex:0 0 auto}.setup-simple .picker-section{flex:1 0 auto;display:flex;flex-direction:column;min-width:0}.setup-simple .picker-rail{flex:1;align-items:stretch;min-width:0;max-width:100%;gap:12px}.setup-simple .picker-section:has(#book-rail){flex-grow:1.35}
.setup-simple .series-card{width:clamp(168px,13vw,280px);padding:10px 12px}.setup-simple .series-card img{width:clamp(38px,4vw,72px);height:clamp(52px,8vh,98px)}.setup-simple .series-card strong{font-size:clamp(14px,1.15vw,21px)}
.setup-simple .book-card{width:clamp(260px,22vw,420px);padding:12px 16px;gap:18px}.setup-simple .book-card img{width:clamp(72px,9vw,156px);height:clamp(96px,17vh,210px)}.setup-simple .book-card strong{font-size:clamp(16px,1.5vw,25px)}.setup-simple .book-card small{font-size:clamp(12px,1vw,16px)}
.setup-simple .unit-card{width:clamp(190px,17vw,330px);padding:14px 16px;justify-content:center;gap:8px}.setup-simple .unit-card strong{font-size:clamp(17px,1.5vw,25px)}.setup-simple .unit-card small,.setup-simple .unit-card span{font-size:clamp(12px,1vw,16px)}.setup-simple .unit-card span{margin-top:8px}
.setup-simple .rail-heading h2{font-size:clamp(13px,1vw,17px)}.setup-simple .setup-status,.setup-simple .start,.setup-simple .setup-options{flex:0 0 auto}.setup-simple .setup-secondary{margin:0}.setup-simple .start{width:100%}
@media(min-width:761px) and (max-height:820px){.setup-simple.shell{padding:12px 20px;gap:8px}.setup-simple .lesson-picker{padding:14px 20px}.setup-simple .picker-section{margin-top:6px}.setup-simple .series-card{min-height:66px;padding:7px 10px}.setup-simple .series-card img{width:36px;height:49px}.setup-simple .book-card{min-height:112px;padding:8px 12px}.setup-simple .book-card img{width:70px;height:96px}.setup-simple .unit-card{min-height:88px;padding:10px 12px}.setup-simple .series-card strong,.setup-simple .unit-card strong{font-size:15px}.setup-simple .book-card strong{font-size:16px}.setup-simple .start{min-height:46px;margin-top:6px}.setup-simple .setup-options{margin-top:10px;padding-top:6px}}
@media(max-width:760px){.setup-simple.shell{padding:12px;display:flex;flex-direction:column;gap:10px}.setup-simple .setup-header{flex-wrap:wrap}.setup-tools{gap:12px;margin-left:auto}.setup-tools .quiet{font-size:12px;padding:7px 11px;min-height:36px}.setup-simple .lesson-picker{padding:14px 12px;flex:1}.setup-simple .picker-heading{flex-wrap:wrap}.setup-simple .picker-section{flex:0 0 auto}.setup-simple .series-card{width:160px;padding:8px}.setup-simple .series-card img{width:38px;height:52px}.setup-simple .book-card{width:245px;padding:10px 12px;gap:12px}.setup-simple .book-card img{width:78px;height:106px}.setup-simple .unit-card{width:180px;padding:12px}.setup-simple .picker-rail{flex:0 0 auto}.setup-simple .setup-secondary{flex:0 0 auto}}
.class-settings .celebration-rules{font-size:12px;line-height:1.4;margin:5px 0 12px;color:#54717b}.handicap-badge{font-size:10px!important;white-space:nowrap;background:#fff0c9;color:#75571e;border:1px solid #d9bd79;border-radius:6px;padding:3px 5px}.competition-team small+small{display:block;margin-top:4px}
/* A precommitted reward is part of this question, not a guessed gate outcome. */
.game-first .item-challenge.featured-prize{display:flex;align-items:center;justify-content:center;gap:18px;width:fit-content;max-width:100%;margin:0 auto 10px;padding:10px 24px;border:2px solid #dfaa3b;border-radius:20px;background:linear-gradient(120deg,#fff4bf,#fffdf1);box-shadow:0 4px 0 #e5c76b40;text-align:left}.featured-prize-art{flex:0 0 clamp(64px,7vh,100px);width:clamp(64px,7vh,100px);height:clamp(64px,7vh,100px)}.featured-prize-art svg{width:100%;height:100%;display:block}.game-first .featured-prize strong{display:block;font-size:clamp(22px,2.4vw,40px);line-height:1.12;letter-spacing:0;margin:3px 0}.game-first .featured-prize .prize-kicker{display:block;font-size:12px;font-weight:900;letter-spacing:.12em;color:#85600c}.game-first .featured-prize .prize-promise{display:block;font-size:14px;color:#745517;margin-top:5px}
@media(max-height:760px){.game-first .item-challenge.featured-prize{padding:7px 18px;margin-bottom:5px;gap:12px}.featured-prize-art{flex-basis:60px;width:60px;height:60px}.game-first .featured-prize strong{font-size:clamp(20px,2.3vw,30px)}}
@media(max-width:760px){.game-first .item-challenge.featured-prize{flex-direction:row;gap:9px;padding:8px 12px}.featured-prize-art{flex-basis:52px;width:52px;height:52px}.game-first .featured-prize strong{font-size:21px}.game-first .featured-prize .prize-kicker{font-size:10px}.game-first .featured-prize .prize-promise{font-size:11px}}
/* Optional local player roster; the default class setup needs no names. */
.player-roster{padding:12px;border:1px solid #c8dedb;border-radius:12px;margin:10px 0;background:#f4faf7}.player-roster p{font-size:12px;margin:7px 0;color:#426267}.roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.roster-player{display:grid;grid-template-columns:auto 64px minmax(0,1fr);align-items:center;gap:6px}.roster-player span{font-size:12px}.roster-player input{min-width:0;width:100%;padding:9px;border:1px solid #b7d1ce;border-radius:9px;font:inherit}.roster-player select{padding:8px}.next-player{font-size:12px;opacity:.85}.own-podium p{margin:5px 0;font-size:18px}.own-podium p strong{display:inline;font-size:28px;margin-left:12px}@media(max-width:640px){.roster-grid{grid-template-columns:1fr}.next-player{font-size:10px}}

/* Variable-height game results: every player stays inside the score panel. */
.finish-stage.game-results-stage{height:auto;min-height:258px;padding-top:130px;max-width:600px;align-items:flex-start;margin-bottom:28px}.game-results-stage .game-score-podium{height:auto;min-height:135px;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;padding:25px 18px 18px}.game-score-podium>span,.game-score-podium>small{grid-column:1/-1}.classroom-results-shell .game-score-podium>span:after{content:none}.game-score-podium>p{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;text-align:left;gap:8px;margin:0;padding:8px 10px;border-radius:10px;background:#ffffff13;line-height:1.35;overflow-wrap:anywhere;min-width:0}.game-score-podium>p strong{font-size:26px;line-height:1.2;margin:0;white-space:nowrap}.game-score-podium>small{padding-top:5px}@media(max-width:480px){.game-results-stage .game-score-podium{grid-template-columns:minmax(0,1fr);gap:6px;padding:23px 12px 14px}.game-score-podium>p{font-size:16px;padding:7px 9px}.game-score-podium>p strong{font-size:24px}}

/* BLOCKBUSTER CLASSROOM · luminous sapphire, warm paper and tactile gold.
   This skin leaves the full-stage sheet and all established action geometry intact. */
:root{--arena-navy:#071d34;--arena-sapphire:#153d60;--arena-teal:#51cbbf;--arena-gold:#f6ce73;--arena-coral:#ed927c;--arena-paper:#fffaf0;--arena-ink:#183b50;color:var(--arena-ink);background:var(--arena-navy)}
body{background:radial-gradient(ellipse at 12% 0,#1b5267 0,transparent 55%),linear-gradient(145deg,#102f4a,#06172e);background-attachment:fixed}
button{transition:background .15s,box-shadow .15s,transform .15s}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2bc55;outline-offset:3px}
button:disabled{opacity:.48}
.shell{color:#e5f4fc}
.brand{color:#effaff;letter-spacing:-.02em}
.brand-icon{background:linear-gradient(145deg,#80ead4,#299eae);box-shadow:inset 0 1px 0 #fff8,0 3px 0 #103950;border:1px solid #b5f5e3;color:#092e47;border-radius:11px}
.eyebrow{color:#79ded3}.muted{color:#adc9d9}
.quiet,.back{background:linear-gradient(150deg,#234c67,#173951);border:1px solid #7eb7c44d;box-shadow:inset 0 1px 0 #fff1;color:#e6f9ff;border-radius:12px}
.quiet:hover:not(:disabled),.back:hover{background:#2a5870;border-color:#a1dbe7aa}
.primary{background:linear-gradient(155deg,#ffe6a0,#f3bd59);color:#58401b;border:1px solid #fff0ba;box-shadow:inset 0 1px 0 #fff9,0 4px 0 #8d632a,0 6px 18px #09152b2b;border-radius:13px}
.primary:hover:not(:disabled){background:linear-gradient(155deg,#fff0bd,#ffd070);box-shadow:inset 0 1px 0 #fff,0 4px 0 #8d632a,0 9px 22px #09152b3b;transform:translateY(-1px)}
.primary:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px 0 #fff9,0 1px 0 #8d632a}
.panel{background:#fffaf0;border:1px solid #e8dcca;color:#183b50;box-shadow:0 8px 0 #071a2f44,0 16px 30px #04112333}
.panel .muted{color:#5b7180}.panel .eyebrow{color:#2c827e}
select,input{accent-color:#239d9a}
select{color:#183b50;background:#fffdf7;border:1px solid #bfd1d6;border-radius:11px}
.text-link{color:#b7dae9}.text-link:hover{color:#fff5c6}
/* Lesson lobby: a cinematic setting around an uncluttered, readable selection. */
.setup-simple.shell{position:relative;isolation:isolate;padding:16px clamp(14px,2.2vw,42px);gap:13px;background:linear-gradient(100deg,#06192de8,#0a2947c4 60%,#08213bba),url('assets/blockbuster-arena-v1.png') center/cover fixed}
.setup-simple .setup-header{min-height:44px}
.setup-simple .brand{font-size:17px;font-weight:950;letter-spacing:-.025em}
.setup-simple .brand-icon{width:34px;height:34px}
.setup-tools{gap:20px}.setup-tools .quiet{font-size:13px;min-height:38px}
.setup-tools #fullscreen-status:not(:empty){color:#ffe0a0}
.setup-simple .lesson-picker{position:relative;background:linear-gradient(145deg,#133952f5,#0b2943f5);border:1px solid #8bd4e455;border-radius:24px;padding:21px clamp(16px,2.2vw,36px);box-shadow:inset 0 1px 0 #d6f7ff24,0 12px 40px #020d2699;overflow:hidden}
.setup-simple .picker-heading{margin-bottom:14px;gap:20px}
.setup-simple .picker-heading h1{color:#fff6dc;font-size:clamp(26px,2.5vw,40px);letter-spacing:-.045em;line-height:1.1}
.mode-switch{background:#061d32aa;border:1px solid #80bdd133;padding:4px;border-radius:12px;gap:3px}
.mode-switch button{color:#a5c6d7;border-radius:8px;padding:8px 13px;font-size:12px}
.mode-switch button[aria-pressed=true]{background:linear-gradient(145deg,#457686,#24596c);color:#f0fffc;box-shadow:inset 0 1px 0 #a6e8e755,0 2px 4px #0002}
.mode-switch button:hover:not(:disabled){color:#fff}
.setup-simple .picker-section{margin-top:9px}
.rail-heading{margin-bottom:7px}
.setup-simple .rail-heading h2{font-size:10px;font-weight:950;letter-spacing:.16em;text-transform:uppercase;color:#87ccdc}
.rail-arrows{gap:5px}
.rail-arrows button{background:#143f56;color:#c4eef5;border:1px solid #69a2b655;border-radius:8px;font-size:20px;min-height:27px;box-shadow:inset 0 1px 0 #fff1;padding:1px 10px}
.rail-arrows button:hover{background:#276178;color:#fff}
.setup-simple .picker-rail{padding:3px 3px 10px;gap:12px;scrollbar-color:#51899d transparent;scrollbar-width:thin}
.picker-rail>button{position:relative;border:1px solid #bad3d8;background:linear-gradient(135deg,#fffdf6,#eaf2ef);color:#193d51;border-radius:15px;box-shadow:inset 0 1px 0 white,0 4px 0 #061b2d,0 5px 10px #020a1f30;transition:transform .16s,border-color .16s,box-shadow .16s}
.picker-rail>button:hover:not(:disabled){transform:translateY(-2px);border-color:#b1f1e9;box-shadow:inset 0 1px 0 white,0 6px 0 #061b2d,0 10px 18px #020a1f44}
.picker-rail>button[aria-pressed=true]{border:2px solid #ffdf8a;background:linear-gradient(140deg,#fff9dc,#f8e4b8);box-shadow:inset 0 1px 0 white,0 4px 0 #96713d,0 0 0 1px #ffe09b22}
.picker-rail>button[aria-pressed=true]:after{content:'✓';position:absolute;top:7px;right:8px;display:grid;place-items:center;width:19px;height:19px;border-radius:7px;background:#194c5a;color:#fff1b2;font-size:12px;box-shadow:0 1px 2px #071b2c33}
.setup-simple .series-card{border-radius:13px;gap:12px;padding-right:28px}
.setup-simple .series-card img{filter:drop-shadow(2px 4px 3px #102f4b33);border-radius:2px}
.setup-simple .series-card strong{font-size:clamp(14px,1.1vw,20px);letter-spacing:-.025em}
.setup-simple .book-card{border-radius:17px;gap:18px;padding-right:30px}
.setup-simple .book-card img{filter:drop-shadow(4px 5px 3px #183e4933);border-radius:2px}
.setup-simple .book-card strong{font-size:clamp(16px,1.45vw,24px);line-height:1.15;letter-spacing:-.03em}
.setup-simple .book-card small{color:#68808a;font-size:12px}
.setup-simple .unit-card{border-radius:14px;padding-right:28px}
.setup-simple .unit-card strong{color:#21465b;letter-spacing:-.02em}
.setup-simple .unit-card small{color:#6f827e;font-weight:900;letter-spacing:.08em;font-size:10px;text-transform:uppercase}
.setup-simple .unit-card span{color:#66808b;font-size:11px}
.setup-simple .unit-card:disabled{background:#214057;color:#96b7c7;border-color:#5d8da144;box-shadow:0 3px 0 #061b2d;opacity:.58}
.setup-simple .unit-card:disabled strong,.setup-simple .unit-card:disabled small,.setup-simple .unit-card:disabled span{color:#a8c4d0}
.setup-simple .setup-status{color:#aad3df;font-size:12px;font-weight:700;margin-top:6px;min-height:17px}
.setup-simple .lesson-picker>.start{margin-top:9px;border-radius:13px;min-height:51px;font-size:21px;letter-spacing:-.02em;box-shadow:inset 0 1px 0 #fff9,0 4px 0 #8b632d,0 7px 16px #020d2533}
.setup-simple .lesson-picker>.start:disabled{background:#446071;border-color:#628191;color:#cad9de;box-shadow:none;opacity:.55}
.setup-options{border-color:#85b5c32b;margin-top:18px;padding-top:12px}
.setup-options>summary,.more-units>summary,.lesson-notes>summary{color:#a9cddb;font-size:12px;letter-spacing:.02em}
.setup-options[open]{overflow:visible}
.options-content{color:#d5eaf0}
.options-content .class-settings{background:#102f45;border:1px solid #78aabb44;border-radius:15px;color:#cee6ef}
.class-settings legend{color:#a9e3df;font-size:12px;letter-spacing:.07em}
.class-settings .celebration-rules{color:#acc9d6}
.class-settings label{font-size:12px;line-height:1.4}
.theme-picker{gap:9px}.theme-choice{background:linear-gradient(145deg,#24475e,#17364c);border:1px solid #79aabf66;color:#cee9f1;box-shadow:0 3px 0 #061a2c;border-radius:12px;padding:9px}
.theme-choice[aria-pressed=true]{background:linear-gradient(145deg,#fff2bd,#eec677);border-color:#ffe4a3;color:#554322;box-shadow:0 3px 0 #7f622e}
.player-roster{background:#092238;border:1px solid #7299ae44;border-radius:12px}
.player-roster p{color:#a5c3d2}.roster-player input{background:#f4f9f6;color:#1c4054;border-color:#9cb7be}
.more-units,.lesson-notes{border-color:#85b5c32b}
.more-units .unit-row{background:#183c52;border-color:#6794a744;color:#c6e0e9}
.more-units .unit-row:has(input:checked){background:#245667;border-color:#6dbaad}
.more-units .unit-row small{color:#a3c4d2}.lesson-notes p,.lesson-notes a{color:#a7c6d4}
.setup-secondary{gap:28px}.setup-secondary .text-link,.setup-secondary .live-launch>summary{color:#8fbbcd;font-size:12px}
.setup-secondary .live-options{background:#12364d;border:1px solid #72b2c16b;box-shadow:0 10px 25px #0005;border-radius:14px}
.setup-secondary .live-options p{color:#b7d7e4}
/* Quiet teacher chrome, with a bright stage that descends as one piece. */
.game-first.shell{background:radial-gradient(ellipse at 50% 0,#17465b,#081d34 70%);padding:8px;gap:7px}
.game-first .game-toolbar{padding:0 3px}
.game-first .game-toolbar header{gap:12px;min-height:42px}
.game-first .brand{color:#e5f7ff;font-size:13px}
.game-first .brand-icon{width:28px;height:28px;border-radius:9px}
.game-first .class-hud{color:#d3edf5;border:1px solid #76b6c63d;background:#143a51;min-height:39px;padding:7px 12px;border-radius:11px;box-shadow:inset 0 1px 0 #fff1;gap:10px}
.game-first .class-hud b{color:#fff2c4;font-size:13px}
.game-first #class-clock{color:#8ce6d5}
.game-first .hud .quiet,.game-first .teacher-extras>summary{background:#173b53;color:#b6d8e5;border:1px solid #71a6ba4d;border-radius:10px;padding:8px 12px;font-size:11px;min-height:38px;box-shadow:inset 0 1px 0 #fff1}
.game-first .hud .quiet:hover,.game-first .teacher-extras[open]>summary{background:#27566b;color:#fff}
.game-first .teacher-menu{background:#11334b;border:1px solid #82bdca66;color:#e3f5fc;border-radius:15px;box-shadow:0 15px 40px #0008}
.game-first .teacher-menu .quiet{background:#1c435a;color:#d6edf6;border-color:#6b9fb642}
.game-first .teacher-menu #exit{border-color:#a1686144;color:#ffbca5}
.game-first .teacher-menu .teacher-tips{color:#c5e2ec}
.game-first .teacher-menu .teacher-tips[open]{background:#0b263e;color:#c8e0e9}
.game-first .teacher-menu .teacher-tips p{color:#bad4df}
.game-first .fullscreen-status:not(:empty){background:#fff0c5;border-color:#efc767;color:#6d4c23}
.game-first .game-surface{border-radius:18px;overflow:hidden;background:#071c32;box-shadow:0 0 0 1px #8adbe62b,0 12px 35px #020d2944}
.game-first .question-sheet{border-radius:17px;background:radial-gradient(ellipse at 50% 25%,#fffefa,#fcf4e6);color:#183b50}
.game-first .quiz-composition{background:linear-gradient(165deg,#fffdf7,#f8f4ea);color:#183b50}
.game-first #question-content{padding:18px 30px 8px;background:radial-gradient(ellipse at 50% 40%,#fff,transparent 70%)}
.game-first .progress{gap:6px;margin:6px 0 9px}
.game-first .progress span{background:#d9e2df;height:4px}.game-first .progress span.done{background:#349f97}.game-first .progress span.current{background:#e8b855}
.game-first .oral-meta{color:#73878c;font-size:10px;letter-spacing:.09em}
.game-first .item-challenge{color:#53747a}
.game-first .item-challenge.is-item{background:#fff0c7;color:#69502a;border:1px solid #e8c877}
.game-first .oral-attempt h1{color:#26495a;letter-spacing:-.035em}
.game-first .oral-word{color:#133d56;letter-spacing:-.04em;text-shadow:0 3px 0 #fff}
.game-first .oral-word mark{color:#b9503b;background:#ffe19a;text-decoration-color:#cf8e32}
.game-first .oral-context{color:#30566a}
.game-first .oral-guidance,.game-first .model-label{color:#778b8c}
.game-first .oral-model h2{color:#1b4158}.game-first .oral-model p{color:#4f6c77}
.game-first .oral-model .oral-reveal-image{filter:drop-shadow(0 7px 6px #3a51551a)}
.game-first .teacher-control-deck{background:linear-gradient(#fffcf7,#f4eee2);border-top:1px solid #dedfd6;padding:16px 28px 20px;box-shadow:0 -7px 20px #35505b04}
.game-first .oral-actions .reveal-button{background:linear-gradient(145deg,#ffe6a0,#f2bd5b);border-color:#e9c574;color:#614722;box-shadow:inset 0 2px 0 #fff8,0 4px 0 #b1813b;min-height:61px;font-size:25px;border-radius:15px}
.game-first .oral-actions>.quiet,.game-first .judge-buttons .quiet,.game-first .judgment-help .quiet{background:#e8efed;color:#4b6874;border:1px solid #c4d2d1;box-shadow:0 3px 0 #bdcfcb}
.game-first .judge-buttons #oral-got{background:linear-gradient(#3ba49a,#23847e);color:#fffdf1;border:1px solid #75c9b9;box-shadow:inset 0 1px 0 #d0ffed66,0 4px 0 #175b5c}
.game-first .judge-buttons #oral-try{background:linear-gradient(#a68abe,#8870a7);color:#fff8ff;border:1px solid #c9b6de;box-shadow:inset 0 1px 0 #fff5,0 4px 0 #64517e}
.game-first .judge-buttons #oral-pass{background:linear-gradient(#f3f0e8,#e7e5dc);color:#697d83;border:1px solid #ccd2cb;box-shadow:inset 0 1px 0 #fff,0 4px 0 #b6c1bd}
.game-first .judge-buttons button:disabled{opacity:.45}
.game-first .learning-audio{background:#edf2ed;border-color:#d5e0d8;border-radius:12px;box-shadow:none;color:#456776}
.game-first .learning-audio .quiet{background:#edf3ef;border:1px solid #c9d9d4;color:#426574;box-shadow:none}
.game-first .learning-audio .quiet[aria-pressed=true]{background:#d8ebe4;border-color:#7eb7a8;color:#2e665d}
.game-first .learning-status,.game-first .audio-options>summary,.game-first .learning-credits{color:#72878b}
.game-first .audio-options-content{background:#fffdf6;border-color:#ccdad7}.game-first .audio-options-content p{color:#647f88}
.game-first .sentence-tiles span{background:linear-gradient(#fff9e8,#f9e7b7);border-color:#dfc782;border-bottom-color:#c3a468;color:#25475b;box-shadow:inset 0 2px 0 #fff9,0 4px 6px #3a51550a;border-radius:15px}
.game-first .item-challenge.featured-prize{background:linear-gradient(130deg,#fff6d7,#f9e1a0);border:1px solid #e5c36a;box-shadow:inset 0 1px 0 #fff,0 3px 0 #d6b56555;border-radius:20px}
.game-first .featured-prize strong{color:#5c4521;letter-spacing:-.035em}.game-first .featured-prize .prize-kicker{color:#9d7935}.game-first .featured-prize .prize-promise{color:#866a36}
.game-first .turn-receipt{background:linear-gradient(145deg,#fff9e7,#f9e8bd);border:1px solid #efcc76;border-radius:17px;box-shadow:inset 0 1px 0 white,0 5px 0 #9b7536,0 12px 25px #020f2e55;top:12px}
.turn-receipt-body>strong,.turn-receipt .feedback{color:#5b4527}.turn-receipt .reward-context{color:#896c3c}
.turn-receipt .quiet{background:#fff7e7;border-color:#dfc997;color:#725c37}
#app:fullscreen{background:#071d34}
/* Other practice modes and end-of-session records use the same material family. */
.play:not(.game-first) .question-top h1{color:#eff9ff}
.play:not(.game-first) .question-top .eyebrow{color:#86d5d1}
.play:not(.game-first) .picture-card{background:#fffaf0;color:#193c50;border-color:#e0d3ba;box-shadow:0 8px 0 #041b2d66}
.play:not(.game-first) .context-card{background:#fffaf0;color:#21475b}
.play:not(.game-first) .learning-audio{background:#153c50;border-color:#6894a944;color:#c5e4ea}.play:not(.game-first) .learning-status,.play:not(.game-first) .learning-label{color:#a3c5d5}
.play:not(.game-first) .oral-stage{background:#fffaf0;color:#193c50;border-color:#dcc9a7;box-shadow:0 5px 0 #03162666}
.play:not(.game-first) .oral-meta{color:#92bacb}.play:not(.game-first) .oral-guidance{color:#66808c}
.play:not(.game-first) .oral-word,.play:not(.game-first) .oral-attempt h1{color:#1b435b}
.pill{background:#173d54;border-color:#6796ab4d;color:#d9edf5}
#score{background:linear-gradient(#fff1ba,#ebc470);border:1px solid #ffdfa0;color:#614921;box-shadow:inset 0 1px 0 #fff8}
.overlay{background:#06162bd9;backdrop-filter:blur(8px)}
.overlay .panel{border:1px solid #efd9a5;box-shadow:0 20px 80px #0006}
.ready-number{color:#186b7d}
.classroom-results-shell{background:radial-gradient(ellipse at 50% 12%,#16445e,#081c34 70%);max-width:none;padding:20px clamp(16px,4vw,60px) 45px}
.classroom-results-shell .finish{max-width:900px}
.classroom-results-shell .finish h1{color:#fff4d6;letter-spacing:-.045em}
.classroom-results-shell .finish>.eyebrow{color:#83d7cb}
.classroom-results-shell .finish>.muted{color:#adc6d5;max-width:730px;margin-left:auto;margin-right:auto}
.classroom-results-shell .finish-sun{width:420px;height:350px;left:calc(50% - 210px);top:-35px;background:repeating-conic-gradient(from 5deg,#f9d77c38 0deg 11deg,transparent 11deg 30deg)}
.classroom-results-shell .finish-pal{filter:drop-shadow(0 10px 7px #04122c55)}
.classroom-results-shell .ribbon{background:linear-gradient(#fff0b2,#ebba51);color:#78511d;border:2px solid #fff0c4;box-shadow:0 4px 0 #936527}
.classroom-results-shell .own-podium{background:linear-gradient(145deg,#2f7083,#15455e);border:1px solid #85d1d6;box-shadow:inset 0 2px 0 #b9eee93b,0 8px 0 #04172d,0 16px 40px #020e2b66;color:#fff8d8;border-radius:24px}
.classroom-results-shell .own-podium>span{color:#98d8d5;letter-spacing:.18em;font-size:10px}
.classroom-results-shell .own-podium small{color:#9ecbd5}
.classroom-results-shell .game-score-podium>p{background:#082b435c;border:1px solid #8ec7d62b;border-radius:11px;color:#d6edf5;font-size:17px}
.classroom-results-shell .game-score-podium>p strong{color:#ffe39b;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.classroom-results-shell .stat{background:linear-gradient(145deg,#24495d,#17384e);border:1px solid #72a4b53b;box-shadow:inset 0 1px 0 #fff1,0 4px 0 #06182b;color:#adcad8;border-radius:17px;font-size:13px}
.classroom-results-shell .stat strong{color:#f6e6bd;font-size:34px}
.classroom-results-shell .review-row{background:#fffaf1;border:1px solid #e0d8c5;border-left:5px solid #73bba5;color:#536c75;border-radius:14px;padding:16px;box-shadow:0 4px 0 #07182b55}
.classroom-results-shell .review-row strong{color:#275c65}.classroom-results-shell .review-row .muted{color:#72848b}
.classroom-results-shell .review-row.needs-practice{background:#f6effa;border-left-color:#b39bce}.classroom-results-shell .review-row.needs-practice span{color:#815d9b}
.classroom-results-shell .review-row.not-judged{background:#eaf1f4;border-left-color:#99b1c3}.classroom-results-shell .review-row>span{font-weight:900;color:#40806e}
.classroom-results-shell .review-unit{color:#90a0a5;font-size:10px;letter-spacing:.04em}
.classroom-results-shell .competition-rail{background:linear-gradient(145deg,#173e57,#0b2840);border:1px solid #72adbf55;color:#d5eaf4;box-shadow:0 5px 0 #04162b}
.classroom-results-shell .competition-kicker,.classroom-results-shell .competition-note{color:#a6c7d4}.classroom-results-shell .competition-rail h2{color:#fff0c8}
.classroom-results-shell .competition-team{background:#21465d;border-color:#6798ad44;color:#d7edf7}.classroom-results-shell .competition-team.is-active{background:#f5d78d;color:#594224;border-color:#ffe9b8;box-shadow:0 3px 0 #7f632f}
/* Preserve generous tap targets and honest full rosters on smaller screens. */
@media(min-width:761px) and (max-height:820px){
 .setup-simple.shell{padding:11px 20px;gap:9px}.setup-simple .lesson-picker{padding:14px 20px;border-radius:20px}.setup-simple .picker-heading{margin-bottom:8px}.setup-simple .picker-heading h1{font-size:29px}.setup-simple .picker-section{margin-top:5px}.setup-simple .picker-rail{padding-bottom:7px}.setup-simple .rail-heading{margin-bottom:5px}.setup-simple .lesson-picker>.start{min-height:47px;font-size:19px;margin-top:7px}.setup-simple .setup-options{margin-top:12px;padding-top:7px}
 .game-first #question-content{padding-top:12px}.game-first .teacher-control-deck{padding:12px 26px 16px}.game-first .oral-actions .reveal-button{min-height:56px;font-size:23px}
}
@media(max-width:760px){
 .setup-simple.shell{padding:12px;gap:10px;background-attachment:scroll}.setup-simple .setup-header{min-height:37px;gap:9px}.setup-simple .brand{font-size:14px}.setup-simple .brand-icon{width:28px;height:28px}.setup-tools{gap:13px}.setup-tools .quiet{min-height:34px;padding:7px 10px;font-size:11px}.setup-simple .lesson-picker{padding:16px 12px;border-radius:18px}.setup-simple .picker-heading{gap:10px;margin-bottom:10px}.setup-simple .picker-heading h1{font-size:25px}.setup-simple .mode-switch{padding:3px}.setup-simple .mode-switch button{font-size:11px;padding:6px 9px}.setup-simple .rail-heading h2{font-size:9px}.setup-simple .picker-rail{gap:9px}.setup-simple .book-card{padding-right:28px}.setup-simple .lesson-picker>.start{min-height:48px;font-size:20px}.setup-secondary{gap:25px}.setup-secondary .text-link,.setup-secondary .live-launch>summary{font-size:11px}
 .game-first.shell{padding:6px;gap:6px}.game-first .game-toolbar{padding:0}.game-first .game-toolbar header{min-height:36px}.game-first .class-hud{min-height:35px;padding:6px 9px;gap:6px}.game-first .class-hud b{font-size:11px}.game-first .hud .quiet,.game-first .teacher-extras>summary{min-height:35px;padding:7px 9px;font-size:10px}.game-first .game-surface{border-radius:13px}.game-first .question-sheet{border-radius:12px}.game-first #question-content{padding:11px 14px 5px}.game-first .teacher-control-deck{padding:11px 12px 14px}.game-first .oral-actions .reveal-button{min-height:52px;font-size:21px;border-radius:12px}.game-first .oral-actions>.quiet{font-size:17px}.game-first .judge-buttons button,.game-first .judge-buttons .primary{font-size:15px}.game-first .oral-meta{font-size:9px}.game-first .turn-receipt{top:9px;max-width:calc(100% - 20px)}
 .classroom-results-shell{padding:14px 12px 30px}.classroom-results-shell .finish h1{font-size:35px}.classroom-results-shell .review-row{padding:12px;gap:10px}.classroom-results-shell .review-row>span{font-size:11px}.classroom-results-shell .stat{padding:14px 17px;font-size:12px}.classroom-results-shell .stat strong{font-size:28px}.classroom-results-shell .game-score-podium>p{font-size:15px}.classroom-results-shell .game-score-podium>p strong{font-size:24px}
}
@media(min-width:701px) and (max-height:560px){.game-first .game-toolbar header{min-height:34px}.game-first .class-hud{min-height:33px}.game-first .hud .quiet,.game-first .teacher-extras>summary{min-height:33px}.game-first .teacher-control-deck{padding:8px 15px 11px}.game-first .oral-actions .reveal-button{min-height:48px;font-size:20px}}
@media(prefers-reduced-motion:reduce){button,.picker-rail>button{transition:none}.primary:hover:not(:disabled),.picker-rail>button:hover:not(:disabled){transform:none}}

/* Selected world travels into the fixed classroom chrome. No layout changes. */
.game-first.shell:has(.unit-reward[data-theme=garden]){--class-world:#183f46;--class-deep:#102a37;--class-rim:#76b59d;--class-accent:#efb6d3;--class-paper:#fbfff5}
.game-first.shell:has(.unit-reward[data-theme=ocean]){--class-world:#16465f;--class-deep:#082c44;--class-rim:#7ac7d4;--class-accent:#b8e9fa;--class-paper:#f3fcff}
.game-first.shell:has(.unit-reward[data-theme=halloween]){--class-world:#41344f;--class-deep:#251f37;--class-rim:#ae8dc4;--class-accent:#ffd29c;--class-paper:#fff8f0}
.game-first.shell:has(.unit-reward[data-theme]){background:radial-gradient(ellipse at 50% 0,var(--class-world),var(--class-deep) 75%)}
.game-first:has(.unit-reward[data-theme]) .class-hud,.game-first:has(.unit-reward[data-theme]) .hud .quiet,.game-first:has(.unit-reward[data-theme]) .teacher-extras>summary{background:var(--class-world);border-color:color-mix(in srgb,var(--class-rim) 40%,transparent)}
.game-first:has(.unit-reward[data-theme]) #class-clock{color:var(--class-accent)}
.game-first:has(.unit-reward[data-theme]) .game-surface{background:var(--class-deep)}
.game-first:has(.unit-reward[data-theme]) .quiz-composition{background:linear-gradient(165deg,#fffefa,var(--class-paper))}
.theme-choice[data-theme=garden]{background:linear-gradient(145deg,#285c5b,#163d44);border-color:#91cdb1;color:#e6ffec}
.theme-choice[data-theme=ocean]{background:linear-gradient(145deg,#256e84,#143954);border-color:#97dae5;color:#e4faff}
.theme-choice[data-theme=halloween]{background:linear-gradient(145deg,#624875,#302840);border-color:#bca0d3;color:#ffe8d5}
.theme-choice[data-theme][aria-pressed=true]{outline:2px solid #fff0be;outline-offset:2px;box-shadow:0 3px 0 #081727;color:#fff7df}
.setup-simple.shell:has(.theme-choice[data-theme=garden][aria-pressed=true]){background-image:linear-gradient(100deg,#102a37ed,#143c45c9 65%,#143c4577),url('assets/blockbuster-arena-v1.png')}
.setup-simple.shell:has(.theme-choice[data-theme=ocean][aria-pressed=true]){background-image:linear-gradient(100deg,#092c44ed,#16465fc9 65%,#16465f77),url('assets/world-ocean-v2.png')}
.setup-simple.shell:has(.theme-choice[data-theme=halloween][aria-pressed=true]){background-image:linear-gradient(100deg,#251f37ed,#41344fc9 65%,#41344f77),url('assets/world-halloween-v2.png')}
/* Frequently changed class timing stays beside Start, outside advanced options. */
.session-timer-setup{display:flex;align-items:end;flex-wrap:wrap;gap:10px 16px;margin:12px 0;text-align:left}
.session-timer-setup label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700}
.session-timer-setup select,.session-timer-setup input{min-height:42px;max-width:240px;padding:8px 10px;border:1px solid #c8d6da;border-radius:10px;background:#fff;color:#173c48;font:inherit}
.session-timer-setup small{flex:1;min-width:180px;font-size:12px;color:#526d73;padding-bottom:8px}
.session-timer-setup [role=alert]{flex-basis:100%;margin:0;color:#a33436;font-size:13px}
.session-timer-setup [role=alert]:empty{display:none}
@media(max-width:560px){.session-timer-setup label{flex:1;min-width:145px}.session-timer-setup select,.session-timer-setup input{width:100%;max-width:none}.session-timer-setup small{flex-basis:100%;padding:0}}

/* Height-first classroom layout. The toolbar and action deck are real grid/flex
   rows; only unusually long lesson text scrolls, never the required controls. */
#app:fullscreen{overflow:auto}
.game-first.shell{height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr);padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}
.game-first .game-surface{container-type:size;min-width:0}
.game-first .question-sheet{height:100%;max-height:100%;padding:0}
.game-first .quiz-composition{height:100%;min-height:0}
.game-first #question-content{flex:1 1 0;min-height:0;overflow:auto}
.game-first .teacher-control-deck{flex:0 0 auto;padding:12px 24px 16px}
.game-first .oral-stage,.game-first.oral-play:has(.is-revealed) .oral-stage{min-height:0;flex:1 1 auto;margin:5px 0;padding:5px 12px}
.game-first .oral-attempt h1{font-size:clamp(26px,min(4vw,6cqh),54px);margin:5px auto 10px}
.game-first .oral-word{font-size:clamp(64px,min(13vw,24cqh),172px)}
.game-first .oral-context{font-size:clamp(22px,min(3vw,4.8cqh),36px);margin:10px auto}
.game-first .oral-guidance{font-size:clamp(13px,2.5cqh,17px);margin-top:10px}
.game-first .oral-model h2{font-size:clamp(28px,min(4vw,6cqh),48px)}
.game-first .oral-model .oral-word{font-size:clamp(42px,min(6vw,9cqh),72px)}
.game-first .sentence-tiles{gap:10px;margin:14px auto}
.game-first .sentence-tiles span{font-size:clamp(26px,min(3.8vw,5.7cqh),48px);padding:9px 16px}
.game-first .oral-attempt:has(.sentence-tiles) h1{font-size:clamp(26px,min(4vw,5.5cqh),44px)}
.game-first .teacher-control-deck .bottom{padding-top:5px}
.game-first .teacher-control-deck .bottom:has(#next[hidden]){padding-top:0}
.game-first .oral-actions .reveal-button,.game-first .oral-actions>.quiet{min-height:48px}
.game-first .judge-buttons button{height:54px;min-height:44px}
/* On laptop/projector landscape screens put Series and Book beside each other.
   All choices remain horizontally browsable; Start and timing stay in view. */
@media(min-width:761px) and (max-height:900px){
 .setup-simple.shell{min-height:100dvh;padding:10px 18px;gap:8px}
 .setup-simple .lesson-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-content:start;column-gap:20px;padding:12px 18px}
 .setup-simple .lesson-picker>*{grid-column:1 / -1}
 .setup-simple .picker-section:has(#series-rail){grid-column:1}
 .setup-simple .picker-section:has(#book-rail){grid-column:2}
 .setup-simple .picker-section{margin-top:4px}
 .setup-simple .picker-heading{margin-bottom:5px}
 .setup-simple .picker-heading h1{font-size:28px}
 .setup-simple .series-card{min-height:82px;padding:8px}
 .setup-simple .series-card img{width:38px;height:52px}
 .setup-simple .book-card{min-height:82px;padding:6px 10px}
 .setup-simple .book-card img{width:50px;height:68px}
 .setup-simple .unit-card{min-height:76px;padding:8px 12px;gap:4px}
 .setup-simple .unit-card span{margin-top:3px}
 .setup-simple .picker-rail{padding-bottom:7px}
 .setup-simple .setup-status{margin:4px 0;min-height:17px}
 .setup-simple .sentence-practice-choice{margin:5px 0}
 .setup-simple .lesson-picker>.muted{margin:4px 0;font-size:12px}
 .setup-simple .session-timer-setup{margin:7px 0;gap:8px 14px}
 .setup-simple .session-timer-setup small{color:#b5d0da}
 .setup-simple .lesson-picker>.start{min-height:46px;margin-top:5px}
 .setup-simple .setup-options{margin-top:9px;padding-top:5px}
 .setup-secondary .live-options{top:auto;bottom:36px}
}
@media(max-width:760px){
 .game-first .game-toolbar header{flex-wrap:wrap;gap:5px}
 .game-first .game-toolbar .brand{width:auto}
 .game-first .hud{flex-wrap:wrap;min-width:0;gap:5px}
 .game-first .class-hud{min-width:0}
 .game-first .teacher-control-deck{padding:9px 10px 13px}
 .game-first .oral-actions{flex-wrap:wrap}
}
/* End-of-session review can be long; put the existing restart/navigation actions
   before that record so they do not require scrolling through every answer. */
.classroom-results-shell .finish{display:flex;flex-direction:column}
.classroom-results-shell .finish>.actions{order:-1;margin:8px 0 16px}

/* A genuine controls dock for short landscape viewports (including browser zoom).
   Lesson selection scrolls independently; timer and Start never join that scroll.
   Portrait retains natural page flow, including fully expanded setup options. */
.setup-selection,.setup-start-dock{display:contents}
@media(min-width:761px) and (max-height:900px){
 .setup-simple.shell{height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
 .setup-simple .lesson-picker{display:flex;flex-direction:column;min-height:0;gap:0;overflow:visible}
 .setup-simple .setup-selection{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-content:start;column-gap:20px;min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:3px 3px 8px}
 .setup-simple .setup-selection>*{grid-column:1 / -1}
 .setup-simple .setup-selection>.picker-section:has(#series-rail){grid-column:1}
 .setup-simple .setup-selection>.picker-section:has(#book-rail){grid-column:2}
 .setup-simple .setup-selection>.muted{margin:4px 0;font-size:12px}
 .setup-simple .setup-start-dock{display:block;flex:0 0 auto;padding-top:5px;border-top:1px solid #85b5c32b;background:#10324b}
 .setup-simple .setup-start-dock>.start{width:100%;margin:5px 0 0;min-height:46px;padding:10px 20px;font-size:19px;border-radius:13px}
 .setup-simple .setup-options{flex:0 0 auto;margin-top:7px;padding-top:3px}
 .setup-simple .setup-options[open]{min-height:0;flex:0 1 auto;max-height:30dvh;overflow:auto;overscroll-behavior:contain}
 .setup-simple .setup-secondary{flex:0 0 auto}
}
@media(min-width:761px) and (max-height:900px){
 .setup-simple .setup-start-dock>.learning-record-setup{margin:5px 0;padding:7px 10px;font-size:13px;line-height:1.4;border-radius:10px}
 .setup-simple .setup-start-dock>.learning-record-setup[open]{max-height:20dvh;overflow:auto;overscroll-behavior:contain}
}
