:root{--bg: #182225;--panel: #20302f;--line: #34474a;--acc: #3fb97a;--acc-soft: #254a39;--acc-text: #8fe0b3;--cream: #f6e7c8;--text: #eef3ee;--muted: #94a8a5;--idiom: #f2c14e;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:6px;padding:10px 10px 4px;flex:none}.bar button{padding:6px 12px;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:8px;right:10px;width:36px;height:36px;font-size:26px;color:var(--muted)}.pick.over{position:fixed;inset:0;z-index:20;background:var(--bg);max-width:520px;margin:0 auto}.pick{height:100%;padding:48px 20px 24px;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}
