.lp{--parchment:var(--paper);--parchment-light:var(--card);--parchment-dark:var(--panel);--ink-soft:var(--ink);--ink-fade:var(--ink-2);--terracotta:#a73e2c;--terracotta-dark:#7e2d1f;--terracotta-soft:#d9a89c;--aegean:#1d4e5f;--aegean-soft:#5a8a96;--gold:#b8893a;--gold-soft:#d4b76a;--purple:#6d4a8f;--green:#3f7a52;--grey:#8a7f6d;--line:rgba(28,25,22,.12);--line-strong:rgba(28,25,22,.26);--serif:"Noto Serif SC","Noto Serif CJK SC",Georgia,serif;--display:"Cormorant Garamond","Noto Serif SC",Georgia,serif;--greek:"GFS Didot","Noto Serif SC",Georgia,serif;--mono:"JetBrains Mono","Courier New",monospace}.lp *{margin:0;padding:0;box-sizing:border-box}.lp{height:100%}.lp{background:var(--parchment);background-image:radial-gradient(ellipse at top left,rgba(184,137,58,.06),transparent 50%),radial-gradient(ellipse at bottom right,rgba(29,78,95,.05),transparent 50%);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow:hidden}.lp .greek{font-family:var(--greek)}.lp .app{position:relative;z-index:1;height:100vh;display:flex;flex-direction:column}.lp header{flex:none;border-bottom:1px solid var(--line);background:#f3ebdaeb;backdrop-filter:blur(8px);padding:13px 24px 10px}.lp .hbar{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.lp h1{font-family:var(--display);font-weight:600;font-size:23px;white-space:nowrap}.lp .latin{font-family:var(--greek);font-size:12px;letter-spacing:.18em;color:var(--terracotta);text-transform:uppercase}.lp .sub{font-size:12.5px;color:var(--ink-fade)}.lp .tools{margin-left:auto;display:flex;gap:8px}.lp .btn{font-size:13px;color:var(--ink-soft);background:var(--parchment-light);border:1px solid var(--line-strong);border-radius:18px;padding:5px 14px;cursor:pointer;white-space:nowrap;transition:all .2s}.lp .btn:hover{border-color:var(--terracotta);color:var(--terracotta)}.lp .btn.on{background:var(--ink);color:var(--parchment-light);border-color:var(--ink)}.lp .legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;color:var(--ink-fade);align-items:center}.lp .lg{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.lp .lg .sw{width:13px;height:13px;border-radius:3px;display:inline-block}.lp .lg .harm{width:20px;height:0;border-top:2.4px solid var(--terracotta);display:inline-block}.lp .lg .cure{width:20px;height:0;border-top:2.4px solid var(--green);display:inline-block}.lp .main{flex:1;display:flex;min-height:0}.lp .mapwrap{flex:1;overflow:auto;padding:8px 0 60px}.lp .mapwrap svg{display:block;margin:0 auto}.lp .panel{width:392px;flex:none;border-left:1px solid var(--line);background:var(--parchment-light);overflow-y:auto;padding:20px 22px 50px}.lp .phaseband{fill:#1d4e5f08}.lp .phaselab{fill:var(--ink-fade);font-family:var(--greek);letter-spacing:.14em;text-transform:uppercase}.lp .phaseroman{fill:var(--terracotta);font-family:var(--display);font-weight:600;opacity:.5}.lp .node{cursor:pointer}.lp .node rect{transition:opacity .2s,stroke-width .15s}.lp .node:hover .nbox{stroke:var(--terracotta)}.lp .nbox{stroke-width:1.2}.lp .n-no{fill:#fff;font-family:var(--mono);font-weight:700}.lp .n-cn{fill:var(--ink);font-family:var(--serif);font-weight:600}.lp .n-gk{fill:var(--ink-fade);font-family:var(--greek);font-style:italic}.lp .n-role{font-family:var(--serif);font-weight:500}.lp .flow{fill:none;stroke-linecap:round;transition:stroke-opacity .2s,stroke-width .18s}.lp .flow.harm{stroke:var(--terracotta)}.lp .flow.cure{stroke:var(--green)}.lp .flow.ext{stroke:var(--grey);stroke-dasharray:6 5}.lp .flowhead.harm{fill:var(--terracotta)}.lp .flowhead.cure{fill:var(--green)}.lp .flowhead.ext{fill:var(--grey)}.lp .edgelab{font-family:var(--serif)}.lp .edgelab .em{font-weight:600}.lp .elab-harm{fill:var(--terracotta-dark)}.lp .elab-cure{fill:var(--green)}.lp .elab-bg{fill:var(--parchment-light);opacity:.86}.lp .dim{opacity:.12!important}.lp .dimE{stroke-opacity:.06!important}.lp .dimL{opacity:.08!important}.lp .node.sel .nbox{stroke:var(--terracotta);stroke-width:2.6}.lp .node.hl .nbox{stroke-width:2.2}.lp .eyebrow{font-family:var(--greek);font-size:11.5px;letter-spacing:.24em;color:var(--terracotta);text-transform:uppercase;margin-bottom:8px}.lp .p-no{display:inline-block;font-family:var(--mono);font-weight:700;color:#fff;border-radius:8px;padding:2px 9px;font-size:13px;margin-bottom:8px}.lp .p-name{font-family:var(--display);font-size:25px;font-weight:600;line-height:1.18}.lp .p-gk{font-family:var(--greek);font-style:italic;font-size:14px;color:var(--ink-fade);margin:2px 0 6px}.lp .p-who{font-size:12px;color:var(--ink-fade);margin-bottom:12px;letter-spacing:.02em}.lp .blk{border-radius:9px;padding:11px 13px;margin-bottom:11px;font-size:13.5px;line-height:1.66}.lp .blk.in{background:#a73e2c12;border-left:3px solid var(--terracotta)}.lp .blk.did{background:#3f7a5217;border-left:3px solid var(--green)}.lp .blk.out{background:#1c19160d;border-left:3px solid var(--ink-fade)}.lp .blk h4{font-family:var(--greek);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px}.lp .blk.in h4{color:var(--terracotta)}.lp .blk.did h4{color:var(--green)}.lp .blk.out h4{color:var(--ink-fade)}.lp .blk .none{color:var(--ink-fade);font-style:italic}.lp .nav{display:flex;gap:8px;margin-top:14px}.lp .nav .b{flex:1;text-align:center;font-size:12.5px;color:var(--ink-soft);background:var(--parchment);border:1px solid var(--line-strong);border-radius:16px;padding:6px 0;cursor:pointer}.lp .nav .b:hover{border-color:var(--terracotta);color:var(--terracotta)}.lp .nav .b.dis{opacity:.35;pointer-events:none}.lp .guide h3{font-family:var(--display);font-size:20px;font-weight:600;margin-bottom:10px;color:var(--ink)}.lp .guide p{font-size:13.5px;line-height:1.74;margin-bottom:10px;color:var(--ink-soft)}.lp .guide em{color:var(--terracotta);font-style:italic}.lp .guide strong{color:var(--ink)}.lp .guide .mini{font-size:12.5px;color:var(--ink-fade)}.lp .guide .k{display:flex;gap:8px;margin:5px 0;font-size:12.5px;color:var(--ink-soft);align-items:baseline}.lp .guide .k b{color:var(--terracotta);font-family:var(--mono);flex:none}@media(max-width:980px){.lp{overflow:auto}.lp .app{height:auto}.lp .main{flex-direction:column}.lp .panel{width:100%;border-left:none;border-top:1px solid var(--line)}.lp .mapwrap{overflow:visible}}
