@font-face{font-family:Retro Gaming;src:url(/assets/build/Retro%20Gaming-B_OnpYhl.ttf)format("truetype");font-weight:400;font-style:normal}:root{--hud-side-width:268px;--hud-duos-health-height:84px;--hud-bottom-tray:56px}html,body{width:100%;height:100%;margin:0;padding:0;font-family:Retro Gaming,sans-serif;overflow:hidden}canvas,button{font-family:Retro Gaming,sans-serif}body{background:var(--ui-void);color:var(--ui-text);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body[data-game-phase=game-over] #pauseButton,body[data-game-phase=game-over] .performance-hud,body[data-game-phase=game-over] .difficulty-banner,body[data-game-phase=game-over] .major-boss-bar,body[data-game-phase=game-over] .touch-controls,body[data-game-phase=game-over] .streak-banner,body[data-game-phase=game-over] .hud-toast,body[data-game-phase=paused] .touch-controls,body:not([data-game-phase=playing]) .controls-card,body:not([data-game-phase=playing]) .start-hint,body[data-game-mode=ranked] #pauseButton{display:none!important}canvas{background:#3f4548;display:block}#gameCanvas{image-rendering:pixelated}#lives{top:max(var(--ui-hud-inset), env(safe-area-inset-top));left:max(var(--ui-hud-inset), env(safe-area-inset-left));z-index:10;align-items:center;gap:calc(var(--ui-pixel) * 2);min-height:var(--ui-hud-row);max-width:calc(50vw - var(--ui-hud-inset) * 2);padding:0 calc(var(--ui-pixel) * 3);display:flex;position:fixed;overflow:hidden}#lives[data-lives="1"]{border-image-source:var(--ui-hud-frame-red);background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, #280a08e0;background-clip:padding-box}#lives:empty,body[data-game-mode=duos] #lives{display:none}.hud-heart{--hud-heart-pixel:var(--ui-pixel);box-sizing:border-box;width:calc(var(--hud-heart-pixel) * 11);height:calc(var(--hud-heart-pixel) * 10);padding-left:calc(var(--hud-heart-pixel) * 11);image-rendering:pixelated;filter:drop-shadow(0 var(--hud-heart-pixel) 0 #00000059);-webkit-user-drag:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 10' shape-rendering='crispEdges'%3E%3Cpath fill='%231c0610' d='M1 0h3v1H1zM7 0h3v1H7zM0 1h1v1H0zM4 1h1v1H4zM6 1h1v1H6zM10 1h1v1H10zM0 2h1v1H0zM5 2h1v1H5zM10 2h1v1H10zM0 3h1v1H0zM10 3h1v1H10zM0 4h1v1H0zM10 4h1v1H10zM1 5h1v1H1zM9 5h1v1H9zM2 6h1v1H2zM8 6h1v1H8zM3 7h1v1H3zM7 7h1v1H7zM4 8h1v1H4zM6 8h1v1H6zM5 9h1v1H5z'/%3E%3Cpath fill='%23ff5a3c' d='M1 1h2v1H1zM7 1h1v1H7zM1 2h1v1H1zM6 2h1v1H6zM1 3h1v1H1z'/%3E%3Cpath fill='%23d8212a' d='M3 1h1v1H3zM8 1h2v1H8zM3 2h2v1H3zM7 2h3v1H7zM2 3h7v1H2zM1 4h7v1H1zM2 5h6v1H2zM3 6h4v1H3zM4 7h1v1H4z'/%3E%3Cpath fill='%23ffd9c7' d='M2 2h1v1H2z'/%3E%3Cpath fill='%238c0c16' d='M9 3h1v1H9zM8 4h2v1H8zM8 5h1v1H8zM7 6h1v1H7zM5 7h2v1H5zM5 8h1v1H5z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;flex:none;overflow:hidden}.hud-heart--breaking{animation:.52s steps(6,end) forwards hud-heart-break}#lives[data-lives="1"] .hud-heart:not(.hud-heart--breaking){animation:.9s ease-in-out infinite hud-heartbeat}@keyframes hud-heart-break{0%{opacity:1;filter:brightness(2.2);transform:none}35%{opacity:1;transform:translateY(-4px)scale(1.2)}to{opacity:0;transform:translateY(8px)scale(.5)rotate(18deg)}}@keyframes hud-heartbeat{0%,60%,to{transform:scale(1)}15%{transform:scale(1.16)}30%{transform:scale(.96)}45%{transform:scale(1.1)}}.hud-cluster{z-index:10;align-items:stretch;gap:var(--ui-hud-gap);pointer-events:none;display:flex;position:fixed}.hud-cluster>*{pointer-events:auto}.hud-cluster--top-right{top:max(var(--ui-hud-inset), env(safe-area-inset-top));right:max(var(--ui-hud-inset), env(safe-area-inset-right))}#score{min-width:calc(var(--ui-type-value) * 4.6);height:var(--ui-hud-row);color:var(--ui-gold);font-size:var(--ui-type-value);text-shadow:2px 2px 0 var(--ui-frame);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0 12px;line-height:.8;display:flex}#score:before{content:"SCORE";color:var(--ui-text-muted);font-size:var(--ui-type-label);letter-spacing:1px;text-shadow:none;line-height:1}#pauseButton{width:var(--ui-hud-row);height:var(--ui-hud-row);border:3px solid #0000;border-image:var(--ui-hud-frame) 3 / 3px stretch;background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, var(--ui-hud-bg);box-shadow:inset 0 1px 0 var(--ui-hud-highlight), 0 5px 0 -3px var(--ui-hud-shadow);color:var(--ui-amber);cursor:pointer;background-clip:padding-box;border-radius:0;place-items:center;padding:0;transition:transform 80ms steps(2,end);display:grid}#pauseButton:hover{border-image-source:var(--ui-hud-frame-amber);background:#3b2706d9 padding-box padding-box}#pauseButton:active{box-shadow:inset 0 1px 0 var(--ui-hud-highlight);transform:translateY(2px)}#pauseButton:focus-visible{outline:2px solid var(--ui-focus);outline-offset:0}.pause-button__icon{grid-template-columns:repeat(2, calc(var(--ui-pixel) * 3));gap:calc(var(--ui-pixel) * 2);justify-content:center;align-items:center;display:grid}.pause-button__icon:before,.pause-button__icon:after{content:"";width:calc(var(--ui-pixel) * 3);height:calc(var(--ui-pixel) * 8);box-shadow:0 var(--ui-pixel) 0 var(--ui-frame);background:currentColor;display:block}.performance-hud,.duos-health,.difficulty-banner,.hud-toast,.controls-card,.ranked-network-status,.duos-spectating-status,.debug-overlay,.duos-panel,.major-boss-bar,.touch-button{border:3px solid #0000;border-image:var(--ui-hud-frame) 3 / 3px stretch;box-shadow:inset 0 1px 0 var(--ui-hud-highlight), 0 5px 0 -3px var(--ui-hud-shadow);background-clip:padding-box;border-radius:0}.performance-hud{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + var(--ui-hud-gap));right:max(var(--ui-hud-inset), env(safe-area-inset-right));z-index:11;background-color:var(--ui-hud-bg);color:var(--ui-toxic);font-family:var(--ui-font);font-size:var(--ui-type-label);pointer-events:none;text-shadow:1px 1px 0 var(--ui-frame);white-space:pre;max-width:calc(100vw - 2 * max(var(--ui-hud-inset), env(safe-area-inset-left), env(safe-area-inset-right)));padding:4px 7px 3px;line-height:1;position:fixed}@media (width<=520px){.performance-hud{white-space:pre-line}}.performance-hud[data-status=warn]{color:var(--ui-amber)}.performance-hud[data-status=bad]{color:var(--ui-red-text)}.duos-health{top:max(var(--ui-hud-inset), env(safe-area-inset-top));left:max(var(--ui-hud-inset), env(safe-area-inset-left));z-index:10;box-sizing:border-box;width:min(260px, calc(100vw - var(--ui-hud-inset) * 2));height:var(--hud-duos-health-height);background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, var(--ui-hud-bg);color:var(--ui-text);background-clip:padding-box;align-content:center;gap:6px;padding:7px 9px;display:grid;position:fixed;overflow:visible}.duos-health--friend-action-visible{z-index:30}.duos-health[hidden]{display:none!important}.duos-health__row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:28px;display:grid;position:relative;overflow:visible}.duos-health__row+.duos-health__row{border-top:2px solid #3d4448b3;padding-top:6px}.duos-health__row--waiting{grid-template-columns:1fr}.duos-health__name{color:var(--ui-amber-text);font-size:var(--ui-type-label);letter-spacing:1px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.duos-health__hearts{white-space:nowrap;justify-content:flex-end;align-items:center;gap:4px;min-width:0;max-width:120px;min-height:20px;display:flex;overflow:hidden}.duos-health__hearts .hud-heart{--hud-heart-pixel:2px}.duos-health__status{color:#ffe0d9;font-size:var(--ui-type-label);text-align:right;text-shadow:1px 1px 0 var(--ui-frame);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;justify-self:end;line-height:1;overflow:hidden}.duos-health__status--ready{color:var(--ui-success)}.duos-health__status--ready:after{content:"✓";margin-left:5px;display:inline-block}.duos-health__status--waiting{color:#ffe8bf}.duos-health__waiting{color:var(--ui-text-muted);font-size:var(--ui-type-label);text-align:center;text-shadow:1px 1px 0 var(--ui-shadow);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;line-height:1.2;overflow:hidden}.duos-health__dead{color:var(--ui-red-text);font-size:var(--ui-type-label);text-align:right;text-shadow:1px 1px 0 var(--ui-shadow);text-transform:uppercase;text-overflow:ellipsis;line-height:1;display:block;overflow:hidden}.duos-health__friend-action{z-index:1;pointer-events:auto;justify-content:flex-start;align-items:center;display:flex;position:absolute;top:50%;left:calc(100% + 18px);transform:translateY(-50%)}.duos-health__friend-button{background:linear-gradient(180deg, var(--ui-amber) 0 50%, var(--ui-amber-lo) 50% 100%);max-width:150px;min-height:28px;box-shadow:0 0 0 2px var(--ui-frame), 0 4px 0 0 #00000080;color:var(--ui-amber-ink);cursor:pointer;font-family:var(--ui-font);font-size:var(--ui-type-label);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;border:0;border-radius:0;padding:5px 9px;line-height:1.1;overflow:hidden}.duos-health__friend-button:not(:disabled):hover{background:linear-gradient(180deg, var(--ui-amber-hi) 0 50%, var(--ui-amber) 50% 100%)}.duos-health__friend-button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.duos-health__friend-button:disabled{background:var(--ui-hud-bg-strong);box-shadow:0 0 0 2px var(--ui-hud-border);color:var(--ui-text-muted);cursor:not-allowed}.difficulty-banner{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + 28px);z-index:11;min-width:min(300px,100vw - 32px);max-width:calc(100vw - 32px);padding:calc(3px + 3 * var(--ui-pixel)) 21px calc(4px + 3 * var(--ui-pixel));background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, var(--ui-hud-bg-strong);pointer-events:none;font-family:var(--ui-font);text-align:center;background-clip:padding-box;flex-direction:column;align-items:center;gap:8px;animation:.18s ease-out difficulty-banner-enter;display:flex;position:fixed;left:50%;transform:translate(-50%)}.difficulty-banner[hidden]{display:none!important}.difficulty-banner:before,.difficulty-banner:after{content:"";height:calc(3 * var(--ui-pixel));background:var(--ui-stripe-amber) 0 0 / calc(8 * var(--ui-pixel)) repeat;position:absolute;left:0;right:0}.difficulty-banner:before{box-shadow:0 1px 0 0 var(--ui-frame);top:0}.difficulty-banner:after{box-shadow:0 -1px 0 0 var(--ui-frame);bottom:0}.difficulty-banner__tier{color:var(--ui-toxic);font-size:var(--ui-type-label);letter-spacing:1px;line-height:1}.difficulty-banner__name{color:var(--ui-amber-hi);font-size:var(--ui-type-value);letter-spacing:2px;text-shadow:2px 2px 0 var(--ui-frame);text-transform:uppercase;overflow-wrap:anywhere;line-height:1}@keyframes difficulty-banner-enter{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.difficulty-banner[data-kind=boss]{border-image-source:var(--ui-hud-frame-red-dim);background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, #180a09f2;background-clip:padding-box}.difficulty-banner[data-kind=boss]:before,.difficulty-banner[data-kind=boss]:after{background-image:var(--ui-stripe-red)}.difficulty-banner[data-kind=boss-down]:before,.difficulty-banner[data-kind=boss-down]:after{background-image:var(--ui-stripe-toxic)}.difficulty-banner[data-kind=boss] .difficulty-banner__tier{color:var(--ui-red-text)}.difficulty-banner[data-kind=boss] .difficulty-banner__name{color:#ff8f80}.difficulty-banner[data-kind=boss-down] .difficulty-banner__tier{color:var(--ui-toxic)}.streak-banner{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + 108px);z-index:11;pointer-events:none;color:var(--ui-amber-hi);font-family:var(--ui-font);font-size:var(--ui-type-value);letter-spacing:2px;text-shadow:3px 3px 0 var(--ui-frame), 0 -2px 0 #f2b13438, 0 2px 0 #f2b13438, -2px 0 0 #f2b13438, 2px 0 0 #f2b13438;white-space:nowrap;line-height:1;position:fixed;left:50%;transform:translate(-50%)}.streak-banner[data-pulse="0"]{animation:1.4s ease-out both streak-pop-a}.streak-banner[data-pulse="1"]{animation:1.4s ease-out both streak-pop-b}@keyframes streak-pop-a{0%{opacity:0;transform:translate(-50%)scale(.6)}12%{opacity:1;transform:translate(-50%)scale(1.15)}24%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-6px)}}@keyframes streak-pop-b{0%{opacity:0;transform:translate(-50%)scale(.6)}12%{opacity:1;transform:translate(-50%)scale(1.15)}24%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-6px)}}.hud-toast{z-index:12;border-image-source:var(--ui-hud-frame-amber-edge);background-color:var(--ui-hud-bg-strong);pointer-events:none;color:var(--ui-text);font-family:var(--ui-font);font-size:var(--ui-type-label);letter-spacing:1px;text-transform:uppercase;padding:7px 13px;position:fixed;top:38%;left:50%;transform:translate(-50%)}.controls-card{z-index:11;background-color:var(--ui-hud-bg-strong);pointer-events:none;max-width:calc(100vw - 32px);padding:9px 13px;position:fixed;top:calc(50% + 84px);left:50%;transform:translate(-50%)}.controls-list{color:var(--ui-text-muted);font-family:var(--ui-font);font-size:var(--ui-type-label);text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:0;padding:0;line-height:1.6;list-style:none;display:flex}.controls-list kbd{box-shadow:inset 0 -2px 0 0 #121415, 0 0 0 1px var(--ui-frame);color:var(--ui-text-bright);font-family:inherit;font-size:inherit;background:linear-gradient(#2c3134 0 60%,#23272a 60%);border:0;border-radius:0;padding:1px 5px 2px}body[data-input-device=touch] .controls-list--mouse,body:not([data-input-device=touch]) .controls-list--touch{display:none}.start-hint{z-index:11;pointer-events:none;color:var(--ui-amber-hi);font-family:var(--ui-font);font-size:var(--ui-type-label);letter-spacing:2px;text-shadow:2px 2px 0 var(--ui-frame);text-transform:uppercase;white-space:nowrap;animation:1.2s steps(2,end) infinite start-hint-blink;position:fixed;top:calc(50% - 132px);left:50%;transform:translate(-50%)}@keyframes start-hint-blink{50%{opacity:.35}}.major-boss-bar{top:max(var(--ui-hud-inset), env(safe-area-inset-top));z-index:12;width:clamp(180px, calc(100vw - 2 * (var(--ui-hud-inset) + var(--hud-side-width) + var(--ui-hud-gap))), 480px);border-image-source:var(--ui-hud-frame-red-dim);background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, #180a09e6;box-shadow:inset 0 1px 0 #ff967814, 0 5px 0 -3px var(--ui-hud-shadow);pointer-events:none;font-family:var(--ui-font);color:#ffe8c8;background-clip:padding-box;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"name status hp""track track track";align-items:center;gap:6px 10px;padding:6px 9px 7px;display:grid;position:fixed;left:50%;transform:translate(-50%)}.major-boss-bar[hidden]{display:none!important}.major-boss-bar__label{display:contents}.major-boss-bar__name{color:#ffb347;min-width:0;font-size:var(--ui-type-value);letter-spacing:2px;text-overflow:ellipsis;text-shadow:2px 2px 0 var(--ui-frame);text-transform:uppercase;white-space:nowrap;grid-area:name;line-height:1;overflow:hidden}.major-boss-bar__hp{color:#ffd7a8;font-size:var(--ui-type-label);grid-area:hp;line-height:1}.major-boss-bar__track{width:100%;height:calc(var(--ui-pixel) * 4);background:#0b0605;border:0;border-radius:0;grid-area:track;overflow:hidden;box-shadow:0 0 0 2px #2a0f0a}.major-boss-bar__fill{background:repeating-linear-gradient(90deg,#0000 0 14px,#14060480 14px 16px),linear-gradient(#ffd24a 0 2px,#ff7a18 2px 55%,#d8331f 55%);width:100%;height:100%;transition:width 80ms linear}.major-boss-bar--enraged{border-image-source:var(--ui-hud-frame-red)}.major-boss-bar--enraged .major-boss-bar__fill{background:repeating-linear-gradient(90deg,#0000 0 14px,#14040680 14px 16px),linear-gradient(#ff8a5c 0 2px,#ff2f3f 2px 55%,#a8132b 55%);animation:.45s ease-in-out infinite alternate major-boss-pulse}.major-boss-bar__status{color:#ff8a7a;min-width:0;font-size:var(--ui-type-label);text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;grid-area:status;line-height:1;overflow:hidden}.major-boss-bar--enraged .major-boss-bar__status{color:#ff5c72;text-shadow:1px 1px 0 var(--ui-frame)}@keyframes major-boss-pulse{0%{filter:brightness()}to{filter:brightness(1.25)}}@media (prefers-reduced-motion:reduce){.difficulty-banner,.major-boss-bar--enraged .major-boss-bar__fill{animation:none}#pauseButton{transition:none}}.ranked-network-status{bottom:calc(max(var(--ui-hud-inset), env(safe-area-inset-bottom)) + var(--hud-bottom-tray));z-index:13;border-image-source:var(--ui-hud-frame-amber-edge);background-color:var(--ui-hud-bg-strong);color:var(--ui-amber);font-family:var(--ui-font);font-size:var(--ui-type-label);letter-spacing:1px;pointer-events:none;white-space:nowrap;align-items:center;gap:8px;padding:6px 11px 5px;line-height:1;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ranked-network-status:before{content:"";width:6px;height:6px;box-shadow:0 0 0 1px var(--ui-frame);background:currentColor;flex:none}.ranked-network-status[data-status=connecting],.ranked-network-status[data-status=connected]{border-image-source:var(--ui-hud-frame-toxic);color:var(--ui-toxic)}.ranked-network-status[data-status=disconnected],.ranked-network-status[data-status=failed],.ranked-network-status[data-status=error],.ranked-network-status[data-status=replaced]{border-image-source:var(--ui-hud-frame-red-dim);color:var(--ui-red-text)}.ranked-network-status[hidden]{display:none}.ranked-replay-cost{max-width:34ch;color:var(--ui-amber-text);text-align:center;margin:0 auto 18px;font-size:12px;line-height:1.5}.duos-spectating-status{left:50%;bottom:calc(max(var(--ui-hud-inset), env(safe-area-inset-bottom)) + var(--hud-bottom-tray));z-index:12;border-image-source:var(--ui-hud-frame-amber-edge);background-color:var(--ui-hud-bg-strong);color:var(--ui-amber);font-size:var(--ui-type-value);letter-spacing:2px;text-align:center;text-shadow:2px 2px 0 var(--ui-frame);pointer-events:none;padding:7px 17px 6px;line-height:1;position:fixed;transform:translate(-50%)}.duos-spectating-status[hidden]{display:none!important}.debug-overlay{left:max(var(--ui-hud-inset), env(safe-area-inset-left));bottom:max(var(--ui-hud-inset), env(safe-area-inset-bottom));z-index:11;background-color:var(--ui-hud-bg-strong);min-width:190px;max-width:min(320px,100vw - 20px);color:var(--ui-text-muted);pointer-events:none;white-space:pre-wrap;margin:0;padding:9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.35;position:fixed}.duos-panel{left:50%;top:max(var(--ui-hud-inset), env(safe-area-inset-top));z-index:11;background:var(--ui-grime) 0 0 / var(--ui-grime-size) repeat, var(--ui-hud-bg-strong);width:max-content;max-width:calc(100vw - 28px);color:var(--ui-text);text-align:left;background-clip:padding-box;grid-template-columns:auto auto;align-items:center;gap:8px 10px;padding:7px 9px;display:grid;position:fixed;transform:translate(-50%)}.duos-panel[hidden]{display:none!important}.duos-panel__room-control{align-items:center;gap:6px;display:flex}.duos-panel__room{color:var(--ui-gold);font-size:var(--ui-type-value);letter-spacing:2px;text-shadow:2px 2px 0 var(--ui-frame);line-height:1}.duos-panel__status{font-size:var(--ui-type-label);color:var(--ui-toxic);grid-column:1/-1;justify-self:center;line-height:1.3}.duos-panel__players{color:#ffe8bf;text-transform:uppercase;white-space:normal;grid-column:1/-1;font-size:10px;line-height:1.35}.duos-panel__join-failure-message{color:var(--ui-red-text)}.duos-panel__status[hidden],.duos-panel__players[hidden]{display:none!important}.duos-panel__copy,.duos-panel__ready{min-width:92px;padding:7px 9px;font-size:11px}.duos-panel__copy{width:30px;min-width:0;height:30px;min-height:30px;padding:0;transition:background-color .26s,filter .16s,transform .1s;position:relative}.duos-panel__copy:before,.duos-panel__copy:after{content:"";border:2px solid;border-radius:0;width:10px;height:12px;position:absolute}.duos-panel__copy:before{top:9px;left:8px}.duos-panel__copy:after{background:var(--ui-face-top);transition:background-color .26s steps(3,end);top:6px;left:12px}.duos-panel__copy[data-copy-state=copied],.duos-panel__copy[data-copy-state=copied]:after{background:var(--ui-toxic);color:var(--ui-amber-ink)}.duos-panel__copy[data-copy-state=failed],.duos-panel__copy[data-copy-state=failed]:after{background:var(--ui-red)}.duos-panel__ready:disabled{opacity:.62;cursor:default;filter:none;transform:none}.duos-panel__countdown{min-height:44px;color:var(--ui-amber-hi);text-shadow:3px 3px 0 var(--ui-frame);grid-column:1/-1;justify-self:center;font-size:44px;line-height:1}.duos-panel__countdown[hidden]{display:none!important}.touch-controls{pointer-events:none;inset:auto 0 max(18px, env(safe-area-inset-bottom)) 0;z-index:9;display:none;position:fixed}body[data-input-device=touch] .touch-controls{display:block}body:not([data-touch-layout=dpad]) .touch-dpad,body[data-touch-layout=dpad] .touch-stick{display:none}.touch-stick{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + var(--ui-hud-gap));pointer-events:auto;touch-action:none;width:45vw;position:fixed;bottom:0;left:0}.touch-stick__base{opacity:0;pointer-events:none;background:#0e0f10cc;border:3px solid #f2b134e6;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity 80ms linear;position:absolute;top:0;left:0}.touch-stick[data-active=true] .touch-stick__base{opacity:.4}.touch-stick__knob{background:var(--ui-amber);width:50px;height:50px;box-shadow:inset 0 -4px 0 #8c5a0be6, 0 0 0 2px var(--ui-frame);border-radius:50%;margin:-25px 0 0 -25px;position:absolute;top:50%;left:50%}.touch-dpad,.touch-actions{pointer-events:auto;bottom:max(18px, env(safe-area-inset-bottom));position:fixed}.touch-dpad{left:max(18px, env(safe-area-inset-left));grid-template-rows:repeat(3,58px);grid-template-columns:repeat(3,58px);gap:6px;display:grid}.touch-actions{right:max(18px, env(safe-area-inset-right));align-items:end;gap:12px;display:flex}.touch-button{min-width:58px;min-height:58px;color:var(--ui-text);cursor:pointer;text-shadow:2px 2px 0 var(--ui-frame);touch-action:none;background-color:#0e0f10bd;place-items:center;padding:0;font-size:22px;line-height:1;display:grid}.touch-button:active{border-image-source:var(--ui-hud-frame-amber);box-shadow:inset 0 1px 0 var(--ui-hud-highlight);background-color:#3b2706cc;transform:translateY(2px)}.touch-button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:0}.touch-glyph{clip-path:polygon(50% 0,100% 100%,67% 100%,50% 50%,33% 100%,0 100%);width:18px;height:12px;filter:drop-shadow(0 2px 0 var(--ui-frame));background:currentColor;display:block}.touch-glyph--right{transform:rotate(90deg)}.touch-glyph--down{transform:rotate(180deg)}.touch-glyph--left{transform:rotate(-90deg)}.touch-up{grid-area:1/2}.touch-left{grid-area:2/1}.touch-right{grid-area:2/3}.touch-down{grid-area:3/2}.touch-fire{border-image-source:var(--ui-hud-frame-red-dim);color:#fff3f0;letter-spacing:2px;background:linear-gradient(#a3271bd1 0 50%,#8c2016d1 50% 100%) padding-box padding-box;min-width:94px;min-height:94px;font-size:22px}.touch-fire:active{border-image-source:var(--ui-hud-frame-red);background:#be3224e0 padding-box padding-box}.touch-special{border-image-source:var(--ui-hud-frame-amber-edge);min-width:62px;min-height:62px;color:var(--ui-amber);background-color:#2e210ac7;font-size:22px}.touch-special__icon{width:36px;height:36px;image-rendering:pixelated;pointer-events:none;display:block}body:not([data-rockets-ready=true]) .touch-special{opacity:.35}body[data-rockets-ready=true] .touch-special{border-image-source:var(--ui-hud-frame-amber);animation:.9s steps(2,jump-none) infinite rocket-ready-glow}@keyframes rocket-ready-glow{0%,to{box-shadow:inset 0 1px 0 var(--ui-hud-highlight), 0 5px 0 -3px var(--ui-hud-shadow)}50%{box-shadow:inset 0 1px 0 var(--ui-hud-highlight), 0 -2px 0 0 #f2b13473, 0 2px 0 0 #f2b13473, -2px 0 0 0 #f2b13473, 2px 0 0 0 #f2b13473, 0 -4px 0 0 #f2b13429, 0 4px 0 0 #f2b13429, -4px 0 0 0 #f2b13429, 4px 0 0 0 #f2b13429}}.touch-special:active{border-image-source:var(--ui-hud-frame-amber);background-color:#5a3e0ed9}#pauseOverlay .popup{width:min(420px,100vw - 40px)}#pauseOverlay{align-items:center}#pauseOverlay button{width:100%}.pause-menu__note{color:var(--ui-amber-text);letter-spacing:1px;text-transform:uppercase;margin:-12px 0 16px;font-size:11px}.game-controls-panel{text-align:left;width:100%}.game-controls-panel .controls-list{color:var(--ui-text);flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:20px;font-size:12px}#gameOver[data-state=visible]{animation:.25s ease-out both game-over-fade}#gameOver .game-over-menu{transition:opacity .18s ease-out}#gameOver[data-guard=locked] .game-over-menu{opacity:.4;pointer-events:none}#gameOver[data-guard=locked] .game-over-keys{visibility:hidden}@keyframes game-over-fade{0%{opacity:0}to{opacity:1}}.game-over-best{color:var(--ui-text-muted);letter-spacing:1px;text-transform:uppercase;margin:-8px 0 14px;font-size:13px}.game-over-best[data-new-best=true]{color:var(--ui-toxic);letter-spacing:2px;text-shadow:2px 2px 0 var(--ui-frame);font-size:20px}.game-over-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;width:min(100%,440px);margin:0 auto 18px;padding:0;display:grid}.game-over-stats__row{background:var(--ui-well);box-shadow:inset 0 0 0 var(--ui-px) var(--ui-steel-lo);border:0;border-radius:0;flex-direction:column;gap:6px;padding:8px 6px;display:flex}.game-over-stats dt{color:var(--ui-text-muted);letter-spacing:1px;text-transform:uppercase;font-size:10px;line-height:1}.game-over-stats dd{color:var(--ui-text-bright);margin:0;font-size:15px;line-height:1}.game-over-ranked-cta{flex-direction:column;gap:5px;line-height:1.1}.game-over-ranked-cta__note{opacity:.8;text-transform:none;font-size:9px}.game-over-keys{color:var(--ui-text-dim);letter-spacing:1px;text-transform:uppercase;margin:12px 0 0;font-size:10px}.game-over-share{flex-direction:column;align-items:center;gap:10px;margin-top:16px;display:flex}#gameOverShare .social-icons{margin-top:0}#gameOver .game-over-share{transition:opacity .18s ease-out}#gameOver[data-guard=locked] .game-over-share,#pauseOverlay[data-guard=locked] .pause-menu__actions{opacity:.4;pointer-events:none}body[data-input-device=touch] #pauseOverlay .ui-button:focus-visible,body[data-input-device=touch] #gameOver .ui-button:focus-visible,body[data-input-device=touch] .duos-death-modal .ui-button:focus-visible{outline:none}body[data-input-device=touch] .game-over-keys,body[data-game-mode=ranked] .controls-list__pause{display:none}@media (height<=520px) and (width>=561px){#gameOver .game-over-content{width:min(640px,100vw - 24px)}#gameOver .game-over-best{margin:-4px 0 8px}#gameOver .game-over-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;width:min(100%,520px);margin-bottom:10px}#gameOver .game-over-stats__row{gap:4px;padding:5px 6px}#gameOver .game-over-stats dd{font-size:13px}#gameOver .ranked-replay-cost{margin-bottom:10px}#gameOver .game-over-menu{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;width:min(100%,600px)}#gameOver .game-over-menu .ui-button{height:100%;min-height:42px;padding-inline:8px}#gameOver .game-over-keys{margin-top:8px}#gameOver .game-over-share{margin-top:10px}}.rotate-card{z-index:4000;background:#050506f5;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}@media (orientation:portrait){body[data-input-device=touch] .rotate-card{display:flex}}.rotate-card__panel{padding:calc(22px + 3 * var(--ui-px)) 26px 22px;color:var(--ui-text);font-family:var(--ui-font);text-align:center;text-transform:uppercase;font-size:16px}.rotate-card__panel p{margin:0}.rotate-card__hint{color:var(--ui-text-muted);font-size:11px;margin-top:10px!important}.rotate-card__icon{border:4px solid var(--ui-amber);width:30px;height:52px;box-shadow:0 0 0 2px var(--ui-frame), inset 0 0 0 2px var(--ui-frame);border-radius:0;margin:0 auto 16px;animation:1.6s ease-in-out infinite rotate-phone;display:block}@keyframes rotate-phone{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.duos-game-over-summary{background:var(--ui-well);width:min(420px,100%);box-shadow:inset 0 0 0 var(--ui-px) var(--ui-steel-lo);color:var(--ui-text);border:0;border-radius:0;margin:0 auto 18px;padding:6px 12px}.duos-game-over-summary[hidden]{display:none!important}.duos-game-over-summary__row{text-transform:uppercase;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:8px 4px;font-size:15px;line-height:1.2;display:grid}.duos-game-over-summary__row>span{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.duos-game-over-summary__row strong{font-weight:400}.duos-game-over-summary__row+.duos-game-over-summary__row{border-top:2px solid #3d444899}.duos-game-over-summary__total{color:var(--ui-gold);font-size:var(--ui-type-value)}.duos-death-modal{z-index:20;-webkit-backdrop-filter:blur(4px);background:radial-gradient(60% 55% at 50% 45%,#28080680,#030304db);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.duos-death-modal{background:var(--ui-backdrop-solid)}}.duos-death-modal[hidden]{display:none!important}.duos-death-modal__panel{width:min(440px,100vw - 40px);padding:calc(24px + 3 * var(--ui-px)) 24px 24px;text-align:center}.duos-death-modal__panel:before{background-image:var(--ui-stripe-red)}.duos-death-modal__panel h2{color:var(--ui-red-text);font-size:var(--ui-type-title);letter-spacing:3px;text-shadow:0 var(--ui-px) 0 var(--ui-red-edge), 0 calc(2 * var(--ui-px)) 0 var(--ui-frame);text-transform:uppercase;margin:0 0 20px;line-height:1}.game-settings-panel{text-align:left;width:100%}.game-settings-panel[hidden]{display:none!important}.game-settings-row{min-height:48px;color:var(--ui-text);cursor:pointer;letter-spacing:1px;text-transform:uppercase;border-bottom:2px solid #3d444899;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin:0;padding:10px 2px;font-size:13px;line-height:1.25;display:grid}.game-settings-row:first-child{border-top:2px solid #3d444899}.game-settings-row input[type=checkbox]{appearance:none;background:var(--ui-well);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--ui-steel), 0 0 0 2px var(--ui-frame);cursor:pointer;border:0;border-radius:0;margin:0;position:relative}.game-settings-row input[type=checkbox]:after{content:"";border:solid var(--ui-amber-ink);opacity:0;border-width:0 3px 3px 0;width:6px;height:11px;transition:opacity .12s steps(2,end),transform .12s steps(2,end);position:absolute;top:1px;left:5px;transform:rotate(45deg)scale(.7)}.game-settings-row input[type=checkbox]:checked{background:var(--ui-toxic);box-shadow:inset 0 -3px 0 0 var(--ui-toxic-lo), 0 0 0 2px var(--ui-frame)}.game-settings-row input[type=checkbox]:checked:after{opacity:1;transform:rotate(45deg)scale(1)}.game-settings-row input[type=range]{appearance:none;cursor:pointer;background:0 0;width:180px;height:20px;margin:0}.game-settings-row input[type=range]::-webkit-slider-runnable-track{background:var(--ui-well);height:6px;box-shadow:inset 0 0 0 2px var(--ui-steel), 0 0 0 1px var(--ui-frame);border:0;border-radius:0}.game-settings-row input[type=range]::-webkit-slider-thumb{appearance:none;background:linear-gradient(180deg, var(--ui-amber) 0 50%, var(--ui-amber-lo) 50% 100%);width:18px;height:18px;box-shadow:0 0 0 2px var(--ui-frame), 0 3px 0 2px #00000080;border:0;border-radius:0;margin-top:-6px}.game-settings-row input[type=range]::-moz-range-track{background:var(--ui-well);height:6px;box-shadow:inset 0 0 0 2px var(--ui-steel-lo);border:0;border-radius:0}.game-settings-row input[type=range]::-moz-range-thumb{background:var(--ui-amber);width:14px;height:14px;box-shadow:0 0 0 2px var(--ui-frame);border:0;border-radius:0}.game-settings-row input:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}#settingsCloseBtn{margin-top:18px}body:not([data-input-device=touch]) #touchLayoutRow{display:none}.game-settings-row select{background:var(--ui-well);box-shadow:inset 0 0 0 2px var(--ui-steel);color:var(--ui-text);cursor:pointer;font-family:var(--ui-font);text-transform:uppercase;border:0;border-radius:0;padding:6px 8px;font-size:12px}.game-settings-row select:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.game-settings-row__hint{box-shadow:inset 0 -2px 0 0 #121415, 0 0 0 1px var(--ui-frame);color:var(--ui-text);background:linear-gradient(#2c3134 0 60%,#23272a 60%);border:0;border-radius:0;margin-left:6px;padding:1px 5px 2px;font-size:10px}@media (forced-colors:active){#pauseButton,.performance-hud,.duos-health,.difficulty-banner,.hud-toast,.controls-card,.ranked-network-status,.duos-spectating-status,.debug-overlay,.duos-panel,.major-boss-bar,.touch-button{border-color:canvastext;border-image:}.game-over-stats__row,.duos-game-over-summary,.game-settings-row input[type=checkbox],.game-settings-row select{outline-offset:-2px;outline:2px solid canvastext}#pauseButton:focus-visible,.touch-button:focus-visible,.game-settings-row input:focus-visible,.game-settings-row select:focus-visible{outline-offset:2px;outline:3px solid highlight}.pause-button__icon:before,.pause-button__icon:after{forced-color-adjust:none;box-shadow:none;background:buttontext}}@media (prefers-reduced-motion:reduce){#gameOver[data-state=visible],.hud-heart--breaking,#lives[data-lives="1"] .hud-heart,body[data-rockets-ready=true] .touch-special,.streak-banner,.start-hint,.rotate-card__icon{animation:none!important}}@media (width<=760px),(height<=520px){:root{--hud-side-width:216px;--hud-duos-health-height:72px;--hud-bottom-tray:48px}.duos-health{width:min(216px, calc(100vw - var(--ui-hud-inset) * 2));gap:4px;padding:5px 7px}.duos-health__row{gap:6px;min-height:24px}.duos-health__row+.duos-health__row{padding-top:4px}.duos-health__hearts{gap:3px;max-width:92px}.duos-health__friend-action{left:calc(100% + 12px)}.duos-health__friend-button{max-width:120px;min-height:26px;padding:4px 7px}#score{gap:4px;padding:0 9px}.performance-hud{padding:3px 5px 2px}.difficulty-banner{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + 16px);padding:calc(2px + 3 * var(--ui-pixel)) 13px calc(3px + 3 * var(--ui-pixel));gap:6px}.major-boss-bar{gap:5px 8px;padding:4px 7px 5px}.major-boss-bar__name{font-size:var(--ui-type-label)}.duos-spectating-status{font-size:var(--ui-type-label);letter-spacing:1px;padding:6px 11px 5px}.duos-death-modal__panel{padding:calc(18px + 3 * var(--ui-px)) 18px 18px}.duos-death-modal__panel h2{font-size:var(--ui-type-value)}.duos-death-modal__panel button{font-size:14px}.duos-game-over-summary{margin-bottom:12px;padding:4px 9px}.duos-game-over-summary__row{gap:10px;padding:6px 2px;font-size:13px}.duos-game-over-summary__total{font-size:16px}.game-settings-row{gap:12px;font-size:12px}.game-settings-row input[type=range]{width:min(42vw,160px)}#pauseOverlay .popup{width:min(420px,100vw - 28px);padding:calc(16px + 3 * var(--ui-px)) 16px 16px}}@media (width>=2200px) and (height>=1200px){.streak-banner{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + 124px)}}@media (width>=3200px) and (height>=1800px){#pauseOverlay .popup,#gameOver .game-over-content,.duos-death-modal__panel{zoom:2}#pauseOverlay .popup,#leaderboardOverlay .popup,#gameOver .game-over-content{max-height:calc(50dvh - 20px)}}@media (width>=661px) and (width<=760px),(width>=761px) and (width<=920px) and (height>=521px){.major-boss-bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name hp""status status""track track"}.major-boss-bar__status{text-align:left}}@media (width<=660px){.major-boss-bar,.duos-panel,.difficulty-banner{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + 172px)}.major-boss-bar{width:min(480px, calc(100vw - var(--ui-hud-inset) * 2))}.difficulty-banner:has(~.major-boss-bar:not([hidden])){top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + 172px + 47px)}.duos-panel{grid-template-columns:minmax(0,1fr) auto;width:auto;min-width:min(360px,100vw - 28px)}.duos-panel__status,.duos-panel__players{grid-column:1/-1}.duos-panel__room-control{grid-column:1;justify-self:start}.duos-panel__ready{grid-column:2}}@media (hover:none),(pointer:coarse),(width<=760px){.overlay,.ui-overlay,.duos-death-modal{background:var(--ui-backdrop-solid);-webkit-backdrop-filter:none;backdrop-filter:none}.ranked-network-status{top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + var(--ui-hud-gap));bottom:auto;left:max(var(--ui-hud-inset), env(safe-area-inset-left));transform:none}.debug-overlay{bottom:auto;top:calc(max(var(--ui-hud-inset), env(safe-area-inset-top)) + var(--ui-hud-row) + var(--ui-hud-gap));max-height:40vh;overflow:hidden}}@media (width<=520px){.touch-dpad{grid-template-rows:repeat(3,50px);grid-template-columns:repeat(3,50px)}.touch-button{min-width:50px;min-height:50px}.touch-fire{min-width:82px;min-height:82px}.touch-actions{gap:8px}.ranked-network-status,.duos-spectating-status{top:auto;bottom:calc(max(18px, env(safe-area-inset-bottom)) + 240px);left:50%;transform:translate(-50%)}}@media (width<=360px){.duos-health{width:200px}.duos-health__friend-action{left:calc(100% + 6px)}.duos-health__friend-button{max-width:88px;padding-inline:4px}}@media (width<=600px){.duos-health__friend-action{top:calc(100% + 8px);left:0;transform:none}}.duos-lobby-stage{background:var(--ui-void);box-shadow:0 0 0 2px var(--ui-frame), 0 0 0 3px var(--ui-steel-lo);image-rendering:crisp-edges;image-rendering:pixelated;pointer-events:none;order:-1;grid-column:1/-1;justify-self:center;margin:0 0 3px;display:block}.duos-panel:has(.duos-lobby-stage) .duos-panel__countdown:not([hidden]){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;min-height:0;margin:-1px;position:absolute;overflow:hidden}.duos-lobby-stage--exit{z-index:12;box-shadow:none;background:0 0;margin:0;position:fixed}
