@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@400;600;700;800;900&family=Rajdhani:wght@600;700&display=swap');
:root{--fruit:#ff4d3d;--veg:#78d33f;--gold:#ffc72e;--ink:#071116}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#050b0f;color:#f6f7f5;font-family:Heebo,Arial,sans-serif}button,input{font:inherit}.hidden{display:none!important}.ninja-preview{height:205px}.ninja-preview img{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 15px 10px #0009)}.fighter-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 18px}.fighter-choice{height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;padding:2px;border:1px solid #314047;border-radius:11px;background:#081216;color:#aab5ba;cursor:pointer;font-weight:800}.fighter-choice img{width:43px;height:51px;object-fit:contain}.fighter-choice.active{color:#fff;border-color:var(--gold);background:#20200f;box-shadow:inset 0 -3px #c88b0c}.fighter-choice span{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:11px;letter-spacing:.3px}
.lobby{min-height:100%;display:grid;grid-template-columns:1.1fr 500px .7fr;gap:5vw;align-items:center;padding:6vw;position:relative;background:radial-gradient(circle at 15% 20%,#183126aa,transparent 32%),radial-gradient(circle at 90% 75%,#3a1515aa,transparent 30%),linear-gradient(135deg,#071116,#0b151a)}.lobby:before{content:"";position:absolute;inset:0;opacity:.09;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:46px 46px;transform:perspective(500px) rotateX(10deg)}.brand,.join-card,.live{position:relative;z-index:1}.kicker,.step{color:var(--gold);font-weight:800;letter-spacing:2px;font-size:13px}.brand h1{font-size:clamp(55px,7vw,112px);line-height:.84;margin:22px 0;text-shadow:0 8px #000}.brand h1 i{font-size:.24em;color:#839098;font-style:normal;display:block;margin:18px 0}.brand p{max-width:550px;color:#aab5ba;font-size:20px}.join-card{background:#0d191edb;border:1px solid #33434a;border-radius:22px;padding:34px;box-shadow:0 30px 80px #0008}.join-card input{width:100%;padding:16px;background:#071115;border:1px solid #34444b;border-radius:10px;color:white;margin:12px 0 20px;outline:none}.teams{display:flex;gap:12px;margin-bottom:25px}.team{flex:1;padding:16px;background:#101b20;border:1px solid #314047;border-radius:12px;color:white;display:flex;gap:10px;align-items:center;cursor:pointer}.team b{font-size:28px}.team span{text-align:left;font-weight:800}.team small{display:block;color:#849096;font-weight:400}.team.active[data-team=fruit]{border-color:var(--fruit);box-shadow:inset 0 -3px var(--fruit)}.team.active[data-team=veggie]{border-color:var(--veg);box-shadow:inset 0 -3px var(--veg)}.skins{display:flex;gap:10px;margin:12px 0}.skin{width:60px;height:60px;font-size:28px;background:#081115;border:1px solid #314047;border-radius:12px;cursor:pointer}.skin.active{border-color:var(--gold);background:#342b0b}.upload{display:block;border:1px dashed #506169;padding:10px;text-align:center;color:#aab3b7;border-radius:10px;cursor:pointer}.upload input{display:none}.preview{height:116px;display:grid;place-items:center;position:relative}.preview span{font-size:70px;filter:drop-shadow(0 12px 5px #000)}.preview em{position:absolute;width:70px;height:28px;background:#0b1113;border-radius:50% 50% 30% 30%;top:58px;border-bottom:5px solid #1c262b}.enter{width:100%;border:0;border-radius:10px;padding:17px;background:linear-gradient(90deg,#ef9e0b,var(--gold));font-weight:900;font-size:19px;cursor:pointer;box-shadow:0 5px #9c6100;color:#161100}.error{color:#ff766a;margin:12px 0 0}.live{align-self:end;background:#0d181dcc;border:1px solid #2a3940;padding:22px;border-radius:16px}.live>span{color:#7bde4c}.live div{font-size:18px;padding:8px 0;border-bottom:1px solid #26333a}.live b{font-size:28px;margin-right:10px}.live small{display:block;color:#89969d;margin-top:14px}
.controls-guide{margin-top:28px;max-width:590px}.controls-guide h2{margin:0 0 10px;color:var(--gold);font:800 14px Rajdhani;letter-spacing:2px}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.control-grid article{min-height:68px;display:flex;align-items:center;gap:12px;padding:9px 11px;background:#081419d9;border:1px solid #2c3d45;border-radius:11px;box-shadow:0 8px 20px #0004}.control-grid article>p{margin:0;font-size:13px;line-height:1.1;text-align:left;color:#f4f7f8}.control-grid article>p b{display:block}.control-grid article>p small{display:block;color:#8fa0a7;margin-top:5px;font-size:11px}.key-visual{width:72px;min-width:72px;display:flex;flex-direction:column;align-items:center;position:relative}.key-visual span{display:flex;gap:2px}.key-visual kbd{display:grid;place-items:center;width:21px;height:19px;padding:0;border:1px solid #697b83;border-bottom-width:3px;border-radius:4px;background:#132128;color:#fff;font:700 10px Rajdhani}.key-visual>i{position:absolute;right:-2px;top:0;color:#56cfff;font:900 12px Rajdhani}.mouse-visual{width:42px;height:54px;min-width:42px;border:2px solid #73858d;border-radius:19px 19px 16px 16px;position:relative;background:#101c22;overflow:visible}.mouse-visual:before,.mouse-visual:after{content:"";position:absolute;top:0;width:18px;height:22px;background:#26363d}.mouse-visual:before{left:0;border-radius:16px 2px 3px 2px}.mouse-visual:after{right:0;border-radius:2px 16px 2px 3px}.mouse-visual.left:before{background:var(--fruit);box-shadow:0 0 10px #ff4d3d77}.mouse-visual.right:after{background:#a653ee;box-shadow:0 0 10px #a653ee77}.mouse-visual.both:before{background:var(--fruit)}.mouse-visual.both:after{background:#a653ee}.mouse-visual i{position:absolute;left:19px;top:5px;width:2px;height:14px;border-radius:2px;background:#a8b6bc;z-index:1}.mouse-visual em{position:absolute;right:-13px;top:-9px;color:#56cfff;font:900 12px Rajdhani;font-style:normal}.mouse-visual strong{position:absolute;right:-14px;top:17px;color:var(--gold);font-size:15px}
.game{position:relative;width:100%;height:100%;background:#071015}.game:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at center,transparent 58%,rgba(1,6,9,.34) 100%)}.game canvas#canvas{position:relative;z-index:0;width:100%;height:100%;display:block;cursor:crosshair;image-rendering:auto}.game>:not(canvas){z-index:2}.hud{position:absolute;top:10px;left:50%;transform:translateX(-50%);height:44px;display:flex;align-items:center;gap:13px;padding:0 14px;background:#0a1319d9;border:1px solid #35444c;border-radius:10px;box-shadow:0 8px 25px #0007}.logo{font:900 22px Rajdhani;color:var(--fruit)}.logo span{color:var(--veg)}.territory{display:flex;align-items:center;gap:7px;font:700 11px Rajdhani}.territory>div{width:210px;height:6px;background:#293136;display:flex;overflow:hidden;border-radius:8px}.territory i{display:block;transition:width .3s}.territory i:first-child{background:var(--fruit)}.territory i:last-child{background:var(--veg);margin-left:auto}.clock{color:#ffdb5b;font:700 10px Rajdhani}.stats,.leaders{position:absolute;top:66px;background:#081218d4;border:1px solid #314149;border-radius:9px;padding:9px}.stats{left:10px;min-width:132px}.stats b{font:700 15px Rajdhani;color:#fff}.stats div{display:flex;justify-content:space-between;gap:14px;color:#87969d;border-bottom:1px solid #26343a;padding:3px;font-size:10px}.leaders{right:10px;width:155px}.leaders h3{margin:0 0 5px;color:var(--gold);font:700 11px Rajdhani}.leaders ol{margin:0;padding-left:20px}.leaders li{padding:2px;font-size:10px}.radar{position:absolute;right:10px;bottom:10px;width:160px;height:112px;border:1px solid #52636b;border-radius:9px;background:#071015e8;image-rendering:auto}.mine{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#101b20dc;color:white;border:1px solid #53646c;border-radius:50%;width:58px;height:58px;font-size:21px}.mine span{display:block;font:700 7px Rajdhani}.charge{position:absolute;bottom:82px;left:50%;transform:translateX(-50%);display:none;width:170px;text-align:center}.charge.active{display:block}.charge:before{content:"";display:block;height:6px;background:#18242a;border-radius:8px}.charge i{position:absolute;top:0;left:0;height:6px;width:0;background:#ab52ff;border-radius:8px;box-shadow:0 0 12px #a43fff}.charge span{font:700 9px Rajdhani;color:#c985ff}.notice{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;text-align:center;font-size:60px;font-weight:900;text-shadow:0 8px #000}.mobile{display:none}.help-btn{position:absolute;left:10px;bottom:10px;border:1px solid #607078;background:#0a1419;color:#fff;border-radius:50%;width:34px;height:34px;font-size:17px}dialog{background:#0b171d;color:white;border:1px solid #52616a;border-radius:16px;padding:30px;max-width:430px}dialog button{float:left;background:none;border:0;color:white;font-size:26px}
.game.render-low:after{display:none}.game.render-medium .emote-toggle,.game.render-medium .emote-more,.game.render-medium .emote-quick button,.game.render-medium .emote-all button,.game.render-medium .emote-tray,.game.render-low .emote-toggle,.game.render-low .emote-more,.game.render-low .emote-quick button,.game.render-low .emote-all button,.game.render-low .emote-tray{backdrop-filter:none}.game.render-low *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.game.render-low .announcer{filter:none}
.render-recovery{position:absolute;z-index:12!important;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:24px;background:radial-gradient(circle,#13242ddd,#03080bf2 70%);text-align:center;pointer-events:auto}.render-recovery b{color:#fff;font:900 28px Rajdhani;letter-spacing:1px}.render-recovery small{max-width:360px;color:#aebcc2;font-size:13px}.render-recovery button{margin-top:8px;padding:10px 16px;border:1px solid #77dfff;border-radius:9px;background:#123545;color:#dff9ff;font:900 12px Rajdhani;letter-spacing:.8px}
.game,.game canvas,.game .mobile,.game .mobile *{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game{overscroll-behavior:none}html.game-active,body.game-active{touch-action:none!important;overscroll-behavior:none;overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(max-width:900px){.lobby{display:block;overflow:auto;padding:25px;height:100%}.brand{margin-bottom:22px}.brand h1{font-size:55px}.brand p{font-size:15px}.controls-guide{max-width:500px;margin:24px auto}.control-grid{grid-template-columns:1fr}.join-card{padding:22px;max-width:500px;margin:auto}.live{margin:20px auto;max-width:500px}.hud{top:8px;width:calc(100% - 16px);height:52px;gap:8px;padding:0 8px}.territory>div{width:120px}.territory label{font-size:10px}.stats{top:69px;left:8px;min-width:145px;padding:8px}.stats div{font-size:11px;padding:4px}.leaders{display:none}.radar{width:120px;height:86px;right:8px;bottom:100px}.mine{bottom:100px;width:62px;height:62px}.mobile{display:block}.dpad{position:absolute;bottom:18px;left:15px;width:155px;height:145px}.dpad button,.actions button{touch-action:none;background:#101a20d9;color:white;border:1px solid #66757c}.dpad button{position:absolute;width:52px;height:52px;border-radius:12px}.dpad [data-dir=up]{left:52px}.dpad [data-dir=left]{top:52px}.dpad [data-dir=down]{left:52px;top:52px}.dpad [data-dir=right]{left:104px;top:52px}.actions{position:absolute;right:15px;bottom:20px;display:flex;gap:12px}.actions button{width:72px;height:72px;border-radius:50%;font-size:24px}.actions small{display:block;font:700 9px Rajdhani}.help-btn{display:none}.notice{font-size:40px}}
.ninja-preview{height:205px}.ninja-preview img{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 15px 10px #0009)}
@media(max-width:900px){
  .lobby{padding:14px;display:flex;flex-direction:column;align-items:stretch;gap:16px;-webkit-overflow-scrolling:touch}
  .brand,.join-card,.live{flex:0 0 auto;width:100%;max-width:520px;margin:0 auto}
  .brand h1{font-size:42px;line-height:.9;margin:12px 0;text-shadow:0 5px #000}.brand h1 i{margin:7px 0;font-size:.32em}.brand>p{margin:0;font-size:14px}
  .controls-guide{margin:18px auto 0}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.control-grid article{min-height:62px;padding:7px;gap:7px}.control-grid article>p{font-size:11px}.control-grid article>p small{font-size:9px}.key-visual{width:62px;min-width:62px}.mouse-visual{transform:scale(.86);margin:-4px}
  .join-card{padding:18px;border-radius:16px}.join-card input{margin:8px 0 14px;padding:13px}.teams{margin-bottom:16px}.team{padding:11px 8px}.team b{font-size:22px}.team span{font-size:13px}.team small{font-size:10px}
  .ninja-preview{height:128px}.ninja-preview img{width:120px;height:120px}.fighter-picker{margin-bottom:13px;gap:5px}.fighter-choice{height:62px}.fighter-choice img{width:38px;height:42px}.fighter-choice span{font-size:10px}.enter{padding:14px;font-size:16px}.live{padding:16px;margin-bottom:16px}.live div{font-size:14px;padding:5px 0}.live b{font-size:21px}
  .joystick{touch-action:none;position:absolute;left:18px;bottom:18px;width:138px;height:138px;border:2px solid #71828b88;border-radius:50%;background:radial-gradient(circle,#17262dbb 0 28%,#0b151bd9 30% 66%,#283941aa 68% 70%,#071015bb 72%);box-shadow:inset 0 0 24px #0009,0 8px 24px #0007}
  .joystick:before,.joystick:after{content:"";position:absolute;background:#8fa1a82b;pointer-events:none}.joystick:before{left:50%;top:11px;bottom:11px;width:1px}.joystick:after{top:50%;left:11px;right:11px;height:1px}
  .joystick i{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#647983,#263840 58%,#132027);border:2px solid #8ea0a8;box-shadow:0 6px 14px #000a;will-change:transform;pointer-events:none}
}
@media(max-width:900px) and (orientation:landscape){
  .hud{top:5px;height:38px;width:auto;max-width:470px;padding:0 10px}.territory>div{width:150px}.logo{font-size:19px}
  .stats{top:49px;left:6px;min-width:116px;padding:5px}.stats div{font-size:9px;padding:2px}.stats b{font-size:12px}
  .radar{top:49px;right:6px;bottom:auto;width:112px;height:80px}
  .joystick{width:112px;height:112px;left:12px;bottom:10px}.joystick i{width:48px;height:48px;margin:-24px}
  .actions{right:12px;bottom:12px;gap:9px}.actions button{width:62px;height:62px;font-size:20px}.actions small{font-size:8px}
  .charge{bottom:18px;width:140px}.notice{font-size:32px}
}

/* Single-server lobby: compact enough for common laptop screens without clipping. */
.lobby{height:100dvh;min-height:100dvh;overflow:auto;grid-template-columns:minmax(430px,1.12fr) minmax(380px,470px) minmax(190px,.55fr);gap:clamp(18px,2.5vw,38px);padding:clamp(18px,3vw,46px)}
.brand h1{font-size:clamp(48px,5.6vw,88px);margin:14px 0;text-shadow:0 6px #000}.brand h1 i{margin:10px 0}.brand>p{margin:0;font-size:clamp(15px,1.25vw,19px)}
.controls-guide{margin-top:18px}.control-grid{gap:6px}.control-grid article{min-height:58px;padding:7px 9px}.territory-rules{margin-top:7px;padding:7px 9px}
.join-card{padding:26px}.join-card input{padding:13px;margin:8px 0 15px}.teams{margin-bottom:17px}.team{padding:12px}.ninja-preview{height:165px}.ninja-preview img{width:155px;height:155px}.fighter-picker{margin-bottom:13px}.fighter-choice{height:68px}.fighter-choice img{width:39px;height:45px}
.lobby-tabs{grid-template-columns:repeat(2,1fr);margin:-15px -15px 18px}.lobby-panel{min-height:0}.play-options{grid-template-columns:1fr}.matchmaking-note b{color:#91e96b}.profile-note{margin-top:18px}
.debug-toggle,.exit-game{flex:0 0 auto;border-radius:7px;padding:5px 8px;cursor:pointer;font:800 9px Rajdhani;letter-spacing:.7px}.debug-toggle{border:1px solid #3e8297;background:#102630;color:#79dcf8}.debug-toggle:hover,.debug-toggle[aria-pressed=true]{border-color:#75e2ff;background:#164354;color:#e7fbff;box-shadow:0 0 12px #41cff633}.exit-game{border:1px solid #8d5c58;background:#271719;color:#ff9b91}.exit-game:hover{border-color:#ff786b;color:#fff;background:#51231f}.exit-game:disabled{opacity:.45;cursor:wait}
.stats .self-id{display:block;margin:-3px -3px 4px;padding:6px;border:1px solid #e5c94d;background:linear-gradient(90deg,#463c13aa,#15190f);border-radius:6px;color:#fff3a0;box-shadow:inset 3px 0 #ffe35d,0 0 12px #ffe35d18}.stats .self-id span{display:block;font:800 8px Rajdhani;letter-spacing:1px}.stats .self-id b{display:block;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:13px}

@media(min-width:901px) and (max-width:1220px){
  .lobby{grid-template-columns:minmax(420px,1fr) minmax(370px,440px);align-items:start}.live{grid-column:1/-1;align-self:auto;display:grid;grid-template-columns:1.2fr repeat(4,1fr);align-items:center;gap:8px;padding:12px 16px}.live>span,.live small{grid-column:1/-1}.live div{font-size:14px;padding:4px}.live b{font-size:20px}
}

@media(min-width:901px) and (max-height:780px){
  .lobby{align-items:start;padding-top:16px;padding-bottom:16px}.brand h1{font-size:52px;margin:8px 0}.brand h1 i{margin:5px 0}.brand>p{font-size:14px}.controls-guide{margin-top:10px}.control-grid article{min-height:50px;padding:5px 7px}.control-grid article>p{font-size:11px}.control-grid article>p small{font-size:9px}.mouse-visual{transform:scale(.82);margin:-5px}.territory-rules{font-size:10px;padding:5px 8px}.join-card{padding:20px}.lobby-tabs{margin:-10px -10px 13px}.ninja-preview{height:122px}.ninja-preview img{width:116px;height:116px}.fighter-choice{height:56px}.fighter-choice img{width:34px;height:38px}.team{padding:9px}.enter{padding:13px}.profile-stats article{padding:10px 8px}
}

@media(max-width:900px){
  .lobby{height:100dvh;min-height:100dvh;overflow:auto}.lobby-tabs{grid-template-columns:repeat(2,1fr)}.territory-rules{margin-bottom:2px}.debug-toggle,.exit-game{padding:4px 6px;font-size:8px}.hud{max-width:calc(100% - 12px)}
}

.mouse-visual.hold em{right:-25px;top:-8px;font-size:9px;letter-spacing:.5px}
.territory-rules{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px;padding:9px 11px;border:1px solid #3b5059;border-radius:10px;background:#081419d9;font:700 11px Rajdhani}.territory-rules span{color:var(--gold);letter-spacing:1px}.territory-rules b{padding:3px 7px;border-radius:7px;background:#183122;color:#9bf174}.territory-rules small{flex-basis:100%;color:#87979e;font-size:9px}

.play-options{display:grid;grid-template-columns:1.12fr .88fr;gap:10px;align-items:stretch}
.play-options .enter{font-size:17px}
.bot-match{border:1px solid #6f54bd;border-radius:10px;padding:9px 12px;background:linear-gradient(145deg,#171128,#241743);color:#eee8ff;cursor:pointer;box-shadow:0 5px #39276a;text-align:left}
.bot-match b{display:block;font:800 14px Rajdhani;letter-spacing:.4px}
.bot-match small{display:block;margin-top:3px;color:#b5a7dc;font-size:10px}
.enter:hover,.bot-match:hover{filter:brightness(1.1)}
.enter:disabled,.bot-match:disabled{cursor:wait;filter:grayscale(.5);opacity:.66}

@media(max-width:900px){
  .play-options{grid-template-columns:1fr}
  .bot-match{text-align:center;padding:11px}
}

.lobby-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:-20px -20px 24px;padding:5px;background:#071115;border:1px solid #25353c;border-radius:12px}
.lobby-tab{border:0;border-radius:8px;padding:10px 7px;background:transparent;color:#829198;cursor:pointer;font:800 12px Rajdhani;letter-spacing:1px}
.lobby-tab.active{background:#17242a;color:#fff;box-shadow:inset 0 -2px var(--gold)}
.lobby-panel{min-height:520px;animation:panel-in .18s ease-out}
@keyframes panel-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.matchmaking-note,.panel-copy,.profile-note{margin:13px 0 0;color:#819097;font-size:11px;line-height:1.45}
.panel-heading{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}
.panel-heading h2{margin:3px 0 0;font:800 26px Rajdhani}
.panel-heading button{width:38px;height:38px;border:1px solid #42535b;border-radius:9px;background:#101c21;color:#fff;cursor:pointer;font-size:21px}
.panel-copy{margin:0 0 18px}
.world-list{display:flex;flex-direction:column;gap:9px;max-height:430px;overflow:auto;padding-right:3px}
.empty-list{padding:45px 10px;text-align:center;color:#7e8d94;border:1px dashed #35464d;border-radius:12px}
.world-row{display:grid;grid-template-columns:1fr auto;gap:11px;align-items:center;padding:14px;background:#091419;border:1px solid #2c3d44;border-radius:12px}
.world-row:hover{border-color:#53656d;background:#0d1a20}
.world-info{min-width:0}.world-title{display:flex;align-items:center;gap:8px}.world-title b{font:800 17px Rajdhani}.world-title i{width:7px;height:7px;border-radius:50%;background:#69dc42;box-shadow:0 0 8px #69dc42}.world-meta{display:flex;gap:12px;color:#85939a;font-size:10px;margin-top:4px}.world-territory{height:5px;margin-top:9px;border-radius:8px;overflow:hidden;background:#26333a;display:flex}.world-territory i:first-child{background:var(--fruit)}.world-territory i:last-child{background:var(--veg);margin-left:auto}.world-join{border:1px solid #5b6970;border-radius:9px;padding:10px 13px;background:#17242a;color:#fff;cursor:pointer;font:800 11px Rajdhani}.world-join:hover{border-color:var(--gold);color:var(--gold)}.world-join:disabled{opacity:.45;cursor:not-allowed}
.profile-head{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:12px;padding:15px;background:#091419;border:1px solid #2c3d44;border-radius:13px}.profile-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--fruit) 0 48%,var(--veg) 52%);border:3px solid #d8e0e3;color:#071116;font:900 18px Rajdhani}.profile-head span{color:#809097;font:700 9px Rajdhani;letter-spacing:1px}.profile-head h2{margin:0;font:800 24px Rajdhani}.profile-head small{display:block;color:#68777e;font:600 9px Rajdhani}.profile-head> b{color:var(--gold);font:800 15px Rajdhani}.profile-progress{height:7px;margin:12px 3px 20px;border-radius:8px;background:#26333a;overflow:hidden}.profile-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#de9612,var(--gold));transition:width .3s}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.profile-stats article{padding:13px 10px;background:#091419;border:1px solid #2c3d44;border-radius:10px}.profile-stats span{display:block;color:#7f8e95;font:700 9px Rajdhani}.profile-stats b{display:block;margin-top:3px;font:800 21px Rajdhani}.unlocks{margin-top:20px}.unlocks>div{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}.unlock-chip{display:flex;align-items:center;gap:6px;padding:6px 9px;background:#111d22;border:1px solid #34454c;border-radius:9px;color:#dce4e7;font:700 10px Rajdhani}.unlock-chip img{width:26px;height:31px;object-fit:contain}.profile-note{padding:12px;border-left:2px solid #55676f;background:#0a1418}

@media(max-width:900px){
  .lobby-tabs{margin:-10px -10px 17px}.lobby-panel{min-height:auto}.profile-stats{grid-template-columns:repeat(2,1fr)}.world-list{max-height:none;overflow:visible}.world-row{padding:11px}.world-meta{gap:7px}.join-card:has(#worldsPanel:not(.hidden)),.join-card:has(#profilePanel:not(.hidden)){min-height:520px}
}

/* Mobile gameplay: sharper canvas, smaller glass HUD, and clearer touch controls. */
@media(max-width:900px){
  .game{height:100dvh;background:#071117}
  .game:after{background:radial-gradient(ellipse at center,transparent 66%,rgba(1,6,9,.27) 100%)}
  .hud{top:max(6px,env(safe-area-inset-top));width:calc(100% - 12px);height:46px;gap:6px;padding:0 8px;background:linear-gradient(180deg,#0d1b22f2,#071116e8);border-color:#52656f;border-radius:13px;box-shadow:0 7px 22px #0009,inset 0 1px #ffffff0b}
  .logo{font-size:20px;letter-spacing:-1px}.territory{flex:1;min-width:0;gap:5px;font-size:9px}.territory label{max-width:82px;font-size:9px;line-height:1.05}.territory>div{flex:1;min-width:42px;max-width:112px;height:7px;border:1px solid #405059;background:#202d33}.clock{max-width:42px;text-align:center;font-size:9px;line-height:1.05}
  .stats{top:calc(59px + env(safe-area-inset-top));left:6px;width:118px;min-width:118px;padding:6px;background:linear-gradient(155deg,#0b171ee8,#071116dc);border-color:#43565f;border-radius:12px;box-shadow:0 8px 24px #0006;overflow:hidden;transition:max-height .18s ease,background .18s ease}.stats div{gap:8px;padding:3px 2px;font-size:9px}.stats b{font-size:12px}.stats .self-id{position:relative;padding-right:23px;cursor:pointer;touch-action:manipulation;user-select:none}.stats .self-id:after{content:'−';position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:15px;height:15px;border:1px solid #ffe56b88;border-radius:50%;color:#ffe56b;font:900 12px/1 Rajdhani}.stats.collapsed{max-height:52px;background:#081218ed}.stats.collapsed>div:not(.self-id){display:none}.stats.collapsed .self-id{margin-bottom:-3px}.stats.collapsed .self-id:after{content:'+'}
  .radar{right:7px;bottom:calc(100px + env(safe-area-inset-bottom));width:106px;height:76px;border-color:#60737d;background:#061016ed;box-shadow:0 8px 22px #0008,inset 0 0 18px #12252d}
  .joystick{left:25%;bottom:calc(16px + env(safe-area-inset-bottom));width:154px;height:154px;transform:translateX(-50%);border-color:#6f8792;background:radial-gradient(circle,#203741e8 0 27%,#0b171ddd 29% 65%,#3a515cbb 67% 69%,#071116d9 71%);box-shadow:inset 0 0 25px #000b,0 9px 26px #0008,0 0 0 1px #b9eaff14;transition:border-color .12s,box-shadow .12s}
  .joystick.active{border-color:#83dfff;box-shadow:inset 0 0 25px #000b,0 8px 25px #0008,0 0 18px #42cfff55}
  .joystick i{width:64px;height:64px;margin:-32px;background:radial-gradient(circle at 34% 28%,#91abb7,#405963 52%,#15262e 72%);border-color:#b8cbd3;box-shadow:0 6px 14px #000b,0 0 12px #8de4ff22}
  .actions{right:25%;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:12px;transform:translateX(50%);transition:opacity .12s,visibility .12s}.actions button{display:flex;flex:0 0 82px;flex-direction:column;align-items:center;justify-content:center;width:82px;height:82px;padding:0;border-width:2px;color:#fff;font-size:29px;line-height:1;box-shadow:0 8px 20px #0009,inset 0 1px #fff2;transition:transform .08s,filter .08s}.actions button:active{transform:scale(.93);filter:brightness(1.25)}.actions small{display:block;margin-top:5px;font-size:10px;line-height:1;letter-spacing:.5px}
  #leftAction{border-color:#ff7168aa;background:radial-gradient(circle at 38% 30%,#71332f,#241519 68%);text-shadow:0 0 9px #ff6b60;box-shadow:0 8px 20px #0009,0 0 16px #ff493428,inset 0 1px #fff2}
  #rightAction{border-color:#c476ffaa;background:radial-gradient(circle at 38% 30%,#553270,#21162b 68%);text-shadow:0 0 9px #cf78ff;box-shadow:0 8px 20px #0009,0 0 16px #a54cff28,inset 0 1px #fff2}
  .view-control{touch-action:none;position:absolute;right:25%;bottom:calc(110px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;padding:0;transform:translateX(50%);border:2px solid #6bcfff99;border-radius:50%;background:radial-gradient(circle at 38% 30%,#295268,#10232d 70%);color:#dff8ff;box-shadow:0 7px 18px #0009,0 0 14px #4bcfff25;transition:width .14s,height .14s,bottom .14s,background .14s,box-shadow .14s}.view-control>span{font:900 24px/1 Rajdhani}.view-control small{margin-top:2px;font:800 8px/1 Rajdhani;letter-spacing:.6px}.view-control i{position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px;border:2px solid #d9f8ff;border-radius:50%;opacity:0;background:radial-gradient(circle at 35% 30%,#9ee9ff,#29718e 58%,#153746);box-shadow:0 5px 12px #000a,0 0 15px #55d9ff66;will-change:transform;pointer-events:none}.mobile.aim-locked:not(.viewing) .view-control{border-color:#a1edff;color:#fff;box-shadow:0 7px 18px #0009,0 0 19px #42d5ff77,inset 0 0 10px #5edfff24}.mobile.viewing .actions{visibility:hidden;opacity:0;pointer-events:none}.mobile.viewing .view-control{bottom:calc(65px + env(safe-area-inset-bottom));width:146px;height:146px;border-color:#93e7ff;background:radial-gradient(circle,#1e4759e8 0 25%,#0b1c25eb 28% 65%,#3e7186bb 67% 69%,#071219e8 71%);box-shadow:inset 0 0 28px #000b,0 9px 28px #0009,0 0 20px #48d7ff55}.mobile.viewing .view-control>span,.mobile.viewing .view-control>small{opacity:0}.mobile.viewing .view-control i{opacity:1}
  .charge{bottom:calc(112px + env(safe-area-inset-bottom));width:150px;padding:7px 10px 5px;background:#071116dc;border:1px solid #694d7c;border-radius:10px}
}

@media(max-width:900px) and (orientation:landscape){
  .hud{top:max(4px,env(safe-area-inset-top));height:38px;width:auto;min-width:410px;max-width:480px}.territory label{max-width:94px;white-space:nowrap}.territory>div{max-width:150px}.stats{top:calc(47px + env(safe-area-inset-top));left:6px;width:112px;min-width:112px;padding:5px}.stats div{padding:2px;font-size:8px}.stats b{font-size:11px}
  .radar{top:calc(47px + env(safe-area-inset-top));right:6px;bottom:auto;width:106px;height:76px}.joystick{left:25%;bottom:calc(10px + env(safe-area-inset-bottom));width:132px;height:132px;transform:translateX(-50%)}.joystick i{width:54px;height:54px;margin:-27px}.actions{right:25%;bottom:calc(11px + env(safe-area-inset-bottom));gap:11px;transform:translateX(50%)}.actions button{flex-basis:72px;width:72px;height:72px;font-size:24px}.actions small{margin-top:4px;font-size:9px}.view-control{bottom:calc(94px + env(safe-area-inset-bottom));width:48px;height:48px}.view-control>span{font-size:20px}.view-control small{font-size:7px}.mobile.viewing .view-control{bottom:calc(60px + env(safe-area-inset-bottom));width:116px;height:116px}.mobile.viewing .view-control i{width:27px;height:27px;margin:-13.5px}.charge{bottom:calc(10px + env(safe-area-inset-bottom));width:138px}
}

/* Final single-server overrides must follow the legacy lobby rules above. */
.lobby{overflow-x:hidden}
.lobby:before{transform:none}
.lobby-tabs{grid-template-columns:repeat(2,1fr);margin:-15px -15px 18px}
.lobby-panel{min-height:0}
.play-options{grid-template-columns:1fr}
@media(max-width:900px){.lobby-tabs{margin:-10px -10px 17px}.lobby-panel{min-height:0}.join-card:has(#profilePanel:not(.hidden)){min-height:0}}

/* Balanced lobby columns: the play/profile card stays on the true screen center. */
@media(min-width:1221px){
  .lobby{grid-template-columns:minmax(340px,1fr) minmax(400px,560px) minmax(340px,1fr);justify-items:center;align-items:center}
  .brand{width:min(100%,620px);justify-self:center}.join-card{width:min(100%,560px);justify-self:center}.live{width:min(100%,340px);justify-self:center;align-self:center}
}

.auth-card{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 15px;padding:11px;background:#081419;border:1px solid #2c3d44;border-radius:11px}.auth-heading{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;align-items:baseline}.auth-heading b{color:var(--gold);font:800 11px Rajdhani;letter-spacing:1px}.auth-heading small{color:#7f8e95;font-size:9px}.auth-card input{min-width:0;margin:0;padding:10px 11px;border-radius:8px}.auth-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px}.auth-actions button,.signed-in button{border:1px solid #4b5e66;border-radius:8px;padding:9px;background:#16252c;color:#fff;cursor:pointer;font:800 10px Rajdhani;letter-spacing:.7px}.auth-actions button:first-child{border-color:#d99918;background:#49350d;color:#ffe9a0}.auth-actions button:hover,.signed-in button:hover{filter:brightness(1.16)}.auth-actions button:disabled{opacity:.55;cursor:wait}.auth-status{grid-column:1/-1;min-height:14px;margin:0;color:#ff9b90;font-size:9px}.auth-status.ok{color:#8eea72}
.signed-in{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px;padding:11px 12px;border:1px solid #3b6741;border-radius:11px;background:#0b2114}.signed-in span{display:block;color:#8be56d;font:800 9px Rajdhani;letter-spacing:1px}.signed-in b{display:block;max-width:300px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:12px}.signed-in button{flex:0 0 auto;padding:8px 10px}
.admin-tools{margin:0 0 15px;padding:11px;border:1px solid #7c3c34;border-radius:11px;background:linear-gradient(135deg,#241313,#17100f)}.admin-tools>div{display:flex;justify-content:space-between;gap:9px;align-items:baseline}.admin-tools b{color:#ff8d7d;font:800 11px Rajdhani;letter-spacing:1px}.admin-tools small{color:#a98e8b;font-size:9px}.admin-tools button,.admin-tools a{display:block;box-sizing:border-box;width:100%;margin-top:9px;border:1px solid #b64f42;border-radius:8px;padding:10px;background:#54211c;color:#fff;cursor:pointer;font:900 11px Rajdhani;letter-spacing:.8px;text-align:center;text-decoration:none}.admin-tools button:hover,.admin-tools a:hover{background:#753028}.admin-tools button:disabled{opacity:.55;cursor:wait}.admin-tools p{min-height:12px;margin:6px 0 0;color:#ffae9f;font-size:9px}.profile-stats{margin-top:2px}
.psd-storage-admin{margin:0 0 15px;padding:11px;border:1px solid #376d74;border-radius:11px;background:linear-gradient(135deg,#102227,#0b171b)}.psd-storage-admin header{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:8px}.psd-storage-admin header b,.psd-storage-admin header small{display:block}.psd-storage-admin header b{color:#7ee8f2;font:900 11px Rajdhani;letter-spacing:1px}.psd-storage-admin header small{margin-top:1px;color:#7f9da1;font-size:9px}.psd-storage-admin header>span{padding:3px 6px;border:1px solid #497d83;border-radius:5px;color:#a9f5fb;font:800 8px Rajdhani;letter-spacing:.8px}.psd-storage-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px dashed #477b82;border-radius:8px;background:#08171b;cursor:pointer}.psd-storage-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.psd-storage-picker b{color:#c5fbff;font:900 9px Rajdhani;letter-spacing:.7px}.psd-storage-picker small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7d9699;font-size:8px}.psd-storage-admin>button{width:100%;margin-top:7px;padding:9px;border:1px solid #3d8991;border-radius:8px;background:#16434a;color:#d8fcff;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.8px}.psd-storage-admin>button:disabled{opacity:.45;cursor:not-allowed}.psd-storage-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:8px}.psd-storage-result input{min-width:0;padding:8px;border:1px solid #385a60;border-radius:7px;background:#061115;color:#a9edf3;font-size:9px}.psd-storage-result button{padding:7px 10px;border:1px solid #4a9299;border-radius:7px;background:#1c4c52;color:#e2fdff;cursor:pointer;font:900 9px Rajdhani}.psd-storage-admin>p{min-height:12px;margin:5px 0 0;color:#ffab9d;font-size:9px}.psd-storage-admin>p.ok{color:#8ce8b0}
.character-admin{margin:0 0 15px;padding:11px;border:1px solid #596d2e;border-radius:11px;background:linear-gradient(135deg,#172111,#0c1816)}.character-admin header{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:8px}.character-admin header div b,.character-admin header div small{display:block}.character-admin header b{color:#b9ec61;font:900 11px Rajdhani;letter-spacing:1px}.character-admin header small{margin-top:1px;color:#899b7b;font-size:9px}.character-admin header>span{padding:3px 6px;border:1px solid #758844;border-radius:5px;color:#d8fa8f;font:800 8px Rajdhani;letter-spacing:.8px}.character-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.character-fields label>span{display:block;margin:0 0 3px;color:#8d9c91;font:800 8px Rajdhani;letter-spacing:.7px}.character-fields input{width:100%;min-width:0;margin:0;padding:8px 9px;border:1px solid #3a4b42;border-radius:7px;background:#071217;color:#fff;font-size:10px}.character-folder{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;padding:8px 9px;border:1px dashed #667a42;border-radius:8px;background:#0b1814;cursor:pointer}.character-folder input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.character-folder b{flex:0 0 auto;color:#e3ffab;font:900 9px Rajdhani;letter-spacing:.6px}.character-folder small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#829086;font-size:8px}.character-admin>button{width:100%;margin-top:7px;padding:9px;border:1px solid #78973e;border-radius:8px;background:#314716;color:#efffcf;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.8px}.character-admin>button:hover{filter:brightness(1.18)}.character-admin>button:disabled{opacity:.45;cursor:not-allowed}.character-admin>p{min-height:12px;margin:5px 0 0;color:#ffab9d;font-size:9px}.character-admin>p.ok{color:#a7ed72}

.debug-overlay{position:absolute;left:10px;bottom:52px;width:220px;padding:9px 11px;border:1px solid #536b76;border-radius:9px;background:#061016e8;box-shadow:0 10px 28px #000b;color:#dce8ed;font:700 10px Rajdhani;font-variant-numeric:tabular-nums;pointer-events:none;backdrop-filter:blur(7px)}.debug-overlay header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;padding-bottom:5px;border-bottom:1px solid #32434b;color:#65dcff;cursor:grab;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.debug-overlay header.dragging{cursor:grabbing}.debug-overlay header span{color:#82959e;font-size:8px;letter-spacing:.5px}.debug-overlay div{display:flex;justify-content:space-between;gap:10px;padding:2px 0}.debug-overlay div span{color:#83959d}.debug-overlay div b{color:#fff;text-align:right}.debug-overlay #debugNetwork{color:#b9f09e}

@media(max-width:900px){.auth-card{grid-template-columns:1fr}.auth-card>*{grid-column:1}.auth-heading{display:block}.auth-heading small{display:block;margin-top:2px}.signed-in b{max-width:210px}.admin-tools>div{display:block}.admin-tools small{display:block;margin-top:2px}.character-fields{grid-template-columns:1fr}.character-folder{display:block}.character-folder small{display:block;margin-top:2px}.debug-overlay{left:6px;bottom:calc(150px + env(safe-area-inset-bottom));width:164px;padding:7px 9px;font-size:9px}}

/* Fighter and bot controls. */
.fighter-picker{grid-template-columns:repeat(6,minmax(0,1fr));max-height:180px;overflow-y:auto;overscroll-behavior:contain;padding:0 2px 3px 0}
.fighter-choice span{display:block;width:100%;white-space:nowrap;overflow:visible;text-overflow:clip;line-height:1.1;font-size:calc(10px * var(--name-scale,1));letter-spacing:0}
.bot-setup{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 9px;padding:7px 8px;border:1px solid #3b385a;border-radius:10px;background:linear-gradient(135deg,#111323,#0b151a)}
.bot-setup>div{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.bot-setup>div b{color:#c9b9ff;font:800 10px Rajdhani;letter-spacing:1px}.bot-setup>div small{color:#747e91;font-size:8px}
.bot-setup label{display:grid;grid-template-columns:1fr 22px 22px 22px;align-items:center;gap:3px;min-width:0;padding:4px 5px;border:1px solid #303c43;border-radius:7px;background:#091419}.bot-setup label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:800 9px Rajdhani}.bot-setup label button{width:22px;height:22px;padding:0;border:1px solid #526069;border-radius:5px;background:#17252c;color:#fff;cursor:pointer;font:900 13px/1 Rajdhani}.bot-setup label button:hover{filter:brightness(1.3)}.bot-setup output{text-align:center;color:#fff;font:900 13px Rajdhani}.bot-setup .fruit-bots{border-color:#64332f}.bot-setup .veggie-bots{border-color:#3e5b31}

.live-bot-tools{position:absolute;top:188px;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;z-index:4;pointer-events:auto}.live-bot-toggle{height:27px;padding:0 9px;border:1px solid #e2b93d;border-radius:7px;background:#17160cdd;color:#ffe36a;box-shadow:0 5px 14px #0008;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.7px}.live-bot-toggle[aria-expanded=true]{background:#493e11;color:#fff}.live-bot-menu{width:126px;padding:7px;border:1px solid #566872;border-radius:8px;background:#071116ee;box-shadow:0 10px 26px #000b;backdrop-filter:blur(6px)}.live-bot-menu>b{display:block;margin-bottom:5px;color:#9cabb2;font:800 8px Rajdhani;letter-spacing:.8px}.live-bot-menu button{width:100%;margin:2px 0;padding:6px;border:1px solid #3b4c54;border-radius:6px;background:#122027;color:#fff;cursor:pointer;text-align:left;font:800 9px Rajdhani}.live-bot-menu button:first-of-type{border-color:#6e352f}.live-bot-menu button:nth-of-type(2){border-color:#436733}.live-bot-menu button:disabled{opacity:.5;cursor:wait}.live-bot-menu small{display:block;min-height:10px;margin-top:4px;color:#bdc9ce;font:600 8px Rajdhani;line-height:1.15}

@media(max-width:900px){
  .fighter-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}.fighter-choice{padding-inline:1px}.fighter-choice img{width:34px}.fighter-choice span{font-size:calc(8px * var(--name-scale,1))}
  .bot-setup{padding:6px;margin-bottom:8px}.bot-setup>div small{display:none}.bot-setup label{grid-template-columns:1fr 21px 20px 21px;padding:3px}.bot-setup label button{width:21px;height:21px}.bot-setup label span{font-size:8px}
  .live-bot-tools{top:calc(61px + env(safe-area-inset-top));right:6px}.live-bot-toggle{height:25px;padding:0 7px;font-size:9px}.live-bot-menu{width:112px;padding:6px}
}
@media(max-width:900px) and (orientation:landscape){.live-bot-tools{top:calc(132px + env(safe-area-inset-top));right:6px}}

/* Cosmetic emotes: profile preferences, owner availability, and in-game dock. */
#profilePanel{max-height:calc(100vh - 190px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.emote-admin,.emote-preferences{margin:0 0 15px;padding:11px;border:1px solid #455b66;border-radius:11px;background:linear-gradient(135deg,#0c1a22,#10141e)}
.emote-admin{border-color:#75568d;background:linear-gradient(135deg,#201329,#10151d)}
.emote-admin header,.emote-preferences header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.emote-admin header div b,.emote-admin header div small,.emote-preferences header div b,.emote-preferences header div small{display:block}.emote-admin header b,.emote-preferences header b{color:#d8adff;font:900 11px Rajdhani;letter-spacing:1px}.emote-preferences header b{color:#7ddfff}.emote-admin header small,.emote-preferences header small{margin-top:2px;color:#87949b;font-size:9px}.emote-admin header>span,.emote-preferences header>span{flex:0 0 auto;padding:3px 6px;border:1px solid #78638c;border-radius:5px;color:#e2c2ff;font:800 8px Rajdhani;letter-spacing:.7px}
.emote-admin-list,.emote-favorite-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.emote-admin-list button,.emote-favorite-list button{min-width:0;padding:7px 4px;border:1px solid #3c4c54;border-radius:8px;background:#0a151b;color:#a7b3b8;cursor:pointer;font:800 9px Rajdhani}.emote-admin-list button i,.emote-favorite-list button i{display:block;margin-bottom:2px;font:normal 20px/1 sans-serif}.emote-admin-list button.active{border-color:#8edd69;background:#17311a;color:#d9ffca}.emote-admin-list button:not(.active){opacity:.58}.emote-favorite-list button.active{border-color:#57cdef;background:#12303d;color:#d8f7ff;box-shadow:inset 0 -2px #249cc2}.emote-admin>p,.emote-preferences>p{min-height:11px;margin:5px 0 0;color:#9fc8d7;font-size:8px}
.emote-dock{position:absolute;z-index:5;top:62px;left:50%;display:flex;align-items:flex-start;gap:5px;transform:translateX(-50%);pointer-events:auto}.emote-toggle,.emote-more,.emote-quick button,.emote-all button{touch-action:manipulation;-webkit-user-select:none;user-select:none;border:1px solid #52646d;background:#09151be8;color:#fff;cursor:pointer;box-shadow:0 6px 18px #0009;backdrop-filter:blur(7px)}.emote-toggle{display:flex;align-items:center;gap:5px;height:35px;padding:0 10px;border-radius:9px}.emote-toggle span{font:900 20px/1 sans-serif;color:#ffe272}.emote-toggle small{font:900 9px Rajdhani;letter-spacing:.7px}.emote-toggle[aria-expanded=true]{border-color:#e2c259;background:#332c12ee}.emote-tray{touch-action:manipulation;position:relative;display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #42545d;border-radius:10px;background:#061117e9;box-shadow:0 8px 24px #000a;backdrop-filter:blur(8px)}.emote-quick{display:flex;gap:4px}.emote-quick button,.emote-more{width:34px;height:28px;padding:0;border-radius:7px;font-size:17px}.emote-more{font:900 13px Rajdhani;letter-spacing:1px}.emote-all{position:absolute;top:39px;left:0;width:220px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;border:1px solid #4b5d66;border-radius:10px;background:#061117f4;box-shadow:0 12px 30px #000c}.emote-all button{min-width:0;padding:7px 3px;border-radius:7px;font-size:17px}.emote-all button small{display:block;overflow:hidden;text-overflow:ellipsis;color:#aebbc0;font:800 7px Rajdhani;white-space:nowrap}
.emote-all{max-height:min(320px,calc(100dvh - 110px));overflow-y:auto;overscroll-behavior:contain}.emote-dock.flip-y .emote-all{top:auto;bottom:39px}
@media(min-width:901px){.emote-toggle:after{content:'E';display:grid;place-items:center;width:17px;height:17px;margin-left:2px;border:1px solid #7a8990;border-radius:4px;background:#17242a;color:#d8e2e6;font:900 9px Rajdhani}.emote-dock.cursor-open{transform:none}.emote-dock.cursor-open .emote-toggle{display:none}}
.emote-kind{display:block;margin-top:3px;font:900 6px/1 Rajdhani;letter-spacing:.8px}.emote-kind-emoji{border-color:#3f9fc2!important;background:linear-gradient(145deg,#102c38,#091820)!important;box-shadow:inset 0 -2px #258eb8,0 5px 14px #0007!important}.emote-kind-emoji .emote-kind{color:#73ddff}.emote-kind-dance{border-color:#9b61c5!important;background:linear-gradient(145deg,#2c173a,#15101e)!important;box-shadow:inset 0 -2px #d19a37,0 5px 14px #0007!important}.emote-kind-dance .emote-kind{color:#ffd36b}.emote-admin-list button{position:relative}.emote-admin-list button.active:after{content:'ON';position:absolute;right:3px;top:3px;padding:2px 3px;border-radius:3px;background:#2b7d3d;color:#dcffe3;font:900 6px Rajdhani}.emote-favorite-list button.active{outline:2px solid #eefcff;outline-offset:-3px}.emote-quick button{position:relative}.emote-quick button .emote-kind{position:absolute;right:2px;bottom:2px;margin:0;padding:1px 2px;border-radius:3px;background:#061016dd;font-size:0;letter-spacing:0}.emote-quick .emote-kind-emoji .emote-kind:after{content:'💬';font-size:7px}.emote-quick .emote-kind-dance .emote-kind:after{content:'♪';color:#ffd56d;font:900 10px/1 sans-serif}.emote-all .emote-kind{margin-top:3px;font-size:6px}.emote-all .emote-name{display:block;overflow:hidden;text-overflow:ellipsis;color:#dce5e8;font:800 7px Rajdhani;white-space:nowrap}
@media(max-width:900px){#profilePanel{max-height:none;overflow:visible;padding-right:0}.emote-admin-list,.emote-favorite-list{grid-template-columns:repeat(2,minmax(0,1fr))}.emote-dock{top:calc(130px + env(safe-area-inset-top));right:7px;left:auto;transform:none}.emote-toggle{width:46px;height:46px;justify-content:center;padding:0;border-radius:50%}.emote-toggle span{font-size:23px}.emote-toggle small{display:none}.emote-tray{position:absolute;top:51px;right:0;flex-wrap:wrap;width:172px;justify-content:flex-end}.emote-quick button,.emote-more{width:36px;height:34px;font-size:19px}.emote-all{top:43px;right:0;left:auto;width:172px;grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px) and (orientation:landscape){.emote-dock{top:calc(182px + env(safe-area-inset-top))}}

/* One canonical instruction system is shared by the lobby and in-game help. */
.mobile-instruction,.mobile-only-card{display:none!important}
.game-rules{margin-top:8px}.game-rules h3{margin:0 0 6px;color:var(--gold);font:800 12px Rajdhani;letter-spacing:1.5px}.game-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.game-rule-grid article{min-width:0;padding:7px 9px;border:1px solid #334850;border-radius:9px;background:#081419d9;box-shadow:0 7px 18px #0003}.game-rule-grid article.wide{grid-column:1/-1}.game-rule-grid article>span{display:block;margin-bottom:3px;color:#f6ca43;font:800 9px Rajdhani;letter-spacing:.8px}.game-rule-grid article>div{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:3px}.game-rule-grid article>div b{padding:2px 6px;border-radius:6px;background:#183122;color:#9bf174;font:800 9px Rajdhani}.game-rule-grid small{display:block;color:#87979e;font-size:8.5px;line-height:1.25}
.touch-visual{position:relative;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;border:2px solid #71838c;border-radius:50%;background:#132128;color:#fff;font:900 20px/1 Rajdhani}.touch-visual i{position:absolute;right:-6px;top:-6px;padding:2px 3px;border-radius:4px;background:#071116;color:#63d5ff;font:900 8px/1 Rajdhani;font-style:normal}.touch-visual.attack{border-color:#ff716899;background:#48211fcc}.touch-visual.power{border-color:#c476ff99;background:#3c2450cc}.touch-visual.both,.touch-visual.special{gap:3px;width:58px;min-width:58px;border-radius:18px;background:linear-gradient(90deg,#48211fcc 0 49%,#3c2450cc 51%)}.touch-visual.both span,.touch-visual.special span{font-size:15px}.touch-visual.both strong,.touch-visual.special strong{color:var(--gold);font-size:11px}.touch-visual.look{border-color:#67cfff99;background:#173847cc;color:#dff8ff}.touch-visual.move span{width:18px;height:18px;border-radius:50%;background:#78919b;color:transparent;box-shadow:0 0 0 7px #273c45}
.help-dialog{width:min(820px,calc(100vw - 24px));max-width:820px;max-height:calc(100dvh - 24px);padding:15px 18px 18px;overflow:auto;border-color:#465b64;background:linear-gradient(145deg,#0c1b22f7,#071116f7);box-shadow:0 24px 80px #000d;color:#fff}.help-dialog::backdrop{background:#02070bcc;backdrop-filter:blur(5px)}.help-dialog .help-close{position:sticky;z-index:2;top:0;float:none;display:grid;place-items:center;width:34px;height:34px;margin:0 0 -34px auto;padding:0;border:1px solid #536871;border-radius:50%;background:#0b171def;color:#fff;cursor:pointer;font:700 24px/1 Heebo}.help-dialog .controls-guide{max-width:none;margin:0;padding-top:2px}.help-dialog .controls-guide>h2{padding-right:42px}.help-dialog .control-grid article{min-height:62px}.help-dialog .game-rule-grid article{box-shadow:none}

@media(max-width:900px){
  .desktop-instruction{display:none!important}.mobile-instruction{display:block!important}.touch-visual.mobile-instruction{display:flex!important}.mobile-only-card{display:flex!important}
  .game-rules h3{font-size:11px}.game-rule-grid{grid-template-columns:1fr}.game-rule-grid article.wide{grid-column:auto}.game-rule-grid article{padding:7px 8px}.game-rule-grid small{font-size:8.5px}
  .help-btn{display:grid;place-items:center;left:8px;bottom:calc(214px + env(safe-area-inset-bottom));width:34px;height:34px;padding:0;border-color:#60768199;background:#071116a8;box-shadow:0 5px 15px #0007;backdrop-filter:blur(4px)}
  .help-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px);padding:12px;border-radius:14px}.help-dialog .controls-guide{margin:0}.help-dialog .control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.help-dialog .control-grid article{min-height:64px}.help-dialog .game-rule-grid{grid-template-columns:1fr}
  .radar{bottom:calc(214px + env(safe-area-inset-bottom))}
  .joystick{left:22%;bottom:calc(14px + env(safe-area-inset-bottom));width:168px;height:168px;border-color:#6f8792a0;background:radial-gradient(circle,#203741a6 0 27%,#0b171da8 29% 65%,#3a515c82 67% 69%,#071116a3 71%);box-shadow:inset 0 0 22px #0008,0 7px 20px #0006,0 0 0 1px #b9eaff0f}
  .joystick.active{border-color:#83dfffb5;box-shadow:inset 0 0 22px #0008,0 7px 20px #0006,0 0 15px #42cfff3d}
  .joystick i{width:66px;height:66px;margin:-33px;background:radial-gradient(circle at 34% 28%,#91abb7c9,#405963bd 52%,#15262ec2 72%);border-color:#b8cbd3bd;box-shadow:0 5px 12px #0008,0 0 10px #8de4ff1c}
  .actions{right:25%;bottom:calc(16px + env(safe-area-inset-bottom));gap:12px}.actions button{background-color:transparent;box-shadow:0 7px 17px #0007,inset 0 1px #fff1}.actions small em{display:block;margin-top:3px;color:#e2c4f4;font:800 7px/1 Rajdhani;font-style:normal;letter-spacing:.3px}
  #leftAction{border-color:#ff716878;background:radial-gradient(circle at 38% 30%,#71332fb0,#241519ad 68%);box-shadow:0 7px 17px #0007,0 0 13px #ff49341c,inset 0 1px #fff1}
  #rightAction{transform:translateX(10px);border-color:#c476ff78;background:radial-gradient(circle at 38% 30%,#553270b0,#21162bad 68%);box-shadow:0 7px 17px #0007,0 0 13px #a54cff1c,inset 0 1px #fff1}
  #rightAction:active{transform:translateX(10px) scale(.93)}
  .view-control{right:8%;bottom:calc(126px + env(safe-area-inset-bottom));border-color:#6bcfff70;background:radial-gradient(circle at 38% 30%,#295268b8,#10232db5 70%);box-shadow:0 6px 15px #0007,0 0 11px #4bcfff1b}
  .mobile.aim-locked:not(.viewing) .view-control{box-shadow:0 6px 15px #0007,0 0 15px #42d5ff55,inset 0 0 9px #5edfff1b}
  .mobile.viewing .view-control{right:20%;bottom:calc(38px + env(safe-area-inset-bottom));width:154px;height:154px;background:radial-gradient(circle,#1e4759b8 0 25%,#0b1c25bd 28% 65%,#3e71867d 67% 69%,#071219b8 71%);box-shadow:inset 0 0 24px #0008,0 8px 22px #0007,0 0 16px #48d7ff3d}
}

@media(max-width:900px) and (orientation:landscape){
  .radar{top:calc(47px + env(safe-area-inset-top));bottom:auto}.help-btn{left:7px;bottom:calc(170px + env(safe-area-inset-bottom))}
  .joystick{left:25%;bottom:calc(8px + env(safe-area-inset-bottom));width:138px;height:138px}.joystick i{width:56px;height:56px;margin:-28px}
  .actions{right:34%;bottom:calc(10px + env(safe-area-inset-bottom));gap:11px}.actions button{flex-basis:74px;width:74px;height:74px}
  .view-control{right:9%;bottom:calc(91px + env(safe-area-inset-bottom));width:50px;height:50px}.mobile.viewing .view-control{right:16%;bottom:calc(24px + env(safe-area-inset-bottom));width:128px;height:128px}
}

@media(max-width:380px) and (orientation:portrait){
  .joystick{left:22%;width:150px;height:150px}.joystick i{width:60px;height:60px;margin:-30px}
  .actions{right:25%;gap:10px}.actions button{flex-basis:72px;width:72px;height:72px;font-size:25px}
}

@media(max-width:520px){
  .controls-guide .control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-grid article{gap:6px;padding:7px}.touch-visual{width:44px;height:44px;min-width:44px}.touch-visual.both,.touch-visual.special{width:52px;min-width:52px}.control-grid article>p{font-size:10.5px}.control-grid article>p small{font-size:8.5px;line-height:1.18}
}

/* Server-authoritative event callouts. Kept above the action and below the HUD. */
.announcer{--announce-color:#ffd95a;position:absolute;top:14%;left:50%;z-index:6!important;width:min(440px,calc(100% - 36px));padding:6px 14px 5px;transform:translate(-50%,-12px) scale(.94);opacity:0;pointer-events:none;text-align:center;background:linear-gradient(90deg,transparent,#061015e8 15%,#0d1a20f4 50%,#061015e8 85%,transparent);border-top:1px solid color-mix(in srgb,var(--announce-color) 72%,transparent);border-bottom:1px solid color-mix(in srgb,var(--announce-color) 45%,transparent);filter:drop-shadow(0 5px 10px #000b);transition:opacity .16s ease,transform .2s cubic-bezier(.2,.9,.25,1.15)}
.announcer.show{opacity:1;transform:translate(-50%,0) scale(1)}
.announcer b{display:block;color:var(--announce-color);font:900 clamp(14px,1.6vw,24px)/.92 Rajdhani;text-transform:uppercase;letter-spacing:.8px;text-shadow:0 2px 0 #000,0 0 12px color-mix(in srgb,var(--announce-color) 60%,transparent)}
.announcer small{display:block;margin-top:4px;color:#eef5f7;font:800 clamp(7px,.65vw,9px)/1.1 Rajdhani;letter-spacing:.4px;text-transform:uppercase;text-shadow:0 1px 3px #000}
.announcer[data-team="fruit"]{--announce-color:#ff6557}.announcer[data-team="veggie"]{--announce-color:#9be95e}
.announcer[data-kind="double-kill"],.announcer[data-kind="triple-kill"],.announcer[data-kind="spree"],.announcer[data-kind="streak"]{--announce-color:#ffd84d}
.announcer[data-kind="noob"]{--announce-color:#b8c4c9}
@media(max-width:900px){.announcer{top:15%;width:min(360px,calc(100% - 20px));padding:4px 9px}.announcer b{font-size:clamp(10px,2.8vw,15px)}.announcer small{font-size:6px;margin-top:2px}.notice{font-size:42px}.notice small{font-size:14px!important}}

/* Compact global kill feed. Events are server-authoritative and fade without affecting play. */
.kill-feed{position:absolute;z-index:6!important;top:66px;right:178px;width:min(300px,calc(100% - 24px));display:flex;flex-direction:column;align-items:flex-end;gap:5px;pointer-events:none}.kill-feed-entry{display:flex;max-width:100%;align-items:center;gap:6px;padding:6px 9px;border:1px solid #415159;border-radius:8px;background:#071116df;box-shadow:0 5px 16px #0009;color:#8c999f;font:800 10px/1 Rajdhani;white-space:nowrap;animation:kill-feed-in .18s ease-out}.kill-feed-entry b{max-width:115px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:11px}.kill-feed-entry b[data-team="fruit"]{color:#ff766b}.kill-feed-entry b[data-team="veggie"]{color:#9bea64}.kill-feed-entry span{color:#79878d;font-size:7px;letter-spacing:.8px}.kill-feed-entry.self{border-color:#d7b83f;box-shadow:inset 2px 0 #ffd948,0 5px 16px #0009}.kill-feed-entry.leaving{opacity:0;transform:translateX(16px);transition:opacity .3s ease,transform .3s ease}@keyframes kill-feed-in{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@media(max-width:900px){.kill-feed{top:calc(61px + env(safe-area-inset-top));right:50%;width:min(245px,calc(100% - 20px));transform:translateX(50%);align-items:stretch}.kill-feed-entry{display:none;justify-content:center;padding:5px 8px;font-size:9px}.kill-feed-entry:last-child{display:flex}.kill-feed-entry b{max-width:82px;font-size:10px}}

/* End-of-round scoreboard. The server freezes these values at the winning tick. */
.round-results{position:absolute;inset:0;z-index:9!important;display:grid;place-items:center;padding:clamp(12px,3vw,36px);pointer-events:auto;background:radial-gradient(circle at 50% 18%,#172731e8,#03080bee 68%);backdrop-filter:blur(8px);animation:results-backdrop-in .28s ease-out}
.round-results-card{width:min(920px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:clamp(16px,2.5vw,28px);border:1px solid #526872;border-radius:20px;background:linear-gradient(145deg,#0d1b22f7,#071116f8);box-shadow:0 30px 90px #000e,inset 0 1px #ffffff10;animation:results-card-in .34s cubic-bezier(.2,.9,.28,1.1)}
@keyframes results-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes results-card-in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.results-head{text-align:center}.results-head>span{display:inline-block;padding:4px 10px;border:1px solid #60737c;border-radius:20px;color:#a7b6bc;font:900 10px Rajdhani;letter-spacing:1.8px}.round-results[data-outcome="victory"] .results-head>span{border-color:#bc9d32;color:#ffe279;background:#3b2f0d}.round-results[data-outcome="defeat"] .results-head>span{border-color:#9a4750;color:#ff9a9f;background:#35151a}.results-head h2{margin:9px 0 2px;color:#fff;font:900 clamp(38px,6vw,68px)/.9 Rajdhani;letter-spacing:1px;text-shadow:0 5px #000,0 0 25px #ffffff18}.results-head p{margin:7px 0 0;color:#93a4ab;font:800 11px Rajdhani;letter-spacing:1px}
.result-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 10px}.result-highlights article{padding:10px 14px;border:1px solid #5e5130;border-radius:12px;background:linear-gradient(135deg,#2b230e,#10171a);text-align:center}.result-highlights span{display:block;color:#f3c94b;font:900 9px Rajdhani;letter-spacing:1px}.result-highlights b{display:block;overflow:hidden;margin:2px 0;color:#fff;font:900 20px Rajdhani;text-overflow:ellipsis;white-space:nowrap}.result-highlights small{color:#a7b2b7;font:700 9px Rajdhani}
.result-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.result-team{padding:10px 12px;border:1px solid #43555d;border-radius:12px;background:#09151b}.result-team.fruit{--result-team:#ff6255}.result-team.veggie{--result-team:#96e65b}.result-team.winner{border-color:var(--result-team);box-shadow:inset 0 0 22px color-mix(in srgb,var(--result-team) 10%,transparent)}.result-team header{display:flex;align-items:center;justify-content:space-between;gap:8px}.result-team header b{color:var(--result-team);font:900 16px Rajdhani}.result-team header span{padding:3px 7px;border-radius:6px;background:color-mix(in srgb,var(--result-team) 18%,#071015);color:var(--result-team);font:900 8px Rajdhani;letter-spacing:.8px}.result-team.loser{opacity:.72}.result-team>div{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.result-team p{margin:0;padding:5px;border-top:1px solid #2b3a40}.result-team p small,.result-team p strong{display:block}.result-team p small{color:#788991;font:800 7px Rajdhani}.result-team p strong{margin-top:2px;color:#edf4f6;font:900 14px Rajdhani}
.result-table-wrap{max-height:260px;overflow:auto;border:1px solid #33464e;border-radius:11px;background:#071116}.result-table{width:100%;border-collapse:collapse;font-family:Rajdhani,sans-serif}.result-table th{position:sticky;z-index:1;top:0;padding:8px;background:#111f25;color:#82949c;font-size:8px;letter-spacing:.8px;text-align:center}.result-table th:first-child{text-align:left}.result-table td{padding:7px 8px;border-top:1px solid #223139;color:#dce6e9;font-size:12px;font-weight:800;text-align:center}.result-table td:first-child{text-align:left}.result-table td:first-child b,.result-table td:first-child small{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-table td:first-child b{font-size:13px}.result-table td:first-child small{margin-top:1px;color:#7f9198;font-size:7px}.result-table tr.loser{opacity:.66}.result-table tr.self{background:#ffe05b10;box-shadow:inset 3px 0 #ffe05b}.result-badge{display:inline-block;min-width:38px;padding:3px 6px;border-radius:5px;background:#243138;color:#aab7bc;font-size:8px}.result-table tr.winner .result-badge{background:#1e4728;color:#9cf07a}
.results-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;color:#8d9da4;font:800 11px Rajdhani}.results-footer b{color:#fff;font-size:16px}.results-footer>div{display:flex;gap:7px}.results-footer button{border:1px solid #60737c;border-radius:8px;padding:8px 13px;background:#132127;color:#e9f0f2;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.7px}.results-footer button:hover{border-color:#ff8b80;color:#fff;background:#3c2020}#resultsReady{border-color:#799c43;background:#223514;color:#d8ffae}#resultsReady:hover{border-color:#b5e66d;background:#314c1c}#resultsReady:disabled{border-color:#536445;background:#172319;color:#83a26c;cursor:default}
@media(max-width:650px){.round-results{align-items:stretch;padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}.round-results-card{padding:13px;border-radius:15px}.results-head h2{font-size:39px}.result-highlights{margin-top:12px;gap:6px}.result-highlights article{padding:8px}.result-highlights b{font-size:16px}.result-teams{gap:6px}.result-team{padding:8px}.result-team>div{grid-template-columns:repeat(2,1fr)}.result-table-wrap{max-height:35dvh}.result-table th,.result-table td{padding:6px 5px}.result-table th:nth-child(2),.result-table td:nth-child(2){display:none}.result-table td:first-child b{max-width:110px}.results-footer{position:sticky;bottom:-13px;margin:10px -13px -13px;padding:9px 13px;background:#09151bf4}.results-footer button{padding:8px 10px}}

/* Owner character visibility and deletion controls. */
.character-library-head,.character-upload-title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin:3px 0 6px}.character-library-head b,.character-upload-title b{color:#dfffa9;font:900 9px Rajdhani;letter-spacing:.8px}.character-library-head small,.character-upload-title small{color:#829086;font-size:7px;text-align:right}.character-upload-title{margin-top:10px;padding-top:9px;border-top:1px solid #33442e}
.character-admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:255px;overflow:auto;padding-right:2px}.character-admin-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:6px;border:1px solid #40533b;border-radius:8px;background:#0a1714;transition:opacity .15s,border-color .15s}.character-admin-row.is-hidden{opacity:.55;border-color:#3a4140;background:#0a1112}.character-admin-row>img{width:38px;height:44px;object-fit:contain;filter:drop-shadow(0 4px 3px #0008)}.character-admin-row>div{min-width:0}.character-admin-row>div b,.character-admin-row>div small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-admin-row>div b{color:#f0f7e9;font:900 11px Rajdhani}.character-admin-row>div small{margin-top:1px;color:#788980;font:700 6px Rajdhani;letter-spacing:.4px}.character-admin-row>span{display:grid;grid-template-columns:1fr;gap:3px}.character-admin-row button{min-width:48px;padding:4px 6px;border:1px solid #5b6e59;border-radius:5px;background:#14231a;color:#bff08f;cursor:pointer;font:900 7px Rajdhani;letter-spacing:.4px}.character-admin-row .character-delete{border-color:#704648;background:#251517;color:#ff9b9b}.character-admin-row button:disabled{cursor:not-allowed;opacity:.35}.character-admin-row.is-hidden .character-visibility{border-color:#7e9a49;background:#2b4016;color:#dcffa0}
@media(max-width:520px){.character-admin-list{grid-template-columns:1fr;max-height:310px}.character-library-head,.character-upload-title{display:block}.character-library-head small,.character-upload-title small{display:block;margin-top:2px;text-align:left}}

.audio-toggle{position:fixed;z-index:30;top:14px;right:14px;padding:8px 11px;border:1px solid #58717a;border-radius:8px;background:#09171de8;color:#d9f8ff;box-shadow:0 7px 20px #0006;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.7px}.audio-toggle:hover{border-color:#76e4ff;background:#12313c}.audio-toggle[aria-pressed=true]{border-color:#806b6b;color:#ffc6bd}
#sfxToggle{top:54px}
@media(max-width:900px){.audio-toggle{top:10px;right:10px;padding:7px 9px;font-size:9px}#sfxToggle{top:46px}}

/* Custom game creation, discovery, waiting room, and player history. */
.create-game{width:100%;padding:11px 13px;border:1px solid #5d8d9f;border-radius:10px;background:linear-gradient(145deg,#102833,#153d4c);box-shadow:0 5px #0a222c;color:#dff8ff;cursor:pointer;text-align:center}.create-game b,.create-game small{display:block}.create-game b{font:900 14px Rajdhani;letter-spacing:.6px}.create-game small{margin-top:3px;color:#91bac8;font-size:9px}.create-game:hover{filter:brightness(1.15)}.create-game:disabled{cursor:wait;filter:grayscale(.55);opacity:.65}
.active-games{margin-top:18px;padding-top:14px;border-top:1px solid #314047}.active-games>header,.match-history>header{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:8px}.active-games>header b,.match-history>header b{color:#80e3ff;font:900 11px Rajdhani;letter-spacing:1px}.active-games>header span{display:grid;place-items:center;min-width:23px;height:23px;border:1px solid #42616d;border-radius:50%;color:#dff7ff;font:900 10px Rajdhani}.active-games-list{display:grid;gap:7px;max-height:315px;overflow:auto;overscroll-behavior:contain;padding-right:2px}.active-games-list>p,.match-history-list>p{margin:0;padding:10px;border:1px dashed #405159;border-radius:9px;color:#778890;font-size:9px;text-align:center}.active-game-card{padding:9px;border:1px solid #3b4e57;border-radius:10px;background:#08141a}.active-game-card[data-phase="playing"]{border-color:#4f5b3a}.active-game-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.active-game-card h3{overflow:hidden;margin:0;color:#fff;font:900 13px Rajdhani;text-overflow:ellipsis;white-space:nowrap}.active-game-card header span{flex:0 0 auto;padding:2px 5px;border-radius:5px;background:#173743;color:#75defd;font:900 7px Rajdhani;letter-spacing:.6px}.active-game-card[data-phase="playing"] header span{background:#313518;color:#d7ed80}.active-game-teams{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 0}.active-game-teams div{padding:5px 6px;border-radius:6px;background:#111d22;color:#8e9ca2;font-size:8px}.active-game-teams div:first-child{border-left:2px solid var(--fruit)}.active-game-teams div:last-child{border-right:2px solid var(--veg);text-align:right}.active-game-teams b{display:block;color:#fff;font:900 11px Rajdhani}.active-game-meta{display:flex;justify-content:space-between;gap:5px;color:#75868d;font-size:7px}.active-game-card>button{float:none;width:100%;margin-top:7px;padding:7px;border:1px solid #5e7883;border-radius:7px;background:#15303b;color:#dff8ff;cursor:pointer;font:900 9px Rajdhani;letter-spacing:.6px}.active-game-card>button:hover{border-color:#78dcfa;background:#1c4657}.active-game-card>button:disabled{cursor:not-allowed;opacity:.45}
.match-dialog{width:min(720px,calc(100vw - 24px));max-width:720px;max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:1px solid #506873;border-radius:20px;background:linear-gradient(145deg,#0d1b22,#071116);box-shadow:0 30px 100px #000e;color:#fff}.match-dialog::backdrop{background:#02070bd9;backdrop-filter:blur(7px)}.match-dialog form{padding:22px}.match-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid #2d414a}.match-dialog header span{color:#62d8fb;font:900 9px Rajdhani;letter-spacing:1.5px}.match-dialog h2{margin:2px 0 0;font:900 29px/.95 Rajdhani}.match-dialog header p{margin:5px 0 0;color:#8d9da4;font-size:10px}.match-dialog button{float:none}.match-dialog header>button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #50626a;border-radius:50%;background:#0c171c;color:#fff;cursor:pointer;font:500 24px/1 Heebo}.match-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.match-field{display:block;margin-top:12px;padding:10px;border:1px solid #30434c;border-radius:10px;background:#081419}.match-field>span{display:block;margin-bottom:5px;color:#bcd0d8;font:900 9px Rajdhani;letter-spacing:.7px}.match-field input,.match-field select{width:100%;height:38px;margin:0;padding:8px 10px;border:1px solid #435861;border-radius:7px;background:#0e2028;color:#fff;outline:none}.match-field input:focus,.match-field select:focus{border-color:#66dafa;box-shadow:0 0 0 2px #42cfff1f}.match-field small{display:block;margin-top:5px;color:#72848b;font-size:8px;line-height:1.3}.match-switches{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.match-switches label{display:flex;align-items:flex-start;gap:8px;padding:9px;border:1px solid #354850;border-radius:9px;background:#09151a;cursor:pointer}.match-switches input{accent-color:#5edcff}.match-switches b,.match-switches small{display:block}.match-switches b{color:#e5f1f4;font:900 8px Rajdhani;letter-spacing:.4px}.match-switches small{margin-top:3px;color:#75878e;font-size:7px;line-height:1.25}.match-dialog-error{min-height:16px;margin:9px 0 0;color:#ff8f84;font-size:9px}.match-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.match-dialog footer button{padding:10px 15px;border:1px solid #52656e;border-radius:8px;background:#122128;color:#c7d2d6;cursor:pointer;font:900 10px Rajdhani;letter-spacing:.7px}.match-dialog footer button:last-child{border-color:#58bbd6;background:#174455;color:#e4fbff}.match-dialog footer button:disabled{cursor:wait;opacity:.5}.join-match-dialog{max-width:510px}.join-team-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0 5px}.join-team-options button{padding:18px 12px;border:1px solid #56666d;border-radius:12px;background:#0c191f;color:#fff;cursor:pointer}.join-team-options button:first-child{border-color:#843d36;background:#291716}.join-team-options button:last-child{border-color:#4b713a;background:#152415}.join-team-options button b,.join-team-options button small{display:block}.join-team-options button b{font:900 16px Rajdhani}.join-team-options button small{margin-top:4px;color:#a5b2b7;font-size:9px}.join-team-options button:disabled{filter:grayscale(1);cursor:not-allowed;opacity:.35}
.match-lobby-screen{position:relative;width:100%;height:100dvh;overflow:auto;padding:clamp(18px,3vw,44px);background:radial-gradient(circle at 18% 15%,#3c1717aa,transparent 34%),radial-gradient(circle at 82% 78%,#1c4220aa,transparent 34%),linear-gradient(145deg,#071116,#0b181d);animation:screen-arrive .28s ease-out}.match-lobby-screen:before{content:"";position:absolute;inset:0;opacity:.07;pointer-events:none;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:52px 52px}.match-lobby-head,.match-lobby-rules,.lobby-team-showcase,.match-lobby-footer{position:relative;z-index:1;width:min(1180px,100%);margin-right:auto;margin-left:auto}.match-lobby-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:14px 18px;border:1px solid #41545d;border-radius:16px;background:#081419e8;box-shadow:0 18px 50px #0008}.match-lobby-logo{display:grid;place-items:center;width:54px;height:54px;border:2px solid #dce6e9;border-radius:15px;background:#1c1716;color:var(--fruit);font:900 27px Rajdhani}.match-lobby-logo span{color:var(--veg)}.match-lobby-head>div:nth-child(2)>span{color:#6bddfb;font:900 9px Rajdhani;letter-spacing:1.5px}.match-lobby-head h1{margin:1px 0 0;font:900 clamp(24px,3vw,38px)/1 Rajdhani}.match-lobby-head p{margin:4px 0 0;color:#8fa0a7;font-size:10px}.match-lobby-head button{padding:9px 12px;border:1px solid #7c4c49;border-radius:8px;background:#281719;color:#ff9f97;cursor:pointer;font:900 9px Rajdhani;letter-spacing:.6px}.match-lobby-rules{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:13px}.match-lobby-rules span{padding:5px 9px;border:1px solid #3b515b;border-radius:20px;background:#0a171d;color:#9dabb1;font:800 8px Rajdhani;letter-spacing:.5px}.match-lobby-rules span.on{border-color:#407187;color:#92e6ff}.lobby-team-showcase{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:16px;align-items:center;margin-top:18px}.lobby-roster{min-height:430px;padding:15px;border:1px solid #4d4d4d;border-radius:18px;background:#081318e8;box-shadow:0 24px 60px #0008}.lobby-roster.fruit{border-color:#713a36;box-shadow:inset 0 4px #d64c40,0 24px 60px #0008}.lobby-roster.veggie{border-color:#456539;box-shadow:inset 0 4px #78c748,0 24px 60px #0008}.lobby-roster>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid #33434a}.lobby-roster>header>div{display:flex;align-items:center;gap:8px}.lobby-roster>header span{font-size:25px}.lobby-roster h2{margin:0;font:900 20px Rajdhani}.lobby-roster>header>b{color:#a7b5bb;font:900 12px Rajdhani}.lobby-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.lobby-player{position:relative;min-height:160px;overflow:hidden;padding:10px;border:1px solid #394b53;border-radius:13px;background:linear-gradient(155deg,#102027,#091318);text-align:center}.lobby-player.self{border-color:#e4c74b;box-shadow:inset 0 0 18px #f8d84a17}.lobby-player.host:after{content:'HOST';position:absolute;right:5px;top:5px;padding:2px 5px;border-radius:5px;background:#4c3c0e;color:#ffe478;font:900 7px Rajdhani}.lobby-player img{width:88px;height:95px;object-fit:contain;filter:drop-shadow(0 9px 6px #000a)}.lobby-player b,.lobby-player small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-player b{font:900 12px Rajdhani}.lobby-player small{margin-top:2px;color:#75868d;font-size:7px;letter-spacing:.6px}.lobby-player-emote{position:absolute;top:8px;left:8px;display:grid;place-items:center;width:38px;height:38px;border:1px solid #9aacb4;border-radius:12px;background:#f7fbfd;color:#071116;font-size:23px;animation:lobby-emote-pop .2s ease-out}.lobby-player.dancing img{animation:lobby-dance .55s ease-in-out infinite alternate}.lobby-empty-slot{display:grid;place-items:center;min-height:160px;border:1px dashed #35474f;border-radius:13px;color:#52646c;font:900 9px Rajdhani;letter-spacing:.8px}.lobby-versus{text-align:center}.lobby-versus>b{display:block;color:#7f9098;font:900 46px Rajdhani;text-shadow:0 5px #000}.lobby-versus>span{display:block;color:#819198;font:800 7px Rajdhani;letter-spacing:1px}.lobby-emotes{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.lobby-emotes button{padding:7px 3px;border:1px solid #475b64;border-radius:8px;background:#0d1b21;color:#fff;cursor:pointer;font-size:18px}.lobby-emotes button:hover{border-color:#74dfff;background:#153440}.match-lobby-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:13px 16px;border:1px solid #40535c;border-radius:14px;background:#081419e8}.match-lobby-footer b,.match-lobby-footer span,.match-lobby-footer small{display:block}.match-lobby-footer span{color:#dce6e9;font:900 11px Rajdhani;letter-spacing:.6px}.match-lobby-footer small{margin-top:3px;color:#7e8f96;font-size:8px}.match-lobby-footer button{padding:12px 22px;border:0;border-radius:9px;background:linear-gradient(90deg,#df9410,var(--gold));box-shadow:0 5px #8b5900;color:#171100;cursor:pointer;font:900 14px Rajdhani}.match-lobby-footer button:disabled{filter:grayscale(.7);cursor:not-allowed;opacity:.55}.match-history{margin-top:14px;padding-top:12px;border-top:1px solid #34464e}.match-history>header small{color:#7f9097;font-size:8px}.match-history-list{display:grid;gap:6px}.history-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px;border:1px solid #34464e;border-radius:8px;background:#091419}.history-row>span{display:grid;place-items:center;min-width:38px;padding:4px;border-radius:5px;background:#2b1718;color:#ff8e84;font:900 8px Rajdhani}.history-row.win>span{background:#18301a;color:#9bea75}.history-row b,.history-row small{display:block}.history-row b{overflow:hidden;color:#e9f0f2;font:900 10px Rajdhani;text-overflow:ellipsis;white-space:nowrap}.history-row small{color:#74868d;font-size:7px}.history-row time{color:#87989f;font:800 7px Rajdhani;text-align:right}.history-row time b{margin-top:2px;color:#d6e0e4;font-size:9px}@keyframes screen-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes lobby-emote-pop{from{opacity:0;transform:scale(.45) rotate(-10deg)}to{opacity:1;transform:none}}@keyframes lobby-dance{from{transform:translateY(2px) rotate(-7deg)}to{transform:translateY(-7px) rotate(8deg)}}
@media(max-width:900px){.active-games-list{max-height:none}.match-dialog form{padding:15px}.match-field-grid,.match-switches{grid-template-columns:1fr}.match-lobby-screen{padding:10px}.match-lobby-head{grid-template-columns:auto 1fr;gap:9px;padding:11px}.match-lobby-head>button{grid-column:1/-1;width:100%}.match-lobby-logo{width:44px;height:44px}.lobby-team-showcase{grid-template-columns:1fr;gap:10px}.lobby-versus{order:2}.lobby-roster.veggie{order:3}.lobby-roster{min-height:0}.lobby-player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match-lobby-footer{position:sticky;z-index:3;bottom:8px}.match-lobby-footer button{padding:11px 14px}.active-games{margin-top:12px}.match-history-list{max-height:300px;overflow:auto}}
@media(max-width:430px){.lobby-player-grid{grid-template-columns:1fr 1fr}.lobby-player{min-height:140px}.lobby-player img{width:72px;height:82px}.lobby-empty-slot{min-height:140px}.join-team-options{grid-template-columns:1fr}.match-lobby-footer{display:block}.match-lobby-footer button{width:100%;margin-top:9px}}

/* Lobby emotes mirror the real arena timing: emoji bubbles expire and each dance plays once. */
.match-lobby-screen .lobby-player img{transform-origin:50% 88%}
.match-lobby-screen .lobby-dance-canvas{position:absolute;z-index:1;top:-16px;left:-16px;display:block;width:144px;height:144px;filter:drop-shadow(0 9px 6px #000a);pointer-events:none}
.match-lobby-screen .lobby-player-emote{position:absolute;z-index:2;top:-1px;left:50%;display:grid;place-items:center;width:45px;height:39px;border:2px solid #dce9ee;border-radius:50%;background:#f7fbfd;color:#071116;box-shadow:0 6px 13px #0008;font-size:25px;pointer-events:none;animation:lobby-emoji-bubble var(--lobby-emote-duration,1800ms) ease-out var(--lobby-emote-delay,0ms) 1 both}
.match-lobby-screen .lobby-player-emote:after{content:"";position:absolute;left:8px;bottom:-7px;width:10px;height:10px;border-right:2px solid #dce9ee;border-bottom:2px solid #dce9ee;background:#f7fbfd;transform:rotate(45deg)}
.match-lobby-screen .lobby-player.dancing img{will-change:transform;animation-duration:var(--lobby-emote-duration,1500ms);animation-delay:var(--lobby-emote-delay,0ms);animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:both}
.match-lobby-screen .lobby-player-stage{position:relative;display:grid;place-items:end center;width:112px;height:112px;margin:-8px auto -1px;overflow:visible}.match-lobby-screen .lobby-player-stage>img{height:100px}.match-lobby-screen .lobby-player-stage>.lobby-player-emote{top:0;left:76%}
.lobby-voice-guide{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:min(760px,100%);margin:10px auto 0;padding:9px 12px;border:1px solid #43616d;border-radius:11px;background:#0a1a21e8;box-shadow:0 10px 28px #0007;color:#dff8ff}.lobby-voice-guide>i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #5d7b87;border-radius:50%;background:#142b34;font-style:normal;font-size:18px}.lobby-voice-guide b,.lobby-voice-guide small{display:block}.lobby-voice-guide b{font:900 10px Rajdhani;letter-spacing:.8px}.lobby-voice-guide small{margin-top:2px;color:#8ea6af;font-size:8px}.lobby-voice-guide>em{color:#79dff9;font:900 8px Rajdhani;letter-spacing:.55px;text-align:right}.lobby-voice-guide[data-state="recording"]{border-color:#ff6459;background:#301719}.lobby-voice-guide[data-state="recording"]>i{border-color:#ff8a82;background:#5a1b1b;animation:lobby-voice-pulse .72s ease-in-out infinite}.lobby-voice-guide[data-state="recording"]>em{color:#ff9b94}.lobby-voice-guide[data-state="playing"]{border-color:#79dd57;background:#142717}.lobby-voice-guide[data-state="playing"]>em{color:#b8ff98}.lobby-voice-guide[data-state="error"]{border-color:#a8635e}.match-lobby-screen .lobby-player.self{cursor:pointer;touch-action:none}.lobby-player-voice{position:absolute;z-index:3;top:3px;left:3px;padding:3px 5px;border:1px solid #55717c;border-radius:8px;background:#0a1a21e8;color:#a8dbe9;font:900 6px Rajdhani;letter-spacing:.35px;opacity:0;transform:scale(.86);transition:opacity .15s,transform .15s}.lobby-player.self .lobby-player-voice,.lobby-player.voice-speaking .lobby-player-voice,.lobby-player.voice-recording .lobby-player-voice{opacity:1;transform:none}.lobby-player.voice-speaking{border-color:#70dd54;box-shadow:inset 0 0 22px #65f34d22,0 0 14px #55e13a35}.lobby-player.voice-speaking .lobby-player-voice{border-color:#7fe865;background:#183319;color:#d2ffc5}.lobby-player.voice-recording{border-color:#ff6459;box-shadow:inset 0 0 24px #ff554433,0 0 16px #ff4e443d;animation:lobby-voice-card-pulse .72s ease-in-out infinite}.lobby-player.voice-recording .lobby-player-voice{border-color:#ff8b83;background:#4b1717;color:#ffd0cc}
@keyframes lobby-voice-pulse{50%{transform:scale(1.12);box-shadow:0 0 16px #ff4f45aa}}@keyframes lobby-voice-card-pulse{50%{filter:brightness(1.12)}}
@media(max-width:650px){.lobby-voice-guide{grid-template-columns:auto 1fr;padding:8px 9px}.lobby-voice-guide>em{grid-column:1/-1;padding-top:6px;border-top:1px solid #314851;text-align:center}.lobby-player-voice{font-size:5px}.lobby-player:not(.self) .lobby-player-voice{padding:4px;font-size:0}.lobby-player:not(.self) .lobby-player-voice:first-letter{font-size:10px}}
.lobby-roster-status{justify-content:flex-end}.lobby-roster-status>b{color:#a7b5bb;font:900 12px Rajdhani}.lobby-bot-controls{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #40535c;border-radius:8px;background:#071116}.lobby-bot-controls button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid #52666f;border-radius:6px;background:#13242b;color:#fff;cursor:pointer;font:900 15px/1 Rajdhani}.lobby-bot-controls button:hover:not(:disabled){border-color:#70dfff;background:#1b3b47}.lobby-bot-controls button:disabled{cursor:not-allowed;opacity:.35}.lobby-bot-controls span{min-width:39px;color:#b9c8ce!important;font:900 7px Rajdhani!important;letter-spacing:.5px;text-align:center}
@media(max-width:650px){.lobby-roster>header{align-items:flex-start}.lobby-roster-status{display:grid!important;justify-items:end}.lobby-bot-controls{order:2;margin-top:4px}.lobby-roster-status>b{order:1}}
.match-lobby-screen .lobby-player.lobby-dance-cheer img{animation-name:lobby-dance-cheer}.match-lobby-screen .lobby-player.lobby-dance-loser img{animation-name:lobby-dance-loser}.match-lobby-screen .lobby-player.lobby-dance-backflip img{animation-name:lobby-dance-backflip}.match-lobby-screen .lobby-player.lobby-dance-cartwheel img{animation-name:lobby-dance-cartwheel}.match-lobby-screen .lobby-player.lobby-dance-spin360 img{animation-name:lobby-dance-spin}.match-lobby-screen .lobby-player.lobby-dance-zombie img{animation-name:lobby-dance-zombie}
.match-lobby-screen .lobby-emotes button{min-width:0;min-height:49px;padding:5px 2px;cursor:pointer}.match-lobby-screen .lobby-emotes button i,.match-lobby-screen .lobby-emotes button small{display:block}.match-lobby-screen .lobby-emotes button i{font:normal 19px/1 sans-serif}.match-lobby-screen .lobby-emotes button small{overflow:hidden;margin-top:4px;color:#c9d5da;font:800 6px/1 Rajdhani;text-overflow:ellipsis;white-space:nowrap}.match-lobby-screen .lobby-emotes button:hover{transform:translateY(-1px)}
@keyframes lobby-emoji-bubble{0%{opacity:0;transform:translate(-50%,10px) scale(.5) rotate(-8deg)}12%,72%{opacity:1;transform:translate(-50%,0) scale(1) rotate(0)}100%{opacity:0;transform:translate(-50%,-17px) scale(.88)}}
@keyframes lobby-dance-cheer{0%,100%{transform:none}16%,50%,83%{transform:translate(-9px,-13px) rotate(-7deg) scale(1.025,.975)}33%,66%{transform:translate(9px,0) rotate(7deg) scale(.985,1.015)}}
@keyframes lobby-dance-loser{0%,100%{transform:none}16%,50%,83%{transform:translate(-10px,-10px) rotate(-10deg)}33%,66%{transform:translate(10px,0) rotate(10deg)}}
@keyframes lobby-dance-backflip{0%{transform:none}25%{transform:translateY(-18px) rotate(-90deg)}50%{transform:translateY(-25px) rotate(-180deg)}75%{transform:translateY(-18px) rotate(-270deg)}100%{transform:rotate(-360deg)}}
@keyframes lobby-dance-cartwheel{0%{transform:none}20%{transform:translate(-10px,-8px) rotate(72deg)}50%{transform:translate(8px,-18px) rotate(180deg)}80%{transform:translate(-5px,-8px) rotate(288deg)}100%{transform:rotate(360deg)}}
@keyframes lobby-dance-spin{0%{transform:none}35%{transform:translateY(-9px) rotate(126deg) scale(.92,1.04)}70%{transform:translateY(-9px) rotate(252deg) scale(.92,1.04)}100%{transform:rotate(360deg)}}
@keyframes lobby-dance-zombie{0%,100%{transform:none}20%{transform:translate(-8px,2px) rotate(-5deg) scale(1.03,.94)}40%{transform:translate(8px,-4px) rotate(5deg) scale(.97,1.06)}60%{transform:translate(-7px,3px) rotate(-4deg) scale(1.04,.93)}80%{transform:translate(7px,-3px) rotate(4deg) scale(.98,1.05)}}

/* Combat and event feedback text is 30% smaller than the previous half-volume pass. */
.notice{font-size:21px}.notice span small:first-of-type{font-size:9.8px!important}.notice span small:last-of-type{font-size:7px!important}
.announcer b{font-size:clamp(4.9px,.56vw,8.4px)}.announcer small{font-size:clamp(2.45px,.2275vw,3.15px)}
.kill-feed-entry{font-size:3.5px}.kill-feed-entry b{font-size:3.85px}.kill-feed-entry span{font-size:2.45px}
@media(max-width:900px){.notice{font-size:14.7px}.notice span small{font-size:4.9px!important}.announcer b{font-size:clamp(3.5px,.98vw,5.25px)}.announcer small{font-size:2.1px}.kill-feed-entry{font-size:3.15px}.kill-feed-entry b{font-size:3.5px}}
