:root{--paper: #F5F7FA;--grid: #DCE3EE;--ink: #1C2333;--ai: #2B4C8C;--shu: #C63D2F;--muted: #646D7F;--surface: #FFFFFF;--good: #2E7D5B;--on-ai: #FFFFFF;--on-ai-soft: #C9D5EC;--cell-line: #A9B8D6;--backdrop: rgba(28, 35, 51, .45);--hero: #2B4C8C;--on-hero: #FFFFFF;--on-hero-soft: #C9D5EC;--font: "Onest", "Klee One", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-ja: "Klee One", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tabs-h: 60px;--gutter: 16px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #121722;--grid: #222B3B;--ink: #E6EAF2;--ai: #7EA2E6;--shu: #E5675A;--muted: #8A93A6;--surface: #1A2130;--good: #5DBB8E;--on-ai: #121722;--on-ai-soft: #22324F;--cell-line: #3A4D72;--backdrop: rgba(0, 0, 0, .6);--hero: #2A4170;--on-hero: #E6EAF2;--on-hero-soft: #B5C4E3;color-scheme:dark}}:root[data-theme=dark]{--paper: #121722;--grid: #222B3B;--ink: #E6EAF2;--ai: #7EA2E6;--shu: #E5675A;--muted: #8A93A6;--surface: #1A2130;--good: #5DBB8E;--on-ai: #121722;--on-ai-soft: #22324F;--cell-line: #3A4D72;--backdrop: rgba(0, 0, 0, .6);--hero: #2A4170;--on-hero: #E6EAF2;--on-hero-soft: #B5C4E3;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.45 var(--font);font-feature-settings:"palt";-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}a{color:var(--ai)}h1,h2,h3{font-weight:700}button{cursor:pointer}.big,.kana,.gloss-part,.card-big,.card-small{font-family:var(--font-ja);font-weight:600}.ja,.ex-word{font-family:var(--font)}.shell{min-height:100dvh}.content{max-width:640px;margin:0 auto;padding:0 calc(var(--gutter) + var(--safe-right)) calc(var(--tabs-h) + 24px + var(--safe-bottom)) calc(var(--gutter) + var(--safe-left))}.hint{color:var(--muted);font-size:13px}.error{color:var(--shu);font-size:13px}.small{font-size:13px}.subtitle{font-size:17px;font-weight:700;margin:28px 0 10px}.genko{position:relative;display:inline-flex;align-items:center;justify-content:center;background:repeating-linear-gradient(to right,var(--grid) 0 3px,transparent 3px 6px) center / 100% 1px no-repeat,repeating-linear-gradient(to bottom,var(--grid) 0 3px,transparent 3px 6px) center / 1px 100% no-repeat,var(--surface);border:1px solid var(--cell-line)}.brush{flex:none;color:var(--ink);line-height:1}.brush svg{display:block;width:100%;height:100%}.brush.genko svg{padding:7%}.brush-ink{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.brush-ink .current{stroke:var(--ai)}.brush-num{font:700 7px var(--font);fill:var(--muted);stroke:none}.brush-text{font-family:var(--font-ja);font-weight:600;font-size:1.6em}.brush.replay{cursor:pointer}.brush .draw{stroke-dasharray:1 2;animation:draw .45s ease-in-out both}@keyframes draw{0%{stroke-dashoffset:1;opacity:0}1%{opacity:1}to{stroke-dashoffset:0;opacity:1}}.brush.digits{font:700 26px var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.04em}.ph{position:relative;display:flex;align-items:center;gap:12px;min-height:112px;margin:0 calc(-1 * var(--gutter));padding:calc(16px + var(--safe-top)) var(--gutter) 16px}.ph:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,var(--grid) 1px,transparent 1px),linear-gradient(to bottom,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:right -1px bottom -1px;-webkit-mask-image:linear-gradient(to right,transparent 20%,rgba(0,0,0,.55) 70%,#000);mask-image:linear-gradient(to right,transparent 20%,rgba(0,0,0,.55) 70%,#000);pointer-events:none}.ph>*{position:relative}.ph-text{flex:1;min-width:0}.ph-title{margin:0;font-size:28px;line-height:1.15;letter-spacing:-.01em;overflow-wrap:anywhere}.ph-sub{margin:4px 0 0;color:var(--muted);font-size:15px}.ph-cells{display:flex;flex:none;position:relative}.ph-cells .genko+.genko{margin-left:-1px}.ph-back{flex:none;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-10px;margin-right:-6px;color:var(--ai);border-radius:10px}.ph-back svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.hanko{position:absolute;right:-14px;bottom:-19px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:27px;height:33px;border:2px solid var(--shu);border-radius:6px;background:var(--paper);color:var(--shu);transform:rotate(-7deg);line-height:1}.hanko-ja{font:600 12px var(--font-ja)}.ph-cells.sealed{margin-right:8px}.hanko-n{font:700 12px var(--font);font-variant-numeric:tabular-nums;margin-top:1px}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--on-ai-soft);color:var(--ai);font:700 15px var(--font);text-decoration:none}.avatar img{width:100%;height:100%;object-fit:cover}.ph-bar{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;align-items:center;gap:10px;height:calc(52px + var(--safe-top));padding:var(--safe-top) calc(var(--gutter) + var(--safe-right)) 0 calc(var(--gutter) + var(--safe-left));background:var(--paper);border-bottom:1px solid var(--grid);visibility:hidden}.ph-bar.on{visibility:visible}.ph-bar .ph-back{margin-left:-8px;margin-right:-4px}.ph-bar-title{flex:1;min-width:0;font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ph-bar .digits{font-size:16px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;height:calc(var(--tabs-h) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--paper);border-top:1px solid var(--grid)}.tab{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none}.tab-icon{font:600 22px/1 var(--font-ja)}.tab-label{font-size:13px;line-height:1}.tab.active{color:var(--ai)}.tab.active .tab-label{font-weight:500}.tab.active:after{content:"";position:absolute;bottom:5px;width:14px;height:2px;border-radius:1px;background:currentColor}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;font:500 15px var(--font);color:var(--on-ai);background:var(--ai);border:1px solid var(--ai);border-radius:10px;padding:10px 18px;text-align:center;text-decoration:none}.btn.wide{display:flex;width:100%}.btn.secondary{color:var(--ai);background:var(--surface);border-color:var(--grid)}.btn.small{font-size:13px;padding:6px 12px;min-height:40px}.btn:disabled{opacity:.45}.btn.highlight{background:var(--good);border-color:var(--good);color:var(--on-ai)}.search,.select,.more{font:400 15px var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--grid);border-radius:10px;padding:10px 12px;min-height:44px}.search::placeholder{color:var(--muted)}.search:focus,.select:focus{outline:2px solid var(--ai);outline-offset:-1px}.search{flex:1;min-width:0}.select{flex:0 0 auto}.select.on{color:var(--ai);border-color:var(--ai)}.more{width:100%;margin-top:16px;color:var(--ai);font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;font:400 13px var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--grid);border-radius:10px;padding:5px 12px;text-decoration:none}.chip.on{background:var(--ai);border-color:var(--ai);color:var(--on-ai)}.chip.reset{align-self:flex-start;color:var(--ai)}.play{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;font:500 12px var(--font);color:var(--ai);background:var(--surface);border:1px solid var(--grid);border-radius:10px;padding:6px 8px;white-space:nowrap}.link-btn{font:400 13px var(--font);color:var(--ai);background:none;border:0;padding:4px 0;min-height:40px}.filters{position:sticky;top:calc(52px + var(--safe-top));z-index:2;display:flex;gap:8px;padding:8px 0;background:var(--paper)}.filter-panel{display:flex;flex-direction:column;gap:8px;padding:4px 0 8px}.range{display:flex;align-items:center;gap:8px}.count-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px}.count{margin:4px 0}.words{list-style:none;margin:0;padding:0}.word{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--grid);cursor:pointer}.word-main{flex:1;min-width:0}.word-ja .big{font-size:22px}.word-ja .kana{font-size:18px;color:var(--muted)}.word-ja .ctx,.romaji{font-size:13px;color:var(--muted)}.ru{margin-top:2px}.meta{font-size:13px;color:var(--muted);margin-top:2px}.tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:6px;background:var(--grid);color:var(--ink);font-size:12px}.plays{display:flex;flex-direction:column;gap:6px}.sheet-backdrop{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;background:var(--backdrop)}.sheet{width:100%;max-width:640px;margin:0 auto;max-height:85dvh;overflow-y:auto;background:var(--paper);border-radius:14px 14px 0 0;padding:16px calc(var(--gutter) + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(var(--gutter) + var(--safe-left))}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.sheet-head .big{font-size:34px;line-height:1.2}.sheet-close{font:400 18px var(--font);background:none;border:0;color:var(--muted);padding:8px;min-width:40px;min-height:40px}.sheet .plays{flex-direction:row;margin:8px 0}.fields{margin:0}.field{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--grid)}.field dt{flex:0 0 40%;color:var(--muted);font-size:13px;padding-top:2px}.field dd{margin:0;flex:1;min-width:0}.field dd.ja{font-size:18px}.kana-grid{display:grid;border-top:1px solid var(--cell-line);border-left:1px solid var(--cell-line);width:max-content;max-width:100%}.kana-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;padding:0;font:inherit;color:var(--ink);border:0;border-right:1px solid var(--cell-line);border-bottom:1px solid var(--cell-line)}.kana-glyphs{display:flex;width:76%;margin-top:-6px}.kana-glyphs.two{width:96%}.kana-glyphs .brush{flex:1;aspect-ratio:1}.kana-romaji{position:absolute;bottom:3px;right:5px;font-size:12px;line-height:1;color:var(--muted)}.kana-cell.empty{background:var(--paper)}.kana-sheet-glyphs{display:flex;gap:8px;justify-content:center;margin:8px 0 12px}.kana-sheet-romaji{font-size:28px;font-weight:700;text-align:center;margin:0 0 4px}.sheet-head.end{justify-content:flex-end;margin-bottom:-16px}.attribution{margin-top:28px;font-size:12px;line-height:1.5;color:var(--muted)}.attribution a{color:var(--ai)}.menu,.plain{list-style:none;margin:0;padding:0}.menu-item,.plain a{display:flex;align-items:center;gap:14px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--grid);color:var(--ink);text-decoration:none;font-size:17px}.menu-icon{width:28px;text-align:center;font:600 22px var(--font-ja);color:var(--ai)}.chev{margin-left:auto;color:var(--muted)}.chev:after{content:"";display:inline-block;width:7px;height:7px;border:solid currentColor;border-width:1.6px 1.6px 0 0;transform:rotate(45deg)}.hero{background:var(--hero);color:var(--on-hero);border-radius:14px;padding:18px;margin-top:4px}.hero-label{margin:0;font-size:15px;font-weight:500;color:var(--on-hero-soft)}.hero-count{display:flex;align-items:baseline;gap:10px;margin:6px 0 2px}.hero-count b{font-size:34px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.hero-count span{font-size:17px}.hero-split{margin:6px 0 16px;font-size:15px;color:var(--on-hero-soft)}.hero-split:last-child{margin-bottom:0}.hero .btn{background:var(--on-hero);color:var(--hero);border-color:var(--on-hero);font-weight:700}.rows{margin:12px 0 0;padding:0 14px;background:var(--surface);border-radius:14px;list-style:none}.row{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 0;color:var(--ink);text-decoration:none;font:inherit;width:100%;background:none;border:0;text-align:left}.rows>li+li .row{border-top:1px solid var(--grid)}.row-text{flex:1;min-width:0;display:flex;flex-direction:column}.row-title{font-size:17px;font-weight:500}.row-sub{font-size:13px;color:var(--muted)}.row-num{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ai)}.row.action .row-title{color:var(--ai)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:28px 0 10px}.section-head .subtitle{margin:0}.section-head a{font-size:15px;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.strip{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter) 4px;scrollbar-width:none}.strip::-webkit-scrollbar{display:none}.lesson-cell{flex:none;width:72px;height:72px;font:600 18px var(--font-ja);color:var(--ink);text-decoration:none;background:var(--surface)}.strip-note{margin:2px 0 0;font-size:15px}.strip-note a{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.train{display:flex;flex-direction:column;min-height:calc(100dvh - var(--tabs-h) - var(--safe-bottom) - 24px)}.train-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px}.counters{display:flex;gap:14px;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.cnt.new{color:var(--ai)}.cnt.learn{color:var(--ink)}.cnt.review{color:var(--good)}.cnt.cur{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.card{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;margin:8px 0 12px;padding:36px 16px 20px;text-align:center;position:relative;isolation:isolate;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--grid)}.card:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(to right,var(--grid) 1px,transparent 1px) center / 40px 40px,linear-gradient(to bottom,var(--grid) 1px,transparent 1px) center / 40px 40px;-webkit-mask-image:radial-gradient(ellipse at 50% 35%,transparent 25%,#000 85%);mask-image:radial-gradient(ellipse at 50% 35%,transparent 25%,#000 85%)}.card-big{font-size:46px;line-height:1.25}.card-mid{font-size:21px;font-weight:500}.card-small{font-size:19px;color:var(--muted)}.card-meta{font-size:13px;color:var(--muted)}.card-sep{width:100%;border:0;border-top:1px solid var(--cell-line);margin:12px 0}.card-ja,.card-ru{display:flex;flex-direction:column;gap:4px;align-items:center}.card-kanji{margin-top:4px}.card-reading{font-size:17px}.card .examples{width:100%;text-align:left}.answer-bar{position:sticky;bottom:calc(var(--tabs-h) + var(--safe-bottom) + 8px);padding-top:8px;background:var(--paper)}.grades{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.grades.two{grid-template-columns:repeat(2,1fr)}.grade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:8px 4px;font:500 15px var(--font);color:var(--ink);background:var(--surface);border:1.5px solid var(--grid);border-radius:10px}.grade-ivl{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.grade.again{border-color:var(--shu);color:var(--shu)}.grade.hard{border-color:var(--muted)}.grade.good{border-color:var(--good);color:var(--good)}.grade.easy{border-color:var(--ai);color:var(--ai)}.finish{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px}.finish p{margin:4px 0}.finish-title{font-size:21px;font-weight:700}.seal{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;margin-bottom:12px;border:3px solid var(--shu);border-radius:12px;color:var(--shu);font:600 44px var(--font-ja);transform:rotate(-8deg);animation:stamp .18s ease-out both}@keyframes stamp{0%{transform:rotate(-8deg) scale(1.2)}to{transform:rotate(-8deg) scale(1)}}.set-picker{display:flex;flex-direction:column;gap:6px;margin:8px 0;padding:8px 12px;background:var(--surface);border-radius:10px}.check{display:flex;align-items:center;gap:8px;min-height:40px}.set-picker .chip{align-self:flex-start}.sets{list-style:none;margin:8px 0 0;padding:0}.set{padding:12px 0;border-bottom:1px solid var(--grid);display:flex;flex-direction:column;gap:4px}.set-name{font-size:17px;color:var(--ink);text-decoration:none;font-weight:500;padding:10px 0}.set-actions{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.set-kanji{color:var(--ink);text-decoration:none;display:flex;align-items:baseline;gap:10px}.set-kanji .big{font-size:28px}.banner{background:var(--surface);border-radius:14px;padding:14px;margin:4px 0 8px}.banner p{margin:0 0 10px}.kanji-filters{margin:12px 0 4px}.kanji-legend{display:flex;gap:16px;margin:0 0 12px;font-size:13px;color:var(--muted)}.kanji-legend span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;vertical-align:0}.kanji-legend .studying:before{background:var(--ai);clip-path:polygon(0 0,100% 0,100% 100%)}.kanji-legend .known:before{background:var(--good);clip-path:polygon(0 0,100% 0,100% 100%)}.kanji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:12px 8px}.kanji-cell{display:flex;flex-direction:column;align-items:stretch;gap:4px;color:var(--ink);text-decoration:none;min-width:0}.kanji-square{position:relative;display:block}.kanji-cell .brush{display:flex;width:100%;aspect-ratio:1}.kanji-meaning{font-size:12px;color:var(--muted);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{position:absolute;top:1px;right:1px;width:12px;height:12px;clip-path:polygon(0 0,100% 0,100% 100%)}.kanji-cell.studying .badge{background:var(--ai)}.kanji-cell.known .badge{background:var(--good)}.kanji-head{display:flex;align-items:center;gap:16px;margin:4px 0 8px}.kanji-head .card-mid{font-size:21px}.kanji-readings{flex:1;min-width:0;align-self:stretch}.kanji-readings .field dt{flex-basis:44px}.stroke-strip{display:flex;flex-wrap:wrap;gap:10px 6px;list-style:none;margin:0;padding:0}.stroke-frame{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.examples{list-style:none;margin:0;padding:0}.examples li{padding:6px 0;border-bottom:1px solid var(--grid);display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.examples li:last-child{border-bottom:0}.examples .play{margin-left:auto}.ex-word{display:inline-block;min-width:44px;font-size:19px;color:var(--ai);text-decoration:none;padding:8px 0}.ex-word+.hint{font-size:18px;font-family:var(--font-ja);font-weight:600}.lessons{list-style:none;margin:0;padding:0}.lesson-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--grid);color:var(--ink);text-decoration:none}.lesson-num{flex:none;width:56px;height:56px;font:600 15px var(--font-ja);color:var(--ink);background:var(--surface)}.lesson-row.on .lesson-num{border-color:var(--ai);color:var(--ai)}.lesson-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lesson-title-line{display:flex;align-items:center;gap:8px}.lesson-title{font-size:17px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-intro{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-chip{font-size:12px;padding:2px 8px;border-radius:6px;color:var(--muted);border:1px solid var(--grid);white-space:nowrap}.status-chip.on{color:var(--ai);border-color:var(--ai)}.status-chip.due{color:var(--ai);border-color:var(--ai);font-weight:500}.status-chip.done{color:var(--good);border-color:var(--good)}.lesson{line-height:1.5}.intro{margin:0 0 14px;font-size:17px}.ja{font-size:19px;line-height:1.8}.big-ja{font-size:22px}.lesson-nav{display:flex;gap:6px;overflow-x:auto;margin:16px calc(-1 * var(--gutter)) 0;padding:0 var(--gutter);scrollbar-width:none}.lesson-nav::-webkit-scrollbar{display:none}.lesson-nav .chip{flex:none}.lesson-section{display:flex;align-items:baseline;gap:10px;margin:36px 0 4px;padding-bottom:8px;border-bottom:2px solid var(--ink);scroll-margin-top:64px}.lesson-section .subtitle{margin:0;font-size:21px}.section-jp{font:600 17px var(--font-ja);color:var(--muted)}.lesson-section .kana-toggle{margin-left:auto;align-self:center}.slot{display:inline-block;padding:0 6px;margin:0 1px;border-radius:6px;font:500 .8em/1.55 var(--font);letter-spacing:0;vertical-align:.08em;white-space:nowrap;color:var(--ai);background:var(--on-ai-soft);cursor:help}.slot-tip{position:fixed;z-index:9;left:var(--gutter);right:var(--gutter);bottom:calc(var(--tabs-h) + 12px + var(--safe-bottom));max-width:608px;margin:0 auto;padding:12px 14px;border-radius:10px;background:var(--ink);color:var(--paper);font-size:15px;box-shadow:0 6px 24px #0000002e}.slot-tip .slot{color:var(--paper);background:#ffffff29}.rule{padding:18px 0 20px;border-bottom:1px solid var(--grid)}.rule:last-of-type{border-bottom:0}.rule-head{display:flex;gap:10px;align-items:flex-start}.rule-num{flex:none;width:32px;height:32px;margin-top:4px;font:700 15px var(--font);color:var(--ai)}.pattern{flex:1;min-width:0;margin:0;padding:8px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--grid);font:600 22px/1.6 var(--font-ja);color:var(--ink);word-spacing:-.15em}.pattern .slot{font-size:15px;vertical-align:.15em}.p-seg{display:inline-block;max-width:100%;margin-right:.25em}.p-caption{display:block;font:400 13px/1.4 var(--font);color:var(--muted);margin-bottom:2px}.p-or{color:var(--muted);font-weight:400;margin:0 1px}.p-note{font:400 15px var(--font);color:var(--muted);word-spacing:normal}.rule-text{margin:12px 0 0;font-size:16px}.examples-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.example{background:var(--surface);border-radius:10px;border:1px solid var(--grid)}.ex-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;text-align:left;color:var(--ink);background:none;border:0;font:inherit}.ex-ja{font:600 21px/1.6 var(--font-ja)}.ex-ru{font-size:15px}.ex-toggle{margin-top:4px;font-size:13px;color:var(--ai)}.example.open .ex-toggle{color:var(--muted)}.breakdown{display:flex;flex-wrap:wrap;gap:10px 4px;padding:10px 12px 12px;border-top:1px dashed var(--grid)}.gloss-col{display:inline-flex;flex-direction:column;max-width:9.5em;padding:2px 8px 4px;border-radius:6px;background:var(--paper)}.gloss-part{font-size:19px;line-height:1.4;color:var(--ink)}.gloss-text{font-size:12px;line-height:1.3;color:var(--muted)}.mistake{margin-top:14px;padding:10px 14px 12px;border-radius:10px;background:var(--surface);border:1px dashed var(--cell-line)}.mistake-title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:2px}.mistake p{margin:0 0 6px;font-size:15px}.m-line{display:flex;gap:8px;align-items:baseline;font-size:15px}.m-line .ja-in{font-size:18px}.m-mark{flex:none;width:16px;font-weight:700}.m-line.wrong .m-mark{color:var(--shu)}.m-line.wrong .ja-in{color:var(--muted)}.m-line.right .m-mark{color:var(--good)}.summary{margin:24px 0 0;padding:12px 16px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--grid)}.summary-title{margin:0 0 6px;font-size:17px}.summary ul{margin:0;padding-left:18px}.summary li{margin:4px 0;font-size:15px}.summary li::marker{color:var(--ai)}.phrases{list-style:none;margin:0;padding:0}.phrase{padding:10px 0;border-bottom:1px solid var(--grid)}.phrase-head{display:flex;gap:8px;align-items:flex-start}.phrase-main{flex:1;cursor:pointer}.phrase-main .hint{font-size:18px;font-family:var(--font-ja);font-weight:600}.lesson-word-text{flex:1;min-width:0}.lesson-word{cursor:pointer}.note{margin-top:28px}.today-block{background:var(--surface);border-radius:14px;padding:4px 14px 14px;margin:12px 0 20px}.today-block .subtitle{margin:12px 0 4px}.audio-part{padding:12px 0;border-bottom:1px solid var(--grid);display:flex;flex-direction:column;gap:8px}.today-block .audio-part:last-child{border-bottom:0;padding-bottom:0}.audio-part-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.audio-part audio{width:100%}.audio-part summary{padding:11px 0;cursor:pointer}.accordion summary{padding:14px 0;border-bottom:1px solid var(--grid);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:17px}.part-words{font-size:15px;margin:4px 0 0;padding-left:16px}.setting{align-items:center;justify-content:space-between;min-height:52px}.search.num{flex:0 0 90px;width:90px}.search.num[type=time]{flex-basis:140px;width:140px}.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--ai)}.bot-login{margin:16px 0}.dev-login{display:flex;gap:8px;margin-top:12px}.dev-login .search{flex:0 0 90px}.welcome p{margin:0 0 14px}.home-links{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 14px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.attribution p{margin:0 0 6px}.ja-in{font-family:var(--font-ja);font-weight:600;font-size:1.05em}.crash .btn{margin-top:16px}.crash-detail{margin-top:16px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
