body[data-session]:not([data-session='active']) :is(#hub,#game-screen,.club-header,.mobile-dock){visibility:hidden!important;pointer-events:none!important}
#session-gate{display:none;position:fixed;inset:0;z-index:100;background:var(--club-bg,#f4f7fa);overflow:auto;padding:24px;box-sizing:border-box;align-items:center;justify-content:center}
body[data-session]:not([data-session='active']) #session-gate{display:flex}
.session-gate-card{max-width:460px;padding:28px;border:1px solid var(--club-line);border-radius:26px;background:var(--surface);color:var(--text);box-shadow:var(--club-soft-shadow);line-height:1.7}
.session-gate-card>span{font-size:40px}.session-gate-card h1{font-family:var(--club-title-font);font-size:26px;line-height:1.2}.session-gate-card p{font-size:14px;color:var(--sub)}.session-gate-card label{display:grid;gap:10px}.session-gate-card input{box-sizing:border-box;width:100%;min-height:48px}.session-gate-card button{min-height:48px;margin-top:15px}
.session-gate-card>#session-signin{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:52px;padding:13px 20px;margin-top:20px;border-radius:16px;text-decoration:none;font-weight:700;text-align:center}.session-gate-card:has(#session-signin)>button{display:block;width:100%}#session-signin:focus-visible{outline:3px solid var(--mint);outline-offset:4px}

body:is([data-session="suspended"],[data-session="deleted"]):is([data-screen="contact"],[data-screen="privacy"],[data-screen="account"]) #session-gate{display:none}
body:is([data-session="suspended"],[data-session="deleted"]):is([data-screen="contact"],[data-screen="privacy"],[data-screen="account"]) #hub{visibility:visible!important;pointer-events:auto!important}
.session-information{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.session-information button{min-height:44px;padding:10px 14px;border-radius:14px;border:1px solid var(--club-line);background:var(--surface);color:var(--text)}

#session-gate{flex-direction:column;justify-content:safe center;gap:16px}.session-gate-card{box-sizing:border-box;max-width:min(460px,100%);flex-shrink:0}
/* Hidden club content keeps its layout height. Lock only that background while
   the fixed gate is shown; the gate remains its own scroll container. The same
   legal-information exceptions as above must remain normal scrollable pages. */
html:has(>body[data-session]:not([data-session="active"]):not(:is([data-session="suspended"],[data-session="deleted"]):is([data-screen="contact"],[data-screen="privacy"],[data-screen="account"]))>#session-gate:not([hidden])),
body[data-session]:not([data-session="active"]):not(:is([data-session="suspended"],[data-session="deleted"]):is([data-screen="contact"],[data-screen="privacy"],[data-screen="account"])):has(>#session-gate:not([hidden])){overflow:hidden}
#session-gate{overscroll-behavior:contain}
