.user-menu{min-width:12em}.username-input input{width:100%;padding:.2em}.username-input span,.username-span input{display:none}.lobby-chat-outer{order:1}.lobby-chat-box{display:flex;position:fixed;right:1em;bottom:4.5em;width:min(20em,100vw - 2em);max-height:60vh;flex-direction:column}.lobby-chat-bubble-outer{position:fixed;right:1em;bottom:4.5em;max-width:min(20em,100vw - 2em);filter:drop-shadow(1px 1px 2px black)}.lobby-chat-bubble{background-color:#fffc;--r: .5em;--t: .5em;padding:.2em .5em;border-right:var(--t) solid #0000;-webkit-mask:radial-gradient(var(--t) at 100% 0,#0000 98%,#000 102%) 100% 100%/calc(100% - var(--r)) var(--t) no-repeat,conic-gradient(at var(--r) var(--r),#000 75%,#0000 0) calc(var(--r)/-2) calc(var(--r)/-2) padding-box,radial-gradient(closest-side at 50% 50%,#000 98%,#0000 101%) 0 0/var(--r) var(--r) space padding-box;mask:radial-gradient(var(--t) at 100% 0,#0000 98%,#000 102%) 100% 100%/calc(100% - var(--r)) var(--t) no-repeat,conic-gradient(at var(--r) var(--r),#000 75%,#0000 0) calc(var(--r)/-2) calc(var(--r)/-2) padding-box,radial-gradient(closest-side at 50% 50%,#000 98%,#0000 101%) 0 0/var(--r) var(--r) space padding-box}.lobby-chat-messages{background-color:#fffc;overflow-y:auto;margin-bottom:.5em;padding:.5em}.lobby-chat-form{display:flex;flex-direction:row}.lobby-chat-form input{width:100%;margin-right:.5em}.username{font-weight:700}.server-message{color:#00f}.voice-panel-outer{position:relative;display:flex;flex-direction:column-reverse;align-items:flex-end;pointer-events:all;margin-left:10px}.voice-toggle-btn{width:48px;height:48px;border-radius:50%;border:none;background:#4b5563;color:#9ca3af;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 10px #0003;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible}.voice-toggle-btn:hover{background:#374151;color:#fff}.voice-toggle-btn.muted{background:#991b1b}.voice-toggle-btn.speaking{background:#065f46}.speaking-ring{position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid #10b981;border-radius:50%;animation:ping-outer 1.5s cubic-bezier(0,0,.2,1) infinite}@keyframes ping-outer{75%,to{transform:scale(1.4);opacity:0}}.voice-panel-box{background:rgba(40,44,52,.95);color:#fff;padding:15px;border-radius:12px;width:250px;font-family:Inter,sans-serif;box-shadow:0 8px 30px #0006;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin-bottom:12px;animation:slide-up .2s ease-out}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.voice-panel-box h3{margin:0;font-size:1.1em;color:#e5e7eb}.voice-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:8px}.close-panel-btn{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.2em;padding:4px}.close-panel-btn:hover{color:#fff}.player-list{max-height:200px;overflow-y:auto;margin-bottom:15px}.no-players{font-size:.85em;color:#6b7280;text-align:center;padding:10px 0;font-style:italic}.player-item{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.9em;padding:4px 0}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.connected{background-color:#10b981}.status-dot.connecting{background-color:#f59e0b}.status-dot.disconnected{background-color:#ef4444}.player-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.self-tag{font-size:.75em;color:#9ca3af;margin-left:4px}.muted-icon{font-size:.9em}.voice-controls{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.mute-btn{background:#374151;color:#fff;border:1px solid rgba(255,255,255,.1);padding:10px;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:500}.mute-btn:hover{background:#4b5563}.mute-btn.active{background:#f43f5e;border-color:#f43f5e}.mobile-ptt-btn{width:100%;padding:14px;background:#1e293b;color:#9ca3af;border:2px solid #334155;border-radius:12px;font-weight:700;font-size:1em;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:all .1s}.mobile-ptt-btn.active{background:#059669;color:#fff;border-color:#10b981;transform:scale(.98);box-shadow:inset 0 2px 4px #0000004d}.ptt-container{width:100%}.ptt-hint{font-size:.8em;color:#9ca3af;text-align:center;line-height:1.4}.ptt-active-indicator{color:#10b981;font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 768px){.voice-toggle-btn{width:32px;height:32px;font-size:16px}}.overlay-buttons{position:fixed;width:100%;padding:1em;bottom:0;z-index:20;display:flex;flex-direction:row-reverse;pointer-events:none}.overlay-buttons div{pointer-events:all}@media (max-width: 768px){.overlay-buttons{padding:.5em}}.home-scene{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.home-bg{position:fixed;top:0;right:0;bottom:0;left:0;background-image:url(../bg.png);background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0}.home-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,rgba(10,4,0,.72) 0%,rgba(30,12,2,.65) 50%,rgba(10,4,0,.78) 100%)}.home-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5em;padding:2.5em 3em;background:linear-gradient(135deg,rgba(15,6,1,.78) 0%,rgba(35,16,3,.72) 100%);border:1px solid rgba(200,150,50,.22);border-radius:1.25em;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 48px #000000a6,inset 0 1px #ffc85012;min-width:22em;max-width:90vw}@media (max-width: 480px){.home-card{min-width:unset;width:calc(100vw - 2.5em);padding:1.75em 1.5em;border-radius:1em;gap:.4em}.home-card .bang-logo{width:88px}.home-welcome{font-size:.95em}.home-username-input{max-width:100%;font-size:1em}.home-connect-btn{width:100%;padding:.7em 1em}.home-discord-link{font-size:.85em}}@media (max-width: 360px){.home-card{padding:1.4em 1.1em}}.home-logo{width:120px;height:auto;filter:drop-shadow(0 4px 16px rgba(200,140,30,.45));margin-bottom:.25em;transition:filter .3s}.home-logo:hover{filter:drop-shadow(0 4px 24px rgba(220,170,50,.65))}.home-welcome{list-style:none;padding:0;margin:0 0 .5em;text-align:center;font-size:1.05em;font-weight:600;color:#d4b882;line-height:1.5;letter-spacing:.02em}.home-discord-link{display:inline-flex;align-items:center;gap:.4em;font-weight:600;font-size:.92em;color:#9db8e8;text-decoration:none;padding:.3em .8em;border-radius:2em;border:1px solid rgba(100,140,220,.25);background:rgba(80,110,200,.1);transition:background .18s,color .18s,border-color .18s,transform .12s;margin-bottom:.5em}.home-discord-link:hover{background:rgba(80,110,200,.22);color:#bdd0f5;border-color:#78a0f080;transform:translateY(-1px);text-decoration:none}.home-discord-icon{width:1.2em;height:1.2em;flex-shrink:0}.home-divider{width:100%;border:none;border-top:1px solid rgba(200,150,50,.18);margin:.4em 0}.home-form{display:flex;flex-direction:column;align-items:center;gap:.65em;width:100%}.home-form-label{font-size:.8em;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c8a03ccc}.home-username-input{width:100%;max-width:18em;padding:.65em 1em;border-radius:.5em;border:1px solid rgba(200,140,50,.35);background:rgba(255,255,255,.06);color:#f0e6cc;font-size:1em;outline:none;transition:border-color .18s,background .18s,box-shadow .18s;text-align:center;letter-spacing:.03em}.home-username-input::placeholder{color:#c8a05059}.home-username-input:focus{border-color:#dcaa32b3;background:rgba(255,200,80,.08);box-shadow:0 0 0 3px #c896282e}.home-connect-btn{min-width:10em;padding:.6em 2.2em;font-size:.95em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:.5em;background:linear-gradient(135deg,#4a7c20 0%,#2e5214 100%);border:1px solid rgba(120,210,60,.28);color:#e0ffc0;box-shadow:0 4px 18px #3c8c1459,inset 0 1px #c8ff781f;cursor:pointer;transition:background .18s,box-shadow .18s,transform .1s}.home-connect-btn:hover:not(:disabled){background:linear-gradient(135deg,#5a9428 0%,#3a661a 100%);box-shadow:0 6px 24px #46a01480,inset 0 1px #d2ff822e;transform:translateY(-1px)}.home-connect-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #326e0f59}.home-card .bang-logo{width:120px;height:auto;filter:drop-shadow(0 4px 16px rgba(200,140,30,.5));transition:filter .3s}.home-card .bang-logo:hover{filter:drop-shadow(0 4px 24px rgba(220,170,50,.7))}.password-input-wrapper{position:relative;display:inline-block}.password-toggle-button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#505050}.leaderboard-container{width:100%;max-width:20em;background:linear-gradient(135deg,rgba(20,10,5,.75) 0%,rgba(45,20,10,.65) 100%);border:1px solid rgba(200,160,60,.2);border-radius:1.25em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px #00000080;padding:1.25em;color:#f0e6cc;flex-shrink:0;height:fit-content;max-height:30em;display:flex;flex-direction:column;gap:1em;box-sizing:border-box}.leaderboard-header{display:flex;align-items:center;justify-content:center;gap:.6em;border-bottom:1px solid rgba(200,150,50,.25);padding-bottom:.75em;margin-bottom:.5em}.leaderboard-header h2{font-size:1.1em;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#eab308;margin:0;text-shadow:0 0 10px rgba(234,179,8,.3)}.leaderboard-list{display:flex;flex-direction:column;gap:.5em;overflow-y:auto;padding-right:.4em}.leaderboard-list::-webkit-scrollbar{width:4px}.leaderboard-list::-webkit-scrollbar-track{background:rgba(0,0,0,.1)}.leaderboard-list::-webkit-scrollbar-thumb{background:rgba(200,150,50,.3);border-radius:2px}.leaderboard-item{display:flex;align-items:center;padding:.6em .8em;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.03);border-radius:.75em;transition:transform .2s,background .2s}.leaderboard-item:hover{background:rgba(255,200,80,.08);transform:translate(4px)}.leaderboard-rank{width:1.8em;height:1.8em;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.9em;margin-right:.75em;border-radius:50%;flex-shrink:0}.rank-1{background:linear-gradient(135deg,#ffd700 0%,#b8860b 100%);color:#000;box-shadow:0 0 8px #ffd70066}.rank-2{background:linear-gradient(135deg,#c0c0c0 0%,#708090 100%);color:#000}.rank-3{background:linear-gradient(135deg,#cd7f32 0%,#8b4513 100%);color:#fff}.rank-other{color:#c8a064b3;border:1px solid rgba(200,160,100,.2)}.leaderboard-name{flex-grow:1;font-weight:600;font-size:.9em;color:#fdfaf0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:.5em}.leaderboard-wins{font-family:Courier New,Courier,monospace;font-weight:700;font-size:1.1em;color:#dbad3e;display:flex;align-items:center;gap:.2em}.leaderboard-wins span{font-size:.7em;opacity:.6;font-weight:400}.leaderboard-empty{text-align:center;padding:2em 0;opacity:.4;font-style:italic;font-size:.9em}@media (max-width: 540px){.leaderboard-container{max-width:100%;max-height:20em}}.waiting-area{display:flex;flex-direction:column;align-items:center;width:100%;padding:0 1em 3em;box-sizing:border-box;max-width:70em;margin:0 auto}.waiting-area-layout{display:flex;flex-direction:row;gap:1.5em;width:100%;align-items:flex-start;margin-top:1em}.waiting-area-content{display:flex;flex-direction:column;flex-grow:1;min-width:0}.waiting-area-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.6em;padding:2em 2.5em 1.75em;background:linear-gradient(135deg,rgba(15,6,1,.8) 0%,rgba(38,18,4,.75) 100%);border:1px solid rgba(200,150,50,.22);border-radius:1.25em;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 40px #0000008c,inset 0 1px #ffc85012;margin-bottom:1.5em;width:100%;max-width:40em}.waiting-area-card .bang-logo{width:100px;height:auto;filter:drop-shadow(0 4px 14px rgba(200,140,30,.45));margin-bottom:.2em}.lobby-name-row{display:flex;align-items:center;gap:.6em;width:100%;justify-content:center}.lobby-name-label{font-size:.8em;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c8a03cd9;white-space:nowrap}.lobby-name-input{padding:.55em .9em;border-radius:.5em;border:1px solid rgba(200,140,50,.35);background:rgba(255,255,255,.06);color:#f0e6cc;font-size:.95em;outline:none;width:11em;transition:border-color .18s,background .18s,box-shadow .18s}.lobby-name-input::placeholder{color:#c8a0504d}.lobby-name-input:focus{border-color:#dcaa32b3;background:rgba(255,200,80,.07);box-shadow:0 0 0 3px #c896282e}.lobby-options-toggle{width:2em;height:2em;border-radius:50%;border:1px solid rgba(160,110,40,.4);background:rgba(255,255,255,.06);color:#c8a050;font-size:1.1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s,transform .15s;flex-shrink:0;outline:none;line-height:1}.lobby-options-toggle:hover{background:rgba(200,140,40,.15);border-color:#dcaa3299;transform:rotate(20deg)}.lobby-options-toggle.expanded{background:rgba(200,140,40,.18);border-color:#dcaa32b3;transform:rotate(45deg)}.lobby-options-visible{transition:max-height .3s ease-in-out,opacity .2s ease-in-out;max-height:5em;overflow:hidden;opacity:1;display:flex;align-items:center;gap:.5em}.lobby-options-collapsed{transition:max-height .3s ease-in-out,opacity .3s ease-in-out;max-height:0;overflow:hidden;opacity:0}.lobby-options-label{font-size:.8em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c8a03cbf;white-space:nowrap}.waiting-area-btn-create{min-width:11em;padding:.6em 2em;font-size:.92em;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-radius:.5em;background:linear-gradient(135deg,#4a7c20 0%,#2e5214 100%);border:1px solid rgba(120,210,60,.28);color:#e0ffc0;box-shadow:0 4px 16px #3c8c1459,inset 0 1px #c8ff781f;cursor:pointer;transition:background .18s,box-shadow .18s,transform .1s;margin-top:.25em}.waiting-area-btn-create:hover:not(:disabled){background:linear-gradient(135deg,#5a9428 0%,#3a661a 100%);box-shadow:0 6px 22px #46a01480,inset 0 1px #d2ff822e;transform:translateY(-1px)}.waiting-area-btn-create:disabled{opacity:.38;cursor:not-allowed}.lobby-list{display:flex;flex-direction:column;width:100%;max-width:44em;margin:0 auto;background:linear-gradient(135deg,rgba(20,8,2,.65) 0%,rgba(40,18,5,.55) 100%);border:1px solid rgba(200,150,50,.15);border-radius:1em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 24px #0006;overflow:hidden}.lobby-list-header{display:grid;grid-template-columns:minmax(6em,1fr) 2.5em 2.5em 2.5em 3em 6.5em;align-items:center;padding:.75em 1em;background:rgba(0,0,0,.35);border-bottom:1px solid rgba(200,140,40,.25);font-size:.8em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#dcaa3cd9;gap:.5em}.lobby-element-wrapper{display:flex;flex-direction:column;background:transparent;transition:background .2s;border-bottom:1px solid rgba(200,150,50,.08)}.lobby-element-wrapper:last-child{border-bottom:none}.lobby-element-wrapper:hover{background:rgba(255,200,80,.06)}.lobby-element-wrapper-expanded{background:rgba(80,40,10,.4)!important;border-bottom-color:#c8963233}.lobby-element{display:grid;grid-template-columns:minmax(6em,1fr) 2.5em 2.5em 2.5em 3em 6.5em;align-items:center;padding:.6em 1em;gap:.5em}.lobby-name{font-weight:600;font-size:.95em;color:#f0e6cc;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.lobby-list-header .lobby-name{color:inherit;font-size:1em}.player-count{text-align:center;color:#c8b898;font-size:.9em}.lobby-list-header .player-count{cursor:help;color:inherit;font-size:1.1em}.lobby-state{text-align:center;cursor:help;font-size:.9em}.lobby-join-button{font-size:.82em!important;padding:.3em .9em!important;border-radius:.4em;font-weight:700;letter-spacing:.04em;flex-shrink:0;width:5.85em}.lobby-password-input{padding:0 1em;background:rgba(15,6,2,.45);border-top:1px solid rgba(200,150,50,.1);box-shadow:inset 0 4px 12px #0003}.lobby-password-input form{display:flex;align-items:center;gap:.75em;padding:.6em 0}.lobby-password-input .font-bold{font-size:.82em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c8a03cd9;white-space:nowrap}.lobby-password-input .password-input-container{display:flex;align-items:center;gap:.5em}.lobby-password-input input{padding:.4em .8em;border-radius:.4em;border:1px solid rgba(200,140,50,.35);background:rgba(255,255,255,.05);color:#f0e6cc;font-size:.9em;outline:none;width:10em;transition:border-color .18s,background .18s,box-shadow .18s}.lobby-password-input input:focus{border-color:#dcaa32b3;background:rgba(255,200,80,.08);box-shadow:0 0 0 3px #c896282e}.lobby-password-open{transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .25s ease-in-out;max-height:5em;overflow:hidden;opacity:1}.lobby-password-closed{transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease-in-out;max-height:0;overflow:hidden;opacity:0}@media (max-width: 540px){.waiting-area{padding:0 .5em 3em}.waiting-area-card{padding:1.5em 1.25em;border-radius:1em}.lobby-name-row{flex-wrap:wrap}.lobby-name-input{width:100%;max-width:18em;font-size:1em}.waiting-area-btn-create{width:100%}.lobby-name{width:7em;font-size:.88em}.player-count{width:1.6em;font-size:.82em}.waiting-area-layout{flex-direction:column-reverse;align-items:center;gap:1.5em}.waiting-area-content{width:100%}}
