* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-family: Arial, Helvetica, sans-serif; color: #1f2937; background: #f5f7fb; }
.portal { max-width: 860px; margin: 0 auto; padding: 40px 20px; text-align: center; }
h1 { font-size: clamp(32px, 6vw, 52px); margin: 0 0 24px; }
.card-form { max-width: 360px; margin: 0 auto; padding: 28px; background: #fff; border-radius: 24px; box-shadow: 0 24px 60px rgba(15,23,42,.12); display: grid; gap: 14px; text-align: left; }
label { font-weight: 800; display: grid; gap: 6px; }
input { font: inherit; padding: 12px; border: 2px solid #cbd5e1; border-radius: 12px; }
.btn { display: inline-block; border: 0; border-radius: 14px; padding: 13px 20px; background: #111827; color: #fff; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.btn.secondary { background: #eef2f7; color: #1f2937; }
.error { min-height: 22px; margin: 0; color: #b91c1c; font-weight: 700; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-bottom: 32px; }
.game { display: grid; gap: 8px; place-items: center; padding: 28px 16px; border-radius: 28px; background: #fff; color: inherit; text-decoration: none; font-size: 26px; font-weight: 900; box-shadow: 0 12px 30px rgba(15,23,42,.10); }
.game span { font-size: 72px; line-height: 1; }
.game small { font-size: 15px; color: #64748b; }
a.game:hover { transform: translateY(-3px); }
.game.soon { opacity: .5; }
