@font-face{font-family:Balatro;src:url('/assets/m6x11plus.ttf') format('truetype');font-display:swap}
@font-face{font-family:BalatroFallback;src:url('/assets/NotoSans-Bold.ttf') format('truetype');font-display:swap;size-adjust:72%}
:root{color-scheme:dark;font-family:Balatro,BalatroFallback,monospace;color:#f5eee4;background:#18282c;font-synthesis:none;--shadow:#17282b;--auth-bottom:max(4.8vh,env(safe-area-inset-bottom));--ui-font:clamp(20px,3.7vh,29px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;touch-action:manipulation}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible{outline:3px solid #ffd126;outline-offset:3px}[hidden]{display:none!important}
.game-shell{position:fixed;inset:0;background:#18282c;overflow:hidden}#game-mount,#game-mount iframe{border:0;width:100%;height:100%;display:block}.boot-status{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-size:28px}
.auth-menu{position:fixed;z-index:20;left:50%;bottom:var(--auth-bottom);transform:translateX(-50%);width:min(920px,88vw);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,1.05fr);align-items:end;gap:14px;padding:14px 16px 18px;background:#334b50;border:3px solid #6b858a;border-radius:12px;box-shadow:0 7px #15292e,inset 0 2px #91a6a844;text-shadow:0 2px #0006}
.auth-field{min-width:0}.auth-field label{display:block;font-size:var(--ui-font);line-height:1;margin:0 0 8px}.auth-field input{border:2px solid #69868c;border-radius:6px;background:#182c30;color:#fff;font-size:var(--ui-font);padding:6px 10px;min-width:0;width:100%;height:clamp(38px,6.7vh,49px);box-shadow:inset 0 3px #101f23;line-height:1.1}.auth-field input[type=password]{letter-spacing:2px}
.auth-actions{display:flex;gap:10px;padding-bottom:3px}.button{display:block;flex:1;width:100%;border-radius:7px;font-size:var(--ui-font);line-height:1;padding:10px 8px;min-height:clamp(38px,6.7vh,49px);background:#ff4c40;box-shadow:0 5px #9d2d2a;text-shadow:0 2px #0005;transition:filter .1s}.button.purple{background:#964dff;box-shadow:0 5px #582d96}.button.blue{background:#2d5fa8;box-shadow:0 5px #1b3966}.button.muted{background:#56676b;box-shadow:0 5px #25373c}.button:hover{filter:brightness(1.12)}.button:active{filter:brightness(.76);transform:translateY(3px);box-shadow:0 2px var(--shadow)}
.error{grid-column:1/-1;font-size:clamp(19px,3vh,24px);color:#ffd4c9;line-height:1.1;margin:0;text-align:center}
.panel{background:#3d4c4e;border:3px solid #7a8686;border-radius:13px;box-shadow:0 7px #172b2e,inset 0 2px #acb2ad33;text-shadow:0 2px #0006}.notice{color:#fff;max-width:440px;width:calc(100% - 38px);padding:24px;z-index:100}.notice::backdrop{background:#071618b8}.notice h2{font-size:34px;font-weight:normal;margin:0 0 15px}.notice p{font-size:25px;line-height:1.3;white-space:pre-line;margin:0 0 22px}.notice .button+.button{margin-top:12px}
@media(max-height:500px) and (min-width:650px){.auth-menu{width:90vw;gap:10px;padding:9px 12px 12px;border-width:2px;border-radius:8px}.auth-field label{margin-bottom:5px}.auth-actions{gap:8px}}
@media(max-width:649px){.auth-menu{width:min(440px,90vw);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:13px 14px 17px}.auth-actions{grid-column:1/-1}.auth-field input{height:44px}.button{min-height:44px}.auth-field label{font-size:24px}}
.portrait-fullscreen{display:none;position:fixed;z-index:30;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:clamp(52px,12vw,68px);height:clamp(52px,12vw,68px);padding:0;background:transparent;border-radius:8px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:filter .1s,transform .1s}
.portrait-fullscreen::before{content:"";position:absolute;inset:15%;background:#3a5055;border-radius:4px;pointer-events:none}.portrait-fullscreen img{position:relative;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;image-rendering:pixelated}.portrait-fullscreen:active{filter:brightness(.72);transform:translateY(2px)}
@media(orientation:portrait){.portrait-fullscreen{display:block}}
@media(hover:hover){.portrait-fullscreen:hover{filter:brightness(1.12)}.portrait-fullscreen:active{filter:brightness(.72)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
