valtech-components 4.0.430 → 4.0.432

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -58,7 +58,7 @@ import fixWebmDuration from 'fix-webm-duration';
58
58
  * Current version of valtech-components.
59
59
  * This is automatically updated during the publish process.
60
60
  */
61
- const VERSION = '4.0.430';
61
+ const VERSION = '4.0.432';
62
62
 
63
63
  // Control de estado de refresco (singleton a nivel de módulo)
64
64
  let isRefreshing = false;
@@ -62466,6 +62466,8 @@ const MINI_GAMES_I18N = {
62466
62466
  christianityYourBattle: 'Tu zona de batalla',
62467
62467
  christianityOpponentHand: 'Mano rival',
62468
62468
  christianitySharedZone: 'Zona compartida',
62469
+ christianityMatch: 'Match',
62470
+ christianityMatchScore: 'Marcador de match',
62469
62471
  christianityHistory: 'Historia',
62470
62472
  christianityDeck: 'Mazo',
62471
62473
  christianityPlace: 'Lugar',
@@ -62493,6 +62495,9 @@ const MINI_GAMES_I18N = {
62493
62495
  christianityCharacterBody: 'Entra a batalla y debe esperar un turno para atacar.',
62494
62496
  christianityCharacterReady: 'Listo para atacar.',
62495
62497
  christianityCharacterExhausted: 'No puede atacar todavía.',
62498
+ christianityDeckBody: 'La primera carta de esta pila se roba automaticamente al comenzar cada turno.',
62499
+ christianityClosePreview: 'Cerrar previsualizacion de carta',
62500
+ christianityCloseHistory: 'Cerrar historia',
62496
62501
  christianityHistoryEmpty: 'Todavía no hay cartas en historia.',
62497
62502
  soonTitle: 'Próximamente',
62498
62503
  openGame: 'Jugar',
@@ -62884,6 +62889,8 @@ const MINI_GAMES_I18N = {
62884
62889
  christianityYourBattle: 'Your battle zone',
62885
62890
  christianityOpponentHand: 'Opponent hand',
62886
62891
  christianitySharedZone: 'Shared zone',
62892
+ christianityMatch: 'Match',
62893
+ christianityMatchScore: 'Match score',
62887
62894
  christianityHistory: 'History',
62888
62895
  christianityDeck: 'Deck',
62889
62896
  christianityPlace: 'Place',
@@ -62911,6 +62918,9 @@ const MINI_GAMES_I18N = {
62911
62918
  christianityCharacterBody: 'Enters battle and must wait one turn before attacking.',
62912
62919
  christianityCharacterReady: 'Ready to attack.',
62913
62920
  christianityCharacterExhausted: 'Cannot attack yet.',
62921
+ christianityDeckBody: 'The top card in this pile is drawn automatically at the start of each turn.',
62922
+ christianityClosePreview: 'Close card preview',
62923
+ christianityCloseHistory: 'Close history',
62914
62924
  christianityHistoryEmpty: 'There are no cards in history yet.',
62915
62925
  soonTitle: 'Coming soon',
62916
62926
  openGame: 'Play',
@@ -67917,6 +67927,26 @@ const STARTER_CARDS = {
67917
67927
  p_elder: { id: 'p_elder', name: 'Elder', type: 'character', cost: 3, attack: 2, life: 4 },
67918
67928
  p_champion: { id: 'p_champion', name: 'Champion', type: 'character', cost: 4, attack: 4, life: 4 },
67919
67929
  };
67930
+ const STARTING_SHARED_DECK = [
67931
+ 'o_simple',
67932
+ 'p_scout',
67933
+ 'o_simple',
67934
+ 'p_guard',
67935
+ 'p_warrior',
67936
+ 'o_simple',
67937
+ 'p_elder',
67938
+ 'p_scout',
67939
+ 'o_simple',
67940
+ 'p_champion',
67941
+ 'p_guard',
67942
+ 'o_simple',
67943
+ 'p_warrior',
67944
+ 'p_scout',
67945
+ 'o_simple',
67946
+ 'p_elder',
67947
+ 'p_guard',
67948
+ 'o_simple',
67949
+ ];
67920
67950
  const STARTING_GAME = {
67921
67951
  gameId: 'mock-christianity',
67922
67952
  status: 'in_progress',
@@ -67924,12 +67954,15 @@ const STARTING_GAME = {
67924
67954
  turnOwner: 'P1',
67925
67955
  revision: 0,
67926
67956
  turnCount: 1,
67927
- sharedDeckCount: 12,
67957
+ matchScore: { P1: 1, P2: 0 },
67958
+ sharedDeck: STARTING_SHARED_DECK,
67928
67959
  historyZone: [],
67929
67960
  players: {
67930
67961
  P1: {
67931
67962
  seat: 'P1',
67932
67963
  displayName: 'Jugador',
67964
+ avatar: 'J',
67965
+ avatarColor: '#2563eb',
67933
67966
  leaderName: 'Adam',
67934
67967
  leaderHp: 15,
67935
67968
  leaderMaxHp: 15,
@@ -67941,6 +67974,8 @@ const STARTING_GAME = {
67941
67974
  P2: {
67942
67975
  seat: 'P2',
67943
67976
  displayName: 'Rival',
67977
+ avatar: 'R',
67978
+ avatarColor: '#b45309',
67944
67979
  leaderName: 'Noah',
67945
67980
  leaderHp: 15,
67946
67981
  leaderMaxHp: 15,
@@ -67971,6 +68006,7 @@ class ChristianityGameComponent {
67971
68006
  this.selectedHandCard = signal(null);
67972
68007
  this.selectedAttacker = signal(null);
67973
68008
  this.selectedPreview = signal(null);
68009
+ this.previewTilt = signal({ rotateX: 5, rotateY: -5, shiftX: 0, shiftY: 0 });
67974
68010
  this.showHistory = signal(false);
67975
68011
  this.player = computed(() => this.game().players.P1);
67976
68012
  this.opponent = computed(() => this.game().players.P2);
@@ -68158,6 +68194,7 @@ class ChristianityGameComponent {
68158
68194
  endTurn() {
68159
68195
  this.selectedHandCard.set(null);
68160
68196
  this.selectedAttacker.set(null);
68197
+ this.selectedPreview.set(null);
68161
68198
  this.game.update(game => {
68162
68199
  const next = structuredClone(game);
68163
68200
  next.turnOwner = next.turnOwner === 'P1' ? 'P2' : 'P1';
@@ -68166,8 +68203,21 @@ class ChristianityGameComponent {
68166
68203
  current.offeringPlayedThisTurn = false;
68167
68204
  current.offerings = current.offerings.map(offering => ({ ...offering, ready: true }));
68168
68205
  current.battleZone = current.battleZone.map(card => ({ ...card, canAttack: true }));
68206
+ const drawnCard = next.sharedDeck.shift();
68207
+ if (drawnCard) {
68208
+ if (current.hand) {
68209
+ current.hand.push(drawnCard);
68210
+ }
68211
+ else {
68212
+ current.handCount = (current.handCount ?? 0) + 1;
68213
+ }
68214
+ }
68169
68215
  next.revision++;
68170
- next.log = [`Turno de ${current.displayName}.`, ...next.log].slice(0, 4);
68216
+ next.log = [
68217
+ drawnCard ? `${current.displayName} roba una carta.` : `El mazo esta vacio.`,
68218
+ `Turno de ${current.displayName}.`,
68219
+ ...next.log,
68220
+ ].slice(0, 4);
68171
68221
  return next;
68172
68222
  });
68173
68223
  }
@@ -68176,11 +68226,25 @@ class ChristianityGameComponent {
68176
68226
  this.selectedHandCard.set(null);
68177
68227
  this.selectedAttacker.set(null);
68178
68228
  this.selectedPreview.set(null);
68229
+ this.showHistory.set(false);
68179
68230
  }
68180
- historyNames() {
68181
- return this.game()
68182
- .historyZone.map(cardId => this.cardDefinition(cardId).name)
68183
- .join(', ');
68231
+ closePreview() {
68232
+ this.selectedPreview.set(null);
68233
+ this.resetPreviewTilt();
68234
+ }
68235
+ tiltPreview(event) {
68236
+ const bounds = event.currentTarget.getBoundingClientRect();
68237
+ const x = (event.clientX - bounds.left) / bounds.width - 0.5;
68238
+ const y = (event.clientY - bounds.top) / bounds.height - 0.5;
68239
+ this.previewTilt.set({
68240
+ rotateX: 5 - y * 18,
68241
+ rotateY: -5 + x * 18,
68242
+ shiftX: x * 10,
68243
+ shiftY: y * 10,
68244
+ });
68245
+ }
68246
+ resetPreviewTilt() {
68247
+ this.previewTilt.set({ rotateX: 5, rotateY: -5, shiftX: 0, shiftY: 0 });
68184
68248
  }
68185
68249
  cleanupDestroyed(player, game) {
68186
68250
  const destroyed = player.battleZone.filter(card => card.currentHp <= 0);
@@ -68206,6 +68270,14 @@ class ChristianityGameComponent {
68206
68270
  body: this.t('christianityOfferingBody'),
68207
68271
  });
68208
68272
  }
68273
+ inspectDeck() {
68274
+ this.selectedPreview.set({
68275
+ title: this.t('christianityDeck'),
68276
+ eyebrow: this.t('christianitySharedZone'),
68277
+ meta: `${this.game().sharedDeck.length}`,
68278
+ body: this.t('christianityDeckBody'),
68279
+ });
68280
+ }
68209
68281
  inspectHandCard(cardId) {
68210
68282
  const card = this.cardDefinition(cardId);
68211
68283
  this.selectedPreview.set({
@@ -68215,6 +68287,10 @@ class ChristianityGameComponent {
68215
68287
  body: card.type === 'offering' ? this.t('christianityOfferingBody') : this.t('christianityCharacterBody'),
68216
68288
  });
68217
68289
  }
68290
+ inspectHistoryCard(cardId) {
68291
+ this.showHistory.set(false);
68292
+ this.inspectHandCard(cardId);
68293
+ }
68218
68294
  inspectCharacter(card) {
68219
68295
  this.selectedPreview.set({
68220
68296
  title: card.name,
@@ -68246,36 +68322,65 @@ class ChristianityGameComponent {
68246
68322
  </div>
68247
68323
  </section>
68248
68324
 
68249
- <section class="christianity-hand-fan christianity-hand-fan--opponent" [attr.aria-label]="t('christianityOpponentHand')">
68250
- @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68251
- <button
68252
- type="button"
68253
- class="christianity-card-preview-card christianity-card-preview-card--back"
68254
- [style.transform]="fanTransform($index, opponentHandCount(), true)"
68255
- [attr.aria-label]="t('christianityHiddenCard')"
68256
- ></button>
68257
- }
68325
+ <section class="christianity-match-strip" [attr.aria-label]="t('christianityMatchScore')">
68326
+ <article class="christianity-match-player">
68327
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68328
+ <div>
68329
+ <strong>{{ player().displayName }}</strong>
68330
+ <small>{{ player().leaderName }} · {{ player().leaderHp }}/{{ player().leaderMaxHp }}</small>
68331
+ </div>
68332
+ </article>
68333
+ <div class="christianity-scoreboard">
68334
+ <span>{{ t('christianityMatch') }}</span>
68335
+ <strong>{{ game().matchScore.P1 }}-{{ game().matchScore.P2 }}</strong>
68336
+ </div>
68337
+ <article class="christianity-match-player christianity-match-player--opponent">
68338
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68339
+ <div>
68340
+ <strong>{{ opponent().displayName }}</strong>
68341
+ <small>{{ opponent().leaderName }} · {{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</small>
68342
+ </div>
68343
+ </article>
68258
68344
  </section>
68259
68345
 
68260
68346
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68261
- <section class="christianity-player-rack christianity-player-rack--opponent">
68262
- <div class="christianity-offerings-zone">
68263
- @for (offering of opponent().offerings; track offering.instanceId) {
68264
- <button
68265
- type="button"
68266
- class="christianity-card-mini christianity-card-mini--offering"
68267
- [class.is-exhausted]="!offering.ready"
68268
- (click)="inspectOffering(offering)"
68269
- >
68270
- <span>{{ t('christianityOfferingCard') }}</span>
68271
- <strong>+{{ offering.value }}</strong>
68272
- </button>
68273
- }
68274
- </div>
68275
- <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68276
- <span>{{ opponent().leaderName }}</span>
68277
- <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68278
- </button>
68347
+ <section class="christianity-player-side christianity-player-side--opponent">
68348
+ <section class="christianity-player-rack christianity-player-rack--opponent">
68349
+ <div class="christianity-offerings-zone">
68350
+ @for (offering of opponent().offerings; track offering.instanceId) {
68351
+ <button
68352
+ type="button"
68353
+ class="christianity-card-mini christianity-card-mini--offering"
68354
+ [class.is-exhausted]="!offering.ready"
68355
+ (click)="inspectOffering(offering)"
68356
+ >
68357
+ <span>{{ t('christianityOfferingCard') }}</span>
68358
+ <strong>+{{ offering.value }}</strong>
68359
+ </button>
68360
+ }
68361
+ </div>
68362
+ <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68363
+ <span>{{ opponent().leaderName }}</span>
68364
+ <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68365
+ </button>
68366
+ <div class="christianity-hand-count">
68367
+ <span>{{ t('christianityHand') }}</span>
68368
+ <strong>{{ opponentHandCount() }}</strong>
68369
+ </div>
68370
+ </section>
68371
+
68372
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68373
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68374
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68375
+ <button
68376
+ type="button"
68377
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68378
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68379
+ [attr.aria-label]="t('christianityHiddenCard')"
68380
+ ></button>
68381
+ }
68382
+ </div>
68383
+ </section>
68279
68384
  </section>
68280
68385
 
68281
68386
  <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
@@ -68297,14 +68402,20 @@ class ChristianityGameComponent {
68297
68402
  </section>
68298
68403
 
68299
68404
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
68300
- <button type="button" class="christianity-zone-card" (click)="showHistory.set(!showHistory())">
68405
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--history" (click)="showHistory.set(true)">
68406
+ <i aria-hidden="true"></i>
68407
+ <i aria-hidden="true"></i>
68408
+ <i aria-hidden="true"></i>
68301
68409
  <span>{{ t('christianityHistory') }}</span>
68302
68410
  <strong>{{ game().historyZone.length }}</strong>
68303
68411
  </button>
68304
- <div class="christianity-zone-card" aria-live="polite">
68412
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--deck" aria-live="polite" (click)="inspectDeck()">
68413
+ <i aria-hidden="true"></i>
68414
+ <i aria-hidden="true"></i>
68415
+ <i aria-hidden="true"></i>
68305
68416
  <span>{{ t('christianityDeck') }}</span>
68306
- <strong>{{ game().sharedDeckCount }}</strong>
68307
- </div>
68417
+ <strong>{{ game().sharedDeck.length }}</strong>
68418
+ </button>
68308
68419
  <div class="christianity-zone-card">
68309
68420
  <span>{{ t('christianityPlace') }}</span>
68310
68421
  <strong>{{ t('christianityEmpty') }}</strong>
@@ -68348,9 +68459,15 @@ class ChristianityGameComponent {
68348
68459
  <span>{{ player().leaderName }}</span>
68349
68460
  <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68350
68461
  </button>
68351
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68352
- {{ t('christianityEndTurn') }}
68353
- </button>
68462
+ <div class="christianity-player-command">
68463
+ <div class="christianity-player-badge">
68464
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68465
+ <strong>{{ player().displayName }}</strong>
68466
+ </div>
68467
+ <button type="button" class="christianity-end-turn" (click)="endTurn()">
68468
+ {{ t('christianityEndTurn') }}
68469
+ </button>
68470
+ </div>
68354
68471
  </section>
68355
68472
  </section>
68356
68473
 
@@ -68385,7 +68502,17 @@ class ChristianityGameComponent {
68385
68502
  </section>
68386
68503
 
68387
68504
  @if (selectedPreview()) {
68388
- <aside class="christianity-floating-card" aria-live="polite">
68505
+ <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68506
+ <aside
68507
+ class="christianity-floating-card"
68508
+ aria-live="polite"
68509
+ [style.--preview-rotate-x]="previewTilt().rotateX + 'deg'"
68510
+ [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
68511
+ [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
68512
+ [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
68513
+ (pointermove)="tiltPreview($event)"
68514
+ (pointerleave)="resetPreviewTilt()"
68515
+ >
68389
68516
  <small>{{ selectedPreview()?.eyebrow }}</small>
68390
68517
  <strong>{{ selectedPreview()?.title }}</strong>
68391
68518
  <span>{{ selectedPreview()?.meta }}</span>
@@ -68406,17 +68533,36 @@ class ChristianityGameComponent {
68406
68533
  </section>
68407
68534
 
68408
68535
  @if (showHistory()) {
68409
- <section class="christianity-history">
68410
- <h2>{{ t('christianityHistory') }}</h2>
68536
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseHistory')" (click)="showHistory.set(false)"></button>
68537
+ <section class="christianity-history-drawer">
68538
+ <header>
68539
+ <h2>{{ t('christianityHistory') }}</h2>
68540
+ <span>{{ game().historyZone.length }}</span>
68541
+ </header>
68411
68542
  @if (game().historyZone.length) {
68412
- <p>{{ historyNames() }}</p>
68543
+ <div class="christianity-history-grid">
68544
+ @for (cardId of game().historyZone; track cardId + $index) {
68545
+ @let card = cardDefinition(cardId);
68546
+ <button type="button" class="christianity-card-preview-card" (click)="inspectHistoryCard(cardId)">
68547
+ <small>{{ card.type === 'offering' ? t('christianityOfferingCard') : t('christianityCharacterCard') }}</small>
68548
+ <span>{{ card.name }}</span>
68549
+ <strong>
68550
+ @if (card.type === 'offering') {
68551
+ +{{ card.life }}
68552
+ } @else {
68553
+ {{ card.attack }} / {{ card.life }}
68554
+ }
68555
+ </strong>
68556
+ </button>
68557
+ }
68558
+ </div>
68413
68559
  } @else {
68414
68560
  <p>{{ t('christianityHistoryEmpty') }}</p>
68415
68561
  }
68416
68562
  </section>
68417
68563
  }
68418
68564
  </main>
68419
- `, isInline: true, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-table{display:grid;gap:.75rem;padding:.55rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.7rem;margin-bottom:-1.1rem}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{min-height:4.8rem;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.55rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-floating-card{position:fixed;right:max(.75rem,env(safe-area-inset-right));bottom:max(5.8rem,env(safe-area-inset-bottom));z-index:10;display:grid;gap:.28rem;width:min(14rem,calc(100vw - 1.5rem));min-height:10rem;padding:.8rem;border:1px solid rgba(36,48,68,.18);border-radius:.6rem;background:#fffffff5;box-shadow:0 1.25rem 2.5rem #102a432e}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:1.05rem}.christianity-floating-card p{margin:0;font-size:.86rem;line-height:1.35}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-floating-card{right:.5rem;bottom:4.8rem}}\n"] }); }
68565
+ `, isInline: true, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player-side{display:grid;gap:.35rem;min-height:0}.christianity-player-side--opponent{padding:.25rem .3rem .05rem;border-radius:.7rem;background:#ffffff57}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.christianity-opponent-hand-area{display:grid;min-height:4.55rem;align-items:start;overflow:hidden}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.45rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-hand-count{display:grid;align-content:center;justify-items:center;width:100%;min-height:3.4rem;padding:.35rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#ffffffad}.christianity-hand-count span{color:#1f293394;font-size:.72rem}.christianity-hand-count strong{font-size:1.05rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;min-height:5.6rem;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:.62rem .72rem auto auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card{position:fixed;top:50%;left:50%;z-index:21;display:grid;gap:.45rem;width:min(20rem,calc(100vw - 2rem));min-height:min(27rem,calc(100vh - 5rem));padding:1rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(calc(-50% + var(--preview-shift-x, 0px)),calc(-50% + var(--preview-shift-y, 0px))) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;z-index:20;border:0;border-radius:0;background:#0f172a75}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.35rem,8vw,2rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-history-backdrop{z-index:22}.christianity-history-drawer{position:fixed;right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));left:max(.5rem,env(safe-area-inset-left));z-index:23;display:grid;gap:.75rem;max-height:min(27rem,calc(100vh - 4rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;overflow-y:auto;padding:.1rem .1rem .25rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }); }
68420
68566
  }
68421
68567
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
68422
68568
  type: Component,
@@ -68433,36 +68579,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68433
68579
  </div>
68434
68580
  </section>
68435
68581
 
68436
- <section class="christianity-hand-fan christianity-hand-fan--opponent" [attr.aria-label]="t('christianityOpponentHand')">
68437
- @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68438
- <button
68439
- type="button"
68440
- class="christianity-card-preview-card christianity-card-preview-card--back"
68441
- [style.transform]="fanTransform($index, opponentHandCount(), true)"
68442
- [attr.aria-label]="t('christianityHiddenCard')"
68443
- ></button>
68444
- }
68582
+ <section class="christianity-match-strip" [attr.aria-label]="t('christianityMatchScore')">
68583
+ <article class="christianity-match-player">
68584
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68585
+ <div>
68586
+ <strong>{{ player().displayName }}</strong>
68587
+ <small>{{ player().leaderName }} · {{ player().leaderHp }}/{{ player().leaderMaxHp }}</small>
68588
+ </div>
68589
+ </article>
68590
+ <div class="christianity-scoreboard">
68591
+ <span>{{ t('christianityMatch') }}</span>
68592
+ <strong>{{ game().matchScore.P1 }}-{{ game().matchScore.P2 }}</strong>
68593
+ </div>
68594
+ <article class="christianity-match-player christianity-match-player--opponent">
68595
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68596
+ <div>
68597
+ <strong>{{ opponent().displayName }}</strong>
68598
+ <small>{{ opponent().leaderName }} · {{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</small>
68599
+ </div>
68600
+ </article>
68445
68601
  </section>
68446
68602
 
68447
68603
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68448
- <section class="christianity-player-rack christianity-player-rack--opponent">
68449
- <div class="christianity-offerings-zone">
68450
- @for (offering of opponent().offerings; track offering.instanceId) {
68451
- <button
68452
- type="button"
68453
- class="christianity-card-mini christianity-card-mini--offering"
68454
- [class.is-exhausted]="!offering.ready"
68455
- (click)="inspectOffering(offering)"
68456
- >
68457
- <span>{{ t('christianityOfferingCard') }}</span>
68458
- <strong>+{{ offering.value }}</strong>
68459
- </button>
68460
- }
68461
- </div>
68462
- <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68463
- <span>{{ opponent().leaderName }}</span>
68464
- <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68465
- </button>
68604
+ <section class="christianity-player-side christianity-player-side--opponent">
68605
+ <section class="christianity-player-rack christianity-player-rack--opponent">
68606
+ <div class="christianity-offerings-zone">
68607
+ @for (offering of opponent().offerings; track offering.instanceId) {
68608
+ <button
68609
+ type="button"
68610
+ class="christianity-card-mini christianity-card-mini--offering"
68611
+ [class.is-exhausted]="!offering.ready"
68612
+ (click)="inspectOffering(offering)"
68613
+ >
68614
+ <span>{{ t('christianityOfferingCard') }}</span>
68615
+ <strong>+{{ offering.value }}</strong>
68616
+ </button>
68617
+ }
68618
+ </div>
68619
+ <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68620
+ <span>{{ opponent().leaderName }}</span>
68621
+ <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68622
+ </button>
68623
+ <div class="christianity-hand-count">
68624
+ <span>{{ t('christianityHand') }}</span>
68625
+ <strong>{{ opponentHandCount() }}</strong>
68626
+ </div>
68627
+ </section>
68628
+
68629
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68630
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68631
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68632
+ <button
68633
+ type="button"
68634
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68635
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68636
+ [attr.aria-label]="t('christianityHiddenCard')"
68637
+ ></button>
68638
+ }
68639
+ </div>
68640
+ </section>
68466
68641
  </section>
68467
68642
 
68468
68643
  <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
@@ -68484,14 +68659,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68484
68659
  </section>
68485
68660
 
68486
68661
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
68487
- <button type="button" class="christianity-zone-card" (click)="showHistory.set(!showHistory())">
68662
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--history" (click)="showHistory.set(true)">
68663
+ <i aria-hidden="true"></i>
68664
+ <i aria-hidden="true"></i>
68665
+ <i aria-hidden="true"></i>
68488
68666
  <span>{{ t('christianityHistory') }}</span>
68489
68667
  <strong>{{ game().historyZone.length }}</strong>
68490
68668
  </button>
68491
- <div class="christianity-zone-card" aria-live="polite">
68669
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--deck" aria-live="polite" (click)="inspectDeck()">
68670
+ <i aria-hidden="true"></i>
68671
+ <i aria-hidden="true"></i>
68672
+ <i aria-hidden="true"></i>
68492
68673
  <span>{{ t('christianityDeck') }}</span>
68493
- <strong>{{ game().sharedDeckCount }}</strong>
68494
- </div>
68674
+ <strong>{{ game().sharedDeck.length }}</strong>
68675
+ </button>
68495
68676
  <div class="christianity-zone-card">
68496
68677
  <span>{{ t('christianityPlace') }}</span>
68497
68678
  <strong>{{ t('christianityEmpty') }}</strong>
@@ -68535,9 +68716,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68535
68716
  <span>{{ player().leaderName }}</span>
68536
68717
  <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68537
68718
  </button>
68538
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68539
- {{ t('christianityEndTurn') }}
68540
- </button>
68719
+ <div class="christianity-player-command">
68720
+ <div class="christianity-player-badge">
68721
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68722
+ <strong>{{ player().displayName }}</strong>
68723
+ </div>
68724
+ <button type="button" class="christianity-end-turn" (click)="endTurn()">
68725
+ {{ t('christianityEndTurn') }}
68726
+ </button>
68727
+ </div>
68541
68728
  </section>
68542
68729
  </section>
68543
68730
 
@@ -68572,7 +68759,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68572
68759
  </section>
68573
68760
 
68574
68761
  @if (selectedPreview()) {
68575
- <aside class="christianity-floating-card" aria-live="polite">
68762
+ <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68763
+ <aside
68764
+ class="christianity-floating-card"
68765
+ aria-live="polite"
68766
+ [style.--preview-rotate-x]="previewTilt().rotateX + 'deg'"
68767
+ [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
68768
+ [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
68769
+ [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
68770
+ (pointermove)="tiltPreview($event)"
68771
+ (pointerleave)="resetPreviewTilt()"
68772
+ >
68576
68773
  <small>{{ selectedPreview()?.eyebrow }}</small>
68577
68774
  <strong>{{ selectedPreview()?.title }}</strong>
68578
68775
  <span>{{ selectedPreview()?.meta }}</span>
@@ -68593,17 +68790,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68593
68790
  </section>
68594
68791
 
68595
68792
  @if (showHistory()) {
68596
- <section class="christianity-history">
68597
- <h2>{{ t('christianityHistory') }}</h2>
68793
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseHistory')" (click)="showHistory.set(false)"></button>
68794
+ <section class="christianity-history-drawer">
68795
+ <header>
68796
+ <h2>{{ t('christianityHistory') }}</h2>
68797
+ <span>{{ game().historyZone.length }}</span>
68798
+ </header>
68598
68799
  @if (game().historyZone.length) {
68599
- <p>{{ historyNames() }}</p>
68800
+ <div class="christianity-history-grid">
68801
+ @for (cardId of game().historyZone; track cardId + $index) {
68802
+ @let card = cardDefinition(cardId);
68803
+ <button type="button" class="christianity-card-preview-card" (click)="inspectHistoryCard(cardId)">
68804
+ <small>{{ card.type === 'offering' ? t('christianityOfferingCard') : t('christianityCharacterCard') }}</small>
68805
+ <span>{{ card.name }}</span>
68806
+ <strong>
68807
+ @if (card.type === 'offering') {
68808
+ +{{ card.life }}
68809
+ } @else {
68810
+ {{ card.attack }} / {{ card.life }}
68811
+ }
68812
+ </strong>
68813
+ </button>
68814
+ }
68815
+ </div>
68600
68816
  } @else {
68601
68817
  <p>{{ t('christianityHistoryEmpty') }}</p>
68602
68818
  }
68603
68819
  </section>
68604
68820
  }
68605
68821
  </main>
68606
- `, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-table{display:grid;gap:.75rem;padding:.55rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.7rem;margin-bottom:-1.1rem}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{min-height:4.8rem;background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.55rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-floating-card{position:fixed;right:max(.75rem,env(safe-area-inset-right));bottom:max(5.8rem,env(safe-area-inset-bottom));z-index:10;display:grid;gap:.28rem;width:min(14rem,calc(100vw - 1.5rem));min-height:10rem;padding:.8rem;border:1px solid rgba(36,48,68,.18);border-radius:.6rem;background:#fffffff5;box-shadow:0 1.25rem 2.5rem #102a432e}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:1.05rem}.christianity-floating-card p{margin:0;font-size:.86rem;line-height:1.35}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-floating-card{right:.5rem;bottom:4.8rem}}\n"] }]
68822
+ `, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player-side{display:grid;gap:.35rem;min-height:0}.christianity-player-side--opponent{padding:.25rem .3rem .05rem;border-radius:.7rem;background:#ffffff57}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.christianity-opponent-hand-area{display:grid;min-height:4.55rem;align-items:start;overflow:hidden}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.45rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-hand-count{display:grid;align-content:center;justify-items:center;width:100%;min-height:3.4rem;padding:.35rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#ffffffad}.christianity-hand-count span{color:#1f293394;font-size:.72rem}.christianity-hand-count strong{font-size:1.05rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;min-height:5.6rem;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:.62rem .72rem auto auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card{position:fixed;top:50%;left:50%;z-index:21;display:grid;gap:.45rem;width:min(20rem,calc(100vw - 2rem));min-height:min(27rem,calc(100vh - 5rem));padding:1rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(calc(-50% + var(--preview-shift-x, 0px)),calc(-50% + var(--preview-shift-y, 0px))) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;z-index:20;border:0;border-radius:0;background:#0f172a75}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.35rem,8vw,2rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-history-backdrop{z-index:22}.christianity-history-drawer{position:fixed;right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));left:max(.5rem,env(safe-area-inset-left));z-index:23;display:grid;gap:.75rem;max-height:min(27rem,calc(100vh - 4rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;overflow-y:auto;padding:.1rem .1rem .25rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }]
68607
68823
  }], ctorParameters: () => [] });
68608
68824
 
68609
68825
  addIcons({ refreshOutline, sparklesOutline, trophyOutline });