:root{--paper:#0d1216;--ink:#e3eaf0;--muted:#92a1ad;--rule:#27313a;--jacket:#3b4954;--cable-0:#f2793f;--cable-1:#5595e8;--cable-2:#35b385;--cable-3:#c08b52;--alarm:#ff6a58;--accent:var(--cable-0);--focus:var(--cable-1);--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--gutter:34px;--rail-x:11px;--rail-w:2px;--port:9px;--step:8px;--radius:2px}:root[data-theme=light]{--paper:#e7ebee;--ink:#101519;--muted:#5a6874;--rule:#ccd4da;--jacket:#9caab5;--cable-0:#d0511c;--cable-1:#1c5cae;--cable-2:#15805a;--cable-3:#8a5a2b;--alarm:#b53225}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font-mono);-webkit-text-size-adjust:100%;margin:0;font-size:16px;line-height:1.5}#app{max-width:33rem;padding:calc(var(--step) * 3) calc(var(--step) * 2) calc(var(--step) * 7);margin:0 auto}.bar{justify-content:space-between;align-items:flex-start;gap:var(--step);padding-bottom:calc(var(--step) * 1.5);margin-bottom:calc(var(--step) * 4);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex}.brand{flex-direction:column;gap:5px;min-width:0;display:flex}.wordmark{letter-spacing:.06em;font-size:.8125rem;font-weight:600}.wordmark b{color:var(--accent);font-weight:600}.tagline{color:var(--muted);margin:0;font-size:.75rem}.status{align-items:center;gap:calc(var(--step) * .75);color:var(--muted);flex-wrap:wrap;margin:0;font-size:.75rem;display:flex}.switch{align-items:center;gap:calc(var(--step) * .75);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 0 4px 4px;font-family:inherit;font-size:.75rem;display:flex}.switch-text{white-space:nowrap}.switch:hover,.switch[aria-pressed=true] .switch-text{color:var(--ink)}.switch-body{fill:none;stroke:var(--rule)}.switch-nub{fill:var(--muted);transition:transform .16s cubic-bezier(.2,.7,.3,1),fill .16s}.switch:hover .switch-body{stroke:var(--muted)}.switch[aria-pressed=true] .switch-nub{fill:var(--cable-0);transform:translate(12px)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.led{background:var(--muted);border-radius:1px;flex:none;width:9px;height:9px}.status[data-state=live] .led{background:var(--cable-2)}.status[data-state=connecting] .led,.status[data-state=reconnecting] .led{background:var(--cable-0);animation:1.1s step-end infinite blink}.status[data-state=refused] .led{background:var(--alarm)}.status[data-state=refused] .status-text{color:var(--alarm)}@keyframes blink{50%{opacity:.2}}.wire{padding-left:var(--gutter);position:relative}.wire:before{content:"";left:var(--rail-x);width:var(--rail-w);background:var(--jacket);position:absolute;top:7px;bottom:0}.wire[data-live=false] .peer-list{opacity:.5}.wire[data-live=false]:before{background:repeating-linear-gradient(to bottom, var(--jacket) 0 5px, transparent 5px 10px)}.line-end{left:calc(var(--rail-x) - 4px);width:10px;height:var(--rail-w);background:var(--jacket);position:absolute;bottom:0}.port{left:calc(var(--rail-x) + (var(--rail-w) / 2) - (var(--port) / 2) - var(--gutter));width:var(--port);height:var(--port);background:var(--cable,var(--ink));border-radius:1px;position:absolute}.label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.6875rem;font-weight:600}.self{margin-bottom:calc(var(--step) * 4);position:relative}.self .port{background:var(--ink);top:5px}.self-name{letter-spacing:-.03em;overflow-wrap:anywhere;margin:2px 0 0;font-size:clamp(1.75rem,7vw,2.25rem);font-weight:500;line-height:1.1}.self-meta,.room{align-items:baseline;gap:calc(var(--step) * .75);margin:calc(var(--step) * .75) 0 0;color:var(--muted);flex-wrap:wrap;font-size:.75rem;display:flex}.room{margin-top:calc(var(--step) * 1.5)}.room-label{letter-spacing:.18em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.room-why{max-width:28rem;margin:calc(var(--step) * .75) 0 0;font-family:var(--font-sans);color:var(--muted);font-size:.75rem;line-height:1.6}.id{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.room-id{border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);overflow-wrap:anywhere;padding:1px 6px}.ghost,.solid{border-radius:var(--radius);cursor:pointer;font-family:inherit;font-size:.75rem}.ghost{color:var(--accent);text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}.ghost:hover{text-decoration-thickness:2px}.solid{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:7px 12px;font-weight:500}.solid:hover{filter:brightness(1.08)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pair-form{gap:calc(var(--step) * 1.25);margin-top:calc(var(--step) * 1.5);padding:calc(var(--step) * 1.75);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;display:flex}.pair-row{align-items:center;gap:var(--step);flex-wrap:wrap;display:flex}.pair-form input{min-width:0;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);flex:11rem;padding:6px 8px;font-family:inherit;font-size:.875rem}.hint{font-family:var(--font-sans);color:var(--muted);font-size:.75rem;line-height:1.6}.staged{gap:var(--step);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.staged:empty{display:none}.staged-file{align-items:center;gap:calc(var(--step) * 1.25);padding:calc(var(--step) * 1.25);border:1px dashed var(--rule);border-radius:var(--radius);flex-wrap:wrap;font-size:.875rem;display:flex}.file-glyph{color:var(--cable);flex:none}.staged-name{overflow-wrap:anywhere;flex:8rem;min-width:0}.staged-size{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.staged-actions{align-items:center;gap:calc(var(--step) * 1.5);display:flex}.xfers{gap:calc(var(--step) * 1.5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.xfers:empty{display:none}.xfer{flex-direction:column;gap:5px;display:flex}.xfer-head{justify-content:space-between;align-items:baseline;gap:calc(var(--step) * 1.5);margin:0;font-size:.875rem;display:flex}.xfer-name{overflow-wrap:anywhere}.xfer-size{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.xfer[data-dir=out][data-state=done]{opacity:.55}.xfer-track{height:var(--rail-w);background:var(--rule);overflow:hidden}.xfer-fill{background:var(--cable);width:0;height:100%;transition:width .14s linear;display:block}.xfer[data-state=done] .xfer-fill{background:var(--cable-2)}.xfer[data-state=failed] .xfer-fill,.xfer[data-state=cancelled] .xfer-fill,.xfer[data-state=declined] .xfer-fill{background:var(--alarm)}.xfer-meta{justify-content:space-between;align-items:baseline;gap:calc(var(--step) * .5) calc(var(--step) * 1.5);color:var(--muted);flex-wrap:wrap;margin:0;font-size:.6875rem;display:flex}.xfer[data-state=failed] .xfer-detail{color:var(--alarm)}.xfer-actions{align-items:baseline;gap:calc(var(--step) * 1.5);flex-wrap:wrap;display:flex}.xfer-warn{color:var(--cable-0);max-width:26rem}.peers{position:relative}.peers .label{margin-bottom:calc(var(--step) * 2)}.count{font-variant-numeric:tabular-nums;margin-left:2px}.peer-list{margin:0;padding:0;list-style:none}.peer{margin-bottom:calc(var(--step) * 1.25);padding:0 calc(var(--step) * 1.75);border-radius:var(--radius);background:color-mix(in srgb, var(--cable) 12%, transparent);position:relative}.peer-name{color:var(--cable)}.peer-head{align-items:baseline;gap:0 calc(var(--step) * 1.75);width:100%;padding:calc(var(--step) * 1.5) 0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:1fr auto auto auto;grid-template-areas:"name id time caret";display:grid}.peer-head:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);grid-area:caret;align-self:center;width:6px;height:6px;transition:transform .16s cubic-bezier(.2,.7,.3,1);transform:rotate(45deg)}.peer-head[aria-expanded=true]:after{transform:rotate(225deg)}.peer-head:hover .peer-name{text-underline-offset:3px;text-decoration:underline}.peer:before{content:"";left:calc(-1 * (var(--gutter) - var(--rail-x) - var(--rail-w)));top:calc(var(--step) * 1.5 + .8em);width:calc(var(--gutter) - var(--rail-x) - var(--rail-w));height:var(--rail-w);background:var(--cable);transform-origin:0;position:absolute}.peer .port{top:calc(var(--step) * 1.5 + .8em);margin-top:calc(var(--port) / -2 + var(--rail-w) / 2)}.peer-name{letter-spacing:-.02em;overflow-wrap:anywhere;grid-area:name;font-size:1.0625rem;font-weight:500}.peer .id{grid-area:id}.peer-time{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:time;font-size:.75rem}.peer[data-link=connecting]:before{background:repeating-linear-gradient(to right, var(--cable) 0 4px, transparent 4px 8px)}.peer[data-link=open]:before{height:4px;margin-top:-1px}.peer[data-link=open] .port{box-shadow:0 0 0 3px color-mix(in srgb, var(--cable) 28%, transparent)}.peer[data-link=failed] .port{background:var(--alarm)}.peer[data-link=open] .link-state{color:var(--cable-2)}.peer[data-link=failed] .link-state{color:var(--alarm)}.peer[data-alert=true]{outline:2px solid var(--cable);outline-offset:0;background:color-mix(in srgb, var(--cable) 22%, transparent)}.peer[data-alert=true] .port{animation:1s ease-in-out infinite knock}@keyframes knock{50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--cable) 35%, transparent)}}.xfer[data-state=offered][data-dir=in]{padding:calc(var(--step) * 1.5);border:1px solid var(--cable);border-radius:var(--radius);background:var(--paper)}.xfer-ask{color:var(--ink);flex-basis:100%;font-size:.8125rem}.peer[data-busy=true]:before{background:repeating-linear-gradient(to right, var(--cable) 0 6px, transparent 6px 12px);background-size:12px 100%;animation:.5s linear infinite run}@keyframes run{to{background-position:12px 0}}.peer[data-drop=true]{outline:1px dashed var(--cable);outline-offset:6px}.peer.is-new:before{animation:.2s cubic-bezier(.2,.7,.3,1) both patch-in}.peer.is-new .peer-name,.peer.is-new .id,.peer.is-new .peer-time,.peer.is-new .port{animation:.26s cubic-bezier(.2,.7,.3,1) .12s both arrive}@keyframes patch-in{0%{transform:scaleX(0)}}@keyframes arrive{0%{opacity:0;transform:translate(-4px)}}.peer.is-new .port{animation-name:arrive-port}@keyframes arrive-port{0%{opacity:0}}.thread{gap:calc(var(--step) * 2);padding:calc(var(--step) * 1.75);margin-bottom:calc(var(--step) * 1.75);background:var(--paper);border-radius:var(--radius);flex-direction:column;display:flex}.messages{gap:var(--step);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.messages:empty{display:none}.msg{border-left:2px solid var(--rule);padding-left:calc(var(--step) * 1.25)}.msg[data-dir=in]{border-left-color:var(--cable)}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.9375rem}.msg[data-pending] .msg-body{opacity:.7}.msg[data-pending] .msg-from{color:var(--cable-0)}.msg-meta{align-items:baseline;gap:calc(var(--step) * 1.5);color:var(--muted);margin:3px 0 0;font-size:.6875rem;display:flex}.kept{align-items:baseline;gap:calc(var(--step) * 1.25);font-family:var(--font-sans);color:var(--muted);margin:0;font-size:.6875rem;display:flex}.msg[data-past] .msg-body{color:var(--muted)}.composer{gap:var(--step);flex-direction:column;display:flex}.composer textarea{width:100%;padding:calc(var(--step) * 1.25);color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);resize:vertical;background:0 0;font-family:inherit;font-size:.875rem;line-height:1.5}.composer textarea:disabled{opacity:.6}.composer-row{align-items:center;gap:calc(var(--step) * 1.5);flex-wrap:wrap;display:flex}.solid:disabled{opacity:.5;cursor:not-allowed}.link-state{color:var(--muted);font-size:.75rem}.empty{padding:calc(var(--step) * .5) 0 calc(var(--step) * 2);font-family:var(--font-sans);color:var(--muted);max-width:26rem;margin:0;font-size:.875rem;line-height:1.6}.empty-head{font-family:var(--font-mono);color:var(--ink);margin-bottom:2px;font-size:.9375rem;display:block}.note{margin:calc(var(--step) * 5) 0 0;padding-top:calc(var(--step) * 2);border-top:1px solid var(--rule);font-family:var(--font-sans);color:var(--muted);font-size:.75rem;line-height:1.6}@media (max-width:30rem){:root{--gutter:28px;--rail-x:9px}.peer-head{gap:2px calc(var(--step) * 1.25);grid-template-columns:1fr auto auto;grid-template-areas:"name time caret""id. ."}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[hidden]{display:none!important}
