@font-face{font-family:PlayerPixel;src:url('/fonts/lisnard-arcade-latin.woff2') format('woff2');font-display:swap}
.player-access{display:flex;align-items:center;justify-content:flex-end;gap:10px;position:relative;z-index:5;font:9px/1.7 PlayerPixel,monospace;color:#f8e5a1}
.player-access a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;border:1px solid #8d8c9c;padding:10px 14px;background:#0b123c;color:inherit;text-decoration:none;box-sizing:border-box;max-width:100%}
.player-access .player-login{color:#0b123c;background:linear-gradient(#fff0b9,#d4c383);border-color:#fff0bc;max-width:280px}
.player-access [data-player-label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.player-access .player-rank-link{width:44px;padding:10px;flex-shrink:0}
.player-access svg{width:17px;height:17px;fill:currentColor;flex-shrink:0;shape-rendering:crispEdges}
.player-access .is-connected svg{color:#2d6857}
.home-player-access{width:min(100%,1585px);padding:0 0 12px;margin:auto auto 0}
.player-access a:focus-visible,.player-dialog :is(a,button,input):focus-visible,.ranked-mode :is(input,a):focus-visible{outline:3px solid #fff;outline-offset:4px}
.player-access a:hover{border-color:#fff2c3;filter:brightness(1.1)}
.player-dialog{color:#f7e8ad;background:#101942;border:3px solid #eed991;outline:1px solid #8f8b9d;outline-offset:5px;width:min(460px,calc(100% - 40px));padding:0;box-shadow:0 0 0 10px #070c2a,8px 12px 0 #02051a;max-height:calc(100svh - 40px);font:11px/1.8 PlayerPixel,monospace}
.player-dialog::backdrop{background:#03071bd9;backdrop-filter:blur(5px)}
.player-dialog header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid #626882}
.player-dialog h2{font:inherit;margin:0;text-transform:uppercase}
.player-dialog header button{font:24px/1 sans-serif;color:inherit;background:transparent;border:1px solid #757e9f;width:38px;height:38px;padding:0}
.player-dialog form{padding:24px;display:grid;grid-template-columns:1fr;gap:14px}
.player-dialog input{box-sizing:border-box;width:100%;min-width:0;min-height:48px;border:1px solid #8b8fa7;background:#070d2f;color:#fff4cf;padding:12px;font:12px/1.5 PlayerPixel,monospace}
.player-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid #a5a5b0;background:#101942;color:#f4e1a3;text-decoration:none;font:10px/1.8 PlayerPixel,monospace;min-height:44px;padding:12px 18px;cursor:pointer}
.player-button-gold{background:linear-gradient(#fff0b9,#d4c383);color:#091035;border-color:#fff0bc}
.player-dialog .player-links{display:grid;padding:0 24px 24px;gap:15px}
.player-links a{color:#d9dbed;text-decoration:none;font:10px/1.6 PlayerPixel,monospace;padding:12px 0;border-top:1px solid #454e77}
.player-links a:last-child{color:#a6abc5;font-size:9px}
.player-notice{margin:0 24px 20px;color:#f4d987;font:14px/1.5 system-ui,sans-serif}
.player-notice:empty{display:none}
.menu-player-actions{display:flex;align-items:center;gap:12px}
.ranked-mode{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:14px 0 0;font:9px/1.8 PlayerPixel,monospace;color:#ead996}
.ranked-mode label{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.ranked-mode input{appearance:none;width:17px;height:17px;margin:0;border:1px solid #a4a4b4;background:#080d2e;position:relative}
.ranked-mode input:checked{background:#ead996;box-shadow:inset 0 0 0 4px #101942}
.ranked-mode input:disabled{opacity:.45;cursor:default}
.ranked-mode a{color:#bfc5df;font:12px/1.5 system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px}
.ranked-status{font:12px/1.5 system-ui,sans-serif;color:#cbd2e6;margin:9px 0 0}
.ranked-status:empty{display:none}.ranked-status[data-kind="saved"]{color:#9de4c7}.ranked-status[data-kind="unranked"]{color:#f2c586}
body.game-running .menu-player-actions{visibility:hidden}
@media(max-width:700px){.home-player-access{width:100%;padding:0 16px 14px;box-sizing:border-box;margin-top:0}.player-access{font-size:8px;gap:8px}.player-access a{min-height:40px;padding:10px}.player-access .player-login{max-width:230px}.player-access svg{width:15px;height:15px}.menu-player-actions{gap:8px}.menu-player-actions .player-access .player-login{max-width:175px}.menu-masthead{flex-wrap:wrap}.player-dialog header{padding:15px}.player-dialog form{padding:20px}.player-dialog .player-links{padding:0 20px 20px}.ranked-mode{gap:10px}}
@media(max-width:430px){.menu-player-actions .player-access{font-size:7px}.menu-player-actions .player-access .player-login{max-width:160px}.menu-player-actions .player-rank-link{width:38px}.player-access .player-login{max-width:210px}}

.shop-player-access{width:min(1380px,calc(100% - 40px));margin:15px auto 0}
@media(min-width:701px) and (pointer:fine){.shell .scene,.home-player-access{width:min(100%,1585px,calc((100svh - 92px)*1585/929))}.home-player-access{margin:0 auto}}
@media(max-width:700px),(pointer:coarse){.shell{position:relative;padding-top:80px}.home-player-access{position:absolute;top:16px;left:0;margin:0}}

.player-profile-hint{font:12px/1.5 system-ui,sans-serif;color:#b8c6e7;margin-top:-7px}

.player-dialog[data-onboarding="true"] .player-links a:not(:last-child){display:none}
.rank-result-button{white-space:normal;text-wrap:balance}
.menu-choices .rank-result-button{color:#fff0b9;border-color:#8c8458;font-size:8px;line-height:1.9}
html[data-mobile-game=touch] .menu-choices .rank-result-button{grid-column:1/-1;font-size:7px;min-height:40px}
#result .rank-result-button{font-size:clamp(8px,1vw,12px);padding:12px 18px;max-width:100%}
html[data-mobile-game=touch] #result .rank-result-button{font-size:8px;min-height:40px;padding:8px 12px;grid-column:1/-1}
