@font-face{font-family:Roboto Flex;src:url(./roboto-flex-DD1n54fX.woff2) format("woff2");font-weight:100 1000;font-stretch:25% 151%;font-display:swap}:root{--bg: #14171d;--panel: #1e232b;--panel-2: #272d37;--ink: #e6e9ef;--muted: #9aa2b1;--border: rgba(255, 255, 255, .09);--accent: #acff69;--accent-ink: #10180a;--err: #ff6b6b;--warn: #ffc861;--ok: #acff69;--shadow: rgba(0, 0, 0, .45);--pad: clamp(1.1rem, 4vw, 1.6rem)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:Roboto Flex,system-ui,sans-serif;min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:clamp(1.2rem,5vh,2.4rem) 1rem;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#app{display:contents}main{width:100%;max-width:1200px;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center}h1{font-size:1.15rem;font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-variation-settings:"opsz" 144,"wght" 850,"wdth" 100}h1 span{font-variation-settings:"opsz" 144,"wght" 500,"wdth" 100;opacity:.5}.sub{color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;margin:.5rem 0 1.4rem}.card h2{font-size:1.5rem;font-weight:400;text-transform:uppercase;letter-spacing:-.01em;line-height:.95;margin:0 0 .6rem;font-variation-settings:"opsz" 144,"wght" 820,"wdth" 90}.card p{margin:0 0 1rem;color:var(--muted);font-size:.9rem;line-height:1.5}.card p b{color:var(--ink);font-weight:700}summary{color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.02em;cursor:pointer}.card{width:100%;max-width:520px;margin-inline:auto;background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:22px}button{font:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;border:0;border-radius:999px;padding:.85em 1.3em;background:var(--accent);color:var(--accent-ink);cursor:pointer;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5em;box-shadow:0 5px 0 var(--shadow);transition:transform .1s ease,box-shadow .1s ease,background-color .16s ease,color .16s ease}button:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--shadow)}button:active{transform:translateY(3px);box-shadow:0 2px 0 var(--shadow)}button.ghost{background:transparent;color:var(--ink);border:2px solid var(--border);box-shadow:none;padding:calc(.85em - 2px) calc(1.3em - 2px)}button.ghost:hover{transform:none;border-color:var(--ink);background:#ffffff0a}button.ghost:active{transform:translateY(1px)}button svg{width:17px;height:17px}.icon{display:flex}.row{display:flex;gap:8px}.row button{flex:1}.lead{color:var(--ink);font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}#choose .row+button{margin-top:10px}#choose .hint{font-size:.78rem;color:var(--muted);line-height:1.5;margin:14px 0 18px}#choose #installBtn{margin-top:2px}button.back{width:auto;align-self:flex-start;padding:.5em .9em;font-size:.74rem;color:var(--muted);border-color:transparent}button.back svg{width:15px;height:15px}button.back:hover{color:var(--ink);border-color:var(--border);background:transparent}#choose{display:flex;flex-direction:column}.steps{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0 0 1.6rem}.steps li{display:flex;align-items:flex-start;gap:12px;color:var(--ink);font-size:.9rem;line-height:1.4}.steps li span{flex:0 0 auto;width:24px;height:24px;border-radius:999px;background:var(--accent);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800}#how .how p{margin:0 0 1rem}#how .how p:last-child{margin-bottom:0}#how .how-methods{list-style:none;margin:-.4rem 0 1rem;padding:0;display:flex;flex-direction:column;gap:.55rem}#how .how-methods li{color:var(--muted);font-size:.9rem;line-height:1.5;padding-left:.9rem;border-left:2px solid var(--border)}#how #howBack{margin-top:1.6rem}#choose .foot{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:.78rem}#choose .foot a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-weight:600;cursor:pointer}#choose .foot a:hover{color:var(--ink)}#choose .foot svg{width:15px;height:15px}#choose .foot .dot-sep{color:var(--border)}#choose .build{text-align:center;margin-top:8px;font-size:.68rem;opacity:.4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:all;user-select:all}textarea{width:100%;font:inherit;font-size:.8rem;color:var(--ink);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:10px 12px;resize:vertical}textarea:focus{outline:none;border-color:var(--accent)}.link{word-break:break-all;font:.68rem/1.5 ui-monospace,SF Mono,Menlo,monospace;color:var(--muted);margin-top:12px;padding:10px 12px;background:var(--bg);border-radius:10px}.link:empty{display:none}.qr{display:flex;align-items:center;justify-content:center}.qr-frame{display:contents}.qr-frame canvas{display:block;box-sizing:border-box;max-width:100%;max-height:100%;width:auto;height:auto;background:#fff;padding:14px;border-radius:16px}.scanview{position:relative;margin:16px auto 0;width:216px;max-width:100%;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:1}.pairgrid{display:flex;flex-direction:column}.paircol{display:flex;flex-direction:column;margin-top:16px}@media(min-width:680px){#pair{width:auto;max-width:100%}.pairgrid{flex-direction:row;align-items:stretch;gap:24px;max-height:calc(100svh - 130px)}.pairgrid>.qr{flex:0 0 auto}.qr-frame canvas{max-height:calc(100svh - 130px);max-width:calc(min(100vw - 32px,1200px) - 368px)}.paircol{flex:0 0 300px;margin-top:0;min-height:0;overflow-y:auto}.paircol #pairIntro{margin-top:0}.paircol .scanview{margin:0 0 4px;width:100%}#pair[data-method=link]{width:100%;max-width:520px}#pair[data-method=link] .pairgrid{display:block;max-height:none}#pair[data-method=link] .paircol{display:block;overflow:visible}}#linkPanel>p{margin:0 0 14px;color:var(--muted);font-size:.9rem;line-height:1.5}#switchMethod{margin-top:16px}.scanview video{width:100%;height:100%;object-fit:cover;display:block}.scanview video.mirror{transform:scaleX(-1)}.scanframe{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:10px;background:linear-gradient(var(--accent),var(--accent)) 0 0,linear-gradient(var(--accent),var(--accent)) 0 0,linear-gradient(var(--accent),var(--accent)) 100% 0,linear-gradient(var(--accent),var(--accent)) 100% 0,linear-gradient(var(--accent),var(--accent)) 0 100%,linear-gradient(var(--accent),var(--accent)) 0 100%,linear-gradient(var(--accent),var(--accent)) 100% 100%,linear-gradient(var(--accent),var(--accent)) 100% 100%;background-repeat:no-repeat;background-size:20px 3px,3px 20px;pointer-events:none}.hint{margin:12px 0 0;font-size:.8rem;color:var(--muted);text-align:center;line-height:1.5}.hint b{color:var(--ink);font-weight:700}.fallback{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.fallback>summary{display:flex;align-items:center;gap:8px}.fallback>summary svg{width:15px;height:15px}.fallback .row{margin-top:12px}.status{font-size:.85rem;margin-top:14px;display:flex;align-items:center;gap:9px;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.dot.wait{background:var(--accent);animation:pulse 1.2s infinite}.dot.ok{background:var(--ok);box-shadow:0 0 0 4px #acff6926}.dot.err{background:var(--err)}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.hidden{display:none!important}a{color:var(--accent)}.stunprompt{margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.stunprompt p{margin:0 0 12px;font-size:.8rem;line-height:1.5}.stunprompt button{width:100%}#room{flex:1;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden;position:relative}#room.dropping{outline:2px dashed var(--accent);outline-offset:-8px}.dropzone{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--accent);font-weight:700;letter-spacing:.04em}.dropzone svg{width:40px;height:40px}.roomhead{display:flex;align-items:center;gap:9px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.roomhead #reconnect{display:inline-flex;align-items:center;gap:8px;width:auto;padding:6px 12px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.roomhead #reconnect .dot{margin:0}.roomhead #reconnect .rc{color:var(--accent);letter-spacing:.08em}.roomhead #reconnect .rc:before{content:"·";margin-right:8px;color:var(--muted)}.roomhead .savedir{margin-left:auto;width:auto;display:inline-flex;align-items:center;gap:6px;max-width:55%;padding:6px 12px;font-size:.72rem;letter-spacing:.06em;text-transform:none}.roomhead .savedir svg{width:14px;height:14px;flex:none}.roomhead .savedir.set{overflow:hidden}.roomhead .savedir.set>:not(svg):not(.x){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roomhead .savedir .x{display:inline-flex;margin-left:2px;opacity:.6}.roomhead .savedir .x:hover{opacity:1}.msg .fmeta .saved{display:inline-flex;align-items:center;gap:5px;font-weight:700}.msg .fmeta .saved svg{width:14px;height:14px}#log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:9px}.msg{max-width:82%;padding:9px 13px;border-radius:16px;font-size:.9rem;line-height:1.45;word-break:break-word;white-space:pre-wrap}.msg.mine{align-self:flex-end;background:var(--accent);color:var(--accent-ink);font-weight:500;border-bottom-right-radius:5px}.msg.their{align-self:flex-start;background:var(--panel-2);border-bottom-left-radius:5px}.msg.sys{align-self:center;background:transparent;color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.msg .fname{font-weight:700;display:flex;align-items:center;gap:7px}.msg .fname svg{width:16px;height:16px;flex:none}.msg .fmeta{font-size:.75rem;opacity:.85;margin-top:3px}.msg .fmeta a{display:inline-flex;align-items:center;gap:5px;color:inherit;font-weight:700;text-decoration:underline}.msg .fmeta a svg{width:14px;height:14px}.msg .bar{height:5px;background:#00000040;border-radius:999px;overflow:hidden;margin-top:7px}.msg.their .bar{background:#ffffff1f}.msg .bar>i{display:block;height:100%;width:0;background:currentColor;transition:width .1s}.composer{display:flex;gap:9px;padding:13px;border-top:1px solid var(--border);align-items:flex-end}.composer textarea{flex:1;resize:none;max-height:120px;border-radius:999px;padding:11px 16px}.iconbtn{width:44px;height:44px;flex:none;padding:0}.iconbtn svg{width:19px;height:19px}
