.ps{--ac:#2563EB;--ac2:#22D3EE}
.ghero{position:relative;text-align:center;padding:5svh 0 18px}
.game{position:relative;background:#fff;border-radius:28px;padding:16px;box-shadow:0 1px 2px rgba(14,17,22,.05),0 20px 50px rgba(37,99,235,.14)}
.ghud{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800;color:var(--ink2)}.ghud b{font-size:16px;font-variant-numeric:tabular-nums}.stars{letter-spacing:2px;font-size:14px}
.task{margin:12px 0 0;padding:10px 14px;border-radius:14px;background:#EFF6FF;font-size:14px;font-weight:800;color:#1E3A8A;line-height:1.6}
.chat{display:grid;gap:10px;margin-top:12px}.chat .lb{display:block;font-size:11px;font-weight:800;color:var(--mut);margin-bottom:3px}
.chat .me{justify-self:end;max-width:88%;text-align:right}.chat .bot{max-width:94%}
.bub{margin:0;display:inline-block;text-align:left;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.75;white-space:pre-wrap}
.me .bub{background:#2563EB;color:#fff;border-bottom-right-radius:4px}.me .bub mark{background:#FDE68A;color:#1E3A8A;border-radius:4px;padding:0 3px;animation:pop .4s}
.bot .bub{background:#F1F5F9;color:var(--ink);border-bottom-left-radius:4px;min-height:3em}.bot .bub.good{background:#ECFDF5;box-shadow:inset 0 0 0 1.5px #86EFAC}.bot .bub.bad{background:#FEF2F2;box-shadow:inset 0 0 0 1.5px #FCA5A5}
.bot .bub .cur{display:inline-block;width:7px;height:1em;background:var(--ink);vertical-align:-2px;animation:blink .8s infinite}@keyframes blink{50%{opacity:0}}
.qh2{margin:14px 0 8px;font-size:13px;font-weight:800;color:var(--ink2)}
.opts2{display:grid;gap:8px}.opts2 button{text-align:left;padding:12px 14px;border-radius:16px;border:1.5px solid #DBEAFE;background:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;color:var(--ink);line-height:1.6}
.opts2 button:hover{border-color:#60A5FA}.opts2 button.right{background:#ECFDF5;border-color:#22C55E}.opts2 button.wrong{background:#FEF2F2;border-color:#F87171}.opts2 button:disabled{cursor:default}
.fb2{margin-top:12px;padding:12px 14px;border-radius:14px;font-size:13px;line-height:1.7;animation:pop .35s}.fb2.ok{background:#ECFDF5;color:#065F46}.fb2.ng{background:#FEF2F2;color:#991B1B}.fb2 b{display:block;font-size:15px}
.go{display:block;width:100%;height:56px;margin-top:12px;border:0;border-radius:999px;background:var(--acg);color:#fff;font:inherit;font-size:17px;font-weight:900;cursor:pointer;box-shadow:0 10px 30px rgba(37,99,235,.3)}
.plus{position:absolute;right:20px;top:40px;font-size:28px;font-weight:900;color:#16A34A;animation:up 1s var(--ease) forwards;pointer-events:none}@keyframes up{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-40px)}}
.end{margin-top:14px;border-radius:18px;padding:16px;text-align:center;background:#EFF6FF;box-shadow:inset 0 0 0 1.5px #BFDBFE;animation:pop .4s var(--ease)}.end .et{margin:0;font-size:12px;color:var(--ink2)}.end .eb{margin:2px 0;font-size:clamp(28px,8vw,38px);font-weight:900;line-height:1.3;color:var(--ac)}.end .es{margin:4px 0 0;font-size:13px;color:var(--ink2);line-height:1.7}.end button{margin-top:10px}
.mt0{margin:0 0 12px;font-size:14px;color:var(--ink2);line-height:1.75}
.bld{display:grid;gap:12px}.bld .g{font-size:12px;font-weight:800;color:var(--mut);margin-bottom:6px}.bld .cs2{display:flex;flex-wrap:wrap;gap:6px}
.bld .cs2 button{min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid #E4E6EC;background:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;color:var(--ink)}.bld .cs2 button.sel{background:var(--ink);color:#fff;border-color:var(--ink)}
.out{white-space:pre-wrap;background:#0F172A;color:#E2E8F0;border-radius:14px;padding:14px;font:inherit;font-size:13px;line-height:1.85;margin:14px 0 0}
.ctap{color:#C9CCD6;font-size:14px;margin:0 0 16px;line-height:1.75}.cta-c h3{color:var(--ac2)}
#bldc[hidden],#sharec[hidden],.fb2[hidden],.go[hidden]{display:none}
.end .eb small{font-size:16px;color:var(--ink2)}
/* v3 ダメ出し10連発 */
.game{overflow:clip}
.tbar{height:6px;border-radius:99px;background:#E4E6EC;margin:10px 0 0;overflow:hidden}.tbar i{display:block;height:100%;width:100%;background:var(--acg);border-radius:99px}.tbar i.hot{background:linear-gradient(90deg,#F97316,#EF4444)}
.cmb{transition:transform .2s}.cmb.hot{color:#EA580C;animation:pop .35s}.cmb.hot b{color:#EA580C}
.ready{margin-top:14px;padding:18px 16px;border-radius:18px;background:#EFF6FF;text-align:center}.ready .rt{margin:0;font-size:12px;font-weight:800;color:var(--ac)}.ready .rs{margin:6px 0 0;font-size:14px;line-height:1.9;color:var(--ink2)}
.pads{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.pads button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:76px;padding:6px 2px;border-radius:16px;border:1.5px solid #DBEAFE;background:#fff;font:inherit;font-size:11.5px;font-weight:800;line-height:1.3;cursor:pointer;color:var(--ink);transition:transform .12s var(--ease),background .2s}
.pads button span{font-size:24px}.pads button:active{transform:scale(.93)}.pads button:hover{border-color:#60A5FA}
.pads button.right{background:#DCFCE7;border-color:#22C55E;animation:pop .35s}.pads button.wrong{background:#FEE2E2;border-color:#F87171}.pads button:disabled{cursor:default}.pads button:disabled:not(.right):not(.wrong){opacity:.4}
.plus{position:absolute;right:18px;top:44px;font-size:26px;font-weight:900;color:#16A34A;animation:up 1s var(--ease) forwards;pointer-events:none;z-index:5}
.game.shake{animation:shk .4s}@keyframes shk{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
.rvw{display:grid;grid-template-columns:28px 1fr;gap:2px 10px;padding:10px 0;border-bottom:1px solid #F1F5F9}.rvw:last-child{border-bottom:0}.rvw .mk{font-size:18px}.rvw b{font-size:13px;line-height:1.6}.rvw p{grid-column:2;margin:0;font-size:12px;color:var(--ink2);line-height:1.7}
#revc[hidden],#play[hidden],.ready[hidden],.tbar[hidden],.qh2[hidden]{display:none}
.chat{min-height:0}.bot .bub{min-height:4.5em}
.gtop{position:sticky;top:57px;z-index:4;margin:-16px -16px 0;padding:14px 16px 8px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:28px 28px 0 0}
/* v3.1 操作性の改善：1画面に収める・同じ位置で答えて同じ位置で進む */
.task{margin:10px 0 0;padding:8px 12px;font-size:13.5px}
.chat{gap:8px;margin-top:10px}.chat .me{max-width:92%}.chat .bot{display:grid;grid-template-columns:30px 1fr;gap:6px;align-items:start;max-width:100%}
.chat .bot .av{width:30px;height:30px;border-radius:50%;background:#EFF6FF;display:grid;place-items:center;font-size:17px}
.bub{font-size:13.5px;line-height:1.65;padding:9px 12px}.bot .bub{min-height:5.2em;transition:background .3s,box-shadow .3s}
.me .bub mark{display:block;margin-top:4px}
.fb2{margin-top:10px;padding:9px 12px;font-size:12.5px;line-height:1.6}.fb2 b{font-size:15px}.fb2 span{display:block;margin-top:2px}
.qh2{margin:12px 0 6px;font-size:12.5px;text-align:center}
.act{position:relative;min-height:84px}
.pads button{position:relative;min-height:80px}.pads button kbd{position:absolute;top:4px;right:6px;font:700 9px "JetBrains Mono",monospace;color:#94A3B8}
@media (hover:none){.pads button kbd{display:none}}
.pads .c-who{border-color:#BFDBFE;background:#F5F9FF}.pads .c-form{border-color:#DDD6FE;background:#FAF7FF}.pads .c-cond{border-color:#FED7AA;background:#FFF9F3}.pads .c-src{border-color:#A5F3FC;background:#F3FDFF}.pads .c-pii{border-color:#FBCFE8;background:#FFF6FB}
.pads button.right{background:#DCFCE7!important;border-color:#22C55E!important;transform:scale(1.04)}.pads button.wrong{background:#FEE2E2!important;border-color:#F87171!important}
.pads[hidden]{display:none}
.go.nxt{position:relative;overflow:hidden;height:80px;margin:0;font-size:18px;animation:pop .3s}.go.nxt span{position:relative;z-index:1}.go.nxt i{position:absolute;left:0;bottom:0;height:5px;width:0;background:rgba(255,255,255,.65)}
.count{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:rgba(255,255,255,.82);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.count b{font-size:120px;font-weight:900;color:var(--ac);animation:cnt .6s var(--ease)}
@keyframes cnt{from{transform:scale(1.8);opacity:0}30%{opacity:1}to{transform:scale(1);opacity:.9}}
.count[hidden]{display:none}
