:root{--ink: #031018;--deep: #06141f;--panel: rgba(8, 28, 40, .72);--line: rgba(140, 220, 200, .18);--mist: #9eb6b0;--foam: #e8f7f2;--accent: #2fe0a8;--accent-2: #f0b429;--danger: #ff6b6b;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;color:var(--foam);background:var(--deep);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;min-height:100dvh}html{overflow-x:hidden;-webkit-text-size-adjust:100%}body{margin:0;min-height:100%;min-height:100dvh;overflow-x:hidden;background:radial-gradient(1200px 600px at 10% -10%,rgba(47,224,168,.18),transparent 55%),radial-gradient(900px 500px at 90% 0%,rgba(240,180,41,.12),transparent 50%),linear-gradient(165deg,#082031,#06141f 45%,#031018)}button,input{font:inherit}.app{position:relative;min-height:100%;min-height:100dvh;overflow-x:hidden;overflow-y:visible;display:flex;flex-direction:column;padding:max(.85rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));width:100%;max-width:100vw}.aurora{pointer-events:none;position:fixed;inset:-20% -10% auto;height:55vh;background:radial-gradient(circle at 30% 40%,rgba(47,224,168,.22),transparent 40%),radial-gradient(circle at 70% 30%,rgba(56,168,255,.14),transparent 42%);filter:blur(18px);animation:drift 14s ease-in-out infinite alternate}.grid-noise{pointer-events:none;position:fixed;inset:0;opacity:.22;background-image:linear-gradient(rgba(232,247,242,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(232,247,242,.04) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);mask-image:linear-gradient(to bottom,black,transparent 85%)}@keyframes drift{0%{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(3%,4%,0) scale(1.05)}}.topbar{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.5rem;width:min(100%,42rem);margin-inline:auto}.brand-block{display:grid;gap:.2rem;min-width:0}.brand-row{display:flex;align-items:center;gap:.65rem;min-width:0}.brand-wordmark{font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:-.03em;white-space:nowrap}.brand-block .version{margin-left:2.65rem;font-size:.75rem;color:var(--mist);font-variant-numeric:tabular-nums;letter-spacing:.04em}.brand-mark{width:2rem;height:2rem;position:relative;flex:0 0 auto}.brand-mark span{position:absolute;inset:0;border:2px solid var(--accent);border-radius:.55rem;transform:rotate(12deg)}.brand-mark span:last-child{inset:.35rem;border-color:var(--accent-2);transform:rotate(-8deg);animation:pulse-mark 2.8s ease-in-out infinite}@keyframes pulse-mark{0%,to{opacity:.55}50%{opacity:1}}.eyebrow{margin:0;color:var(--mist);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;max-width:100%}.install-wrap{flex:1 0 100%;display:grid;gap:.35rem}.install-btn{width:fit-content}.install-help{margin:0;color:var(--mist);font-size:.85rem;line-height:1.35;max-width:28rem}.hero{position:relative;z-index:1;flex:1;width:min(100%,28rem);margin-inline:auto;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;padding:.75rem 0 1rem}.hero-copy{position:relative;z-index:1;width:100%;max-width:none;animation:rise .8s ease both}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.logo{margin:0 0 .5rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2.15rem,7vw,3.15rem);line-height:.95;letter-spacing:-.04em;text-align:center;overflow-wrap:anywhere;word-break:break-word;background:linear-gradient(120deg,#f4fff9 10%,#2fe0a8 55%,#f0b429 120%);-webkit-background-clip:text;background-clip:text;color:transparent}.logo.compact{font-size:clamp(1.8rem,4vw,2.4rem);margin-bottom:.35rem;text-align:left}.lede{margin:0 auto 1rem;color:#cfe3dc;font-size:clamp(.92rem,2vw,1.02rem);line-height:1.4;max-width:24rem;text-align:center}.cta-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:.85rem;width:100%;justify-content:center}.btn{border:1px solid transparent;border-radius:999px;padding:.85rem 1.25rem;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(120deg,#2fe0a8,#1aa889);color:#042018;font-weight:700}.btn.primary:hover:not(:disabled){transform:translateY(-1px)}.btn.ghost{background:#e8f7f20a;border-color:var(--line);color:var(--foam)}.btn.ghost:hover:not(:disabled){border-color:#2fe0a873}.btn.danger{background:#ff6b6b24;border-color:#ff6b6b73;color:#ffb4b4;font-weight:700}.btn.danger:hover:not(:disabled){background:#ff6b6b38}.room-head-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.join-panel{display:grid;gap:.4rem;margin-bottom:.85rem;width:100%;max-width:none}.join-label{color:var(--mist);font-size:.85rem}.join-inline{display:flex;gap:.45rem;align-items:center;padding:.25rem .25rem .25rem .9rem;border:1px solid var(--line);border-radius:999px;background:#03101873;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;max-width:100%;min-width:0;box-sizing:border-box}.join-inline input{flex:1 1 auto;min-width:6.5rem;width:0;border:0;background:transparent;color:var(--foam);letter-spacing:.22em;text-transform:uppercase;outline:none;font-family:var(--font-display);font-weight:700;font-size:1.05rem}.join-inline input::placeholder{color:#9eb6b08c;letter-spacing:.12em;font-weight:600}.join-btn{flex:0 0 auto;width:auto!important;white-space:nowrap}.name-field{display:grid;gap:.35rem;width:100%;max-width:none;color:var(--mist);font-size:.85rem}.room-name-field{margin-top:.75rem}.name-field input{border:1px solid var(--line);background:#03101880;color:var(--foam);border-radius:.75rem;padding:.7rem .85rem;outline:none}.name-field input:focus,.join-inline:focus-within{border-color:#2fe0a88c}.hero-visual{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);width:min(360px,88vw);min-height:0;display:grid;place-items:center;opacity:.2;pointer-events:none;z-index:0}.orbit{width:min(260px,70vw);aspect-ratio:1;border-radius:50%;border:1px solid rgba(47,224,168,.25);position:relative;animation:spin 22s linear infinite}.orbit i{position:absolute;width:.85rem;height:.85rem;border-radius:50%;background:var(--accent);box-shadow:0 0 24px #2fe0a8b3}.orbit i:nth-child(1){top:8%;left:48%}.orbit i:nth-child(2){bottom:18%;right:10%;background:var(--accent-2);box-shadow:0 0 24px #f0b429a6}.orbit i:nth-child(3){left:12%;top:55%;background:#5eb8ff}@keyframes spin{to{transform:rotate(360deg)}}.signal-beam{position:absolute;width:55%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);filter:blur(.2px);animation:beam 2.4s ease-in-out infinite}@keyframes beam{0%,to{opacity:.25;transform:scaleX(.7)}50%{opacity:1;transform:scaleX(1)}}.room{position:relative;z-index:1;display:grid;gap:1.1rem;width:min(100%,52rem);margin-inline:auto;flex:1}.room-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.room-status{margin:0;color:var(--mist)}.pair-strip{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:stretch}.code-block,.qr-wrap,.dropzone,.transfers{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem}.code-block{flex:1;min-width:min(100%,220px);display:grid;align-content:center;gap:.45rem}.label{color:var(--mist);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.code{font-family:var(--font-display);font-size:clamp(2rem,10vw,3rem);letter-spacing:.16em;line-height:1.1;overflow-wrap:anywhere;word-break:break-all;color:var(--foam)}.room-title-display{font-family:var(--font-display);font-size:clamp(1.45rem,5vw,2rem);letter-spacing:-.02em;line-height:1.15;color:var(--foam)}.subtle-code{font-size:1rem;letter-spacing:.14em;color:var(--mist);margin-top:-.15rem}.room-rename{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-top:.35rem}.room-rename input,.comment-compose input{flex:1;min-width:0;border:1px solid var(--line);background:#03101880;color:var(--foam);border-radius:999px;padding:.55rem .85rem;outline:none;font-size:16px}.room-rename input:focus,.comment-compose input:focus{border-color:#2fe0a88c}.comment-log{display:grid;gap:.45rem;max-height:160px;overflow-y:auto}.comment-item{padding:.55rem .7rem;border-radius:.75rem;border:1px solid var(--line);background:#03101866}.comment-item p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.comment-compose{display:flex;gap:.45rem;align-items:center}.code-actions{display:flex;flex-wrap:wrap;gap:.5rem}.qr-wrap{display:grid;justify-items:center;gap:.5rem;align-content:center}.qr-wrap img{width:200px;height:200px;padding:.65rem;background:#fff;border-radius:.85rem;image-rendering:pixelated}.linkish{border:0;background:transparent;color:var(--accent);cursor:pointer;padding:0;text-align:left}.dropzone{display:grid;gap:.85rem;justify-items:start;transition:border-color .16s ease,background .16s ease}.dropzone.hot{border-color:#2fe0a8a6;background:#2fe0a814}.dropzone h2,.transfers h2{margin:0;font-family:var(--font-display);font-size:1.4rem}.dropzone p{margin:0;color:var(--mist);max-width:36rem}.peer-row{display:flex;flex-wrap:wrap;gap:.55rem}.peer{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:#03101873;color:var(--foam);border-radius:999px;padding:.55rem .9rem;cursor:pointer}.peer.active{border-color:#2fe0a8b3;background:#2fe0a81f}.peer .dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #2fe0a8cc}.muted{color:var(--mist);margin:0}.transfers ul,.inbox ul{list-style:none;margin:.85rem 0 0;padding:0;display:grid;gap:.85rem}.transfers li,.inbox li{display:grid;gap:.45rem}.plan-pill{display:inline-flex;align-items:center;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;border:1px solid var(--line);color:var(--mist)}.plan-pill.pro{border-color:#e8b94a8c;color:#f0d48a;background:#e8b94a1a}.plan-pill.free{border-color:#2fe0a859;color:var(--accent)}.plan-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;margin-top:1.25rem;display:grid;gap:.65rem;width:100%}.plan-panel h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.plan-panel-head{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:space-between}.plan-compare{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.plan-compare strong{font-family:var(--font-display)}.plan-compare ul{margin:.35rem 0 0;padding-left:1.1rem;color:var(--mist);font-size:.9rem}.plan-actions{display:flex;flex-wrap:wrap;gap:.5rem}.plan-actions a.btn{text-decoration:none;display:inline-flex;align-items:center}.license-compose{display:flex;gap:.45rem;align-items:center}.license-compose input{flex:1;min-width:0;border:1px solid var(--line);background:#03101880;color:var(--foam);border-radius:999px;padding:.55rem .85rem;outline:none;font-size:16px}.license-compose input:focus{border-color:#2fe0a88c}.license-notice{margin:0;color:var(--accent);font-size:.92rem}.seo-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;margin-top:1.25rem;display:grid;gap:.65rem;width:100%}.seo-panel h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.faq-list{display:grid;gap:.45rem}.faq-list details{border:1px solid var(--line);border-radius:.75rem;padding:.65rem .8rem;background:#03101866}.faq-list summary{cursor:pointer;font-weight:600;color:var(--foam)}.faq-list details p{margin:.55rem 0 0;color:var(--mist);font-size:.92rem}.nearby-panel,.nearby-invite{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;margin-top:1.25rem;display:grid;gap:.65rem;width:100%}.nearby-panel h2,.nearby-invite h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.nearby-invite{border-color:#e8b94a73}.discover-toggle{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;color:var(--mist);cursor:pointer;-webkit-user-select:none;user-select:none}.nearby-scanning{display:flex;align-items:flex-start;gap:.65rem;color:var(--accent);min-height:2.5rem}.nearby-scanning strong{display:block;color:var(--foam)}.nearby-scanning .muted{margin:.25rem 0 0}.nearby-howto{margin:0;padding-left:1.2rem;display:grid;gap:.35rem;color:var(--mist);font-size:.92rem}.nearby-howto strong{color:var(--foam)}.nearby-spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid rgba(47,224,168,.25);border-top-color:var(--accent);animation:nearby-spin .8s linear infinite}@keyframes nearby-spin{to{transform:rotate(360deg)}}.nearby-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.nearby-row{display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border-radius:.75rem;border:1px solid var(--line);background:#03101866;cursor:pointer}.nearby-row input{accent-color:var(--accent)}@media(max-width:560px){.plan-compare{grid-template-columns:1fr}}.inbox,.home-inbox,.active-rooms{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;margin-top:1.25rem;width:100%}.home-inbox,.active-rooms{max-width:none}.inbox h2,.home-inbox h2,.active-rooms h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.active-rooms ul{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.75rem}.active-rooms li{display:grid;gap:.65rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}.active-rooms li:last-child{padding-bottom:0;border-bottom:none}.active-room-row{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:space-between;align-items:center}.active-room-code{font-family:var(--font-display);letter-spacing:.12em}.active-room-comments{display:grid;gap:.45rem;width:100%}.save-hint{margin:.45rem 0 0}.transfer-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.btn.slim{padding:.55rem .95rem;font-size:.9rem}.transfer-meta{display:flex;flex-direction:column;gap:.15rem}.transfer-meta span{color:var(--mist);font-size:.85rem}.bar{height:.35rem;border-radius:999px;background:#e8f7f214;overflow:hidden}.bar i{display:block;width:100%;height:100%;transform-origin:left center;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:transform .12s linear}.pill{width:fit-content;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--mist)}.pill.done{color:var(--accent)}.pill.error{color:var(--danger)}.error{color:#ffb4b4;margin:.25rem 0 0}.foot{position:relative;z-index:1;margin-top:auto;padding-top:1rem;color:#9eb6b0bf;font-size:.8rem;text-align:center;width:min(100%,42rem);margin-inline:auto}@media(max-width:860px){.hero{width:min(100%,26rem);padding-top:.35rem;justify-content:flex-start}.hero-visual{top:28%;opacity:.16}.orbit{width:min(200px,55vw)}.logo{font-size:clamp(2rem,10vw,2.75rem)}.lede{font-size:.95rem;margin-bottom:.85rem}.eyebrow{display:none}.topbar{margin-bottom:.35rem}.code{letter-spacing:.12em;font-size:clamp(1.6rem,9vw,2.4rem);overflow-wrap:anywhere}.pair-strip,.dropzone,.transfers,.inbox{width:100%;max-width:100%}.qr-wrap img{width:168px;height:168px}}@media(max-width:420px){.hero-visual{top:24%;opacity:.14}.btn.primary,.btn.ghost{width:100%;text-align:center}.chat-compose .chat-send,.chat-compose .btn.primary,.chat-compose .btn.ghost,.transfer-actions .btn.primary,.transfer-actions .btn.ghost,.room-head-actions .btn{width:auto}.join-panel{max-width:none}.join-inline{width:100%;border-radius:1rem;padding:.45rem .45rem .45rem .85rem}.join-inline input{flex:1 1 auto;min-width:0;width:auto;font-size:1.15rem}.join-btn{width:auto!important;min-width:4.5rem;padding-left:1rem;padding-right:1rem}.code-block{min-width:0;width:100%}.code{letter-spacing:.2em;font-size:clamp(2rem,12vw,2.6rem)}}.presence{display:grid;gap:1rem;grid-template-columns:minmax(220px,280px) 1fr;align-items:stretch}.peer-ring{position:relative;aspect-ratio:1;width:min(100%,280px);margin:0 auto;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle at center,rgba(47,224,168,.12),transparent 55%),#03101859}.peer-ring-orbit{position:absolute;inset:12%}.peer-ring-node{position:absolute;top:50%;left:50%;width:0;height:0;transform:rotate(var(--angle)) translate(110px) rotate(calc(var(--angle) * -1))}.peer-ring-dot{display:block;width:.7rem;height:.7rem;margin:-.35rem 0 0 -.35rem;border-radius:50%;background:var(--accent);box-shadow:0 0 12px #2fe0a8b3}.peer-ring-node.self .peer-ring-dot{background:var(--accent-2);box-shadow:0 0 12px #f0b429b3}.peer-ring-name{position:absolute;top:.55rem;left:50%;transform:translate(-50%);white-space:nowrap;max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;font-size:.72rem;color:var(--foam);text-align:center}.peer-ring-core{position:absolute;inset:34%;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:.1rem;background:#06141fd9;border:1px solid var(--line)}.peer-ring-core strong{font-family:var(--font-display);font-size:1.8rem;line-height:1}.peer-ring-core span{color:var(--mist);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.trust-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;display:grid;gap:.65rem;align-content:start}.trust-panel h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.send-target-bar{display:flex;flex-wrap:wrap;gap:.5rem}.trust-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.trust-list li{display:grid;gap:.45rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:.9rem;background:#03101859}.trust-list li.mutual{border-color:#2fe0a873}.trust-meta{display:grid;gap:.15rem}.trust-meta span{color:var(--mist);font-size:.85rem}.path-row{display:flex;flex-wrap:wrap;gap:.45rem .7rem;align-items:center}.path-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .65rem;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.path-badge.path-wifi-lan{background:#2fe0a829;color:#8ef0cc}.path-badge.path-direct{background:#f5c84229;color:#f5d76e}.path-badge.path-cloud{background:#5eb8ff29;color:#9fd0ff}.path-badge.path-unknown{background:#9eb6b01f;color:var(--mist)}.path-detail{color:var(--mist);font-size:.82rem}.chat-panel{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.1rem 1.2rem;display:grid;gap:.65rem}.chat-panel h2{margin:0;font-family:var(--font-display);font-size:1.25rem}.chat-log{display:grid;gap:.55rem;max-height:240px;overflow-y:auto;padding:.35rem .15rem}.chat-bubble{justify-self:start;max-width:min(100%,28rem);padding:.65rem .8rem;border-radius:.9rem;border:1px solid var(--line);background:#03101873}.chat-bubble.mine{justify-self:end;border-color:#2fe0a859;background:#2fe0a81a}.chat-meta{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin-bottom:.25rem;font-size:.75rem;color:var(--mist)}.chat-bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}.chat-compose{display:flex;gap:.45rem;align-items:center}.chat-compose input{flex:1;min-width:0;border:1px solid var(--line);background:#03101880;color:var(--foam);border-radius:999px;padding:.65rem .9rem;font-size:16px;outline:none}.chat-compose input:focus{border-color:#2fe0a88c}.chat-compose .chat-send{flex:0 0 auto;width:auto;min-width:0;padding:.55rem .85rem;font-size:.85rem;white-space:nowrap}@media(max-width:860px){.presence{grid-template-columns:1fr}.peer-ring{width:min(100%,260px)}.peer-ring-node{transform:rotate(var(--angle)) translate(96px) rotate(calc(var(--angle) * -1))}}
