@font-face{font-family:Inter Variable;src:url(/fonts/inter-latin-wght-normal.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--font-display: "Instrument Serif", "Times New Roman", Georgia, serif;--bg: #0a0a0a;--bg-raised: #101013;--surface: #131316;--surface-2: #1a1a1f;--hairline: rgb(255 255 255 / 7%);--hairline-2: rgb(255 255 255 / 12%);--hairline-3: rgb(255 255 255 / 22%);--text-1: #ededed;--text-2: rgb(237 237 237 / 62%);--text-3: rgb(237 237 237 / 40%);--accent: #ffffff;--accent-ink: #0a0a0a;--radius-s: 10px;--radius-m: 12px;--radius-l: 16px;--ease: cubic-bezier(.2, 0, 0, 1);--dur-1: .13s;--dur-2: .22s;--frame-w: 760px;--header-h: 64px;--font: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{height:100%;overflow-x:clip}body{min-height:100dvh;background:var(--bg);color:var(--text-1);font-family:var(--font);font-size:14px;font-weight:430;line-height:1.5;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#root{min-height:100dvh;display:flex;flex-direction:column}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid rgb(255 255 255 / 55%);outline-offset:2px;border-radius:6px}a{color:inherit;text-decoration:none}.display{font-family:var(--font-display);font-weight:400;letter-spacing:.002em;line-height:1.04}.hero-name{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(46px,8vw,64px);letter-spacing:.004em;line-height:1}.title{font-size:20px;font-weight:600;letter-spacing:-.022em}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.mono-num{font-variant-numeric:tabular-nums;letter-spacing:0}.kicker{font-size:11px;font-weight:560;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.frame{width:100%;max-width:var(--frame-w);margin:0 auto;padding:0 24px;flex:1;display:flex;flex-direction:column;min-height:0}.header{position:sticky;top:0;z-index:20;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--hairline);background:#0a0a0ab8;backdrop-filter:blur(12px)}.header-inner{width:100%;max-width:var(--frame-w);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-side{display:flex;align-items:center;gap:12px;min-width:0}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--text-1);user-select:none}.brand svg{width:18px;height:18px}.brand-name{font-size:13.5px;font-weight:640;letter-spacing:.2em;text-transform:uppercase}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--hairline-2);color:var(--text-2);font-weight:580;letter-spacing:-.01em;user-select:none}.avatar.s36{width:36px;height:36px;font-size:13px}.avatar.s40{width:40px;height:40px;font-size:14px}.avatar.s56{width:56px;height:56px;font-size:19px}.avatar.s72{width:72px;height:72px;font-size:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--radius-s);border:1px solid transparent;font-family:inherit;font-size:13.5px;font-weight:540;letter-spacing:-.008em;color:inherit;background:none;border-color:transparent;cursor:pointer;user-select:none;white-space:nowrap;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease)}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.32;cursor:default;transform:none}.btn svg{width:16px;height:16px;flex:none}.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:580}.btn-primary:hover:not(:disabled){background:#ffffffdb}.btn-ghost{border-color:var(--hairline-2);color:var(--text-1)}.btn-ghost:hover:not(:disabled){border-color:var(--hairline-3);background:#ffffff0a}.btn-quiet{color:var(--text-2);padding:0 10px}.btn-quiet:hover:not(:disabled){color:var(--text-1);background:#ffffff0d}.btn-lg{height:48px;padding:0 20px;font-size:14.5px;border-radius:var(--radius-m)}.circle{width:56px;height:56px;padding:0;border-radius:50%;border:1px solid var(--hairline-2);background:#ffffff08;color:var(--text-1)}.circle:hover:not(:disabled){background:#ffffff14;border-color:var(--hairline-3)}.circle svg{width:21px;height:21px}.circle.small{width:48px;height:48px}.circle.filled{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.circle.filled:hover:not(:disabled){background:#ffffffdb}.field{width:100%;height:48px;padding:0 16px;border-radius:var(--radius-m);border:1px solid var(--hairline-2);background:var(--bg-raised);color:var(--text-1);font-size:15px;outline:none;transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}.field::placeholder{color:var(--text-3)}.field:focus{border-color:#ffffff61;background:var(--surface)}.field[aria-invalid=true]{border-color:#ffffff7f}.conn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.conn span{position:absolute;border-radius:50%}.conn .c1,.conn .c2,.conn .c3{width:4px;height:4px;left:calc(50% - 2px);top:calc(50% - 2px);background:var(--text-2)}.conn .c1{transform:translate(-7px)}.conn .c3{transform:translate(7px)}.conn.connecting .c1,.conn.connecting .c2,.conn.connecting .c3{animation:connPulse 1.1s var(--ease) infinite}.conn.connecting .c2{animation-delay:.15s}.conn.connecting .c3{animation-delay:.3s}.conn .core{width:6px;height:6px;left:calc(50% - 3px);top:calc(50% - 3px);background:var(--text-3);transform:scale(.4);opacity:.5}.conn.online .c1,.conn.online .c3,.conn.online .c2{animation:connGather .42s var(--ease) forwards}.conn.online .core{animation:connCore .42s var(--ease) forwards}.conn.offline .core{transform:scale(1);opacity:.55}@keyframes connPulse{0%,to{opacity:.25;transform:translate(var(--tx, 0)) scale(.8)}50%{opacity:1;transform:translate(var(--tx, 0)) scale(1.1)}}.conn.connecting .c1{--tx: -7px}.conn.connecting .c2{--tx: 0px}.conn.connecting .c3{--tx: 7px}@keyframes connGather{to{opacity:0;transform:translate(0) scale(.2)}}@keyframes connCore{0%{opacity:.5;transform:scale(.4)}60%{opacity:1;transform:scale(1.35)}to{opacity:1;transform:scale(1);background:var(--accent);box-shadow:0 0 0 3.5px #ffffff1a}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.gate{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px}.gate-card{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px}.gate-card .gate-mark{width:30px;height:30px;margin-bottom:20px;color:var(--text-1)}.gate-card h1{font-size:36px;margin-bottom:2px}.gate-sub{font-size:14.5px;color:var(--text-2);margin-bottom:28px}.gate-meta{display:flex;align-items:baseline;justify-content:space-between;margin-top:10px}.gate-meta .hint{font-size:12.5px;color:var(--text-3);text-align:left}.gate-meta .hint.error{color:var(--text-1)}.gate-meta .count{font-size:12px;color:var(--text-3)}.gate-card .btn{margin-top:16px}.lobby{flex:1;display:flex;flex-direction:column;padding:32px 0 40px;min-height:0}.lobby-core{width:min(520px,100%);margin:auto;display:flex;flex-direction:column}.lobby-core .lobby-title{margin-bottom:14px}.lobby-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.count-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;border:1px solid var(--hairline);font-size:12px;color:var(--text-3)}.list{border:1px solid var(--hairline);border-radius:var(--radius-l);background:#ffffff05;overflow:hidden}.row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--hairline);transition:background var(--dur-1) var(--ease);animation:rise var(--dur-2) var(--ease) both}.row:last-child{border-bottom:none}.row:hover{background:#ffffff06}.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.row-name{font-size:15.5px;font-weight:570;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px}.you-tag{font-size:10.5px;font-weight:560;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--hairline-2);border-radius:5px;padding:1.5px 6px}.row-status{font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:6px}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--text-3);opacity:.7}.status-dot.in-call{background:var(--text-1)}.status-dot.ringing{animation:pulse 1.2s var(--ease) infinite;background:var(--text-2)}.row .btn-call{opacity:.55}.row:hover .btn-call{opacity:1}.empty{padding:72px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.empty svg{width:36px;height:36px;color:var(--text-3);margin-bottom:8px}.empty .t1{font-size:15px;font-weight:560;color:var(--text-2)}.empty .t2{font-size:13px;color:var(--text-3)}.outgoing-note{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--hairline-2);border-radius:var(--radius-m);background:var(--surface);padding:13px 16px;margin-bottom:14px;animation:rise var(--dur-2) var(--ease)}.outgoing-note b{font-weight:580}.lobby-footer{margin-top:auto;padding-top:48px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;font-size:13px;color:var(--text-3)}.lobby-footer a{color:var(--text-3);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hairline-3);transition:color var(--dur-1) var(--ease)}.lobby-footer a:hover{color:var(--text-2)}.call{position:fixed;inset:0;z-index:40;background:radial-gradient(90% 60% at 50% 24%,#111114 0%,var(--bg) 62%);display:flex;flex-direction:column;animation:fade var(--dur-2) var(--ease)}.call-top{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:var(--header-h)}.call-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:0 24px;margin-top:-32px}.call-peer{font-size:clamp(30px,5vw,40px);font-weight:620;letter-spacing:-.033em}.call-meta{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:13px}.call-meta .sep{width:3px;height:3px;border-radius:50%;background:var(--hairline-3)}.ribbon{width:min(340px,76vw);height:44px;margin-top:14px}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;border:1px solid var(--hairline-2);font-size:12px;color:var(--text-2)}.banner{position:fixed;z-index:45;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);border:1px solid var(--hairline-2);border-radius:999px;background:var(--surface);padding:8px 16px;font-size:13px;color:var(--text-2);animation:pulse 1.6s var(--ease) infinite}.call-bottom{display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 24px calc(40px + env(safe-area-inset-bottom))}.controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.call-hint{font-size:12px;color:var(--text-3)}.overlay{position:fixed;inset:0;z-index:50;background:#000000ad;backdrop-filter:blur(2px);animation:fade var(--dur-2) var(--ease)}.overlay[data-state=closed]{animation:fadeOut .18s var(--ease) forwards}.modal[data-state=open]{animation:modalIn .26s var(--ease)}.modal[data-state=closed]{animation:modalOut .2s var(--ease) forwards}.menu[data-state=closed]{animation:sink .14s var(--ease) forwards}.modal{position:fixed;z-index:51;top:50%;left:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 40px));max-width:calc(100vw - 32px);border:1px solid var(--hairline-2);border-radius:var(--radius-l);background:var(--surface);padding:28px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;animation:rise var(--dur-2) var(--ease);box-shadow:0 24px 80px #0000008c}.modal .avatar{margin-bottom:14px}.modal-title{font-family:var(--font-display);font-style:italic;font-size:27px;font-weight:400;letter-spacing:.004em}.modal-sub{font-size:13.5px;color:var(--text-3);margin-bottom:20px}.modal-actions{display:flex;gap:14px}.modal .list{width:100%;text-align:left;margin-bottom:14px}.modal .list .row{padding:11px 14px}.menu{z-index:52;min-width:264px;border:1px solid var(--hairline-2);border-radius:var(--radius-m);background:var(--surface);padding:6px;animation:rise var(--dur-1) var(--ease);box-shadow:0 20px 60px #0000007f}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:var(--radius-s);font-size:13.5px;font-weight:500;cursor:pointer;outline:none}.menu-item:hover,.menu-item[data-highlighted]{background:#ffffff0f}.menu-item small{display:block;color:var(--text-3);font-size:12px;font-weight:430;margin-top:1px}.menu-item .check{width:14px;text-align:center;color:var(--text-1)}.toasts{position:fixed;z-index:60;top:calc(16px + env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{border:1px solid var(--hairline-2);border-radius:999px;background:var(--surface-2);color:var(--text-1);font-size:13px;padding:9px 16px;animation:rise var(--dur-2) var(--ease);box-shadow:0 12px 40px #00000073}.toast.leaving{animation:sink .24s var(--ease) forwards}.probe{flex:1;display:flex;flex-direction:column;gap:16px;padding:40px 0 56px;font-variant-numeric:tabular-nums}.probe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:720px){.probe-grid{grid-template-columns:1fr}}.probe-card{border:1px solid var(--hairline);border-radius:var(--radius-l);background:#ffffff05;padding:24px;display:flex;flex-direction:column;gap:14px}.probe-card .desc{font-size:13px;color:var(--text-3);margin-top:-8px}.metric{display:flex;flex-direction:column;gap:2px}.metric .value{font-size:26px;font-weight:620;letter-spacing:-.02em}.metric .value small{font-size:14px;font-weight:500;color:var(--text-3);margin-left:2px}.metric .label{font-size:12px;color:var(--text-3)}.probe-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:var(--text-2);min-height:24px}.probe-row b{color:var(--text-1);font-weight:560}.verdict{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:4px 12px;border-radius:16px;border:1px solid var(--hairline-2);font-size:12.5px;font-weight:560;color:var(--text-1);max-width:100%;white-space:normal;text-align:left}.verdict .dot{flex:none}.verdict .dot{width:7px;height:7px;border-radius:50%}.verdict.pass .dot{background:var(--accent);box-shadow:0 0 0 3px #ffffff17}.verdict.warn .dot{border:1.5px solid var(--text-2);animation:pulse 1.4s var(--ease) infinite}.verdict.fail .dot{border:1.5px solid var(--text-1)}.verdict.none{color:var(--text-3)}.probe-footer{text-align:center;font-size:12.5px;color:var(--text-3)}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,calc(-50% + 10px)) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes modalOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.97)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes sink{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(4px) scale(.97)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(5px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:560px){.frame,.header-inner{padding:0 16px}.lobby{padding-top:28px}.call-center{margin-top:-8px}}.row.leaving{animation:rowOut .24s var(--ease) forwards;pointer-events:none}@keyframes rowOut{to{opacity:0;transform:translate(10px)}}.outgoing-note.leaving,.empty.leaving,.banner.leaving{animation:sink .2s var(--ease) forwards;pointer-events:none}.call-exiting{position:fixed;inset:0;z-index:40;background:var(--bg);animation:fadeOut .22s var(--ease) forwards;pointer-events:none}.gate-card{animation:rise var(--dur-2) var(--ease) both}
