:root{--bg:#eef3fb;--surface:#fff;--text:#1d2433;--muted:#5b6578;--border:#c5cedd;--primary:#2f5fb3;--primary-text:#fff;--error:#c62828;--battle-box-height:80px;--battle-box-space:calc(var(--battle-box-height) + 20px);--radius:12px;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,sans-serif;font-size:18px}*{box-sizing:border-box}body{margin:0}.page{max-width:960px;margin:0 auto;padding:24px 16px}.page-center{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;display:flex}.page-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-kid{font-size:1.4rem}.list{padding-left:20px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.cards{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:0 2px 10px #0000000f}.field{flex-direction:column;gap:4px;font-weight:600;display:flex}.grow{flex:1;min-width:0}.quest-card{align-items:center}fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}legend{font-weight:600}textarea{font:inherit;border:1px solid var(--border);background:var(--surface);resize:vertical;border-radius:8px;padding:10px 12px}.button-danger{color:var(--error);border:1px solid var(--error);background:0 0}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px 12px}.pin-input{letter-spacing:.5em;text-align:center;width:8ch;font-size:2.4rem}.error{color:var(--error);font-weight:600}h1,h2{margin:0}.muted{color:var(--muted)}.button{font:inherit;border-radius:var(--radius);color:var(--text);cursor:pointer;background:#dde5f3;border:none;padding:12px 20px;text-decoration:none;display:inline-block}.button:disabled{opacity:.45;cursor:default}.button-primary{background:var(--primary);color:var(--primary-text);padding:16px 28px;font-size:1.2rem}.battle{color:#e8e2d0;touch-action:manipulation;background:#141018;position:fixed;inset:0;overflow:hidden}.battle-stage{inset:env(safe-area-inset-top,0) 0 var(--battle-box-space);position:absolute}.battle-intro{flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.button-huge{padding:24px 48px;font-size:2rem}.battle-box{width:calc(100% - 24px);max-width:900px;min-height:var(--battle-box-height);flex-direction:column;justify-content:flex-end;margin:0 auto 12px;font-size:1.4rem;display:flex;position:absolute;left:0;right:0}.battle-box .stack{gap:6px}.battle-result{color:#1d1724;background:#f4efe2;border-radius:10px;padding:14px 18px}.battle-text{min-height:1.6em;margin:0}.battle-title{margin:0;font-size:2rem;font-weight:700}.question-row{align-items:center;gap:12px;display:flex}.question-input{background:#fff;border:none;border-radius:8px;flex:1;min-width:0;padding:8px 12px;font-size:2rem}.question-listen{padding:10px 14px;font-size:1.6rem}.wrong{color:var(--error);text-decoration:line-through}.right{color:#1b7f45}.corrections{max-height:30vh;margin:0;padding-left:20px;overflow:auto}.timer-track{background:#fff3;border-radius:4px;height:8px;overflow:hidden}.timer-bar{transform-origin:0;background:#c0392b;height:100%;animation-name:timer-shrink;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes timer-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.keyboard-keeper{opacity:0;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;top:0;left:0}.page-pinned,.page-pinned body{overscroll-behavior:none;height:100%;overflow:hidden}.field-hidden{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.question-overlay{color:#1d1724;background:#f4efe2e0;border-radius:12px;padding:12px 16px;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.question-prompt{text-align:center;margin:0 0 10px;font-size:1.5rem;font-weight:700}.choice-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{font:inherit;color:#1d1724;cursor:pointer;background:#fff;border:none;border-radius:10px;padding:14px 10px;font-size:1.4rem}.choice:active{background:#dde5f3}.math-question{text-align:center;padding:8px 16px;font-size:2.6rem;font-weight:700}.math-answer{color:#2f5fb3;min-width:2ch;display:inline-block}.number-row{gap:6px;display:flex}.number-key{min-width:0;font:inherit;color:#1d1724;cursor:pointer;background:#fff;border:none;border-radius:8px;flex:1;padding:12px 0;font-size:1.6rem}.number-key:active{background:#dde5f3}.number-ok{background:var(--primary);color:var(--primary-text);flex:1.6}.question-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.question-item{border:1px solid var(--border);border-radius:var(--radius);padding:12px}.button-small{padding:6px 12px;font-size:1rem}.choice-option{flex-wrap:nowrap;align-items:center}.math-editor{align-items:center}.math-editor input{width:7ch}.answer-correct,.choice.choice-correct{color:#fff;background:#2e9e5b}.answer-wrong,.choice.choice-wrong{color:#fff;background:#d64545}.math-answer.answer-correct,.math-answer.answer-wrong{border-radius:8px;padding:0 8px}.choice:disabled,.number-key:disabled{opacity:1;cursor:default}
