:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", system-ui, sans-serif;--font-pixel:"Press Start 2P", "DotGothic16", ui-monospace, Menlo, monospace;--font-dot:"DotGothic16", "Press Start 2P", ui-monospace, Menlo, monospace;--font-system-jp:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif;--font-display:var(--font-pixel);--font-mono:var(--font-pixel);--px:3px;--bg:#fff0f6;--bg-check:#ff69aa1a;--surface:#fffdf7;--surface-2:#fff3c2;--surface-3:#ffe1ee;--ink:#40163d;--muted:#7d5578;--line:#40163d;--shade:#ff9ac6;--track:#40163d24;--primary:#ff78b5;--primary-deep:#e04f93;--primary-ink:#40163d;--secondary:#ffd84d;--secondary-deep:#eeb21f;--secondary-ink:#40163d;--good:#74dfa3;--good-deep:#3fb878;--good-ink:#0d3a25;--good-text:#14774a;--bad:#ff8585;--bad-deep:#e25555;--bad-ink:#4a0d12;--bad-text:#bf2238;--accent-text:#cf1f76;--focus:#4aa8ff;--sky-top:#bfe6ff;--sky-bottom:#ffe6f1;--sprite-line:var(--line);--paper:var(--bg);--card:var(--surface);--card-bg:var(--surface);--accent:var(--accent-text);--accent-dark:var(--primary-deep);--accent-text-on:var(--primary-ink);--border:var(--track);--success:var(--good-text);--error:var(--bad-text);--error-text:#fff;--emerald:var(--good-text);--violet:#7a5cff;--radius:0px;--shadow:none}:root[data-palette=soda]{--bg:#e8f7ff;--bg-check:#3ca5ff1c;--surface:#fbfffd;--surface-2:#dcf8e2;--surface-3:#d6eeff;--ink:#10324f;--muted:#4a6b85;--line:#10324f;--shade:#7fcaf8;--track:#10324f24;--primary:#62c6ff;--primary-deep:#2f9fe6;--primary-ink:#0b2a45;--secondary:#b4f08a;--secondary-deep:#7fd053;--secondary-ink:#0b2a45;--good:#5fdcae;--good-deep:#2fb886;--good-ink:#05382a;--good-text:#0d7758;--bad:#ff8f8f;--bad-deep:#e25f5f;--bad-ink:#4a0d12;--bad-text:#b8243a;--accent-text:#0b68ad;--focus:#ff78b5;--sky-top:#bfe6ff;--sky-bottom:#e3fbe9;--violet:#5a6cff}:root[data-palette=mono]{--bg:#fff;--bg-check:#0000000e;--surface:#fff;--surface-2:#efefef;--surface-3:#e4e4e4;--ink:#111;--muted:#5c5c5c;--line:#111;--shade:#111;--track:#00000024;--primary:#111;--primary-deep:#000;--primary-ink:#fff;--secondary:#fff;--secondary-deep:#cfcfcf;--secondary-ink:#111;--good:#7fe0a8;--good-deep:#46b97a;--good-ink:#0d3a25;--good-text:#14774a;--bad:#ff8f8f;--bad-deep:#e25f5f;--bad-ink:#4a0d12;--bad-text:#b8243a;--accent-text:#111;--focus:#111;--sky-top:#f4f4f4;--sky-bottom:#fff;--violet:#5c5c5c}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#26102d;--bg-check:#ff78b50e;--surface:#3a1a45;--surface-2:#542a52;--surface-3:#4a2057;--ink:#ffeaf4;--muted:#d1a9c9;--line:#12051a;--shade:#12051a;--track:#ffeaf429;--good-text:#86e9b2;--bad-text:#ff9a9a;--accent-text:#ff94c6;--focus:#8fd3ff;--sky-top:#3b1f63;--sky-bottom:#5b2360;--violet:#b7a4ff}:root[data-theme=dark][data-palette=soda]{--bg:#0b2033;--bg-check:#62c6ff0d;--surface:#13314c;--surface-2:#1b4a52;--surface-3:#1a4063;--ink:#e8f7ff;--muted:#a3c4dc;--line:#030d17;--shade:#030d17;--track:#e8f7ff29;--good-text:#7fe6c0;--bad-text:#ff9a9a;--accent-text:#86d3ff;--focus:#ffd84d;--sky-top:#123a63;--sky-bottom:#1a5560}:root[data-theme=dark][data-palette=mono]{--bg:#0c0c0c;--bg-check:#ffffff0b;--surface:#161616;--surface-2:#272727;--surface-3:#303030;--ink:#f4f4f4;--muted:#b3b3b3;--line:#f4f4f4;--shade:#6b6b6b;--track:#ffffff2e;--primary:#f4f4f4;--primary-deep:#bdbdbd;--primary-ink:#111;--secondary:#2c2c2c;--secondary-deep:#111;--secondary-ink:#f4f4f4;--good-text:#86e9b2;--bad-text:#ff9a9a;--accent-text:#f4f4f4;--focus:#f4f4f4;--sky-top:#1c1c1c;--sky-bottom:#0c0c0c;--sprite-line:#0c0c0c}@media (min-width:900px){:root{--px:4px}}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;min-height:100vh;overflow-x:hidden}html{font-synthesis:none;-moz-text-size-adjust:100%;text-size-adjust:100%}body{color:var(--ink);background-color:var(--bg);background-image:linear-gradient(90deg, var(--bg-check) 50%, transparent 50%), linear-gradient(var(--bg-check) 50%, transparent 50%);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-size:24px 24px;font-weight:500;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a,label,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-weight:700;line-height:1.25}h1{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:0;font-size:clamp(1.15rem,4.4vw,1.75rem);font-weight:400;line-height:1.5}strong,b{font-weight:700}code{font-family:var(--font-dot);background:var(--surface-2);padding:0 5px}::selection{background:var(--secondary);color:var(--secondary-ink)}:focus-visible{outline:var(--px) solid var(--focus);outline-offset:calc(var(--px) * 2)}ruby rt{font-family:var(--font-dot);letter-spacing:.08em;color:var(--muted);font-size:.36em;font-weight:400}.sprite{vertical-align:middle;image-rendering:pixelated;flex-shrink:0;display:inline-block}.sprite-ink{--sprite-line:currentColor}:root[data-palette=mono] .sprite:not(.sprite-ink){filter:grayscale()contrast(1.15)}.mono{font-family:var(--font-dot);letter-spacing:.04em}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card,.hero-card,.question-card,.detail-card,.stats-card,.daily-goal,.panel,.tile,.kanji-detail-card,.dialog-card,.theme-menu{background:var(--surface);box-shadow:0 calc(var(--px) * -1) 0 0 var(--f,var(--line)), 0 var(--px) 0 0 var(--f,var(--line)), calc(var(--px) * -1) 0 0 0 var(--f,var(--line)), var(--px) 0 0 0 var(--f,var(--line)), var(--px) calc(var(--px) * 2) 0 0 var(--s,var(--shade)), calc(var(--px) * 2) var(--px) 0 0 var(--s,var(--shade)), calc(var(--px) * 2) calc(var(--px) * 2) 0 0 var(--s,var(--shade)), calc(var(--px) * 2) calc(var(--px) * 3) 0 0 var(--s,var(--shade)), calc(var(--px) * 3) calc(var(--px) * 2) 0 0 var(--s,var(--shade))}.detail-block,.inset,.rank-badge-progress,.learning-frontier-zone,.learning-frontier-milestone,.trouble-words-empty,.word-drawer-entry,.kanji-grid-grade-section,.notice{background:var(--surface-2);box-shadow:0 calc(var(--px) * -1) 0 0 var(--f,var(--surface-2)), 0 var(--px) 0 0 var(--f,var(--surface-2)), calc(var(--px) * -1) 0 0 0 var(--f,var(--surface-2)), var(--px) 0 0 0 var(--f,var(--surface-2))}.page{width:100%;max-width:1120px;padding:20px 18px 72px;padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right));padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:28px;margin:0 auto;display:flex}.page-narrow{flex-direction:column;gap:26px;width:100%;max-width:640px;margin:0 auto;display:flex}.nav{grid-template-columns:minmax(44px,1fr) minmax(0,auto);align-items:center;gap:12px;min-height:44px;display:grid;position:relative}.nav>:only-child{grid-column:1/-1}.logo{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:0;align-items:center;gap:10px;min-width:0;font-size:.85rem;font-weight:400;display:flex;overflow:hidden}a.logo{flex-wrap:wrap;align-content:flex-start;gap:40px 0;height:40px;padding-right:3px}.logo-mark{align-items:center;height:40px;animation:1.2s steps(2,jump-none) infinite bob;display:inline-flex}.logo-word,.logo-fun{white-space:nowrap}.logo-word{margin-left:10px}.logo-fun{color:var(--accent-text)}.logo-tag{margin:0 2px 0 12px}.logo-tag,.badge{font-family:var(--font-pixel);word-spacing:-.3em;text-transform:uppercase;letter-spacing:.04em;background:var(--secondary);color:var(--secondary-ink);box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);white-space:nowrap;padding:4px 7px 3px;font-size:.6rem;font-weight:400;line-height:1.3}.cta-row,.settings-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.nav>:last-child:not(:only-child):not(.btn){flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px 12px;min-width:0;display:flex}.btn,.btn-animated,.word-drawer-add-btn{--btn-face:var(--primary);--btn-deep:var(--primary-deep);--btn-ink:var(--primary-ink);min-height:44px;padding:9px 18px calc(9px + var(--px));background:var(--btn-face);color:var(--btn-ink);font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:0;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:inset 0 calc(var(--px) * -1) 0 0 var(--btn-deep), inset 0 var(--px) 0 0 #fff6, 0 calc(var(--px) * -1) 0 0 var(--line), 0 var(--px) 0 0 var(--line), calc(var(--px) * -1) 0 0 0 var(--line), var(--px) 0 0 0 var(--line), 0 calc(var(--px) * 2) 0 0 var(--line), calc(var(--px) * -1) var(--px) 0 0 var(--line), var(--px) var(--px) 0 0 var(--line);border:none;border-radius:0;justify-content:center;align-items:center;gap:8px;font-size:.75rem;font-weight:400;line-height:1.5;transition:transform 60ms step-end,filter 60ms step-end;display:inline-flex}@media (hover:hover){.btn:hover,.btn-animated:hover,.word-drawer-add-btn:hover:not(:disabled){filter:brightness(1.06)}}.btn:active,.btn-animated:active,.word-drawer-add-btn:active:not(:disabled){transform:translateY(var(--px));box-shadow:inset 0 var(--px) 0 0 #0000001f, 0 calc(var(--px) * -1) 0 0 var(--line), 0 var(--px) 0 0 var(--line), calc(var(--px) * -1) 0 0 0 var(--line), var(--px) 0 0 0 var(--line)}.btn.secondary,.btn-animated.secondary{--btn-face:var(--surface);--btn-deep:var(--surface-3);--btn-ink:var(--ink)}.btn.yellow{--btn-face:var(--secondary);--btn-deep:var(--secondary-deep);--btn-ink:var(--secondary-ink)}.btn.danger{--btn-face:var(--bad);--btn-deep:var(--bad-deep);--btn-ink:var(--bad-ink)}.btn.ghost-danger{--btn-face:var(--surface);--btn-deep:var(--surface-3);--btn-ink:var(--bad-text)}.btn.small,.nav .btn{min-height:40px;padding:6px 12px calc(6px + var(--px));font-size:.68rem}.btn.wide,.btn-animated.wide{width:100%}.btn:disabled,.btn-animated:disabled,.word-drawer-add-btn:disabled{cursor:not-allowed;filter:grayscale(.6)opacity(.6)}.btn .blink,.btn-animated .blink{animation:1s steps(2,jump-none) infinite blink}.theme-toggle,.sound-toggle,.icon-btn{background:var(--surface);min-width:40px;height:40px;color:var(--ink);cursor:pointer;font-family:var(--font-pixel);word-spacing:-.3em;box-shadow:0 calc(var(--px) * -1) 0 0 var(--line), 0 var(--px) 0 0 var(--line), calc(var(--px) * -1) 0 0 0 var(--line), var(--px) 0 0 0 var(--line);border:none;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:.6rem;display:inline-flex}@media (hover:hover){.theme-toggle:hover,.sound-toggle:hover,.icon-btn:hover{background:var(--secondary);color:var(--secondary-ink)}}.theme-toggle:active,.sound-toggle:active,.icon-btn:active{transform:translateY(2px)}.sound-toggle[aria-pressed=false]{color:var(--muted)}.theme-label{text-transform:uppercase;letter-spacing:.08em}.theme-picker{display:inline-flex;position:relative}.theme-swatch{box-shadow:0 0 0 2px var(--line);grid-template-rows:8px 8px;grid-template-columns:8px 8px;display:inline-grid}.theme-swatch i{display:block}.theme-menu{z-index:60;gap:12px;width:min(270px,100vw - 44px);padding:14px;animation:.14s steps(3,jump-none) pop-in;display:grid;position:absolute;top:calc(100% + 14px);right:0}.theme-menu-title{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.6rem}.theme-options{gap:8px;display:grid}.theme-options.row{grid-template-columns:repeat(3,1fr)}.theme-option{background:var(--surface);width:100%;min-height:40px;color:var(--ink);cursor:pointer;text-align:left;font-family:var(--font-pixel);word-spacing:-.3em;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);border:none;align-items:center;gap:10px;padding:6px 10px;font-size:.68rem;font-weight:400;display:flex}.theme-options.row .theme-option{justify-content:center;padding:6px 4px}.theme-option small{font-family:var(--font-body);word-spacing:normal;color:var(--muted);margin-left:auto;font-size:.74rem;font-weight:500}@media (hover:hover){.theme-option:hover{background:var(--surface-2)}}.theme-option[aria-checked=true]{background:var(--secondary);color:var(--secondary-ink)}.theme-option[aria-checked=true] small{color:inherit}.hero{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:30px;display:grid}.hero-copy{container-type:inline-size}.hero h1{font-size:clamp(1.25rem,7.6cqi,3rem);line-height:1.5}.hero h1 .hl{background:linear-gradient(transparent 62%, var(--secondary) 62%)}.hero p{color:var(--muted);max-width:560px;font-size:1.05rem}.hero-kicker{font-family:var(--font-dot);color:var(--accent-text);align-items:center;gap:8px;margin-bottom:12px;font-size:.95rem;display:inline-flex}.hero-copy p{margin-top:16px}.hero-copy .cta-row{margin-top:24px}.hero-card{padding:22px}.scene{background:linear-gradient(var(--sky-top), var(--sky-bottom));border-bottom:var(--px) solid var(--line);height:96px;margin:-22px -22px 18px;position:relative;overflow:hidden}.scene .cloud{animation:26s linear infinite drift;position:absolute}.scene .cloud.c1{animation-delay:-9s;top:12px;left:-70px}.scene .cloud.c2{opacity:.9;animation-duration:38s;animation-delay:-15s;top:40px;left:-70px}.scene .scene-star{animation:1.6s steps(2,jump-none) infinite twinkle;position:absolute;top:14px;right:20px}.scene .scene-mascot{animation:1.4s steps(2,jump-none) infinite hop;position:absolute;bottom:0;left:22px}.scene .scene-ground{background:repeating-linear-gradient(90deg, var(--good-deep) 0 6px, var(--good) 6px 12px);border-top:3px solid var(--line);height:9px;position:absolute;bottom:0;left:0;right:0}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;display:grid}.card{padding:18px}.card h3{font-family:var(--font-pixel);word-spacing:-.3em;margin-bottom:6px;font-size:.8rem;font-weight:400;line-height:1.5}.card h3 a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.card p{font-size:.95rem}.feature{grid-template-columns:auto 1fr;align-items:start;gap:14px;display:grid}.feature .sprite{margin-top:2px}.card-label,.section-label{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:.6rem;font-weight:400;line-height:1.5}.section-title{font-family:var(--font-pixel);word-spacing:-.3em;align-items:center;gap:10px;font-size:.9rem;font-weight:400;display:flex}.stat-row{flex-wrap:wrap;gap:12px;display:flex}.stat{background:var(--surface-2);padding:10px 14px}.footer-note{color:var(--muted);font-size:.88rem}.footer-note a{text-underline-offset:3px;text-decoration:underline}.trainer-shell{gap:28px;width:100%;max-width:1120px;margin:0 auto;display:grid}.trainer-two{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);align-items:start}.trainer-two .question-card{grid-area:1/1}.trainer-two .detail-card{grid-area:1/2}.trainer-center{grid-template-columns:minmax(0,1fr);justify-items:center}.trainer-center .question-card{width:100%;max-width:640px}.question-card{padding:30px}.question-card h2,.question-prompt{font-family:var(--font-body);overflow-wrap:anywhere;font-size:clamp(1.5rem,5.2vw,2.1rem);font-weight:700;line-height:1.35}.question-card h2.pixel-title{font-family:var(--font-pixel);word-spacing:-.3em;font-size:clamp(1rem,4vw,1.3rem);font-weight:400;line-height:1.5}.card-enter{animation:.18s steps(3,jump-none) pop-in}.summary-emoji{justify-content:center;animation:1s steps(2,jump-none) infinite hop;display:flex}.summary-stat{animation:.2s steps(3,jump-none) both pop-in}.question-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.question-meta.wrap{flex-wrap:wrap}.question-meta-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.question-type{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;background:var(--ink);color:var(--surface);padding:5px 8px 4px;font-size:.6rem;font-weight:400;line-height:1.3}.flag-btn{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:-8px -8px -8px 0;display:inline-flex}@media (hover:hover){.flag-btn:hover:not(:disabled){color:var(--ink)}}.flag-btn:disabled{cursor:default}.flag-btn.flagged{color:var(--bad-text)}.flag-btn .sprite{--sprite-line:currentColor}.choices{gap:calc(10px + var(--px) * 2);margin-top:22px;display:grid}.choices:focus{outline:none}.choice,.choice-animated,.option{background:var(--surface);width:100%;min-height:52px;color:var(--ink);font-family:var(--font-body);text-align:left;cursor:pointer;overflow-wrap:anywhere;box-shadow:0 calc(var(--px) * -1) 0 0 var(--line), 0 var(--px) 0 0 var(--line), calc(var(--px) * -1) 0 0 0 var(--line), var(--px) 0 0 0 var(--line), var(--px) calc(var(--px) * 2) 0 0 var(--s,var(--shade)), calc(var(--px) * 2) var(--px) 0 0 var(--s,var(--shade));border:none;border-radius:0;align-items:baseline;padding:12px 14px;font-size:1.05rem;font-weight:500;line-height:1.45;display:flex}@media (hover:hover){.choice:hover:not(:disabled),.choice-animated:hover:not(:disabled),.option:hover:not(:disabled){background:var(--surface-2)}}.choice:active:not(:disabled),.choice-animated:active:not(:disabled),.option:active:not(:disabled){box-shadow:0 calc(var(--px) * -1) 0 0 var(--line), 0 var(--px) 0 0 var(--line), calc(var(--px) * -1) 0 0 0 var(--line), var(--px) 0 0 0 var(--line)}.choice-animated:disabled{cursor:default}.choice-key{background:var(--secondary);width:24px;height:24px;color:var(--secondary-ink);font-family:var(--font-pixel);word-spacing:-.3em;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;margin:1px 12px 0 0;font-size:.65rem;font-weight:400;line-height:1;display:inline-flex}.choice-body{flex-direction:column;gap:3px;min-width:0;display:flex}.choice-note{opacity:.85;font-size:.84rem}.choice-dim{opacity:.55}.choice-correct,.choice-reveal-correct,.choice-correct:hover:not(:disabled),.choice-reveal-correct:hover:not(:disabled){background:var(--good);color:var(--good-ink);--s:var(--good-deep)}.choice-incorrect,.choice-incorrect:hover:not(:disabled){background:var(--bad);color:var(--bad-ink);--s:var(--bad-deep)}.choice-correct .choice-key,.choice-reveal-correct .choice-key,.choice-incorrect .choice-key{background:var(--surface);color:var(--ink)}.choice-correct{animation:.24s steps(3,jump-none) nudge-up}.choice-incorrect{animation:.24s steps(4,jump-none) shake}.option{justify-content:space-between;align-items:center;gap:12px}.option .option-note{color:var(--muted);text-align:right;font-size:.86rem}.option[aria-pressed=true]{background:var(--secondary);color:var(--secondary-ink);font-weight:700}.option[aria-pressed=true] .option-note{color:inherit;font-weight:500}.option-list{gap:calc(8px + var(--px) * 2);display:grid}.slot-chip{font-family:var(--font-dot);letter-spacing:.02em;background:var(--surface-3);color:var(--ink);white-space:nowrap;padding:1px 8px;font-size:.8rem;font-weight:400}.slot-relearn,.slot-relearn-early{background:var(--primary);color:var(--primary-ink)}.slot-building-block,.slot-foundation{background:var(--good);color:var(--good-ink)}.slot-because{color:var(--muted);margin-top:10px;font-size:.86rem}.prompt-wrap{margin-top:14px}.question-prompt.prompt-sentence{font-size:clamp(1.3rem,4.6vw,1.8rem);line-height:1.6}.prompt-target{background:linear-gradient(transparent 68%, var(--secondary) 68%);color:inherit;padding:0 1px;font-weight:700}.prompt-blank{background:var(--secondary);color:var(--secondary-ink);letter-spacing:.05em;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);padding:0 4px}.prompt-ask{color:var(--muted);margin-top:10px;font-size:1.02rem;line-height:1.5}.prompt-ask-gloss{font-size:.9rem}.gloss-hint{color:var(--muted);margin-top:8px}.gloss-tip{font-family:var(--font-dot);color:var(--muted);border-bottom:2px dotted var(--muted);cursor:help;font-size:.8rem}.dont-know{margin-top:calc(14px + var(--px) * 2);border:var(--px) dashed var(--muted);width:100%;min-height:46px;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:.95rem;font-weight:500;display:flex}@media (hover:hover){.dont-know:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--surface-2)}}.dont-know .mono{opacity:.7;border:2px solid;padding:0 5px;font-size:.78rem;line-height:1.3}.feedback{margin-top:22px}.feedback-verdict{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:0;align-items:center;gap:10px;font-size:1.05rem;font-weight:400;line-height:1.5;display:inline-flex}.feedback-verdict.good{color:var(--good-text)}.feedback-verdict.bad{color:var(--bad-text)}.feedback-verdict .sprite{animation:.8s steps(2,jump-none) infinite twinkle}.feedback-verdict .sprite.coin-pop{animation:.42s steps(6,jump-none) coin-pop}.feedback-answer{margin-top:8px;font-size:1.05rem}.feedback-answer strong{color:var(--good-text)}.feedback-next{color:var(--muted);margin-top:8px}.rating-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.rating-buttons .btn-animated{flex:auto;min-width:70px;max-width:120px}.hud{gap:10px;display:grid}.hud-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 10px;display:flex}.hud-label{white-space:nowrap;font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;font-size:.7rem;font-weight:400}.hud-right{font-family:var(--font-pixel);word-spacing:-.3em;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 12px;margin-left:auto;font-size:.7rem;display:flex}.hud-coins{align-items:center;gap:5px;font-weight:400;display:inline-flex}.hud-count{color:var(--muted)}.pips{gap:5px;height:14px;padding:0 2px;display:flex}.pip{background:var(--surface);box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);flex:1}.pip.right{background:var(--good)}.pip.wrong{background:var(--bad)}.pip.now{background:var(--secondary);animation:1s steps(2,jump-none) infinite blink-soft}.streak-counter{background:var(--secondary);color:var(--secondary-ink);font-family:var(--font-pixel);word-spacing:-.3em;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);align-items:center;gap:5px;padding:4px 8px 3px 6px;font-size:.65rem;font-weight:400;display:inline-flex}.streak-fire{display:inline-flex}.streak-count{font-size:.7rem}.streak-label{letter-spacing:0;text-transform:uppercase;font-size:.5rem}.daily-goal{padding:14px 16px 16px}.daily-goal-header{font-family:var(--font-pixel);word-spacing:-.3em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;margin-bottom:10px;display:flex}.daily-goal-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:.6rem;font-weight:400;display:inline-flex}.daily-goal-count{font-size:.7rem;font-weight:400}.daily-goal-track,.bar-track,.rank-badge-progress-track,.learning-frontier-milestone-track,.skill-radar-item-bar,.kanji-grid-progress-bar{background:var(--surface);height:12px;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);margin:2px;overflow:hidden}.daily-goal-fill,.bar-fill,.rank-badge-progress-fill,.learning-frontier-milestone-fill,.skill-radar-item-bar-fill{background:repeating-linear-gradient(90deg, var(--primary) 0 9px, var(--primary-deep) 9px 12px);height:100%}.daily-goal-fill,.rank-badge-progress-fill,.bar-fill.good{background:repeating-linear-gradient(90deg, var(--good) 0 9px, var(--good-deep) 9px 12px)}.daily-goal-complete{text-align:center;font-family:var(--font-pixel);word-spacing:-.3em;color:var(--good-text);margin-top:10px;font-size:.7rem;font-weight:400}.detail-card{gap:calc(14px + var(--px) * 2);flex-direction:column;padding:26px;display:flex}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.detail-head h2{font-family:var(--font-body);font-size:clamp(1.9rem,6vw,2.6rem);font-weight:700;line-height:1.5}.detail-head .mono{font-family:var(--font-dot);color:var(--muted)}.detail-block{overflow-wrap:anywhere;margin:0 var(--px);padding:13px 14px;line-height:1.6}.detail-block .mono{color:var(--muted);font-size:.8rem}.detail-block.why{background:var(--surface-3);--f:var(--surface-3)}.detail-block.why .mono{color:var(--bad-text)}.detail-source{color:var(--muted);margin-top:8px;font-size:.82rem}.detail-translation{color:var(--muted);margin-top:4px;font-size:.9rem}.chip{background:var(--surface);box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);padding:2px 9px;font-size:.86rem;display:inline-block}.chip.quiet{font-family:var(--font-dot);color:var(--muted);font-size:.78rem}.chips{flex-wrap:wrap;gap:10px;padding:2px;display:flex}.disclosure{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;min-height:32px;padding:0;display:flex}.disclosure .caret{color:var(--muted);transition:transform 80ms steps(2,end);display:inline-flex}.disclosure[aria-expanded=true] .caret{transform:rotate(90deg)}.kanji-row{background:var(--surface);align-items:flex-start;gap:12px;padding:8px 10px;display:flex}.kanji-row-char{text-align:center;min-width:40px;font-size:1.6rem;font-weight:700;line-height:1.3}.reading-row{align-items:center;gap:12px;padding:8px;display:flex}.reading-row.current{background:var(--surface)}.tiles{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;display:grid}.tiles.two{grid-template-columns:1fr 1fr}.tile{text-align:center;padding:14px 10px}.tile-number{font-family:var(--font-pixel);word-spacing:-.3em;font-size:1.25rem;font-weight:400;line-height:1.3}.tile-number.good{color:var(--good-text)}.tile-number.bad{color:var(--bad-text)}.tile-label{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:.5rem;line-height:1.6}.big-number{font-family:var(--font-pixel);word-spacing:-.3em;font-size:clamp(1.6rem,8vw,2.5rem);font-weight:400;line-height:1.3}.dialog-backdrop{z-index:1000;background:#14061a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dialog-card{width:100%;max-width:520px;max-height:calc(100vh - 40px);padding:18px;overflow-y:auto}.dialog-option{background:var(--surface-2);cursor:pointer;align-items:flex-start;gap:10px;padding:10px;display:flex}.dialog-option strong{display:block}.dialog-option span span{color:var(--muted);font-size:.85rem;display:block}input[type=text],input[type=number],input[type=search],input:not([type]),select,textarea,.field{border:var(--px) solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);border-radius:0;padding:8px 12px;font-size:1rem}input[type=checkbox],input[type=radio]{appearance:none;border:var(--px) solid var(--line);background:var(--surface);cursor:pointer;border-radius:0;flex-shrink:0;width:22px;height:22px;margin:2px 0 0;position:relative}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--secondary)}input[type=checkbox]:checked:after,input[type=radio]:checked:after{content:"";background:var(--line);position:absolute;inset:3px}input[type=checkbox]:checked:after{clip-path:polygon(0 50%,20% 30%,40% 50%,80% 10%,100% 30%,40% 90%);inset:2px}input[type=file]{max-width:100%;font-size:.9rem}input[type=file]::file-selector-button{border:var(--px) solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--font-pixel);word-spacing:-.3em;cursor:pointer;border-radius:0;margin-right:10px;padding:8px 12px;font-size:.65rem;font-weight:400}.panel{padding:20px}.panel.danger{--f:var(--bad-deep);--s:var(--bad)}.panel p{font-size:.92rem}.panel-title{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;font-size:.7rem;font-weight:400;line-height:1.5}.panel.danger .panel-title{color:var(--bad-text)}.panel-help{color:var(--muted);margin-bottom:14px}.notice{margin:0 var(--px);padding:10px 14px}.notice.bad{background:var(--bad);color:var(--bad-ink);--f:var(--bad)}.switch-row{background:var(--surface-2);justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:12px 14px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.center{text-align:center}.spinner{background:var(--secondary);width:36px;height:36px;box-shadow:0 -3px 0 0 var(--line), 0 3px 0 0 var(--line), -3px 0 0 0 var(--line), 3px 0 0 0 var(--line);animation:.7s steps(2,jump-none) infinite block-bump;position:relative}.spinner:after{content:"?";font-family:var(--font-pixel);word-spacing:-.3em;color:var(--secondary-ink);justify-content:center;align-items:center;font-size:1rem;font-weight:400;line-height:1;display:flex;position:absolute;inset:0}.loading-stage{min-height:50vh;font-family:var(--font-pixel);word-spacing:-.3em;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:22px;font-size:.7rem;display:flex}.skeleton{background:var(--track);animation:1s steps(2,jump-none) infinite blink-soft}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.stats-card-header{border-bottom:var(--px) solid var(--line);padding:16px 20px}.stats-card-title{font-family:var(--font-pixel);word-spacing:-.3em;font-size:.7rem;font-weight:400}.stats-card-foot{color:var(--muted);padding:0 20px 18px;font-size:.88rem}.kv{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.kv .mono{font-weight:700}.num-lg{font-family:var(--font-pixel);word-spacing:-.3em;font-size:1.15rem;font-weight:400;line-height:1.4}.num-md{font-family:var(--font-pixel);word-spacing:-.3em;font-size:.9rem;font-weight:400;line-height:1.4}.small-muted{color:var(--muted);font-size:.86rem}.activity-row{border-bottom:2px dashed var(--track);align-items:center;gap:10px;padding:8px 0;font-size:.9rem;display:flex}.activity-row:last-child{border-bottom:none}.activity-dot{background:var(--bad);width:10px;height:10px;box-shadow:0 0 0 2px var(--line);flex-shrink:0}.activity-dot.right{background:var(--good)}.activity-word{overflow-wrap:anywhere;min-width:0;font-weight:700}.activity-word span{color:var(--muted);font-weight:500}.activity-type{font-family:var(--font-dot);color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.75rem}.activity-time{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:.78rem}.kanken-gauge,.rank-badge,.learning-frontier,.grade-comparison,.activity-heatmap,.trouble-words,.skill-radar,.kanji-grid,.freq-spectrum{padding:20px}.kanken-gauge-title,.rank-badge-label,.learning-frontier-title,.activity-heatmap-title,.trouble-words-title,.skill-radar-title,.freq-spectrum-title,.grade-comparison-label,.grade-comparison-prefix{font-family:var(--font-pixel);word-spacing:-.3em;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.6rem;font-weight:400;line-height:1.6}.kanken-gauge-header{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.kanken-gauge-level{font-family:var(--font-dot);color:var(--accent-text);font-size:1.7rem}.kanken-gauge-track{background:var(--surface);height:14px;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);margin:0 2px 8px;position:relative}.kanken-gauge-confidence{background:var(--secondary);height:100%;position:absolute;top:0}.kanken-gauge-marker{background:var(--primary);z-index:1;width:16px;height:28px;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);position:absolute;top:-7px;transform:translate(-50%)}.kanken-gauge-tick{background:var(--track);width:2px;height:100%;position:absolute;top:0;transform:translate(-50%)}.kanken-gauge-labels{height:22px;margin-top:10px;position:relative}.kanken-gauge-label{font-family:var(--font-dot);color:var(--muted);white-space:nowrap;font-size:.72rem;position:absolute;transform:translate(-50%)}.kanken-gauge-confidence-text{color:var(--muted);text-align:center;margin-top:12px;font-size:.82rem}.rank-badge{text-align:center}.rank-badge-header{margin-bottom:8px}.rank-badge-title-container{margin-bottom:12px}.rank-badge-title{font-family:var(--font-dot);color:var(--accent-text);font-size:2.1rem;line-height:1.2;display:block}.rank-badge-reading{font-family:var(--font-dot);color:var(--muted);font-size:.85rem;display:block}.rank-badge-count{margin-bottom:16px}.rank-badge-number{font-family:var(--font-pixel);word-spacing:-.3em;font-size:1.15rem;font-weight:400}.rank-badge-suffix{color:var(--muted);font-size:.82rem;display:block}.rank-badge-progress{margin:0 var(--px);padding:12px}.rank-badge-progress-header,.learning-frontier-milestone-header{justify-content:space-between;margin-bottom:8px;font-size:.82rem;display:flex}.rank-badge-max,.learning-frontier-max{color:var(--good-text);text-align:center;font-weight:700}.learning-frontier-header{margin-bottom:16px}.learning-frontier-zone{margin:0 var(--px) calc(14px + var(--px) * 2);padding:18px}.learning-frontier-range{font-family:var(--font-dot);justify-content:center;align-items:center;gap:12px;margin-bottom:8px;font-size:1.2rem;display:flex}.learning-frontier-current{color:var(--accent-text);font-size:1.8rem}.learning-frontier-low,.learning-frontier-high,.learning-frontier-arrow{color:var(--muted)}.learning-frontier-description{color:var(--muted);text-align:center;font-size:.82rem}.learning-frontier-milestone{margin:0 var(--px);background:var(--surface-3);--f:var(--surface-3);padding:12px}.grade-comparison{text-align:center}.grade-comparison-main{margin-bottom:16px}.grade-comparison-prefix{margin-bottom:6px;display:block}.grade-comparison-grade{font-family:var(--font-dot);color:var(--good-text);font-size:1.9rem;display:block}.grade-comparison-details{justify-content:center;gap:28px;display:flex}.grade-comparison-item{text-align:center}.grade-comparison-label{margin-bottom:2px;display:block}.grade-comparison-value{font-family:var(--font-dot);font-size:1.05rem}.activity-heatmap-header,.trouble-words-header,.skill-radar-header{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.activity-heatmap-stats{color:var(--muted);font-size:.8rem}.activity-heatmap-container{gap:6px;display:flex}.activity-heatmap-day-labels{flex-direction:column;flex-shrink:0;gap:3px;display:flex}.activity-heatmap-day-label{font-family:var(--font-dot);color:var(--muted);height:12px;font-size:.62rem;line-height:12px}.activity-heatmap-grid{gap:3px;padding-bottom:4px;display:flex;overflow-x:auto}.activity-heatmap-week{flex-direction:column;flex-shrink:0;gap:3px;display:flex}.activity-heatmap-month-label{font-family:var(--font-dot);color:var(--muted);white-space:nowrap;width:0;height:12px;font-size:.62rem;line-height:12px;overflow:visible}.activity-heatmap-cell{background:var(--track);width:12px;height:12px}.activity-heatmap-cell.intensity-0{background:var(--track)}.activity-heatmap-cell.intensity-1{background:color-mix(in srgb, var(--primary) 35%, var(--surface))}.activity-heatmap-cell.intensity-2{background:color-mix(in srgb, var(--primary) 65%, var(--surface))}.activity-heatmap-cell.intensity-3{background:var(--primary)}.activity-heatmap-cell.intensity-4{background:var(--primary-deep)}.activity-heatmap-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;margin-top:12px;font-size:.72rem;display:flex}.activity-heatmap-legend .activity-heatmap-cell{flex-shrink:0;width:10px;height:10px}.trouble-words-count{font-family:var(--font-pixel);word-spacing:-.3em;color:var(--bad-text);font-size:.6rem;font-weight:400}.trouble-words-empty{text-align:center;color:var(--good-text);margin:0 var(--px);padding:18px}.trouble-words-list{flex-direction:column;gap:8px;display:flex}.trouble-word-item{background:var(--surface-2);align-items:center;gap:12px;padding:10px 12px;display:flex}.trouble-word-item.urgency-critical{background:var(--surface-3)}.trouble-word-urgency{background:var(--good);width:12px;height:12px;box-shadow:0 0 0 2px var(--line);flex-shrink:0}.urgency-critical .trouble-word-urgency{background:var(--bad)}.urgency-warning .trouble-word-urgency{background:var(--secondary)}.trouble-word-info{flex:1;min-width:0}.trouble-word-lemma{font-size:1rem;font-weight:700}.trouble-word-reading{color:var(--muted);margin-left:4px;font-size:.8rem}.trouble-word-status{text-align:right}.trouble-word-due{font-size:.8rem;font-weight:700;display:block}.trouble-word-item.urgency-critical .trouble-word-due{color:var(--bad-text)}.trouble-word-retrievability{color:var(--muted);font-size:.72rem;display:block}.skill-radar-overall{font-family:var(--font-pixel);word-spacing:-.3em;color:var(--accent-text);font-size:.7rem;font-weight:400}.skill-radar-empty{text-align:center;color:var(--muted);padding:20px}.skill-radar-list{flex-direction:column;gap:16px;display:flex}.skill-radar-item{flex-direction:column;gap:8px;display:flex}.skill-radar-item-header{justify-content:space-between;align-items:baseline;display:flex}.skill-radar-item-label{font-size:.92rem;font-weight:700}.skill-radar-item-accuracy{font-family:var(--font-pixel);word-spacing:-.3em;color:var(--accent-text);font-size:.7rem;font-weight:400}.skill-radar-item-bar-container{position:relative}.skill-radar-item-footer{justify-content:space-between;align-items:center;display:flex}.skill-radar-item-attempts{color:var(--muted);font-size:.72rem}.skill-radar-item-volume{background:var(--track);width:60px;height:4px;overflow:hidden}.skill-radar-item-volume-fill{background:var(--muted);height:100%}.skill-radar-legend{border-top:2px dashed var(--track);justify-content:center;gap:16px;margin-top:16px;padding-top:12px;display:flex}.skill-radar-legend-item{color:var(--muted);align-items:center;gap:6px;font-size:.72rem;display:flex}.skill-radar-legend-bar{width:20px;height:6px}.skill-radar-legend-bar.accuracy{background:var(--primary)}.skill-radar-legend-bar.volume{background:var(--muted)}.kanji-grid-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.kanji-grid-title{font-family:var(--font-pixel);word-spacing:-.3em;font-size:.8rem;font-weight:400}.kanji-grid-stats{color:var(--muted);font-size:.86rem}.kanji-grid-empty{text-align:center;color:var(--muted);padding:32px}.kanji-grid-progress{margin-bottom:16px}.kanji-grid-progress-bar{display:flex}.kanji-grid-progress-fill{height:100%}.kanji-grid-progress-fill.mastery-4{background:var(--good)}.kanji-grid-progress-fill.mastery-2{background:var(--secondary)}.kanji-grid-progress-labels{justify-content:space-between;margin-top:8px;font-size:.72rem;display:flex}.mastery-label-4{color:var(--good-text)}.mastery-label-2{color:var(--accent-text)}.mastery-label-0{color:var(--muted)}.kanji-grid-filter{flex-wrap:wrap;gap:10px;margin-bottom:18px;padding:2px;display:flex}.kanji-grid-filter-btn{background:var(--surface);min-height:32px;color:var(--ink);font-family:var(--font-dot);cursor:pointer;box-shadow:0 -2px 0 0 var(--line), 0 2px 0 0 var(--line), -2px 0 0 0 var(--line), 2px 0 0 0 var(--line);border:none;border-radius:0;padding:2px 10px;font-size:.8rem}@media (hover:hover){.kanji-grid-filter-btn:hover{background:var(--surface-2)}}.kanji-grid-filter-btn.active{background:var(--primary);color:var(--primary-ink)}.kanji-grid-grades{gap:calc(14px + var(--px) * 2);max-height:420px;padding:var(--px);flex-direction:column;display:flex;overflow-y:auto}.kanji-grid-grade-section{margin:0 var(--px);background:var(--surface);--f:var(--track);padding:12px}.kanji-grid-grade-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.kanji-grid-grade-label{font-family:var(--font-dot);font-size:.95rem}.kanji-grid-grade-count{color:var(--muted);font-size:.75rem}.kanji-grid-cells{flex-wrap:wrap;gap:4px;display:flex}.kanji-cell{font-family:var(--font-system-jp);cursor:pointer;border-radius:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.95rem;display:flex}@media (hover:hover){.kanji-cell:hover{outline:2px solid var(--line);z-index:10}}.kanji-cell.mastery-0,.kanji-grid-legend-cell.mastery-0{background:var(--track);color:var(--muted)}.kanji-cell.mastery-1,.kanji-grid-legend-cell.mastery-1{background:var(--bad);color:var(--bad-ink)}.kanji-cell.mastery-2,.kanji-grid-legend-cell.mastery-2{background:var(--secondary);color:var(--secondary-ink)}.kanji-cell.mastery-3,.kanji-grid-legend-cell.mastery-3{color:#0b2a45;background:#8fd3ff}.kanji-cell.mastery-4,.kanji-grid-legend-cell.mastery-4{background:var(--good);color:var(--good-ink)}.kanji-detail-overlay{z-index:100;background:#14061a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.kanji-detail-card{min-width:min(280px,100%);max-width:90vw;padding:24px;position:relative}.kanji-detail-close,.word-drawer-close{width:40px;height:40px;font-family:var(--font-pixel);word-spacing:-.3em;color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1rem;line-height:1;position:absolute;top:8px;right:8px}@media (hover:hover){.kanji-detail-close:hover,.word-drawer-close:hover{color:var(--ink)}}.kanji-detail-char{text-align:center;margin-bottom:12px;font-size:4rem;font-weight:700;line-height:1.2}.kanji-detail-info{flex-direction:column;gap:10px;display:flex}.kanji-detail-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.kanji-detail-label{color:var(--muted);font-size:.875rem}.kanji-detail-value{font-size:.875rem;font-weight:700}.kanji-detail-value.mastery-0{color:var(--muted)}.kanji-detail-value.mastery-1{color:var(--bad-text)}.kanji-detail-value.mastery-2{color:var(--accent-text)}.kanji-detail-value.mastery-3{color:var(--violet)}.kanji-detail-value.mastery-4{color:var(--good-text)}.kanji-grid-legend{border-top:2px dashed var(--track);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding-top:12px;display:flex}.kanji-grid-legend-label{color:var(--muted);font-size:.75rem}.kanji-grid-legend-item{color:var(--muted);align-items:center;gap:5px;font-size:.72rem;display:flex}.kanji-grid-legend-cell{width:14px;height:14px}.freq-spectrum-header{margin-bottom:12px}.freq-spectrum-subtitle{margin-top:4px;font-size:.9rem}.freq-spectrum-svg{width:100%;height:auto;display:block}.freq-spectrum-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:16px;margin-top:8px;font-size:.72rem;display:flex}.freq-spectrum-legend-item{align-items:center;gap:4px;display:flex}.freq-spectrum-legend-swatch{width:12px;height:8px;display:inline-block}.prompt-source{color:var(--muted);margin-top:4px;font-size:.74rem}.feedback-here{background:var(--surface-2);border-left:calc(var(--px) * 2) solid var(--secondary-deep);margin-top:12px;padding:12px 14px}.feedback-here-label{font-family:var(--font-pixel);word-spacing:-.3em;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.58rem}.feedback-here-meaning{font-size:1.05rem;line-height:1.6}.detail-block.explain{gap:10px;display:grid}.explain-definition{font-size:1.12rem;font-weight:700;line-height:1.75}.explain-gloss,.explain-note{color:var(--muted);font-size:.92rem}.explain-hint{color:var(--muted);font-size:.8rem}.explain-line{border-top:2px dashed var(--track);flex-wrap:wrap;align-items:center;gap:8px 12px;padding-top:10px;display:flex}.explain-label{font-family:var(--font-dot);color:var(--muted);white-space:nowrap;font-size:.8rem}.explain-words{font-weight:700}.new-word{background:linear-gradient(transparent 58%, var(--primary) 58%);border-bottom:none;padding:0 1px;font-weight:700}.clickable-word{border-bottom:2px dotted var(--muted);cursor:pointer}@media (hover:hover){.clickable-word:hover{background:var(--secondary);color:var(--secondary-ink)}}.word-drawer-backdrop{z-index:200;background:#14061a80;position:fixed;inset:0}.word-drawer{background:var(--surface);border-top:var(--px) solid var(--line);max-height:64vh;padding:14px 20px 24px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:201;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.word-drawer-handle{background:var(--track);width:48px;height:6px;margin:0 auto 14px}.word-drawer-header{margin-bottom:16px}.word-drawer-word{font-size:1.6rem;font-weight:700}.word-drawer-status{justify-content:center;padding:24px;display:flex}.word-drawer-not-found{text-align:center;color:var(--muted);padding:24px;font-size:.95rem}.word-drawer-entries{gap:calc(12px + var(--px) * 2);padding:var(--px);flex-direction:column;display:flex}.word-drawer-entry{padding:14px}.word-drawer-entry-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.word-drawer-lemma{font-size:1.2rem;font-weight:700}.word-drawer-reading{font-family:var(--font-dot);color:var(--muted);font-size:.95rem}.word-drawer-pos{font-family:var(--font-dot);background:var(--surface);color:var(--muted);padding:1px 8px;font-size:.75rem}.word-drawer-definition{margin-bottom:4px;line-height:1.55}.word-drawer-gloss{color:var(--muted);margin-bottom:10px;font-size:.9rem}.word-drawer-back{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin-bottom:4px;padding:0 8px 0 0;font-size:.9rem;display:flex}.sprite.flip{transform:scaleX(-1)}.word-drawer-actions{flex-wrap:wrap;align-items:center;gap:6px 16px;display:flex}.word-drawer-english-btn{min-height:40px;color:var(--muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.86rem;text-decoration:underline}.word-drawer-queued{color:var(--good-text);align-items:center;gap:8px;margin-bottom:10px;font-size:.88rem;font-weight:700;display:flex}.word-drawer-add-btn{min-height:40px;padding:6px 14px calc(6px + var(--px));margin:var(--px) var(--px) calc(var(--px) * 2);font-size:.68rem}.blink{animation:1s steps(2,jump-none) infinite blink}.blink-soft{animation:1s steps(2,jump-none) infinite blink-soft}.flag-idle{filter:grayscale();opacity:.6}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes hop{0%{transform:translateY(0)}to{transform:translateY(-6px)}}@keyframes blink{0%{opacity:1}to{opacity:0}}@keyframes blink-soft{0%{opacity:1}to{opacity:.45}}@keyframes twinkle{0%{transform:scale(1)}to{transform:scale(.72)rotate(45deg)}}@keyframes drift{0%{transform:translate(0)}to{transform:translate(calc(100vw + 140px))}}@keyframes block-bump{0%{transform:translateY(0)}to{transform:translateY(-8px)}}@keyframes coin-pop{0%{opacity:0;transform:translateY(6px)}45%{opacity:1;transform:translateY(-16px)}to{transform:translateY(0)}}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}to{transform:translate(0)}}@keyframes nudge-up{0%{transform:translateY(0)}50%{transform:translateY(-5px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:900px){.trainer-two{grid-template-columns:1fr}.trainer-two .question-card,.trainer-two .detail-card{grid-area:auto/1}}@media (max-width:720px){.page{gap:24px}.question-card{padding:20px 18px 22px}.detail-card{padding:20px 16px}.panel{padding:18px 16px}}@media (max-width:480px){.theme-toggle .theme-label,.sound-toggle .sound-label{display:none}.nav>:last-child:not(:only-child):not(.btn){gap:14px 10px}.nav .btn{padding-left:9px;padding-right:9px;font-size:.62rem}div.logo>span:not(.badge){display:none}.nav .theme-picker{position:static}.nav .theme-menu{width:auto;left:0;right:0}.rating-buttons{gap:6px}.hero-card{padding:18px}.scene{margin:-18px -18px 16px}.option{flex-direction:column;align-items:flex-start;gap:2px}.option .option-note{text-align:left}.tiles{grid-template-columns:1fr 1fr}.activity-type{display:none}}@media (max-width:380px){.streak-label{display:none}.page{padding-left:14px;padding-right:14px}}