:root{--text:#1d1b22;--muted:#6b6375;--bg:#fff;--surface:#f6f5f8;--border:#e3e1e8;--accent:#1f5fbf;--accent-text:#fff;--good:#1c7c3a;--good-bg:#e3f4e8;--bad:#b3261e;--bad-bg:#fbe7e5;--easy:#5b3cc4;--mark:#ffe08a;--ending:#d6336c;--negative:#c2410c;--tab-height:3.5rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font:17px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#f1eff5;--muted:#a39fae;--bg:#15141a;--surface:#211f28;--border:#34313d;--accent:#6ea3ff;--accent-text:#0b1830;--good:#5fd383;--good-bg:#173322;--bad:#ff8a80;--bad-bg:#3a1a18;--easy:#b39dff;--mark:#6b5600;--ending:#ff7aa8;--negative:#fb923c}}*{box-sizing:border-box}body{margin:0}h1{margin:0 0 .5rem;font-size:1.6rem}h2{margin:2rem 0 .75rem;font-size:1.15rem}.page{max-width:40rem;margin:0 auto;padding:1.5rem 1rem}.muted{color:var(--muted)}.error{color:var(--bad)}.notice{background:var(--surface);border-radius:.75rem;padding:.75rem 1rem}.good{color:var(--good)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.bad{color:var(--bad)}mark{background:var(--mark);color:inherit;border-radius:.2rem}button,input{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:.75rem;min-height:3rem;padding:.6rem 1.1rem}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.link{min-height:2.75rem;color:var(--accent);background:0 0;border:none;padding:.5rem .25rem}.wide{width:100%}input:not([type=checkbox]):not([type=radio]){border:1px solid var(--border);background:var(--bg);border-radius:.75rem;width:100%;min-height:3rem;padding:.6rem .8rem}label{gap:.35rem;font-weight:500;display:grid}.stack{gap:1rem;margin-top:1.25rem;display:grid}.auth{max-width:26rem;padding-top:3rem}.auth-links{flex-wrap:wrap;gap:.25rem 1rem;margin-top:1.25rem;display:flex}.tabs{height:calc(var(--tab-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--border);z-index:10;display:flex;position:fixed;inset:auto 0 0}.tabs .brand{display:none}.tab{color:var(--muted);min-height:var(--tab-height);background:0 0;border:none;border-radius:0;flex:1}.tab.active{color:var(--accent);font-weight:600}.shell{padding-bottom:calc(var(--tab-height) + env(safe-area-inset-bottom))}@media (width>=48rem){.tabs{height:var(--tab-height);border-top:none;border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:0 1.5rem;position:sticky;inset:0 0 auto}.tabs .brand{margin-right:auto;font-weight:700;display:block}.tab{flex:none;padding:0 1rem}.shell{padding-bottom:0}}.today{text-align:center;padding:1.5rem 0 .5rem}.big-number{margin:0;font-size:4.5rem;font-weight:700;line-height:1}.today .muted{margin:.5rem 0 1.25rem}.lessons{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.lesson-row{background:var(--surface);border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;padding:.5rem 1rem;display:flex}.lesson-info{justify-items:start;display:grid}.overview-link{text-align:left;min-height:2.5rem;padding:.25rem 0;font-size:.95rem}.lesson-row input{appearance:none;background:var(--border);cursor:pointer;border-radius:1rem;flex:none;width:3.1rem;height:1.85rem;transition:background .15s;position:relative}.lesson-row input:after{content:"";background:#fff;border-radius:50%;width:1.45rem;height:1.45rem;transition:transform .15s;position:absolute;top:.2rem;left:.2rem}.lesson-row input:checked{background:var(--accent)}.lesson-row input:checked:after{transform:translate(1.25rem)}.review{flex-direction:column;min-height:100dvh;display:flex}.review-bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.25rem 1rem;display:flex}.review .page{flex-direction:column;flex:1;width:100%;display:flex}.card{isolation:isolate;border:2px solid #0000;border-radius:1.25rem;flex-direction:column;flex:1;margin:-.75rem -.5rem;padding:.75rem .5rem;transition:border-color .35s;animation:.28s ease-out card-in;display:flex;position:relative}.card:before{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity .35s;position:absolute;inset:0}.card[data-outcome=right]{border-color:var(--good)}.card[data-outcome=right]:before{background:linear-gradient(to bottom, var(--good-bg), transparent 75%);opacity:1}.card[data-outcome=wrong]{border-color:var(--bad)}.card[data-outcome=wrong]:before{background:linear-gradient(to bottom, var(--bad-bg), transparent 75%);opacity:1}.card[data-outcome]:after{width:2.25rem;height:2.25rem;color:var(--bg);border-radius:50%;place-items:center;font-size:1.2rem;font-weight:700;animation:.4s cubic-bezier(.3,1.6,.5,1) stamp;display:grid;position:absolute;top:.6rem;right:.6rem}.card[data-outcome=right]:after{content:"✓";background:var(--good)}.card[data-outcome=wrong]:after{content:"✗";background:var(--bad)}@keyframes card-in{0%{opacity:0;transform:translateY(.75rem)}}@keyframes stamp{0%{opacity:0;transform:scale(.3)rotate(-25deg)}}.card-type{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.85rem}.prompt{overflow-wrap:anywhere;margin:1.5rem 0 .25rem;font-size:1.9rem;font-weight:600;line-height:1.25}.hint{margin:0}.answer{margin:0 0 .25rem;font-size:1.5rem;font-weight:600}.actions,.typed,.choices{gap:.75rem;margin-top:auto;padding-top:1.5rem;display:grid}.choices+.actions{margin-top:0}.choice{text-align:left;min-height:3.5rem;font-size:1.15rem;transition:opacity .3s,transform .15s}.choice.checking,.typed input.checking{border-color:var(--accent);opacity:1;animation:.45s ease-in-out anticipate}.choice.right{background:var(--good-bg);border-color:var(--good);opacity:1;border-width:2px;font-weight:600;animation:.45s cubic-bezier(.3,1.6,.5,1) pop,.6s ease-out ring}.choice.wrong{background:var(--bad-bg);border-color:var(--bad);opacity:1;border-width:2px;animation:.4s ease-in-out shake}.choice.right:after,.choice.wrong:after{float:right;font-weight:700}.choice.right:after{content:"✓";color:var(--good)}.choice.wrong:after{content:"✗";color:var(--bad)}.choice.faded{opacity:.4}.typed input.right{border-color:var(--good);background:var(--good-bg);animation:.45s cubic-bezier(.3,1.6,.5,1) pop}.typed input.wrong{border-color:var(--bad);background:var(--bad-bg);animation:.4s ease-in-out shake}.verdict{align-items:center;gap:.5rem;margin:0;font-weight:600;animation:.3s ease-out rise;display:flex}.verdict-icon{width:1.6rem;height:1.6rem;color:var(--bg);border-radius:50%;flex:none;place-items:center;display:grid}.verdict.good .verdict-icon{background:var(--good)}.verdict.bad .verdict-icon{background:var(--bad)}.answer{transform-origin:top;animation:.4s ease-out flip-in}button:active:not(:disabled){transform:scale(.97)}@keyframes anticipate{40%{transform:scale(.96)}70%{transform:scale(1.015)}}@keyframes pop{40%{transform:scale(1.04)}}@keyframes ring{0%{box-shadow:0 0 0 0 var(--good)}to{box-shadow:0 0 0 .6rem #0000}}@keyframes shake{20%,60%{transform:translate(-.4rem)}40%,80%{transform:translate(.4rem)}}@keyframes rise{0%{opacity:0;transform:translateY(.5rem)}}@keyframes flip-in{0%{opacity:0;transform:perspective(40rem)rotateX(-80deg)}}.letters{gap:.5rem;display:flex}.letters button{min-width:3.5rem;font-size:1.3rem}.typed input{font-size:1.3rem}.rating-row{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:.5rem;display:grid}.rating-row button{min-height:3.5rem;font-weight:600}button.again{color:var(--bad)}button.good-btn{color:var(--good)}button.easy{color:var(--easy)}.end{text-align:center;margin:auto 0}.end-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.5rem 0;display:grid}.end-stats div{background:var(--surface);border-radius:.75rem;padding:.75rem .25rem}.end-stats dt{color:var(--muted);font-size:.85rem}.end-stats dd{margin:.25rem 0 0;font-size:1.6rem;font-weight:700}.overview-page{min-height:100dvh}.sheet-page{max-width:64rem}.sheet h1{color:var(--accent);margin:0 0 .15rem;font-size:1.35rem}.sheet-sub{color:var(--muted);margin:0 0 .25rem;font-size:.85rem}.sheet-sub.legend{margin-bottom:.75rem}.sheet-grid{grid-template-columns:1fr;gap:.65rem;margin-top:.5rem;display:grid}@media (width>=48rem){.sheet-grid{grid-template-columns:1fr 1fr}.sheet-card.wide{grid-column:1/-1}.sheet-two{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}}.sheet-card{background:var(--bg);border:1px solid var(--border);border-radius:.75rem;min-width:0;padding:.6rem .8rem;font-size:.9rem;line-height:1.4}.sheet-card h2{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:0 0 .4rem;font-size:.8rem}.sheet-card p{margin:.35rem 0}.sheet-card table{border-collapse:collapse;width:100%}.sheet-card td,.sheet-card th{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.15rem .4rem}.sheet-card tr:last-child td{border-bottom:0}.sheet-card th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.pairs{table-layout:fixed}.pairs .fi{width:50%;font-weight:600}.pairs .en{color:var(--muted)}.table-wrap{overflow-x:auto}.grid-table td,.grid-table th{white-space:nowrap}.numbers{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.1rem .6rem;margin:.35rem 0;display:grid}.numbers b{color:var(--accent)}.sheet-note{background:var(--surface);border-radius:.5rem;padding:.35rem .6rem}.sheet-list,.mistakes{margin:.35rem 0;padding-left:1.1rem}.sheet-list li,.mistakes li{margin:.15rem 0}.mistakes{padding-left:0;list-style:none}.mistakes .wrong{color:var(--bad);font-weight:700}.mistakes .right{color:var(--good);font-weight:700}.mk-ending{color:var(--ending);font-weight:700}.mk-negative{color:var(--negative);font-weight:600}.sheet-card.eli5{background:var(--surface);border-left:4px solid var(--accent)}.sheet-foot{color:var(--muted);text-align:center;margin:.75rem 0 0;font-size:.75rem}@media print{.review-bar,.tabs,.feedback{display:none}.sheet-page{max-width:none;padding:0}.sheet-grid{grid-template-columns:1fr 1fr}.sheet-card.wide{grid-column:1/-1}.sheet-card{break-inside:avoid;font-size:.75rem}}button.dont-know{color:var(--muted);justify-self:center}.explain{background:var(--surface);border-left:4px solid var(--accent);text-align:left;transform-origin:bottom;border-radius:0 .75rem .75rem 0;padding:.5rem .9rem;animation:.3s cubic-bezier(.3,1.4,.5,1) unfold}.explain p{margin:.35rem 0}.explain .mnemonic{font-style:italic}button.why{justify-self:center;min-height:2.5rem;padding-block:.25rem}@keyframes unfold{0%{opacity:0;transform:translateY(.5rem)scale(.95)}}@media (prefers-reduced-motion:reduce){.card,.card:after,.choice,.typed input,.verdict,.answer,.explain{animation:none!important}.card,.card:before,.choice{transition:none}button:active:not(:disabled){transform:none}}.feedback{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:.75rem}.feedback h2{margin:0 0 .25rem;font-size:1.05rem}.feedback h3{margin:1rem 0 .4rem;font-size:.95rem}.feedback-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.feedback-list li{background:var(--surface);border-radius:.6rem;padding:.5rem .75rem}.feedback-list p{overflow-wrap:anywhere;margin:.15rem 0}.admin-page{min-height:100dvh}.segmented{gap:.25rem;max-width:40rem;margin:.75rem auto 0;padding:0 1rem;display:flex}.segmented button{flex:1;min-width:0;padding-inline:.4rem}.segmented button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.admin-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-row{text-align:left;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.badge{background:var(--good-bg);color:var(--good);border-radius:1rem;margin-left:.4rem;padding:.05rem .5rem;font-size:.8rem;display:inline-block}.badge.draft{background:var(--bad-bg);color:var(--bad)}.user-row{background:var(--surface);border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.user-row p{overflow-wrap:anywhere;margin:.15rem 0 0}.user-actions{flex:none;gap:.4rem;display:grid}button.danger{color:var(--bad);border-color:var(--bad);font-weight:600}.card-list{gap:.5rem;padding-left:1.5rem;display:grid}.card-list li{background:var(--surface);border-radius:.6rem;padding:.5rem .75rem}.card-list p{overflow-wrap:anywhere;margin:.15rem 0}.card-list .card-explain{border-left:3px solid var(--accent);margin:.25rem 0;padding-left:.5rem;font-size:.9rem}.card-explain p{margin:.15rem 0}.card-explain .mnemonic{font-style:italic}.card-meta{color:var(--muted);font-size:.8rem}.hidden-card{opacity:.6}.dialog-backdrop{z-index:20;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:1rem;width:min(28rem,100%);margin:0;padding:1.25rem}.dialog h2{margin:0}.lesson-admin-title{margin:.5rem 0;font-size:1.35rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 1rem;display:flex}.preview-control{flex:16rem;gap:.35rem;display:flex}.preview-control button{white-space:nowrap;flex:1}.fullscreen{z-index:30;overscroll-behavior:contain;background:var(--bg);position:fixed;inset:0;overflow-y:auto}select,textarea{font:inherit;color:inherit;border:1px solid var(--border);background:var(--bg);border-radius:.75rem;width:100%;padding:.6rem .8rem}select{text-overflow:ellipsis;min-width:0;max-width:100%;min-height:3rem}.preview-control select{width:auto}textarea{resize:vertical}.lint-summary{background:var(--good-bg);color:var(--good);border-radius:.6rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem .75rem;display:flex}.lint-summary.warn{background:var(--bad-bg);color:var(--bad)}label.inline-check{align-items:center;gap:.5rem;font-weight:400;display:flex}.reset-check{border:1px solid var(--bad);color:var(--bad);border-radius:.6rem;padding:.5rem .75rem}.card-list .issues{margin:.35rem 0;padding:0;font-size:.9rem;list-style:none}.card-list .issues li{color:var(--negative);background:0 0;padding:0}.card-list .issues li.error{color:var(--bad);font-weight:600}.card-actions{gap:.5rem;margin-top:.4rem;display:flex}.card-actions button{min-height:2.5rem;padding:.3rem .9rem}.card-form{border:2px solid var(--accent);background:var(--bg);border-radius:.75rem;gap:.75rem;margin:.5rem 0 1rem;padding:.75rem;display:grid}.card-form h3{margin:0}.practice-note{margin:0 0 .5rem;font-size:.85rem}fieldset.choice-group{border:1px solid var(--border);border-radius:.75rem;gap:.5rem;min-width:0;margin:0;padding:.5rem .9rem .75rem;display:grid}fieldset.choice-group legend{padding:0 .25rem;font-weight:500}.segmented-inline{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.4rem;display:grid}label.pill,button.pill{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:.75rem;justify-content:center;align-items:center;min-height:2.75rem;padding:.4rem .6rem;font-weight:500;display:flex;position:relative}label.pill.active,button.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}label.pill input{opacity:0;pointer-events:none;width:100%;height:100%;margin:0;position:absolute;inset:0}label.pill:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}input[type=radio]{width:1.2rem;height:1.2rem;accent-color:var(--accent);flex:none;margin:0}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:1.25rem 0 0;display:grid}.stat-tiles>div{background:var(--surface);border-radius:.75rem;padding:.7rem .8rem}.stat-tiles dt{color:var(--muted);font-size:.85rem}.stat-tiles dd{margin:.15rem 0 0;font-size:1.45rem;font-weight:700}.stat-tiles dd.muted{font-size:.8rem;font-weight:400}@media (width>=40rem){.stat-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.week-chart{grid-template-columns:repeat(7,1fr);align-items:end;gap:.4rem;height:9rem;display:grid}.week-day{text-align:center;grid-template-rows:auto 1fr auto;height:100%;font-size:.75rem;display:grid}.week-bar{background:var(--surface);border-radius:.4rem;flex-direction:column-reverse;justify-content:flex-start;display:flex;overflow:hidden}.week-bar span{display:block}.week-bar .reviews,.swatch.reviews{background:var(--accent)}.week-bar .practice,.swatch.practice{background:var(--easy);opacity:.6}.week-day.today .week-label{color:var(--accent);font-weight:700}.week-total,.week-label{color:var(--muted);min-height:1.1rem}.legend .swatch{vertical-align:-.05rem;border-radius:.2rem;width:.7rem;height:.7rem;margin:0 .25rem 0 .5rem;display:inline-block}.progress-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.progress-head{justify-content:space-between;gap:.5rem;margin-bottom:.3rem;display:flex}.progress-bar{background:var(--surface);border-radius:.3rem;height:.6rem;position:relative}.progress-bar span{border-radius:inherit;background:var(--good);height:100%;display:block}.progress-bar .peak{background:var(--muted);opacity:.55;width:2px;margin-left:-1px;position:absolute;top:-.2rem;bottom:-.2rem}.reset-line{color:var(--muted);margin:.35rem 0 0;font-size:.85rem}.reset-history summary{cursor:pointer;color:var(--accent);margin-top:.25rem;font-size:.85rem}.trouble-list{gap:.35rem;padding-left:1.5rem;display:grid}button.trouble-row{text-align:left;overflow-wrap:anywhere;width:100%;min-height:2.75rem}.reset-confirm{border:1px solid var(--bad);border-radius:.75rem;padding:.9rem}p.small{margin:-.5rem 0 0;font-size:.85rem}.shell-note{padding-bottom:0}.offline-note{border-left:4px solid var(--easy)}.new-code code{letter-spacing:.05em;font-size:1.25rem;font-weight:700}.invite-row code{font-weight:600}.install-guide{text-align:center;justify-items:center;gap:1rem;padding-top:3rem;display:grid}.install-guide img{border-radius:1rem}.install-steps{text-align:left;gap:.6rem;max-width:24rem;padding-left:1.4rem;display:grid}.account-actions{flex-wrap:wrap;gap:.5rem;display:flex}.board-tabs{grid-template-columns:repeat(3,minmax(0,1fr));margin:.5rem 0 1rem}.board-tabs .pill{min-width:0}.board{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.board.pinned{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.75rem}.board-row{background:var(--surface);border-radius:.75rem;grid-template-columns:2rem minmax(0,1fr) auto 3rem;align-items:center;gap:.5rem;min-height:3rem;padding:.3rem .6rem;display:grid}.board-row.self{outline:2px solid var(--accent)}.board-rank{color:var(--muted);text-align:center;font-weight:700}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-value{font-size:.9rem;font-weight:600}button.kudos-button{min-height:2.5rem;padding:.2rem;font-size:1.2rem}.kudos-sent{text-align:center;font-size:.8rem}.small-print{margin-top:1rem;font-size:.85rem}.kudos-dialog{gap:.75rem;max-height:85dvh;display:grid;overflow-y:auto}.presets{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}button.preset{text-align:left;gap:.1rem;width:100%;display:grid}.kudos-banners{gap:.5rem;margin-bottom:1rem;display:grid}button.kudos-banner{text-align:left;background:linear-gradient(135deg, var(--accent), var(--easy));width:100%;color:var(--accent-text);border:none;border-radius:.9rem;gap:.15rem;padding:.8rem 1rem;animation:.35s ease-out rise;display:grid}.kudos-banner .kudos-en{opacity:.85;font-size:.9rem}.kudos-banner .kudos-hint{opacity:.7;font-size:.75rem}.kudos-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.kudos-list li{background:var(--surface);border-radius:.6rem;padding:.5rem .75rem}.preset-editor{gap:.6rem;padding-left:1.5rem;display:grid}.preset-form{gap:.35rem;display:grid}
