@font-face{font-family:Passion One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/passion-one-latin-400-normal-CI7ztJFy.woff2) format("woff2"),url(/assets/passion-one-latin-400-normal-CjMhWtzO.woff) format("woff")}:root{--ink: #0b1512;--plate: #262b57;--plate-lip: #14173a;--well: #1b1f47;--raised: #3b4182;--raised-lip: #272c63;--hair: rgba(255, 255, 255, .14);--text: #fffaf0;--muted: #c2c7ea;--accent: #ffc531;--accent-deep: #e08a00;--alt: #6f61ff;--alt-deep: #4336c9;--danger: #ff7566;--goo: #7fd13b;--soft-shadow: 0 2px 8px rgba(8, 10, 30, .55);--display: "Passion One", Impact, "Arial Narrow", sans-serif;font-family:ui-rounded,SF Pro Rounded,Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif;font-weight:700}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--text);overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}input{user-select:text;-webkit-user-select:text}#app{position:fixed;inset:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#game,#overlay{position:absolute;inset:0;width:100%;height:100%;display:block}#overlay{pointer-events:none}body[data-phase=playing][data-input=desktop] #app{cursor:none}[hidden]{display:none!important}#hud{position:absolute;inset:0;pointer-events:none;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em}.hud-tl{position:absolute;top:calc(12px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left))}#wave{font-size:24px;line-height:1.1;color:var(--text);text-shadow:var(--soft-shadow)}.hud-tr{position:absolute;top:calc(10px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));display:flex;flex-direction:column;align-items:flex-end;text-shadow:var(--soft-shadow)}.hud-tr .label{font-size:14px;color:var(--muted)}#score{font-size:38px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}body[data-sky=bright][data-phase=playing] :is(#wave,#score,.hud-tr .label,#announce){color:var(--plate-lip);text-shadow:0 1px 6px rgba(255,255,255,.5)}#weapon{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 14px;min-width:176px;padding:9px 16px 11px;border-radius:16px;background:var(--plate);box-shadow:1px 1px 0 var(--plate-lip),2px 2px 0 var(--plate-lip),3px 3px 0 var(--plate-lip),4px 4px 0 var(--plate-lip),10px 14px 22px #080a1e59;font-size:20px;line-height:1.1;white-space:nowrap}#weapon-ammo{color:var(--muted);font-size:22px;font-variant-numeric:tabular-nums}#weapon.special #weapon-name,#weapon.special #weapon-ammo{color:var(--accent)}#weapon.low #weapon-ammo{color:var(--danger)}#ammo-bar{flex:0 0 100%;height:6px;border-radius:3px;background:var(--well);overflow:hidden}#ammo-fill{height:100%;border-radius:3px;background:var(--muted);transform-origin:left}#weapon.special #ammo-fill{background:var(--accent)}#weapon.low #ammo-fill{background:var(--danger)}#announce{position:absolute;top:20%;left:0;right:0;text-align:center;font-size:clamp(34px,7vw,64px);line-height:1.1;text-shadow:0 3px 14px rgba(8,10,30,.6);opacity:0;transform:translateY(10px) scale(.92);transition:opacity .2s,transform .3s cubic-bezier(.3,1.6,.5,1)}#announce.show{opacity:1;transform:none}body[data-phase=paused] #announce{opacity:0}#pause-btn{display:none;position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;width:44px;height:44px;margin-left:-22px;padding:0;border:none;border-radius:50%;background:var(--plate);box-shadow:1px 1px 0 var(--plate-lip),2px 2px 0 var(--plate-lip),3px 3px 0 var(--plate-lip);pointer-events:auto}#pause-btn:before{content:"";position:absolute;left:50%;top:50%;width:4px;height:14px;margin:-7px 0 0 -7px;border-radius:2px;background:var(--text);box-shadow:10px 0 0 var(--text)}body[data-input=touch][data-phase=playing] #pause-btn{display:block}#hurt{position:absolute;inset:0;box-shadow:inset 0 0 120px 30px #e2533fbf;opacity:0}#hurt.on{animation:hurt .45s ease-out}@keyframes hurt{0%{opacity:1}to{opacity:0}}#stick,#fire{display:none;pointer-events:none}body[data-input=touch] #fire,body[data-input=touch] #stick{display:block}body[data-touch-learned] #stick,body[data-touch-learned] #fire{opacity:.2}#stick{position:absolute;left:var(--sx, calc(96px + env(safe-area-inset-left)) );top:var(--sy, calc(100% - 116px - env(safe-area-inset-bottom)) );width:124px;height:124px;margin:-62px 0 0 -62px;border-radius:50%;border:3px solid rgba(255,246,216,.35);background:#0b151259;opacity:.6}#stick.active{opacity:1}#knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff6d8bf}#fire{position:absolute;left:clamp(calc(50% + 64px),var(--fx, 100%),calc(100% - 72px - env(safe-area-inset-right)));top:clamp(calc(110px + env(safe-area-inset-top)),var(--fy, 100%),calc(100% - 96px - env(safe-area-inset-bottom)));width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;border:3px solid rgba(240,180,41,.55);background:#f0b4291f}#fire.active{border-color:#ffd978f2;background:#f0b42966;transform:scale(.94)}#shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#16183e59,#0e0f2cd1);transition:opacity .25s}body[data-phase=playing] #shade{opacity:0}.panel{position:absolute;left:50%;top:50%;translate:-50% -50%;width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;padding:26px 24px 24px;border-radius:28px;background:var(--plate);box-shadow:1px 1px 0 var(--plate-lip),2px 2px 0 var(--plate-lip),3px 3px 0 var(--plate-lip),4px 4px 0 var(--plate-lip),5px 5px 0 var(--plate-lip),6px 6px 0 var(--plate-lip),7px 7px 0 var(--plate-lip),8px 8px 0 var(--plate-lip),22px 34px 60px #080a1e80;text-align:center;display:flex;flex-direction:column;gap:12px;animation:pop .28s cubic-bezier(.3,1.5,.5,1)}@keyframes pop{0%{opacity:0;scale:.94}}.panel.bare{width:min(320px,calc(100vw - 32px));padding:6px;background:none;border:none;box-shadow:none}.panel h2{margin:0 0 2px;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:36px;line-height:1.05;color:var(--text);overflow-wrap:anywhere}.panel h2.bad{color:var(--danger);font-size:44px}.tag{margin:0;color:var(--muted)}.status{margin:0;min-height:1.3em;font-size:16px;color:var(--muted)}.bare .status{color:var(--text);text-shadow:var(--soft-shadow)}.status:empty{display:none}.field{position:relative;display:block}#name{display:block;width:calc(100% - 2px);font:inherit;font-weight:800;font-size:19px;text-align:left;color:#1d2147;background:#fffaf0;border:2px solid transparent;border-radius:18px;height:58px;padding:22px 18px 6px;outline:none;box-shadow:1px 1px #cfc5a8,1px 2px #cfc5a8,2px 3px #cfc5a8,2px 4px #cfc5a8;margin-bottom:4px}#name:focus{border-color:var(--accent)}.field span{position:absolute;left:20px;top:18px;font-size:19px;line-height:22px;color:#5b5f88;pointer-events:none;transform-origin:left top;transition:transform .15s}#name:focus+span,#name:not(:placeholder-shown)+span{transform:translateY(-11px) scale(.72)}.btn{--lip: var(--raised-lip);font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:26px;line-height:1;color:var(--text);background:var(--raised);border:none;border-radius:18px;min-height:54px;padding:10px 16px;cursor:pointer;box-shadow:1px 1px 0 var(--lip),1px 2px 0 var(--lip),2px 3px 0 var(--lip),2px 4px 0 var(--lip);margin:0 2px 4px 0;transition:translate .08s ease-out}.btn.go{--lip: var(--accent-deep);background:var(--accent);color:#3b2400}.btn.alt{--lip: var(--alt-deep);background:var(--alt);color:#fff}.btn:not(:disabled):hover{filter:brightness(1.06)}.btn:not(:disabled):active{translate:1px 3px;box-shadow:1px 1px 0 var(--lip);transition:none}.btn:focus-visible,#pause-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}button:disabled{opacity:.5;cursor:default}#final-score{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:84px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:17px}.list:empty{display:none}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;border-radius:14px;background:var(--well)}.list b{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;font-size:19px;color:var(--accent);font-variant-numeric:tabular-nums}.list .muted{justify-content:center;color:var(--muted)}.who{display:inline-flex;align-items:center;gap:10px;min-width:0}.dot{flex:none;width:14px;height:14px;border-radius:50%}#lobby-players b{font-size:15px;padding:3px 10px 2px;border-radius:999px;background:var(--plate)}#lobby-players b:empty{display:none}.maps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 10px 6px 6px;font:inherit;font-size:17px;text-align:left;color:var(--text);background:var(--well);border:2px solid transparent;border-radius:14px;cursor:pointer}.map:hover{border-color:var(--hair)}.map[aria-checked=true]{border-color:var(--accent);background:var(--raised)}.map:focus-visible{outline:3px solid #fff;outline-offset:2px}.map-art{flex:none;width:34px;height:34px;border-radius:10px}#lobby-map:empty{display:none}.list-label{margin:0;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-size:18px;color:var(--goo)}.list-label:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--goo);animation:live 1.6s ease-in-out infinite}@keyframes live{50%{opacity:.35}}#rooms{max-height:40vh;overflow:auto}#rooms .room{padding:8px 8px 8px 14px;border:2px solid var(--hair);cursor:pointer;text-align:left}#rooms .room:not(.full):hover{border-color:var(--accent)}#rooms .room.full{cursor:default}.room-text{display:flex;flex-direction:column;gap:2px;min-width:0}.room-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-info{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.btn.small{flex:none;font-size:20px;min-height:40px;min-width:76px;padding:6px 14px}@media (orientation: landscape) and (max-height: 480px){.panel{padding:16px 20px;gap:9px;border-radius:22px}.panel h2{font-size:28px}.panel h2.bad{font-size:32px}.btn{min-height:46px;padding:6px 16px}#name{height:50px;padding-top:19px}.field span{top:14px}#final-score{font-size:52px}.btn{font-size:23px}.btn.small{font-size:19px;min-height:36px}#lobby{gap:6px}.maps{grid-template-columns:repeat(4,1fr);gap:6px}.map{gap:6px;min-height:36px;padding:4px 6px 4px 5px;font-size:14px;border-radius:12px}.map-art{width:20px;height:20px;border-radius:6px}#map-pick:not([hidden])+#lobby-map{display:none}#pause-map-label{display:none}}@media (prefers-reduced-motion: reduce){.panel{animation:none}.btn,#announce,#shade,.field span{transition:none}.list-label:before{animation:none}}
