.diagram.svelte-jk7qn0{display:block;width:100%;height:auto}.col-head.svelte-jk7qn0{font-family:var(--font-mono);font-size:9px;fill:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.rule.svelte-jk7qn0{stroke:var(--border);stroke-width:1}.panel.svelte-jk7qn0{fill:color-mix(in srgb,var(--accent) 5%,transparent);stroke:var(--border);stroke-width:1;stroke-dasharray:3 3}.panel-label.svelte-jk7qn0{font-family:var(--font-mono);font-size:10px;fill:var(--text-secondary);letter-spacing:.06em}.node.svelte-jk7qn0{fill:var(--bg);stroke:var(--border);stroke-width:1.2}.titlebar.svelte-jk7qn0{fill:var(--border)}.app-name.svelte-jk7qn0{font-family:var(--font-mono);font-size:10px;fill:var(--text)}.app-port.svelte-jk7qn0{font-family:var(--font-mono);font-size:9px;fill:var(--text-secondary)}.alias.bound.svelte-jk7qn0{stroke:var(--accent);stroke-width:1.5}.alias.failed.svelte-jk7qn0{stroke:#e06c75}.alias.selected.svelte-jk7qn0{fill:color-mix(in srgb,var(--accent) 10%,var(--bg))}.alias-text.svelte-jk7qn0{font-family:var(--font-mono);font-size:9.5px;fill:var(--text)}.proxy.svelte-jk7qn0{fill:color-mix(in srgb,var(--accent) 14%,var(--bg));stroke:var(--accent);stroke-width:1}.proxy.fresh.svelte-jk7qn0{animation:svelte-jk7qn0-pop .45s ease-out}@keyframes svelte-jk7qn0-pop{0%{opacity:.2}to{opacity:1}}.proxy-text.svelte-jk7qn0{font-family:var(--font-mono);font-size:9px;fill:var(--text)}.proxy-empty.svelte-jk7qn0{font-family:var(--font-mono);font-size:10px;fill:var(--border)}.probe.down.svelte-jk7qn0{opacity:.55;stroke-dasharray:3 3}.probe-name.svelte-jk7qn0{font-family:var(--font-mono);font-size:9px;fill:var(--text-secondary)}.probe-site.svelte-jk7qn0{font-family:var(--font-mono);font-size:9.5px;fill:var(--text)}.dev-name.svelte-jk7qn0{font-family:var(--font-mono);font-size:10px;fill:var(--text)}.dev-ip.svelte-jk7qn0{font-family:var(--font-mono);font-size:8.5px;fill:var(--text-secondary)}.device.live.svelte-jk7qn0{stroke:var(--accent);stroke-width:1.5}.tunnel-line.svelte-jk7qn0{stroke:#7bc98a;stroke-width:2;stroke-dasharray:5 3;opacity:.8;fill:none}.tunnel-line.down.svelte-jk7qn0{stroke:#e06c75;stroke-dasharray:2 4}.tunnel-label.svelte-jk7qn0{font-family:var(--font-mono);font-size:8px;fill:var(--text-secondary)}.hop.svelte-jk7qn0{fill:none;stroke-width:1.2}.hop-idle.svelte-jk7qn0{stroke:var(--border)}.hop-lit.svelte-jk7qn0{stroke:var(--accent);stroke-width:1.8}.hop-flow.svelte-jk7qn0{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 12;opacity:.9;animation:svelte-jk7qn0-flow .8s linear infinite}@keyframes svelte-jk7qn0-flow{0%{stroke-dashoffset:13}to{stroke-dashoffset:0}}.demo-container.svelte-v1mwqv{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.diagram-wrap.svelte-v1mwqv{margin-bottom:1.25rem}.mode-row.svelte-v1mwqv{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.mode-switch.svelte-v1mwqv{display:flex;border:1px solid var(--border);border-radius:5px;overflow:hidden;flex-shrink:0}.mode-btn.svelte-v1mwqv{font-family:var(--font-mono);font-size:.75rem;padding:.35rem .8rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.mode-btn.svelte-v1mwqv:hover{color:var(--text)}.mode-btn.active.svelte-v1mwqv{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.mode-note.svelte-v1mwqv{flex:1;min-width:260px;font-size:.8rem;line-height:1.5;color:var(--text-secondary)}.stepper.svelte-v1mwqv{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem .9rem;margin-bottom:1.25rem}.stepper-track.svelte-v1mwqv{display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin-bottom:.6rem}.step.svelte-v1mwqv{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary);opacity:.55;transition:all .2s ease}.step-num.svelte-v1mwqv{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--border);font-size:.6rem;flex-shrink:0}.step.done.svelte-v1mwqv{opacity:1}.step.done.svelte-v1mwqv .step-num:where(.svelte-v1mwqv){border-color:#7bc98a;color:#7bc98a}.step.current.svelte-v1mwqv{opacity:1;color:var(--accent)}.step.current.svelte-v1mwqv .step-num:where(.svelte-v1mwqv){border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.step.bad.svelte-v1mwqv .step-num:where(.svelte-v1mwqv){border-color:#e06c75;color:#e06c75}.step.svelte-v1mwqv:not(:last-child):after{content:"›";margin-left:.35rem;opacity:.4}.stepper-detail.svelte-v1mwqv{font-size:.78rem;line-height:1.5;color:var(--text-secondary);min-height:2.3em}.bad-text.svelte-v1mwqv{color:#e06c75}.table-wrap.svelte-v1mwqv{overflow-x:auto;margin-bottom:1.25rem;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.listeners.svelte-v1mwqv{width:100%;border-collapse:collapse;font-size:.75rem}.listeners.svelte-v1mwqv th:where(.svelte-v1mwqv){font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);text-align:left;font-weight:400;padding:.5rem .7rem;border-bottom:1px solid var(--border);white-space:nowrap}.listeners.svelte-v1mwqv td:where(.svelte-v1mwqv){padding:.45rem .7rem;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);color:var(--text);white-space:nowrap}.listeners.svelte-v1mwqv tbody:where(.svelte-v1mwqv) tr:where(.svelte-v1mwqv):last-child td:where(.svelte-v1mwqv){border-bottom:none}.listeners.svelte-v1mwqv tbody:where(.svelte-v1mwqv) tr.selected:where(.svelte-v1mwqv){background:color-mix(in srgb,var(--accent) 6%,transparent)}.listeners.svelte-v1mwqv tbody:where(.svelte-v1mwqv) tr.live:where(.svelte-v1mwqv) .addr:where(.svelte-v1mwqv){color:var(--accent)}.listeners.svelte-v1mwqv tbody:where(.svelte-v1mwqv) tr.failed:where(.svelte-v1mwqv) .addr:where(.svelte-v1mwqv){color:#e06c75}.mono.svelte-v1mwqv{font-family:var(--font-mono)}.muted.svelte-v1mwqv{color:var(--text-secondary)}.num.svelte-v1mwqv{text-align:right}.state.svelte-v1mwqv{min-width:150px}.state-text.svelte-v1mwqv{color:var(--text-secondary);font-size:.7rem}.state-text.on.svelte-v1mwqv{color:#7bc98a}.state-text.err.svelte-v1mwqv{color:#e06c75}.bar.svelte-v1mwqv{display:inline-block;vertical-align:middle;width:46px;height:3px;margin-left:.5rem;border-radius:2px;background:var(--border);overflow:hidden}.bar-fill.svelte-v1mwqv{display:block;height:100%;background:var(--accent)}.action.svelte-v1mwqv{text-align:right}.row-btn.svelte-v1mwqv{font-family:var(--font-mono);font-size:.68rem;padding:.18rem .55rem;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.row-btn.svelte-v1mwqv:hover{color:var(--accent);border-color:var(--accent)}.controls.svelte-v1mwqv{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.controls-left.svelte-v1mwqv{display:flex;align-items:center;gap:.5rem}.controls-right.svelte-v1mwqv{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ctrl-btn.svelte-v1mwqv{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.ctrl-btn.svelte-v1mwqv:hover{color:var(--text);border-color:var(--text-secondary)}.play-btn.svelte-v1mwqv{color:var(--accent);border-color:var(--accent)}.speed-selector.svelte-v1mwqv{display:flex;gap:.25rem;margin-left:.25rem}.speed-btn.svelte-v1mwqv,.pill.svelte-v1mwqv{font-family:var(--font-mono);font-size:.7rem;padding:.25rem .55rem;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.speed-btn.svelte-v1mwqv:hover,.pill.svelte-v1mwqv:hover{color:var(--text);border-color:var(--text-secondary)}.speed-btn.active.svelte-v1mwqv{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.pill.danger.svelte-v1mwqv{color:#e06c75;border-color:#e06c7580;background:#e06c7514}.stats.svelte-v1mwqv{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.25rem}.stat.svelte-v1mwqv{display:flex;flex-direction:column;gap:.15rem}.stat-label.svelte-v1mwqv{font-family:var(--font-mono);font-size:.65rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-value.svelte-v1mwqv{font-family:var(--font-mono);font-size:.82rem;color:var(--text)}.stat-value.accent.svelte-v1mwqv{color:var(--accent)}.stat-value.bad.svelte-v1mwqv{color:#e06c75}.log.svelte-v1mwqv{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.75rem .9rem;min-height:11.5rem}.log-entry.svelte-v1mwqv{display:flex;gap:.75rem;font-family:var(--font-mono);font-size:.72rem;line-height:1.55}.log-time.svelte-v1mwqv{color:var(--text-secondary);flex-shrink:0}.log-msg.svelte-v1mwqv{color:var(--text-secondary)}.log-good.svelte-v1mwqv .log-msg:where(.svelte-v1mwqv){color:#7bc98a}.log-warn.svelte-v1mwqv .log-msg:where(.svelte-v1mwqv){color:#e0b06c}.log-bad.svelte-v1mwqv .log-msg:where(.svelte-v1mwqv){color:#e06c75}@media(max-width:768px){.demo-container.svelte-v1mwqv{padding:1rem}.diagram-wrap.svelte-v1mwqv{overflow-x:auto}.diagram-wrap.svelte-v1mwqv svg{min-width:660px}.stats.svelte-v1mwqv{grid-template-columns:repeat(3,1fr);gap:.75rem}.controls.svelte-v1mwqv{flex-direction:column;align-items:stretch}.controls-left.svelte-v1mwqv,.controls-right.svelte-v1mwqv{justify-content:center}}.page.svelte-1k3puru{max-width:960px;margin:0 auto;padding:8rem 2rem 6rem}.header.svelte-1k3puru{max-width:720px;margin-bottom:4rem}.title.svelte-1k3puru{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3rem);font-weight:500;color:var(--text);line-height:1.15;margin-bottom:1rem}.subtitle.svelte-1k3puru{color:var(--text-secondary);font-size:1.05rem;line-height:1.6;margin-bottom:.75rem}.patent-line.svelte-1k3puru{font-family:var(--font-mono);font-size:.78rem;line-height:1.6;margin-bottom:1.5rem}.patent-line.svelte-1k3puru a:where(.svelte-1k3puru){color:var(--accent);text-decoration:none}.patent-line.svelte-1k3puru a:where(.svelte-1k3puru):hover{opacity:.8}.patent-line.svelte-1k3puru .muted:where(.svelte-1k3puru){color:var(--text-secondary)}.header-actions.svelte-1k3puru{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.tech.svelte-1k3puru{display:flex;flex-wrap:wrap;gap:.4rem}.tech.svelte-1k3puru span:where(.svelte-1k3puru){font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);padding:.2rem .55rem;border:1px solid var(--border);border-radius:3px}.header-links.svelte-1k3puru{display:flex;align-items:center;gap:1.25rem}.jump-link.svelte-1k3puru{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);text-decoration:none;transition:opacity .2s ease}.jump-link.svelte-1k3puru:hover{opacity:.8}@keyframes svelte-1k3puru-bounce-arrow{0%,20%{transform:translateY(0)}10%{transform:translateY(3px)}}.jump-link.svelte-1k3puru:before{content:"↓";display:inline-block;margin-right:.4em;animation:svelte-1k3puru-bounce-arrow 1.5s ease-in-out 3}.content.svelte-1k3puru{max-width:720px;margin-bottom:3rem}.content.svelte-1k3puru h2:where(.svelte-1k3puru){font-family:var(--font-heading);font-size:1.4rem;font-weight:500;font-style:italic;color:var(--text);margin-bottom:1rem;margin-top:2.5rem}.content.svelte-1k3puru h2:where(.svelte-1k3puru):first-child{margin-top:0}.content.svelte-1k3puru p:where(.svelte-1k3puru){color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin-bottom:1rem}.content.svelte-1k3puru p:where(.svelte-1k3puru) strong:where(.svelte-1k3puru){color:var(--text)}.content.svelte-1k3puru ol:where(.svelte-1k3puru){color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin:0 0 1rem 1.25rem;padding-left:.5rem}.content.svelte-1k3puru ol:where(.svelte-1k3puru) li:where(.svelte-1k3puru){margin-bottom:.4rem;padding-left:.3rem}.content.svelte-1k3puru ol:where(.svelte-1k3puru) li:where(.svelte-1k3puru)::marker{color:var(--accent);font-family:var(--font-mono);font-size:.85em}.content.svelte-1k3puru code:where(.svelte-1k3puru),.subtitle.svelte-1k3puru code:where(.svelte-1k3puru){font-family:var(--font-mono);font-size:.85em;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:3px;padding:.1em .35em}.content.svelte-1k3puru pre:where(.svelte-1k3puru){background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:.9rem 1rem;margin-bottom:1rem;overflow-x:auto}.content.svelte-1k3puru pre:where(.svelte-1k3puru) code:where(.svelte-1k3puru){background:none;border:none;padding:0;font-size:.76rem;line-height:1.7;color:var(--text-secondary);white-space:pre}.demo.svelte-1k3puru{border-top:1px solid var(--border);padding-top:2rem;scroll-margin-top:80px}.demo-heading.svelte-1k3puru{font-family:var(--font-heading);font-size:1.4rem;font-weight:500;font-style:italic;color:var(--text);margin-bottom:.75rem}.demo-intro.svelte-1k3puru{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin-bottom:2rem;max-width:720px}.demo-intro.svelte-1k3puru strong:where(.svelte-1k3puru){color:var(--text)}
