@import "https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;600;800&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap";:root{--sumi:#12100e;--sumi-lift:#1b1815;--sumi-sunk:#0c0a09;--rule:#2e2a25;--rule-bright:#443d35;--paper:#ede6da;--paper-dim:#9a9186;--muted:#6b635a;--faint:#453f38;--ai:#7e9cc6;--ai-deep:#4a628a;--ai-wash:#22303f;--shu:#d0452b;--mincho:"Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;--gothic:"Zen Kaku Gothic New", "Yu Gothic", system-ui, sans-serif;--rail:384px;--ease:cubic-bezier(.32, .72, .28, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--sumi);color:var(--paper);font-family:var(--gothic);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}:focus-visible{outline:2px solid var(--ai);outline-offset:2px;border-radius:2px}::selection{background:var(--ai-wash);color:var(--paper)}.shell{height:100%}.shell-grid{grid-template-columns:var(--rail) 1fr;height:100%;transition:filter .18s var(--ease), opacity .18s var(--ease);display:grid;position:relative}.shell-grid[data-dimmed]{filter:blur(7px)saturate(.7);opacity:.5;pointer-events:none}.rail{border-right:1px solid var(--rule);background:var(--sumi-sunk);overscroll-behavior:contain;overflow-y:auto}.rail-resizer{top:0;bottom:0;left:calc(var(--rail) - 5px);z-index:5;cursor:col-resize;touch-action:none;width:9px;position:absolute}.rail-resizer:after{content:"";width:1px;transition:background .12s var(--ease), box-shadow .12s var(--ease);background:0 0;position:absolute;top:0;bottom:0;left:4px}.rail-resizer:hover:after,.rail-resizer:focus-visible:after,.rail-resizer[data-dragging]:after{background:var(--ai-deep);box-shadow:0 0 0 1px var(--ai-deep)}.rail-resizer:focus-visible{outline:none}body.rail-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.rail-resizing .shell-grid>:not(.rail-resizer){pointer-events:none}.stage{background:radial-gradient(ellipse 70% 55% at 50% 38%, #16130f 0%, var(--sumi) 70%);position:relative;overflow:hidden}.rail-section{border-bottom:1px solid var(--rule);padding:20px 22px}.rail-section h2{font-family:var(--gothic);letter-spacing:.01em;color:var(--paper-dim);margin:0 0 12px;font-size:13px;font-weight:500}.hint{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.radical-strokes{align-items:baseline;gap:10px;margin:14px 0 6px;display:flex}.radical-strokes:first-of-type{margin-top:4px}.radical-strokes .count{width:14px;color:var(--faint);text-align:right;font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.radical-grid{flex-wrap:wrap;gap:3px;display:flex}.radical{font-family:var(--mincho);width:32px;height:32px;color:var(--paper-dim);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:1px solid #0000;border-radius:2px;place-items:center;font-size:18px;line-height:1;display:grid}.radical:hover:not(:disabled){background:var(--sumi-lift);color:var(--paper)}.radical[data-on=true]{background:var(--ai-wash);border-color:var(--ai-deep);color:var(--paper)}.radical:disabled{color:var(--faint);cursor:default}.results{flex-wrap:wrap;gap:2px;margin-top:12px;display:flex}.result{font-family:var(--mincho);width:38px;height:38px;color:var(--paper);cursor:pointer;transition:background .12s var(--ease);background:0 0;border:0;border-radius:2px;place-items:center;font-size:22px;line-height:1;display:grid}.result:hover{background:var(--ai-wash)}.result[data-joyo=false]{color:var(--muted)}.tally{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.clear{color:var(--ai);font-family:var(--gothic);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.clear:hover{color:var(--paper)}.detail-head{align-items:flex-start;gap:18px;display:flex}.detail-glyph{font-family:var(--mincho);color:var(--paper);font-size:76px;font-weight:600;line-height:.92}.detail-meanings{font-family:var(--mincho);color:var(--paper);margin:2px 0 0;font-size:19px;line-height:1.35}.detail-meanings .rest{color:var(--paper-dim);font-size:15px}.facts{grid-template-columns:auto 1fr;gap:4px 16px;margin:18px 0 0;font-size:13.5px;display:grid}.facts dt{color:var(--muted)}.facts dd{color:var(--paper-dim);font-variant-numeric:tabular-nums;margin:0}.facts dd .yomi{font-family:var(--mincho);color:var(--paper);font-size:15px}.fanout-line{color:var(--paper-dim);margin:16px 0 0;font-size:13.5px}.fanout-line b{color:var(--ai);font-variant-numeric:tabular-nums;font-weight:500}.graph-svg{cursor:grab;width:100%;height:100%;display:block}.graph-svg:active{cursor:grabbing}.node{cursor:pointer;transition:transform .52s var(--ease)}.node:focus,.node:focus-visible{outline:none}.node:focus-visible .plate{stroke:var(--ai);stroke-width:2px}.node text{font-family:var(--mincho);text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.node .glyph{fill:var(--paper)}.node[data-kind=component] .glyph{fill:var(--ai)}.node[data-dim=true] .glyph{fill:var(--muted)}.node[data-kind=focus] .glyph{font-weight:600}.node .plate{fill:var(--sumi);stroke:var(--rule);transition:fill .14s var(--ease), stroke .14s var(--ease)}.node[data-kind=component] .plate{stroke:var(--ai-deep)}.node:hover .plate{fill:var(--sumi-lift);stroke:var(--rule-bright)}.node[data-kind=focus] .seal{fill:none;stroke:var(--shu);stroke-width:1.5px}.node .fanout{font-family:var(--gothic);fill:var(--faint);font-variant-numeric:tabular-nums;font-size:10px}.edge{stroke:var(--rule);fill:none;transition:d .52s var(--ease)}.edge[data-down=true]{stroke:var(--ai-deep)}.edge[data-dim=true]{stroke:var(--faint)}.recent-grid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.recent-glyph{aspect-ratio:1;background:var(--sumi);border:1px solid var(--rule);color:var(--paper);font-family:var(--mincho);cursor:pointer;border-radius:3px;place-items:center;font-size:26px;line-height:1;display:grid}.recent-glyph:active,.recent-glyph:hover{border-color:var(--ai-deep);background:var(--ai-wash)}.recent-glyph[aria-current=page]{border-color:var(--shu)}.legend{z-index:4;background:var(--sumi-sunk);border:1px solid var(--rule-bright);max-width:min(340px,100% - 40px);color:var(--paper-dim);pointer-events:none;animation:legend-in .14s var(--ease);border-radius:4px;margin:0;padding:8px 12px;font-size:12px;line-height:1.7;position:absolute;bottom:50px;left:20px;box-shadow:0 8px 24px #0006}@keyframes legend-in{0%{opacity:0;transform:translateY(4px)}}.stage-empty{text-align:center;color:var(--muted);place-items:center;font-size:14px;display:grid;position:absolute;inset:0}@media (width<=900px){.shell-grid{grid-template-rows:auto 1fr;grid-template-columns:1fr}.rail{border-right:0;min-height:0}.rail-resizer{display:none}.shell-grid[data-pane=rail]{grid-template-rows:1fr}.shell-grid[data-pane=rail] .stage{visibility:hidden;pointer-events:none;position:absolute;inset:0}.shell-grid[data-pane=stage] .rail{border-bottom:1px solid var(--rule);overflow:hidden}.shell-grid[data-pane=stage] .rail>:not(.rail-top){display:none}.shell-grid[data-pane=stage] .rail-top{border-bottom:0}.rail-section.rail-top{padding:12px 16px 16px}}.rail-search-row{align-items:center;gap:10px;display:flex}.rail-search-row .search-trigger{flex:1;min-width:0}@media (prefers-reduced-motion:reduce){.node,.edge{transition:none}}.search-input{background:var(--sumi);border:1px solid var(--rule);width:100%;color:var(--paper);font-family:var(--gothic);border-radius:2px;padding:9px 11px;font-size:14.5px}.search-input::placeholder{color:var(--faint)}.search-input:focus{border-color:var(--ai-deep);outline:none}.reading-note{font-family:var(--mincho);margin-top:8px}.kanji-hits{flex-wrap:wrap;gap:4px;margin-top:14px;display:flex}.kanji-hit{border:1px solid var(--rule);cursor:pointer;text-align:left;transition:border-color .12s var(--ease), background .12s var(--ease);background:0 0;border-radius:2px;align-items:center;gap:8px;padding:4px 9px 4px 5px;display:flex}.kanji-hit:hover{background:var(--sumi-lift);border-color:var(--ai-deep)}.kanji-hit-glyph{font-family:var(--mincho);color:var(--paper);font-size:25px;line-height:1}.kanji-hit-meaning{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;max-width:128px;font-size:12px;overflow:hidden}.kanji-hit-fanout{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px;display:block}.words{margin:18px 0 0;padding:0;list-style:none}.word+.word{border-top:1px solid var(--rule);margin-top:14px;padding-top:14px}.word-head{align-items:baseline;gap:10px;margin:0;display:flex}.word-forms{font-family:var(--mincho);color:var(--paper);font-size:21px}.word-char{font:inherit;color:inherit;cursor:pointer;border:0;border-bottom:1px solid var(--ai-deep);background:0 0;padding:0}.word-char:hover{color:var(--ai)}.word-reading,.pitch{font-family:var(--mincho);color:var(--paper-dim);font-size:14px}.mora{border-top:1px solid #0000}.mora[data-high=true]{border-top-color:var(--ai)}.mora[data-drop=true]{border-right:1px solid var(--ai)}.word-common{background:var(--ai-deep);border-radius:50%;align-self:center;width:5px;height:5px}.word-inflection{color:var(--shu);opacity:.85;margin:3px 0 0;font-size:11.5px}.word-gloss{color:var(--paper-dim);margin:4px 0 0;font-size:13.5px;line-height:1.5;display:block}.sense+.sense{margin-left:8px}.sense b{color:var(--faint);vertical-align:1px;margin-right:3px;font-size:11px;font-weight:400}.vocab{margin-top:18px}.vocab h3{color:var(--muted);margin:0 0 8px;font-size:12.5px;font-weight:500}.vocab ul{margin:0;padding:0;list-style:none}.vocab-row{width:calc(100% + 12px);font:inherit;text-align:left;cursor:pointer;transition:background .12s var(--ease);background:0 0;border:0;border-radius:2px;grid-template-columns:auto auto 1fr;align-items:baseline;gap:8px;margin:0 -6px;padding:3px 6px;font-size:12.5px;display:grid}.vocab-row:hover{background:var(--sumi-lift)}.vocab-word{font-family:var(--mincho);color:var(--paper);font-size:16px}.vocab-row:hover .vocab-word{color:var(--ai)}.vocab-reading{font-family:var(--mincho);color:var(--muted)}.vocab-gloss{color:var(--paper-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drawpad{aspect-ratio:1;background:var(--sumi);border:1px solid var(--rule);touch-action:none;cursor:crosshair;border-radius:2px;width:100%;margin-top:4px;display:block}.draw-modes{gap:2px;margin:10px 0 0;display:flex}.draw-modes button{font:inherit;color:var(--muted);cursor:pointer;transition:color .12s var(--ease), background .12s var(--ease);background:0 0;border:0;border-radius:2px;padding:3px 8px;font-size:12px}.draw-modes button:hover{color:var(--paper)}.draw-modes button[data-on=true]{color:var(--paper);background:var(--ai-wash)}.drawpad-actions{align-items:baseline;gap:12px;margin:8px 0 0;display:flex}.drawpad-actions .clear:disabled{color:var(--faint);cursor:default}.draw-group{color:var(--muted);margin:16px 0 0;font-size:12.5px;font-weight:400}.assoc-text{background:var(--sumi);border:1px solid var(--rule);width:100%;color:var(--paper);font-family:var(--gothic);resize:vertical;border-radius:2px;padding:9px 11px;font-size:13.5px;line-height:1.55}.assoc-text::placeholder{color:var(--faint)}.assoc-text:focus{border-color:var(--ai-deep);outline:none}.assoc-actions{align-items:baseline;gap:12px;margin:7px 0 0;display:flex}.assoc-images{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.assoc-images figure{width:104px;margin:0}.assoc-images img{border:1px solid var(--rule);border-radius:2px;width:100%;display:block}.assoc-images figcaption{gap:10px;display:flex}.assoc-drawing{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.assoc-drawing:hover img{border-color:var(--ai-deep)}.assoc-rendered{cursor:text;border:1px solid #0000;border-radius:2px;margin:0 -11px;padding:8px 11px}.assoc-rendered:hover{border-color:var(--rule)}.md{color:var(--paper);overflow-wrap:anywhere;font-size:13.5px;line-height:1.6}.assoc-part .md{color:var(--paper-dim);font-size:13px}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md blockquote,.md pre,.md table{margin:0 0 .6em}.md h1,.md h2,.md h3,.md h4{font-family:var(--gothic);letter-spacing:0;text-transform:none;color:var(--paper);margin:.9em 0 .35em;font-size:14px;font-weight:700}.md h1{font-size:16px}.md ul,.md ol{padding-left:1.3em}.md li+li{margin-top:.15em}.md a{color:var(--ai)}.md strong{font-weight:700}.md code{background:var(--sumi-sunk);border:1px solid var(--rule);border-radius:2px;padding:0 4px;font-size:12.5px}.md pre{background:var(--sumi-sunk);border:1px solid var(--rule);border-radius:2px;padding:8px 10px;overflow-x:auto}.md pre code{background:0 0;border:0;padding:0}.md blockquote{border-left:2px solid var(--ai-deep);color:var(--paper-dim);padding-left:10px}.md hr{border:0;border-top:1px solid var(--rule);margin:.8em 0}.md table{border-collapse:collapse;font-size:12.5px}.md th,.md td{border:1px solid var(--rule);text-align:left;padding:3px 7px}.md img{max-width:100%}.sketch-overlay{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:sketch-in .18s var(--ease);background:#08070673;justify-content:center;align-items:center;padding:4vh 4vw;display:flex;position:fixed;inset:0}@keyframes sketch-in{0%{opacity:0}}.sketch-panel{background:var(--sumi-lift);border:1px solid var(--rule-bright);border-radius:4px;flex-direction:column;width:min(1200px,100%);height:min(860px,100%);display:flex;overflow:hidden;box-shadow:0 24px 60px #0000008c}.sketch-head{border-bottom:1px solid var(--rule);align-items:center;gap:14px;padding:10px 16px;display:flex}.sketch-head h2{color:var(--paper-dim);margin:0 auto 0 0;font-size:14px;font-weight:500}.sketch-char{font-family:var(--mincho);color:var(--paper);vertical-align:-2px;font-size:22px}.sketch-done{font:inherit;background:var(--ai-deep);color:var(--paper);border:1px solid var(--ai);cursor:pointer;border-radius:2px;padding:5px 16px;font-size:13px}.sketch-done:hover:not(:disabled){background:var(--ai);color:var(--sumi)}.sketch-done:disabled{opacity:.5;cursor:default}.sketch-canvas{flex:1;min-height:0;position:relative}@media (width<=640px){.sketch-overlay{padding:0}.sketch-panel{border:0;border-radius:0;height:100%}}.assoc-parts{margin-top:18px}.assoc-parts h3{color:var(--muted);margin:0 0 8px;font-size:12.5px;font-weight:500}.assoc-part{border-top:1px solid var(--rule);grid-template-columns:auto 1fr;gap:10px;padding:7px 0;display:grid}.assoc-part p{color:var(--paper-dim);margin:0;font-size:13px;line-height:1.5}.assoc-part-glyph{font-family:var(--mincho);color:var(--ai);cursor:pointer;background:0 0;border:0;padding:0;font-size:24px;line-height:1}.assoc-part-glyph:hover{color:var(--paper)}.assoc-author{color:var(--muted);font-size:11.5px}.decomp-edit{align-items:center;gap:10px;margin-top:10px;display:flex}.decomp-input{font-family:var(--mincho);flex:1;padding:6px 9px;font-size:19px}.decomp-edit .clear:disabled{color:var(--faint);cursor:default}.review{margin:10px 0 0;padding:0;list-style:none}.review li{border-top:1px solid var(--rule);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:5px 0;font-size:12px;display:grid}.review-glyph{font-family:var(--mincho);color:var(--paper);cursor:pointer;background:0 0;border:0;padding:0;font-size:22px;line-height:1}.review-glyph:hover{color:var(--ai)}.review-why{color:var(--muted)}.review-freq{color:var(--faint);font-variant-numeric:tabular-nums}.strokes{margin-top:18px}.strokes h3{color:var(--muted);margin:0 0 8px;font-size:12.5px;font-weight:500}.strokes-count{color:var(--faint);font-variant-numeric:tabular-nums}.strokes ol{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.strokes li{border:1px solid var(--rule);border-radius:2px;width:38px;height:38px}.strokes svg{width:100%;height:100%;display:block}.strokes path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:5.5px}.strokes .done path{stroke:var(--faint)}.strokes .new{stroke:var(--paper)}.overlay{z-index:40;overscroll-behavior:contain;background:#0807068c;justify-content:center;align-items:flex-start;padding:7vh 20px 20px;display:flex;position:fixed;inset:0}.overlay-panel{background:var(--sumi-lift);border:1px solid var(--rule-bright);border-radius:4px;flex-direction:column;width:min(720px,100%);max-height:86vh;padding:18px 20px 20px;display:flex;box-shadow:0 24px 60px #0000008c}.overlay-input{padding:11px 13px;font-size:17px}.overlay-tabs{align-items:center;gap:4px;margin-top:12px;display:flex}.overlay-tabs button{color:var(--paper-dim);font-family:var(--gothic);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:1px solid #0000;border-radius:2px;padding:4px 10px;font-size:12.5px}.overlay-tabs button:hover{background:var(--sumi);color:var(--paper)}.overlay-tabs button[data-on=true]{background:var(--ai-wash);border-color:var(--ai-deep);color:var(--paper)}.overlay-tab-rule{background:var(--rule-bright);width:1px;height:16px;margin:0 6px}@media (width<=640px){.overlay-tabs{flex-wrap:wrap;row-gap:6px}.overlay-tab-rule{flex-basis:100%;height:0;margin:0}}.overlay-body{overscroll-behavior:contain;margin-top:14px;overflow-y:auto}.overlay-group{color:var(--muted);margin:18px 0 8px;font-size:12.5px;font-weight:500}.overlay-group:first-child{margin-top:0}.level-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:3px;margin-top:8px;display:grid}.level-cell{aspect-ratio:1;font-family:var(--mincho);border:1px solid var(--rule);color:var(--paper);cursor:pointer;transition:background .12s var(--ease), border-color .12s var(--ease);background:0 0;border-radius:2px;place-items:center;font-size:24px;line-height:1;display:grid}.level-cell:hover{background:var(--ai-wash);border-color:var(--ai-deep)}.level-cell[data-faint=true],.kanji-hit[data-faint=true]{border-style:dashed;border-color:var(--faint);color:var(--muted)}.level-cell[data-faint=true]:hover{color:var(--paper)}.rail-top{z-index:2;background:var(--sumi-sunk);position:sticky;top:0}.search-trigger{background:var(--sumi);border:1px solid var(--rule);width:100%;color:var(--muted);font-family:var(--gothic);text-align:left;cursor:pointer;transition:border-color .12s var(--ease), color .12s var(--ease);border-radius:2px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.search-trigger:hover{border-color:var(--ai-deep);color:var(--paper)}.search-trigger kbd{font-family:var(--gothic);color:var(--faint);border:1px solid var(--rule-bright);border-radius:2px;padding:0 5px;font-size:11px;line-height:1.5}.stage{container:stage/inline-size}@container stage (width<=900px){.filter-count{display:none}}@container stage (width<=780px){.view-switch{top:50px}}.stage-corner{z-index:3;align-items:center;gap:12px;display:flex;position:absolute;top:10px;right:16px}.filter{align-items:center;gap:2px;display:flex}.filter button{color:var(--muted);font-family:var(--gothic);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:1px solid #0000;border-radius:2px;padding:3px 8px;font-size:11.5px}.filter button:hover{background:var(--sumi-lift);color:var(--paper)}.filter button[data-on=true]{background:var(--ai-wash);border-color:var(--ai-deep);color:var(--paper)}.filter-count{color:var(--faint);font-variant-numeric:tabular-nums;margin-left:10px;font-size:11.5px}.info-button{border:1px solid var(--rule-bright);width:24px;height:24px;color:var(--muted);font-family:var(--mincho);cursor:pointer;transition:color .12s var(--ease), border-color .12s var(--ease);background:0 0;border-radius:50%;font-size:13px;font-style:italic;line-height:1;position:absolute;bottom:16px;left:20px}.info-button:hover,.info-button[aria-expanded=true]{color:var(--paper);border-color:var(--paper-dim)}.info-button[aria-expanded=true]{background:var(--sumi-lift)}.account-about{border-top:1px solid var(--rule);margin-top:4px;padding-top:12px}.offline{border-top:1px solid var(--rule);gap:6px;padding-top:12px;display:grid}.offline h3{color:var(--paper-dim);margin:0;font-size:12px;font-weight:500}.offline .assoc-actions{margin:2px 0 0}.offline-meta{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.offline-bar{background:var(--rule);border-radius:2px;height:3px;overflow:hidden}.offline-bar span{background:var(--ai);height:100%;transition:width .3s var(--ease);display:block}.account-about summary{color:var(--muted);cursor:pointer;font-size:12px}.account-about summary:hover{color:var(--paper)}.account-about[open] summary{color:var(--paper-dim);margin-bottom:10px}.about-list{margin:0 0 14px;padding:0;list-style:none}.about-list li{border-top:1px solid var(--rule);grid-template-columns:1fr auto;gap:2px 14px;padding:7px 0;font-size:12.5px;display:grid}.about-list a{color:var(--paper-dim);border-bottom:1px solid var(--rule-bright);text-decoration:none}.about-list a:hover{color:var(--paper)}.about-list li span{color:var(--muted)}.about-licence{text-align:right;grid-area:1/2/span 2;align-self:center;color:var(--faint)!important}.drawpad-wrap{grid-template-columns:300px 1fr;align-items:start;gap:20px;display:grid}.drawpad-left .drawpad{margin-top:0}.drawpad-right:empty:before{content:"Draw a character or a part of one.";color:var(--muted);font-size:13px}.drawpad-right .draw-group:first-child{margin-top:0}@media (width<=640px){.drawpad-wrap{grid-template-columns:1fr}}.node-level{font-family:var(--gothic);fill:var(--paper-dim);font-variant-numeric:tabular-nums;font-size:10px}.word-open{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13.5px}.word-open:hover{color:var(--paper)}.view-switch{border:1px solid var(--rule);background:var(--sumi-sunk);z-index:3;border-radius:3px;gap:2px;padding:2px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.view-switch button{color:var(--muted);font-family:var(--gothic);letter-spacing:.02em;cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:0;border-radius:2px;padding:3px 12px;font-size:12px}.view-switch button:hover{color:var(--paper)}.view-switch button[aria-selected=true]{background:var(--sumi-lift);color:var(--paper);box-shadow:inset 0 -1px 0 var(--shu)}.filter,.info-button{z-index:3}.map-host,.map{position:absolute;inset:0}.map-host[hidden]{display:none}.map-canvas{cursor:grab;touch-action:none;display:block}.map-canvas:active{cursor:grabbing}.map-tip{background:var(--sumi-sunk);border:1px solid var(--rule-bright);pointer-events:none;z-index:4;border-radius:2px;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;max-width:240px;padding:6px 11px 6px 8px;display:grid;position:absolute;top:0;left:0;box-shadow:0 6px 18px #00000073}.map-tip[hidden]{display:none}.map-tip b{font-family:var(--mincho);color:var(--paper);grid-row:1/span 2;font-size:28px;font-weight:600;line-height:1}.map-tip span{color:var(--paper);font-size:12.5px;line-height:1.3}.map-tip em{color:var(--muted);font-size:11px;font-style:normal}.map-status{background:var(--sumi-sunk);border:1px solid var(--rule);color:var(--paper-dim);white-space:nowrap;z-index:3;border-radius:2px;align-items:center;gap:10px;margin:0;padding:6px 14px;font-size:12.5px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.map-status-dots{background:linear-gradient(90deg, var(--ai) 0 30%, transparent 30%) 0 0 / 200% 100%;width:22px;height:2px;animation:1.1s linear infinite map-dots}@keyframes map-dots{to{background-position:-200% 0}}.map-absent-glyph{font-family:var(--mincho);color:var(--paper);font-size:16px}.map-absent button{background:var(--ai-wash);border:1px solid var(--ai-deep);color:var(--paper);font-family:var(--gothic);cursor:pointer;border-radius:2px;padding:2px 9px;font-size:11.5px}.map-absent button:hover{border-color:var(--ai)}.map-zoom{border:1px solid var(--rule);background:var(--sumi-sunk);z-index:3;border-radius:2px;flex-direction:column;display:flex;position:absolute;bottom:16px;right:20px}.map-zoom button{width:30px;height:30px;color:var(--paper-dim);font-family:var(--gothic);cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.map-zoom button+button{border-top:1px solid var(--rule)}.map-zoom button:disabled{color:var(--faint);cursor:default;background:0 0}.map-zoom button:hover:not(:disabled){color:var(--paper);background:var(--sumi-lift)}.graph-main{transition:opacity .18s var(--ease), filter .18s var(--ease)}.graph-main[data-peek]{opacity:.4;filter:saturate(.6)}.peek-veil{animation:peek-fade .18s var(--ease) both}.peek-edge{fill:none;stroke:var(--rule-bright);stroke-width:.8px;animation:peek-fade .26s var(--ease) both}.peek-host .plate{fill:var(--sumi-lift);stroke:var(--paper-dim)}.peek-node{cursor:pointer;animation:peek-in .3s var(--ease) both}.peek-node:focus{outline:none}.peek-node text{font-family:var(--mincho);text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.peek-node .plate{fill:var(--sumi);stroke:var(--rule-bright);stroke-width:.75px;transition:fill .12s var(--ease), stroke .12s var(--ease)}.peek-node .glyph{fill:var(--paper)}.peek-node[data-dim=true] .glyph{fill:var(--muted)}.peek-node:hover .plate,.peek-node:focus-visible .plate{fill:var(--sumi-lift);stroke:var(--ai)}.peek-node .peek-meaning{font-family:var(--gothic);fill:var(--muted);font-size:7.5px}.peek-more{font-family:var(--gothic);fill:var(--muted);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:9px}.above-mark{fill:none;stroke:var(--paper-dim);stroke-linecap:round;opacity:.55;pointer-events:none}@keyframes peek-in{0%{transform:var(--from);opacity:0}to{transform:var(--to);opacity:1}}@keyframes peek-fade{0%{opacity:0}}.word-panel{animation:peek-fade .16s var(--ease) both}.back-link{color:var(--muted);font-family:var(--gothic);cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:baseline;gap:6px;margin:0 0 14px -6px;padding:2px 6px;font-size:12.5px;display:inline-flex}.back-link:hover{color:var(--paper);background:var(--sumi-lift)}.back-glyph{font-family:var(--mincho);color:var(--paper);font-size:16px}.rail-section .entry-head{font-family:var(--mincho);letter-spacing:.02em;color:var(--paper);margin:0;font-size:44px;font-weight:600;line-height:1.1}.entry-char{font:inherit;color:inherit;letter-spacing:inherit;border:0;border-bottom:1px solid var(--ai-deep);cursor:pointer;transition:color .12s var(--ease), border-color .12s var(--ease);background:0 0;padding:0}.entry-char:hover{color:var(--ai);border-bottom-color:var(--ai)}.entry-reading{font-family:var(--mincho);color:var(--paper-dim);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:8px 0 0;font-size:17px;display:flex}.entry-reading .pitch{font-size:17px}.entry-rank{font-family:var(--gothic);color:var(--muted);font-size:11.5px}.entry-senses{margin:18px 0 0;padding:0 0 0 20px}.entry-senses li{color:var(--faint);padding-left:2px;font-size:12px}.entry-senses li+li{margin-top:10px}.entry-pos{color:var(--muted);margin:0;font-size:11px}.entry-gloss{color:var(--paper);margin:1px 0 0;font-size:14px;line-height:1.5}.entry-forms{color:var(--muted);margin:16px 0 0;font-size:12px}.entry-form{font-family:var(--mincho);color:var(--paper-dim);margin-right:10px;font-size:15px}.entry-form[data-rare]{color:var(--faint)}.entry-kanji h3,.entry-examples h3{color:var(--muted);margin:0 0 8px;font-size:12.5px;font-weight:500}.entry-kanji{margin-top:22px}.entry-kanji ul,.entry-examples ul{margin:0;padding:0;list-style:none}.entry-kanji li{border-top:1px solid var(--rule);grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:7px 0;display:grid}.entry-kanji li p{margin:0}.entry-kanji-glyph{width:50px;height:50px;font-family:var(--mincho);color:var(--paper);background:var(--sumi);border:1px solid var(--rule);cursor:pointer;transition:border-color .12s var(--ease), color .12s var(--ease), background .12s var(--ease);border-radius:50%;place-items:center;font-size:32px;line-height:1;display:grid}.entry-kanji-glyph:hover{border-color:var(--ai);color:var(--ai);background:var(--sumi-lift)}.entry-kanji-glyph[data-current]{border-color:var(--shu)}.entry-kanji-meaning{color:var(--paper);font-size:13.5px;line-height:1.35}.entry-kanji-level{color:var(--muted);margin-left:8px;font-size:11px}.entry-kanji-yomi{font-family:var(--mincho);color:var(--paper-dim);white-space:pre;font-size:13.5px;margin-top:2px!important}.entry-examples{margin-top:20px}.entry-examples li{border-top:1px solid var(--rule);font-family:var(--mincho);color:var(--paper-dim);padding:5px 0;font-size:15px;line-height:1.65}.entry-examples mark{color:var(--paper);box-shadow:inset 0 -.35em 0 var(--ai-wash);background:0 0}@media (prefers-reduced-motion:reduce){.peek-node,.peek-edge,.peek-veil,.word-panel{animation:none}}.map-host:not([hidden])~.stage-corner .filter{background:var(--sumi-sunk);border:1px solid var(--rule);border-radius:3px;padding:3px 6px}.account-panel{gap:12px;width:min(440px,100%)}.account-panel h2{color:var(--paper-dim);overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:500}.account-form label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.account-row{gap:8px;display:flex}.account-row .assoc-text{resize:none;flex:1;min-width:0}.account-submit{background:var(--ai-wash);border:1px solid var(--ai-deep);color:var(--paper);font-family:var(--gothic);cursor:pointer;border-radius:2px;flex:none;padding:0 12px;font-size:12.5px}.account-submit:disabled{opacity:.45;cursor:default}.google-slot{justify-content:center;display:flex}.google-slot[data-shown]{min-height:40px}.account-or{color:var(--muted);text-align:center;margin:0;font-size:12px}.account-problem{color:var(--shu);margin:0;font-size:12.5px}.account-dev{border:1px dashed var(--rule-bright);color:var(--paper-dim);border-radius:2px;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.5}.account-dev a{color:var(--ai)}.assoc-visibility{gap:2px;display:inline-flex}.assoc-visibility button{color:var(--muted);font-family:var(--gothic);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:1px 6px;font-size:11.5px}.assoc-visibility button:hover{color:var(--paper)}.assoc-visibility button[data-on=true]{background:var(--ai-wash);border-color:var(--ai-deep);color:var(--paper)}.assoc-actions .tally{margin-left:auto}.assoc-local-note{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.5}.assoc-local-note .clear{font-size:12px}.assoc-image-pending{aspect-ratio:1;border:1px solid var(--rule);border-radius:2px;display:block}.avatar{background:var(--sumi-lift);color:var(--paper);font-family:var(--gothic);object-fit:cover;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:500;line-height:1;display:inline-grid;overflow:hidden}.avatar-none{color:var(--muted)}.avatar-none svg{margin-top:18%}.profile-button{background:var(--sumi-sunk);border:1px solid var(--rule-bright);cursor:pointer;transition:border-color .12s var(--ease);border-radius:50%;place-items:center;padding:1px;display:grid}.profile-button:hover{border-color:var(--paper-dim)}.profile-button:hover .avatar-none{color:var(--paper)}.profile-button[data-busy]{animation:profile-busy 1.2s var(--ease) infinite alternate}@keyframes profile-busy{to{border-color:var(--ai)}}.profile-head{align-items:center;gap:16px;display:flex}.profile-picture{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:relative;overflow:hidden}.profile-picture .avatar{display:grid}.profile-picture-edit{color:var(--paper);opacity:0;transition:opacity .12s var(--ease);background:#0c0a09b8;padding:3px 0 7px;font-size:11px;position:absolute;inset:auto 0 0}.profile-picture:hover .profile-picture-edit,.profile-picture:focus-visible .profile-picture-edit{opacity:1}.profile-who{flex-direction:column;gap:1px;min-width:0;display:flex}.profile-who strong{color:var(--paper);overflow-wrap:anywhere;font-size:15px;font-weight:500}.profile-who span{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}.profile-who .profile-email{color:var(--faint)}.profile-picture-actions{margin:0}.profile-form{gap:6px;display:grid}.profile-form label{margin:4px 0 0}.profile-handle{border:1px solid var(--rule);background:var(--sumi);border-radius:2px;align-items:center;display:flex}.profile-handle:focus-within{border-color:var(--ai-deep)}.profile-handle span{color:var(--muted);padding-left:11px;font-size:13.5px}.profile-handle .assoc-text{border:0;padding-left:2px}.profile-rule{color:var(--shu);margin:0;font-size:12px}.profile-save{justify-content:flex-end;align-items:center;gap:12px;margin-top:4px}.profile-save .account-submit{padding:5px 14px}.assoc-group{margin-top:22px}.assoc-group-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.assoc-group h3{color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:12.5px;font-weight:500;display:flex}.assoc-group-head h3{margin:0}.assoc-sort{gap:2px;display:inline-flex}.assoc-sort button{color:var(--muted);font-family:var(--gothic);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:1px 7px;font-size:11.5px}.assoc-sort button:hover{color:var(--paper)}.assoc-sort button[data-on=true]{background:var(--sumi-lift);border-color:var(--rule-bright);color:var(--paper)}.discussion-count{border:1px solid var(--rule-bright);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:11px;line-height:1.5}.discussion-empty{border:1px dashed var(--rule);color:var(--muted);border-radius:4px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.5}.comment{background:var(--sumi);border:1px solid var(--rule);border-radius:4px;margin-bottom:8px;padding:11px 13px 10px}.comment-head{align-items:center;gap:8px;min-width:0;font-size:12.5px;line-height:1.3;display:flex}.comment-name{color:var(--paper);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.comment-handle{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.comment-you{border:1px solid var(--ai-deep);color:var(--ai);border-radius:2px;flex:none;padding:0 5px;font-size:10.5px}.comment-head time{color:var(--faint);flex:none;margin-left:auto;font-size:11.5px}.comment-body{margin-top:6px;padding-left:34px}.comment-body .assoc-images{margin-top:8px}.comment-actions{align-items:center;gap:14px;margin-top:9px;padding-left:34px;display:flex}.comment-like{border:1px solid var(--rule-bright);color:var(--muted);font-family:var(--gothic);font-variant-numeric:tabular-nums;cursor:pointer;transition:color .12s var(--ease), border-color .12s var(--ease), background .12s var(--ease);background:0 0;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;line-height:1.4;display:inline-flex}.comment-like:hover:not(:disabled){color:var(--paper);border-color:var(--paper-dim)}.comment-like[aria-pressed=true]{color:var(--paper);background:var(--ai-wash);border-color:var(--ai-deep)}.comment-like[aria-pressed=true] svg{color:var(--ai)}.comment-like:disabled{cursor:default;border-color:var(--rule)}.comment-thread-toggle{color:var(--paper-dim)}.replies{gap:6px;margin:10px 0 0 34px;display:grid}.reply{background:var(--sumi-sunk);border:1px solid var(--rule);border-radius:3px;padding:8px 10px}.reply .comment-actions{margin-top:5px}.reply .md{font-size:13px}.discussion-more{border:1px dashed var(--rule-bright);width:100%;color:var(--paper-dim);font-family:var(--gothic);cursor:pointer;transition:color .12s var(--ease), border-color .12s var(--ease);background:0 0;border-radius:3px;padding:6px 10px;font-size:12px}.discussion-more:hover:not(:disabled){color:var(--paper);border-color:var(--ai-deep)}.discussion-more:disabled{cursor:default;opacity:.6}.reply-form{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.reply-form .avatar{margin-top:6px}.reply-form .assoc-text{resize:none;font-size:13px}.reply-form-actions{grid-column:2;justify-content:flex-end;align-items:center;gap:14px;display:flex}.reply-form-actions .account-submit{padding:4px 14px}.reply-start{justify-self:start}@media (prefers-reduced-motion:reduce){.profile-button[data-busy]{animation:none}}.rail-tabs{border-top:1px solid var(--rule);gap:4px;margin:14px -22px -20px;padding:0 22px;display:flex}.rail-tabs button{color:var(--muted);font-family:var(--gothic);cursor:pointer;transition:color .12s var(--ease);background:0 0;border:0;align-items:center;gap:6px;padding:10px 10px 11px;font-size:13px;display:inline-flex;position:relative}.rail-tabs button:first-child{font-family:var(--mincho);margin-left:-10px;font-size:15px}.rail-tabs button:first-child span{font-family:var(--gothic);font-size:13px}.rail-tabs button:hover,.rail-tabs button[aria-selected=true]{color:var(--paper)}.rail-tabs button[aria-selected=true]:after{content:"";background:var(--shu);height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.rail-tab-count{border:1px solid var(--rule-bright);color:var(--paper-dim);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:11px;line-height:1.5}.composer{background:var(--sumi);border:1px solid var(--rule);transition:border-color .12s var(--ease);border-radius:4px;padding:10px 12px}.composer[data-open],.composer:focus-within{border-color:var(--rule-bright)}.assoc-group .composer{margin-bottom:8px}.composer-main{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.composer-text{width:100%;min-height:28px;color:var(--paper);font-family:var(--gothic);resize:none;background:0 0;border:0;padding:4px 0;font-size:13.5px;line-height:1.55}.composer-text:focus{outline:none}.composer-text::placeholder{color:var(--muted)}.composer-attachments{flex-wrap:wrap;gap:8px;margin:8px 0 0 38px;display:flex}.composer-attachments figure{width:88px;margin:0}.composer-attachments img,.composer-attachments .assoc-image-pending{aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);background:var(--sumi-sunk);border-radius:2px;width:100%;display:block}.composer-attachments figcaption{gap:10px;margin-top:2px;display:flex}.composer-bar{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 0 38px;padding-top:9px;display:flex}.composer-tool{color:var(--paper-dim);font-family:var(--gothic);cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:5px;margin-left:-4px;padding:2px 4px;font-size:12px;display:inline-flex}.composer-tool:hover{color:var(--paper);background:var(--sumi-lift)}.composer-send{align-items:center;gap:12px;margin-left:auto;display:inline-flex}.composer-local{color:var(--muted);font-size:11.5px}.composer-local .clear{font-size:11.5px}.composer-post{background:var(--ai-deep);border:1px solid var(--ai);color:var(--paper);font-family:var(--gothic);cursor:pointer;border-radius:2px;padding:4px 16px;font-size:12.5px}.composer-post:hover:not(:disabled){background:var(--ai);color:var(--sumi)}.composer-post:disabled{opacity:.4;cursor:default}.comment[data-private]{background:var(--sumi-sunk);border-style:dashed}.comment-own{align-items:center;gap:12px;margin-left:auto;display:inline-flex}.comment-badge{border:1px solid var(--rule-bright);color:var(--muted);font-family:var(--gothic);background:0 0;border-radius:2px;padding:0 6px;font-size:11px;line-height:1.6}.comment-badge[data-public]{border-color:var(--ai-deep);color:var(--ai)}.comment-danger{color:var(--shu)}html{scrollbar-width:thin;scrollbar-color:var(--rule-bright) transparent}.rail{scrollbar-gutter:stable;scrollbar-color:transparent transparent}.rail:hover,.rail:focus-within{scrollbar-color:var(--rule-bright) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--rule-bright);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}@media (width<=900px){.rail{scrollbar-gutter:auto}.rail-tabs{scrollbar-width:none;gap:0;margin:10px -16px -16px;padding:0 8px;overflow-x:auto}.rail-tabs button{flex:none;padding:9px 8px 10px;font-size:12.5px}.rail-tabs button:first-child{margin-left:0}.rail-tabs button[aria-selected=true]:after{left:8px;right:8px}}.graph-svg,.map-canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.graph-svg{touch-action:none}.hold-card{z-index:6;background:var(--sumi-sunk);border:1px solid var(--rule-bright);pointer-events:none;width:260px;animation:hold-in .12s var(--ease);border-radius:4px;padding:10px 12px;position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 28px #00000080}@keyframes hold-in{0%{opacity:0;transform:translate(-50%,calc(6px - 100%))}}.hold-card-head{align-items:flex-start;gap:12px;display:flex}.hold-card-glyph{font-family:var(--mincho);color:var(--paper);font-size:40px;line-height:1}.hold-card-head p{font-family:var(--mincho);color:var(--paper);margin:2px 0 0;font-size:15px;line-height:1.35}.hold-card-head p span{color:var(--paper-dim);font-size:13px}.hold-card dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:10px 0 0;font-size:12.5px;display:grid}.hold-card dt{color:var(--muted)}.hold-card dd{color:var(--paper-dim);margin:0}.hold-card dd.yomi{font-family:var(--mincho);color:var(--paper)}@media (prefers-reduced-motion:reduce){.hold-card{animation:none}}
