:root{--bg:#f0ebe3;--surface:#fff;--soft:#faf6ef;--ink:#2c1a0e;--ink-2:#574437;--muted:#6b5a47;--accent:#d85a30;--accent-ui:#b7441e;--line:#e3d8c8;--warn:#fbeee4;--font:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--jp:"Klee One",serif;--display:Unbounded,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}
[lang="ja"],.jp{font-family:var(--jp)}[lang="ru"]{font-family:var(--font)}
ruby{font-family:var(--jp);ruby-position:over;ruby-align:center;white-space:nowrap}rt{font:400 .5em/1 var(--jp);color:#51453e}
.page-shell{max-width:980px;margin:auto;padding:22px 18px 60px;min-width:0}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:14px;overflow-wrap:anywhere}.crumbs a,footer a{color:var(--accent-ui);text-decoration:none}.crumbs a:hover,footer a:hover{text-decoration:underline}
.page-intro{padding-bottom:16px;margin-bottom:20px;border-bottom:2px solid var(--line)}h1{font:800 30px/1.5 var(--display);margin:0;text-wrap:balance;overflow-wrap:anywhere}.kanji{display:inline-block;margin-left:10px;font-size:27px;color:var(--accent-ui)}.page-intro p{font-size:14px;color:var(--ink-2);margin:6px 0 0}
.tabs{display:flex;flex-wrap:wrap;width:fit-content;max-width:100%;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--soft);margin-bottom:24px}.tabs button{border:0;border-radius:9px;padding:10px 14px;min-height:42px;background:transparent;font:600 14px/1.4 var(--font);color:var(--ink-2)}.tabs button:hover{background:white}.tabs button[aria-selected="true"]{background:var(--accent-ui);color:#fff}
h2,h3{text-wrap:balance}.section-heading{max-width:72ch;margin:0 0 22px}.section-heading h2,.section-title{font:700 21px/1.5 var(--display);margin:0}.section-heading p,.section-copy{font-size:15px;color:var(--ink-2);margin:9px 0 0;max-width:70ch}.section-title{margin-top:30px}.section-copy{margin-bottom:16px}
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.principles article{min-width:0;padding:19px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}h3{font:700 16px/1.5 var(--font);margin:0 0 9px}.principles p{font-size:15px;margin:8px 0;max-width:65ch}.formula{line-height:2.6;padding-top:8px}.formula [lang="ja"]{font-size:22px;line-height:2.2}.principles .translation{font-size:14px;color:var(--ink-2)}
.learning-note,.reading-rule{padding:19px 21px;margin-top:18px;border:1px solid #e6c3b2;border-radius:12px;background:var(--warn)}.reading-rule{background:#f5f6f0;border-color:#cdd4c5}.learning-note p,.reading-rule p{margin:8px 0 0;max-width:70ch;font-size:15px;line-height:1.9}.learning-note [lang="ja"],.reading-rule [lang="ja"]{font-size:19px}
.core-elements{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.element-card{min-width:0;text-align:left;padding:18px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.element-card:hover{border-color:var(--accent)}.element-card .form{display:block;font-size:29px;line-height:1.9;color:var(--accent-ui)}.element-card .gloss{display:block;font:500 14px/1.6 var(--font)}
.study-steps{display:grid;gap:10px;padding-left:25px;max-width:70ch;font-size:15px;margin-bottom:22px}.study-steps strong{font-weight:600}
.primary-action,.secondary-action{min-height:42px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:600 14px/1.5 var(--font)}.primary-action{background:var(--accent-ui);border-color:var(--accent-ui);color:#fff}.secondary-action:hover{border-color:var(--accent)}
.catalog-tools{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;margin-bottom:15px}label{display:grid;gap:6px;font:600 14px/1.5 var(--font);min-width:0}input[type="search"],select{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:400 16px/1.5 var(--font)}input::placeholder{color:var(--muted);opacity:1}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{font:600 14px/1.4 var(--font);min-height:40px;padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2)}.chips button[aria-pressed="true"]{color:white;background:var(--accent-ui);border-color:var(--accent-ui)}.chips button:hover{border-color:var(--accent)}
.result-count{font-size:14px;color:var(--muted);margin:16px 0}.catalog-groups{display:grid;gap:12px}.catalog-group{border:1px solid var(--line);border-radius:12px;overflow:clip;background:var(--surface)}.catalog-group > summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 17px;font-weight:600}.catalog-group > summary::-webkit-details-marker{display:none}.catalog-group > summary::after{content:"+";color:var(--accent-ui);font-size:22px}.catalog-group[open] > summary::after{content:"−"}.catalog-group[open] > summary{border-bottom:1px solid var(--line)}.group-count{font-size:13px;font-weight:400;color:var(--muted);white-space:nowrap}.entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 17px;column-gap:22px}.entry-button{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;min-width:0;width:100%;min-height:78px;padding:14px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.entry-button:hover .entry-form{color:var(--ink)}.entry-form{font-size:25px;line-height:2;color:var(--accent-ui)}.entry-meaning{font:400 14px/1.6 var(--font);overflow-wrap:anywhere}.entry-button:focus-visible{outline-offset:-2px}
.entry-result{min-width:0;border-bottom:1px solid var(--line)}.entry-result:only-child{grid-column:1/-1}.entry-result .entry-button{border-bottom:0}
.search-matches{margin:0 0 14px;padding:12px;background:var(--soft)}.search-matches p{margin:4px 0;font:400 14px/1.7 var(--font);overflow-wrap:anywhere}.search-matches .match-label{margin:0 0 8px;font-size:13px;color:var(--muted)}.search-matches .match-word{font-size:22px;line-height:2.1}.search-matches [lang="ja"]{font-family:var(--jp);font-size:22px;line-height:2.1}.matched-example+.matched-example{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.search-matches .match-note{color:var(--ink-2)}.more-matches{margin-top:8px}.more-matches > summary{display:flex;align-items:center;min-height:44px;cursor:pointer;color:var(--accent-ui);font:600 14px/1.5 var(--font);list-style:none}.more-matches > summary::-webkit-details-marker{display:none}.more-matches > summary::after{content:"+";margin-left:8px}.more-matches[open] > summary::after{content:"−"}
.relation-button{border:1px solid var(--line);border-radius:8px;background:var(--soft);min-height:42px;padding:7px 11px;line-height:1.8}.relation-button:hover{border-color:var(--accent)}.empty-state{padding:24px 19px;border:1px dashed #ae9c89;border-radius:10px;color:var(--ink-2);background:var(--soft)}
dialog{max-width:760px;width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}dialog::backdrop{background:rgba(44,26,14,.5)}.dialog-toolbar{position:sticky;top:0;display:flex;justify-content:flex-end;padding:8px 10px;background:var(--surface);border-bottom:1px solid var(--line);z-index:2}#close-dialog{width:40px;height:40px;border:1px solid var(--line);border-radius:9px;background:var(--soft);font:400 26px/1 var(--font)}#entry-content{padding:10px 24px 25px;min-width:0}.entry-heading{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}#entry-title{margin:0;font-size:42px;line-height:1.9;color:var(--accent-ui)}.entry-reading{font-size:16px;color:var(--ink-2);margin:0}.entry-tags{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 16px}.tag{font-size:13px;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--ink-2)}#entry-content .main-meaning{font-size:18px;font-weight:600;line-height:1.65;margin:8px 0 12px}#entry-content p{max-width:70ch;line-height:1.9;font-size:15px;margin:8px 0}#entry-content h3{margin-top:23px}.warning{padding:12px 15px;background:var(--warn);border:1px solid #e6c3b2;border-radius:10px}.examples{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:clip}.example-group-title{margin:0;padding:9px 15px;background:var(--surface);color:var(--ink-2);font:600 13px/1.6 var(--font);letter-spacing:.01em}.example{background:var(--soft);padding:11px 15px}.example-word{font-size:23px;line-height:2.15;overflow-wrap:anywhere}.example .example-translation{font-size:15px;line-height:1.6;margin:3px 0}.example .example-note{font-size:14px;line-height:1.8;color:var(--ink-2);margin-top:8px}.example [lang="ja"]{font-size:1.12em}.examples-more{margin-top:12px}.relations{display:flex;flex-wrap:wrap;gap:8px}.relations [lang="ja"]{font-size:22px}
footer{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}footer p{margin:5px 0}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
input[type="search"]{font-family:Inter,"Klee One",system-ui,sans-serif}input[type="search"][lang="ja"]{font-family:var(--jp)}
.relation{flex-basis:100%;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}.relation-label{font-size:14px;color:var(--ink-2)}.relation p{flex-basis:100%}
.trainer-heading{margin-bottom:18px}.trainer-controls{display:grid;gap:14px;margin-bottom:14px}.trainer-modes{display:flex;flex-wrap:wrap;gap:6px}.trainer-modes button{min-height:42px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font:600 14px/1.4 var(--font)}.trainer-modes button:hover{border-color:var(--accent)}.trainer-modes button[aria-pressed="true"]{border-color:var(--accent-ui);background:var(--accent-ui);color:#fff}.trainer-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trainer-panel{--ok:#25623f;--ok-bg:#edf7f0;--bad:#9f3328;--bad-bg:#fceeea;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.trainer-status{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.trainer-progress,.trainer-cycle{margin:0;font:600 13px/1.5 var(--font);color:var(--ink-2)}.trainer-cycle{font-weight:400;color:var(--muted);text-align:right}.trainer-task{min-height:190px;padding:22px 18px 18px;text-align:center}.trainer-mode-label{margin:0 0 8px;color:var(--accent-ui);font:700 12px/1.4 var(--font);letter-spacing:.045em;text-transform:uppercase}.trainer-context{max-width:66ch;margin:0 auto;color:var(--ink-2);font:500 15px/1.7 var(--font);text-wrap:pretty}.trainer-prompt{min-height:76px;margin-top:14px;color:var(--ink);font:600 34px/2 var(--jp);overflow-wrap:anywhere}.trainer-gap{display:inline-block;min-width:2.5em;margin:0 .08em;color:var(--accent-ui);border-bottom:2px solid var(--accent);line-height:1.45}.trainer-target{display:inline-block;margin:0 .05em;padding:0 .13em;border-radius:7px;background:#f8dfd3;color:var(--accent-ui)}.trainer-text-action{min-height:42px;margin-top:4px;padding:7px 10px;border:1px solid transparent;background:transparent;color:var(--accent-ui);font:600 14px/1.5 var(--font)}.trainer-text-action:hover{text-decoration:underline}.trainer-translation{max-width:60ch;margin:7px auto 0;color:var(--ink-2);font:400 15px/1.6 var(--font)}.trainer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.trainer-panel[data-mode="choose"] .trainer-options{grid-template-columns:repeat(4,minmax(0,1fr))}.trainer-panel[data-mode="classify"] .trainer-options{grid-template-columns:repeat(4,minmax(0,1fr))}.trainer-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:82px;padding:11px 9px;border:2px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);text-align:center;transition:border-color .16s ease-out,background-color .16s ease-out,transform .16s ease-out}.trainer-option:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.trainer-option[aria-pressed="true"],.trainer-option.is-selected{border-color:var(--accent-ui);background:#fae8df}.trainer-option:disabled{opacity:1}.trainer-option.is-correct,.trainer-option.is-missed{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.trainer-option.is-missed{border-style:dashed}.trainer-option.is-wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.trainer-option-form{display:block;font:600 25px/1.9 var(--jp)}.trainer-option-reading{display:block;margin-top:-3px;color:var(--muted);font:400 12px/1.45 var(--jp);overflow-wrap:anywhere}.trainer-option-role{font:500 14px/1.55 var(--font);text-wrap:pretty}.trainer-answer-mark{display:block;margin-top:5px;font:700 11px/1.3 var(--font);letter-spacing:.02em}.trainer-feedback{min-height:0;margin-top:14px;padding:0;color:var(--ink-2);font:400 14px/1.7 var(--font)}.trainer-feedback:not(:empty){padding:15px 17px;border:1px solid var(--line);border-radius:10px;background:#f7f3ec}.trainer-feedback p{max-width:70ch;margin:5px 0}.trainer-verdict{color:var(--bad);font-weight:700}.trainer-verdict.is-success{color:var(--ok)}.trainer-complete-word{color:var(--ink);font-size:15px}.trainer-complete-word>[lang="ja"]{font-size:22px;line-height:2}.trainer-correct-set{display:flex;flex-wrap:wrap;gap:4px 8px;margin:5px 0;color:var(--ok);font-size:21px;line-height:2}.trainer-feedback-note{padding-top:6px;border-top:1px solid var(--line)}.trainer-entry-link{min-height:40px;margin-top:8px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent-ui);font:600 13px/1.5 var(--font)}.trainer-entry-link:hover{border-color:var(--accent)}.trainer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px}.trainer-actions button{min-height:42px}.trainer-restart{width:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:500 22px/1 var(--font)}.trainer-actions button:disabled{border-color:var(--line);background:var(--soft);color:#897766}.trainer-panel[data-mode="classify"] .trainer-task{min-height:126px}.trainer-panel[data-mode="classify"] .trainer-prompt{display:none}.trainer-classification-option{min-height:92px}
@media(max-width:768px){h1{font-size:27px}.desktop-break{display:none}.entries{grid-template-columns:minmax(0,1fr)}.core-elements{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trainer-classification-option .trainer-answer-mark{margin-top:6px;font:600 13px/1.4 var(--font);letter-spacing:0}
@media(max-width:768px){.trainer-panel[data-mode="choose"] .trainer-options,.trainer-panel[data-mode="classify"] .trainer-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.page-shell{padding:18px 12px 45px}h1{font-size:23px;line-height:1.5}.kanji{font-size:24px}.tabs{width:100%}.tabs button{flex:1 1 100%;text-align:left}.principles{grid-template-columns:minmax(0,1fr)}.principles article,.learning-note,.reading-rule{padding:15px}.section-heading h2,.section-title{font-size:18px}.catalog-tools,.trainer-filters{grid-template-columns:minmax(0,1fr)}.entry-button{grid-template-columns:80px minmax(0,1fr)}.entry-form{font-size:23px}dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}#entry-content{padding:8px 13px 20px}#entry-title{font-size:34px}.example{padding:10px}.example-word{font-size:19px}.entry-heading{gap:5px 14px}.formula [lang="ja"]{font-size:21px}.trainer-panel{padding:12px}.trainer-status{align-items:flex-start;flex-direction:column;gap:2px}.trainer-cycle{text-align:left}.trainer-task{min-height:176px;padding:18px 5px 14px}.trainer-prompt{font-size:27px}.trainer-options{grid-template-columns:minmax(0,1fr)}.trainer-option{min-height:70px;padding:9px 7px}.trainer-panel[data-mode="classify"] .trainer-option{min-height:80px}.trainer-option-form{font-size:22px}.trainer-actions{align-items:stretch}.trainer-actions .primary-action,.trainer-actions .secondary-action{flex:1 1 calc(50% - 4px)}.trainer-restart{flex:0 0 42px}.trainer-feedback:not(:empty){padding:12px}.trainer-modes button{flex:1 1 calc(50% - 3px)}}
.trainer-panel[data-mode="sentence"] .trainer-task{min-height:210px}.trainer-panel[data-mode="sentence"] .trainer-prompt{max-width:70ch;margin-inline:auto;font-size:26px;line-height:2.3;text-align:left}.trainer-panel[data-mode="sentence"] .trainer-options{grid-template-columns:repeat(4,minmax(0,1fr))}.trainer-complete-sentence{font:600 21px/2.25 var(--jp);color:var(--ink);overflow-wrap:anywhere}
@media(max-width:768px){.trainer-panel[data-mode="sentence"] .trainer-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.trainer-panel[data-mode="sentence"] .trainer-prompt{font-size:21px;line-height:2.4}.trainer-panel[data-mode="sentence"] .trainer-options{grid-template-columns:minmax(0,1fr)}.trainer-complete-sentence{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
