@import "https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600;700&family=Spectral:wght@500;600&display=swap";:root{--ink:#14212b;--muted:#5a6b76;--paper:#eef3f6;--panel:#f7fafb;--line:#c9d6de;--accent:#0f6e7c;--accent-deep:#0a4f59;--warm:#b23a2f;--good:#2f6b4f;--hard:#9a6b2f;--again:#8a3d3d;--shadow:0 18px 40px #14212b14;--radius:18px;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Golos Text,system-ui,sans-serif;line-height:1.35}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%, #0f6e7c29, transparent 55%), radial-gradient(900px 500px at -10% 20%, #b23a2f1a, transparent 50%), linear-gradient(180deg, #e7eef2 0%, var(--paper) 42%, #e9f0f3 100%);min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer}.page{width:min(560px,100%);min-height:100dvh;margin:0 auto;padding:16px 18px 40px}.topbar,.study-bar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.lang-toggle,.text-btn{border:1px solid var(--line);background:#ffffffb3;border-radius:999px;padding:8px 14px}.net{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.78rem}.net.on{color:var(--good)}.hero{padding:28px 8px 18px;animation:.7s both rise;position:relative;overflow:hidden}.hero:before{content:"Ж";color:#0f6e7c14;pointer-events:none;font-family:Spectral,serif;font-size:9rem;line-height:1;animation:8s ease-in-out infinite alternate drift;position:absolute;top:-18px;right:-8px}.brand{letter-spacing:.02em;margin:0;font-size:1.05rem;font-weight:700}.headline{letter-spacing:.08em;margin:10px 0 8px;font-family:Spectral,serif;font-size:clamp(2.6rem,12vw,3.4rem);font-weight:600}.tagline{color:var(--muted);max-width:28ch;margin:0 0 18px}.cta-row{gap:10px;display:flex}.install-hint{color:var(--muted);margin:14px 0 0;font-size:.86rem}.deck-nav{gap:10px;margin-top:18px;animation:.7s .12s both rise;display:grid}.deck-btn{text-align:left;border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:#ffffffb8;grid-template-columns:72px 1fr auto;align-items:center;gap:10px;padding:14px 16px;display:grid}.deck-ru{color:var(--accent-deep);font-family:Spectral,serif;font-size:1.25rem}.muted{color:var(--muted);font-size:.85rem}.home-foot{gap:8px;margin-top:22px;animation:.7s .2s both rise;display:grid}.home-foot a.btn{text-align:center;text-decoration:none}.cache-msg{color:var(--accent-deep);font-size:.9rem}.btn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.ghost{background:0 0}.btn.wide{width:100%;margin-top:12px}.btn:disabled{opacity:.55}.badge{background:var(--warm);color:#fff;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.78rem;display:inline-block}.flash{border:1px solid var(--line);min-height:260px;box-shadow:var(--shadow);background:#ffffffdb;border-radius:24px;padding:28px 20px;animation:.35s both pop}.deck-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.72rem}.ru-main{margin:18px 0 8px;font-family:Spectral,serif;font-size:clamp(2.8rem,14vw,4rem);line-height:1.05}.ru-main.huge{text-align:center;margin:28px 0 12px;font-size:clamp(3.2rem,16vw,4.6rem)}.must{text-align:center;color:var(--warm);margin:0;font-size:.92rem}.section-title{margin:22px 0 10px;font-size:1rem}.mode-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mode-btn{text-align:left;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffc7;gap:4px;min-height:96px;padding:14px;display:grid}.goal-bar{background:#14212b14;border-radius:999px;height:8px;margin:4px 0 8px;overflow:hidden}.goal-fill{background:linear-gradient(90deg, var(--accent), var(--accent-deep));height:100%;transition:width .4s}.goal-label{color:var(--muted);margin:0 0 14px;font-size:.88rem}.choice-grid{gap:8px;margin-top:14px;display:grid}.choice{border:1px solid var(--line);text-align:left;background:#fff;border-radius:14px;padding:14px}.letter-choice{text-align:center;font-family:Spectral,serif;font-size:1.7rem}.choice.ok{border-color:var(--good);background:#2f6b4f1f}.choice.bad{border-color:var(--again);background:#8a3d3d1a}.match-choice{align-items:center;gap:12px;font-size:1.05rem;display:flex}.match-choice:disabled{opacity:1;cursor:default}.keycap{border:1px solid var(--line);background:var(--paper);width:28px;height:28px;color:var(--accent-deep);border-radius:8px;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.sound-text{text-align:left}.keys-hint{margin:12px 0 6px;font-size:.86rem}.match-choice.unknown{color:var(--muted);border-style:dashed}.match-feedback{border:1px solid var(--line);background:#fffc;border-radius:14px;gap:6px;margin:10px 0 4px;padding:12px 14px;display:grid}.match-feedback p{margin:0}.picked-wrong{color:var(--again)}.picked-right{color:var(--good)}.carousel-controls{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.carousel-controls .btn.primary{grid-column:1/-1}.carousel-status{text-align:center;color:var(--accent-deep);margin:8px 0 0;font-size:.95rem}.carousel-letter{animation:.35s both pop}.timing-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.timing-row label{color:var(--muted);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.timing-btns{gap:6px;display:flex}.timing-btns .btn{min-width:44px;padding:8px 10px}.flash-ok{outline:2px solid var(--good);outline-offset:2px}.flash-bad{outline:2px solid var(--again);outline-offset:2px}.keys-hint{text-align:center;margin:0 0 8px;font-size:.85rem}.lab-method{border:1px solid var(--line);background:#ffffffd1;border-radius:16px;margin:12px 0 16px;padding:14px 16px}.lab-method p{margin:6px 0 0}.type-input{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:14px;margin-top:12px;padding:14px;font-size:1.35rem}.setting{border-bottom:1px solid var(--line);gap:8px;margin:14px 0;padding:12px 0;display:grid}.setting.check{grid-template-columns:auto 1fr;align-items:center}.flash.reading{min-height:280px}.tr{color:var(--accent-deep);margin:0;font-size:1.05rem}.back{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;animation:.3s both rise}.en{margin:0 0 10px;font-size:1.25rem;font-weight:600}.tip{color:var(--muted);margin:0;font-size:.95rem}.audio-row,.self-row,.grade-row{gap:8px;margin-top:14px;display:grid}.audio-row{grid-template-columns:1fr 1fr}.audio-row .accent{grid-column:1/-1}.grade-row{grid-template-columns:repeat(4,1fr)}.grade{color:#fff;border:none;border-radius:14px;padding:14px 6px;font-size:.85rem;font-weight:600}.grade.again{background:var(--again)}.grade.hard{background:var(--hard)}.grade.good{background:var(--good)}.grade.easy{background:var(--accent)}.heard,.note{color:var(--accent-deep);margin:10px 0 0;font-size:.92rem}.done-card{text-align:center;border:1px solid var(--line);background:#ffffffd9;border-radius:24px;margin-top:20vh;padding:28px 18px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 22px;display:grid}.stat-grid div{border:1px solid var(--line);text-align:center;background:#fffc;border-radius:16px;gap:4px;padding:14px 10px;display:grid}.stat-grid strong{font-size:1.4rem}.stat-grid span,.rank-list,.session-list{color:var(--muted);font-size:.88rem}.rank-list,.session-list{margin:0 0 20px;padding:0;list-style:none}.rank-list li,.session-list li{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;gap:12px;padding:10px 0;display:flex}h2,h3{margin:8px 0;font-family:Spectral,serif;font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes drift{0%{transform:translateY(0)}to{transform:translateY(12px)}}@media (width>=640px){.audio-row{grid-template-columns:1fr 1fr 1.4fr}.audio-row .accent{grid-column:auto}}
