:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#f4f7ff;background:#060b14;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--app-height: 100dvh}*{box-sizing:border-box}html{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior-x:none}body{margin:0;min-height:100dvh;height:100dvh;overflow-x:hidden;overflow-y:hidden;overscroll-behavior:none;display:flex;justify-content:center;align-items:center;padding:0;background:radial-gradient(1000px 600px at 20% 0%,#1a0f2a 0%,transparent 60%),radial-gradient(700px 500px at 100% 100%,#150a20 0%,transparent 60%),#060b14}body.allow-menu-scroll{overflow-y:auto;touch-action:pan-y}#app{position:relative;width:100%;height:100dvh;display:flex;justify-content:center;align-items:center;overflow:hidden}.game-shell{position:relative;width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:100%;align-items:stretch;justify-items:stretch;overflow:hidden}.game-shell.menu-scroll{overflow-y:auto}.shell-rave-overlay{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}.shell-rave-fallback-strip{position:absolute;top:0;bottom:0;z-index:1;pointer-events:none;display:none;background:linear-gradient(180deg,#000 0% 100%),repeating-linear-gradient(45deg,transparent 0 11px,color-mix(in srgb,var(--rave-fallback-c1, #00f5ff) 86%,#000000) 11px 12px,transparent 12px 24px),repeating-linear-gradient(180deg,transparent 0 10px,color-mix(in srgb,var(--rave-fallback-c2, #ff2dff) 88%,#000000) 10px 11px,transparent 11px 22px),repeating-linear-gradient(90deg,transparent 0 12px,color-mix(in srgb,var(--rave-fallback-c1, #00f5ff) 84%,#000000) 12px 13px,transparent 13px 26px);box-shadow:inset 0 0 42px #000000fa,0 0 calc(20px * var(--rave-fallback-glow, 1)) color-mix(in srgb,var(--rave-fallback-c1, #00f5ff) 58%,#000000),0 0 calc(36px * var(--rave-fallback-glow, 1)) color-mix(in srgb,var(--rave-fallback-c2, #ff2dff) 44%,#000000);opacity:var(--rave-fallback-opacity, .5);filter:brightness(var(--rave-fallback-brightness, 1)) saturate(var(--rave-fallback-saturation, 1.7));animation:shell-rave-fallback-pulse var(--rave-fallback-duration, .7s) ease-in-out infinite}.shell-rave-fallback-left{transform-origin:left center}.shell-rave-fallback-right{transform-origin:right center}@keyframes shell-rave-fallback-pulse{0%{filter:brightness(calc(var(--rave-fallback-brightness, 1) * .92)) saturate(calc(var(--rave-fallback-saturation, 1.7) * .9));opacity:calc(var(--rave-fallback-opacity, .5) * .9)}to{filter:brightness(calc(var(--rave-fallback-brightness, 1) * 1.08)) saturate(calc(var(--rave-fallback-saturation, 1.7) * 1.08));opacity:calc(var(--rave-fallback-opacity, .5) * 1.08)}}.canvas-wrapper{grid-column:2;display:grid;justify-self:center;align-self:center;z-index:2;position:relative}.canvas-wrapper>*{grid-row:1;grid-column:1}.game-canvas{display:block;width:auto;height:var(--app-height);max-width:100vw;border:2px solid #1a0e2e;background:#040810;image-rendering:pixelated}canvas{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}@media(min-width:769px)and (max-width:1100px){.game-canvas.versus{width:100vw;height:auto;max-height:var(--app-height);border:none}}.shell-side-fx{display:block;width:100%;height:100%;pointer-events:none;image-rendering:pixelated;background:transparent;border:none;z-index:1}.shell-side-fx-left{grid-column:1}.shell-side-fx-right{grid-column:3}.auth-overlay{position:absolute;inset:0;z-index:10;pointer-events:none;overflow:clip}.auth-form{pointer-events:auto;display:flex;flex-direction:column;align-items:center;width:61.25%;margin-top:0;margin-inline:auto;padding:0;gap:.4em}.auth-input{width:100%;box-sizing:border-box;padding:0 .7em;background:#0a1628;border:2px solid #2a4a7a;border-radius:6px;color:#d4e7ff;font-family:"Press Start 2P",monospace;outline:none;transition:border-color .15s}.auth-input::placeholder{color:#4a6a9a}.auth-input:focus{border-color:#6ea3ff;box-shadow:0 0 6px #6ea3ff59}.auth-error{color:#ff6b6b;font-family:"Press Start 2P",monospace;font-size:.5em;text-align:center}.auth-error:empty{display:none}.auth-confirm{color:#6bffb8;font-family:"Press Start 2P",monospace;font-size:.5em;text-align:center}.auth-confirm:empty{display:none}.auth-btn-submit{width:100%;box-sizing:border-box;padding:0;background:#1f335a;border:1.5px solid #6ea3ff;border-radius:6px;color:#d4e7ff;font-family:"Press Start 2P",monospace;cursor:pointer;transition:background .15s}.auth-btn-submit:hover:not(:disabled){background:#2a4470}.auth-btn-submit:disabled{opacity:.5;cursor:default}.auth-btn-toggle{width:100%;box-sizing:border-box;background:none;border:none;color:#7a9ac8;font-family:"Press Start 2P",monospace;cursor:pointer;padding:.6em 0;margin-top:.3em;transition:color .15s}.auth-btn-toggle:hover{color:#c4dfff}.profile-overlay{position:absolute;inset:0;z-index:10;pointer-events:none;overflow:clip}.profile-form{pointer-events:auto;display:flex;flex-direction:column;align-items:center;margin-top:34%;padding:0 2em;gap:.5em}.profile-label{color:#9cc2ff;font-family:"Press Start 2P",monospace;font-size:.6em;text-align:center}.profile-input{width:100%;max-width:18em;padding:.6em .7em;background:#0a1628;border:2px solid #2a4a7a;border-radius:4px;color:#d4e7ff;font-family:"Press Start 2P",monospace;font-size:.7em;outline:none;text-align:center;transition:border-color .15s}.profile-input::placeholder{color:#4a6a9a}.profile-input:focus{border-color:#6ea3ff;box-shadow:0 0 6px #6ea3ff59}.profile-error{color:#ff6b6b;font-family:"Press Start 2P",monospace;font-size:.5em;text-align:center}.profile-error:empty{display:none}.profile-btn-save{width:100%;max-width:18em;padding:.7em;background:#1f335a;border:2px solid #6ea3ff;border-radius:4px;color:#d4e7ff;font-family:"Press Start 2P",monospace;font-size:.7em;cursor:pointer;transition:background .15s}.profile-btn-save:hover:not(:disabled){background:#2a4470}.profile-btn-save:disabled{opacity:.5;cursor:default}.profile-btn-back{background:none;border:none;color:#6a8ab8;font-family:"Press Start 2P",monospace;font-size:.5em;cursor:pointer;padding:.5em;transition:color .15s}.profile-btn-back:hover{color:#9cc2ff}.profile-versus-stats{width:100%;max-width:18em;margin-top:.4em;padding:.5em 0;border-top:1px solid #1e3358;text-align:center}.profile-versus-stats:empty{display:none}.profile-stats-title{color:#6ea3ff;font-family:"Press Start 2P",monospace;font-size:.5em;margin-bottom:.5em}.profile-stats-row{display:flex;justify-content:center;align-items:center;gap:.4em;margin-bottom:.3em}.profile-stats-label{color:#6a8ab8;font-family:"Press Start 2P",monospace;font-size:.45em}.profile-stats-val{color:#d4e7ff;font-family:"Press Start 2P",monospace;font-size:.55em}.profile-stats-sep{color:#3a5a8a;font-family:"Press Start 2P",monospace;font-size:.45em}@media(max-width:768px){.game-canvas{width:100vw;height:auto;max-width:100vw;max-height:var(--app-height);border:none}.shell-side-fx,.shell-rave-overlay,.shell-rave-fallback-strip{display:none!important}.game-shell{grid-template-columns:1fr;justify-items:center}.canvas-wrapper{width:100vw;justify-self:stretch}body{align-items:flex-start}}@media(max-width:768px)and (orientation:landscape){.game-canvas{width:auto;height:auto;max-width:100vw;max-height:var(--app-height)}.canvas-wrapper{width:auto;justify-self:center}body{align-items:center}}.boot-overlay-root{position:absolute;z-index:10000;display:flex;align-items:center;justify-content:center;padding:0;background:#02040b;pointer-events:auto;height:var(--app-height);width:auto;aspect-ratio:360 / var(--canvas-h, 640);max-width:100vw;top:50%;left:50%;transform:translate(-50%,-50%);border:2px solid #1a0e2e;border-radius:0;overflow:hidden}.post-login-disclaimer-root,.post-login-a2hs-root{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:0;background:#02040b;pointer-events:auto}.boot-overlay-state{width:100%;height:100%}.boot-intro-screen{width:100%;height:100%;background:#02040b url(/assets/icons/loading-space-bg.png) center / cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.boot-intro-game-logo{width:min(50vw,360px);max-width:100%;height:auto;opacity:0;transform:scale(0);position:relative;z-index:2}.boot-intro-game-logo.is-visible{animation:logo-bounce-in .5s cubic-bezier(.34,1.3,.64,1) forwards,logo-pulse 3s ease-in-out .5s infinite}@keyframes logo-bounce-in{0%{opacity:0;transform:scale(0);filter:drop-shadow(0 0 0px rgba(180,100,255,0))}50%{opacity:1;transform:scale(1.06);filter:drop-shadow(0 0 20px rgba(180,100,255,.5))}75%{transform:scale(.98);filter:drop-shadow(0 0 6px rgba(180,100,255,.2))}to{opacity:1;transform:scale(1);filter:drop-shadow(0 0 0px rgba(180,100,255,0))}}@keyframes logo-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 0px rgba(180,100,255,0))}50%{transform:scale(1.03);filter:drop-shadow(0 0 18px rgba(180,100,255,.45))}}.boot-intro-character{position:absolute;width:clamp(72px,16vw,120px);height:auto;image-rendering:pixelated;z-index:1;opacity:0;pointer-events:none}@keyframes char-float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-12px) rotate(3deg)}50%{transform:translateY(-20px) rotate(0)}75%{transform:translateY(-8px) rotate(-3deg)}}.boot-intro-dev-row{position:absolute;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%) translateY(20px);display:flex;align-items:center;justify-content:center;gap:clamp(12px,3vw,24px);opacity:0;transition:opacity .35s ease-out,transform .35s ease-out}.boot-intro-dev-row.is-visible{opacity:.35;transform:translate(-50%) translateY(0)}.boot-intro-dev-head{width:clamp(17px,3vw,26px);height:auto;filter:brightness(.5)}.boot-intro-dev-wordmark{width:min(28vw,160px);height:auto;filter:brightness(.5)}.boot-disclaimer-screen,.boot-a2hs-screen,.boot-asset-error-screen{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0a1020,#03050b)}.boot-disclaimer-card,.boot-a2hs-modal,.boot-asset-error-card{width:min(94vw,760px);padding:clamp(20px,3vw,34px);border-radius:14px;border:1px solid rgba(109,169,255,.3);background:#060b18f2;box-shadow:0 24px 64px #0000008c}.boot-disclaimer-title,.boot-a2hs-title,.boot-asset-error-title{margin:0 0 14px;color:#e9f2ff;font-family:"Press Start 2P",monospace;font-size:clamp(12px,2.3vw,20px);line-height:1.45}.boot-disclaimer-text,.boot-a2hs-body,.boot-asset-error-body{margin:0;color:#c8d9ff;font-size:clamp(13px,2.1vw,18px);line-height:1.55}.boot-disclaimer-actions{margin-top:clamp(16px,2.8vw,26px);display:flex;gap:12px;flex-wrap:wrap}.boot-btn{border:none;border-radius:10px;min-width:120px;padding:12px 16px;font-family:"Press Start 2P",monospace;font-size:clamp(10px,1.8vw,13px);cursor:pointer}.boot-btn-primary{background:#66dbff;color:#05111f}.boot-btn-secondary{background:#2f3b53;color:#e0ebff}.boot-a2hs-modal{position:relative;width:min(92vw,460px);text-align:center}.boot-a2hs-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:none;border-radius:999px;cursor:pointer;font-family:"Press Start 2P",monospace;font-size:11px;color:#ecf3ff;background:#24314a}.boot-a2hs-icon-button{margin-top:16px;border:none;background:transparent;cursor:pointer;padding:0}.boot-a2hs-icon-button:disabled{opacity:.65;cursor:wait}.boot-a2hs-icon{width:min(48vw,180px);height:min(48vw,180px);object-fit:cover;border-radius:22px;border:2px solid #6dc2ff;box-shadow:0 14px 34px #0006}.boot-a2hs-inline{margin:14px 0 0;color:#7ec3ff;font-family:"Press Start 2P",monospace;font-size:10px;line-height:1.6;opacity:0;transition:opacity .18s ease-out}.boot-a2hs-inline.is-visible{opacity:1}.boot-asset-error-list{margin:14px 0 0;padding-left:18px;color:#ffbcbc;line-height:1.6;font-family:"Press Start 2P",monospace;font-size:10px}.lobby-chat-input::placeholder{color:#6cc8ff99;opacity:1}
