:root{--bg:#faf8f5;--fg:#1f1d1a;--muted:#77716a;--line:#e4ded6;--card:#fff;--accent:#b5342b;--ok:#2f7a4b;--bad:#b5342b;--ok-bg:#eaf4ee;--bad-bg:#fbecea;color:var(--fg);background:var(--bg);font-family:system-ui,Hiragino Sans,Noto Sans JP,sans-serif;font-size:15px;line-height:1.6}@media (prefers-color-scheme:dark){:root{--bg:#171614;--fg:#ece8e2;--muted:#9a938a;--line:#2e2b27;--card:#1f1d1a;--ok-bg:#1d2a22;--bad-bg:#2e1e1c}}*{box-sizing:border-box}body{margin:0}a{color:inherit}.ja{font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,system-ui,sans-serif;font-weight:400;line-height:2}rt{color:var(--fg);font-size:.55em}.muted{color:var(--muted)}.en{color:var(--muted);margin-top:-.6em;font-size:.9em;display:block}.shell{max-width:900px;margin:0 auto;padding:0 1rem 4rem}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 1rem;margin-bottom:1rem;display:flex}.crumb{align-items:baseline;gap:.6rem;padding:.5rem 0;display:flex}.crumb h1{margin:0;font-size:1.1rem}.crumb .lesson-id{margin-right:.3rem}.sep{color:var(--muted)}.brand{font-size:1.1rem;font-weight:700;text-decoration:none}.brand span{color:var(--muted);font-size:.9rem;font-weight:400}.level h2{margin:0}.level-head{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.level-links{gap:.5rem;display:flex}.level-links a{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.25rem .75rem;font-size:.9rem;text-decoration:none}.level-links a:hover{border-color:var(--accent)}.lesson-list{gap:.5rem;padding:0;list-style:none;display:grid}.lesson-list a{background:var(--card);border:1px solid var(--line);border-radius:8px;grid-template-columns:5.5rem 1fr;gap:0 1rem;padding:.75rem 1rem;text-decoration:none;display:grid}.lesson-list a.pending{opacity:.55}.lesson-id{color:var(--accent);grid-row:span 2;font-weight:700}.lesson-goal{color:var(--muted);font-size:.9rem}.level-lesson+.level-lesson{margin-top:2.5rem}.level-lesson h2{margin:0 0 .75rem;font-size:1.15rem}.level-lesson h2 a{text-decoration:none}.level-lesson h2 .lesson-id{margin-right:.3rem}.tabs{flex-wrap:wrap;gap:.25rem;display:flex}.tabs a{border-bottom:2px solid #0000;padding:.5rem .9rem;text-decoration:none}.tabs a.active{border-color:var(--accent);font-weight:600}.stack{gap:1rem;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem}.card h2{margin-top:0;font-size:1.25rem}.card.grammar{grid-template:"ref ex""tog ex"1fr/minmax(0,2fr) minmax(0,3fr);align-items:start;gap:.75rem 2rem;display:grid}.card.grammar .reference{grid-area:ref}.card.grammar .toggles{grid-area:tog}.card.grammar .reference-examples{grid-area:ex}.card.grammar .examples{overflow-wrap:anywhere;margin:0}.card.grammar .reference-examples{border-left:1px solid var(--line);align-self:stretch;padding-left:1.5rem}.card.grammar .details,.card.grammar .more-examples{border-top:1px solid var(--line);grid-column:1/-1;padding-top:.75rem}.card.grammar .more-examples{columns:2;column-gap:2rem}.card.grammar .more-examples li{break-inside:avoid;margin-bottom:.6rem}.card.grammar .toggles{flex-wrap:wrap;gap:.5rem;display:flex}.details p{margin-top:0}.details ul{padding-left:1.2rem}.more{font:inherit;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.85rem;display:inline-flex}.more.open svg{transform:rotate(180deg)}@media screen and (width<=700px){.card.grammar{grid-template-rows:none;grid-template-columns:1fr;grid-template-areas:"ref""ex""tog"}.card.grammar .more-examples{columns:1}.card.grammar .reference-examples{border-left:none;padding-left:0}}.group-patterns{flex-direction:column;margin:.5rem 0;font-size:1rem;font-weight:400;display:flex}.pattern{margin:.15rem 0;font-size:.95rem}.pattern s{color:var(--muted)}.notes li::marker{content:"⚠ "}.examples{gap:.6rem;padding-left:1.5rem;display:grid}.examples .ja{font-size:.95rem}.examples.plain{padding-left:0;list-style:none}.speak{border:1px solid var(--line);color:var(--accent);cursor:pointer;vertical-align:middle;background:0 0;border-radius:6px;justify-content:center;align-items:center;margin:0 .4rem;padding:.2rem;line-height:1;display:inline-flex;position:relative;top:-.25em}.speak:hover{background:var(--bg)}table{border-collapse:collapse;background:var(--card);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.9rem .6rem .5rem}.vocab td.word .ja{white-space:nowrap;font-size:1rem}.vocab-card{padding:0 .75rem;overflow:hidden}.vocab-card .vocab{background:0 0;width:100%;margin:0}.vocab tr:last-child td{border-bottom:none}.kanji-grid{gap:1rem;display:grid}.print-only{display:none}.card.kanji{grid-template-columns:10.75rem minmax(0,1fr);align-items:stretch;padding-left:0;display:grid}.kanji-head{text-align:center;flex-direction:column;align-items:center;gap:.1rem;padding:0 1.5rem 0 1.25rem;display:flex}.kanji-char{margin:1.35rem 0 .75rem;font-size:3.25rem;line-height:1}.kanji-words{border-left:1px solid var(--line);background:0 0}.kanji-words td{padding:.8rem}.kanji-words td.word{width:11rem}.kanji-words td.word .ja{white-space:nowrap}.kanji-words tr:first-child td{padding-top:0}.kanji-words tr:last-child td{border-bottom:none;padding-bottom:0}@media screen and (width<=700px){.card.kanji{grid-template-columns:1fr;gap:.75rem;padding-left:.75rem}.kanji-head{text-align:left;flex-flow:wrap;align-items:baseline;gap:0 .75rem;padding:0}.kanji-char{margin:0}.kanji-words{border-left:none;width:100%;margin:0}.kanji-words td{padding-left:0}.kanji-words td.word{width:40%}}.exercises{gap:1rem;padding:0;list-style:none;display:grid}.exercise{background:var(--card);border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.ex-body{flex:1;min-width:0;padding:.6rem .6rem .6rem 1rem}.ex-line{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ex-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.exercise .ja{font-size:1rem}.num{width:1.9rem;color:var(--muted);background:var(--bg);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;align-items:center;padding-top:.65rem;font-size:.85rem;font-weight:600;line-height:1;display:flex}.hint{color:var(--muted);margin-left:.5rem;font-size:.9rem}.hint .ja{font-size:inherit;line-height:1.8}.blank{border-bottom:2px solid var(--accent);text-align:center;min-width:3em;margin:0 .15em;display:inline-block}input.blank{width:8em;font:inherit;color:var(--fg);border:none;border-bottom:2px solid var(--accent);background:0 0;border-radius:0;outline:none;padding:0 .1em;line-height:1.2}input.blank:focus{background:var(--bg)}.exercise.right .num{color:var(--ok);background:var(--ok-bg)}.exercise.wrong .num{color:var(--bad);background:var(--bad-bg)}.check{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.mark{margin-top:.75rem;display:flex}.solution{color:var(--bad);margin-top:.4rem}.check-all{align-items:center;gap:1rem;display:flex}.score{font-weight:700}@media print{.brand,.sep,.tabs,.speak,.ex-actions,.solution,.more{display:none}input.blank{color:#0000;background:0 0}.topbar{border:none}.crumb h1,.crumb .lesson-id,.level-lesson h2,.level-lesson h2 .lesson-id{color:#000;font-size:1.4rem;font-weight:400}.level-doc>.topbar{display:none}.level-lesson+.level-lesson{break-before:page;margin-top:0}.card.grammar .details,.card.grammar .toggles,.card.grammar .more-examples{display:none}.card{break-inside:avoid}:root{--line:#777;font-size:18px}.card.grammar{border:none;padding:0;display:flow-root}.card.grammar .reference{float:right;border:1px solid var(--line);border-radius:8px;margin:0 0 .3rem .5rem;padding:.4rem .8rem}.card.grammar .reference-examples{border-left:none;padding-left:0;display:block}.card.grammar .reference-examples li{margin-bottom:.6rem}.stack{display:block}.stack>*+*{margin-top:1rem}tr{break-inside:avoid}.vocab-card{break-inside:auto;border:none;padding:0;overflow:visible}.vocab td{border-bottom:2px dotted var(--line)}.vocab td:first-child{padding-left:0}.vocab td:last-child{padding-right:0}.screen-only{display:none}.kanji-table.print-only{display:table}.kanji-table tbody{break-inside:avoid}.kanji-table td{border-bottom:none;padding:.3rem .6rem}.kanji-table td:last-child{padding-right:0}.kanji-table tbody:not(:last-child){border-bottom:2px dotted var(--line)}.kanji-table tr:first-child td{padding-top:.8rem}.kanji-table tr:last-child td{padding-bottom:.8rem}.kanji-table .kanji-cell{text-align:center;width:8.25rem;padding:.8rem .25rem}.kanji-table .kanji-cell>span{display:block}.kanji-table .kanji-char{margin:0 0 .5rem;font-size:2.5rem}.kanji-table td.word{width:11rem}.grammar-list{gap:0}.grammar-list .card+.card{margin-top:1.6rem}.grammar-list .card:not(:last-child){border-bottom:2px dotted var(--line);border-radius:0;padding-bottom:1.6rem}}@media screen and (width<=700px){:root{font-size:13.5px}.shell{padding:0 .75rem 3rem}.card,.exercise{border-left:none;border-right:none;border-radius:0;margin-left:-.75rem;margin-right:-.75rem;padding:.75rem}.exercise{padding:0}table{width:calc(100% + 1.5rem);margin:0 -.75rem}.grammar-list{gap:0}.grammar-list .card+.card{border-top:none}.tabs a{padding:.4rem .6rem}.examples .ja,.exercise .ja{font-size:.95rem}.card h2{font-size:1.15rem}.pattern{font-size:.95rem}}
