:root{--font-word: "Oswald", "Arial Narrow", "Roboto Condensed", sans-serif;--font-body: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ipa: "Noto Sans", "Segoe UI", sans-serif;--word-weight: 700;--word-skew: -7deg;--word-leading: .92;--word-size-max: 104px;--word-size-min: 30px;--meaning-size: 24px;--prompt-size: 30px;--ipa-size: 18px;--example-size: 16px;--hero-size: 52px;--radius-s: 10px;--radius-m: 14px;--radius-l: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--dur-fast: .12s;--dur: .26s;--ease: cubic-bezier(.2,.8,.2,1);--bg: #0E0F11;--surface: #16181B;--raised: #1F2226;--line: #2A2E34;--text: #F2F2EE;--muted: #8C9199;--dim: #5E636B;--accent: #C8F031;--accent-ink: #11140A;--accent-text: #C8F031;--again: #FF6464;--hard: #FFB547;--good: var(--accent);--easy: #7FA8FF;--der: #7FA8FF;--die: #FF7A7A;--das: #74D68E;--nav-bg: rgba(14, 15, 17, .94);--shadow: 0 10px 26px rgba(0, 0, 0, .45);color-scheme:dark}:root[data-ct-theme=light]{--bg: #F4F4EF;--surface: #FFFFFF;--raised: #ECECE5;--line: #DCDCD3;--text: #121410;--muted: #5C6058;--dim: #8A8E85;--accent: #C8F031;--accent-ink: #11140A;--accent-text: #4A6500;--again: #D23B3B;--hard: #A86400;--easy: #2D5FD3;--der: #2D5FD3;--die: #CC3434;--das: #1E8A4C;--nav-bg: rgba(244, 244, 239, .94);--shadow: 0 10px 26px rgba(18, 20, 16, .12);color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-ct-theme]){--bg: #F4F4EF;--surface: #FFFFFF;--raised: #ECECE5;--line: #DCDCD3;--text: #121410;--muted: #5C6058;--dim: #8A8E85;--accent-text: #4A6500;--again: #D23B3B;--hard: #A86400;--easy: #2D5FD3;--der: #2D5FD3;--die: #CC3434;--das: #1E8A4C;--nav-bg: rgba(244, 244, 239, .94);--shadow: 0 10px 26px rgba(18, 20, 16, .12);color-scheme:light}}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 0ms;--dur: 0ms}}:root[data-ct-theme=focus]{--bg: #0A0C09;--surface: #11140F;--raised: #171D12;--line: #26321C;--text: #CDEB6A;--muted: #8FA35E;--dim: #5E6C42;--accent: #1C2812;--accent-ink: #CDEB6A;--accent-text: #C8F031;--again: #E0806E;--hard: #D9A75A;--easy: #93B5E6;--der: #93B5E6;--die: #E58A8A;--das: #86D49A;--nav-bg: rgba(10, 12, 9, .95);--shadow: none;--focus-edge: #3E5522;color-scheme:dark}:root{--word-lime: #C8F031;--word-white: #F4F4EF;--word-amber: #FFC65C;--word-sky: #8EC5FF}:root[data-ct-theme=light]{--word-lime: #4A6500;--word-white: #121410;--word-amber: #8A5200;--word-sky: #1F57C4}@media(prefers-color-scheme:light){:root:not([data-ct-theme]){--word-lime: #4A6500;--word-white: #121410;--word-amber: #8A5200;--word-sky: #1F57C4}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 12px;width:100%}textarea{min-height:90px;resize:vertical}.app{height:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 10px) 16px 0;position:relative}.view{flex:1;overflow:auto;display:flex;flex-direction:column;gap:14px;padding-bottom:90px}.view>*,.sheet-body>*,.word-card>*,.finish>*{flex-shrink:0}.top{display:flex;align-items:center;gap:10px;padding:4px 0 8px}.logo{display:flex;align-items:center;gap:10px;margin-right:auto}.logo i{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-style:normal;font-family:var(--font-word);font-weight:700;font-size:18px;transform:skew(-8deg)}.logo b{font-family:var(--font-word);font-weight:600;font-size:21px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px;font-weight:600;white-space:nowrap}.chip.time{border-color:var(--hard);color:var(--hard)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text)}.icon{width:38px;height:38px;border-radius:12px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);flex:none}.icon svg{width:19px;height:19px}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.modes{display:grid;grid-template-columns:1fr 1.3fr 1fr .8fr;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:3px;gap:2px}.modes button{padding:7px 2px;border-radius:11px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}.modes button small{display:block;font-size:11px;font-weight:500;color:var(--dim);font-variant-numeric:tabular-nums}.modes button.on{background:var(--raised);color:var(--text)}.modes button.on small{color:var(--accent-text)}.hero{display:flex;flex-direction:column;gap:6px;padding:4px 2px 0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.hero h1{margin:0;font-family:var(--font-word);font-weight:700;font-size:52px;line-height:.95;transform:skew(-6deg);transform-origin:left}.hero h1 em{font-style:normal;color:var(--accent-text)}.hero p{margin:0;color:var(--muted);font-size:15px;line-height:1.4}.start{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:18px 20px;border-radius:var(--radius-l);background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:18px;text-align:left}.start span{font-family:var(--font-word);font-size:26px;font-weight:700}.start:disabled{background:var(--raised);color:var(--dim)}.rows{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.row{display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:left;border-top:1px solid var(--line);width:100%}.row:first-child{border-top:0}.ri{width:34px;height:34px;border-radius:10px;background:var(--raised);display:grid;place-items:center;color:var(--muted);flex:none}.ri svg{width:18px;height:18px}.rt{flex:1;min-width:0}.rt b{display:block;font-weight:600}.rt small{color:var(--muted);font-size:13px}.rn{font-family:var(--font-word);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.rn.warn{color:var(--again)}.rn.lime{color:var(--accent-text)}.row:disabled{opacity:.45}.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.box h3{margin:0;font-size:13px;font-weight:600;color:var(--muted)}.box h3 b{color:var(--text)}.note{font-size:13px;color:var(--muted);line-height:1.45;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;height:84px}.week div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;font-variant-numeric:tabular-nums}.week i{display:block;width:100%;border-radius:5px 5px 2px 2px;background:var(--raised);min-height:3px}.week div.today i{background:var(--accent)}.week b{font-size:11px;font-weight:600}.week span{font-size:11px;color:var(--dim)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px}.tile b{display:block;font-family:var(--font-word);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1}.tile span{font-size:13px;color:var(--muted)}.ptiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.ptile{display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px;border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);min-height:132px}.ptile .ri{background:var(--raised)}.ptile b{font-weight:700;font-size:16px}.ptile small{color:var(--muted);font-size:13px;line-height:1.35}.ptile.wide{grid-column:span 2;min-height:0;flex-direction:row;align-items:center}.ptile.accent{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.ptile.accent .ri{color:var(--accent-text)}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.btnrow>*{flex:1 1 40%}.primary{width:100%;padding:15px;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:17px}.primary:disabled{background:var(--raised);color:var(--dim)}.ghost{width:100%;padding:13px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-weight:700;font-size:15px}.ghost:disabled{opacity:.4}.mini{padding:8px 11px;border-radius:10px;border:1px solid var(--line);background:var(--raised);font-size:13px;font-weight:700;white-space:nowrap}.mini.go{background:var(--accent);border-color:var(--accent-text);color:var(--accent-ink)}.mini.danger{color:var(--again)}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}.seg button{padding:7px 12px;border-radius:9px;font-size:13px;font-weight:600;color:var(--muted)}.seg button.on{background:var(--raised);color:var(--text)}.nav{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);background:var(--nav-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;font-size:12px;font-weight:600;color:var(--dim);position:relative}.nav button svg{width:22px;height:22px}.nav button.on{color:var(--accent-text)}.nav .dot{position:absolute;top:2px;right:calc(50% - 18px);min-width:16px;height:16px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 4px}.fab{position:absolute;right:16px;bottom:calc(env(safe-area-inset-bottom) + 76px);width:56px;height:56px;border-radius:18px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:var(--shadow)}.fab svg{width:26px;height:26px}.search{display:flex;gap:8px}.wlist{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.witem{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line);text-align:left;width:100%}.witem:first-child{border-top:0}.witem .wt{flex:1;min-width:0}.witem .wt b{display:block;font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.witem .wt small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st{font-size:11px;font-weight:700;padding:4px 8px;border-radius:7px;background:var(--raised);color:var(--muted);white-space:nowrap}.st.new{color:var(--accent-text)}.st.learn{color:var(--hard)}.st.stable{color:var(--das)}.st.leech{color:var(--again)}.art.der{color:var(--der)}.art.die{color:var(--die)}.art.das{color:var(--das)}.inbox-bar{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-l);background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));text-align:left;width:100%}.inbox-bar b{flex:1}.empty{text-align:center;color:var(--muted);padding:24px 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:10;display:flex;justify-content:center}.ov{width:100%;max-width:480px;height:100%;display:flex;flex-direction:column;gap:12px;padding:calc(env(safe-area-inset-top) + 10px) 16px calc(env(safe-area-inset-bottom) + 14px)}.ov-top{display:flex;align-items:center;gap:12px}.ov-top .meta{flex:1;text-align:center;min-width:0}.ov-top .meta b{display:block;font-size:14px;font-weight:600}.ov-top .meta small{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.bar{height:3px;border-radius:2px;background:var(--raised);overflow:hidden}.bar span{display:block;height:100%;background:var(--accent);transition:width .3s}.linkbtn{font-size:13px;font-weight:600;color:var(--muted);padding:6px 4px;min-width:38px}.linkbtn:disabled{opacity:.3}.stage{flex:1;min-height:0;position:relative}.word-card{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:14px;padding:6px 2px;overflow:auto;touch-action:pan-y;user-select:none;-webkit-user-select:none;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .26s}.word-card.drag{transition:none}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:5px 9px;border-radius:7px;background:var(--surface);border:1px solid var(--line)}.tag.new{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.tag.leech{color:var(--again);border-color:color-mix(in srgb,var(--again) 40%,var(--line))}.big{max-width:100%;font-family:var(--font-word);font-weight:700;line-height:.92;color:var(--text);transform:skew(-7deg);transform-origin:left bottom;animation:rise .4s cubic-bezier(.2,.8,.2,1) both;margin-top:auto}.big .art{font-size:.42em;display:block;letter-spacing:.02em;margin-bottom:.12em}.big .dot{color:var(--accent-text)}.ipa{font-family:var(--font-ipa);font-size:18px;color:var(--muted);display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.ipa small{font-family:var(--font-body);font-size:13px;color:var(--dim);font-style:italic}.audio{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14px;font-weight:600}.pill svg{width:16px;height:16px}.pill.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text)}.reveal-zone{display:flex;flex-direction:column;gap:10px;border-left:3px solid var(--accent);padding:2px 0 2px 14px;animation:rise2 .3s ease-out both}.meaning{font-size:24px;font-weight:600;line-height:1.2}.ex{font-size:16px;line-height:1.45;color:var(--muted)}.ex mark{background:none;color:var(--accent-text);font-weight:600}.mnem{font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 12px}.mnem b{color:var(--hard);font-size:12px;text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:2px}.prompt{font-size:14px;color:var(--muted);font-weight:500}.prod-q{font-size:30px;font-weight:600;line-height:1.15;margin-top:auto;animation:rise2 .4s ease-out both}.typebox{display:flex;gap:8px}.typebox input{flex:1;min-width:0;font-size:18px;border-radius:14px;padding:13px 14px;background:var(--surface)}.typebox button{padding:0 16px;border-radius:14px;background:var(--raised);font-weight:700}.verdict{display:flex;flex-direction:column;gap:4px;font-size:15px;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.verdict b{font-weight:700}.verdict.ok b{color:var(--accent-text)}.verdict.typo b{color:var(--hard)}.verdict.bad b{color:var(--again)}.verdict .diff{font-family:var(--font-word);font-size:22px;letter-spacing:.02em}.diff .x{color:var(--again);text-decoration:underline}.wdiff .x{color:var(--again);font-weight:700}.wdiff .ok{color:var(--accent-text)}.hint-tap{margin-top:auto;font-size:13px;color:var(--dim);text-align:center;padding-top:8px}@keyframes rise{0%{opacity:0;transform:translateY(10px) skew(-7deg)}to{opacity:1}}@keyframes rise2{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:none}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.shake{animation:shake .25s}.answer{display:flex;flex-direction:column;gap:8px}.rates{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rate{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-weight:700;font-size:14px}.rate small{font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.rate.g1{color:var(--again)}.rate.g2{color:var(--hard)}.rate.g4{color:var(--easy)}.rate.g3{background:var(--accent);border-color:var(--accent-text);color:var(--accent-ink)}.rate.g3 small{color:color-mix(in srgb,var(--accent-ink) 70%,transparent)}.rate.sug{box-shadow:0 0 0 2px var(--text)}.hint{font-size:12px;color:var(--dim);text-align:center}.opts{display:flex;flex-direction:column;gap:10px}.opt{display:flex;align-items:center;gap:14px;text-align:left;padding:15px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-size:16px;font-weight:500}.opt i{width:28px;height:28px;border-radius:8px;background:var(--raised);display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;color:var(--muted);flex:none}.opt.right{border-color:var(--good);background:color-mix(in srgb,var(--good) 12%,var(--surface))}.opt.right i{background:var(--good);color:var(--accent-ink)}.opt.wrong{border-color:var(--again);background:color-mix(in srgb,var(--again) 12%,var(--surface))}.qfeed{border-left:3px solid var(--good);padding:2px 0 2px 14px;display:flex;flex-direction:column;gap:6px;animation:rise2 .3s ease-out both}.qfeed.bad{border-color:var(--again)}.finish{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;display:flex;flex-direction:column;gap:14px}.done{font-family:var(--font-word);font-weight:700;font-size:60px;line-height:.95;transform:skew(-7deg);transform-origin:left;margin-top:8px}.done em{font-style:normal;color:var(--accent-text)}.mx-top{display:flex;gap:10px;align-items:center;justify-content:space-between;font-variant-numeric:tabular-nums}.mx-top .tm{font-family:var(--font-word);font-size:24px;font-weight:600}.mx-targets{display:flex;flex-wrap:wrap;gap:6px}.mx-t{font-size:13px;padding:6px 10px;border-radius:9px;background:var(--surface);border:1px solid var(--line);color:var(--muted)}.mx-t.found{border-color:var(--accent-text);color:var(--accent-text)}.mx-t.found b{font-family:var(--font-word);font-weight:600;color:var(--text);margin-left:6px}.grid{display:grid;gap:6px;touch-action:none;user-select:none;-webkit-user-select:none}.cell{aspect-ratio:1;border-radius:12px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;font-family:var(--font-word);font-weight:600;color:var(--text);transition:background .12s,opacity .3s,transform .12s;font-size:var(--cfs,20px);text-transform:lowercase}.cell.sel{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text);transform:scale(.96)}.cell.gone{opacity:.12;pointer-events:none}.cell.hint{box-shadow:0 0 0 2px var(--hard)}.cell.bad{background:var(--again);color:var(--accent-ink)}.mx-cur{min-height:34px;font-family:var(--font-word);font-size:26px;font-weight:600;text-align:center;letter-spacing:.02em;color:var(--accent-text)}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:3px}.heat i{display:block;aspect-ratio:1;border-radius:3px;background:var(--raised)}.heat i.l1{background:color-mix(in srgb,var(--accent) 30%,var(--raised))}.heat i.l2{background:color-mix(in srgb,var(--accent) 55%,var(--raised))}.heat i.l3{background:color-mix(in srgb,var(--accent) 80%,var(--raised))}.heat i.l4{background:var(--accent)}.heat i.fut{background:transparent}.legend{display:flex;justify-content:space-between;font-size:11px;color:var(--dim)}.deckbar{display:flex;flex-direction:column;gap:6px}.deckbar .lb{display:flex;justify-content:space-between;font-size:13px}.deckbar .lb span{color:var(--muted);font-variant-numeric:tabular-nums}.stack{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--raised)}.stack i{display:block;height:100%}.k{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.k span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;background:var(--c)}.tagbars{display:flex;flex-direction:column;gap:8px}.tagbar{display:grid;grid-template-columns:120px 1fr 44px;gap:10px;align-items:center;font-size:13px}.tagbar .tr{height:8px;border-radius:4px;background:var(--raised);overflow:hidden}.tagbar .tr i{display:block;height:100%;background:var(--accent)}.tagbar .tr i.low{background:var(--again)}.tagbar b{text-align:right;font-variant-numeric:tabular-nums}.chapters{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.chap{flex:none;width:150px;border-radius:16px;background:var(--surface);border:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:4px}.chap.locked{opacity:.4}.chap b{font-family:var(--font-word);font-size:22px;font-weight:600}.chap small{font-size:12px;color:var(--muted);line-height:1.35}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}.scrim.on{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;max-width:480px;margin:0 auto;max-height:90%;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;border:1px solid var(--line);border-bottom:0;transform:translateY(105%);transition:transform .26s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom)}.sheet.on{transform:none}.sheet-head{display:flex;align-items:center;gap:8px;padding:16px 16px 8px}.sheet-head h2{margin:0 auto 0 0;font-family:var(--font-word);font-weight:600;font-size:24px}.sheet-body{overflow:auto;padding:0 16px 18px;display:flex;flex-direction:column;gap:10px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;font-weight:600;color:var(--muted)}.field2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.set{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.set label{font-weight:600}.set small{display:block;color:var(--muted);font-size:12px;font-weight:500;margin-top:2px}.set input[type=range]{width:42%;accent-color:var(--accent-text);padding:0;border:0;background:none}.set output{min-width:42px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-text)}.tgl{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:46px!important;height:28px;border-radius:14px;background:var(--raised);border:1px solid var(--line);position:relative;cursor:pointer;flex:none;padding:0}.tgl:after{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:left .18s}.tgl:checked{background:var(--accent);border-color:var(--accent-text)}.tgl:checked:after{left:20px;background:var(--accent-ink)}.grp{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}.item{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.item-row{display:flex;gap:8px;align-items:center}.item-row input{padding:9px 10px}.pillrow{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}.pl{padding:3px 8px;border-radius:999px;background:var(--raised);color:var(--muted);font-weight:600}.pl.ok{color:var(--accent-text)}.pl.bad{color:var(--again)}.cands{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto}.cand{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:15px}.cand input{width:20px;height:20px;accent-color:var(--accent-text);padding:0}.cand span{flex:1}.cand small{color:var(--dim)}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 92px);transform:translate(-50%,16px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:all .2s;z-index:40;max-width:90%;text-align:center}.toast.on{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-tap-highlight-color:transparent}.app-loading{height:100%;display:grid;place-items:center;color:var(--muted)}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--hard);display:inline-block}.login{height:100%;max-width:420px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:24px 16px}.login form{display:flex;flex-direction:column;gap:10px}.err{color:var(--again);font-size:14px}.view .hero h1{font-size:46px}.word-card .big{margin-top:auto}html,body{overflow:hidden;overscroll-behavior:none}.app,.ov{overflow:hidden}.view{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.view>*,.sheet-body>*,.finish>*{min-width:0;max-width:100%}.modes{grid-template-columns:repeat(4,minmax(0,1fr))}.modes button{min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere}.modes button small{white-space:normal}.top{min-width:0}.top .chip{min-width:0;overflow:hidden;text-overflow:ellipsis}.word-card,.finish,.sheet-body{overflow-x:hidden}.rt,.rt b,.rt small{min-width:0;overflow-wrap:anywhere}.start>:first-child{min-width:0}@media(max-width:380px){.app,.ov{padding-left:12px;padding-right:12px}.modes button{font-size:12px;padding:6px 1px}.modes button small{font-size:10px}.view .hero h1{font-size:38px}.start{padding:16px;font-size:17px}.start span{font-size:22px}.logo b{font-size:18px}.top .chip{font-size:12px;padding:5px 9px}.tile b{font-size:26px}.rates{gap:6px}.rate{font-size:13px}.done{font-size:48px}}.set{flex-wrap:wrap}.set>label{flex:1 1 140px;min-width:0}.seg{max-width:100%;flex-wrap:wrap}@media(max-width:380px){.seg button{padding:7px 9px}}.cell{min-width:0;overflow:hidden;padding:0 2px}@media(max-width:380px){.grid{gap:4px}.cell{font-size:calc(var(--cfs, 20px) * .85);border-radius:9px}}.ex-play{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:6px;border-radius:50%;background:var(--raised);color:var(--accent-text);font-size:10px;vertical-align:middle}.pairs-top{display:flex;align-items:center;justify-content:space-between}.pairs-time{font-family:var(--font-word);font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.pairs-time.warn{color:var(--again)}.pairs-combo{font-family:var(--font-word);font-size:28px;font-weight:700;color:var(--dim);display:flex;align-items:baseline;gap:8px}.pairs-combo.on{color:var(--accent-text)}.pairs-combo small{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--muted)}.pairs{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-content:center}.pcol{display:grid;grid-template-rows:repeat(5,minmax(56px,1fr));gap:10px}.ptile-btn{border-radius:14px;background:var(--surface);border:1px solid var(--line);padding:8px 10px;font-size:15px;font-weight:600;line-height:1.2;overflow-wrap:anywhere;transition:transform .12s,background .12s,opacity .2s}.ptile-btn.word{font-family:var(--font-word);font-size:19px;letter-spacing:.01em}.ptile-btn.sel{background:var(--raised);border-color:var(--accent-text);box-shadow:0 0 0 2px var(--accent-text) inset}.ptile-btn.ok{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-text);transform:scale(.96);opacity:0;transition:opacity .22s .05s,transform .12s}.ptile-btn.bad{background:color-mix(in srgb,var(--again) 22%,var(--surface));border-color:var(--again);animation:shake .25s}.ptile-btn.in{opacity:0;transform:translateY(6px)}@media(prefers-reduced-motion:reduce){.ptile-btn{transition:none}}.emoji{margin-right:.35em;font-style:normal}.ex.cloze{font-size:17px;color:var(--text)}.ex.cloze .gap{color:var(--accent-text);font-weight:700;letter-spacing:.05em}.listen-row{display:flex;align-items:center;gap:12px}.listen-btn{width:84px;height:84px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:34px;display:grid;place-items:center;box-shadow:var(--shadow)}.assoc-img{max-width:100%;max-height:220px;object-fit:contain;border-radius:14px;border:1px solid var(--line);align-self:flex-start}.gap-word{color:var(--accent-text);font-weight:700}.gap-word.filled{text-decoration:underline;text-underline-offset:4px}.blurred{filter:blur(7px);cursor:pointer;-webkit-user-select:none;user-select:none}@media(prefers-reduced-motion:reduce){.blurred{filter:none;opacity:.15}}.goal{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:10px 14px}.goal svg{transform:rotate(-90deg);flex:none}.goal .g-bg{fill:none;stroke:var(--raised);stroke-width:7}.goal .g-fg{fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .5s var(--ease)}.goal .g-txt{display:flex;flex-direction:column}.goal .g-txt b{font-family:var(--font-word);font-size:26px;line-height:1}.goal .g-txt b small{font-size:16px;color:var(--muted)}.goal .g-txt span{font-size:13px;color:var(--muted)}.goal.reached{border-color:var(--accent-text)}.listen-btn svg{width:36px;height:36px}.deck-pick span{display:flex;flex-direction:column;gap:2px}.deck-pick span small{color:var(--muted);font-size:12px;line-height:1.3}.deck-pick.on{border-color:var(--accent-text)}.drills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.drill-btn{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px;border-radius:14px;background:var(--raised);border:1px solid var(--line);min-width:0}.drill-btn b{font-size:14px}.drill-btn small{font-size:11px;color:var(--muted);line-height:1.25}:root[data-ct-theme=focus] :is(.primary,.start,.fab,.rate.g3,.mini.go,.chip.on,.listen-btn,.pill.on,.cell.sel,.ptile-btn.ok){background:var(--accent);color:var(--accent-text);border:1px solid var(--focus-edge);box-shadow:none}:root[data-ct-theme=focus] :is(.ghost,.rate,.pill,.mini,.icon,.opt,.drill-btn,.row .ri,.tile,.box,.rows,.item,.set,.wlist){border-color:var(--line)}:root[data-ct-theme=focus] .rate small,:root[data-ct-theme=focus] .rate.g3 small{color:var(--dim)}:root[data-ct-theme=focus] .primary:disabled,:root[data-ct-theme=focus] .start:disabled{color:var(--dim)}:root[data-ct-theme=focus] .tgl:checked{background:var(--accent);border-color:var(--focus-edge)}:root[data-ct-theme=focus] .tgl:checked:after{background:var(--accent-text)}:root[data-ct-theme=focus] .bar span,:root[data-ct-theme=focus] .goal .g-fg{background:var(--accent-text);stroke:var(--accent-text)}:root[data-ct-theme=focus] .week div.today i{background:var(--accent-text)}:root[data-ct-theme=focus] .logo i{background:transparent;color:var(--accent-text);border:1px solid var(--focus-edge)}.word-preview{padding:6px 4px 2px;overflow:hidden}.word-preview .big{display:inline-block;animation:none;margin:0}:root{--word-color: var(--text)}.big,.cell,.ptile-btn.word,.mx-cur,.mx-t.found b,.witem .wt b,.gap-word,.opt span,.verdict .diff,.done em{color:var(--word-color)}.big .art.der,.witem .art.der{color:var(--der)}.big .art.die,.witem .art.die{color:var(--die)}.big .art.das,.witem .art.das{color:var(--das)}.cell.sel,.ptile-btn.word.ok{color:var(--accent-ink)}.mx-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.cell.start{box-shadow:inset 0 -4px 0 var(--accent-text)}.cell.start.sel{box-shadow:none}.update-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 14px;margin-bottom:8px;border-radius:14px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid var(--accent-text);font-weight:600;font-size:14px;text-align:left}.update-bar span{color:var(--accent-text);font-weight:700}.modes.five{grid-template-columns:repeat(5,minmax(0,1fr))}.modes.five button{font-size:12px}.cmd-big,.cmd-inline,.cmd-zone code,.cmd-out{font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace}.cmd-big{font-size:24px;line-height:1.3;color:var(--word-color);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;overflow-wrap:anywhere;white-space:pre-wrap}.cmd-inline{font-weight:600}.cmd-task{font-size:24px;font-weight:600;line-height:1.25}.cmd-sub{color:var(--muted);font-size:15px;line-height:1.4}.cmd-zone{gap:12px}.cmd-sum{font-size:16px;line-height:1.45}.cmd-zone code{font-size:14px;color:var(--word-color);background:var(--raised);border-radius:6px;padding:2px 6px;overflow-wrap:anywhere}.cmd-flags{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:0;font-size:14px}.cmd-flags dd{margin:0;color:var(--muted)}.cmd-h{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.cmd-vars{display:flex;flex-direction:column;gap:6px}.cmd-var{display:flex;flex-direction:column;gap:2px;font-size:14px}.cmd-var span{color:var(--muted)}.cmd-out{margin:0;font-size:12px;line-height:1.4;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;overflow-x:auto;color:var(--muted);max-width:100%}.cmd-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:14px}.cmd-steps li{display:flex;flex-direction:column;gap:3px}.cmd-steps span{color:var(--muted)}.topics{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px;scroll-snap-type:x proximity}.topics::-webkit-scrollbar{display:none}.topic{flex:none;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--muted);scroll-snap-align:center}.topic small{font-size:12px;font-weight:700;color:var(--accent-text);font-variant-numeric:tabular-nums}.topic.on{background:var(--raised);color:var(--text);border-color:var(--accent-text)}.today-main{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:14px}.today-head{display:flex;gap:14px;align-items:center;min-width:0}.today-txt{min-width:0}.today-txt h1{margin:2px 0;font-family:var(--font-word);font-weight:700;font-size:38px;line-height:1;transform:skew(-6deg);transform-origin:left}.today-txt h1 em{font-style:normal;color:var(--accent-text)}.today-txt p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.35}.goal-mini{position:relative;flex:none;width:52px;height:52px;display:grid;place-items:center}.goal-mini svg{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg)}.goal-mini .g-bg{fill:none;stroke:var(--raised);stroke-width:6}.goal-mini .g-fg{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s var(--ease)}.goal-mini b{font-family:var(--font-word);font-size:18px}:root[data-ct-theme=focus] .goal-mini .g-fg{stroke:var(--accent-text)}.sect{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:4px 2px -4px}.acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.act{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);min-width:0}.act .ri{margin-bottom:4px}.act b{font-size:15px}.act small{font-size:12px;color:var(--muted);line-height:1.3}.act em{position:absolute;top:10px;right:12px;font-style:normal;font-family:var(--font-word);font-size:20px;color:var(--accent-text)}.act em.warn{color:var(--again)}.act.dim{opacity:.55}.drill-pick{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:14px;border-radius:14px;background:var(--bg);border:1px solid var(--line)}.drill-pick span{display:flex;flex-direction:column;gap:3px;min-width:0}.drill-pick small{color:var(--muted);font-size:13px}.drill-pick em{font-style:normal;font-family:var(--font-word);font-size:24px;color:var(--accent-text)}.drill-pick:disabled{opacity:.45}.view{padding-bottom:80px}.topics{position:relative}
