*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#080808;color:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#game{display:block;width:100vw;height:100vh;cursor:crosshair}#return-menu-btn{position:fixed;top:14px;left:14px;z-index:10;padding:7px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#0e0e0ed1;color:#ffffffd9;font-size:.82rem;font-family:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#return-menu-btn:hover{background:#282828eb;border-color:#ffffff4d}#return-menu-btn.hidden{display:none}#hud{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:min(400px,94vw);padding:28px 24px 24px;border-radius:12px;background:#0e0e0ef7;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px #000000d9;overflow-y:auto;max-height:92vh;scrollbar-width:none}#hud::-webkit-scrollbar{display:none}#hud.hidden{display:none}.screen{display:flex;flex-direction:column;gap:10px;animation:fadeUp .18s ease}.screen.hidden{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.logo{margin:0 0 4px;font-size:1.9rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#fff;text-align:center;line-height:1}#nickname,#game-name{width:100%;padding:10px 13px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#fff;font-size:.93rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}#nickname:focus,#game-name:focus{border-color:#ffffff4d;box-shadow:0 0 0 3px #ffffff0d}#nickname::placeholder,#game-name::placeholder{color:#fff3}select{padding:9px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#fff;font-size:.88rem;outline:none;cursor:pointer}#mode-pills{display:flex;gap:4px;padding:3px;border-radius:9px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07)}.pill{flex:1;padding:8px 0;border-radius:7px;border:1px solid transparent;background:transparent;color:#ffffff61;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .13s ease,color .13s ease,border-color .13s ease}.pill:hover{color:#ffffffb3;background:#ffffff0d;transform:none;filter:none;box-shadow:none}.pill.active{background:#ffffff1a;color:#fff;border-color:#ffffff1f}button{padding:10px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff12;color:#ffffffd9;font-size:.88rem;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}button:hover{background:#ffffff1f;border-color:#ffffff2e;transform:translateY(-1px);filter:none;box-shadow:none}button:active{transform:translateY(0);background:#ffffff0f}button:disabled{opacity:.3;cursor:not-allowed;transform:none}.play-btn{width:100%;padding:12px;border-radius:8px;background:#fff;border:none;color:#000;font-size:.9rem;font-weight:600;letter-spacing:.01em;box-shadow:none}.play-btn:hover{background:#ffffffeb;border:none;transform:translateY(-1px);box-shadow:0 4px 20px #ffffff1f}.play-btn:disabled{background:#ffffff40;color:#00000080}.outline-btn{width:100%;background:transparent;border:1px solid rgba(255,255,255,.14);color:#fff9;font-size:.87rem;font-weight:400}.outline-btn:hover{background:#ffffff0d;border-color:#ffffff3d;color:#ffffffd9;transform:none;box-shadow:none}.back-link{align-self:flex-start;background:transparent;border:none;color:#ffffff59;padding:0;font-size:.82rem;font-weight:400;cursor:pointer;transition:color .12s ease}.back-link:hover{color:#ffffffbf;transform:none;filter:none;box-shadow:none}.join-btn{flex-shrink:0;padding:7px 13px;font-size:.82rem;white-space:nowrap}#teams-actions{display:flex;flex-direction:column;gap:8px}#teams-actions.hidden{display:none}.active-lobby{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.09)}.active-lobby.hidden{display:none}.active-lobby-info{display:flex;align-items:center;gap:8px;min-width:0}.active-lobby-badge{flex-shrink:0;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#4ade80;border:1px solid rgba(74,222,128,.3);border-radius:4px;padding:2px 6px}.active-lobby-badge.in-progress{color:#facc15;border-color:#facc154d}.active-lobby-name{font-size:.88rem;font-weight:400;color:#fffc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-text{margin:0;font-size:.76rem;color:#ffffff4d;min-height:1em;text-align:center}.screen-heading{margin:0;font-size:1rem;font-weight:600;color:#ffffffe6;letter-spacing:.01em}.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-label{font-size:.83rem;color:#fff6;flex-shrink:0}.lobby-top{display:flex;align-items:center;gap:10px}.lobby-info{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.state-badge{flex-shrink:0;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#4ade80;border:1px solid rgba(74,222,128,.3);border-radius:4px;padding:2px 6px}.state-badge.in-progress{color:#facc15;border-color:#facc154d}.lobby-game-name{font-size:.9rem;font-weight:500;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-label{margin:2px 0 0;font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#ffffff40}#team-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}.team-btn{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:#ffffffa6;font-size:.84rem;font-weight:400;text-align:left;cursor:pointer;transition:background .11s ease,border-color .11s ease}.team-btn:hover{background:#ffffff12;transform:none;filter:none;box-shadow:none}.team-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--tc, #666)}#team-rosters{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}.team-roster-col{border-radius:7px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;padding:7px 9px;min-height:48px}.team-roster-title{margin:0 0 4px;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.team-roster-list{margin:0;padding-left:11px;font-size:.73rem;color:#ffffff8c}.team-roster-list li{margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-roster-empty{list-style:none;margin-left:-11px!important;color:#ffffff2e;font-style:italic}.action-row{display:flex;gap:8px}.action-row .play-btn{flex:1}.hidden,.hidden-inline{display:none!important}.divider{height:1px;background:#ffffff12;margin:2px 0}#leaderboard{position:fixed;top:16px;right:16px;z-index:2;min-width:175px;max-width:min(245px,92vw);padding:11px 13px;border-radius:10px;background:#0c0c0ceb;border:1px solid rgba(255,255,255,.07);font-size:.81rem}#leaderboard.hidden{display:none}.lb-header{margin:0 0 8px;font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#ffffff40}#leaderboard-list{margin:0;padding:0;list-style:none}#leaderboard-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05);color:#ffffffb3}#leaderboard-list li:last-child{border-bottom:none}#leaderboard-list .lb-rank{color:#ffffff38;width:1.4rem;font-size:.74rem}#leaderboard-list .lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#leaderboard-list .lb-mass{font-variant-numeric:tabular-nums;color:#ffffff8c;font-size:.78rem}#leaderboard .lb-self{color:#fff!important}#test-lab{position:fixed;left:16px;bottom:16px;z-index:2;width:min(290px,92vw);padding:11px 13px;border-radius:10px;background:#0c0c0cf0;border:1px solid rgba(255,255,255,.07)}#test-lab.hidden{display:none}#test-lab h2{margin:0 0 8px;font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#ffffff4d}#test-lab .row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0;font-size:.81rem;color:#ffffffa6}#test-lab input[type=number]{width:105px;padding:5px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff;font-size:.81rem;outline:none}#test-lab .actions button{padding:6px 10px;font-size:.78rem}#test-lab .lab-note{margin:3px 0;font-size:.7rem;color:#ffffff47}#secret-dev{position:fixed;right:16px;bottom:16px;z-index:3;width:min(520px,96vw);max-height:72vh;overflow:auto;padding:12px 14px;border-radius:10px;background:#0a0a0afa;border:1px solid rgba(255,255,255,.12)}#secret-dev.hidden{display:none}#secret-dev h2{margin:0 0 10px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#ffffff80}.dev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}#secret-dev label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:#fff9}#secret-dev label small{font-size:.63rem;color:#ffffff47}#secret-dev input{padding:5px 7px;border-radius:5px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#fff;outline:none}#fps-counter{position:fixed;right:14px;bottom:12px;z-index:2;padding:3px 7px;border-radius:5px;background:#0a0a0abf;border:1px solid rgba(255,255,255,.07);color:#ffffff4d;font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none}.row{display:flex;gap:8px;align-items:center}
