@font-face{font-family:"Fusion Pixel 12px Proportional TC";font-style:normal;font-display:swap;font-weight:400;src:url(./fusion-pixel-12px-proportional-tc-latin-400-normal-_8guIe0M.woff2)format("woff2"),url(./fusion-pixel-12px-proportional-tc-latin-400-normal-xh0qQgV0.woff)format("woff")}@font-face{font-family:"Fusion Pixel 12px Proportional JP";font-style:normal;font-display:swap;font-weight:400;src:url(./fusion-pixel-12px-proportional-jp-latin-400-normal-B-Tjo2mw.woff2)format("woff2"),url(./fusion-pixel-12px-proportional-jp-latin-400-normal-tYoivWZf.woff)format("woff")}@font-face{font-family:PixelMplus12 Bold;font-style:normal;font-weight:400;font-display:swap;src:url(./PixelMplus12-Bold-DYyUd0Tu.woff2)format("woff2")}@font-face{font-family:DenkiChip;font-style:normal;font-weight:400;font-display:swap;src:url(./x8y12pxDenkiChip-CPDb2EEe.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-zh:"Fusion Pixel 12px Proportional TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-ja:"Fusion Pixel 12px Proportional JP", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--font-kanji:"UD Digi Kyokasho N-R", "UD デジタル 教科書体 N-R", "YuKyokasho", "Klee One", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", "Noto Serif CJK JP", serif;--fs-s:12px;--fs-m:24px;--fs-l:36px;--fs-xl:48px;--bg:#000;--text:#fff;--muted:#a8a8a8;--accent:#ffd84a;--good:#6cf08a;--bad:#ff6b6b;--hp:#6cf08a;--mp:#6cb8ff;--exp:#ffd84a;--link:#8fd3ff;--win-bg:#000;--win-border:#fff;--win-radius:8px;--win-shadow:0 0 0 3px #000;--gutter:16px}:root[data-theme=ff]{--win-bg:linear-gradient(180deg, #3050c8 0%, #142a88 55%, #0a1650 100%);--win-border:#e8e8f8;--win-radius:6px}:root[data-font=pixel][data-face=mplus]{--font-zh:"PixelMplus12 Bold", "Fusion Pixel 12px Proportional TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-ja:"PixelMplus12 Bold", "Fusion Pixel 12px Proportional JP", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif}:root[data-font=pixel][data-face=denki]{--font-zh:"DenkiChip", "Fusion Pixel 12px Proportional TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-ja:"DenkiChip", "Fusion Pixel 12px Proportional JP", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif}:root[data-font=smooth]{--font-zh:"PingFang TC", "Microsoft JhengHei", "Noto Sans TC", sans-serif;--font-ja:"Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--fs-m:20px;--fs-l:30px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-zh);font-size:var(--fs-m);-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.5}#root{overflow-x:clip}:lang(ja){font-family:var(--font-ja)}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--link)}#root{flex-direction:column;min-height:100dvh;display:flex}.page{width:100%;max-width:960px;padding:var(--gutter);padding-bottom:calc(var(--gutter) + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.win{background:var(--win-bg);border:3px solid var(--win-border);border-radius:var(--win-radius);box-shadow:var(--win-shadow);padding:12px 16px;position:relative}.win-title{background:var(--bg);font-size:var(--fs-s);color:var(--accent);padding:0 6px;line-height:24px;position:absolute;top:-14px;left:16px}:root[data-theme=ff] .win-title{background:#0a1650;border-radius:4px}.menu{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.menu-grid{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.cmd{text-align:left;cursor:pointer;width:100%;min-height:44px;color:var(--text);background:0 0;border:0;align-items:center;gap:4px;padding:4px 4px 4px 28px;text-decoration:none;display:flex;position:relative}.cmd:before{content:"▶";color:var(--accent);font-size:var(--fs-s);opacity:0;position:absolute;left:4px}.cmd:hover:before,.cmd:focus-visible:before,.cmd.active:before{opacity:1;animation:.8s steps(2,end) infinite blink}.cmd:focus-visible{outline:none}.cmd:disabled{color:#555;cursor:default}.cmd:disabled:before{opacity:0}.cmd .sub{color:var(--muted);font-size:var(--fs-s);margin-left:auto}@keyframes blink{50%{opacity:0}}.btn{border:2px solid var(--win-border);cursor:pointer;min-height:44px;color:var(--text);white-space:nowrap;background:#000;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:4px 14px;text-decoration:none;display:inline-flex}.btn:hover,.btn:focus-visible{color:var(--accent);border-color:var(--accent);outline:none}.btn.on{background:var(--accent);color:#000;border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:default}.btn-s{min-height:36px;font-size:var(--fs-s);padding:0 10px}@media (pointer:coarse),(width<=600px){.btn-s{min-width:44px;min-height:44px}}.tap-row{min-height:44px;color:inherit;align-items:center;text-decoration:none;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:var(--fs-s)}.gold{color:var(--accent)}.good{color:var(--good)}.bad{color:var(--bad)}.center{text-align:center}input[type=text],input[type=url],input[type=search],textarea{border:2px solid var(--win-border);background:#000;border-radius:6px;outline:none;width:100%;min-height:44px;padding:8px 10px}input:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;line-height:1.5}.bar{border:2px solid var(--win-border);background:#222;border-radius:3px;height:12px;overflow:hidden}.bar>i{height:100%;transition:width .3s steps(6,end);display:block}.topbar{align-items:center;gap:12px;min-height:44px;display:flex}.topbar h1{font-size:var(--fs-m);color:var(--accent);margin:0;font-weight:400}.sprite{image-rendering:pixelated;shape-rendering:crispedges;display:block}ruby{ruby-position:over}rt{font-size:var(--fs-s);color:var(--accent);font-family:var(--font-ja);letter-spacing:0}.modal-back{z-index:50;padding:var(--gutter);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:560px;max-height:80dvh;overflow:auto}@media (width>=720px){.modal-back{align-items:center}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes flash{0%,to{opacity:1}50%{opacity:0}}@keyframes screen-hit{0%,to{transform:translate(0)}20%{transform:translate(-6px,4px)}40%{transform:translate(6px,-4px)}60%{transform:translate(-4px,-2px)}80%{transform:translate(4px,2px)}}@keyframes defeat{to{opacity:0;filter:brightness(3);transform:scaleY(.2)translateY(40%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.menu:hover .cmd.active:not(:hover):before,.menu-grid:hover .cmd.active:not(:hover):before{opacity:0}.kana-cell{cursor:pointer;background:0 0;border:2px solid #333;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;min-height:72px;padding:4px 0;line-height:1.2;display:flex;position:relative}.kana-cell:hover,.kana-cell:focus-visible{border-color:var(--accent);outline:none}.kana-cell[data-on]{background:var(--accent);color:#000}.kana-cell[data-on] .muted{color:#000}.kana-big{font-size:var(--fs-l)}.stars{font-size:var(--fs-s);color:var(--accent);line-height:1;position:absolute;top:2px;right:4px}.battle{gap:12px;max-width:720px}.battle.hurt{animation:.35s steps(5,end) screen-hit}.status-bars{grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:4px 8px;margin-top:4px;display:grid}@media (width<=420px){.status-bars{grid-template-columns:auto 1fr}}.field{border:3px solid var(--win-border);border-radius:var(--win-radius);justify-content:center;align-items:flex-end;height:260px;padding-bottom:20px;display:flex;position:relative;overflow:hidden}.scene-forest{background:linear-gradient(#0000 70%,#1d3a12 70%,#142a0c 100%),repeating-linear-gradient(90deg,#0d2410 0 24px,#10301a 24px 48px),linear-gradient(#0a1a10,#183a20)}.scene-coast{background:linear-gradient(#78b8ff 0%,#a8d8ff 45%,#2a6fd0 45%,#1d4fa0 72%,#e8d8a0 72%,#d8c088 100%)}.scene-village{background:linear-gradient(#ff9a50 0%,#c8507a 40%,#4a2a5a 66%,#3a2a1a 66%,#2a1a10 100%)}.monster-name{background:#0009;border-radius:4px;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:2px 8px;display:grid;position:absolute;top:8px;left:8px;right:8px}.monster{animation:2.6s steps(4,end) infinite float}.monster.boss{animation-duration:3.4s}.monster.hit svg{animation:.12s step-end 3 flash}.monster.crit svg{animation:80ms step-end 5 flash,.3s steps(4,end) shake}.monster.defeat{animation:.6s steps(6,end) forwards defeat}.combo{color:var(--accent);font-size:var(--fs-m);text-shadow:2px 2px #000;position:absolute;bottom:12px;right:12px}.question .prompt{min-height:84px;font-size:var(--fs-xl);justify-content:center;align-items:center;gap:12px;line-height:1.2;display:flex}.question .prompt rt{font-size:var(--fs-s)}.answers{margin-top:4px}.answer{font-size:var(--fs-m);min-height:52px;padding-right:22px}.answer .key{position:absolute;top:4px;right:6px}.answer.right{color:var(--good)}.answer.right:before{opacity:1;color:var(--good);animation:none}.answer.wrong{color:var(--bad);text-decoration:line-through}.answer:disabled.right,.answer:disabled.wrong{cursor:default}.message{font-size:var(--fs-m)}.next-arrow{text-align:center;color:var(--accent);animation:.8s steps(2,end) infinite blink}.lesson-grid{gap:6px;margin-top:8px;display:grid}.lesson-grid.kana{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.lesson-grid.words{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.lesson-item{cursor:pointer;background:0 0;border:2px solid #333;border-radius:6px;flex-direction:column;align-items:center;padding:6px 4px;line-height:1.3;display:flex}.lesson-item:hover,.lesson-item:focus-visible{border-color:var(--accent);outline:none}.lesson-actions{z-index:5;margin:-8px calc(-1 * var(--gutter)) 0;padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom));background:var(--bg);box-shadow:0 -8px 8px var(--bg);position:sticky;bottom:0}.result-grid{grid-template-columns:auto 1fr;gap:4px 16px;margin-top:12px;display:grid}.stage-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 12px;display:grid}.stage-list .cmd{justify-content:flex-start}.stage-list .cmd .tag{color:var(--accent);font-size:var(--fs-s);min-width:52px}.stage-list .cmd.done .tag:after{content:" ✓";color:var(--good)}.word-row{border-bottom:1px dashed #444;align-items:flex-start;gap:12px;padding:8px 0;display:flex}.word-row>div{overflow-wrap:anywhere}.word-row:last-child{border-bottom:0}.lyrics-page{max-width:1200px}.lyrics-layout{gap:16px;display:grid}.player-wrap{z-index:5;aspect-ratio:16/9;border:3px solid var(--win-border);border-radius:var(--win-radius);background:#000;margin-bottom:8px;position:sticky;top:0;overflow:hidden}.yt,.yt>div,.yt iframe{border:0;width:100%;height:100%;display:block}@media (width>=900px){.lyrics-layout{grid-template-columns:minmax(360px,440px) 1fr;align-items:start}.lyrics-side{position:sticky;top:16px}.player-wrap{position:static}}.lyric-lines{flex-direction:column;gap:4px;display:flex}.lyric{border:2px solid #0000;border-radius:6px;align-items:flex-start;gap:8px;padding:6px 8px;scroll-margin-top:40vh;display:flex}.lyric.now{border-color:var(--accent);background:#ffd84a14}.lyric.looping{border-style:dashed}.lyric-time{min-width:48px;min-height:32px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;flex:none;margin-top:14px;padding:0}.lyric-time:hover:not(:disabled),.lyric.now .lyric-time{color:var(--accent)}.lyric-body{flex:1;min-width:0}.lyric-ja{font-size:var(--fs-m);word-break:break-word;margin:0;line-height:2.2}.lyric-romaji{color:var(--link);overflow-wrap:anywhere;margin:0;line-height:1.5}.lyric-zh{color:var(--good);margin:0;line-height:1.5}.tok{cursor:pointer;line-height:inherit;font-family:var(--font-ja);background:0 0;border:0;border-radius:3px;margin:0;padding:0 1px}.tok:hover,.tok:focus-visible{background:#8fd3ff40;outline:none}.lyric.now .tok{color:var(--accent)}.sync-bar{z-index:6;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex;position:sticky;bottom:8px}.popup-word{font-size:var(--fs-l);line-height:1.6}.popup-word rt{font-size:var(--fs-s)}.meaning{border:2px solid #444;border-radius:6px;flex-direction:column;gap:4px;margin-top:8px;padding:8px 10px;display:flex}.answers.big .answer{font-size:var(--fs-l);min-height:60px}.scene-tower{background:radial-gradient(circle at 20% 18%,#fff 0 1px,#0000 2px),radial-gradient(circle at 72% 12%,#fff 0 1px,#0000 2px),radial-gradient(circle at 86% 34%,#cfd8ff 0 1px,#0000 2px),radial-gradient(circle at 40% 30%,#cfd8ff 0 1px,#0000 2px),linear-gradient(#0000 72%,#2a2440 72%,#1c1830 100%),repeating-linear-gradient(90deg,#241c44 0 32px,#2c2352 32px 64px),linear-gradient(#120c2a,#2a1d55)}.chip{border:2px solid var(--win-border);font-size:var(--fs-s);border-radius:12px;padding:2px 10px;line-height:24px;display:inline-block}.due-tag{font-size:var(--fs-s);color:var(--muted)}.due-tag.now{color:var(--accent)}.sentence{word-break:break-word;line-height:2.2}.blank{border-bottom:3px solid var(--accent);text-align:center;min-width:1.6em;color:var(--accent);margin:0 2px;padding:0 4px;line-height:1.3;display:inline-block}.blank:not(.filled):before{content:"？";color:var(--muted)}.question .prompt.sentence-prompt{font-size:var(--fs-l);text-align:center;flex-wrap:wrap}.question .prompt.passage-prompt{font-size:var(--fs-m);width:100%}.question .prompt.passage-prompt .sentence{text-align:left;max-width:100%;display:block}.question .prompt.dialogue-prompt{font-size:var(--fs-m);flex-direction:column-reverse;gap:8px;width:100%}@media (width<=480px){.question .prompt.sentence-prompt{font-size:var(--fs-m)}}.question .context{text-align:center;color:var(--muted);margin-top:-4px}.explain{color:var(--link);margin:8px 0 0}.modal .question{margin-top:12px}.lesson-grid.rules{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.lesson-grid.rules .lesson-item{text-align:left;align-items:flex-start;gap:4px;padding:8px 10px}.lesson-example{flex-direction:column;gap:2px;margin-top:4px;display:flex}.lesson-example .blank{border-bottom-width:2px}.scene-shrine{background:linear-gradient(90deg,#0000 16%,#b8281e 16% 21%,#0000 21% 79%,#b8281e 79% 84%,#0000 84%) 0 0/100% 72% no-repeat,linear-gradient(#0000 14%,#d0302a 14% 19%,#0000 19% 26%,#a82018 26% 29%,#0000 29%) 0 0/100% 100% no-repeat,linear-gradient(#0000 72%,#6a6a6a 72%,#4a4a4a 100%),linear-gradient(#1a1440 0%,#3a2060 50%,#6a3060 72%)}.scene-clocktower{background:radial-gradient(circle at 50% 30%,#0000 0 46px,#c9a227 47px 50px,#0000 51px),linear-gradient(#0000 74%,#2a3a3a 74%,#1a2a2a 100%),repeating-linear-gradient(0deg,#1e4a4a 0 22px,#235454 22px 24px),#1e4a4a}.scene-castle{background:radial-gradient(circle at 82% 16%,#f4e6a8 0 14px,#0000 15px),radial-gradient(circle at 12% 64%,#ff9a3a 0 5px,#0000 6px),radial-gradient(circle at 30% 66%,#ff9a3a 0 5px,#0000 6px),radial-gradient(circle at 70% 66%,#ff9a3a 0 5px,#0000 6px),radial-gradient(circle at 88% 64%,#ff9a3a 0 5px,#0000 6px),linear-gradient(#0000 72%,#4a3a30 72%,#2a2018 100%),linear-gradient(90deg,#0000 34%,#1a1a2e 34% 66%,#0000 66%) 0 46%/100% 26% no-repeat,linear-gradient(90deg,#0000 40%,#22223a 40% 60%,#0000 60%) 0 30%/100% 16% no-repeat,linear-gradient(90deg,#0000 45%,#2a2a44 45% 55%,#0000 55%) 0 20%/100% 10% no-repeat,linear-gradient(#0a1030 0%,#23305a 60%,#3a3a60 72%)}.scene-post{background:radial-gradient(circle at 20% 20%,#ffe0a0 0 12px,#0000 13px),radial-gradient(circle at 16% 58%,#ffb04a 0 4px,#0000 5px),radial-gradient(circle at 40% 58%,#ffb04a 0 4px,#0000 5px),radial-gradient(circle at 62% 58%,#ffb04a 0 4px,#0000 5px),radial-gradient(circle at 84% 58%,#ffb04a 0 4px,#0000 5px),linear-gradient(#0000 66%,#8a6a48 66%,#5a4430 100%),linear-gradient(#0000 42%,#1a1218 42% 46%,#0000 46%),repeating-linear-gradient(90deg,#3a2418 0 52px,#2a1a12 52px 56px) 0 60%/100% 24% no-repeat,radial-gradient(30% 26% at 22% 46%,#4a3050 99%,#0000 100%),radial-gradient(38% 30% at 74% 48%,#3a2846 99%,#0000 100%),linear-gradient(#f08a4a 0%,#c85a6a 34%,#6a3a6a 60%)}.scene-library{background:radial-gradient(circle at 12% 14%,#ffcf6a 0 6px,#0000 7px),radial-gradient(circle at 88% 14%,#ffcf6a 0 6px,#0000 7px),linear-gradient(#0000 72%,#4a3020 72%,#2a1a10 100%),repeating-linear-gradient(90deg,#8a2a2a 0 10px,#2a4a7a 10px 18px,#c8a040 18px 24px,#3a6a3a 24px 34px,#5a3a6a 34px 42px,#1a1210 42px 44px) 0 22%/100% 18% no-repeat,repeating-linear-gradient(90deg,#3a6a3a 0 8px,#8a2a2a 8px 18px,#5a3a6a 18px 26px,#c8a040 26px 32px,#2a4a7a 32px 42px,#1a1210 42px 44px) 0 54%/100% 18% no-repeat,linear-gradient(#2a1a14 0%,#3a2418 72%)}.scene-onsen{background:radial-gradient(16% 12% at 32% 58%,#ffffffb3 0,#0000 70%),radial-gradient(20% 14% at 58% 54%,#ffffff80 0,#0000 72%),radial-gradient(circle at 80% 18%,#f4e6c0 0 11px,#0000 12px),linear-gradient(#0000 70%,#3a90a4 70%,#1a6070 78%,#6a4a30 78%,#3a2a18 100%),radial-gradient(36% 26% at 16% 64%,#2a3a4a 99%,#0000 100%),radial-gradient(42% 30% at 72% 62%,#243040 99%,#0000 100%),linear-gradient(#14182e 0%,#3a4868 46%,#c47858 70%)}.scene-harbor{background:radial-gradient(circle at 78% 18%,#f4e6c0 0 10px,#0000 11px),radial-gradient(circle at 22% 42%,#ffb04a 0 4px,#0000 5px),linear-gradient(#0000 48%,#1a120c 48% 62%,#0000 62%),linear-gradient(#0000 58%,#2a2018 58% 60%,#0000 60%),linear-gradient(#0000 62%,#14324a 62%,#0c2438 78%,#3a2a18 78%,#2a1c10 100%),linear-gradient(#1a2040 0%,#3a4870 40%,#c47858 62%)}.scene-keep{background:radial-gradient(circle at 80% 16%,#f8f0d0 0 12px,#0000 13px),linear-gradient(#0000 30%,#1a1c2a 30% 33%,#0000 33%) 6% 0/16% 100% no-repeat,linear-gradient(#0000 33%,#e8e4d8 33% 43%,#0000 43%) 7% 0/11% 100% no-repeat,linear-gradient(#0000 43%,#1a1c2a 43% 46%,#0000 46%) 4% 0/21% 100% no-repeat,linear-gradient(#0000 46%,#e8e4d8 46% 60%,#0000 60%) 5% 0/17% 100% no-repeat,linear-gradient(#0000 60%,#5a5a64 60% 72%,#0000 72%) 2% 0/27% 100% no-repeat,linear-gradient(#0000 72%,#2a2a20 72%,#1a1a14 100%),linear-gradient(#0c1028 0%,#1a2450 50%,#3a3a5a 72%)}.scene-school{background:linear-gradient(#0000 12%,#4a2e1c 12% 14%,#0000 14%) 41% 0/18% 100% no-repeat,linear-gradient(#0000 14%,#f2e8cc 14% 50%,#4a2e1c 50% 52%,#0000 52%) 43% 0/14% 100% no-repeat,repeating-linear-gradient(90deg,#5a4020 0 2px,#0000 2px 56px) 0 100%/100% 30% no-repeat,linear-gradient(#0000 70%,#2a1a10 70% 72%,#a89850 72%,#7a6a30 100%),repeating-linear-gradient(90deg,#3a2414 0 4px,#0000 4px 44px),repeating-linear-gradient(0deg,#3a2414 0 3px,#0000 3px 34px),linear-gradient(#d8b880 0%,#e8cc90 60%,#c8a060 70%)}.scene-press{background:radial-gradient(circle at 86% 24%,#ffd06a 0 7px,#c84a2a 7px 13px,#0000 14px),linear-gradient(#0000 12%,#1a120c 12% 13.5%,#0000 13.5%),repeating-linear-gradient(90deg,#0000 0 14px,#f2ead6 14px 38px,#0000 38px 60px) 0 13%/100% 26% no-repeat,repeating-linear-gradient(90deg,#0000 0 18px,#2a2018 18px 20px,#0000 20px 24px,#2a2018 24px 26px,#0000 26px 60px) 0 18%/100% 16% no-repeat,linear-gradient(#0000 72%,#3a2a1a 72%,#241810 100%),repeating-linear-gradient(90deg,#4a3020 0 30px,#3e2818 30px 32px)}.scene-archive{background:radial-gradient(circle at 50% 28%,#ffcf6a 0 8px,#0000 10px),linear-gradient(#0000 18%,#3a2a22 18% 62%,#0000 62%),repeating-linear-gradient(90deg,#8a2a2a 0 6px,#2a4a7a 6px 12px,#c8a040 12px 16px,#1a1210 16px 18px) 38% 28%/24% 28% no-repeat,linear-gradient(#0000 70%,#2a2018 70%,#1a140e 100%),linear-gradient(#12101c 0%,#2a2848 46%,#6a4030 72%)}.scene-maze{background:linear-gradient(#0000 72%,#3a3428 72%,#2a2418 100%),repeating-linear-gradient(90deg,#0000 0 46px,#1a1630 46px 50px),repeating-linear-gradient(0deg,#4a4058 0 22px,#3a3248 22px 24px),#3a3248}.order-built{border:2px dashed var(--muted);border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px;min-height:64px;margin-top:4px;padding:6px;display:flex}.order-built.right{border-style:solid;border-color:var(--good);color:var(--good)}.order-built.wrong{border-style:solid;border-color:var(--bad);color:var(--bad)}.order-pool{flex-wrap:wrap;gap:6px;min-height:48px;margin-top:8px;display:flex}.order-suffix{font-size:var(--fs-m)}.order-answer{font-size:var(--fs-m);color:var(--good);margin:8px 0 0}@media (width<=480px){.answers.long{grid-template-columns:1fr}.answers.long .answer{min-height:44px}}.tile{min-height:44px;font:inherit;font-size:var(--fs-m);color:inherit;background:var(--win-bg);border:2px solid var(--win-border);cursor:pointer;border-radius:4px;padding:0 10px;position:relative}.tile .sentence{line-height:1.9}.tile .key{font-size:var(--fs-s);position:absolute;top:-2px;right:2px}.order-pool .tile{padding-right:16px}.tile:hover:not(:disabled),.tile:focus-visible{border-color:var(--accent)}.tile:disabled{cursor:default;color:inherit}@media (width<=480px){.tile .key{display:none}.order-pool .tile{padding-right:10px}}.kanji-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;display:grid}.kanji-grid.kana{grid-template-columns:repeat(5,1fr);max-width:400px}.kanji-tile{min-height:56px;font:inherit;font-size:var(--fs-m);color:inherit;background:var(--win-bg);border:2px solid var(--muted);cursor:pointer;border-radius:4px;flex-direction:column;align-items:center;padding:2px 0;display:flex}.kanji-stars{font-size:var(--fs-s);color:var(--accent);line-height:1}.kanji-tile.mastered{border-color:var(--accent)}.kanji-tile.on{border-color:var(--win-border);outline:2px solid var(--accent);outline-offset:1px}.write-layout{grid-template-areas:"pad""info""picker";align-items:start;gap:12px;display:grid}.write-picker{grid-area:picker}.write-pad{grid-area:pad;scroll-margin-top:8px}.write-layout .kanji-info{grid-area:info}@media (width>=760px){.write-layout{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"picker pad""info pad"}}.kanji-writer{box-sizing:content-box;touch-action:none;border:3px solid var(--win-border);background:linear-gradient(90deg,#0000 calc(50% - 1px),#333 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(0deg,#0000 calc(50% - 1px),#333 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),#000;border-radius:4px;margin:0 auto}.kanji-writer svg{display:block}.kanji-big{width:96px;height:96px;font-family:var(--font-kanji);color:inherit;border:2px solid var(--muted);cursor:pointer;background:0 0;border-radius:4px;flex:none;font-size:72px;line-height:1}.kanji-facts{gap:2px 12px;margin-top:0}.kanji-examples{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.kanji-examples li{align-items:baseline;gap:12px;display:flex}.kanji-examples .link-btn{font-size:var(--fs-m)}.link-btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}@media (pointer:coarse),(width<=600px){.link-btn{align-items:center;min-width:44px;min-height:44px;display:inline-flex}}.link-btn:hover,.link-btn:focus-visible{color:var(--accent)}.stroke-ref{justify-content:center;align-items:center;gap:16px;margin-bottom:8px;display:flex}.stroke-ref .kanji-big{cursor:default}.spell-prompt{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:8px 0;display:flex}.spell-zh{font-size:var(--fs-l)}.spell-word{font-size:var(--fs-xl)}.spell-input{min-width:0;min-height:44px;font-size:var(--fs-m);flex:1}.spell-answer{margin-top:8px}.spell-result{font-size:var(--fs-l)}.spell-diff{font-size:var(--fs-m)}.spell-diff .missing{color:var(--good);text-underline-offset:4px;text-decoration:underline}.spell-diff .extra{color:var(--bad);text-decoration:line-through}.spell-tips{color:var(--link);margin:8px 0 0;padding-left:18px;line-height:1.7}.battle-spell{margin-top:8px}.battle-spell .spell-input.right{border-color:var(--good);color:var(--good)}.battle-spell .spell-input.wrong{border-color:var(--bad);color:var(--bad)}.battle-spell form{scroll-margin-bottom:12px}.hard-start-mobs{flex-wrap:wrap;gap:4px}.hard-rules{margin:8px 0 0;padding-left:18px;line-height:1.7}.hard-actions{grid-template-columns:1fr 1fr;grid-template-areas:"go go""back slow";gap:8px;display:grid}.hard-actions .hard-go{grid-area:go}.hard-actions .hard-slow{grid-area:slow}.hard-actions .hard-back{grid-area:back}.hard-actions:not(:has(.hard-slow)){grid-template-areas:"go go""back."}@media (width>=600px){.hard-actions{grid-template-columns:auto 1fr auto auto;grid-template-areas:"back.slow go"}.hard-actions:not(:has(.hard-slow)){grid-template-areas:"back. .go"}}.build-ask{margin:8px 0 0}.build-how{margin:12px 0 0}.build-how-answer{text-align:center;margin:0}.build-sum{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:4px;padding:12px 0 4px;display:flex}.build-term{align-items:flex-start;gap:4px;display:inline-flex}.build-op{font-size:var(--fs-l);color:var(--muted);line-height:72px}.build-part{flex-direction:column;align-items:center;min-width:72px;display:inline-flex}.build-char{width:72px;height:72px;font-family:var(--font-kanji);border:2px solid var(--muted);border-radius:6px;place-items:center;font-size:56px;line-height:1;display:grid}.build-part.unknown .build-char{font-family:inherit;font-size:var(--fs-xl);color:var(--accent);border-style:dashed;border-color:var(--accent)}.build-part.found .build-char{color:var(--good);border-color:var(--good)}.build-name{flex-direction:column;align-items:center;min-height:36px;line-height:1.5;display:flex}.build-options{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;display:grid}@media (width<=420px){.build-options{grid-template-columns:repeat(2,1fr)}}.build-opt{background:var(--bg);min-height:96px;color:var(--text);border:2px solid var(--text);cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px;display:flex;position:relative}.build-opt:hover:not(:disabled),.build-opt:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.build-opt:disabled{cursor:default;opacity:.5}.build-opt.right{border-color:var(--good);color:var(--good);opacity:1}.build-opt.wrong{border-color:var(--bad);color:var(--bad);opacity:1}.build-opt-char{font-family:var(--font-kanji);font-size:56px;line-height:1}.build-key{position:absolute;top:4px;left:6px}.build-info p{line-height:2}.build-inline{font-family:var(--font-kanji);font-size:1.4em;line-height:1}@media (width<=380px){.build-char{width:56px;height:56px;font-size:44px}.build-part{min-width:56px}.build-op{line-height:56px}}.shot-range{border:2px solid var(--muted);background:repeating-linear-gradient(90deg,#0000 0 46px,#ffffff0a 46px 48px);border-radius:6px;flex-direction:column;gap:4px;padding:6px;display:flex;position:relative;overflow:hidden}.shot-range.hurt{animation:.3s steps(4,end) screen-hit}.shot-lane{height:56px;position:relative}.shot-target{min-width:72px;min-height:48px;font-size:var(--fs-m);background:var(--bg);color:var(--text);border:2px solid var(--text);cursor:crosshair;animation:shot-fly var(--dur,3s) ease-in-out var(--delay,0s) infinite alternate;border-radius:24px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex;position:absolute;top:4px;left:0}.shot-lane.rev .shot-target{animation-direction:alternate-reverse}.shot-target .key{position:static}.shot-target:disabled{cursor:default;animation-play-state:paused}.shot-target.right{border-color:var(--good);color:var(--good)}.shot-target.wrong{border-color:var(--bad);color:var(--bad)}.shot-target.gone{opacity:.35}@keyframes shot-fly{0%{left:0}to{left:calc(100% - 88px)}}@media (prefers-reduced-motion:reduce){.shot-target{left:var(--x);animation:none}}.dict-sentence{font-size:var(--fs-m)}textarea.dict-input{resize:none;line-height:1.4}.shadow-sentence{line-height:2}.shadow-miss{color:var(--bad);-webkit-text-decoration:underline wavy var(--bad);text-decoration:underline wavy var(--bad);text-underline-offset:4px}.shadow-live{animation:1.2s steps(2,end) infinite blink}.dict-missed{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.dict-missed li{align-items:flex-start;gap:8px;display:flex}.dict-missed li>span{flex-direction:column;display:flex}.daily-head{width:100%;min-height:44px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin-top:4px;padding:0;display:flex}.daily-head:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.daily-caret{width:16px;color:var(--accent)}.daily-next{min-height:44px;color:inherit;align-items:center;gap:6px;text-decoration:none;display:flex}.daily-next-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.daily-next:hover .daily-next-title,.daily-next:focus-visible .daily-next-title{color:var(--accent)}.missions{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.mission{min-height:52px;color:inherit;border:2px solid var(--muted);border-radius:4px;align-items:center;gap:10px;padding:6px 8px;text-decoration:none;display:flex}.mission:hover,.mission:focus-visible{border-color:var(--accent)}.mission.done{opacity:.65;border-style:dashed}.mission-check{text-align:center;width:24px;font-size:var(--fs-m);color:var(--accent);flex:none}.mission-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mission-side{flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.toasts{z-index:50;pointer-events:none;flex-direction:column;gap:6px;width:min(480px,100% - 32px);display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{font-size:var(--fs-s);background:var(--win-bg);border:3px solid var(--accent);border-radius:var(--win-radius);box-shadow:var(--win-shadow);padding:8px 12px;animation:.2s steps(3,end) toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.update-banner{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:70;width:min(480px,100% - 32px);font-size:var(--fs-s);background:var(--win-bg);border:3px solid var(--accent);border-radius:var(--win-radius);box-shadow:var(--win-shadow);align-items:center;gap:8px;padding:8px 12px;display:flex;position:fixed;transform:translate(-50%)}.update-banner span{flex:1}.face-list{flex-direction:column;gap:6px;margin:4px 0 8px;display:flex}.face-choice{text-align:left;white-space:normal;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;width:100%;padding:6px 10px}.face-fusion{font-family:"Fusion Pixel 12px Proportional JP",sans-serif}.face-mplus{font-family:PixelMplus12 Bold,sans-serif}.face-denki{font-family:DenkiChip,sans-serif}.face-sample{font-size:var(--fs-l);margin-left:auto;line-height:1}.voice-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.voice-choice{white-space:normal;text-align:left;justify-content:space-between;width:100%;padding:6px 10px}.voice-online{opacity:.8;flex:none}.voice-tags{flex:none;align-items:center;gap:6px;display:flex}.voice-grade{color:var(--good)}.voice-grade.robotic{color:var(--bad)}.voice-steps{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.voice-notice{top:calc(8px + env(safe-area-inset-top));z-index:60;pointer-events:none;max-width:calc(100% - 32px);position:fixed;left:50%;transform:translate(-50%)}.voice-notice>span{font-size:var(--fs-s);background:var(--win-bg);border:3px solid var(--accent);border-radius:var(--win-radius);box-shadow:var(--win-shadow);padding:6px 12px;display:block}.voice-dots{text-align:left;width:3ch;display:inline-block}.voice-dots:after{content:"...";vertical-align:bottom;animation:1.2s steps(4,jump-none) infinite voice-dots;display:inline-block;overflow:hidden}@keyframes voice-dots{0%{width:0}to{width:3ch}}@media (prefers-reduced-motion:reduce){.voice-dots:after{animation:none}}.shiritori-chain{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.shiritori-chain li{grid-template-columns:36px auto 1fr auto;align-items:baseline;gap:8px;display:grid}.shiritori-chain li.you .shiritori-word{color:var(--accent)}.shiritori-word{font-size:var(--fs-m)}.shiritori-ask{text-align:center;margin:8px 0}.shiritori-kana{font-size:var(--fs-l)}.read-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;display:grid}.read-card{color:inherit;background:var(--win-bg);border:3px solid var(--win-border);border-radius:var(--win-radius);flex-direction:column;gap:4px;padding:10px 12px;text-decoration:none;display:flex}.read-card:hover,.read-card:focus-visible{border-color:var(--accent);outline:none}.read-card-title{font-size:var(--fs-m)}.read-chip{font-size:var(--fs-s);border:1px solid #555;border-radius:10px;padding:2px 8px;display:inline-block}.read-chip.lv-n5{border-color:var(--good);color:var(--good)}.read-chip.lv-n4{border-color:var(--mp);color:var(--mp)}.read-chip.lv-n3{color:#c79bff;border-color:#c79bff}.read-chip.lv-n2{color:#ff9b9b;border-color:#ff9b9b}textarea.read-input{resize:vertical;width:100%;min-height:120px;font-family:var(--font-ja);font-size:var(--fs-m);margin:8px 0}.read-mine{margin:8px 0 0;padding:0;list-style:none}.read-mine li{border-top:1px dashed #444;align-items:center;gap:8px;display:flex}.reader-title{font-size:var(--fs-l);color:var(--accent);margin:0;font-weight:400}.reader{flex-direction:column;gap:14px;display:flex}.read-para{align-items:flex-start;gap:8px;display:flex}.read-say{flex:none}.read-next{white-space:normal;text-align:left;max-width:100%}.read-body{flex:1;min-width:0}.read-ja{font-size:var(--fs-m);overflow-wrap:anywhere;margin:0;line-height:2.2}.tok.hl-n5{background:#6cf08a2e}.tok.hl-n4{background:#6cb8ff47}.tok.hl-n3{background:#c79bff52}.tok.hl-n2{background:#ff6eaa4d}.tok.hl-rare{background:#ffaa5052}.tok.learning{-webkit-text-decoration:underline dotted var(--accent);text-decoration:underline dotted var(--accent);text-underline-offset:6px}.tier-chips{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px;display:grid}.tier-chip{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:2px solid #444;border-radius:6px;flex-direction:column;align-items:center;gap:0;padding:4px 2px;line-height:1.3;display:flex}.tier-chip.on{color:var(--text);border-color:var(--accent)}.tier-chip.on.hl-n5{background:#6cf08a2e}.tier-chip.on.hl-n4{background:#6cb8ff47}.tier-chip.on.hl-n3{background:#c79bff52}.tier-chip.on.hl-n2{background:#ff6eaa4d}.tier-chip.on.hl-rare{background:#ffaa5052}.set-words{margin:4px 0 0;padding:0;list-style:none}.set-words li{border-bottom:1px dashed #444;align-items:center;gap:10px;padding:6px 0;display:flex}.set-words li:last-child{border-bottom:0}.set-word{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.chain-row{font-size:var(--fs-m);flex-wrap:wrap;gap:4px 8px;margin-top:8px;line-height:2;display:flex}.chain-word{white-space:nowrap}.chain-kana{font-size:var(--fs-l)}.chain-suggest{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px;display:flex}.chain-examples{flex-direction:column;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.chain-examples li{align-items:flex-start;gap:8px;display:flex}.chain-line{flex:1;min-width:0}.chain-ja{font-size:var(--fs-m);overflow-wrap:anywhere;margin:0;line-height:2}.chain-fixed{align-items:flex-start;gap:4px;margin-top:4px;display:flex}.chain-fixed>span{flex:none;line-height:48px}.chain-preview{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:4px 0 0;display:flex}.chain-romaji{color:var(--link)}.chain-note{margin-top:10px}.chain-note h3,h3.chain-note{margin:0;font-weight:400}h3.chain-note{margin-top:10px}.chain-note p{margin:2px 0 0;line-height:1.6}.chain-reasons{flex-direction:column;gap:4px;margin:2px 0 0;display:flex}.chain-reasons div{gap:8px;display:flex}.chain-reasons dt{min-width:6em;color:var(--muted);flex:none}.chain-reasons dd{flex:1;min-width:0;margin:0}.chain-history{flex-direction:column;gap:8px;margin:8px 0;padding-left:24px;display:flex}.read-chip.good{border-color:var(--good);color:var(--good)}.read-chip.bad{border-color:var(--bad);color:var(--bad)}.board{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.board li{border:2px solid #444;border-radius:4px;align-items:center;gap:10px;min-height:44px;padding:4px 8px;display:flex}.board li.me{border-color:var(--accent)}.board li.me .board-name>span:first-child{color:var(--accent)}.board-rank{text-align:right;min-width:2ch;color:var(--accent);flex:none}.board-name{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.board-points{flex:none}.friend-code{font-size:var(--fs-l);color:var(--accent);letter-spacing:2px}.rank-name{font-size:var(--fs-l);color:var(--accent)}.week-chart{margin:12px 0 0}.week-plot{border-top:1px solid #333;border-bottom:1px solid #666;align-items:end;height:140px;padding-top:18px;display:grid;position:relative}.week-top{position:absolute;top:2px;left:0}.week-col{cursor:default;outline:none;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.week-bar{background:var(--accent);border-radius:4px 4px 0 0;width:min(24px,60%)}.week-value{margin-bottom:2px}.week-col:hover:after,.week-col:focus-visible:after{content:attr(data-tip);white-space:nowrap;font-size:var(--fs-s);background:var(--win-bg);border:2px solid var(--win-border);z-index:2;border-radius:4px;padding:2px 6px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.week-col:focus-visible .week-bar{outline:2px solid var(--win-border);outline-offset:2px}.week-labels{text-align:center;margin-top:4px;display:grid}.equip-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 16px;display:grid}.shop-row{border-bottom:1px dashed #444;align-items:center;gap:12px;padding:8px 0;display:flex}.shop-row:last-child{border-bottom:0}.shop-actions{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.game-variants{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.game-variants .btn{flex-direction:column;align-items:flex-start;gap:0;min-width:92px;padding:6px 8px;line-height:1.3}.game-jump{flex-wrap:wrap;gap:6px;display:flex}.games .win{scroll-margin-top:24px}.rain-field{border:3px solid var(--win-border);border-radius:var(--win-radius);background:linear-gradient(#0b1030 0%,#1a1440 70%,#2a1d55 100%);height:340px;position:relative;overflow:hidden}@media (width>=720px){.rain-field{height:420px}}.rain-field.hurt{animation:.3s steps(4,end) screen-hit}.rain-drop{width:48px;height:48px;font-size:var(--fs-l);background:#000;border:2px solid #fff;border-radius:6px;justify-content:center;align-items:center;margin-left:-24px;display:flex;position:absolute}.rain-drop.target{border-color:var(--accent);color:var(--accent)}.rain-ground{background:repeating-linear-gradient(90deg,#5a3a1a 0 12px,#3a2410 12px 24px);height:10px;position:absolute;bottom:0;left:0;right:0}.rain-intro{z-index:2;text-align:center;background:#000000a6;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:16px;display:flex;position:absolute;inset:0}.rain-intro p{margin:0 0 8px}.match-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}@media (width>=600px){.match-grid{grid-template-columns:repeat(4,1fr)}}.match-card{text-align:center;border:3px solid var(--win-border);cursor:pointer;word-break:break-word;background:repeating-linear-gradient(45deg,#1a1440 0 8px,#241c55 8px 16px);border-radius:8px;justify-content:center;align-items:center;min-height:96px;padding:6px;display:flex}.match-card.up{background:#000}.match-card.done{border-color:var(--good);color:var(--good)}.match-card:focus-visible{outline:3px solid var(--accent)}.match-back{font-size:var(--fs-l);color:var(--accent)}.match-kana{font-size:var(--fs-l)}.match-word,.match-zh{font-size:var(--fs-m);line-height:1.4}.skill-rows{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none;display:flex}.skill-row{grid-template-columns:auto 1fr auto;align-items:center;gap:4px 10px;display:grid}.skill-char{font-size:var(--fs-m);text-align:center;width:1.2em}.skill-note{grid-column:2/4}.read-chip.lv-rare{color:#ffaa50;border-color:#ffaa50}.zukan-tiers{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.zukan-tiers li{align-items:center;gap:8px;min-height:28px;display:flex}.zukan-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.zukan-card{width:100%;min-height:56px;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:1px solid #555;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex}.zukan-card.known{border-color:var(--accent)}.zukan-card.learning{color:var(--muted);border-style:dashed}.zukan-card.new{border-style:dotted}.zukan-card.picked{outline:2px solid var(--accent);outline-offset:1px}.zukan-word{font-size:var(--fs-m);overflow-wrap:anywhere;text-align:center;line-height:1.2}.zukan-sheet{z-index:5;position:sticky;bottom:8px}.zukan-close{position:absolute;top:8px;right:8px}.zukan-detail{flex-direction:column;gap:4px;margin-top:8px;padding-right:48px;display:flex}.monster-btn{cursor:pointer;background:0 0;border:0;padding:0;line-height:0}.monster-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.sprite.silhouette path{fill:var(--muted);opacity:.35}.bestiary-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.bestiary-card{width:100%;min-height:120px;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:1px solid #555;border-radius:6px;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;padding:8px 4px;display:flex}.bestiary-card.defeated{border-color:var(--accent)}.bestiary-card.seen{border-style:dashed}.bestiary-card.unknown{border-style:dotted}.bestiary-name{font-size:var(--fs-s);text-align:center}.monster-info{margin-top:8px}.monster-desc{align-items:flex-start;gap:8px;margin-top:12px;line-height:2;display:flex}.monster-desc .sentence{flex:1}.time-limit{grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:4px 0;display:grid}.cmd.hard-stage .tag{color:var(--accent);border-color:var(--accent)}.achievements{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none;display:flex}.achievements li{grid-template-columns:auto 1fr auto;align-items:start;gap:10px;display:grid}.achievements li:not(.done) .achievement-body>span:first-child{color:var(--muted)}.achievement-body{flex-direction:column;gap:2px;min-width:0;display:flex}.achievement-name{flex-wrap:wrap;align-items:baseline;column-gap:12px;display:flex}.achievement-title{white-space:nowrap}.achievement-progress{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.medal{width:28px;height:28px;font-size:var(--fs-s);color:#1a1010;opacity:.35;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.achievements li.done .medal{opacity:1}.medal.bronze{background:#d08a4a}.medal.silver{background:#c8d0d8}.medal.gold{background:#ffd84a}.song-video{aspect-ratio:16/9;border:3px solid var(--win-border);border-radius:var(--win-radius);background:#000;width:100%;max-width:480px;margin:0 auto;overflow:hidden}.song-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.song-pick .sub{white-space:nowrap}.song-line{font-size:var(--fs-m);text-align:center;word-break:break-word;margin:8px 0 0;line-height:2.2}.song-line-hint{text-align:center;margin:8px 0 0}.song-blank{min-width:2.4em}.song-blank:not(.filled){color:var(--muted)}.song-blank:not(.filled):before{content:none}.song-blank.bad{color:var(--bad);border-bottom-color:var(--bad)}.song-inputs{flex-direction:column;gap:8px;margin-top:8px;display:flex}.song-inputs>.btn{align-self:flex-end}.song-input{align-items:center;gap:8px;display:flex}.song-input input.good{border-color:var(--good);color:var(--good)}.song-words{border-top:1px dashed var(--muted);flex-direction:column;gap:6px;margin:8px 0 0;padding:8px 0 0;list-style:none;display:flex}.song-words li{justify-content:space-between;align-items:center;gap:8px;display:flex}.song-words li>span:first-child{min-width:0}.dict-missed .song-line{text-align:left;margin:0}:root{--tabbar-h:62px}.tabbar{z-index:40;background:var(--win-bg);border-top:3px solid var(--win-border);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:120px;min-height:56px;font-size:var(--fs-s);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-icon{font-size:var(--fs-m);filter:grayscale();opacity:.7;line-height:1}.tab.on{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.tab.on .tab-icon{filter:none;opacity:1}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}body.with-tabs .page{padding-bottom:calc(var(--gutter) + var(--tabbar-h) + env(safe-area-inset-bottom))}body.with-tabs .toasts,body.with-tabs .update-banner{bottom:calc(16px + var(--tabbar-h) + env(safe-area-inset-bottom))}body.with-tabs .zukan-sheet,body.with-tabs .sync-bar{bottom:calc(8px + var(--tabbar-h) + env(safe-area-inset-bottom))}.quick-start{grid-template-columns:3fr 2fr;gap:8px;display:grid}.quick-start .btn{white-space:normal;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-height:60px}.game-filter{gap:6px}.skill-tags{vertical-align:middle;gap:4px;margin-left:8px;display:inline-flex}.skill-tag{border:1px solid var(--link);color:var(--link);border-radius:4px;padding:0 4px;line-height:1.4}.title-logo{font-size:var(--fs-xl);color:var(--accent);letter-spacing:2px;margin:0;font-weight:400}@media (width<=360px){.title-logo{font-size:var(--fs-l);letter-spacing:0}}.cmd-label{white-space:nowrap}.cmd .sub{text-align:right;min-width:0}.chapter-folded .stage-list{grid-template-columns:1fr}@media (height<=760px){.battle .field{height:180px;padding-bottom:10px}.battle .field .monster{transform-origin:50% 100%;scale:.68}}@media (height<=600px){.battle .field{height:140px;padding-bottom:6px}.battle .field .monster{scale:.52}}@media (height<=540px) and (width>=600px){.battle{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;max-width:960px;display:grid}.battle>*{grid-column:1}.battle>.question{grid-area:1/2/span 8}.battle .field{height:130px}.battle .field .monster{scale:.48}}.zukan-filter{gap:6px}.kanji-levels{flex-direction:column;gap:6px;display:flex}.kanji-level{min-width:24px}.battle-fx{pointer-events:none;width:100%;height:100%;image-rendering:pixelated;z-index:2;position:absolute;inset:0}.field .monster-name{z-index:3}.battle-fx.fx-screen{z-index:45;position:fixed;inset:0}.fx-note{border:1px dashed var(--muted);color:var(--muted);border-radius:4px;margin-bottom:4px;padding:6px 8px}.coming-soon{margin:8px 0 0;padding-left:1.5em;line-height:1.75}.karaoke-following{text-align:center;word-break:break-word;margin:4px 0 0}.karaoke-timer{background:#333;height:4px;margin-top:8px;overflow:hidden}.karaoke-timer>span{background:var(--accent);height:100%;animation:linear forwards karaoke-timer;display:block}@keyframes karaoke-timer{0%{width:100%}to{width:0}}.karaoke-view{flex-direction:column;gap:12px;min-height:280px;scroll-margin-top:calc(56.25vw + 24px);display:flex}@media (width>=900px){.karaoke-view{scroll-margin-top:16px}}.karaoke-now{text-align:center;flex-direction:column;justify-content:center;min-height:140px;display:flex}.karaoke-now .lyric-ja{font-size:var(--fs-m);line-height:2.4}.karaoke-now .tok{color:var(--accent)}.karaoke-now .lyric-romaji,.karaoke-now .lyric-zh{margin-top:4px}@media (width>=600px){.karaoke-now .lyric-ja{font-size:var(--fs-l);line-height:2.2}}.karaoke-intro{font-size:var(--fs-l);margin:0}.karaoke-progress{background:#333;border-radius:3px;height:6px;overflow:hidden}.karaoke-progress>span{background:var(--accent);height:100%;display:block}.karaoke-next{text-align:center}.karaoke-next p{font-size:var(--fs-m);word-break:break-word;line-height:1.6}.song-timing .row{gap:6px}.song-timing-value{text-align:center;min-width:4.5em}.song-timing-game{text-align:center;margin-top:8px}.song-timing-game .song-timing{margin-top:4px}.song-timing-game .song-timing .row{justify-content:center}.song-timing-hint{margin:4px 0 0}.song-timing-hint .link-btn{margin-left:8px}.donate-card{flex-direction:column;gap:8px;display:flex}.donate-qr{width:200px;height:200px;image-rendering:pixelated;background:#fff;border-radius:4px;margin:12px auto 4px;display:block}.donate-row{flex-wrap:nowrap;gap:8px}.donate-value{font-size:var(--fs-m);overflow-wrap:anywhere;min-width:0}.donate-steps{margin:4px 0 0;padding-left:20px;line-height:1.8}.donate-tip{margin:0}.mark-word{color:var(--accent);border-bottom:3px solid var(--accent);padding:0 2px}.feedback-field{flex-direction:column;gap:4px;margin-top:8px;display:flex}.feedback-field textarea,.feedback-field input{width:100%;font-size:var(--fs-m)}.feedback-list{flex-direction:column;gap:12px;margin:8px 0 0;padding:0;list-style:none;display:flex}.feedback-list li{border-top:1px solid #333;padding-top:8px}.feedback-message{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}.exam-stamp{font-size:var(--fs-l);border:3px solid;margin:8px 0 4px;padding:4px 16px;display:inline-block;transform:rotate(-6deg)}.exam-stamp.pass{color:var(--accent)}.exam-stamp.fail{color:var(--bad)}.exam-scores{gap:8px;margin:8px 0;display:grid}.exam-row-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.exam-score{white-space:nowrap}.exam-review{margin:8px 0;padding-left:24px}.exam-log{gap:6px;margin:8px 0;padding:0;list-style:none;display:grid}.exam-log .bar{flex:1;min-width:40px}.exam-review li{overflow-wrap:anywhere;margin-bottom:8px}.answers.veiled .answer{visibility:hidden}.veil-note{text-align:center;margin:8px 0 0}
