:root{color-scheme:light dark;--bg: #ffffff;--soft: #f4f4f5;--soft2: #e9e9eb;--ink: #222222;--mute: #6b6b70;--dim: rgb(34 34 34 / .3);--line: #dddddd;--accent: #6c4cd6;--accent-ink: #5a3cc4;--accent-soft: rgb(108 76 214 / .14);--on: #ffffff;--ok: #2f9e55;--ng: #d64545;--late: #e08a1e;--lis: #0e9f8e;--lr: #b5179e;--read: #3b82f6;--sogo: #a16207;--film: #f8f9fa;--film-ink: #1a1d21;--film-ink2: #3d434a;--film-edge: rgb(26 29 33 / .09);--now-rgb: 255 216 61;--mark-a: 1;--mark: rgb(var(--now-rgb) / var(--mark-a));--jp: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "BIZ UDPGothic", "Yu Gothic UI", "Yu Gothic", sans-serif;--ui: -apple-system, "SF Pro Text", "Hiragino Sans", "Apple SD Gothic Neo", "Yu Gothic UI", "Malgun Gothic", sans-serif;--ko: -apple-system, "Apple SD Gothic Neo", "Pretendard", "Malgun Gothic", sans-serif;--fs: 1;--ease: cubic-bezier(.16, 1, .3, 1);--ease-io: cubic-bezier(.65, 0, .35, 1);--sat: env(safe-area-inset-top);--sab: env(safe-area-inset-bottom)}@media (prefers-color-scheme: dark){:root{--bg: #1b1b1d;--soft: #262628;--soft2: #333336;--ink: #e8e8ea;--mute: #9c9ca2;--dim: rgb(232 232 234 / .28);--line: #3a3a3d;--accent: #8b72f0;--accent-ink: #9d87f3;--accent-soft: rgb(139 114 240 / .2);--lr: #c42aa9;--film: #1c1f23;--film-ink: #eceef1;--film-ink2: #b4bac2;--film-edge: rgb(255 255 255 / .09);--mark-a: .42}}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;background:var(--bg);color:var(--ink);overscroll-behavior:none}body{font:500 15px/1.4 var(--ui);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}::selection{background:rgb(var(--now-rgb) / calc(.75 * var(--mark-a) + .1));color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tnum{font-variant-numeric:tabular-nums}svg.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}svg.f{fill:currentColor;stroke:none}#app{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.screen{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:var(--sat);position:relative}.foot{flex:none;height:max(14px,var(--sab))}.top{flex:none;height:52px;display:flex;align-items:center;gap:4px;padding:0 6px}.ib{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;flex:none;transition:background-color .15s,scale .12s ease-out}.ib:active{scale:.92;background:var(--soft)}.ib.on{background:var(--soft)}.ttl{flex:1;min-width:0;text-align:center}.ttl .k{display:inline-flex;gap:6px;align-items:center;font:600 11.5px/1 var(--ui);color:var(--mute);letter-spacing:.02em}.dot{width:7px;height:7px;border-radius:2px;background:var(--c, var(--mute));flex:none}.ttl .t{font:700 16px/1.25 var(--jp);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.k-聴解{--c: var(--lis)}.k-聴読解{--c: var(--lr)}.k-読解{--c: var(--read)}.k-総合{--c: var(--sogo)}.btn{height:46px;border-radius:12px;background:var(--soft);display:flex;align-items:center;justify-content:center;gap:7px;font:600 15px/1 var(--jp);flex:1;transition:scale .12s ease-out,background-color .15s,opacity .2s}.btn:active{scale:.97}.btn.pri{background:var(--accent);color:var(--on)}.btn.pri:active{background:var(--accent-ink)}.btn svg{width:18px;height:18px}.btn:disabled{opacity:.4}.go{flex:none;margin:12px 16px 0;height:50px;border-radius:12px;background:var(--accent);color:var(--on);display:flex;align-items:center;justify-content:center;gap:8px;font:700 16px/1 var(--jp);transition:scale .12s ease-out}.go:active{scale:.98}.go svg{width:19px;height:19px}.home-top{flex:none;display:flex;align-items:center;justify-content:space-between;padding:10px 16px 4px}.home-top h1{font:800 22px/1.2 var(--jp);letter-spacing:.01em}.seg{display:flex;background:var(--soft);border-radius:10px;padding:3px;margin:8px 16px 0;flex:none}.seg button{flex:1;height:36px;border-radius:8px;font:600 14px/1 var(--jp);color:var(--mute);display:flex;align-items:center;justify-content:center;gap:6px;transition:background-color .2s,color .2s}.seg button.on{background:var(--bg);color:var(--ink);box-shadow:0 1px 2px #00000024}.chips{display:flex;gap:6px;padding:12px 16px 2px;overflow-x:auto;flex:none;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{height:32px;padding:0 13px;border-radius:16px;background:var(--soft);font:600 13px/1 var(--jp);white-space:nowrap;display:flex;align-items:center;gap:6px;transition:background-color .2s,color .2s}.chip.on{background:var(--ink);color:var(--bg)}.chip b{font:600 12px/1 var(--ui);opacity:.7}.list{flex:1;min-height:0;overflow-y:auto;padding:6px 0 12px;-webkit-overflow-scrolling:touch}.row{width:100%;display:flex;align-items:center;gap:12px;padding:11px 16px;text-align:left;transition:background-color .15s}.row:active{background:var(--soft)}.row .num{width:64px;flex:none;font:600 12px/1.2 var(--ui);color:var(--mute);display:flex;align-items:center;gap:6px}.row .tt{flex:1;min-width:0}.row .tt b{display:block;font:600 15px/1.35 var(--jp);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .tt small{display:block;font:500 11.5px/1.3 var(--ko);color:var(--mute);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag{flex:none;font:600 11.5px/1 var(--jp);padding:5px 7px;border-radius:6px;background:var(--soft);color:var(--mute)}.tag.due{background:color-mix(in srgb,var(--late) 18%,var(--bg));color:color-mix(in srgb,var(--late) 75%,var(--ink))}.tag.ok{background:color-mix(in srgb,var(--ok) 18%,var(--bg));color:color-mix(in srgb,var(--ok) 75%,var(--ink))}.tag.ng{background:color-mix(in srgb,var(--ng) 16%,var(--bg));color:color-mix(in srgb,var(--ng) 80%,var(--ink))}.empty{padding:48px 24px;text-align:center;color:var(--mute);font:500 14px/1.6 var(--ko)}.sync{flex:none;text-align:center;font:500 12px/1 var(--ko);color:var(--mute);padding:6px 0 0}.fig{flex:none;margin:2px 16px 0;border-radius:10px;background:#fff;overflow:hidden;position:relative;transition:height .42s var(--ease),opacity .3s,margin .42s var(--ease)}.fig img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);object-fit:contain}.fig.zoom{position:fixed;inset:0;margin:0;border-radius:0;z-index:30;height:100dvh!important;background:#fff}.fig .zx{position:absolute;top:calc(8px + var(--sat));right:8px;color:#222;display:none}.fig.zoom .zx{display:grid}.subs{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.grab{flex:none;height:22px;display:grid;place-items:center;touch-action:none;cursor:grab}.grab i{width:38px;height:5px;border-radius:3px;background:var(--soft2);transition:background-color .2s,width .2s}.grab:active i{background:var(--mute);width:46px}.lyr{flex:1;min-height:0;overflow-y:auto;padding:0 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(transparent,#000 28px,#000 calc(100% - 44px),transparent)}.lyr::-webkit-scrollbar{display:none}.lyr .pad{height:34%}.ln{font:700 calc(19px * var(--fs))/1.6 var(--jp);color:var(--dim);padding:6px 0;transition:color .45s var(--ease),opacity .45s;cursor:pointer;-webkit-user-select:text;user-select:text}.ln.cur{color:var(--ink)}.ln .who{display:block;font:600 11.5px/1 var(--ui);color:var(--mute);margin-bottom:4px;letter-spacing:.02em}.ln mark.hl{color:var(--ink)}.full .ln{font-size:calc(24px * var(--fs));line-height:1.45;padding:10px 0}.nosub .lyr{visibility:hidden}.nosub-note{position:absolute;inset:0;display:grid;place-items:center;color:var(--mute);font:500 13px/1 var(--ko);pointer-events:none}.tl{flex:none;padding:18px 16px 0;transition:opacity .3s,transform .42s var(--ease)}.tl .row2{display:flex;gap:2px;height:30px;align-items:stretch;touch-action:none}.tl .b{border-radius:4px;background:var(--soft2);position:relative;min-width:3px;overflow:visible;transition:background-color .3s}.tl .b.done{background:color-mix(in srgb,var(--accent) 34%,var(--bg))}.tl .b.cur{background:var(--accent-soft)}.tl .b .fill{position:absolute;inset:0 auto 0 0;border-radius:4px;background:var(--accent)}.tl .b.q{background:color-mix(in srgb,var(--lr) 24%,var(--bg))}.tl .b.q.done{background:color-mix(in srgb,var(--lr) 55%,var(--bg))}.tl .b.q .fill{background:var(--lr)}.tl .qm{position:absolute;top:-16px;left:0;font:700 10.5px/1 var(--jp);color:var(--lr)}.tl .lab{display:flex;justify-content:space-between;margin-top:7px;font:500 12px/1 var(--ui);color:var(--mute)}.full .tl{opacity:0;pointer-events:none;height:0;padding:0;transform:translateY(12px)}.full .fig{height:0!important;opacity:0;margin-top:0}.tp{flex:none;display:flex;align-items:center;justify-content:center;gap:20px;padding:14px 16px 0}.tp .ib svg{width:26px;height:26px}.play{width:64px;height:64px;border-radius:18px;background:var(--ink);color:var(--bg);display:grid;place-items:center;transition:scale .12s ease-out;flex:none}.play:active{scale:.94}.play svg{width:26px;height:26px}.spd{font:600 13px/1 var(--ui);color:var(--mute);width:44px;height:44px}.bar{height:5px;border-radius:3px;background:var(--soft2);position:relative;flex:1;touch-action:none}.bar i{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--ink)}.mini{display:flex;align-items:center;gap:12px;background:var(--soft);border-radius:12px;padding:0 12px 0 4px;height:48px;flex:none}.mini .t{font:500 12px/1 var(--ui);color:var(--mute);width:40px;text-align:right}.next-in{position:absolute;left:50%;bottom:calc(176px + var(--sab));translate:-50% 0;background:var(--ink);color:var(--bg);border-radius:22px;height:44px;padding:0 18px;display:flex;align-items:center;gap:8px;font:700 14px/1 var(--jp);box-shadow:0 4px 14px #00000038;animation:rise .42s var(--ease) both;z-index:5}@keyframes rise{0%{opacity:0;translate:-50% 12px}}.ask{flex:none;padding:14px 16px 0;animation:rise2 .42s var(--ease) both}@keyframes rise2{0%{opacity:0;transform:translateY(16px)}}.ask .stem{font:600 calc(16px * var(--fs))/1.55 var(--jp);margin-bottom:12px;-webkit-user-select:text;user-select:text}.ask .stem b{color:var(--mute);font-weight:700;margin-right:6px}.ask+.ask{padding-top:18px}.sq{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sq .s{height:62px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font:700 24px/1 var(--ui);position:relative;transition:background-color .25s,color .25s,scale .12s ease-out}.sq .s:active{scale:.94}.sq .s.pick{background:var(--ink);color:var(--bg)}.sq .s.ng{background:var(--ng);color:#fff}.sq .s.ok{background:color-mix(in srgb,var(--ok) 22%,var(--bg));color:color-mix(in srgb,var(--ok) 70%,var(--ink))}.sq .s .tg{position:absolute;bottom:-20px;left:-4px;right:-4px;text-align:center;font:600 11.5px/1 var(--jp);white-space:nowrap;animation:fadein .3s .1s both}.sq .s.ok .tg{color:color-mix(in srgb,var(--ok) 80%,var(--ink))}.sq .s.ng .tg{color:var(--ng)}.sq.done .s:not(.ok):not(.ng){color:var(--dim)}@keyframes fadein{0%{opacity:0}}.after{display:flex;gap:10px;padding:32px 16px 0;flex:none;animation:rise2 .42s .08s var(--ease) both}.sheetc{flex:none;margin:12px 16px 0;border-radius:12px;background:var(--soft);padding:12px}.sheetc .hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font:700 13px/1 var(--jp)}.sheetc .sq .s{height:54px;background:var(--bg);font-size:22px}.sheetc .sq .s.pick{background:var(--ink)}.why{margin:14px 16px 0;padding:12px 14px;border-radius:10px;background:var(--soft);font:500 calc(14px * var(--fs))/1.7 var(--ko);flex:none;animation:rise2 .42s var(--ease) both;-webkit-user-select:text;user-select:text}.why b{font:700 12px/1 var(--jp);color:var(--mute);display:block;margin-bottom:6px}.page{flex:1;min-height:0;overflow-y:auto;padding:4px 0 24px;-webkit-overflow-scrolling:touch}.psg{padding:8px 20px 4px;font:400 calc(16.5px * var(--fs))/1.85 var(--jp);-webkit-user-select:text;user-select:text}.psg p+p{margin-top:.9em}.psg .lead{font-weight:600}.psg .dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px}.psg .dl b{font-weight:700;color:var(--mute);white-space:nowrap}.sep{height:8px;background:var(--soft);margin:18px 0 6px}.qb{padding:14px 16px 6px}.qb .stem{font:600 calc(16px * var(--fs))/1.6 var(--jp);padding:0 4px 10px;-webkit-user-select:text;user-select:text}.qb .stem b{color:var(--mute);margin-right:6px}.opt{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;font:400 calc(15.5px * var(--fs))/1.6 var(--jp);cursor:pointer;transition:background-color .2s,color .2s;-webkit-user-select:text;user-select:text;position:relative}.opt+.opt{margin-top:4px}.opt .no{flex:none;width:26px;height:26px;border-radius:6px;background:var(--soft);display:grid;place-items:center;font:700 13px/1 var(--ui);margin-top:1px;transition:background-color .2s,color .2s;-webkit-user-select:none;user-select:none}.opt.pick{background:var(--accent-soft)}.opt.pick .no{background:var(--accent);color:#fff}.opt.ok{background:color-mix(in srgb,var(--ok) 14%,var(--bg))}.opt.ok .no{background:var(--ok);color:#fff}.opt.ng{background:color-mix(in srgb,var(--ng) 12%,var(--bg))}.opt.ng .no{background:var(--ng);color:#fff}.opt .tg2{display:block;margin-top:6px;font:600 12px/1 var(--jp);-webkit-user-select:none;user-select:none;animation:fadein .3s both}.opt.ok .tg2{color:color-mix(in srgb,var(--ok) 80%,var(--ink))}.opt.ng .tg2{color:var(--ng)}.tbl{margin:8px 20px;border-collapse:collapse;font:400 calc(13.5px * var(--fs))/1.5 var(--jp)}.tbl td,.tbl th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl th{font-weight:700;color:var(--mute)}.tblw{overflow-x:auto}.blkimg{margin:8px 16px;border-radius:10px;background:#fff;padding:6px}.blkimg img{width:100%;display:block}.bar-bottom{flex:none;display:flex;gap:10px;padding:10px 16px 0;background:var(--bg);box-shadow:0 -1px 0 var(--soft2)}u.tu{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}u.tu sup{font-size:.6em;margin-left:1px;text-decoration:none;display:inline-block}.tb{font-weight:700}.blank{display:inline-block;min-width:2.4em;text-align:center;border-radius:4px;background:var(--soft2);font-weight:700;padding:0 2px}mark.hl{color:inherit;background:linear-gradient(transparent 56%,var(--mark) 56%,var(--mark) 92%,transparent 92%) no-repeat 0 0 / 100% 100%;padding:0 1px}.scrim{position:fixed;inset:0;background:#0000002e;z-index:20;animation:fadein .2s both}.pop{position:fixed;top:calc(var(--sat) + 52px);right:10px;width:min(316px,calc(100vw - 20px));background:var(--bg);border-radius:14px;z-index:21;box-shadow:0 4px 14px #00000038,0 0 0 .5px #0000000f;padding:4px 0;transform-origin:calc(100% - 22px) -6px;animation:popin .32s var(--ease) both}@keyframes popin{0%{opacity:0;transform:scale(.9)}}@media (prefers-color-scheme: dark){.pop{background:var(--soft)}}.pop .r{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;padding:0 14px 0 16px;font:600 15px/1.2 var(--jp);width:100%;text-align:left}.pop .r+.r{border-top:.5px solid var(--soft2)}.sw{width:51px;height:31px;border-radius:16px;background:var(--soft2);position:relative;flex:none;transition:background-color .25s}.sw:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0000002e;transition:translate .3s var(--ease)}.sw.on{background:var(--accent)}.sw.on:after{translate:20px 0}.sg{display:flex;background:var(--soft);border-radius:9px;padding:2px}@media (prefers-color-scheme: dark){.pop .sg{background:var(--bg)}}.sg button{width:44px;height:32px;border-radius:7px;font:600 13px/1 var(--ui);color:var(--mute);transition:background-color .2s,color .2s}.sg button.on{background:var(--bg);color:var(--ink);box-shadow:0 1px 2px #00000024}@media (prefers-color-scheme: dark){.sg button.on{background:var(--soft2)}}.dict{position:fixed;left:0;right:0;bottom:0;z-index:25;max-height:58dvh;display:flex;flex-direction:column;background:var(--film);color:var(--film-ink);border-radius:16px 16px 0 0;padding:0 0 max(12px,var(--sab));box-shadow:inset 0 1px #ffffffb3,inset 0 0 0 1px var(--film-edge),0 -6px 24px #00000024;transition:transform .42s var(--ease);touch-action:pan-y}@media (prefers-color-scheme: dark){.dict{box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 1px var(--film-edge),0 -6px 24px #00000080}}.dict.enter{animation:sheetin .46s var(--ease) both}@keyframes sheetin{0%{transform:translateY(100%)}}.dict .grab i{background:#1a1d2124}@media (prefers-color-scheme: dark){.dict .grab i{background:#ffffff2e}}.dict .body{overflow-y:auto;padding:0 22px 8px;flex:1;min-height:0;-webkit-user-select:text;user-select:text}.wtabs{display:flex;gap:4px;padding:0 22px 12px;overflow-x:auto;flex:none;scrollbar-width:none}.wtabs::-webkit-scrollbar{display:none}.wtabs button{height:34px;padding:0 13px 2px;border-radius:3px;font:400 15px/1 var(--jp);color:var(--film-ink2);white-space:nowrap;transition:background-color .15s,color .15s;flex:none}.wtabs button.on{background:var(--film-ink);color:var(--film)}.wtabs .sepv{width:1px;background:var(--film-edge);margin:6px 4px;flex:none}.hw{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.hw b{font:700 38px/1.15 var(--jp);letter-spacing:.02em}.hw span{font:400 18px/1.2 var(--jp);color:var(--film-ink2)}.pchips{display:flex;gap:6px;margin:10px 0 14px;flex-wrap:wrap}.pchips span{font:500 12px/1 var(--ko);color:var(--film-ink2);border-radius:99px;padding:5px 8px 4px;box-shadow:inset 0 0 0 1px rgb(var(--fi, 26 29 33) / .18)}@media (prefers-color-scheme: dark){.pchips span{--fi: 255 255 255}}.dict h3{font:700 13.5px/1 var(--ko);margin:16px 0 8px;color:var(--film-ink2)}.dict ol{list-style:none}.sense{display:flex;gap:10px;font:400 16px/1.55 var(--ko);padding:4px 6px;margin:0 -6px;border-radius:3px}.sense em{font-style:normal;font:500 13px/1.9 var(--ui);color:var(--film-ink2);width:12px;flex:none}.sense .en{display:block;font:400 12.5px/1.45 var(--ui);color:var(--film-ink2);margin-top:1px}.sense.now{background:rgb(var(--now-rgb) / calc(.55 * var(--mark-a)))}.sense .bd{font:600 11px/1 var(--ko);color:var(--film-ink2);margin-left:auto;align-self:center;white-space:nowrap;padding-left:8px}.more{font:600 13px/1 var(--ko);color:var(--film-ink2);padding:10px 0 2px}.coll{font:400 14.5px/1.7 var(--jp);color:var(--film-ink2)}.coll b{font-weight:600;color:var(--film-ink);margin-right:6px}.note{font:400 14px/1.6 var(--ko);color:var(--film-ink2)}.ex{font:400 14.5px/1.65 var(--jp)}.ex small{display:block;font:400 13px/1.5 var(--ko);color:var(--film-ink2)}.kj-big{font:700 64px/1 var(--jp)}.kj-hy{font:700 20px/1.3 var(--ko)}.kj dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font:400 15px/1.5 var(--jp);margin-top:14px}.kj dt{font:600 12.5px/1.8 var(--ko);color:var(--film-ink2)}.dict .src{font:400 11px/1.3 var(--ko);color:var(--film-ink2);padding:14px 0 4px}.wipe-bar{position:absolute;pointer-events:none;transform-origin:0 0;border-radius:1px}.setup{padding:calc(var(--sat) + 48px) 24px 24px;display:flex;flex-direction:column;gap:14px}.setup h1{font:800 26px/1.2 var(--jp)}.setup p{font:500 14px/1.65 var(--ko);color:var(--mute)}.setup input{height:48px;border-radius:12px;background:var(--soft);border:0;padding:0 14px;font:500 16px/1 var(--ui);color:var(--ink);width:100%}.setup .err{color:var(--ng);font:600 13px/1.4 var(--ko)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
