:root{color-scheme:dark;--bg:#071b18;--card:#112b26;--mint:#75e6bf;--text:#f5fffb;--muted:#afc9c0;--warn:#ffd37a}
.source-help{color:var(--muted);font-size:.88rem;text-align:left}.vocabulary-concept{color:var(--muted);margin:.7rem 0 .2rem}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#17453b,var(--bg) 50%);color:var(--text);font:16px/1.5 system-ui,-apple-system,sans-serif;min-height:100dvh}main{width:min(100%,560px);margin:auto;padding:max(20px,env(safe-area-inset-top)) 18px max(30px,env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}h1{font-size:1.35rem;margin:.15rem 0}.card{background:color-mix(in srgb,var(--card) 93%,white);border:1px solid #2b5048;border-radius:24px;padding:24px;margin:16px 0;box-shadow:0 12px 40px #0004;text-align:center}.ring{width:150px;height:150px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:conic-gradient(var(--mint) var(--progress,0%),#315048 0);position:relative}.ring:after{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--card)}.ring span{z-index:1;font-weight:800;font-size:1.6rem}.ring.milestone-reached{filter:drop-shadow(0 0 10px var(--mint))}button{border:0;border-radius:16px;padding:15px 20px;min-height:50px;font:inherit;font-weight:750;cursor:pointer;touch-action:manipulation}.primary{background:var(--mint);color:#09221c;width:100%;min-height:58px;margin:7px 0}.primary.listening{background:#ffae73;transform:scale(.98)}.quiet{background:#294940;color:var(--text);margin:6px}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#0d2521;border:1px solid #2b5048;border-radius:18px;padding:5px}.mode{background:transparent;color:var(--muted)}.mode.active{background:var(--mint);color:#09221c}.goal{text-align:center;font-weight:750;margin:14px 0 0}.milestone{color:var(--muted);font-size:.92rem}.badge{display:inline-block;padding:3px 10px;border-radius:99px;background:#275b4f;color:var(--mint)}#ja{font-size:1.7rem;font-weight:800;margin-bottom:.4rem}.pronunciation-field{border-radius:14px;background:#0c211d;padding:9px 12px;margin:8px 0}.pronunciation-field small{display:block;color:var(--mint)}#pronunciationKo,#ko{color:var(--muted);margin:.2rem}#recast{color:var(--warn);margin-top:12px}.choice{display:block;width:100%;margin:8px 0;background:#24473f;color:var(--text)}#notice{min-height:1.5em;color:var(--warn);text-align:center}.vocabulary{min-height:360px}#vocabularyCounts{color:var(--muted)}#vocabularyJa{font-size:2.5rem;font-weight:850;margin:28px 0 2px}#vocabularyPronunciation,#vocabularyExamplePronunciation{color:var(--mint);font-size:1.15rem;margin-top:0}#vocabularyExample{font-size:1.35rem;font-weight:700;margin-bottom:2px}.ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:20px}.ratings button{padding:14px 5px;background:#294940;color:var(--text)}.ratings button:last-child{background:var(--mint);color:#09221c}button:disabled{opacity:.5}.update{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--warn);color:#251b00}.paused{opacity:.62}@media(min-width:700px){main{padding-top:50px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
