:root,[data-palette=washi]{--bg: #f6f2ea;--surface: #fffdf8;--ink: #2a2421;--ink-soft: #6c625a;--accent: #c2410c;--accent-ink: #ffffff;--line: #e4dbcd;--chip: #f3ebdf;--serif: "Noto Serif JP", "Yu Mincho", serif;--sans: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif}@media(prefers-color-scheme:dark){:root,[data-palette=washi]{--bg: #1a1816;--surface: #23201d;--ink: #eee7dd;--ink-soft: #a89e93;--accent: #fb923c;--accent-ink: #1a1816;--line: #3a3430;--chip: #2e2a26}}:root{--good: #15803d;--bad: #b91c1c}@media(prefers-color-scheme:dark){:root{--good: #4ade80;--bad: #f87171}}[data-palette=ai]{--bg: #eef1f5;--surface: #fbfcfe;--ink: #1b2433;--ink-soft: #5b6577;--accent: #2f4b8f;--accent-ink: #ffffff;--line: #d8dee8;--chip: #e6ebf3}[data-palette=matcha]{--bg: #f1f3ec;--surface: #fcfdf9;--ink: #1f261c;--ink-soft: #5f6b58;--accent: #4a7a27;--accent-ink: #ffffff;--line: #dbe1d1;--chip: #e8ecdf}[data-palette=sakura]{--bg: #fbf3f4;--surface: #fffafa;--ink: #2b1f22;--ink-soft: #73606a;--accent: #c2365f;--accent-ink: #ffffff;--line: #eedbe0;--chip: #f6e6ea}[data-palette=umi]{--bg: #eef4f3;--surface: #fbfefd;--ink: #182625;--ink-soft: #5a6b69;--accent: #0f766e;--accent-ink: #ffffff;--line: #d4e2df;--chip: #e2eeeb}[data-palette=yoru]{--bg: #f3f1f8;--surface: #fdfcff;--ink: #221d33;--ink-soft: #6a6380;--accent: #6d4bd1;--accent-ink: #ffffff;--line: #e0dbee;--chip: #ebe7f5}[data-palette=sumi]{--bg: #f4f4f2;--surface: #ffffff;--ink: #1c1c1e;--ink-soft: #66666b;--accent: #1c1c1e;--accent-ink: #ffffff;--line: #e1e1de;--chip: #ededea}@media(prefers-color-scheme:dark){[data-palette=ai]{--bg: #0f1420;--surface: #172033;--ink: #e6eaf2;--ink-soft: #98a2b6;--accent: #8fa8ec;--accent-ink: #0f1420;--line: #26314a;--chip: #1e2940}[data-palette=matcha]{--bg: #141812;--surface: #1c2219;--ink: #e5eadf;--ink-soft: #9ba692;--accent: #9ccc6b;--accent-ink: #141812;--line: #2e3629;--chip: #252c21}[data-palette=sakura]{--bg: #1c1416;--surface: #261b1e;--ink: #f1e4e7;--ink-soft: #b39aa2;--accent: #f28aa8;--accent-ink: #1c1416;--line: #3d2b31;--chip: #312226}[data-palette=umi]{--bg: #0f1817;--surface: #162221;--ink: #e1ecea;--ink-soft: #93a8a5;--accent: #5ec9bb;--accent-ink: #0f1817;--line: #253634;--chip: #1d2c2a}[data-palette=yoru]{--bg: #14121c;--surface: #1d1a28;--ink: #ebe8f4;--ink-soft: #a29cb8;--accent: #b49cff;--accent-ink: #14121c;--line: #2f2b40;--chip: #262236}[data-palette=sumi]{--bg: #141414;--surface: #1c1c1c;--ink: #ececea;--ink-soft: #9a9a96;--accent: #ececea;--accent-ink: #141414;--line: #2e2e2c;--chip: #262624}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5}a{color:inherit}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px 16px 24px}.site-header{width:100%;max-width:640px;display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.logo{display:inline-flex;align-items:baseline;gap:8px;text-decoration:none}.logo span[lang=ja]{font-family:var(--serif);font-weight:600;font-size:24px}.logo-en{font-size:14px;font-weight:500;color:var(--ink-soft);letter-spacing:.04em}.back{font-size:14px;color:var(--ink-soft);text-decoration:none}.back:hover{color:var(--accent)}.site-footer{margin-top:auto;padding-top:40px;width:100%;max-width:640px;display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft)}.header-right{display:flex;align-items:center;gap:14px}.palette-menu{position:relative}.palette-button{font:inherit;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 6px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.palette-button:hover{border-color:var(--accent)}.palette-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.caret{font-size:10px;color:var(--ink-soft)}.palette-list{position:absolute;right:0;top:calc(100% + 6px);z-index:10;list-style:none;margin:0;padding:6px;min-width:210px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #0000001f}.palette-option{font:inherit;font-size:14px;width:100%;display:flex;align-items:center;gap:10px;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.palette-option:hover{background:var(--chip)}.palette-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.palette-option[aria-current=true]{font-weight:600;background:var(--chip)}.palette-note{margin-left:auto;font-size:12px;color:var(--ink-soft)}.swatch{flex:none;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:radial-gradient(circle,var(--accent) 0 45%,var(--bg) 48%)}.home{width:100%;max-width:640px}.hero{text-align:center;margin:12px 0 36px}.hero-kanji{font-family:var(--serif);font-weight:600;font-size:clamp(64px,18vw,96px);line-height:1.4;margin:0}.hero-kanji rt{font-size:.28em;color:var(--accent);font-family:var(--sans)}.hero-title{font-size:clamp(24px,6vw,32px);margin:4px 0 6px;font-weight:600}.hero-sub{margin:0;color:var(--ink-soft)}.sections{list-style:none;padding:0;margin:0;display:grid;gap:12px}.section-card{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:18px;align-items:center;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;text-decoration:none}a.section-card:hover{border-color:var(--accent)}a.section-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.section-card.disabled{opacity:.6}.section-kana{grid-row:1 / 3;font-family:var(--serif);font-size:26px;font-weight:600;min-width:4.2em}.section-name{font-weight:600;font-size:17px;display:flex;align-items:center;gap:8px}.section-blurb{grid-column:2;font-size:14px;color:var(--ink-soft)}.section-go{grid-column:3;grid-row:1 / 3;color:var(--accent);font-weight:500;font-size:14px}.badge{font-size:11px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--ink-soft)}@media(max-width:480px){.section-card{grid-template-columns:1fr;row-gap:2px}.section-kana,.section-blurb,.section-go{grid-column:1;grid-row:auto}.section-go{margin-top:6px}}.section-head{width:100%;max-width:560px;display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.section-title{font-size:18px;font-weight:500;margin:0}.section-title span{font-family:var(--serif);font-weight:600}.counter{margin:0;color:var(--ink-soft);font-variant-numeric:tabular-nums}.gen-picker{width:100%;max-width:560px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px}.gen-label{font-size:12px;color:var(--ink-soft);margin-right:2px}.chip{font:inherit;font-size:12px;font-weight:500;line-height:1.4;min-width:24px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);cursor:pointer}.chip:hover{background:var(--chip);color:var(--ink)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pool-size{margin-left:auto;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}@media(max-width:420px){.pool-size{display:none}}.card{width:100%;max-width:560px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px 24px;text-align:center}.prompt{margin:0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.kana{font-family:var(--serif);font-size:clamp(44px,13vw,76px);font-weight:600;margin:16px 0 8px;line-height:1.2;word-break:keep-all;overflow-wrap:anywhere}.answer-form{display:flex;gap:8px;max-width:380px;margin:8px auto 0}.answer-input{flex:1;min-width:0;font:inherit;font-size:16px;padding:7px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);text-align:center}.answer-input::placeholder{color:var(--ink-soft);opacity:.8}.answer-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.answer-input.right{border-color:var(--good);color:var(--good)}.answer-input.wrong{border-color:var(--bad);color:var(--bad);text-decoration:line-through}.answer-form .btn{padding:7px 14px}.btn:disabled,.btn.primary:disabled:hover{opacity:.5;cursor:default;filter:none}.verdict{margin:10px 0 0;font-weight:500;font-size:15px}.verdict.right{color:var(--good)}.verdict.wrong{color:var(--bad)}.score{color:var(--ink-soft)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.answer{margin-top:12px}.answer.placeholder{margin-top:0}.romaji{font-size:30px;font-weight:500;color:var(--accent);margin:0;letter-spacing:.02em}.english{margin:2px 0 20px;color:var(--ink-soft);font-size:17px}.meaning{max-width:420px;margin:4px auto 0;font-size:17px;color:var(--ink);text-wrap:balance}.answer-label{color:var(--accent);font-weight:500}.dex-link{display:inline-block;margin-left:10px;font-size:13px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}.dex-link:hover{color:var(--accent)}.breakdown{list-style:none;padding:0;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.unit{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:8px 10px;background:var(--chip);border-radius:10px}.unit.tsu,.unit.long{border:1px dashed var(--line);background:transparent}.unit-kana{font-family:var(--serif);font-size:24px;line-height:1.3}.unit-romaji{font-size:13px;color:var(--ink-soft)}.hint{margin:10px auto 0;max-width:400px;font-size:13px;color:var(--ink-soft)}.hint b{font-family:var(--serif);color:var(--ink)}.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:16px}.btn{font:inherit;font-size:15px;font-weight:500;padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:10px}.btn:hover{background:var(--chip)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}kbd{font-family:var(--sans);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid currentColor;opacity:.6}@media(hover:none){kbd{display:none}}.fine-print{max-width:560px;margin:20px auto 0;text-align:center;font-size:12px;color:var(--ink-soft)}
