:root{--bg: #faf7f0;--card: #ffffff;--ink: #1f2933;--muted: #7b8794;--accent: #c8553d;--accent-ink: #ffffff;--green: #4f9d69;--yellow: #d9a441;--line: #e6e1d6;--radius: 14px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}.app{max-width:480px;margin:0 auto;padding:24px 16px 48px;min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;margin-bottom:24px}.app-header h1{margin:0;font-size:2rem;letter-spacing:-.5px}.tagline{color:var(--muted);font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 3px #0000000a}.center{text-align:center}h2{margin:0 0 8px;font-size:1.6rem}.lead{color:var(--muted);margin:8px 0 20px}.muted{color:var(--muted);font-size:.9rem}.progress{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.9rem;margin-bottom:16px}.level-pill{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-weight:600;color:var(--ink)}.prompt-label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px}.source{font-size:1.5rem;font-weight:600;margin:0 0 20px;line-height:1.3}.answer-input{width:100%;padding:12px 14px;font-size:1.05rem;border:2px solid var(--line);border-radius:10px;outline:none;margin-bottom:14px}.answer-input:focus{border-color:var(--accent)}.answer-input:disabled{background:#f5f3ee}.btn{width:100%;padding:13px;font-size:1rem;font-weight:600;border:none;border-radius:10px;cursor:pointer}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:disabled{opacity:.45;cursor:not-allowed}.feedback{border-radius:10px;padding:14px;margin-bottom:14px;border:1px solid var(--line)}.feedback.correct{background:#eef6f0;border-color:var(--green)}.feedback.close{background:#fbf3e2;border-color:var(--yellow)}.feedback.wrong{background:#f7eeec;border-color:var(--accent)}.answer-reveal{margin-top:6px}.note{margin-top:8px;font-size:.9rem;color:var(--muted);font-style:italic}.grid{font-size:1.8rem;letter-spacing:4px;margin:12px 0 8px}.square{display:inline-block}.streak{font-weight:600;margin:8px 0 16px}.app-footer{text-align:center;margin-top:auto;padding-top:24px}
