:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sky:#070a1f;--panel:#0000008c;--text:#fff;--shadow:#3a3a3a;--danger:#d8463b;--good:#f2c230}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--sky);width:100%;height:100%;color:var(--text);-webkit-user-select:none;user-select:none;font-family:Trebuchet MS,Segoe UI,sans-serif;overflow:hidden}#app{width:100vw;height:100vh;position:relative}.game-canvas{touch-action:none;display:block;position:absolute;inset:0}.pl{pointer-events:none;z-index:10;text-shadow:2px 2px 0 var(--shadow);font-weight:700;position:absolute;inset:0}.pl__top{background:var(--panel);align-items:center;gap:18px;padding:8px 16px;display:none;position:absolute;top:38px;left:50%;transform:translate(-50%)}.pl--playing .pl__top{display:flex}.pl__alive{letter-spacing:2px;white-space:nowrap;font-size:16px}.pl__round{white-space:nowrap;letter-spacing:2px;font-variant-numeric:tabular-nums;text-align:right;min-width:70px;font-size:26px}.pl__players{flex-direction:column;gap:2px;min-width:150px;list-style:none;display:none;position:absolute;top:38px;right:12px}.pl--playing .pl__players{display:flex}.pl__player{background:var(--panel);align-items:center;gap:8px;padding:3px 8px;font-size:13px;display:flex}.pl__player--mine{outline-offset:-2px;outline:2px solid #ffffffb3}.pl__player--out{opacity:.5}.pl__player--out .pl__player-name{text-decoration:line-through}.pl__player--offline .pl__player-name{font-style:italic}.pl__player-dot{width:12px;height:12px;box-shadow:2px 2px 0 var(--shadow);flex:none}.pl__player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;max-width:120px;overflow:hidden}.pl__player-rounds{font-variant-numeric:tabular-nums;font-size:12px}.pl__feed{flex-direction:column;gap:4px;display:flex;position:absolute;top:64px;left:12px}.pl__feed-item{background:var(--panel);padding:4px 10px;font-size:14px;transition:opacity .4s}.pl__feed-item span{opacity:.75;font-size:12px}.pl__feed-item.is-gone{opacity:0}.pl__banner{text-align:center;background:var(--panel);max-width:92vw;padding:12px 26px;position:absolute;top:30%;left:50%;transform:translate(-50%)}.pl__banner-title{letter-spacing:2px;text-transform:uppercase;font-size:34px}.pl__banner--bad .pl__banner-title{color:#ff8a6b}.pl__banner--good .pl__banner-title{color:var(--good)}.pl__banner-sub{margin-top:4px;font-size:15px}.pl-controls{pointer-events:auto;display:none;position:absolute;bottom:26px;right:22px}.pl--playing:not(.pl--spectating) .pl-controls{align-items:flex-end;gap:12px}@media (pointer:coarse){.pl--playing:not(.pl--spectating) .pl-controls{display:flex}}.pl-controls__jump{width:96px;height:96px;color:var(--text);font:inherit;letter-spacing:1px;text-shadow:2px 2px 0 var(--shadow);touch-action:none;background:#00000059;border:3px solid #fffc;font-size:15px}.pl-controls__jump:active{background:#ffffff4d}.pl-controls__push{width:80px;height:80px;color:var(--text);font:inherit;letter-spacing:1px;text-shadow:2px 2px 0 var(--shadow);touch-action:none;isolation:isolate;background:#00000059;border:3px solid #fffc;font-size:13px;position:relative;overflow:hidden}.pl-controls__push:before{content:"";z-index:-1;transform-origin:top;transform:scaleY(var(--cd,0));background:#0000008c;position:absolute;inset:0}.pl-controls__push.is-cooling{color:#ffffff80}.pl-controls__push:active{background:#ffffff4d}.pl-stick{background:#0000002e;border:3px solid #ffffff8c;width:104px;height:104px;position:absolute;top:-52px;left:-52px}.pl-stick__knob{background:#ffffffb3;width:34px;height:34px;position:absolute;top:32px;left:32px}.countdown{pointer-events:none;z-index:25;letter-spacing:6px;color:#fff;text-shadow:8px 8px 0 var(--shadow);opacity:0;justify-content:center;align-items:center;font-size:150px;font-weight:700;display:flex;position:absolute;inset:0}.countdown.is-shown{animation:.75s ease-out countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.12)}40%{transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.pl__overlay{pointer-events:auto;z-index:30;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.pl__overlay[hidden]{display:none}.pl__card{text-align:center;background:#000000b8;border:3px solid #ffffff40;width:min(420px,100%);padding:22px 24px}.pl__card-title{letter-spacing:2px;margin-bottom:10px;font-size:30px}.pl__card-body{font-size:15px;font-weight:400;line-height:1.45}.pl__card-btn{background:var(--danger);color:#fff;font:inherit;letter-spacing:1px;text-shadow:2px 2px 0 var(--shadow);cursor:pointer;border:3px solid #fff;margin-top:16px;padding:10px 20px;font-weight:700}.pl__results{text-align:left;flex-direction:column;gap:4px;list-style:none;display:flex}.pl__result{background:#ffffff12;align-items:center;gap:10px;padding:5px 10px;font-weight:700;display:flex}.pl__result--mine{outline:2px solid var(--good);outline-offset:-2px}.pl__result-pos{width:18px}.pl__result-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pl__result-value{font-variant-numeric:tabular-nums}@media (width<=640px){.pl__top{gap:10px;padding:6px 10px}.pl__alive{letter-spacing:1px;font-size:12px}.pl__round{min-width:52px;font-size:20px}.countdown{font-size:108px}.pl__banner-title{font-size:24px}.pl__players{min-width:0}.pl__player-name{max-width:70px}.pl__feed{top:84px}}.pl__call{background:var(--panel);flex-direction:column;align-items:center;gap:6px;min-width:220px;padding:10px 18px 12px;display:none;position:absolute;top:96px;left:50%;transform:translate(-50%)}.pl--playing .pl__call{display:flex}.pl__call--idle{visibility:hidden}.pl__swatch{width:64px;height:64px;box-shadow:4px 4px 0 var(--shadow);border:4px solid #ffffffd9}.pl__call--dance .pl__swatch{display:none}.pl__call-text{letter-spacing:4px;font-size:30px}.pl__call--dance .pl__call-text{font-size:22px;animation:.5s steps(2,end) infinite pl-beat}@keyframes pl-beat{50%{transform:scale(1.12)}}.pl__bar{background:#fff3;width:100%;height:8px}.pl__call--dance .pl__bar,.pl__call--drop .pl__bar{visibility:hidden}.pl__bar-fill{transform-origin:0;background:#fff;height:100%}@media (width<=640px){.pl__call{min-width:170px;padding:8px 12px;top:92px}.pl__swatch{width:48px;height:48px}.pl__call-text{font-size:22px}}
