:root{--bg:#1b1033;--ink:#fff7e6;--green:#9bff4a;--yellow:#ffd23f;--pink:#ff5fa2;--shadow:0 5px 0 #00000073}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;font-family:Trebuchet MS,Comic Sans MS,system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0}.app{position:fixed;inset:0}.canvas{touch-action:none;position:absolute;inset:0}.overlay{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:absolute;inset:0}.overlay>*{pointer-events:auto}.home{text-align:center;background:radial-gradient(circle at 50% 40%,#0006,#000a)}.lobbycard{justify-content:flex-end;padding-bottom:16px}.logo{color:var(--yellow);text-shadow:0 6px #c2410c,0 12px #0006;letter-spacing:2px;margin:0;font-family:Impact,Arial Black,sans-serif;font-size:clamp(3rem,12vw,6rem);line-height:.9;transform:rotate(-3deg)}.logo span{color:var(--green);text-shadow:0 6px #166534,0 12px #0006;font-size:.62em;display:block;transform:rotate(2deg)}.tag{text-shadow:0 2px 6px #000a;max-width:520px;margin:0;font-weight:700}.panel{box-shadow:var(--shadow);background:#1b1033ee;border:3px solid #ffffff30;border-radius:22px;flex-direction:column;align-items:center;gap:10px;width:min(100%,360px);padding:16px;display:flex}.panel.wide{width:min(100%,640px);max-height:62vh;overflow:auto}.panel h2{color:var(--yellow);letter-spacing:1px;margin:0;font-family:Impact,sans-serif}.panel.win h2{color:var(--green)}.inp{width:100%;color:var(--ink);font:inherit;text-align:center;background:#0007;border:2px solid #ffffff40;border-radius:12px;outline:none;padding:12px;font-size:1.05rem;font-weight:800}.inp:focus{border-color:var(--green)}.inp.code{letter-spacing:6px;text-transform:uppercase}.joinrow{gap:8px;width:100%;display:flex}.or{opacity:.65;font-size:.85rem}.err{color:var(--pink);margin:0;font-weight:800}.help{text-align:left;opacity:.92;margin:0;font-size:.88rem;line-height:1.45}.wait{opacity:.8;margin:0}.foot{opacity:.55;margin:0;font-size:.8rem}.btn{background:var(--green);color:#1b1033;box-shadow:var(--shadow);border-radius:14px;padding:12px 20px;font-size:1.05rem;font-weight:900;transition:transform 80ms}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(4px);box-shadow:0 1px #0007}.btn.big{width:100%;padding:14px;font-size:1.2rem}.chip{background:#0007;border:2px solid #ffffff30;border-radius:999px;padding:6px 11px;font-size:.8rem;font-weight:800}.chip:hover{background:#000a}.levels{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;width:100%;display:grid}.lv{text-align:left;background:#ffffff14;border:3px solid #0000;border-radius:14px;flex-direction:column;gap:3px;padding:10px;display:flex}.lv small{opacity:.8;font-size:.75rem}.lv em{color:var(--yellow);font-size:.75rem;font-style:normal;font-weight:800}.lv.sel{border-color:var(--green);background:#9bff4a22}.lv:disabled{cursor:default}.topleft{flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;left:10px}.room{background:#0008;border-radius:14px;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;display:flex}.room b{letter-spacing:4px;color:var(--yellow);font-size:1.3rem}.plist{background:#0006;border-radius:12px;margin:0;padding:6px 10px;font-size:.8rem;font-weight:700;list-style:none}.plist li{align-items:center;gap:6px;padding:1px 0;display:flex}.plist i{border-radius:50%;width:11px;height:11px;display:inline-block}.topmid{text-align:center;width:min(46vw,420px);position:absolute;top:10px;left:50%;transform:translate(-50%)}.lvl{text-shadow:0 2px 4px #000a;margin-bottom:4px;font-weight:900}.track{background:#0008;border:2px solid #fff4;border-radius:99px;height:12px;position:relative}.track u{background:var(--green);width:3px;position:absolute;top:-3px;bottom:-3px}.boat{font-size:1.4rem;transition:left .15s;position:absolute;top:-17px;transform:translate(-50%)}.topright{flex-direction:column;align-items:flex-end;gap:4px;width:190px;display:flex;position:absolute;top:10px;right:10px}.stat{background:#0007;border-radius:99px;padding:3px 8px;font-size:.75rem;font-weight:800}.meter{background:#0007;border-radius:99px;align-items:center;gap:8px;width:100%;padding:5px 10px;font-size:.8rem;font-weight:900;display:flex}.meter span{white-space:nowrap}.bar{background:#0009;border-radius:99px;flex:1;height:12px;overflow:hidden}.bar>div{border-radius:99px;height:100%;transition:width .1s}.bottom{pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:absolute;bottom:10px;left:0;right:0}.bottom>*{pointer-events:auto}.meter.wide{width:min(100%,360px)}.emotes{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pad{align-items:stretch;gap:10px;display:flex}.pbtn{width:64px;box-shadow:var(--shadow);touch-action:none;background:#ffffff30;border-radius:18px;font-size:1.6rem;font-weight:900}.pbtn:active{background:#fff5;transform:translateY(4px)}.fartbtn{color:#3b1f00;touch-action:none;background:linear-gradient(#ffe066,#ffb703);border-radius:22px;flex-direction:column;gap:2px;width:min(60vw,330px);padding:12px;display:flex;box-shadow:0 8px #b45309}.fartbtn:active{color:#fff;background:linear-gradient(#ff9aa2,#ff5fa2);transform:translateY(6px);box-shadow:0 2px #b45309}.fartbtn small{opacity:.7;font-weight:700}.count{text-align:center;color:var(--yellow);text-shadow:0 8px #c2410c,0 14px #0006;pointer-events:none;font-family:Impact,sans-serif;font-size:8rem;animation:.5s pop;position:absolute;top:28%;left:0;right:0}.banner{background:var(--yellow);color:#1b1033;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;border-radius:16px;padding:10px 20px;font-size:clamp(1.1rem,4vw,1.8rem);font-weight:900;animation:2s forwards banner;position:absolute;top:20%;left:50%;transform:translate(-50%)}.banner.bad{background:var(--pink);color:#fff}.banner.together{background:var(--green)}.feed{text-shadow:0 2px 4px #000;pointer-events:none;font-size:.95rem;font-weight:900;position:absolute;bottom:150px;left:12px}.abort{position:absolute;bottom:10px;right:10px}.hitflash{pointer-events:none;background:radial-gradient(circle,#0000 40%,#f006);animation:.4s forwards fade;position:absolute;inset:0}.big-stars{letter-spacing:6px;font-size:2.6rem}.resline{text-align:center;margin:0;font-weight:800}div.tag{color:#fff;white-space:nowrap;background:#000a;border:2px solid;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:900}@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes banner{0%{opacity:0;transform:translate(-50%,14px)scale(.7)}10%{opacity:1;transform:translate(-50%)scale(1.08)}15%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-20px)}}@keyframes fade{to{opacity:0}}@media (max-width:640px){.topright{width:150px;top:56px}.topmid{text-align:left;width:62vw;top:58px;left:4px;transform:none}.count{font-size:5rem}.plist{display:none}.feed{bottom:190px}}.chip.mode{background:#1d4ed8;border-color:#93c5fd}.chip.mode.jet{background:#c2410c;border-color:#fdba74}.chip small{opacity:.7}.fartbtn.jet{background:linear-gradient(#ffb36b,#ff6a2a);box-shadow:0 8px #9a3412}.fartbtn.jet:active{background:linear-gradient(#ff7a7a,#e0245e);box-shadow:0 2px #9a3412}.fxrow{gap:6px;display:flex}.fx{border-radius:99px;padding:3px 9px;font-size:.8rem;font-weight:900;animation:.8s infinite pulse2}.fx.shield{color:#06283d;background:#4dc3ff}.fx.turbo{color:#3b1f00;background:#ffb020}@keyframes pulse2{50%{transform:scale(1.08)}}.ic{vertical-align:-.2em;flex:none;display:inline-block}.chip,.btn,.stat,.fx,.meter span,.lvl,.banner,.feed div,.lg{align-items:center;gap:5px;display:inline-flex}.feed div{display:flex}.btn{justify-content:center}.star{color:#5b4a7a}.star.on{color:var(--yellow);filter:drop-shadow(0 3px #b45309)}.big-stars{gap:6px;display:flex}.panel h2{align-items:center;gap:8px;display:inline-flex}.legend{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.lg{border-radius:99px;padding:3px 9px;font-size:.75rem;font-weight:800}.lg.bad{color:#ffb3d1;background:#ff5fa233}.lg.good{color:#c9ff9a;background:#9bff4a22}kbd{background:#000a;border:1px solid #fff4;border-radius:6px;padding:1px 6px;font-size:.8em}.padcol{flex-direction:column;gap:8px;display:flex}.padcol .pbtn{flex:1;place-items:center;width:64px;display:grid}.pbtn.mv{background:#3b82f655}.boat{display:flex}.plist li{gap:5px}.panel.wide>.btn.big{flex:none;position:sticky;bottom:-2px}.gasrow{align-items:center;gap:8px;width:min(100%,520px);display:flex}.gasrow .meter.wide{flex:1;width:auto}.chip.tank{white-space:nowrap}.chip.tank:disabled{opacity:.5;cursor:not-allowed}.chip.tank.ready{background:#16a34a;border-color:#86efac;animation:.9s infinite pulse2}.alt{background:#0009;border-radius:99px;align-items:center;gap:6px;padding:4px 14px;font-size:1.2rem;font-weight:900;display:inline-flex;position:absolute;top:96px;left:50%;transform:translate(-50%)}.alt.air{background:#e11d2e;animation:.4s infinite pulse2}.lg.fun{color:#b9efff;background:#46d6ff33}@media (max-width:640px){.alt{top:112px}.gasrow{flex-wrap:wrap;justify-content:center}}html,body{overscroll-behavior:none;touch-action:none;-webkit-touch-callout:none}.app button{touch-action:manipulation}.shout-toggle{display:none}.touch .shout-toggle{display:inline-flex}.touch .chip.say{display:none}.touch.shouts-open .chip.say{display:inline-flex}.touch .bottom{bottom:calc(8px + env(safe-area-inset-bottom));padding:0 8px}.touch .pad{justify-content:space-between;align-items:flex-end;width:100%}.touch .padcol{flex-direction:row;gap:6px}.touch .pad{grid-template-columns:auto 1fr auto;grid-template-areas:"aimL fart aimR";gap:8px;display:grid}.touch .padcol .pbtn{flex:none;width:58px;height:58px}.touch .padcol{flex-direction:column}.touch .fartbtn{border-radius:28px;justify-content:center;width:auto;min-height:124px}.touch .fartbtn b{font-size:1.05rem}.touch .fartbtn small{display:none}.touch .topleft{top:calc(6px + env(safe-area-inset-top));left:6px}.touch .room{gap:4px;padding:4px 8px}.touch .room b{letter-spacing:2px;font-size:1rem}.touch .room>span,.touch .plist{display:none}.touch .topright{top:calc(48px + env(safe-area-inset-top));width:150px;right:6px}.touch .topmid{top:calc(48px + env(safe-area-inset-top));text-align:left;width:calc(100% - 170px);left:6px;transform:none}.touch .lvl{font-size:.8rem}.touch .alt{top:calc(100px + env(safe-area-inset-top))}.touch .feed{font-size:.85rem;bottom:230px}.touch .banner{white-space:normal;text-align:center;max-width:92vw;font-size:1rem;top:26%}.touch .count{font-size:5rem}.touch .gasrow{width:100%}.touch .emotes{gap:4px}.touch .emotes .chip{padding:5px 9px;font-size:.75rem}@media (orientation:landscape) and (max-height:520px){.touch .fartbtn{min-height:92px}.touch .padcol .pbtn{width:50px;height:44px}.touch .topmid{width:40vw}.touch .feed{bottom:150px}}.panel.wide{touch-action:pan-y;-webkit-overflow-scrolling:touch}.modes{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.md{background:#ffffff14;border:3px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px;display:flex}.md small{opacity:.8;font-size:.75rem}.md.sel{border-color:var(--yellow);background:#ffd23f22}.md:disabled{cursor:default}.teams{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;width:100%;display:grid}.tm{text-align:left;opacity:.8;background:#ffffff10;border:3px solid;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.tm.sel{opacity:1;background:#ffffff26;box-shadow:0 0 0 3px #fff3}.tm .sw{border-radius:99px;width:22px;height:10px}.tm small{opacity:.85;font-size:.72rem}.tm em{color:var(--yellow);font-size:.7rem;font-style:normal;font-weight:800}.boat.me{z-index:2;filter:drop-shadow(0 0 4px #fff)}.grace{color:var(--pink)}.endless{background:#0008;border-radius:99px;justify-content:center;align-items:center;gap:10px;padding:3px 12px;font-weight:900;display:flex}.endless b{color:var(--yellow);font-size:1.2rem}.endless small{opacity:.8;align-items:center;gap:3px;display:inline-flex}.lives{color:#555;gap:2px;display:inline-flex}.lives .on{color:#ff4d6d}.standings{background:#0008;border-radius:12px;width:100%;margin:0;padding:5px 8px;font-size:.75rem;font-weight:800;list-style:none}.standings li{align-items:center;gap:5px;display:flex}.standings li.me{color:var(--yellow)}.standings i{border-radius:50%;width:9px;height:9px;display:inline-block}.standings em{opacity:.85;align-items:center;gap:3px;margin-left:auto;font-style:normal;display:inline-flex}.results{border-collapse:collapse;width:100%;font-size:.9rem;font-weight:800}.results td{border-bottom:1px solid #fff2;padding:5px 6px}.results tr.me{color:var(--yellow)}.results i{border-radius:50%;width:10px;height:10px;display:inline-block}.results .names{opacity:.8;font-size:.8rem;font-weight:600}.bigdist{color:var(--yellow);margin:0;font-family:Impact,sans-serif;font-size:3.4rem}.touch .standings{font-size:.68rem}
