#app{display:grid;grid-template-columns:272px minmax(0,1fr) 330px;height:calc(100dvh - var(--head-h));overflow:hidden}@media(max-width:1280px){#app{grid-template-columns:244px minmax(0,1fr) 300px}}#rail{border-right:1px solid var(--rule);overflow:auto;padding:var(--s-5) var(--s-4) var(--s-6)}.rail-head h1{font-family:var(--font-song);font-weight:500;font-size:21px;letter-spacing:.16em;margin-bottom:var(--s-2)}.rail-head .sub{font-size:var(--t-micro);line-height:1.7;color:var(--ink-3)}.rail-tools{margin:var(--s-4) 0;display:grid;gap:var(--s-2)}#idxSearch{width:100%;padding:4px 0;font-size:13.5px;border:0;border-bottom:1px solid var(--rule-strong);background:transparent;color:var(--ink);transition:border-color var(--d-1) var(--ease)}#idxSearch::placeholder{color:var(--ink-3)}#idxSearch:focus{border-color:var(--ink)}.btns{display:flex;align-items:center;gap:var(--s-2)}#idxCount{margin-left:auto}.tbtn{border:0;border-bottom:1px solid var(--rule-strong);padding:2px 0;font-size:var(--t-micro);color:var(--ink-2);transition:color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}.tbtn:hover{color:var(--ink);border-color:var(--ink)}.tbtn[aria-pressed=true],.tbtn.on{color:var(--ink);border-bottom:2px solid var(--ink)}.idx{display:grid;margin-top:var(--s-2)}.idx .q{display:grid;grid-template-columns:10px 2.4em minmax(0,1fr) auto;gap:5px;align-items:baseline;text-align:left;padding:4px 3px;border-bottom:1px solid var(--rule-soft);transition:background var(--d-1) var(--ease)}.idx .q:hover,.idx .q[aria-current=true]{background:var(--paper-2)}.idx .q .fam-dot{margin:0;align-self:center}.idx .q .sym{font-size:13.5px;font-weight:400}.idx .q .nm{font-size:13px;color:var(--ink-2)}.idx .q .deg{font-size:var(--t-micro);color:var(--ink-3)}.idx .q.hide{display:none}.rail-sec{margin-top:var(--s-5);border-top:1px solid var(--rule);padding-top:var(--s-3)}.rail-sec summary{cursor:pointer;font-size:13px;color:var(--ink-2)}.rail-sec summary:hover{color:var(--ink)}.groups{display:grid;gap:2px;margin-top:var(--s-2)}.groups .g{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:6px;align-items:baseline;text-align:left;padding:3px;font-size:13px;color:var(--ink-2)}.groups .g:hover{color:var(--ink);background:var(--paper-2)}.groups .g .fam-dot{margin:0;align-self:center}.groups .g .cnt{font-size:var(--t-micro);color:var(--ink-3)}.hubs{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--s-2)}.examples{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.examples button{text-align:left;font-size:var(--t-small);color:var(--ink-2);border-left:2px solid var(--rule-strong);padding:3px 0 3px 8px;transition:color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}.examples button:hover{color:var(--ink);border-color:var(--ink)}#railOpen{display:none;position:fixed;left:var(--s-4);bottom:var(--s-4);z-index:45;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:7px 14px;font-size:13.5px}@media(max-width:1120px){#app{display:block;height:auto;overflow:visible}#rail{position:fixed;top:0;left:0;bottom:0;z-index:40;width:min(86vw,330px);background:var(--paper);transform:translate(-103%);transition:transform var(--d-3) var(--ease);padding-bottom:calc(var(--s-9) + env(safe-area-inset-bottom,0px))}#rail.open{transform:none}#railOpen{display:inline-flex}#paneDetail{border-left:0;border-top:1px solid var(--rule);overflow:visible}}#stageWrap{display:flex;flex-direction:column;min-height:0;overflow:auto}.stage-bar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-3) var(--s-5) var(--s-2);border-bottom:1px solid var(--rule-soft)}.stage-bar .micro{color:var(--ink-3)}.stage-bar .grow{flex:1 1 auto}#stage{position:relative;flex:1 1 auto;min-height:420px}#net-canvas{position:absolute;inset:0;display:block;width:100%;height:100%}#focusStage{position:relative;flex:1 1 auto;min-height:0;overflow:auto;padding:var(--s-2) var(--s-5) var(--s-4)}#focusStage svg{display:block;width:100%;height:auto;max-height:calc(100dvh - var(--head-h) - 150px);margin:0 auto}.fx-hit{fill:transparent}.fx-n{cursor:pointer}.fx-n:hover .fx-ring{stroke:var(--ink)}.fx-n:focus-visible{outline:none}.fx-n:focus-visible .fx-ring{stroke:var(--ink);stroke-width:2}.fx-arrow{fill:var(--line-strong)}.fx-line.on path:first-child{stroke:var(--ink);stroke-width:1.8}.fx-line.on .fx-arrow{fill:var(--ink)}.fx-empty{fill:none;stroke:var(--ink-3);stroke-width:1}.fx-c .fx-cring{stroke:var(--rule-strong)}.pd-sec li{transition:color var(--d-1) var(--ease)}.pd-sec li.hi{color:var(--ink)}.lnk.hi{color:var(--ink);text-decoration-color:var(--ink)}.fx-line path[stroke-dasharray]{animation:fx-flow 42s linear infinite}.fx-line[data-side=L] path[stroke-dasharray]{animation-direction:reverse}@keyframes fx-flow{to{stroke-dashoffset:-360}}.fx-readout{position:absolute;transform:translate(-50%,-100%);opacity:0;pointer-events:none;white-space:nowrap;background:var(--paper);padding:1px 7px;font-size:var(--t-small);color:var(--ink);transition:opacity var(--d-1) var(--ease)}.fx-readout.on{opacity:1}.modes{display:inline-flex;gap:var(--s-5)}.modes button{border:0;border-bottom:2px solid transparent;padding:2px 0;font-size:var(--t-small);color:var(--ink-2);transition:color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}.modes button:hover{color:var(--ink)}.modes button.on{color:var(--ink);border-bottom-color:var(--ink)}#app[data-mode=fuse]{grid-template-columns:272px minmax(0,1fr)}#app[data-mode=fuse] #paneDetail{display:none}#app[data-mode=fuse] #stage{flex:0 0 auto;height:clamp(200px,30vh,320px);min-height:0}.nm-readout{position:absolute;transform:translate(-50%,-100%);opacity:0;pointer-events:none;white-space:nowrap;background:var(--paper);padding:1px 7px;font-size:var(--t-small);color:var(--ink);transition:opacity .14s var(--ease)}.nm-readout.on{opacity:1}.ask{display:grid;gap:var(--s-2);padding:0 var(--s-5) var(--s-4)}.ask label{color:var(--ink-3)}.ask-row{display:flex;gap:var(--s-2)}#askText{flex:1 1 auto;padding:4px 0;border:0;border-bottom:1px solid var(--rule-strong);background:transparent;color:var(--ink);font-size:13.5px;transition:border-color var(--d-1) var(--ease)}#askText:focus{border-color:var(--ink)}#askText::placeholder{color:var(--ink-3)}#askRun{padding:5px 12px;font-size:var(--t-small)}#askOut{color:var(--ink-2);line-height:1.8}#askOut b{font-weight:400;color:var(--ink)}.want{border-left:2px solid var(--ink);padding-left:var(--s-3);margin-top:var(--s-2)}#fuseStage{flex:1 1 auto;min-height:0;overflow:auto}.board-bar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-3) var(--s-5) var(--s-2)}.board{padding:0 var(--s-5) var(--s-6)}.board-sum{font-size:var(--t-small);color:var(--ink-2);padding-bottom:var(--s-4)}.seg2{display:inline-flex;gap:var(--s-5)}.seg2 button{border:0;border-bottom:1px solid transparent;padding:2px 0;font-size:var(--t-small);color:var(--ink-3);transition:color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}.seg2 button:hover{color:var(--ink)}.seg2 button.on{color:var(--ink);border-bottom-color:var(--ink)}.board-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(140px,1fr);gap:var(--s-4);overflow-x:auto;padding-bottom:var(--s-2);align-items:start}.bcol{display:grid;gap:var(--s-3);align-content:start;padding-top:var(--s-4);position:relative}.bcol:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--rule-strong)}.bcol--wide{grid-column:1 / -1}.fs-col-h{font-size:var(--t-micro);color:var(--ink-3);font-weight:400;margin:0}.fs-chip{display:grid;gap:2px;text-align:left;border-left:2px solid var(--rule-strong);padding:var(--s-1) 0 var(--s-1) var(--s-3);transition:border-color var(--d-1) var(--ease)}.fs-chip:hover{border-color:var(--ink)}.fs-chip .top{display:flex;align-items:baseline;gap:6px;font-size:15px}.fs-chip .top .sym{font-size:15px;font-weight:400}.fs-chip u{text-decoration:none;font-size:var(--t-micro);color:var(--ink-3);line-height:1.6}.fs-chip u .fml{color:var(--ink-2)}.fs-chip .x{color:var(--ink-3);margin-left:2px}.fs-chip--given{border-color:var(--ink)}.fs-chip--given:hover .x{color:var(--ink)}.fs-chip--made{border-color:var(--rule-strong)}.fs-tips{margin-top:var(--s-5);border-top:1px solid var(--rule);padding-top:var(--s-3)}.fs-tips h4{font-size:var(--t-micro);color:var(--ink-3);font-weight:400;margin-bottom:var(--s-2)}.fs-tips ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.fs-tips li{font-size:var(--t-small);color:var(--ink-2);line-height:1.8}.fs-skipped{margin-top:var(--s-4);color:var(--ink-3);line-height:1.8}.fs-hint{line-height:1.9;color:var(--ink-2)}.fs-back .fs-target{margin-bottom:var(--s-4);font-size:var(--t-small);color:var(--ink-2)}.fs-routes{list-style:none;margin:0;padding:0;display:grid}.fs-routes li{display:flex;flex-wrap:wrap;gap:var(--s-2) 6px;align-items:baseline;padding:var(--s-3) 0;border-top:1px solid var(--rule-soft);font-size:var(--t-small);color:var(--ink-2)}.fs-routes li.best{border-top-color:var(--ink)}.fs-routes .steps{margin-left:auto;color:var(--ink-3);font-size:var(--t-micro)}#paneDetail{border-left:1px solid var(--rule);overflow:auto;padding:var(--s-5) var(--s-4) var(--s-6)}#pdEmpty{color:var(--ink-3);line-height:1.9}.pd-card{display:grid;gap:var(--s-1);border-bottom:1px solid var(--rule);padding-bottom:var(--s-4);margin-bottom:var(--s-5)}.pd-card .sym{font-size:34px;font-weight:400}.pd-card .pd-name{font-size:17px}.pd-card .pd-meta{color:var(--ink-3);line-height:1.7}.pd-card .pd-keep{font-size:var(--t-small);color:var(--ink-2);line-height:1.8;margin-top:var(--s-2)}.pd-sec{margin-bottom:var(--s-5)}.pd-sec h3{font-size:var(--t-micro);color:var(--ink-3);margin-bottom:var(--s-2);font-weight:400}.pd-sec ul{list-style:none;margin:0;padding:0}.pd-sec li{padding:var(--s-2) 0;border-bottom:1px solid var(--rule-soft);font-size:var(--t-small);line-height:1.8;color:var(--ink-2);transition:color var(--d-1) var(--ease)}.pd-sec li.hi,.pd-sec li .fml{color:var(--ink)}.pd-sec .pd-by{color:var(--ink-3)}.pd-warn{border:1px solid var(--warn-bd);background:var(--warn-bg);color:var(--warn-ink);padding:var(--s-3);font-size:var(--t-small);line-height:1.9;margin-bottom:var(--s-5)}.lnk{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-strong);color:var(--ink-2)}.lnk:hover{color:var(--ink);text-decoration-color:var(--ink)}.fml{font-family:var(--font-song);font-size:1.02em;letter-spacing:.01em}.fnote{font-size:var(--t-micro);color:var(--ink-3);margin-left:3px}.badge{display:inline-block;margin-left:var(--s-2);padding:0 5px;border:1px solid var(--rule-strong);font-size:11px;color:var(--ink-3);line-height:1.7}.badge.law{border-color:var(--ink-2);color:var(--ink-2)}@media(max-width:900px){#stageWrap{overflow:visible}#stage{min-height:0;height:clamp(300px,46vh,420px)}}
