@@ -35,7 +35,7 @@ export const REGISTRY_KEY_GAMES = 'gameSelector.games';
3535const FONT_FAMILY = 'monospace' ;
3636
3737/** Maximum card dimensions -- actual size may shrink to fit the grid. */
38- const MAX_CARD_W = 340 ;
38+ const MAX_CARD_W = 400 ;
3939const MAX_CARD_H = 180 ;
4040const CARD_GAP = 24 ;
4141const CARD_RADIUS = 12 ;
@@ -51,9 +51,9 @@ const THUMB_H = 68;
5151const THUMB_PAD = 8 ;
5252
5353/** Vertical space reserved for the heading area (title + subtitle). */
54- const HEADER_H = 110 ;
54+ const HEADER_H = 80 ;
5555/** Horizontal and bottom margin around the card grid. */
56- const GRID_MARGIN = 30 ;
56+ const GRID_MARGIN = 20 ;
5757
5858// ── Scene ──────────────────────────────────────────────────
5959
@@ -92,7 +92,7 @@ export class GameSelectorScene extends Phaser.Scene {
9292
9393 // Title
9494 this . add
95- . text ( GAME_W / 2 , 50 , 'Tableau Card Engine' , {
95+ . text ( GAME_W / 2 , 30 , 'Tableau Card Engine' , {
9696 fontSize : '32px' ,
9797 color : '#88ff88' ,
9898 fontFamily : FONT_FAMILY ,
@@ -102,7 +102,7 @@ export class GameSelectorScene extends Phaser.Scene {
102102
103103 // Subtitle
104104 this . add
105- . text ( GAME_W / 2 , 85 , 'Select a game to play' , {
105+ . text ( GAME_W / 2 , 58 , 'Select a game to play' , {
106106 fontSize : '16px' ,
107107 color : '#669966' ,
108108 fontFamily : FONT_FAMILY ,
@@ -123,8 +123,8 @@ export class GameSelectorScene extends Phaser.Scene {
123123 private computeGrid ( count : number ) : { cols : number ; rows : number } {
124124 if ( count <= 2 ) return { cols : count , rows : 1 } ;
125125 if ( count <= 4 ) return { cols : 2 , rows : Math . ceil ( count / 2 ) } ;
126- if ( count <= 6 ) return { cols : 3 , rows : Math . ceil ( count / 3 ) } ;
127- // 7 + games: 4 columns
126+ if ( count <= 9 ) return { cols : 3 , rows : Math . ceil ( count / 3 ) } ;
127+ // 10 + games: 4 columns
128128 return { cols : 4 , rows : Math . ceil ( count / 4 ) } ;
129129 }
130130
0 commit comments