body.welcomePage{margin:0;min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);overflow-y:auto;box-sizing:border-box;background:radial-gradient(ellipse at 45% 10%,#3b245c,#170f27 68%);color:#faf4e5}
.welcomePage .welcomeMain{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:480px;min-height:100dvh;padding:36px 24px 48px;box-sizing:border-box;margin:auto;gap:34px}
.welcomeBrand{display:flex;align-items:center;gap:14px}.welcomeBrand img{filter:drop-shadow(0 5px 2px #09061788)}.welcomeBrand>span{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:56px;letter-spacing:-4px;text-shadow:0 4px 0 #090615}
.welcomeCard{width:100%;box-sizing:border-box;padding:30px 24px;border:2px solid #806194;border-top-color:#bc9cd1;border-radius:26px;background:linear-gradient(145deg,#3c2b4c,#21172e);box-shadow:inset 0 2px 0 #e4ccff20,0 6px 0 #100919;text-align:center}
.welcomeEyebrow{font-size:9px;font-weight:800;letter-spacing:.13em;color:#c3a0ee}.welcomeCard h1{font-size:35px;letter-spacing:-1.2px;margin:15px 0}.welcomeCard p{font-size:14px;line-height:1.7;color:#cbb9db;margin:0 0 27px}
.welcomeSignIn,.welcomePage button.welcomeGuest{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;padding:14px 12px;border:2px solid #f1ffb4;border-bottom-color:#83a039;border-radius:15px;background:linear-gradient(#dfff83,#b5dc55);color:#222236;text-decoration:none;font-size:15px;font-weight:800;box-shadow:inset 0 2px 0 #fff5,0 5px 0 #100919}.welcomeSignIn>span{font-size:22px}.welcomeDivider{position:relative;margin:26px 0 20px;border-top:1px solid #725783}.welcomeDivider span{position:relative;top:-12px;background:#30213e;padding:0 12px;font-size:12px;color:#c3aace}
.welcomePage button.welcomeGuest{border-color:#9676ae;border-top-color:#d3b4e8;background:linear-gradient(#674b82,#3b294c);color:#f3e5fc;box-shadow:inset 0 2px 0 #ffe6ff22,0 5px 0 #100919;font-size:15px}.welcomeCard .welcomeGuestNote{font-size:11px;line-height:1.7;margin:18px 8px 0;color:#bba7cc}.welcomeCard #welcomeStatus{margin:14px 0 0;font-size:12px;color:#ffdc99}.welcomeCard #welcomeStatus:empty{display:none}.welcomePage a:focus-visible,.welcomePage button:focus-visible{outline:3px solid #97e8ff;outline-offset:5px}
@media(max-width:360px){.welcomePage .welcomeMain{padding:24px 18px}.welcomeCard{padding:25px 18px}.welcomeSignIn{font-size:13px}.welcomeCard h1{font-size:31px}}
body.welcomePage[data-ui]:not([data-session=true])>main.welcomeMain{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:480px;width:100%;min-height:100dvh;overflow:visible;padding:36px 24px 48px;margin:0 auto;gap:34px}

.welcomeGoogle{margin-bottom:14px;background:#fff;color:#242333;border-color:#eee;border-bottom-color:#c7c1ce}.welcomeGoogle .googleMark{font-family:Arial,sans-serif;font-size:23px;font-weight:700;color:#4285f4}

.welcomeAbout{width:100%;text-align:left}.welcomeAbout h2{font-family:'Bricolage Grotesque',sans-serif;font-size:24px;line-height:1.2;letter-spacing:-.6px;margin:8px 0 14px}.welcomeAbout p{font-size:13px;line-height:1.8;color:#cbb9db}.welcomeLegal{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 20px;width:100%;font-size:11px;color:#dbecaa;padding:10px 0}.welcomeLegal a{text-decoration:underline;text-underline-offset:4px}

/* The game shell fixes body height; welcome must grow rather than center
   overflowing content above the top of a short phone viewport. */
body.welcomePage[data-ui]:not([data-session=true]){display:block;height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto}
body.welcomePage[data-ui]:not([data-session=true])>main.welcomeMain{flex:none;justify-content:flex-start}
.welcomeMain>.welcomeBrand,.welcomeMain>.welcomeCard,.welcomeMain>.welcomeLegal{flex-shrink:0}
.welcomePage .welcomeBrand{color:#faf4e5;min-height:82px}
@media(max-height:700px){body.welcomePage[data-ui]:not([data-session=true])>main.welcomeMain{padding:24px 20px 32px;gap:24px}.welcomePage .welcomeBrand{min-height:64px}.welcomeBrand img{width:64px;height:64px}.welcomeBrand>span{font-size:48px;letter-spacing:-3px}}
