:root{--washi: #1c1a17;--washi-deep: #26221d;--sumi: #f2ecdc;--sumi-soft: #a89e8c;--shu: #d9654c;--shu-deep: #b4402c;--ai: #5588ad;--ai-deep: #2c465e;--rule: rgba(242, 236, 220, .14)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--washi);background-image:radial-gradient(circle at 12% 8%,rgba(242,236,220,.035),transparent 40%),radial-gradient(circle at 88% 92%,rgba(242,236,220,.035),transparent 40%);color:var(--sumi);font-family:Zen Kaku Gothic New,Hiragino Sans,sans-serif;-webkit-font-smoothing:antialiased}h1{font-family:Shippori Mincho,serif;font-weight:700;font-size:1.5rem;margin:0 0 1.25rem;letter-spacing:.02em}.page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.card{width:100%;max-width:360px;padding:2rem 1.75rem;background:var(--washi-deep);border:1px solid var(--rule);text-align:left}.muted{color:var(--sumi-soft);line-height:1.5}.hint{color:var(--sumi-soft);font-size:.8rem;line-height:1.5;margin-top:1.25rem}.error{color:var(--shu-deep);font-size:.85rem}input[type=text]{width:100%;padding:.7rem .8rem;font-size:1rem;font-family:inherit;border:1px solid var(--rule);background:var(--washi);color:var(--sumi);margin-bottom:.75rem}input[type=text]:focus{outline:2px solid var(--ai);outline-offset:1px}.select-row{display:flex;gap:.75rem;margin-bottom:.75rem}.select-field{display:block;flex:1}.button-row{display:flex;gap:.75rem}.button-row button{flex:1}select{width:100%;padding:.7rem .8rem;font-size:1rem;font-family:inherit;border:1px solid var(--rule);background:var(--washi);color:var(--sumi)}select:focus{outline:2px solid var(--ai);outline-offset:1px}button{width:100%;padding:.75rem;font-size:.95rem;font-family:inherit;font-weight:500;background:var(--sumi);color:var(--washi);border:none;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.link{background:none;color:var(--sumi-soft);margin-top:.75rem;text-decoration:underline;font-size:.85rem}.stat-row{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}.stat{display:flex;flex-direction:column}.stat-number{font-family:Shippori Mincho,serif;font-size:2rem;line-height:1}.stat-label{font-size:.8rem;color:var(--sumi-soft);margin-top:.25rem}.review-shell{width:100%;max-width:360px}.progress-track{height:2px;background:var(--rule);margin-bottom:2.5rem}.progress-fill{height:100%;background:var(--shu);transition:width .25s ease}.review-card{background:var(--washi-deep);border:1px solid var(--rule);border-top:3px solid var(--ai);padding:2.5rem 1.75rem 2rem;text-align:center}.review-card.reading{border-top-color:var(--shu)}.review-card.lesson{border-top-color:var(--sumi-soft)}.kind-label{display:block;font-size:.8rem;color:var(--sumi-soft);margin-bottom:1.25rem}.character{font-family:Shippori Mincho,serif;font-size:4.5rem;line-height:1;margin-bottom:2rem}.character img{height:4.5rem}.answer-actions{display:flex;gap:.5rem;margin-bottom:.75rem}.answer-actions button{background:none;border:1px solid var(--rule);color:var(--sumi-soft);font-size:.8rem;padding:.55rem}.answer-actions button:hover{border-color:var(--sumi-soft);color:var(--sumi)}.feedback p{font-size:1.1rem;margin:0 0 1.25rem}.feedback .correct{color:var(--ai-deep)}.feedback .incorrect{color:var(--shu-deep)}.feedback-answers{font-size:.95rem!important;color:var(--sumi-soft);margin-top:-.75rem!important}.mnemonic{text-align:left;font-size:.85rem;line-height:1.6;color:var(--sumi-soft);border-top:1px solid var(--rule);padding-top:1rem;margin-bottom:1.25rem}.lesson-info{text-align:left}.lesson-field{font-size:1.05rem;margin-bottom:.75rem}.lesson-field-label{display:block;font-size:.8rem;color:var(--sumi-soft);margin-bottom:.15rem}
