*{box-sizing:border-box}html,body,#app{width:100%;height:100%}.home[data-v-6d85b3b1]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;gap:1.5rem}.logo[data-v-6d85b3b1]{display:inline-flex;align-items:center;gap:.55rem;font-size:clamp(3rem,10vw,6rem);font-weight:900;letter-spacing:-.02em;line-height:1}.logo-icon[data-v-6d85b3b1]{width:1.5em;height:1.5em;flex:0 0 auto}.logo-b[data-v-6d85b3b1]{color:#4f8ef7}.logo-l[data-v-6d85b3b1]{color:#7fb5ff}.logo-o[data-v-6d85b3b1]{color:#f7c94f}.logo-o2[data-v-6d85b3b1]{color:#f7a84f}.logo-p[data-v-6d85b3b1]{color:#f75f5f}.tagline[data-v-6d85b3b1]{color:#888;font-size:.95rem;text-align:center}.card[data-v-6d85b3b1],.browse-card[data-v-6d85b3b1]{width:100%;max-width:420px}.form[data-v-6d85b3b1]{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.browse-header[data-v-6d85b3b1]{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.browse-label[data-v-6d85b3b1]{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.08em}.rooms-empty[data-v-6d85b3b1]{color:#555;font-size:.9rem;text-align:center;padding:1rem 0}.room-list[data-v-6d85b3b1]{display:flex;flex-direction:column;gap:.5rem}.room-row[data-v-6d85b3b1]{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#1a1a22;border-radius:8px;border:1px solid #2a2a35;gap:.5rem}.room-row-info[data-v-6d85b3b1]{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;flex-wrap:wrap}.room-row-code[data-v-6d85b3b1]{font-weight:800;letter-spacing:.1em;color:#e8e8f0;font-size:.9rem}.room-row-phase[data-v-6d85b3b1]{font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:4px}.room-row-phase.lobby[data-v-6d85b3b1]{background:#4f8ef720;color:#4f8ef7}.room-row-phase.playing[data-v-6d85b3b1]{background:#4fca7f20;color:#4fca7f}.room-row-phase.result[data-v-6d85b3b1]{background:#88888820;color:#888}.room-row-counts[data-v-6d85b3b1]{font-size:.75rem;color:#666}.room-row-actions[data-v-6d85b3b1]{display:flex;gap:.4rem;flex-shrink:0}.tournament-list[data-v-6d85b3b1]{display:flex;flex-direction:column;gap:.5rem}.tournament-row[data-v-6d85b3b1]{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:#1a1a22;border-radius:8px;border:1px solid #2a2a35;gap:.5rem}.tournament-row-info[data-v-6d85b3b1]{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;flex-wrap:wrap}.tournament-row-code[data-v-6d85b3b1]{font-weight:800;letter-spacing:.1em;color:#e8e8f0;font-size:.9rem}.tournament-row-status[data-v-6d85b3b1]{font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:4px}.tournament-row-status.lobby[data-v-6d85b3b1]{background:#4f8ef720;color:#4f8ef7}.tournament-row-status.active[data-v-6d85b3b1]{background:#4fca7f20;color:#4fca7f}.tournament-row-status.stopped[data-v-6d85b3b1]{background:#f7c94f20;color:#f7c94f}.tournament-row-status.finished[data-v-6d85b3b1]{background:#88888820;color:#888}.tournament-row-status.archived[data-v-6d85b3b1]{background:#88888820;color:#777}.tournament-row-name[data-v-6d85b3b1]{color:#cfcfe0;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-row-counts[data-v-6d85b3b1]{font-size:.75rem;color:#666}.tournament-row-actions[data-v-6d85b3b1]{display:flex;gap:.4rem;flex-shrink:0}.slot[data-v-5b913366]{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:#1e1e26;border-radius:8px}.slot.spectator[data-v-5b913366]{border:1px solid #8b90a055}.blob-dot[data-v-5b913366]{width:32px;height:18px;border-radius:50% 50% 0 0/100% 100% 0 0;flex-shrink:0}.info[data-v-5b913366]{flex:1;display:flex;align-items:center;gap:.5rem}.name[data-v-5b913366]{font-weight:600;color:#e8e8f0}.badge[data-v-5b913366]{font-size:.7rem;padding:1px 6px;border-radius:4px;background:#2a2a35;color:#888}.badge.host[data-v-5b913366]{background:#4f8ef720;color:#4f8ef7}.badge.spectator[data-v-5b913366]{background:#8b90a025;color:#aeb3c2}.team-badge[data-v-5b913366]{font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:6px;color:#fff;opacity:.9}.team-badge.spectator[data-v-5b913366]{background:#8b90a025;color:#aeb3c2}.room-chat[data-v-1cba6675]{display:flex;flex-direction:column;gap:.5rem;background:#14141ceb;border:1px solid #2a2a35;border-radius:10px;padding:.6rem}.chat-header[data-v-1cba6675]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.75rem;color:#a0a0b0;letter-spacing:.08em;text-transform:uppercase}.chat-title[data-v-1cba6675]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-hide-btn[data-v-1cba6675]{letter-spacing:0;text-transform:none}.chat-list[data-v-1cba6675]{min-height:100px;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;padding-right:.25rem}.chat-empty[data-v-1cba6675]{color:#666;font-size:.8rem}.chat-row[data-v-1cba6675]{font-size:.82rem;line-height:1.25;word-break:break-word;padding:.15rem .2rem;border-radius:5px}.chat-row.spectator[data-v-1cba6675]{background:#8b90a018}.chat-name[data-v-1cba6675]{color:#d9d9e6;font-weight:700;margin-right:.25rem}.chat-role[data-v-1cba6675]{font-size:.62rem;font-weight:700;text-transform:uppercase;border-radius:4px;padding:1px 4px;margin-right:.35rem;background:#4f8ef720;color:#4f8ef7}.chat-role.spectator[data-v-1cba6675]{background:#8b90a025;color:#aeb3c2}.chat-text[data-v-1cba6675]{color:#c8c8d4}.chat-input-row[data-v-1cba6675]{display:grid;grid-template-columns:auto 1fr auto;gap:.4rem}.emoji-trigger[data-v-1cba6675]{min-width:2.1rem;font-size:1rem}.emoji-grid[data-v-1cba6675]{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;width:180px}.emoji-btn[data-v-1cba6675]{border:1px solid #2a2a35;background:#1a1a22;border-radius:6px;font-size:1rem;padding:.25rem 0;cursor:pointer}.emoji-btn[data-v-1cba6675]:hover{background:#242430}.compact .chat-list[data-v-1cba6675]{max-height:140px;min-height:70px}.lobby[data-v-0f85bc8c]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;position:relative}.lobby-content[data-v-0f85bc8c]{display:grid;grid-template-columns:minmax(360px,420px) minmax(300px,360px);gap:1rem;width:min(100%,840px)}.card[data-v-0f85bc8c]{width:100%;max-width:420px}.side-chat[data-v-0f85bc8c]{align-self:stretch}.lobby-header[data-v-0f85bc8c]{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.1rem}.mode-tag[data-v-0f85bc8c]{font-size:.75rem;padding:2px 8px;border-radius:6px;font-weight:700}.mode-tag.\31v1[data-v-0f85bc8c]{background:#4f8ef720;color:#4f8ef7}.mode-tag.practice[data-v-0f85bc8c]{background:#f7c94f20;color:#f7c94f}.room-code-block[data-v-0f85bc8c]{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem;background:#1e1e26;border-radius:10px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.room-code-block[data-v-0f85bc8c]:hover{background:#22222e}.room-code-label[data-v-0f85bc8c]{font-size:.75rem;color:#888;letter-spacing:.1em;text-transform:uppercase}.room-code[data-v-0f85bc8c]{font-size:2.5rem;font-weight:900;letter-spacing:.25em;color:#e8e8f0;font-variant-numeric:tabular-nums}.room-code-hint[data-v-0f85bc8c]{font-size:.7rem;color:#555}.section-label[data-v-0f85bc8c]{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.player-list[data-v-0f85bc8c]{display:flex;flex-direction:column;gap:.5rem}.empty-slot[data-v-0f85bc8c]{padding:.6rem .75rem;background:#1a1a22;border-radius:8px;color:#555;font-style:italic;font-size:.9rem;border:1px dashed #2a2a35}.difficulty-row[data-v-0f85bc8c]{margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem}.waiting-msg[data-v-0f85bc8c]{margin-top:1.25rem;text-align:center;color:#666;font-size:.9rem}.waiting-msg.spectating[data-v-0f85bc8c]{color:#aeb3c2}.spectator-section[data-v-0f85bc8c]{margin-top:.9rem}.spectator-title[data-v-0f85bc8c]{color:#aeb3c2}.practice-overlay[data-v-0f85bc8c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#121218;z-index:100;display:flex;align-items:center;justify-content:center}.practice-canvas[data-v-0f85bc8c]{display:block;width:100%;height:100%;object-fit:contain}.practice-back-btn[data-v-0f85bc8c]{position:absolute;top:1rem;left:1rem}.practice-chat[data-v-0f85bc8c]{position:absolute;right:1rem;bottom:1rem;width:min(30vw,360px);min-width:280px;z-index:101}.practice-fade-enter-active[data-v-0f85bc8c],.practice-fade-leave-active[data-v-0f85bc8c]{transition:opacity .2s}.practice-fade-enter-from[data-v-0f85bc8c],.practice-fade-leave-to[data-v-0f85bc8c]{opacity:0}@media(max-width:900px){.lobby-content[data-v-0f85bc8c]{grid-template-columns:1fr;width:min(100%,420px)}.practice-chat[data-v-0f85bc8c]{right:.6rem;bottom:.6rem;width:min(92vw,360px);min-width:0}}.game-canvas[data-v-41d20612]{display:block;width:100%;height:100%;object-fit:contain}.hud[data-v-6931c25b]{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.score-block[data-v-6931c25b]{display:flex;align-items:center;gap:1rem;flex:1;justify-content:center}.team-score[data-v-6931c25b]{display:flex;align-items:center;gap:.5rem;opacity:.7;transition:opacity .2s}.team-score.my-team[data-v-6931c25b]{opacity:1}.team-score.right[data-v-6931c25b]{flex-direction:row-reverse}.team-label[data-v-6931c25b]{font-size:.7rem;font-weight:800;letter-spacing:.05em;padding:1px 6px;border-radius:4px}.team-label.a[data-v-6931c25b]{background:#4f8ef730;color:#4f8ef7}.team-label.b[data-v-6931c25b]{background:#f75f5f30;color:#f75f5f}.points[data-v-6931c25b]{font-size:1.6rem;font-weight:900;color:#e8e8f0;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}.sets[data-v-6931c25b]{display:flex;gap:3px;flex-direction:column}.set-dot[data-v-6931c25b]{width:6px;height:6px;border-radius:50%;background:#333;transition:background .2s}.set-dot.filled[data-v-6931c25b]{background:#e8e8f0}.divider[data-v-6931c25b]{font-size:1.5rem;color:#555;font-weight:300}.hud-right[data-v-6931c25b]{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.spectating-badge[data-v-6931c25b]{font-size:.6rem;font-weight:800;letter-spacing:.1em;color:#f7c94f;background:#f7c94f18;border:1px solid #f7c94f40;border-radius:4px;padding:1px 5px}.ping[data-v-6931c25b]{font-size:.7rem;color:#888;font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.ping.good[data-v-6931c25b]{color:#4fca7f}.ping.ok[data-v-6931c25b]{color:#f7c94f}.diag[data-v-6931c25b]{font-size:.62rem;color:#8a8aa0;line-height:1.2}.overlay[data-v-6931c25b]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay-box[data-v-6931c25b]{background:#16161a;border-radius:12px;padding:2rem 2.5rem;text-align:center;display:flex;flex-direction:column;gap:.75rem;border:1px solid #2a2a35}.overlay-title[data-v-6931c25b]{font-size:1.2rem;font-weight:700;color:#e8e8f0}.overlay-sub[data-v-6931c25b]{color:#888;font-size:.9rem}.home-link[data-v-6931c25b]{color:#4f8ef7;text-decoration:none;font-weight:600;pointer-events:all}.fade-enter-active[data-v-6931c25b],.fade-leave-active[data-v-6931c25b]{transition:opacity .25s}.fade-enter-from[data-v-6931c25b],.fade-leave-to[data-v-6931c25b]{opacity:0}.game-view[data-v-12a863c4]{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:#0d0d0f}.canvas-wrapper[data-v-12a863c4]{position:relative;width:100%}.match-over[data-v-12a863c4]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.match-box[data-v-12a863c4]{background:#16161a;border-radius:14px;padding:2.5rem 3rem;text-align:center;display:flex;flex-direction:column;gap:1rem;border:1px solid #2a2a35}.match-title[data-v-12a863c4]{font-size:1.5rem;font-weight:900;color:#e8e8f0}.match-sets[data-v-12a863c4]{color:#888}.match-actions[data-v-12a863c4]{display:flex;gap:.75rem;justify-content:center}.waiting-label[data-v-12a863c4]{color:#888;font-size:.9rem}.vote-status[data-v-12a863c4]{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.vote-entry[data-v-12a863c4]{color:#666}.fade-enter-active[data-v-12a863c4],.fade-leave-active[data-v-12a863c4]{transition:opacity .3s}.fade-enter-from[data-v-12a863c4],.fade-leave-to[data-v-12a863c4]{opacity:0}.game-exit[data-v-12a863c4]{position:absolute;top:.5rem;left:.75rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ffffff8c;border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;cursor:pointer;pointer-events:all;transition:background .15s,color .15s;z-index:10}.game-exit[data-v-12a863c4]:hover{background:#ffffff26;color:#ffffffe6}.game-chat[data-v-12a863c4]{position:absolute;right:.75rem;top:.75rem;width:min(32vw,360px);z-index:9;pointer-events:all}.chat-bubble[data-v-12a863c4]{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:#14141ceb;border:1px solid #2a2a35;color:#ffffffd1;border-radius:999px;padding:.45rem .7rem;font-size:.75rem;font-weight:800;cursor:pointer;z-index:10;display:inline-flex;align-items:center;gap:.45rem}.chat-bubble[data-v-12a863c4]:hover{background:#1e1e28eb}.chat-badge[data-v-12a863c4]{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;border-radius:999px;background:#f75f5f;color:#0d0d0f;font-size:.72rem;font-weight:900;line-height:1}.tournament[data-v-7dbeb309]{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:2rem}.card[data-v-7dbeb309]{width:100%;max-width:420px;margin-top:4rem}.header[data-v-7dbeb309]{font-weight:700;font-size:1.1rem}.room-code-block[data-v-7dbeb309]{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem;background:#1e1e26;border-radius:10px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.room-code-block[data-v-7dbeb309]:hover{background:#22222e}.room-code-label[data-v-7dbeb309]{font-size:.75rem;color:#888;letter-spacing:.1em;text-transform:uppercase}.room-code[data-v-7dbeb309]{font-size:2.5rem;font-weight:900;letter-spacing:.25em;color:#e8e8f0;font-variant-numeric:tabular-nums}.room-code-hint[data-v-7dbeb309]{font-size:.7rem;color:#555}.section-label[data-v-7dbeb309]{font-size:.8rem;color:#888;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.player-list[data-v-7dbeb309]{display:flex;flex-direction:column;gap:.4rem}.player-row[data-v-7dbeb309]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#1a1a22;border-radius:8px;border:1px solid #2a2a35}.player-row.me[data-v-7dbeb309]{border-color:#4f8ef750}.player-name[data-v-7dbeb309]{flex:1;font-weight:600;color:#e0e0e8}.host-badge[data-v-7dbeb309]{font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:4px;background:#f7c94f20;color:#f7c94f;text-transform:uppercase}.me-badge[data-v-7dbeb309]{font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:4px;background:#4f8ef720;color:#4f8ef7;text-transform:uppercase}.waiting-msg[data-v-7dbeb309]{text-align:center;color:#666;font-size:.9rem;margin-top:1rem}.bracket-page[data-v-7dbeb309]{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1200px}.bracket-chat[data-v-7dbeb309]{width:100%;max-width:420px;margin-top:1rem}.bracket-header[data-v-7dbeb309]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.bracket-title[data-v-7dbeb309]{font-size:1.5rem;font-weight:900;color:#e8e8f0;margin:0}.status-badge[data-v-7dbeb309]{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase}.status-badge.active[data-v-7dbeb309]{background:#4fca7f20;color:#4fca7f}.status-badge.stopped[data-v-7dbeb309],.status-badge.finished[data-v-7dbeb309]{background:#f7c94f20;color:#f7c94f}.winner-banner[data-v-7dbeb309]{font-size:1.25rem;font-weight:800;color:#f7c94f;text-align:center;padding:1rem 2rem;background:#f7c94f10;border-radius:10px;margin-bottom:1.5rem}.action-bar[data-v-7dbeb309]{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem;min-height:48px}.countdown[data-v-7dbeb309]{font-size:1.25rem;font-weight:800;color:#4fca7f}.bracket-container[data-v-7dbeb309]{width:100%;overflow-x:auto}.bracket-scroll[data-v-7dbeb309]{display:flex;gap:1.5rem;min-width:min-content;padding:.5rem}.round-col[data-v-7dbeb309]{display:flex;flex-direction:column;gap:.75rem;min-width:180px}.round-label[data-v-7dbeb309]{font-size:.75rem;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.08em;text-align:center}.round-matches[data-v-7dbeb309]{display:flex;flex-direction:column;gap:.75rem;justify-content:space-around;flex:1}.match-card[data-v-7dbeb309]{display:flex;flex-direction:column;padding:.6rem .75rem;background:#1a1a22;border-radius:8px;border:1px solid #2a2a35;gap:.15rem;transition:border-color .2s}.match-card.mine[data-v-7dbeb309]{border-color:#4f8ef7;box-shadow:0 0 8px #4f8ef720}.match-card.bye[data-v-7dbeb309]{opacity:.5}.match-card.playing[data-v-7dbeb309]{border-color:#4fca7f}.match-card.ready[data-v-7dbeb309]{border-color:#f7c94f60}.match-player[data-v-7dbeb309]{font-size:.85rem;color:#aaa;font-weight:500}.match-player.winner[data-v-7dbeb309]{color:#4fca7f;font-weight:700}.match-vs[data-v-7dbeb309]{font-size:.65rem;color:#555;text-align:center}.match-status[data-v-7dbeb309]{font-size:.65rem;color:#666;margin-top:.15rem}.match-row[data-v-7dbeb309]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem 0}
