/* HỌC MÀ CHƠI – giao diện ngang cho iPad, đấu máy, hai người và phòng cả lớp */
.game-entry{margin-top:34px}.game-entry h2 small{color:#ff7a18}.game-entry .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-tile{border-color:#d79b25;background-color:#fff;background-image:linear-gradient(145deg,#fff9e8,#fff);color:#17223d}
.game-tile:hover{border-color:#dc7200;box-shadow:0 12px 30px #ff9d2038}.game-tile b{color:#111c35;font-size:1.18rem}.game-tile>span:not(.meta),.game-tile p{color:#46516a}.game-tile .meta{color:#33405c;font-weight:750}
.game-entry .game-tile{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;min-height:180px;padding:22px 24px;border-width:3px;border-radius:24px}.game-entry-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#fff;color:#17223d;font-size:2.7rem;box-shadow:0 7px 18px #17223d24}.game-entry-copy{display:grid;gap:5px;min-width:0}.game-entry-copy b{font:900 clamp(1.35rem,2.2vw,1.85rem)/1.2 'Baloo 2',sans-serif}.game-entry-copy>span{color:#46516a;font-size:clamp(.95rem,1.45vw,1.08rem);font-weight:650;line-height:1.5}.game-entry .game-tile .meta{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px;padding-top:13px;border-top:2px solid #24324d24;font-size:.9rem;line-height:1.4}.game-entry .game-tile .meta>span:last-child{text-align:right}.game-entry .mini-entry-tile{background-color:#fffbed;background-image:linear-gradient(145deg,#fff8d5,#f0f8ff)}.game-entry .room-entry-tile{border-color:#78a4df;background-color:#f4f8ff;background-image:linear-gradient(145deg,#edf5ff,#fff)}.game-entry .room-entry-tile:hover{border-color:#3473c8;box-shadow:0 12px 30px #3473c82b}.mini-entry-tile .game-entry-icon{background:#fff0ae}.room-entry-tile .game-entry-icon{background:#dceaff}
@media(max-width:700px){.game-entry .grid{grid-template-columns:1fr}.game-entry .game-tile{grid-template-columns:58px minmax(0,1fr);min-height:155px;padding:17px;border-radius:20px}.game-entry-icon{width:52px;height:52px;border-radius:16px;font-size:2.15rem}.game-entry-copy b{font-size:1.3rem}.game-entry-copy>span{font-size:.92rem}.game-entry .game-tile .meta{font-size:.79rem}}
.game-room-head{display:flex;align-items:center;gap:18px;margin:18px 0 28px}.game-room-head h1{margin:2px 0}.game-room-head p{margin:0;color:var(--muted)}
.game-room-head small{color:var(--muted);font-weight:700}.game-icon{display:grid;place-items:center;width:82px;height:82px;border-radius:26px;background:linear-gradient(135deg,#fff0aa,#ffb347);font-size:42px;box-shadow:0 10px 24px #ed8b2030}
.game-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.game-mode{min-height:140px;padding:22px;border:2px solid var(--line);border-radius:22px;background:var(--card);color:var(--text);text-align:left;cursor:pointer;box-shadow:var(--shadow);font:inherit}.game-mode:hover{transform:translateY(-2px);border-color:#ff991f}.game-mode b,.game-mode span{display:block}.game-mode b{font:800 1.25rem/1.25 'Baloo 2',sans-serif;margin-bottom:8px}.game-mode span{color:var(--muted);line-height:1.45}
.game-classbox{margin-top:20px;max-width:640px}.game-classbox h3{margin-top:0}.game-classbox label{display:grid;gap:7px;margin:14px 0;font-weight:700}.game-classbox input,.game-classbox select{min-height:48px;padding:8px 12px;border:2px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font:700 1rem inherit}.game-classbox input{text-transform:uppercase;letter-spacing:.18em;font-size:1.25rem}.game-classbox #gcMsg{margin-top:12px;color:#d65a00;font-weight:700}
body.game-active{overflow:hidden;background:#09142d}.game-active>.top,.game-active>#app,.game-active>#toast{display:none!important}.game-arena{position:fixed;inset:0;z-index:9000;display:flex;flex-direction:column;overflow:auto;padding:max(12px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(circle at 18% 5%,#203d78 0,#0c1a3b 42%,#071125 100%);color:#fff;font-family:'Be Vietnam Pro',sans-serif}
.ga-head{display:grid;grid-template-columns:auto 1fr auto 72px;align-items:center;gap:16px;min-height:50px}.ga-head button,.class-lobby>[data-exit]{border:0;border-radius:12px;background:#ffffff18;color:#fff;padding:10px 14px;font:700 1rem inherit;cursor:pointer}.ga-head>b{text-align:center;font-size:1.08rem}.ga-head>span{font-weight:700;color:#d8e5ff}.ga-head time{display:grid;place-items:center;width:58px;height:42px;border-radius:14px;background:#ffb21c;color:#221500;font:800 1.35rem 'Baloo 2',sans-serif}
.ga-score{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;text-align:center;margin:8px auto 4px;width:min(650px,70%);font-weight:700}.ga-score i{height:28px;background:#ffffff30}.ga-score b{margin-left:8px;color:#ffd55f;font-size:1.35rem}
.ga-question{display:grid;place-items:center;flex:1;min-height:104px;margin:8px auto 12px;width:min(1050px,94%);padding:18px 28px;border:2px solid #ffffff24;border-radius:24px;background:#ffffff10;text-align:center;font:700 clamp(1.15rem,2.2vw,1.8rem)/1.5 'Be Vietnam Pro',sans-serif}.ga-question mjx-container{font-size:110%!important}
.ga-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(1000px,94%);margin:0 auto}.ga-options button,.ga-player button{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:12px;min-height:68px;padding:10px 16px;border:2px solid #91a8d040;border-radius:18px;background:#f7faff;color:#12213d;text-align:left;font:600 1rem/1.35 inherit;cursor:pointer}.ga-options button:hover,.ga-player button:hover{border-color:#ffd05c;transform:translateY(-1px)}.ga-options button>b,.ga-player button>b{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#dce7fa;color:#17315f;font:800 1.12rem 'Baloo 2',sans-serif}.ga-options button.picked,.ga-player button.picked{border-color:#f6b51e;background:#fff6cb}.ga-options button.right,.ga-player button.right{border-color:#35d07f;background:#dffbea}.ga-options button.wrong,.ga-player button.wrong{border-color:#ff6472;background:#ffe4e7}.ga-options button:disabled,.ga-player button:disabled{cursor:default;opacity:1}
.ga-duel{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:min(1180px,98%);margin:0 auto}.ga-player{padding:10px;border-radius:22px;background:#ffffff0b}.ga-player h3{text-align:center;margin:0 0 7px;color:#ffd666}.ga-player>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ga-player button{min-height:62px;padding:8px 10px;grid-template-columns:38px 1fr}.ga-player button>b{width:34px;height:34px}.ga-bot,.game-wait{text-align:center;margin:12px;font-weight:700;color:#c9d8f3}
.game-arena footer{width:min(1050px,96%);margin:10px auto 0;text-align:center}.ga-explain{display:inline-block;margin-right:14px;padding:10px 16px;border-radius:14px;background:#ffffff16;text-align:left;line-height:1.45}.game-arena .btn{border-color:#ffffff40;background:#ffffff16;color:#fff}.game-arena .btn.primary{border-color:#ffc340;background:#ffb21c;color:#211600;font-weight:800}
.game-result,.class-lobby{width:min(900px,94%);margin:auto;text-align:center}.game-cup{font-size:76px}.game-result h1,.class-lobby h1{font:800 clamp(1.8rem,4vw,3.3rem) 'Baloo 2',sans-serif;margin:6px}.result-versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin:28px auto;width:min(650px,90%)}.result-versus>span{padding:20px;border-radius:22px;background:#ffffff12}.result-versus b,.result-versus small{display:block}.result-versus b{font:800 2.8rem 'Baloo 2',sans-serif;color:#ffd35d}.result-versus small{color:#d2dff5}.result-versus i{font-size:2rem}.game-result .row{justify-content:center}
.class-lobby>small{display:block;color:#bbcae6;letter-spacing:.2em;margin-top:8px}.class-lobby>strong{display:block;font:800 clamp(3.5rem,11vw,8rem)/1 'Baloo 2',sans-serif;letter-spacing:.12em;color:#ffd04f;text-shadow:0 5px 24px #ff9d3050}.class-players{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-height:180px;overflow:auto;margin:16px 0}.class-players span{padding:8px 12px;border-radius:20px;background:#ffffff14}.class-players small{color:#b9c9e6}.class-host{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:20px;width:min(1050px,96%);margin:0 auto}.class-host>div:first-child{text-align:center}.class-host>div:first-child b,.class-host>div:first-child span{display:block}.class-host>div:first-child b{font:800 2rem 'Baloo 2',sans-serif;color:#ffd05a}.class-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.class-bars>span{position:relative;display:grid;grid-template-columns:28px 1fr 24px;align-items:center;gap:5px;overflow:hidden;padding:8px;border-radius:11px;background:#ffffff12}.class-bars i{position:absolute;inset:0 auto 0 0;background:#43d38b33}.class-bars b,.class-bars em{z-index:1;font-style:normal}.class-result ol{list-style:none;padding:0;max-width:650px;margin:16px auto;text-align:left}.class-result li{display:flex;justify-content:space-between;gap:18px;padding:11px 16px;border-bottom:1px solid #ffffff20}.game-loading{margin:auto;font-size:1.2rem}
@media(max-width:800px){.game-modes{grid-template-columns:1fr}.game-room-head{align-items:flex-start}.game-active .game-arena{padding:8px 12px}.ga-question{min-height:86px;padding:12px 18px}.ga-options button{min-height:58px}.class-host{grid-template-columns:110px 1fr}.class-host>.btn{grid-column:1/-1}.ga-explain{font-size:.9rem}.ga-duel{gap:8px}.ga-player{padding:6px}.ga-player button span{font-size:.82rem}}

/* Bốn màu đáp án kiểu trò chơi đố vui: A đỏ, B xanh dương, C vàng, D xanh lá. */
.game-arena [data-o="0"]{background:#e8434f;border-color:#ff8790;color:#fff}
.game-arena [data-o="1"]{background:#2878d0;border-color:#7cb9ff;color:#fff}
.game-arena [data-o="2"]{background:#f3b61f;border-color:#ffdc72;color:#201600}
.game-arena [data-o="3"]{background:#28a866;border-color:#75dfa7;color:#fff}
.game-arena [data-o]>b{background:#ffffff2b;color:inherit;border:1px solid #ffffff38}
.game-arena [data-o].picked{outline:4px solid #fff;outline-offset:-5px;filter:brightness(1.08)}
.game-arena [data-o].right{outline:4px solid #b9ffcb;outline-offset:-5px;box-shadow:0 0 0 3px #20d76e,0 8px 22px #0004}
.game-arena [data-o].wrong{opacity:.42;filter:grayscale(.35)}

/* Điện thoại đặt dọc vẫn chơi đầy đủ, không che màn hình yêu cầu xoay ngang. */
@media (orientation:portrait), (max-width:600px){
  .game-arena{padding:max(8px,env(safe-area-inset-top)) max(9px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));overflow-y:auto}
  .ga-head{position:sticky;top:0;z-index:5;grid-template-columns:auto minmax(0,1fr) auto 48px;gap:6px;padding:4px 0 7px;background:#0c1a3bee}
  .ga-head button{padding:8px;font-size:.82rem}.ga-head>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.ga-head>span{font-size:.78rem;white-space:nowrap}.ga-head time{width:44px;height:38px;font-size:1.1rem}
  .ga-score{width:96%;margin:5px auto;font-size:.85rem}.ga-score b{font-size:1.05rem}
  .ga-question{flex:none;width:100%;min-height:108px;margin:5px 0 9px;padding:13px 12px;border-radius:17px;font-size:clamp(1rem,4.5vw,1.28rem);line-height:1.45}
  .ga-options{grid-template-columns:1fr;width:100%;gap:8px}
  .ga-options button{grid-template-columns:42px 1fr;width:100%;min-height:61px;padding:8px 11px;border-radius:15px;font-size:.95rem}
  .ga-options button>b{width:36px;height:36px;border-radius:10px}
  .ga-bot,.game-wait{margin:8px;font-size:.9rem}
  .game-arena footer{width:100%;margin-top:8px}.ga-explain{display:block;margin:0 0 8px;padding:9px 11px;font-size:.87rem}.game-arena footer .btn{width:100%}
  .ga-duel{grid-template-columns:1fr;width:100%;gap:8px}.ga-player{padding:7px}.ga-player h3{font-size:1rem;margin-bottom:5px}.ga-player>div{grid-template-columns:1fr 1fr;gap:6px}.ga-player button{display:grid;grid-template-columns:30px 1fr;min-height:56px;padding:6px;border-radius:13px}.ga-player button>b{width:27px;height:27px;font-size:.9rem}.ga-player button span{font-size:.76rem;overflow-wrap:anywhere}
  .class-host{grid-template-columns:1fr;width:100%;gap:9px}.class-host>div:first-child b{display:inline;margin-right:6px}.class-bars{gap:5px}.class-bars>span{grid-template-columns:22px 1fr 17px;padding:6px 4px;font-size:.8rem}.class-host>.btn{grid-column:auto;width:100%}
  .class-lobby>strong{font-size:clamp(3rem,20vw,5.4rem)}.class-players{max-height:220px}.class-result li{font-size:.86rem;padding:9px 8px}.result-versus{width:100%;gap:8px}.result-versus>span{padding:12px 7px}.result-versus b{font-size:2rem}
}

/* Ảnh nền phòng chơi do thầy cung cấp; lớp màu tối giữ công thức và đáp án dễ đọc. */
.game-arena.play-bg,.game-arena.lobby-bg,.game-arena.result-bg{--game-bg:url("../images/game/Epic%20Mathematics%20Arena%20Poster-optimized.webp");background-image:linear-gradient(125deg,#06132ee6,#132d61c9),var(--game-bg);background-size:cover;background-position:center;background-attachment:fixed}
.game-arena.lobby-bg{background-image:linear-gradient(125deg,#07142ac7,#263a70ad),var(--game-bg)}
.game-arena.result-bg{background-image:linear-gradient(125deg,#1e1145cc,#422167b8),var(--game-bg)}
.game-sound-float{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:9200;display:grid;place-items:center;width:48px;height:48px;border:2px solid #ffffff55;border-radius:50%;background:#091735d9;color:#fff;font-size:1.35rem;box-shadow:0 7px 22px #0007;cursor:pointer}

/* Avatar theo từng tài khoản học sinh. */
.game-avatar-current{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:12px;min-height:112px;padding:16px;border:2px solid #d8b4fe;border-radius:20px;background:linear-gradient(145deg,#f6e9ff,#fff6d9);color:#332253;text-align:left;box-shadow:var(--shadow);cursor:pointer}.game-avatar-current span{grid-row:1/3;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff;font-size:2.7rem;box-shadow:0 6px 16px #7c3aed25}.game-avatar-current b{font:800 1.14rem 'Baloo 2',sans-serif}.game-avatar-current b:after{content:' · Đổi avatar';display:block;color:#8057a8;font:600 .8rem 'Be Vietnam Pro',sans-serif}
.game-hub-avatar{display:flex;align-items:center;gap:12px;float:right;margin:0 0 12px 20px;padding:8px 10px;border-radius:18px;background:linear-gradient(135deg,#fff1c7,#f0dcff);color:#38275d}.game-hub-avatar>span{font-size:2.2rem}.game-hub-avatar>b{font-family:'Baloo 2',sans-serif}
.game-avatar-overlay{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:16px;background:#071126d9;backdrop-filter:blur(8px)}.game-avatar-card{width:min(760px,96vw);max-height:94vh;overflow:auto;padding:22px;border:3px solid #ffd966;border-radius:28px;background:linear-gradient(160deg,#fffdf1,#f3e9ff);color:#271b42;text-align:center;box-shadow:0 25px 80px #0008}.avatar-stars{font-size:1.5rem}.game-avatar-card h2{margin:3px 0;font:800 clamp(1.6rem,4vw,2.4rem) 'Baloo 2',sans-serif}.game-avatar-card p{margin:0 0 14px;color:#6d5a80}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.avatar-grid button{display:grid;justify-items:center;gap:4px;padding:12px 6px;border:2px solid #dcc8ed;border-radius:18px;background:#fff;color:#38275d;cursor:pointer;font:inherit}.avatar-grid button:hover,.avatar-grid button:focus{transform:translateY(-2px) scale(1.02);border-color:#985cdf;background:#fff8cf}.avatar-grid span{font-size:2.8rem}.avatar-grid b{font:800 .9rem 'Baloo 2',sans-serif}.avatar-close{margin-top:14px}

/* Bảng xếp hạng trực tiếp: bên phải màn hình rộng, xuống dưới trên điện thoại. */
.class-play-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;flex:1;min-height:0;width:min(1320px,100%);margin:0 auto}.class-play-layout.with-rank{grid-template-columns:minmax(0,1fr) minmax(230px,280px)}.class-play-main{display:flex;flex-direction:column;min-width:0;min-height:0}.class-play-main .ga-question{flex:1}.class-play-main .ga-options,.class-play-main .class-host{width:100%}
.class-rank{min-width:0;overflow:hidden;border:2px solid #ffffff2d;border-radius:20px;background:#07142dde;box-shadow:0 12px 32px #0005}.class-rank h3{margin:0;padding:12px 14px;background:linear-gradient(90deg,#ffb51f,#ffdb64);color:#211600;font:800 1.12rem 'Baloo 2',sans-serif}.class-rank ol{list-style:none;margin:0;padding:7px;max-height:calc(100vh - 115px);overflow:auto}.class-rank li{display:grid;grid-template-columns:25px 38px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 6px;border-bottom:1px solid #ffffff17}.class-rank li.me{border-radius:12px;background:#7b5cff3d;box-shadow:inset 0 0 0 2px #c5b8ff}.class-rank em{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#ffffff16;font-style:normal;font-weight:800}.class-rank li:nth-child(1) em{background:#ffd23f;color:#3a2600}.class-rank li:nth-child(2) em{background:#dce6f1;color:#26384b}.class-rank li:nth-child(3) em{background:#d89058;color:#3b1c08}.rank-avatar{font-size:1.65rem}.class-rank li>span:nth-child(3){min-width:0}.class-rank li b,.class-rank li small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-rank li b{font-size:.85rem}.class-rank li small{color:#b8c8e7;font-size:.68rem}.class-rank strong{color:#ffd75d;font-size:.82rem}

@media (orientation:portrait), (max-width:700px){
  .avatar-grid{grid-template-columns:repeat(3,1fr)}.game-avatar-card{padding:16px 11px}.avatar-grid span{font-size:2.25rem}.avatar-grid b{font-size:.76rem}.game-hub-avatar{float:none;width:max-content;max-width:100%;margin:0 0 12px}
  .class-play-layout.with-rank{grid-template-columns:1fr;display:flex;flex-direction:column}.class-play-main{flex:none}.class-rank{order:2;overflow:visible}.class-rank h3{padding:8px 11px}.class-rank ol{max-height:190px}.class-rank li{grid-template-columns:24px 34px minmax(0,1fr) auto;padding:5px}.rank-avatar{font-size:1.4rem}
  .game-sound-float{width:43px;height:43px;font-size:1.15rem}
}

/* Màn hình giáo viên tối ưu cho máy chiếu và điều khiển phòng tự động. */
.game-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.game-auto-help{margin:8px 0 16px;color:var(--muted);line-height:1.45}
.host-view{padding:clamp(10px,1.3vw,24px)}.host-view .ga-head{grid-template-columns:auto 1fr auto 82px;min-height:58px;gap:clamp(10px,1.5vw,24px)}.host-view .ga-head>b{font-size:clamp(1.1rem,1.7vw,1.6rem)}.host-view .ga-head>span{font-size:clamp(1rem,1.35vw,1.3rem)}.host-view .ga-head time{width:72px;height:50px;font-size:1.7rem}
.host-view .class-play-layout{width:100%;max-width:1800px;gap:clamp(10px,1.2vw,22px)}.host-view .class-play-layout.with-rank{grid-template-columns:minmax(0,1fr) clamp(220px,17vw,300px)}.host-view .class-play-main{display:grid;grid-template-rows:minmax(120px,.75fr) minmax(180px,1.25fr) auto auto;gap:clamp(8px,1vh,14px);overflow:auto}.host-view .ga-question{width:100%;min-height:0;margin:0;padding:clamp(18px,2.5vw,42px);font:800 clamp(1.6rem,2.65vw,3.1rem)/1.38 'Be Vietnam Pro',sans-serif;background:#07142dcc;border-width:3px;overflow-wrap:anywhere}.host-view .ga-question mjx-container{font-size:118%!important}
.host-view .host-options{width:100%;height:100%;gap:clamp(10px,1.2vw,18px)}.host-options>div{display:grid;grid-template-columns:clamp(48px,4vw,66px) minmax(0,1fr);align-items:center;gap:clamp(10px,1.2vw,18px);min-height:clamp(78px,11vh,132px);padding:clamp(12px,1.6vw,24px);border:3px solid #ffffff66;border-radius:clamp(16px,1.6vw,26px);font:750 clamp(1.25rem,2vw,2.25rem)/1.35 'Be Vietnam Pro',sans-serif;box-shadow:0 8px 22px #0004;overflow-wrap:anywhere}.host-options>div>b{display:grid;place-items:center;width:clamp(44px,3.8vw,62px);height:clamp(44px,3.8vw,62px);border-radius:16px;font:900 clamp(1.25rem,2vw,2rem) 'Baloo 2',sans-serif}.host-options>div.right{outline:5px solid #caffd6;outline-offset:-7px;box-shadow:0 0 0 4px #20d76e,0 10px 28px #0005}
.host-view .class-host{grid-template-columns:clamp(100px,9vw,150px) minmax(300px,1fr) minmax(250px,auto);width:100%;gap:clamp(10px,1.2vw,20px);padding:8px 12px;border-radius:18px;background:#07142dbd}.class-answer-count{text-align:center}.class-answer-count b,.class-answer-count span{display:block}.host-view .class-answer-count b{font:900 clamp(1.8rem,2.5vw,2.6rem) 'Baloo 2',sans-serif;color:#ffd05a}.host-view .class-bars>span{grid-template-columns:32px 1fr 28px;min-height:48px;padding:10px;font-size:1.05rem}.class-controls{display:grid;grid-template-columns:1fr 1.25fr;gap:7px;min-width:0}.class-controls .btn{min-height:48px;padding:8px 12px;font-size:.95rem;white-space:nowrap}.class-controls small{grid-column:1/-1;text-align:center;color:#dbe7ff;font-weight:700}.class-controls small b{color:#ffd45b;font-size:1.15em}.game-arena .class-auto.on{border-color:#72e6a8;background:#176d49;color:#fff}
.host-view .game-arena footer,.host-view footer{width:100%;margin:0}.host-view .ga-explain{display:block;margin:0;padding:12px 18px;font-size:clamp(1rem,1.25vw,1.25rem);background:#07142dde}.host-view .class-rank h3{font-size:clamp(1.05rem,1.35vw,1.3rem)}.host-view .class-rank li{grid-template-columns:28px 42px minmax(0,1fr) auto;padding:8px 6px}.host-view .class-rank li b{font-size:clamp(.82rem,1vw,1rem)}.host-view .class-rank strong{font-size:clamp(.82rem,1vw,1rem)}
@media(max-height:760px) and (orientation:landscape){.host-view .ga-head{min-height:46px}.host-view .class-play-main{grid-template-rows:minmax(90px,.65fr) minmax(150px,1.35fr) auto auto}.host-view .ga-question{padding:12px 22px;font-size:clamp(1.35rem,2.3vw,2.4rem)}.host-options>div{min-height:64px;padding:9px 14px;font-size:clamp(1.05rem,1.65vw,1.7rem)}.host-view .class-host{padding:5px 9px}.class-controls .btn{min-height:42px}.host-view .ga-explain{padding:8px 13px}}
@media(max-width:900px){.game-create-grid{grid-template-columns:1fr}.host-view .class-play-layout.with-rank{grid-template-columns:minmax(0,1fr) 210px}.host-view .class-host{grid-template-columns:90px 1fr}.host-view .class-controls{grid-column:1/-1;grid-template-columns:1fr 1fr}}
@media (orientation:portrait), (max-width:700px){.host-view{overflow-y:auto}.host-view .class-play-layout.with-rank{display:flex;grid-template-columns:1fr}.host-view .class-play-main{display:flex;overflow:visible}.host-view .ga-question{min-height:120px;font-size:clamp(1.2rem,5vw,1.75rem)}.host-view .host-options{grid-template-columns:1fr 1fr}.host-options>div{grid-template-columns:36px minmax(0,1fr);min-height:82px;padding:9px;gap:8px;font-size:clamp(.9rem,3.6vw,1.15rem)}.host-options>div>b{width:34px;height:34px;border-radius:10px;font-size:1rem}.host-view .class-host{grid-template-columns:1fr;gap:7px}.host-view .class-bars>span{min-height:38px;padding:6px}.class-controls{grid-template-columns:1fr 1fr}.class-controls .btn{white-space:normal}.host-view .class-rank{order:2}.host-view .ga-explain{font-size:.9rem}}

/* Tổng kết cho giáo viên: xếp các câu có nhiều đáp án sai nhất để chữa bài. */
.teacher-result{width:min(1700px,98%);max-width:none;margin:0 auto;padding:8px 0 28px}.teacher-result .game-cup{font-size:54px}.teacher-result>h1{font-size:clamp(1.8rem,3vw,3rem)}.class-result-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(600px,1.8fr);align-items:start;gap:18px;margin:16px 0 22px}.result-ranking,.class-review{border:2px solid #ffffff30;border-radius:22px;background:#07142ddd;overflow:hidden;text-align:left;box-shadow:0 12px 34px #0005}.result-ranking h2,.class-review>h2{margin:0;padding:14px 18px;background:linear-gradient(90deg,#ffb51f,#ffdd72);color:#241700;font:900 clamp(1.15rem,1.7vw,1.55rem) 'Baloo 2',sans-serif}.teacher-result .result-ranking ol{margin:0;max-height:66vh;overflow:auto}.teacher-result .result-ranking li{padding:12px 15px;font-size:clamp(.9rem,1.1vw,1.08rem)}.review-lead{margin:0;padding:9px 16px;color:#c8d6ef;background:#ffffff0c}.class-review{max-height:72vh;overflow:auto}.review-card{margin:12px;border:2px solid #ffffff25;border-radius:18px;background:#102651e8;overflow:hidden}.review-card>header{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:11px 15px;background:#ffffff12}.review-card>header b{font:900 1.15rem 'Baloo 2',sans-serif;color:#ffd65c}.review-card>header span{font-weight:800;color:#ffadb5}.review-question{padding:15px 18px;text-align:center;font:800 clamp(1.2rem,1.65vw,1.75rem)/1.45 'Be Vietnam Pro',sans-serif}.review-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px 12px}.review-options>div{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 11px;border:2px solid #ffffff1f;border-radius:12px;background:#ffffff0b}.review-options>div.correct{border-color:#6be49f;background:#16724880}.review-options b{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#ffffff20}.review-options em{color:#cad8ef;font-size:.78rem;font-style:normal;white-space:nowrap}.review-solution{padding:12px 16px;background:#081831;color:#eaf2ff;line-height:1.5}.review-solution>b{color:#72eea8}.review-perfect{padding-bottom:20px;text-align:center}.review-perfect p{padding:0 18px;color:#d5e1f5}
@media(max-width:950px){.class-result-grid{grid-template-columns:1fr}.teacher-result .result-ranking ol,.class-review{max-height:none}.review-options{grid-template-columns:1fr}}

/* Tự co chữ màn hình trò chơi giáo viên như chế độ trình chiếu bài tập học sinh. */
.host-view{--host-fs:32px}.host-question-no{color:#ffd158;font-weight:900}.host-view .ga-question{font-size:calc(var(--host-fs) * 1.16);line-height:1.3}.host-view .host-options>div{font-size:var(--host-fs);line-height:1.25}.host-view .host-options>div>b{font-size:.82em}.host-view .host-options>div>span{min-width:0}.host-view .class-play-main{overflow:hidden}
/* Phiêu lưu vượt màn Toán 10 – nhân vật và phong cảnh riêng của Học mà chơi. */
.game-adventure-callout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin:8px 0 28px;padding:22px 24px;border:3px solid #7c3aed;border-radius:25px;background:linear-gradient(135deg,#322080,#7042d8 58%,#ff9f2f);color:#fff;box-shadow:8px 8px 0 #382065}.game-adventure-callout small{font-weight:900;letter-spacing:.12em;color:#ffe873}.game-adventure-callout h2{margin:3px 0 5px;color:#fff;font-size:clamp(1.45rem,3vw,2.15rem)}.game-adventure-callout p{margin:0;color:#f1ebff;line-height:1.5}.game-adventure-callout .btn{min-height:52px;border-color:#fff3a5;background:#ffd34d;color:#241657;white-space:nowrap;font-weight:900}
.game-arena.adventure-bg{overflow:auto;background:linear-gradient(180deg,#0d2858 0,#2453a3 40%,#10264f 100%);color:#fff}.adv-head time{width:auto;min-width:82px;padding:0 10px}.adv-status{display:grid;grid-template-columns:auto auto minmax(120px,1fr);align-items:center;gap:16px;width:min(1280px,100%);margin:5px auto 10px}.adv-status>span{letter-spacing:.08em;white-space:nowrap}.adv-status>b{color:#ffe36b;white-space:nowrap}.adv-status>div{height:12px;overflow:hidden;border:2px solid #ffffff70;border-radius:99px;background:#07162e}.adv-status i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffbe2e,#fff06a);transition:width .35s ease}
.adv-layout{display:grid;grid-template-columns:minmax(340px,.86fr) minmax(0,1.4fr);align-items:stretch;gap:16px;flex:1;width:min(1320px,100%);margin:0 auto}.adv-world{position:relative;min-height:380px;overflow:hidden;border:3px solid #ffffff80;border-radius:25px;background:linear-gradient(#60caff 0 56%,#d9f3ff 56% 58%,#58b84f 58% 100%);box-shadow:inset 0 0 45px #1261a460,0 14px 35px #0005}.adv-world:before{content:'';position:absolute;left:0;right:0;bottom:0;height:58px;background:repeating-linear-gradient(90deg,#ad622e 0 44px,#8a4723 44px 48px);border-top:12px solid #54a93f}.adv-cloud{position:absolute;color:#fff;font-size:3.2rem;filter:drop-shadow(0 5px 0 #77b8df);opacity:.9}.adv-cloud.c1{left:8%;top:12%}.adv-cloud.c2{right:10%;top:24%;font-size:2.4rem}.adv-hill{position:absolute;bottom:58px;width:190px;height:110px;border-radius:50% 50% 0 0;background:#35a853;border:5px solid #21843b}.adv-hill.h1{left:-35px}.adv-hill.h2{right:-55px;width:230px;height:145px;background:#49ba5a}.adv-path{position:absolute;left:5%;right:5%;bottom:95px;height:8px;border-radius:99px;background:#fff4a8;box-shadow:0 3px 0 #bd7b28}.adv-path i{position:absolute;top:50%;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#80541e;transform:translate(-50%,-50%);font-size:.7rem;font-style:normal}.adv-path i.done{background:#ffcf33;box-shadow:0 0 15px #fff56c}.adv-path i.current{outline:4px solid #fff}.adv-path i.boss{background:#b93131}.adv-hero{position:absolute;z-index:3;left:var(--hero);bottom:65px;font-size:3.3rem;filter:drop-shadow(0 7px 2px #0005);transform:translateX(-50%);transition:left .45s ease}.adv-gate{position:absolute;z-index:2;left:var(--gate);bottom:60px;font-size:3.3rem;filter:drop-shadow(0 6px 2px #0004);transform:translateX(-50%)}.adv-jump{position:absolute;right:12px;bottom:12px;z-index:4;min-width:96px;min-height:48px;border:2px solid #fff;border-radius:16px;background:#6547d8;color:#fff;font:900 1rem 'Baloo 2',sans-serif;box-shadow:0 6px 0 #392391;cursor:pointer}.adv-hero.jump{animation:adv-jump .65s ease}.adv-hero.ouch{animation:adv-ouch .45s ease}@keyframes adv-jump{0%,100%{transform:translate(-50%,0) rotate(0)}45%{transform:translate(-50%,-90px) rotate(-10deg)}}@keyframes adv-ouch{0%,100%{transform:translateX(-50%)}25%{transform:translateX(calc(-50% - 14px))}75%{transform:translateX(calc(-50% + 14px))}}
.adv-challenge{display:flex;flex-direction:column;min-width:0;padding:18px;border:3px solid #ffffff50;border-radius:25px;background:#071831d9;box-shadow:0 14px 35px #0005}.adv-challenge>small{text-align:center;color:#ffd65c;font-weight:900;letter-spacing:.08em}.adv-question{display:grid;place-items:center;flex:1;min-height:110px;padding:15px;text-align:center;font:800 clamp(1.1rem,1.7vw,1.55rem)/1.45 'Be Vietnam Pro',sans-serif;overflow-wrap:anywhere}.adv-question mjx-container{font-size:110%!important}.adv-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.adv-options button{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;min-height:67px;padding:9px 12px;border:3px solid #ffffff70;border-radius:17px;text-align:left;font:700 clamp(.9rem,1.15vw,1.05rem)/1.35 'Be Vietnam Pro',sans-serif;cursor:pointer;overflow-wrap:anywhere}.adv-options button>b{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#ffffff30}.adv-options button:disabled{cursor:default}.adv-challenge footer{width:100%;margin-top:10px}.adv-challenge .ga-explain{display:block;margin:0 0 8px;background:#ffffff12}.adv-challenge footer .btn{width:100%}
.adv-result{width:min(1050px,96%);margin:auto;padding:24px 0;text-align:center}.adv-result h1{margin:4px;font:900 clamp(2rem,4vw,3.5rem) 'Baloo 2',sans-serif}.adv-result-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px auto;width:min(760px,100%)}.adv-result-numbers span{padding:18px;border:2px solid #ffffff36;border-radius:20px;background:#071831d9}.adv-result-numbers b,.adv-result-numbers small{display:block}.adv-result-numbers b{color:#ffe163;font:900 clamp(1.7rem,4vw,2.8rem) 'Baloo 2',sans-serif}.adv-result-numbers small{color:#d9e5f8}.adv-review{margin:18px 0;padding:15px;border:2px solid #ffffff35;border-radius:22px;background:#071831de;text-align:left}.adv-review h2{text-align:center}.adv-review article{margin:10px 0;padding:13px 15px;border-left:5px solid #ffb52d;border-radius:12px;background:#ffffff0e}.adv-review article>b{color:#ffd65c}.adv-review article>div{margin:6px 0;font-weight:750}.adv-review article p{margin:5px 0;line-height:1.45}.adv-review strong{color:#75eca6}.adv-perfect{color:#bfffd7;font-size:1.1rem}.adv-result>.row{justify-content:center;flex-wrap:wrap}
@media(max-width:900px){.adv-layout{grid-template-columns:1fr}.adv-world{min-height:210px}.adv-challenge{padding:13px}.adv-question{min-height:96px}.game-adventure-callout{grid-template-columns:1fr}.game-adventure-callout .btn{width:100%}}
@media (orientation:portrait), (max-width:650px){.game-adventure-callout{padding:17px;box-shadow:5px 5px 0 #382065}.adv-head{grid-template-columns:auto minmax(0,1fr) auto auto}.adv-head time{min-width:64px;font-size:.95rem}.adv-status{grid-template-columns:auto auto;gap:8px;font-size:.82rem}.adv-status>div{grid-column:1/-1}.adv-layout{display:flex;flex-direction:column}.adv-world{flex:none;min-height:185px}.adv-cloud{font-size:2rem}.adv-hill{height:70px}.adv-path{bottom:78px}.adv-hero,.adv-gate{bottom:47px;font-size:2.65rem}.adv-jump{right:8px;bottom:7px;min-width:82px;min-height:42px}.adv-challenge{border-radius:19px}.adv-question{min-height:90px;padding:9px 5px;font-size:clamp(1rem,4.3vw,1.2rem)}.adv-options{grid-template-columns:1fr;gap:7px}.adv-options button{min-height:57px;padding:7px 10px}.adv-result-numbers{grid-template-columns:1fr 1fr}.adv-result-numbers span:last-child{grid-column:1/-1}.adv-result{padding-top:8px}}

.adv-lose{margin:0 0 8px;padding:10px 12px;border:2px solid #ff8a8a;border-radius:14px;background:#5a1b2b;color:#ffd6d6;font-weight:800;text-align:center}

.game-stars{margin:10px auto;text-align:center;font-weight:800}.game-stars>span{font-size:2rem;color:#ffd34d;letter-spacing:.1em}.game-stars>span i{font-style:normal;color:#ffffff40}.game-stars b{display:block;margin-top:2px;color:#9dffc0}
/* Nhịp chạy động: câu hỏi chỉ xuất hiện khi chướng ngại vật lớn tiến đến. */
.adv-challenge[hidden]{display:none!important}.adv-layout.waiting{grid-template-columns:1fr}.adv-layout.waiting .adv-world{min-height:calc(100vh - 126px)}.adv-gate{border:0;background:transparent;padding:0;color:inherit;cursor:pointer}.adv-world.running .adv-gate{left:112%;animation:adv-gate-arrive 3.6s linear forwards}.adv-world.running .adv-path{background:repeating-linear-gradient(90deg,#fff4a8 0 24px,#e4a63d 24px 36px);background-size:72px 8px;animation:adv-road-move .42s linear infinite}.adv-world.running .adv-hero{animation:adv-run-bob .28s ease-in-out infinite}.adv-world.running .adv-hero.jump{animation:adv-jump .65s ease}.adv-run-message{display:none;position:absolute;z-index:5;left:50%;top:18px;transform:translateX(-50%);width:max-content;max-width:88%;padding:8px 14px;border:2px solid #fff;border-radius:999px;background:#172c67dc;color:#fff;text-align:center;font-size:.9rem;box-shadow:0 6px 18px #0004}.adv-world.running .adv-run-message{display:block}.adv-small-obstacle{display:none;position:absolute;z-index:2;bottom:62px;right:-70px;font-size:2.2rem;filter:drop-shadow(0 5px 2px #0005)}.adv-world.running .adv-small-obstacle{display:block}.adv-world.running .adv-small-obstacle.o1{animation:adv-small-pass 1.55s linear .25s 1}.adv-world.running .adv-small-obstacle.o2{animation:adv-small-pass 1.45s linear 1.85s 1}.adv-question-open .adv-challenge{animation:adv-question-rise .38s ease-out}.adv-question-open .adv-world{transition:min-height .35s ease}.adv-question-open .adv-run-message,.adv-question-open .adv-small-obstacle{display:none}
@keyframes adv-gate-arrive{from{left:112%}to{left:var(--gate)}}@keyframes adv-road-move{to{background-position:-72px 0}}@keyframes adv-run-bob{0%,100%{transform:translate(-50%,0) rotate(-3deg)}50%{transform:translate(-50%,-7px) rotate(4deg)}}@keyframes adv-small-pass{from{right:-70px}to{right:105%}}@keyframes adv-question-rise{from{opacity:0;transform:translateY(34px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:900px){.adv-layout.waiting .adv-world{min-height:calc(100vh - 150px)}}
@media (orientation:portrait), (max-width:650px){.adv-layout.waiting .adv-world{min-height:calc(100vh - 145px)}.adv-run-message{top:10px;font-size:.76rem}.adv-small-obstacle{bottom:46px}.adv-world.running .adv-gate{font-size:3.2rem}.adv-question-open .adv-world{min-height:185px}}

/* Đường đua Toán học – chế độ riêng cho các chủ đề Toán 10. */
.game-race-callout{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin:20px 0;padding:20px 24px;border:3px solid #fff3;border-radius:24px;background:linear-gradient(125deg,#2b0b0b,#8d1d0f 47%,#ee7b17);color:#fff;box-shadow:8px 8px 0 #44100b}.game-race-callout:after{content:"";position:absolute;inset:auto 0 0;height:12px;background:repeating-conic-gradient(#fff 0 25%,#111 0 50%) 0/24px 24px}.game-race-callout small{color:#ffd457;font-weight:900;letter-spacing:.09em}.game-race-callout h2{margin:1px 0;font:900 clamp(1.55rem,3vw,2.35rem) 'Baloo 2',sans-serif}.game-race-callout p{margin:0;color:#ffe8d2}.race-callout-cars{font-size:3.6rem;filter:drop-shadow(0 7px 5px #0008)}.game-race-callout .btn{position:relative;z-index:1;border:2px solid #fff;background:#ffd02d;color:#411000;box-shadow:0 5px 0 #9d4000}
.race-bg{overflow:auto;background:radial-gradient(circle at 50% 0,#56360d 0,#182747 45%,#060d1d 100%);color:#fff}.race-head{background:#09142ee8}.race-hud{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:9px;padding:10px 16px;background:#121f39;border-bottom:2px solid #ffffff2b}.race-hud span,.race-hud button{display:flex;align-items:center;justify-content:center;min-height:42px;padding:5px 12px;border:2px solid #ffffff27;border-radius:12px;background:#ffffff0d;color:#fff;font-weight:800}.race-hud b{margin-left:6px;color:#ffe461;font-size:1.2rem}.race-hud button{border-color:#ffcf39;background:linear-gradient(#ff8a21,#d93c0b);cursor:pointer}.race-hud button:disabled{opacity:.4;filter:grayscale(1);cursor:default}
.race-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(500px,1.35fr);gap:14px;min-height:calc(100vh - 128px);padding:14px}.race-track{position:relative;overflow:hidden;display:grid;grid-template-rows:repeat(4,1fr);min-height:560px;border:5px solid #f1f1f1;border-radius:22px;background:#353a42;box-shadow:inset 0 0 45px #0009,0 12px 30px #0006}.race-track:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 45%,#ffffff0a 45% 55%,transparent 55%),repeating-linear-gradient(0deg,transparent 0 24.5%,#fff8 24.5% 25%);pointer-events:none}.race-finish{position:absolute;z-index:1;top:0;bottom:0;right:5%;width:26px;background:repeating-conic-gradient(#fff 0 25%,#111 0 50%) 0/20px 20px;box-shadow:0 0 0 3px #fff}.race-lane{position:relative;min-height:100px}.race-lane>span{position:absolute;z-index:2;left:9px;top:7px;padding:3px 8px;border-radius:999px;background:#050b18b8;color:#fff;font-size:.75rem;font-weight:800}.race-lane>i{position:absolute;left:0;right:0;top:50%;border-top:4px dashed #ffffff55}.race-car{position:absolute;z-index:3;top:50%;transform:translate(-50%,-50%) scaleX(-1);font-size:3.7rem;transition:left .65s cubic-bezier(.2,.9,.2,1);filter:drop-shadow(5px 4px 3px #0008)}.race-car.player{font-size:4.4rem;filter:drop-shadow(0 0 9px #ffd821) drop-shadow(5px 4px 3px #0008)}.race-car.boost{animation:race-boost .55s ease}.race-car.slow{animation:race-slow .55s ease}.race-quiz{display:flex;flex-direction:column;min-width:0;padding:18px;border:3px solid #ffffff33;border-radius:24px;background:#08162be8;box-shadow:0 10px 35px #0006}.race-quiz>small{align-self:center;margin-bottom:8px;padding:5px 13px;border-radius:999px;background:#ffcf2f;color:#401400;font-weight:950;letter-spacing:.04em}.race-question{display:grid;place-items:center;min-height:150px;padding:14px;text-align:center;font-size:clamp(1.3rem,2.6vw,2.2rem);font-weight:850}.race-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.race-options button{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;min-height:78px;padding:10px;border:0;border-radius:16px;color:#fff;text-align:left;font:800 clamp(1rem,1.7vw,1.35rem) inherit;cursor:pointer;box-shadow:inset 0 -5px #0003}.race-options button>b{display:grid;place-items:center;width:36px;height:36px;border:2px solid #fff9;border-radius:10px;background:#0002}.race-options button.right{outline:5px solid #62f399}.race-options button.wrong{outline:5px solid #fff;color:#fff;filter:saturate(.6)}.race-quiz footer{margin-top:auto}.race-quiz .ga-explain{margin:12px 0 8px;padding:11px 13px;border-radius:14px;background:#ffffff12}.race-quiz footer>.btn{width:100%}
.race-result{width:min(1100px,96%);margin:auto;padding:24px 0;text-align:center}.race-result h1{margin:2px 0 14px;font:900 clamp(2rem,4vw,3.5rem) 'Baloo 2',sans-serif}.race-podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:12px auto 22px}.race-podium>div{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(190px,22vw);min-height:150px;padding:12px;border:2px solid #ffffff44;border-radius:18px 18px 8px 8px;background:#14233be8}.race-podium>div:first-child{min-height:205px;background:linear-gradient(#6c5112,#2c250d);border-color:#ffe36b}.race-podium>div.me{box-shadow:0 0 0 4px #44e2ff,0 0 30px #31bbff88}.race-podium em{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:#18213a;font-weight:950}.race-podium span{font-size:3.2rem}.race-podium b,.race-podium small{display:block}.race-result>.row{justify-content:center;flex-wrap:wrap}
@keyframes race-boost{45%{transform:translate(-50%,-50%) scaleX(-1) scale(1.3);filter:drop-shadow(20px 0 7px #ffb21c)}}@keyframes race-slow{45%{transform:translate(-50%,-50%) scaleX(-1) scale(.82) rotate(-5deg)}}
@media(max-width:900px){.game-race-callout{grid-template-columns:auto 1fr}.game-race-callout .btn{grid-column:1/-1;width:100%}.race-layout{grid-template-columns:1fr;min-height:auto}.race-track{min-height:350px}.race-quiz{min-height:520px}}
@media (orientation:portrait), (max-width:650px){.game-race-callout{grid-template-columns:1fr;padding:17px;box-shadow:5px 5px 0 #44100b}.race-callout-cars{font-size:2.8rem}.race-hud{grid-template-columns:1fr 1fr;padding:8px}.race-hud span,.race-hud button{min-height:37px;font-size:.78rem}.race-layout{padding:8px}.race-track{min-height:270px;border-width:3px}.race-car{font-size:2.6rem}.race-car.player{font-size:3rem}.race-lane>span{font-size:.63rem}.race-quiz{min-height:0;padding:11px;border-radius:18px}.race-question{min-height:100px;font-size:clamp(1.05rem,4.7vw,1.35rem)}.race-options{grid-template-columns:1fr;gap:7px}.race-options button{min-height:56px;padding:7px 9px;font-size:.95rem}.race-podium{gap:5px}.race-podium>div{width:24%;min-height:125px;padding:7px}.race-podium>div:first-child{min-height:165px}.race-podium span{font-size:2.4rem}.race-podium b{font-size:.72rem}.race-podium small{font-size:.67rem}}

/* Đường đua cả lớp qua Firebase: tối đa 8 xe trên máy chiếu, xe của học sinh luôn được giữ trong bảng. */
.class-race-badge{display:inline-block;margin:6px 0;padding:7px 14px;border:2px solid #ffd95a;border-radius:999px;background:#7b270d;color:#fff0a8;font-weight:900;letter-spacing:.05em}.class-race-game{overflow:auto}.class-race-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 14px;background:#101d35;border-bottom:2px solid #ffffff24}.class-race-stats span{padding:7px 10px;border:2px solid #ffffff24;border-radius:12px;background:#ffffff0b;text-align:center;font-weight:800}.class-race-stats b{color:#ffdc51}.class-race-layout{display:grid;grid-template-columns:minmax(390px,.9fr) minmax(510px,1.15fr);gap:14px;flex:1;min-height:0;padding:12px}.class-race-board,.class-race-quiz{min-width:0;border:3px solid #ffffff36;border-radius:22px;background:#07162be8;box-shadow:0 10px 30px #0006}.class-race-board{overflow:hidden}.class-race-board>header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 14px;background:linear-gradient(90deg,#f49a18,#ffd34d);color:#301600}.class-race-board h2{margin:0;font:900 clamp(1rem,1.5vw,1.35rem) 'Baloo 2',sans-serif}.class-race-board header>span{font-weight:850}.class-race-track{position:relative;display:grid;grid-auto-rows:minmax(54px,1fr);min-height:calc(100% - 48px);background:#353a42;box-shadow:inset 0 0 40px #0009}.class-race-track:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 47%,#ffffff09 47% 53%,transparent 53%);pointer-events:none}.class-race-finish{position:absolute;z-index:1;top:0;bottom:0;right:5%;width:22px;background:repeating-conic-gradient(#fff 0 25%,#111 0 50%) 0/18px 18px;box-shadow:0 0 0 2px #fff}.class-race-lane{position:relative;min-height:54px;border-bottom:2px solid #ffffff55}.class-race-lane.me{background:#2bc7ff20;box-shadow:inset 0 0 0 3px #55e1ff}.class-race-lane>i{position:absolute;left:0;right:0;top:58%;border-top:3px dashed #ffffff49}.class-race-lane>em{position:absolute;z-index:4;left:5px;top:5px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff;color:#1b2030;font-style:normal;font-weight:950}.class-race-lane>span{position:absolute;z-index:4;left:33px;top:6px;max-width:42%;overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:850}.class-race-lane>strong{position:absolute;z-index:4;right:33px;top:5px;padding:2px 5px;border-radius:7px;background:#08101fc7;color:#ffe166;font-size:.7rem}.class-race-car{position:absolute;z-index:3;top:62%;transform:translate(-50%,-50%) scaleX(-1);font-size:2.45rem;filter:drop-shadow(4px 3px 2px #0009);transition:left .7s cubic-bezier(.15,.9,.25,1)}.class-race-quiz{display:flex;flex-direction:column;padding:12px}.class-race-quiz .ga-question{flex:1;min-height:120px;margin:0 0 9px}.class-race-quiz .host-options{flex:1}.class-race-quiz .class-host{grid-template-columns:92px minmax(220px,1fr);gap:9px;margin-top:9px;padding:7px;background:#ffffff09;border-radius:15px}.class-race-quiz .class-controls{grid-column:1/-1;grid-template-columns:1fr 1.3fr}.class-race-quiz footer{width:100%;margin-top:8px}.class-race-quiz .ga-explain{margin:0;padding:9px 12px;background:#ffffff12}.class-race-options{margin-top:auto}.class-race-host .class-race-layout{width:100%;max-width:1800px;margin:auto}.class-race-host .class-race-quiz .ga-question{padding:clamp(14px,1.8vw,28px);font-size:clamp(1.25rem,2vw,2.2rem)}.class-race-host .class-race-quiz .host-options>div{min-height:clamp(66px,9vh,102px);padding:10px 14px;font-size:clamp(1.05rem,1.55vw,1.65rem)}
@media(max-width:950px){.class-race-layout{grid-template-columns:1fr}.class-race-track{grid-auto-rows:50px}.class-race-board{min-height:448px}.class-race-quiz{min-height:500px}}
@media (orientation:portrait), (max-width:700px){.class-race-stats{grid-template-columns:1fr 1fr;padding:7px}.class-race-stats span{padding:5px;font-size:.78rem}.class-race-layout{padding:7px}.class-race-board{min-height:376px}.class-race-track{grid-auto-rows:41px}.class-race-lane{min-height:41px}.class-race-car{font-size:2rem}.class-race-lane>span{font-size:.62rem}.class-race-lane>strong{right:27px;font-size:.6rem}.class-race-quiz{min-height:0;padding:9px}.class-race-quiz .ga-question{min-height:100px;font-size:clamp(1.05rem,4.5vw,1.35rem)}.class-race-options{grid-template-columns:1fr}.class-race-quiz .class-host{grid-template-columns:1fr}.class-race-quiz .class-bars{grid-template-columns:1fr 1fr}.class-race-quiz .class-controls{grid-column:auto}}

/* Game củng cố riêng: menu và bốn sân chơi cảm ứng theo từng lớp. */
.mini-entry-tile{background:linear-gradient(135deg,#fff8d6,#e9f7ff);border-color:#f0b92f}.mini-menu-head,.mini-topic-head{display:flex;align-items:center;gap:20px;margin:18px 0 24px;padding:22px 26px;border:3px solid var(--border);border-radius:26px;background:linear-gradient(125deg,var(--card),color-mix(in srgb,var(--primary) 10%,var(--card)));box-shadow:8px 8px 0 color-mix(in srgb,var(--primary) 24%,transparent)}.mini-menu-head>span,.mini-topic-head>span{display:grid;place-items:center;flex:0 0 92px;width:92px;height:92px;border-radius:28px;background:linear-gradient(145deg,#ffde55,#ff8d35);font-size:3.5rem;filter:drop-shadow(0 7px 5px #0003)}.mini-menu-head small,.mini-topic-head small,.mini-launch>small{color:var(--primary);font-weight:950;letter-spacing:.09em}.mini-menu-head h1,.mini-topic-head h1{margin:2px 0;font:900 clamp(1.65rem,3vw,2.7rem) 'Baloo 2',sans-serif}.mini-menu-head p,.mini-topic-head p{margin:2px 0;color:var(--muted)}
.mini-game-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.mini-game-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:300px;padding:24px;border:4px solid #fff;border-radius:28px;color:#fff;text-decoration:none;box-shadow:0 14px 30px #10244338,7px 7px 0 #0002;transition:transform .18s ease,box-shadow .18s ease}.mini-game-card:hover,.mini-game-card:focus-visible{transform:translateY(-7px) rotate(-1deg);box-shadow:0 20px 40px #10244345,9px 10px 0 #0002}.mini-game-card:after{content:"";position:absolute;inset:auto -18% -38% 12%;height:68%;border-radius:50%;background:#fff2;transform:rotate(-10deg)}.mini-game-card>span{position:relative;z-index:1;align-self:center;font-size:5rem;filter:drop-shadow(0 8px 4px #0004);animation:mini-hero-float 2.1s ease-in-out infinite}.mini-game-card small,.mini-game-card b,.mini-game-card p,.mini-game-card em{position:relative;z-index:1}.mini-game-card small{margin-top:10px;font-weight:900;letter-spacing:.12em}.mini-game-card b{font:900 clamp(1.45rem,2.2vw,2rem) 'Baloo 2',sans-serif}.mini-game-card p{flex:1;margin:6px 0 14px;line-height:1.5}.mini-game-card em{align-self:flex-start;padding:6px 10px;border-radius:999px;background:#fff;color:#162547;font-size:.78rem;font-style:normal;font-weight:900}.mini-card-fishing{background:linear-gradient(150deg,#0877b8,#18bbd5)}.mini-card-fruit{background:linear-gradient(150deg,#932750,#f2682f)}.mini-card-balloon{background:linear-gradient(150deg,#6546cf,#a541cf)}.mini-card-match{background:linear-gradient(150deg,#b33a18,#f2a619 48%,#467c17)}
.mini-launch{width:min(760px,100%);margin:30px auto;padding:28px;border:3px solid var(--border);border-radius:28px;background:var(--card);text-align:center;box-shadow:10px 10px 0 color-mix(in srgb,var(--primary) 20%,transparent)}.mini-launch-hero{font-size:6rem;line-height:1;animation:mini-hero-float 2s ease-in-out infinite}.mini-launch h1{margin:5px 0;font:900 clamp(1.8rem,4vw,3rem) 'Baloo 2',sans-serif}.mini-launch p{color:var(--muted)}.mini-launch ul{display:inline-block;margin:10px auto 22px;padding-left:24px;text-align:left;line-height:1.9}.mini-launch .btn{min-height:54px;padding-inline:28px}.mini-empty{padding:30px;text-align:center;color:var(--muted)}
.mini-arena{display:flex;flex-direction:column;overflow:hidden;background:#071a35;color:#fff;touch-action:manipulation}.mini-head{flex:0 0 auto}.mini-head strong{color:#ffe05f}.mini-question{position:relative;z-index:8;display:grid;place-items:center;flex:0 0 auto;min-height:clamp(118px,23vh,210px);padding:15px clamp(14px,4vw,55px);border-bottom:3px solid #fff4;background:#07162be8;text-align:center;box-shadow:0 8px 25px #0005}.mini-question small{margin-bottom:6px;padding:5px 13px;border-radius:999px;background:#ffd549;color:#412200;font-weight:950;letter-spacing:.05em}.mini-question>div{font:850 clamp(1.2rem,2.5vw,2.3rem)/1.45 'Be Vietnam Pro',sans-serif;overflow-wrap:anywhere}.mini-question mjx-container{font-size:115%!important}.mini-field{position:relative;overflow:hidden;flex:1;min-height:300px}.mini-field:before,.mini-field:after{content:"";position:absolute;pointer-events:none}.mini-decor{position:absolute;inset:0;pointer-events:none}.mini-answers{position:absolute;inset:0}.mini-answer{position:absolute;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;width:min(38vw,440px);min-height:62px;padding:8px 14px;border:4px solid #fff;border-radius:999px;background:#1972d2;color:#fff;text-align:left;font:850 clamp(.92rem,1.55vw,1.35rem)/1.3 'Be Vietnam Pro',sans-serif;box-shadow:inset 0 -7px #0003,0 8px 16px #0005;cursor:pointer;will-change:transform}.mini-answer>b{font-size:2.15rem;line-height:1;filter:drop-shadow(0 3px 2px #0005)}.mini-answer>span{min-width:0;overflow-wrap:anywhere}.mini-answer:disabled{cursor:default}.mini-answer.right{z-index:7!important;border-color:#baffc8;background:#159447;box-shadow:0 0 0 5px #49f783,0 0 28px #38ff88}.mini-answer.wrong{z-index:6!important;border-color:#fff;background:#d62838;box-shadow:0 0 0 5px #ff8792}.mini-reveal .mini-answer{animation-play-state:paused!important}.mini-foot{position:relative;z-index:9;display:flex;align-items:center;justify-content:center;gap:12px;flex:0 0 auto;min-height:64px;padding:8px 14px;border-top:3px solid #fff4;background:#07162bf2}.mini-foot>p{margin:0;color:#dceaff;font-weight:800}.mini-foot .ga-explain{flex:1;margin:0;padding:9px 13px;background:#ffffff12}.mini-foot .btn{flex:0 0 auto;min-height:46px}.mini-result-score{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px auto;width:min(720px,100%)}.mini-result-score span{padding:14px;border:2px solid #ffffff35;border-radius:18px;background:#ffffff10}.mini-result-score b,.mini-result-score small{display:block}.mini-result-score b{color:#ffe05a;font:900 clamp(1.6rem,4vw,2.5rem) 'Baloo 2',sans-serif}.mini-result-score small{color:#dbe8fa}.mini-result>small{color:#ffe05a;font-weight:900;letter-spacing:.08em}
/* Câu cá: bốn làn nước riêng, cá bơi ngang để không che nhau. */
.mini-fishing .mini-field{background:linear-gradient(#68d7ed 0 9%,#168cc7 9% 52%,#075887 100%)}.mini-fishing .mini-field:before{inset:0;background:repeating-radial-gradient(ellipse at 20% 0,#fff8 0 3px,transparent 4px 55px);opacity:.45}.mini-fishing .mini-decor:after{content:"🫧　🪸　　　　　🫧　🌿　　　　　　🪸";position:absolute;right:0;bottom:3px;left:0;font-size:2.5rem;white-space:nowrap}.mini-fishing .mini-answer{left:-46%;top:calc(3% + var(--i)*23%);animation:mini-swim var(--dur) linear var(--delay) infinite}.mini-fishing .mini-answer:nth-child(even){background:#8051d7;animation-direction:reverse}.mini-fishing .mini-answer:nth-child(3){background:#dc512f}.mini-fishing .mini-answer:nth-child(4){background:#198b68}
/* Chém trái cây: hai cột bay từ dưới lên, đủ xa để đọc trên điện thoại. */
.mini-fruit .mini-field{background:radial-gradient(circle at 50% 115%,#e5a84a 0 22%,transparent 23%),linear-gradient(#253c6e,#101b39)}.mini-fruit .mini-field:before{inset:0;background:linear-gradient(115deg,transparent 45%,#ffffff12 46% 48%,transparent 49%);transform:skewX(-15deg)}.mini-fruit .mini-answer{width:min(43vw,480px);animation:mini-fruit-rise var(--dur) ease-in-out var(--delay) infinite}.mini-fruit .mini-answer.a0,.mini-fruit .mini-answer.a2{left:3%}.mini-fruit .mini-answer.a1,.mini-fruit .mini-answer.a3{right:3%}.mini-fruit .mini-answer.a0{--x:5vw}.mini-fruit .mini-answer.a1{--x:-5vw;background:#7847cf}.mini-fruit .mini-answer.a2{--x:12vw;background:#d64545}.mini-fruit .mini-answer.a3{--x:-12vw;background:#168d66}
/* Bắn bóng: đáp án bay lên như bóng có dây. */
.mini-balloon .mini-field{background:linear-gradient(#63c4f2,#d6f2ff 68%,#8fd56f)}.mini-balloon .mini-field:before{inset:8% 3%;background:radial-gradient(ellipse,#fff 0 45%,transparent 47%) 0 0/190px 72px;opacity:.52}.mini-balloon .mini-answer{width:min(42vw,450px);border-radius:46% 46% 44% 44%/58% 58% 42% 42%;animation:mini-balloon-rise var(--dur) linear var(--delay) infinite}.mini-balloon .mini-answer:after{content:"";position:absolute;top:100%;left:50%;height:48px;border-left:2px solid #fff8}.mini-balloon .mini-answer.a0,.mini-balloon .mini-answer.a2{left:4%}.mini-balloon .mini-answer.a1,.mini-balloon .mini-answer.a3{right:4%}.mini-balloon .mini-answer.a1{background:#8b4bd4}.mini-balloon .mini-answer.a2{background:#dc4b58}.mini-balloon .mini-answer.a3{background:#168c70}
@keyframes mini-hero-float{50%{transform:translateY(-9px) rotate(3deg)}}@keyframes mini-swim{from{left:-46%}to{left:108%}}@keyframes mini-fruit-rise{0%,12%{bottom:-25%;transform:translateX(0) rotate(-5deg)}48%{bottom:68%;transform:translateX(var(--x)) rotate(5deg)}72%,100%{bottom:-25%;transform:translateX(calc(var(--x)*1.4)) rotate(12deg)}}@keyframes mini-balloon-rise{from{bottom:-30%;transform:translateX(0)}50%{transform:translateX(4vw)}to{bottom:112%;transform:translateX(-2vw)}}
@media(max-width:850px){.mini-game-menu{grid-template-columns:1fr}.mini-game-card{min-height:230px}.mini-game-card>span{font-size:4rem}.mini-menu-head,.mini-topic-head{padding:18px}.mini-answer{width:min(43vw,410px)}}
@media (orientation:portrait), (max-width:650px){.mini-menu-head,.mini-topic-head{align-items:flex-start;gap:12px;margin:12px 0 18px;padding:14px;border-radius:20px;box-shadow:5px 5px 0 color-mix(in srgb,var(--primary) 20%,transparent)}.mini-menu-head>span,.mini-topic-head>span{flex-basis:62px;width:62px;height:62px;border-radius:18px;font-size:2.35rem}.mini-menu-head h1,.mini-topic-head h1{font-size:1.45rem}.mini-menu-head p,.mini-topic-head p{font-size:.86rem}.mini-game-card{min-height:205px;padding:18px}.mini-game-card>span{font-size:3.5rem}.mini-launch{margin:18px auto;padding:19px}.mini-launch-hero{font-size:4.6rem}.mini-head{grid-template-columns:auto minmax(0,1fr) auto auto}.mini-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-head span{font-size:.72rem}.mini-question{min-height:128px;max-height:31vh;padding:10px 12px}.mini-question>div{font-size:clamp(1.02rem,4.6vw,1.28rem)}.mini-field{min-height:310px}.mini-answer{grid-template-columns:35px minmax(0,1fr);width:46%;min-height:58px;padding:7px 9px;border-width:3px;font-size:clamp(.8rem,3.4vw,.98rem)}.mini-answer>b{font-size:1.65rem}.mini-fishing .mini-answer{left:-55%;animation-name:mini-swim-phone}.mini-fruit .mini-answer,.mini-balloon .mini-answer{width:45%}.mini-foot{display:block;min-height:58px;padding:7px}.mini-foot .ga-explain{max-height:23vh;overflow:auto;font-size:.82rem}.mini-foot .btn{width:100%;margin-top:6px}.mini-result-score{grid-template-columns:1fr 1fr}.mini-result-score span:last-child{grid-column:1/-1}}@keyframes mini-swim-phone{from{left:-55%}to{left:109%}}
@media(prefers-reduced-motion:reduce){.mini-game-card>span,.mini-launch-hero,.mini-answer{animation-duration:10s!important}}

/* Điện thoại: giữ toàn bộ đáp án trong vùng nhìn và tạo vùng chạm ổn định. */
@media (orientation:portrait), (max-width:650px){
  body.game-active{overscroll-behavior:none}
  .game-arena{height:100dvh;min-height:100dvh;padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .game-arena footer{padding-right:52px}
  .mini-arena{overflow:hidden}
  .mini-head{grid-template-columns:auto minmax(0,1fr) 46px;grid-template-rows:auto auto;gap:3px 7px;min-height:69px}
  .mini-head>button{grid-column:1;grid-row:1/3;align-self:stretch}
  .mini-head>b{grid-column:2;grid-row:1;text-align:left}
  .mini-head>span{grid-column:2;grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
  .mini-head>time{grid-column:3;grid-row:1/3;align-self:center}
  .mini-question{overflow:auto;min-height:112px;max-height:27dvh}
  .mini-field{min-height:300px;padding:8px}
  .mini-answers{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(58px,1fr));gap:8px;padding:8px}
  .mini-answer,
  .mini-fishing .mini-answer,
  .mini-fruit .mini-answer,
  .mini-balloon .mini-answer,
  .mini-fruit .mini-answer.a0,.mini-fruit .mini-answer.a1,.mini-fruit .mini-answer.a2,.mini-fruit .mini-answer.a3,
  .mini-balloon .mini-answer.a0,.mini-balloon .mini-answer.a1,.mini-balloon .mini-answer.a2,.mini-balloon .mini-answer.a3{
    position:relative;inset:auto;right:auto;bottom:auto;left:auto;top:auto;width:100%;height:100%;min-height:58px;
    animation:mini-phone-bob 10.5s ease-in-out var(--delay) infinite alternate!important;
    transform:none
  }
  .mini-answer:active{animation-play-state:paused!important;transform:scale(.98)}
  .mini-balloon .mini-answer{border-radius:22px}
  .mini-balloon .mini-answer:after{display:none}
  .mini-foot{min-height:56px;padding:7px 52px 7px 7px}
  .mini-foot>p{font-size:.82rem;line-height:1.35}
  .mini-reveal .mini-question{min-height:88px;max-height:21dvh}
  .mini-reveal .mini-field{flex:0 0 150px;min-height:150px;padding:5px}
  .mini-reveal .mini-answers{grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,minmax(52px,1fr));gap:6px;padding:5px}
  .mini-reveal .mini-answer{grid-template-columns:30px minmax(0,1fr);min-height:52px;padding:5px 7px;font-size:clamp(.72rem,3.1vw,.88rem)}
  .mini-reveal .mini-answer>b{font-size:1.35rem}
  .mini-reveal .mini-foot{overflow-y:auto;max-height:29dvh}
  .game-sound-float{right:max(7px,env(safe-area-inset-right));bottom:max(7px,env(safe-area-inset-bottom));width:41px;height:41px}
}
@keyframes mini-phone-bob{from{transform:translateX(-4px)}to{transform:translateX(4px)}}

@media(max-width:370px){
  .mini-head{grid-template-columns:auto minmax(0,1fr) 42px;gap:3px 5px}.mini-head>button{padding:7px 6px}.mini-head>b{font-size:.76rem}.mini-head>span{font-size:.65rem}.mini-head>time{width:40px}
  .mini-question{min-height:102px;padding:8px}.mini-answer{min-height:54px}.mini-answers{grid-template-rows:repeat(4,minmax(54px,1fr));gap:6px;padding:6px}
}

/* Điện thoại xoay ngang: thu gọn theo chiều cao nhưng vẫn giữ bốn vùng chạm lớn. */
@media (orientation:landscape) and (max-height:520px){
  body.game-active{overscroll-behavior:none}
  .game-arena{height:100dvh;min-height:100dvh;padding:6px max(9px,env(safe-area-inset-right)) 6px max(9px,env(safe-area-inset-left))}
  .game-arena footer{padding-right:50px}
  .mini-arena{overflow:hidden}
  .mini-head{min-height:43px;gap:8px}.mini-head button{padding:6px 9px}.mini-head>b{font-size:.83rem}.mini-head>span{font-size:.72rem}.mini-head time{height:35px}
  .mini-question{min-height:70px;max-height:25dvh;padding:6px 12px;overflow:auto}.mini-question small{margin-bottom:2px;padding:3px 10px;font-size:.7rem}.mini-question>div{font-size:clamp(.88rem,2.3vw,1.15rem)}
  .mini-field{min-height:150px;padding:5px}
  .mini-answers{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,minmax(55px,1fr));gap:7px;padding:6px}
  .mini-answer,
  .mini-fishing .mini-answer,
  .mini-fruit .mini-answer,
  .mini-balloon .mini-answer,
  .mini-fruit .mini-answer.a0,.mini-fruit .mini-answer.a1,.mini-fruit .mini-answer.a2,.mini-fruit .mini-answer.a3,
  .mini-balloon .mini-answer.a0,.mini-balloon .mini-answer.a1,.mini-balloon .mini-answer.a2,.mini-balloon .mini-answer.a3{
    position:relative;inset:auto;right:auto;bottom:auto;left:auto;top:auto;width:100%;height:100%;min-height:55px;padding:5px 10px;
    animation:mini-phone-bob 10.5s ease-in-out var(--delay) infinite alternate!important;transform:none;font-size:clamp(.75rem,1.75vw,.95rem)
  }
  .mini-answer>b{font-size:1.45rem}.mini-balloon .mini-answer{border-radius:22px}.mini-balloon .mini-answer:after{display:none}
  .mini-foot{min-height:45px;padding:5px 50px 5px 7px}.mini-foot>p{font-size:.75rem}.mini-foot .ga-explain{max-height:20dvh;overflow:auto;padding:6px 9px;font-size:.74rem}.mini-foot .btn{min-height:38px;padding:6px 13px}
  .mini-reveal .mini-field{min-height:115px}.game-sound-float{right:7px;bottom:7px;width:38px;height:38px;font-size:1rem}
  .game-arena:not(.mini-arena) .ga-head{min-height:40px}.game-arena:not(.mini-arena) .ga-score{margin:2px auto;width:72%;font-size:.8rem}.game-arena:not(.mini-arena) .ga-score i{height:20px}.game-arena:not(.mini-arena) .ga-score b{font-size:1rem}
  .game-arena:not(.mini-arena) .ga-question{flex:0 0 auto;min-height:70px;margin:3px auto 6px;padding:8px 14px;font-size:clamp(.88rem,2.1vw,1.12rem)}
  .game-arena:not(.mini-arena) .ga-options{gap:7px}.game-arena:not(.mini-arena) .ga-options button{min-height:55px;padding:6px 10px}.game-arena:not(.mini-arena) .ga-bot{margin:4px;font-size:.8rem}
  .game-arena:not(.mini-arena) footer{margin-top:4px}.game-arena:not(.mini-arena) .game-sound-float{top:55px;right:7px;bottom:auto}
}

/* Pikachu Toán học: các ô vuông câu hỏi – đáp án và đường nối tối đa hai lần rẽ. */
.match-arena{overflow:hidden;background:radial-gradient(circle at 50% 18%,#263c76,#09152e 60%,#050b18);touch-action:manipulation}.match-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto 64px;align-items:center;gap:12px;min-height:50px}.match-head button,.match-tools button{min-height:40px;padding:7px 12px;border:2px solid #ffffff45;border-radius:12px;background:#ffffff12;color:#fff;font:800 .9rem 'Be Vietnam Pro',sans-serif;cursor:pointer}.match-head>b{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font:900 clamp(1rem,2vw,1.4rem) 'Baloo 2',sans-serif}.match-head>span{white-space:nowrap;font-weight:800}.match-head strong{color:#ffe35e}.match-head time{display:grid;place-items:center;min-height:40px;border-radius:12px;background:#ffbd21;color:#2d1b00;font:900 1.25rem 'Baloo 2',sans-serif}.match-timebar{flex:0 0 9px;overflow:hidden;margin:5px 0;border:1px solid #ffffff4d;border-radius:99px;background:#060c19}.match-timebar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef3c38,#ffe34f 45%,#61df48);transition:width .3s}.match-tools{display:grid;grid-template-columns:auto auto minmax(180px,1fr);align-items:center;gap:8px;min-height:48px}.match-tools>span{padding:7px 11px;border-radius:11px;background:#ffffff12;font-weight:850}.match-tools button b{color:#ffe35e}.match-tools p{overflow:hidden;margin:0;padding:7px 10px;border-radius:11px;background:#ffffff0d;color:#d9e6ff;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:750}.match-tools p.preview{max-height:58px;overflow:auto;white-space:normal}.match-tools p.preview>span{margin-left:5px}.match-tools p.right{background:#17633e;color:#caffdc}.match-tools p.wrong{background:#702b35;color:#ffe0e4}.match-tools p.note{background:#665213;color:#fff0a6}.match-stage{display:grid;place-items:center;flex:1;min-height:0;padding:5px}.match-board{--match-cols:6;--match-rows:4;position:relative;display:grid;grid-template-columns:repeat(var(--match-cols),1fr);grid-template-rows:repeat(var(--match-rows),1fr);gap:5px;height:min(68dvh,600px);max-width:94vw;aspect-ratio:3/2;padding:6px;border:3px solid #ffcb4e;border-radius:18px;background:linear-gradient(145deg,#f7d4f1,#d9c4ed);box-shadow:0 0 0 4px #8a377e,0 14px 40px #0009}.match-tile{position:relative;z-index:2;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;padding:6px;border:2px solid #fff;border-radius:10px;background:linear-gradient(145deg,#eaf7ff,#b8ddff);color:#12213e;text-align:center;font:800 clamp(.62rem,1.35vw,.9rem)/1.25 'Be Vietnam Pro',sans-serif;box-shadow:inset 0 -5px #193f6b20,0 3px 5px #371d5a3b;cursor:pointer;transition:transform .15s,opacity .3s,background .15s}.match-tile.answer{background:linear-gradient(145deg,#fff8c8,#ffd96c);color:#352400;font-size:clamp(1.05rem,2.8vw,1.8rem);font-weight:950}.match-tile em{position:absolute;top:3px;left:4px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#235fa8;color:#fff;font-size:.6rem;font-style:normal}.match-tile.answer em{background:#ba6a00}.match-tile>span{max-width:100%;max-height:100%;overflow:hidden;overflow-wrap:anywhere}.match-tile mjx-container{max-width:100%;margin:0!important;font-size:100%!important}.match-tile.selected{z-index:5;outline:4px solid #ffef5a;outline-offset:-4px;transform:scale(.94);filter:brightness(1.05)}.match-tile.wrong{background:#ef5361;color:#fff;animation:match-shake .22s linear 2}.match-tile.matched{background:#38cf76;color:#fff;transform:scale(.82);opacity:.4}.match-tile.removed{visibility:hidden;pointer-events:none}.match-lines{position:absolute;z-index:8;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.match-lines polyline{fill:none;stroke:#fff36a;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #ff7a18);opacity:0}.match-lines polyline.show{opacity:1;animation:match-line .42s ease-out}.match-result .game-result{max-width:850px}
@keyframes match-shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes match-line{from{stroke-dasharray:4 18}to{stroke-dasharray:80 0}}
@media(orientation:portrait){.match-arena{padding:7px}.match-head{grid-template-columns:auto minmax(0,1fr) 55px;grid-template-rows:auto auto;gap:4px 7px}.match-head button{grid-row:1/3}.match-head>b{text-align:left}.match-head>span{grid-column:2;grid-row:2;font-size:.72rem}.match-head time{grid-column:3;grid-row:1/3;font-size:1rem}.match-tools{grid-template-columns:1fr 1fr;gap:5px}.match-tools>span,.match-tools button{padding:5px 3px;text-align:center;font-size:.72rem}.match-tools p{grid-column:1/-1;padding:5px 7px;text-align:center;font-size:.68rem}.match-board{width:min(92vw,50dvh);height:auto;max-width:none;aspect-ratio:2/3;gap:4px;padding:5px}.match-tile{padding:4px;font-size:clamp(.52rem,2.55vw,.72rem)}.match-tile em{top:2px;left:2px;width:14px;height:14px;font-size:.5rem}.match-lines polyline{stroke-width:5}.match-arena .game-sound-float{width:38px;height:38px}}
@media(orientation:landscape) and (max-height:520px){.match-arena{padding:5px 8px}.match-head{min-height:40px}.match-head button,.match-head time{min-height:34px}.match-timebar{margin:2px 0}.match-tools{min-height:39px}.match-tools button,.match-tools>span,.match-tools p{padding:5px 7px;font-size:.7rem}.match-board{height:min(66dvh,340px);gap:3px;padding:4px}.match-tile{padding:4px;font-size:clamp(.56rem,1.25vw,.72rem)}.match-arena .game-sound-float{top:auto;right:7px;bottom:7px}}
@media(orientation:landscape) and (max-height:520px){.game-arena.match-arena .game-sound-float{top:auto;right:7px;bottom:7px}}
