.kanji-map-page{position:relative;left:50%;transform:translateX(-50%);width:min(1180px,calc(100vw - 3rem))}.kanji-map-page .kanji-map{width:100%;max-width:100%}.kanji-map{--km-bg:#102325;--km-panel:#142d2e;--km-line:#335352;--km-ink:#e9f1e8;--km-muted:#afc5bd;--km-accent:#d9ee9b;box-sizing:border-box;width:100%;max-width:100%;margin:2rem 0 3rem;padding:clamp(1rem,2.5vw,2rem);border:1px solid #476361;border-radius:18px;background:var(--km-bg);color:var(--km-ink);font-family:system-ui,sans-serif;font-size:15px;line-height:1.6;color-scheme:dark}.kanji-map *{box-sizing:border-box}.kanji-map [hidden]{display:none!important}.kanji-map p{margin:0}.kanji-map .km-eyebrow{font-size:10px;font-weight:650;letter-spacing:.18em;color:var(--km-accent);margin:0 0 .55rem}.kanji-map .km-lede{font-size:clamp(1.45rem,3vw,2.3rem);letter-spacing:-.035em;font-weight:550;line-height:1.2;margin:0 0 .7rem}.km-intro>p:last-child{color:var(--km-muted);font-size:.9rem}.km-intro{padding-bottom:1.5rem;border-bottom:1px solid var(--km-line);margin-bottom:1.5rem}.kanji-map button,.kanji-map input{font:inherit}.kanji-map button{min-height:44px;border:1px solid var(--km-line);border-radius:7px;padding:.5rem .8rem;background:#1a3838;color:var(--km-ink);cursor:pointer;line-height:1.4}.kanji-map button:hover{background:#284a47;border-color:#9ab6a8}.kanji-map button:disabled{opacity:.4;cursor:default}.kanji-map :is(button,input,a,[tabindex]):focus-visible{outline:3px solid var(--km-accent);outline-offset:3px}.kanji-map .km-search label{display:block;font-size:.8rem;color:var(--km-muted);margin-bottom:.45rem}.km-search-row{display:flex;gap:.6rem;max-width:650px}.kanji-map input{min-width:0;flex:1;border:1px solid #688079;border-radius:8px;padding:.55rem .8rem;background:#091c1d;color:var(--km-ink);font-size:1.45rem;letter-spacing:.06em}.kanji-map .km-search button{padding:.65rem 1.25rem;background:var(--km-accent);border-color:var(--km-accent);color:#172820;font-weight:650}.km-search button span{margin-left:.8rem}.km-examples{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.9rem}.km-examples>span{color:var(--km-muted);font-size:.72rem;margin-right:.2rem}.kanji-map .km-examples button{display:flex;gap:.5rem;align-items:center;background:0 0;padding:.3rem .65rem;font-size:1.2rem}.km-examples small{font-size:.72rem;color:var(--km-muted)}.km-search-choices{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.km-search-choices:not(:empty){margin-top:.8rem}.km-search-choices>span{font-size:.8rem;color:var(--km-muted)}.kanji-map .km-status{font-size:.75rem;min-height:2.7rem;padding:.75rem 0;color:var(--km-muted)}.km-workspace{display:grid;grid-template-columns:minmax(0,1fr)255px;border:1px solid var(--km-line);border-radius:12px;overflow:hidden}.km-canvas-panel{min-width:0;background:#0c2022}.km-toolbar{display:flex;gap:.6rem;align-items:center;justify-content:space-between;padding:.65rem .8rem;border-bottom:1px solid var(--km-line);font-size:.72rem}.km-history{display:flex;gap:.3rem}.kanji-map .km-history button{padding:.25rem .7rem;background:0 0;font-size:1rem}.km-graph-heading{color:var(--km-muted)}.kanji-map .km-reset{background:0 0;font-size:.68rem;padding:.35rem .5rem}.km-viewport{position:relative;height:540px;overflow:hidden;cursor:grab;touch-action:none;isolation:isolate;background-image:radial-gradient(#36504f 1px,transparent 1px);background-size:22px 22px}.km-viewport.km-dragging{cursor:grabbing}.km-world{position:absolute;left:0;top:0;transform-origin:0 0}.km-lines{position:absolute;inset:0;overflow:visible;max-width:none!important;margin:0!important}.km-edge{fill:none;stroke:#799c98;stroke-width:1.5}.km-edge-parent{stroke-dasharray:5 5;opacity:.8}.kanji-map .km-node{position:absolute;transform:translate(-50%,-50%);width:72px;height:72px;min-height:72px;padding:0;border:1.5px solid #809c8c;border-radius:50%;background:#1a3937;color:#edf3e4;display:grid;place-items:center;box-shadow:0 3px 14px #0002;cursor:pointer}.km-node>span{font-family:noto sans cjk jp,yu gothic,Meiryo,sans-serif;font-size:32px;line-height:1;font-weight:400}.kanji-map .km-root{background:var(--km-accent);border-color:var(--km-accent);color:#20352b}.kanji-map .km-root:hover{background:#e8f6c2}.kanji-map .km-node[aria-pressed=true]{box-shadow:0 0 0 5px #d9ee9b26}.kanji-map .km-parent{background:#142b2d;border-style:dashed;border-color:#698783;color:#bdcfc7}.km-node small{position:absolute;top:79px;left:50%;transform:translateX(-50%);white-space:nowrap;font:11px system-ui,sans-serif;color:var(--km-muted);background:#0c2022;border-radius:3px;padding:0 3px}.km-node b{position:absolute;right:-3px;bottom:-1px;display:grid;place-items:center;width:22px;height:22px;border:1px solid #789589;border-radius:50%;background:#294b40;color:#eef5df;font:16px system-ui,sans-serif}.km-bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem .8rem;border-top:1px solid var(--km-line)}.kanji-map .km-expand{font-size:.73rem;background:0 0}.km-zoom{display:flex;align-items:center;gap:.35rem}.kanji-map .km-zoom button{font-size:.9rem;background:0 0;min-width:36px;padding:.4rem .55rem}.km-zoom-value{font-size:.65rem;color:var(--km-muted);min-width:2.3rem;text-align:center}.km-legend{display:flex;flex-wrap:wrap;gap:.9rem;padding:.35rem 1rem;font-size:.65rem;color:var(--km-muted)}.km-legend span{display:flex;align-items:center;gap:.4rem}.km-legend i{display:inline-block;width:9px;height:9px;background:#28473c;border:1px solid #809c8c;border-radius:50%}.km-legend .km-legend-focus{background:var(--km-accent)}.km-legend .km-legend-parent{background:0 0;border-style:dashed}.kanji-map .km-help{font-size:.65rem;color:var(--km-muted);padding:.4rem 1rem 1rem}.km-details{padding:1.2rem;background:var(--km-panel);border-left:1px solid var(--km-line);min-width:0}.km-selection{display:flex;gap:1rem;align-items:center;margin:.6rem 0}.km-selected-character{font-family:noto sans cjk jp,yu gothic,Meiryo,sans-serif;font-size:3.3rem;line-height:1.3}.kanji-map .km-selected-caption{font-size:.75rem;color:var(--km-muted)}.kanji-map .km-form-note{font-size:.68rem;color:var(--km-muted);margin:.6rem 0}.kanji-map .km-focus{width:100%;background:var(--km-accent);border-color:var(--km-accent);color:#20352b;font-size:.82rem;font-weight:600}.kanji-map .km-focus:disabled{background:0 0;color:var(--km-muted);border-color:var(--km-line);opacity:1}.kanji-map .km-original{width:100%;margin-top:.5rem;font-size:.72rem}.kanji-map h2{font:600 .85rem system-ui,sans-serif;color:var(--km-ink);margin:1.4rem 0 .7rem}.km-related-count{font-size:.7rem;color:var(--km-muted);margin-left:.3rem;font-weight:400}.km-parts,.km-related{display:flex;gap:.4rem;flex-wrap:wrap}.kanji-map .km-chip{min-width:40px;min-height:44px;padding:.3rem .5rem;font-family:noto sans cjk jp,yu gothic,Meiryo,sans-serif;font-size:1.2rem;background:#102727}.kanji-map .km-detail-hint{font-size:.65rem;color:var(--km-muted);margin:-.1rem 0 .75rem}.km-related{max-height:275px;overflow:auto;padding:3px;margin:-3px}.kanji-map .km-more{margin-top:.7rem;font-size:.7rem;background:0 0;width:100%}.km-muted{font-size:.73rem;color:var(--km-muted)}.kanji-map .km-footnote{border-top:1px solid var(--km-line);padding-top:1rem;margin-top:1.3rem;color:var(--km-muted);font-size:.67rem;line-height:1.8}.km-footnote p+p{margin-top:.6rem}.kanji-map a{color:var(--km-accent);text-decoration:underline;text-underline-offset:3px}.kanji-map .km-loading{padding:1rem 0}@media(max-width:850px){.km-workspace{grid-template-columns:minmax(0,1fr)}.km-details{border-left:0;border-top:1px solid var(--km-line);display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);gap:0 1rem}.km-details>*{grid-column:1/-1}.km-selection{grid-column:1}.km-details .km-focus{grid-column:2;grid-row:2;align-self:center}.km-viewport{height:470px}.km-related{max-height:185px}}@media(max-width:480px){.kanji-map{padding:.85rem;border-radius:12px;font-size:14px}.km-examples>span{width:100%}.km-examples{gap:.35rem}.kanji-map .km-examples button{font-size:1rem;padding:.25rem .45rem}.km-examples small{font-size:.62rem}.km-search button span{display:none}.kanji-map .km-search button{padding:.55rem .8rem}.km-graph-heading{display:none}.km-toolbar{padding:.45rem .6rem}.km-viewport{height:410px}.km-bottom-bar{padding:.5rem;flex-wrap:wrap}.km-zoom{margin-left:auto}.kanji-map .km-expand{padding:.5rem;font-size:.66rem}.km-zoom-value{display:none}.km-legend{gap:.6rem;padding:.4rem .7rem;font-size:.6rem}.km-details{padding:1rem}.km-selected-character{font-size:2.8rem}.km-selected-caption{font-size:.68rem}.km-selection{gap:.7rem}}.kanji-map{--km-bg:#142027;--km-panel:#1a2b34;--km-line:#3b525e;--km-ink:#edf3f7;--km-muted:#b4c6d0;--km-accent:#90d0eb}.km-workspace{grid-template-columns:minmax(0,1fr)290px;align-items:start;background:#101b22}.km-canvas-panel{background:#101b22}.km-viewport{height:620px;background-image:radial-gradient(#293a46 1px,transparent 1px)}.kanji-map .km-node{width:78px;height:78px;min-height:78px;background:#8fc7df;border:3px solid #08131b;color:#091820;font-family:noto sans cjk jp,yu gothic,Meiryo,sans-serif;font-size:36px;line-height:1;box-shadow:0 2px 12px #0003;cursor:pointer;touch-action:none}.kanji-map .km-node:hover{background:#bee5f4;border-color:#173c52}.kanji-map .km-node.km-terminal{background:#edf3f7}.kanji-map .km-node.km-root{outline:1px solid #649cb4;outline-offset:5px}.kanji-map .km-node[aria-pressed=true]{background:#2999c9;color:#061722;box-shadow:0 0 0 5px #2999c92b;border-color:#06131a}.km-edge{stroke:#90b3c7;stroke-width:1.6}.km-edge-selected{stroke:#d8e8f0;stroke-width:2}.km-edge-partial{stroke-dasharray:5 4}.km-edge-label{font:15px noto sans cjk jp,system-ui,sans-serif;fill:#eff7fb;paint-order:stroke;stroke:#101b22;stroke-width:7px;stroke-linejoin:round}.km-legend{align-items:center;line-height:1.5}.km-legend label{display:flex;align-items:center;gap:.35rem;cursor:pointer;min-height:36px}.kanji-map .km-reading-toggle{flex:none;width:15px;height:15px;padding:0;accent-color:#90d0eb;cursor:pointer}.km-legend .km-legend-focus{background:#2999c9}.km-details{max-height:830px;overflow:auto;align-self:stretch}.km-selection{align-items:flex-start;gap:.85rem}.km-selected-character{font-size:3.8rem}.kanji-map .km-selected-caption{font-size:.82rem;color:#eef5f9;padding-top:.65rem;line-height:1.7}.km-readings{border-top:1px solid var(--km-line);padding-top:.65rem;margin-top:.9rem}.km-reading-row{margin:.6rem 0}.kanji-map .km-reading-row h3{margin:0 0 .3rem;font:500 .65rem system-ui,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--km-muted)}.km-reading-row>div{display:flex;gap:.35rem .65rem;flex-wrap:wrap;line-height:1.6;font-size:1rem}.km-okurigana{color:#a8becb}.kanji-map .km-kun-help{font-size:.6rem;color:var(--km-muted);margin-top:.5rem}.kanji-map .km-dictionary-radical{font-size:.7rem;color:var(--km-muted);margin:.65rem 0}.kanji-map .km-text-button{background:0 0;border:0;padding:0 .2rem;min-height:30px;color:var(--km-accent);font-size:.8rem;text-decoration:underline;text-underline-offset:3px}.km-originals{display:flex;flex-wrap:wrap;gap:.3rem}.km-detail-actions{display:grid;gap:.45rem;margin:1rem 0}.kanji-map .km-expand-detail{background:var(--km-accent);color:#122832;border-color:var(--km-accent);font-size:.8rem;font-weight:600}.kanji-map .km-focus{background:0 0;color:var(--km-muted);border-color:var(--km-line);font-size:.72rem;font-weight:400}.kanji-map .km-context-note:empty,.kanji-map .km-info-origin:empty,.kanji-map .km-originals:empty,.kanji-map .km-dictionary-radical:empty{display:none}.kanji-map .km-chip{background:#122630}.km-details .km-related{max-height:200px}@media(max-width:850px){.km-workspace{grid-template-columns:minmax(0,1fr)}.km-details{display:block;max-height:none}.km-viewport{height:520px}.km-details .km-selection{max-width:500px}.km-detail-actions{grid-template-columns:minmax(0,1fr)}.km-readings{display:flex;gap:.4rem 2rem;flex-wrap:wrap}.km-readings .km-kun-help{width:100%}.km-details .km-focus{grid-column:auto;grid-row:auto;align-self:stretch}.km-selected-caption{max-width:420px}}@media(max-width:480px){.km-viewport{height:450px}.km-details{padding:1rem}.km-detail-actions{grid-template-columns:1fr}.km-legend{font-size:.6rem;gap:.2rem .7rem}.km-selected-character{font-size:3.5rem}.km-readings{gap:.2rem 1.2rem}}.kanji-map .km-reading-toggle{appearance:auto;border:initial;border-radius:0;background:initial}.km-edge-incoming{stroke:#8ed0f1;stroke-width:2.2}.km-edge-outgoing{stroke:#f6c57a;stroke-width:2.2}.km-edge-other{stroke:#7591a2;stroke-width:1.5;opacity:.65}.km-edge-label-incoming{fill:#8ed0f1}.km-edge-label-outgoing{fill:#f6c57a}.km-edge-label-other{fill:#a5bac6}.km-incoming-key{color:#8ed0f1}.km-outgoing-key{color:#f6c57a}.km-legend b{font-size:1.25rem;line-height:1;font-weight:400}.km-expansion{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;min-width:0}.km-connection-count{font-size:.7rem;color:var(--km-muted)}.km-bottom-bar{flex-wrap:wrap}.km-zoom{margin-left:auto}.km-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;padding:.75rem 1rem;border-bottom:1px solid var(--km-line);font-size:.75rem}.km-filters label{display:flex;align-items:center;gap:.5rem;min-height:36px}.kanji-map .km-scope{font:inherit;min-height:38px;max-width:100%;border:1px solid var(--km-line);border-radius:6px;background:#1a2b34;color:var(--km-ink);padding:.35rem .5rem}.kanji-map .km-frequent{appearance:auto;flex:none;width:16px;height:16px;padding:0;border:initial;border-radius:0;background:initial;accent-color:var(--km-accent)}.kanji-map .km-filter-hint{width:100%;font-size:.65rem;color:var(--km-muted)}.kanji-map select:focus-visible{outline:3px solid var(--km-accent);outline-offset:3px}@media(max-width:480px){.km-filters{padding:.6rem;gap:.3rem .7rem}.km-filters label{flex-wrap:wrap}}