.btn{border-radius:var(--radius);background:var(--btn-bg);min-height:52px;color:var(--btn-fg);box-shadow:0 4px 0 var(--btn-edge);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border:0;padding:14px 20px;font-size:1rem;font-weight:800;transition:transform 80ms ease-out,box-shadow 80ms ease-out}.btn:active:not(:disabled){box-shadow:0 0 0 var(--btn-edge);transform:translateY(4px)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn--wide{width:100%}.btn--primary{--btn-bg:var(--primary);--btn-fg:var(--on-primary);--btn-edge:var(--primary-edge)}.btn--success{--btn-bg:var(--success);--btn-fg:var(--surface);--btn-edge:color-mix(in srgb, var(--success) 70%, black)}.btn--danger{--btn-bg:var(--danger);--btn-fg:var(--surface);--btn-edge:color-mix(in srgb, var(--danger) 70%, black)}.btn--secondary{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-edge:var(--border);border:2px solid var(--border)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--text-muted);--btn-edge:transparent;box-shadow:none}.btn:disabled{--btn-bg:var(--locked);--btn-fg:var(--locked-text);--btn-edge:var(--locked);cursor:not-allowed}.field{text-align:left;gap:4px;margin:0;display:grid}.field__label{font-size:.85rem;font-weight:800}.field__input{border:2px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);font:inherit;border-radius:12px;padding:10px 14px}.field__input:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.field__input--bad{border-color:var(--danger)}.field__hint{color:var(--text-muted);font-size:.8rem}.field__error{color:var(--danger);font-size:.8rem;font-weight:700}.field--check{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.field__check{width:24px;height:24px;accent-color:var(--primary)}.field__label--check{font-size:.9rem;font-weight:700}.field--check .field__error{grid-column:1/-1}.oontu{justify-items:center;gap:6px;display:grid}.oontu__face{font-size:3rem;line-height:1;display:block}.oontu--large .oontu__face{font-size:4.5rem}.oontu__bubble{border:2px solid var(--border);background:var(--surface);text-align:center;border-radius:14px;margin:0;padding:8px 14px;font-weight:800;position:relative}.oontu__bubble:after{content:"";border-right:2px solid var(--border);border-bottom:2px solid var(--border);background:var(--surface);width:12px;height:12px;margin-left:-6px;position:absolute;bottom:-9px;left:50%;transform:rotate(45deg)}.auth{text-align:center;align-content:start;justify-items:center;gap:10px;min-height:100dvh;padding:24px 16px 48px;display:grid}.auth__title{color:var(--primary);margin:4px 0 0;font-size:1.8rem}.auth__subtitle{color:var(--text-muted);margin:0;font-weight:600}.auth__notice,.auth__problem{border-radius:12px;width:100%;margin:0;padding:10px 14px;font-weight:700}.auth__notice{background:var(--success-bg);color:var(--success)}.auth__problem{background:var(--danger-bg);color:var(--danger)}.auth__form{gap:14px;width:100%;margin-top:8px;display:grid}.auth__grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.auth__parent{border:2px solid var(--accent);border-radius:var(--radius);background:var(--surface);text-align:left;margin:0;padding:12px 14px 4px}.auth__parent legend{color:var(--primary);padding:0 6px;font-weight:800}.auth__parent-why{color:var(--text-muted);margin:0 0 10px;font-size:.85rem}.auth__legal{color:var(--text-muted);margin:0;font-size:.8rem}.auth__links{gap:10px;margin-top:6px;display:grid}.link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:800;text-decoration:underline}.link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.feedback{border-radius:var(--radius) var(--radius) 0 0;gap:10px;padding:16px 16px 20px;display:grid}.feedback--correct{background:var(--success-bg);color:var(--success)}.feedback--wrong{background:var(--danger-bg);color:var(--danger)}.feedback__title{margin:0;font-size:1.2rem;font-weight:800}.feedback__answer{color:var(--text);margin:0}.progress{background:var(--surface-2);border-radius:999px;flex:1;height:16px;overflow:hidden}.progress__fill{border-radius:inherit;background:var(--accent);height:100%}.exercise{gap:20px;display:grid}.exercise__instruction{margin:0;font-size:1.3rem;font-weight:800}.exercise__prompt{justify-content:center;padding:12px 0;display:flex}.prompt-english{text-align:center;margin:0;font-size:1.5rem;font-weight:700}.options{gap:12px;display:grid}.option{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:56px;color:var(--text);text-align:center;cursor:pointer;border-bottom-width:4px;padding:12px 16px;font-size:1.05rem;font-weight:700}.option:focus-visible,.tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.option:disabled{cursor:default}.option--selected{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.option--matched{border-color:var(--success);background:var(--success-bg);color:var(--success);opacity:.6}.option--correct{border-color:var(--success);background:var(--success-bg);color:var(--success)}.option--wrong{border-color:var(--danger);background:var(--danger-bg)}.meet-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;justify-items:center;gap:12px;padding:28px 16px;display:grid}.quiz-start{text-align:center;justify-items:center;padding-top:48px}.quiz-start__badge{font-size:4.5rem}.quiz-start__title{color:var(--primary);margin:0;font-size:2rem}.quiz-start__text{max-width:32ch;color:var(--text-muted);margin:0;font-size:1.1rem}.meet-card__english{margin:0;font-size:1.25rem;font-weight:700}.meet-card__note,.unverified{color:var(--text-muted);margin:0}.unverified{font-size:.8rem}.pairs{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pairs__col{align-content:start;gap:12px;display:grid}.sentence-line{border-bottom:2px solid var(--border);flex-wrap:wrap;gap:8px;min-height:64px;padding:8px 0;display:flex}.bank{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tile{border:2px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;border-bottom-width:4px;border-radius:12px;padding:8px 14px;font-size:1.05rem;font-weight:700}.tile--placeholder{border-color:var(--surface-2);background:var(--surface-2);color:#0000;cursor:default;display:inline-block}.mw{flex-direction:column;align-items:center;gap:2px;display:inline-flex}.mw__roman{font-weight:800}.mw__deva{color:var(--text-muted);font-size:.85em}.mw--large .mw__roman{font-size:2rem}.mw--large .mw__deva{font-size:1.4rem}.lesson{flex-direction:column;min-height:100dvh;display:flex;position:relative}.lesson__header{gap:4px;padding:12px 16px 4px;display:grid}.lesson__bar{align-items:center;gap:12px;display:flex}.quiz-hud{justify-content:space-between;align-items:center;padding-left:60px;font-size:.9rem;font-weight:800;display:flex}.quiz-hud__count{color:var(--text-muted)}.quiz-hud__count--retry{color:var(--danger)}.quiz-hud__score{color:var(--text)}.lesson__body{flex:1;padding:8px 16px 24px}.lesson__footer{border-top:2px solid var(--border);background:var(--bg);padding:16px;position:sticky;bottom:0}.lesson__footer--feedback{border-top:0;padding:0}.combo-burst{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:2px 12px;font-weight:900;display:inline-block}.icon-btn{width:48px;height:48px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:12px;font-size:1.5rem}.icon-btn:focus-visible{outline:3px solid var(--accent)}.dialog-backdrop{background:#00000073;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.dialog{border-radius:var(--radius);background:var(--surface);gap:12px;width:100%;max-width:528px;padding:20px;display:grid}.dialog p{margin:0}.dialog__title{font-size:1.3rem;font-weight:800}.goal-ring{place-items:center;display:inline-grid;position:relative}.goal-ring svg{display:block}.goal-ring__track{stroke:var(--surface-2)}.goal-ring__fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .4s ease-out}.goal-ring--done .goal-ring__fill{stroke:var(--success)}.goal-ring__label{font-size:.75rem;font-weight:900;position:absolute}.goal-ring--done .goal-ring__label{color:var(--success)}.path-screen{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:1;border-bottom:2px solid var(--border);background:var(--bg);gap:6px;padding:10px 16px;display:grid;position:sticky;top:0}.topbar__row{align-items:center;gap:8px;display:flex}.topbar__row--stats{justify-content:space-between}.topbar__row .topbar__brand{flex:1}.topbar__chip{background:var(--surface-2);border-radius:999px;padding:4px 10px;font-size:.9rem;font-weight:900}.topbar__brand{color:var(--primary);font-size:1.2rem;font-weight:900}.path{gap:32px;padding:16px 16px 48px;display:grid}.practice-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;padding:12px 14px;display:flex}.practice-card--due{border-color:var(--accent)}.practice-card__icon{font-size:1.8rem}.practice-card__body{flex:1;min-width:0}.practice-card__title{margin:0;font-weight:900}.practice-card__text{color:var(--text-muted);margin:0;font-size:.9rem;font-weight:700}.unit__banner{border-radius:var(--radius);background:var(--primary);color:var(--on-primary);align-items:center;gap:12px;padding:16px;display:flex}.unit__emoji{font-size:2.2rem}.unit__kicker,.unit__roman{opacity:.85;margin:0;font-size:.9rem;font-weight:700}.unit__title{margin:0;font-size:1.3rem}.unit__lessons{justify-items:center;gap:30px;margin:36px 0 0;padding:0;list-style:none;display:grid}.lesson-node{justify-items:center;gap:6px;display:grid;position:relative}.lesson-node__tag{border:2px solid var(--border);background:var(--surface);color:var(--primary);border-radius:8px;padding:2px 10px;font-size:.8rem;font-weight:800;position:absolute;top:-30px}.lesson-node__name{color:var(--text-muted);font-size:.8rem;font-weight:700}.bubble{background:var(--bubble-bg);width:72px;height:72px;color:var(--bubble-fg);box-shadow:0 6px 0 var(--bubble-edge);cursor:pointer;border:0;border-radius:50%;font-size:1.8rem;font-weight:900}.bubble:focus-visible{outline:3px solid var(--text);outline-offset:4px}.bubble--current,.bubble--open{--bubble-bg:var(--primary);--bubble-fg:var(--on-primary);--bubble-edge:var(--primary-edge)}.bubble--done{--bubble-bg:var(--accent);--bubble-fg:var(--on-accent);--bubble-edge:color-mix(in srgb, var(--accent) 70%, black)}.bubble--locked{--bubble-bg:var(--locked);--bubble-fg:var(--locked-text);--bubble-edge:color-mix(in srgb, var(--locked) 80%, black);cursor:not-allowed}.profile,.settings{align-content:start;gap:24px;min-height:100dvh;padding:12px 16px 48px;display:grid}.screen-head{align-items:center;gap:8px;display:flex}.screen-head h1{margin:0;font-size:1.5rem}.profile__level{justify-items:center;gap:8px;display:grid}.profile__xp{margin:0;font-size:1.2rem;font-weight:900}.profile__next,.profile__heading{color:var(--text-muted);margin:0}.profile__next{font-size:.85rem;font-weight:700}.profile__heading{text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:1rem}.level-bar{background:var(--surface-2);border-radius:999px;width:100%;height:14px;overflow:hidden}.level-bar__fill{border-radius:inherit;background:var(--primary);height:100%;display:block}.profile__stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.week{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:end;gap:6px;height:100px;margin:0;padding:10px 12px;list-style:none;display:flex}.week__day{flex:1;justify-items:center;gap:6px;display:grid}.week__bar{background:var(--surface-2);border-radius:6px 6px 2px 2px;width:100%;max-width:22px;display:block}.week__bar--goal{background:var(--accent)}.week__label{color:var(--text-muted);font-size:.75rem;font-weight:800}.profile__badges{flex-wrap:wrap;gap:10px;display:flex}.account{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;gap:10px;padding:14px 16px;display:grid}.account__who{margin:0;font-weight:700}.account__why,.account__notice,.account__warn{margin:0;font-size:.88rem}.account__why{color:var(--text-muted)}.account__notice{color:var(--success);font-weight:700}.account__warn{color:var(--danger);font-weight:700}.confetti{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}.confetti__piece{border-radius:2px;width:10px;height:14px;position:absolute;top:0}.result{text-align:center;align-content:center;justify-items:center;gap:18px;min-height:100dvh;padding:24px 16px;display:grid}.result__title{color:var(--primary);margin:0;font-size:2rem}.xp-lines{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:6px;width:100%;margin:0;padding:14px 16px;list-style:none;display:grid}.xp-lines li{justify-content:space-between;gap:12px;font-weight:700;display:flex}.xp-lines__total{border-top:2px solid var(--border);color:var(--primary);padding-top:6px;font-size:1.15rem}.result__stats{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.stat{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:4px;padding:14px;display:grid}.stat__label{color:var(--text-muted);text-transform:uppercase;font-size:.85rem;font-weight:800}.stat__value{font-size:1.6rem;font-weight:900}.result__streak,.result__level{margin:0;font-size:1.1rem;font-weight:900}.result__streak{color:var(--accent)}.result__level{color:var(--success)}.result__badges{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.badge{border:2px solid var(--accent);border-radius:var(--radius);background:var(--surface);justify-items:center;gap:4px;width:104px;padding:10px 6px;display:grid}.badge--locked{border-color:var(--border);opacity:.55}.badge__emoji{font-size:1.8rem}.badge__title{text-align:center;font-size:.78rem;font-weight:800}.setting{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:8px;padding:14px 16px;display:grid}.setting__title{margin:0;font-weight:900;display:block}.setting__hint{color:var(--text-muted);margin:0;font-size:.85rem;font-weight:600;display:block}.setting__row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;display:flex}.setting__row input{width:28px;height:28px;accent-color:var(--primary)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:2px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:999px;padding:8px 16px;font-weight:800}.chip--on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--surface));color:var(--primary)}.chip:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.settings__about{color:var(--text-muted);text-align:center;margin:0;font-size:.8rem}:root{--bg:#fbf6ec;--surface:#fff;--surface-2:#f3eadb;--border:#e6dccb;--text:#1f1b3a;--text-muted:#5f5a73;--primary:#c2410c;--primary-edge:#9a3412;--on-primary:#fff;--accent:#f59e0b;--on-accent:#3b2500;--success:#15803d;--success-bg:#dcfce7;--danger:#b91c1c;--danger-bg:#fee2e2;--locked:#d6cfc2;--locked-text:#6b6559;--radius:16px;--font-latin:"Nunito", system-ui, sans-serif;--font-deva:"Noto Sans Devanagari", "Nunito", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16132b;--surface:#221e3d;--surface-2:#2c2750;--border:#3a3460;--text:#f5f0e6;--text-muted:#b3acc6;--primary:#fb923c;--primary-edge:#c2410c;--on-primary:#1a1206;--accent:#fbbf24;--on-accent:#1a1206;--success:#4ade80;--success-bg:#14532d;--danger:#f87171;--danger-bg:#7f1d1d;--locked:#3a3460;--locked-text:#a39dbb;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#16132b;--surface:#221e3d;--surface-2:#2c2750;--border:#3a3460;--text:#f5f0e6;--text-muted:#b3acc6;--primary:#fb923c;--primary-edge:#c2410c;--on-primary:#1a1206;--accent:#fbbf24;--on-accent:#1a1206;--success:#4ade80;--success-bg:#14532d;--danger:#f87171;--danger-bg:#7f1d1d;--locked:#3a3460;--locked-text:#a39dbb;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-latin);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit}[lang=rwr]{font-family:var(--font-deva)}.app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}
