: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 .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-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{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%}
@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))}}
@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{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}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Compound-verb layout: longer forms and several independent senses per component. */
.formula{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px}
.formula-word{white-space:nowrap}
.formula-sign{font:400 18px/2.2 var(--font)}
.entry-button{grid-template-columns:minmax(150px,.65fr) minmax(0,1fr)}
.entries{grid-template-columns:minmax(0,1fr)}
.entry-form{font-size:23px;overflow-wrap:anywhere}
.element-card .form{font-size:23px}
#entry-title{font-size:34px;overflow-wrap:anywhere}
.sense{border-top:2px solid var(--line);margin-top:24px;padding-top:2px}
.sense-heading{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sense-number{color:var(--muted);font-size:14px}
.group-title{padding:15px 17px;margin:0;background:var(--soft);border-bottom:1px solid var(--line)}
.comparisons{margin-top:16px}.comparisons [lang="ja"]{font-size:20px;line-height:2.2}
.comparisons .comparison-note{font-size:14px;color:var(--ink-2);line-height:1.9}
.comparisons .comparison-note [lang="ja"]{font-size:18px}
.basics-action{margin-top:20px}.learning-note summary{cursor:pointer;font-weight:600}
.entry-reading [lang="ja"]{font-size:20px}
.sense>p [lang="ja"],#entry-content>p [lang="ja"],.warning [lang="ja"]{font-size:19px}
@media(max-width:540px){.entry-button{grid-template-columns:minmax(0,1fr);gap:0;padding:10px 0}.entry-form{line-height:2.2}.entry-meaning{font-size:15px}#entry-title{font-size:27px}.element-card .form{font-size:20px}.core-elements{grid-template-columns:minmax(0,1fr)}.element-card{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:12px}.element-card .gloss{font-size:14px}.comparisons [lang="ja"]{font-size:19px}}

/* Practice follows the reference's warm paper palette and Klee One ruby. */
.compound-trainer-modes{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 17px}
.compound-trainer-modes button{min-height:42px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font:600 14px/1.45 var(--font);text-align:left}
.compound-trainer-modes button:hover{border-color:var(--accent)}
.compound-trainer-modes button[aria-pressed="true"]{background:var(--accent-ui);border-color:var(--accent-ui);color:white}
.compound-trainer-panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.compound-trainer-progress{margin:0 0 14px;color:var(--muted);font-size:14px;font-weight:600}
.compound-trainer-question{min-width:0;margin:0 0 18px}
.compound-trainer-label{margin:0 0 7px;font-size:15px;font-weight:600}
.compound-trainer-prompt{min-width:0;margin:0;font-size:26px;line-height:2.25;overflow-wrap:anywhere}
.compound-trainer-context{margin:0 0 6px;color:var(--ink-2);font-size:14px}
#compound-trainer-hint{margin:-1px 0 15px}
.trainer-focus{padding:0 3px;border-radius:3px;background:#fde6d6;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.trainer-underlined{text-decoration:underline;text-decoration-color:var(--accent-ui);text-decoration-thickness:1.5px;text-underline-offset:5px}
.compound-trainer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.compound-trainer-options[data-mode="usage"]{grid-template-columns:minmax(0,1fr)}
.compound-trainer-option{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:10px;min-width:0;min-height:68px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft);text-align:left}
.compound-trainer-option:hover:not(:disabled){border-color:var(--accent-ui);background:#fff8f2}
.compound-trainer-option.is-correct{border-color:#60875c;background:#edf5e9}
.compound-trainer-option.is-wrong{border-color:#c47462;background:#fff0ea}
.compound-trainer-number{display:grid;place-items:center;width:25px;height:25px;border-radius:6px;background:white;color:var(--accent-ui);font-size:13px;font-weight:700}
.compound-trainer-option-text{min-width:0;font-size:20px;line-height:2;overflow-wrap:anywhere}
.compound-trainer-options[data-mode="component"] .compound-trainer-option-text{font:500 15px/1.6 var(--font)}
.compound-trainer-feedback{min-width:0;margin-top:16px;color:var(--ink-2)}
.compound-trainer-feedback:empty{display:none}
.compound-trainer-feedback p{margin:5px 0;line-height:1.75}
.compound-trainer-verdict{font-weight:700;color:var(--ink)}
.compound-trainer-correct [lang="ja"]{font-size:19px;line-height:2}
.compound-trainer-card-link{margin-top:8px}
.compound-trainer-link-note{font-size:13px;color:var(--muted)}
.compound-trainer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.compound-trainer-actions button:disabled{opacity:.46}
.compound-trainer-complete,.compound-trainer-empty{margin:0;color:var(--ink-2)}
@media(max-width:540px){.compound-trainer-modes{display:grid;grid-template-columns:minmax(0,1fr)}.compound-trainer-panel{padding:15px}.compound-trainer-options{grid-template-columns:minmax(0,1fr)}.compound-trainer-prompt{font-size:22px;line-height:2.35}.compound-trainer-option-text{font-size:18px}.compound-trainer-option{padding:10px 12px}}
