:root{--bg: #182225;--panel: #20302f;--line: #34474a;--acc: #3fb97a;--acc-soft: #254a39;--acc-text: #8fe0b3;--cream: #f6e7c8;--text: #eef3ee;--muted: #94a8a5;--idiom: #f2c14e;--ctl: #67837f;--muted-hi: #b3c4c1;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;background:var(--bg);color:var(--text);font:17px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}#app{height:100%;max-width:520px;margin:0 auto;position:relative}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.center{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;color:var(--muted)}.story{height:100%;display:flex;flex-direction:column;transition:transform .18s ease-out}.story.dragging{transition:none}.stage{touch-action:pan-x pinch-zoom}.text{overscroll-behavior-y:contain}.end-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.overlay .small{font-size:13px;font-weight:500;opacity:.85}.stage{position:relative;margin:max(8px,env(safe-area-inset-top)) 10px 0;border-radius:20px;overflow:hidden;border:2px solid var(--line);background:var(--cream);aspect-ratio:992 / 672;flex:none}.stage video{width:100%;height:100%;display:block;object-fit:cover}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#1822258c;color:var(--text);font-weight:600;text-align:center;padding:12px}.overlay.soft{background:#18222540}.big{width:72px;height:72px;border-radius:50%;background:var(--acc);color:#10201a;font-size:30px;padding-left:6px;box-shadow:0 4px 18px #00000059}.badge{position:absolute;left:10px;bottom:10px;font-size:13px;font-weight:800;color:var(--acc-text);border:2px solid var(--acc);background:var(--acc-soft);border-radius:8px;padding:0 8px}.bar{display:flex;gap:4px;padding:10px 8px 4px;flex:none}@media(max-width:345px){.bar{flex-wrap:wrap}}.bar button{padding:6px 8px;line-height:1.2;border-radius:999px;border:1px solid var(--line);font-size:14px;color:var(--muted)}.bar button.on{background:var(--acc-soft);border-color:var(--acc);color:var(--acc-text)}.grow{flex:1}.draft{margin:4px 10px 0;padding:4px 10px;border-radius:8px;background:#4a3b16;color:var(--idiom);font-size:13px;text-align:center}.text{flex:1;overflow-y:auto;padding:8px 12px 45vh;position:relative;scroll-behavior:smooth}.text.hidden .en .w{color:transparent;background:var(--panel);border-radius:6px}.text.hidden .tr{visibility:hidden}.hint{color:var(--muted);font-size:14px;text-align:center;margin:4px 0 10px}.line{padding:8px 10px;border-radius:14px;margin-bottom:4px;transition:background .2s}.line.cur{background:var(--acc-soft)}.who{display:flex;align-items:center;gap:2px;font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--muted)}.who span{flex:1}.en{font-size:22px;font-weight:600;line-height:1.5}.w{padding:1px 3px;margin:0 -1px;border-radius:6px;cursor:pointer}.w+.w:before{content:" "}.w.idiom{text-decoration:underline dotted var(--idiom);text-underline-offset:5px}.w.now{box-shadow:inset 0 0 0 2px var(--acc)}.w.picked{background:var(--acc);color:#10201a}.icon{font-size:13px;font-weight:600;letter-spacing:0;color:var(--muted);padding:4px 10px;border-radius:999px}.icon.on{color:var(--acc-text);background:var(--acc-soft)}.tr{color:var(--acc-text);font-size:16px;margin-top:2px}.sheet-bg{position:fixed;inset:0;background:#00000040;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{position:relative;width:100%;max-width:520px;background:var(--panel);border-radius:22px 22px 0 0;padding:18px 18px max(18px,env(safe-area-inset-bottom));border-top:2px solid var(--line);max-height:62vh;overflow-y:auto;animation:up .18s ease-out}@keyframes up{0%{transform:translateY(40px);opacity:.4}}.kind{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--acc-text)}.head{font-size:28px;font-weight:800;margin-top:2px}.lemma{color:var(--muted);font-size:15px}.mean{font-size:20px;margin-top:6px}.note{color:var(--muted);font-size:15px;margin-top:6px}.parent{display:block;text-align:left;width:100%;margin-top:10px;padding:8px 12px;border-radius:12px;background:#2a3d3b;color:var(--text);font-size:15px;border-left:3px solid var(--idiom)}.ctx{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--bg);font-size:16px}.ctx .hl{color:var(--acc-text);font-weight:700}.ctx-tr{color:var(--muted);font-size:15px;margin-top:2px}.acts{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.pill{padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-weight:600}.pill.on{background:var(--acc-soft);border-color:var(--acc);color:var(--acc-text)}.pill.wide{display:block;width:100%;text-align:left;margin-bottom:8px}.close{position:absolute;top:max(8px,env(safe-area-inset-top));right:10px;width:36px;height:36px;font-size:26px;color:var(--muted)}.pick.over{position:fixed;inset:0;z-index:30;background:var(--bg);max-width:520px;margin:0 auto}.pick{height:100%;padding:calc(48px + env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));position:relative;overflow-y:auto}.pick h2{font-size:24px;margin-bottom:18px}.pick h3{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 10px}.row{display:flex;gap:8px;flex-wrap:wrap}.save{margin-top:8px}.muted{color:var(--muted);font-size:15px;margin-bottom:10px}.small{font-size:13px;margin-top:8px}.code{font:700 22px/1.3 ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.06em;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line);margin-bottom:10px;-webkit-user-select:all;user-select:all}.codein{flex:1;min-width:0;font:600 17px ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.pill:disabled{opacity:.5}.msg{margin-top:10px;color:var(--acc-text)}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%);background:var(--acc-soft);color:var(--acc-text);border:1px solid var(--acc);padding:10px 16px;border-radius:999px;z-index:30;font-weight:600;pointer-events:none}.inapp{position:fixed;left:8px;right:8px;top:max(8px,env(safe-area-inset-top));z-index:25;max-width:504px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 36px 10px 12px;border-radius:14px;background:#4a3b16;color:var(--cream);font-size:14px;box-shadow:0 4px 18px #0006}.inapp .pill{padding:6px 12px;font-size:14px}.inapp .x{position:absolute;right:6px;top:4px;font-size:22px;color:var(--muted);width:28px;height:28px}.dict .review-btn{display:block;width:100%;padding:14px;font-size:17px;margin-bottom:6px}.drow{padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}.drow .dmain{font-size:17px}.drow .dmain .muted{font-size:15px;margin:0 0 0 6px}.dwhen{font-size:12px;color:var(--muted)}.dacts{display:flex;gap:8px;margin-top:8px}.review .rcard{margin:18px 0;padding:18px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}.review .head{font-size:28px;font-weight:700;margin:4px 0 8px}.review .mean{font-size:20px;margin-top:12px;color:var(--acc-text)}.review .acts{display:flex;gap:10px}.review .acts .pill{flex:1;padding:14px;font-size:17px}.wide-c{display:block;width:100%;padding:14px;font-size:17px}.w.mk{background:#f6e7c824;border-radius:3px;box-shadow:inset 0 -2px #f2c14e80}.w.mk.now{box-shadow:inset 0 0 0 2px var(--acc)}.sheet .head{display:flex;align-items:center;gap:10px}.say{width:38px;height:38px;border-radius:50%;background:var(--acc-soft);border:1px solid var(--acc);font-size:18px;flex:none}.ipa{color:var(--muted);font-size:16px;font-family:Segoe UI,Noto Sans,Lucida Sans Unicode,sans-serif;margin-top:2px}.hovercard{position:fixed;transform:translate(-50%,calc(-100% - 10px));z-index:15;width:240px;padding:10px 12px;border-radius:14px;background:var(--panel);border:1px solid var(--acc);box-shadow:0 8px 24px #0006}.hovercard:after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--panel);border-right:1px solid var(--acc);border-bottom:1px solid var(--acc);transform:translate(-50%) rotate(45deg)}.hc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:17px}.hc-head .ipa{font-size:14px}.hc-tr{color:var(--acc-text);margin:4px 0 8px;font-size:15px}.hc-acts{display:flex;gap:6px}.hc-acts .pill{flex:1;padding:6px 8px;font-size:14px}.say.sm{width:30px;height:30px;font-size:14px}.hc-phr{font-size:13px;color:var(--muted);margin:-4px 0 8px;border-left:2px solid var(--idiom);padding-left:6px}.bar button.goal{font-variant-numeric:tabular-nums}.bar button.goal.on{background:#4a3b16;border-color:var(--idiom);color:var(--idiom)}.quiz-bg{z-index:12}.quiz .qq{font-size:19px;font-weight:700;margin:8px 0 12px}.qa{display:flex;flex-direction:column;gap:8px}.qopt{text-align:left;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--bg);font-size:16px}.qopt.right{border-color:var(--acc);background:var(--acc-soft);color:var(--acc-text)}.qopt.wrong{border-color:#c5584f;background:#3b2523;color:#f1b0a9}.qopt.dim{opacity:.55}.qres{margin-top:12px;font-weight:800}.qres.right{color:var(--acc-text)}.qres.wrong{color:#f1b0a9}.quiz .wide-c{margin-top:12px}.qdone h2{font-size:22px;margin:10px 0 16px}.qdone .acts{display:flex;gap:10px}.onb{z-index:25;padding-top:calc(36px + env(safe-area-inset-top))}.onb-logo{font-weight:900;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--acc-text);margin-bottom:10px}.onb h2{margin-bottom:8px}.onb>.muted{line-height:1.45}.onb h3{margin:16px 0 8px}.onb .pill.wide{margin-bottom:6px;padding-block:8px}.onb .pill.onb-go,.onb .pill.onb-go:disabled{margin-top:16px;position:sticky;bottom:12px;z-index:1;opacity:1;background:#2a6048;box-shadow:0 0 0 6px var(--bg)}.g-short{display:none}@media(max-height:829px){.onb{padding-top:calc(16px + env(safe-area-inset-top))}.onb-logo{margin-bottom:4px}.onb h2{font-size:20px;margin-bottom:4px}.onb>.muted:not(.small){font-size:14px;line-height:1.3}.onb h3{margin:10px 0 6px}.onb .pill{padding:7px 12px;font-size:15px}.onb-ui,.g-full{display:none}.g-short{display:inline}.onb-goals{display:flex;gap:6px}.onb-goals .pill.wide{flex:1;width:auto;margin:0;text-align:center;padding-inline:4px}.onb .pill.onb-go,.onb .pill.onb-go:disabled{padding:10px;margin-top:10px}}@media(max-height:520px){.onb>.muted:not(.small){display:none}}.onb .small{margin-top:10px;text-align:center}.offbar{pointer-events:none;position:fixed;top:max(6px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:15;background:var(--panel);border:1px solid var(--line);color:var(--muted);font-size:13px;padding:4px 12px;border-radius:99px;white-space:nowrap}.linkish{display:block;margin:14px auto 0;color:var(--acc-text);font-size:14px;text-decoration:underline;text-underline-offset:3px}.sinput{width:100%;font:inherit;font-size:17px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--text);margin-bottom:12px}.srow{display:flex;align-items:center;gap:12px;width:100%;padding:8px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.srow img{width:56px;height:38px;object-fit:cover;border-radius:6px;flex:none;background:var(--line)}.srow .stext{display:flex;flex-direction:column;min-width:0;flex:1}.srow .stext b{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srow .stext .muted{margin:0;font-size:13px}.srow .stext .stt{font-size:14px;color:var(--muted-hi);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srow.cur b{color:var(--acc-text)}.srow .sdone{color:var(--muted);flex:none}.sbtn{position:absolute;bottom:8px;right:8px;width:36px;height:36px;border-radius:50%;border:0;background:#1822258c;color:var(--text);font-size:16px;line-height:36px;padding:0;cursor:pointer;z-index:2}.ic{flex:none;vertical-align:-3px}.pill,.bar button,.big,.say,.close,.sbtn,.inapp .x,.icon{display:inline-flex;align-items:center;justify-content:center;gap:6px}.pill.wide,.wide-c{display:flex}.pill.wide{justify-content:flex-start}.pill,.bar button,.sinput,.codein,.qopt{border-color:var(--ctl)}.pill.on,.bar button.on{border-color:var(--acc)}.pill.on{box-shadow:inset 0 0 0 1px var(--acc)}.pill.primary,.onb .pill.onb-go{background:var(--acc);border-color:var(--acc);color:#10201a}.onb .pill.onb-go:disabled,.pill.primary:disabled{background:var(--panel);border-color:var(--ctl);color:var(--muted);box-shadow:0 0 0 6px var(--bg);cursor:default}.dict .review-btn:disabled{background:var(--panel);border-style:dashed;color:var(--muted);opacity:1}button{transition:transform 80ms ease-out,filter 80ms ease-out,background-color .15s,border-color .15s}button:active:not(:disabled){transform:scale(.96);filter:brightness(1.15)}:focus-visible{outline:2px solid var(--acc-text);outline-offset:2px}.w:focus-visible{outline-offset:0}@media(hover:hover){.pill:hover:not(:disabled):not(.primary),.bar button:hover,.qopt:hover{border-color:var(--muted)}.srow:hover,.drow:hover{background:#ffffff08}}.pill:disabled{cursor:default}.bar{gap:6px;align-items:center}.bar button{min-height:36px;min-width:40px;padding:0 12px;white-space:nowrap;flex:none;position:relative}.bar button.ib{padding:0;width:40px}.bar button:after{content:"";position:absolute;inset:-4px -3px}.close{width:44px;height:44px;right:6px}.sbtn{width:44px;height:44px;line-height:44px}.say{width:44px;height:44px}.say.sm{width:36px;height:36px}.inapp .x{width:44px;height:44px;top:0;right:0}.who .icon{min-width:40px;min-height:36px;margin:-6px 0}.big{padding-left:4px}.w.picked,.w.mk.picked{background:var(--acc);color:#10201a;box-shadow:none}.who{font-size:12px}.line.cur .who,.line.cur .icon{color:var(--muted-hi)}.overlay{background:#182225b3}.overlay .small{opacity:1}.overlay.soft>div{background:#182225d9;padding:4px 10px;border-radius:8px}.end-acts{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:320px;gap:8px}.end-acts .pill{padding-inline:10px}.end-acts .next{grid-column:1 / -1}.end-acts .pill:only-child{grid-column:1 / -1}.onb h3{text-transform:none;letter-spacing:0;font-size:17px;color:var(--text);font-weight:700}.sheet .acts .pill{flex:1 1 auto;padding-inline:12px}@media(max-width:400px){.save .row .codein{flex:1 1 100%}}.text{scrollbar-width:thin;scrollbar-color:var(--line) transparent}@media(min-width:900px){#app{max-width:600px;border-inline:1px solid var(--line)}.pick.over{max-width:600px}.stage{margin-top:16px}}.bar{gap:4px;padding:8px 6px 4px;overflow-x:auto;scrollbar-width:none}.bar::-webkit-scrollbar{display:none}.bar button{padding:0 10px}.bar button.goal{padding:0 9px;gap:3px}.end-acts{max-width:340px}.end-acts .pill{font-size:15px;white-space:nowrap;padding:10px 8px}.onb-goals .pill.wide{justify-content:center}.bar button:after{inset:-4px -2px}.who .icon{min-width:44px;min-height:44px;margin:-10px 0}.pill.primary:disabled{opacity:1}@media(min-width:900px){html,body{overflow:hidden}}.bar button.ib.on{width:auto;padding:0 10px}.bar button.goal .gsep{display:inline-block;width:7px;height:1em;border-right:1px solid currentColor;opacity:.5;margin-right:6px}.bar{overflow:visible;flex-wrap:wrap;row-gap:6px}.bar button.speed{min-width:48px;padding:0 8px}.end-acts .full{grid-column:1 / -1}@media(max-width:359px){.end-acts .pill{white-space:normal;text-align:center}}@media(hover:hover){.bar button.on:hover{border-color:var(--acc)}.pill.on:hover:not(:disabled){border-color:var(--acc)}.qopt.right:hover{border-color:var(--acc)}.qopt.wrong:hover{border-color:#c5584f}}.big{padding-left:0}.sheet .close{top:8px}.sheet .head{padding-right:40px}.inapp{padding-right:48px}.pick h3{text-transform:none;letter-spacing:0;font-size:16px;color:var(--text);font-weight:700}@media(max-width:400px){.bar{gap:3px;padding-inline:4px}.bar button.speed{min-width:40px;padding:0 6px}.bar button.ib{width:38px;min-width:38px}.bar button.goal{padding:0 7px}.bar button.goal .gsep{width:5px;margin-right:4px}}
