valtech-components 4.0.430 → 4.0.431

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.431';
62
62
 
63
63
  // Control de estado de refresco (singleton a nivel de módulo)
64
64
  let isRefreshing = false;
@@ -62493,6 +62493,9 @@ const MINI_GAMES_I18N = {
62493
62493
  christianityCharacterBody: 'Entra a batalla y debe esperar un turno para atacar.',
62494
62494
  christianityCharacterReady: 'Listo para atacar.',
62495
62495
  christianityCharacterExhausted: 'No puede atacar todavía.',
62496
+ christianityDeckBody: 'La primera carta de esta pila se roba automaticamente al comenzar cada turno.',
62497
+ christianityClosePreview: 'Cerrar previsualizacion de carta',
62498
+ christianityCloseHistory: 'Cerrar historia',
62496
62499
  christianityHistoryEmpty: 'Todavía no hay cartas en historia.',
62497
62500
  soonTitle: 'Próximamente',
62498
62501
  openGame: 'Jugar',
@@ -62911,6 +62914,9 @@ const MINI_GAMES_I18N = {
62911
62914
  christianityCharacterBody: 'Enters battle and must wait one turn before attacking.',
62912
62915
  christianityCharacterReady: 'Ready to attack.',
62913
62916
  christianityCharacterExhausted: 'Cannot attack yet.',
62917
+ christianityDeckBody: 'The top card in this pile is drawn automatically at the start of each turn.',
62918
+ christianityClosePreview: 'Close card preview',
62919
+ christianityCloseHistory: 'Close history',
62914
62920
  christianityHistoryEmpty: 'There are no cards in history yet.',
62915
62921
  soonTitle: 'Coming soon',
62916
62922
  openGame: 'Play',
@@ -67917,6 +67923,26 @@ const STARTER_CARDS = {
67917
67923
  p_elder: { id: 'p_elder', name: 'Elder', type: 'character', cost: 3, attack: 2, life: 4 },
67918
67924
  p_champion: { id: 'p_champion', name: 'Champion', type: 'character', cost: 4, attack: 4, life: 4 },
67919
67925
  };
67926
+ const STARTING_SHARED_DECK = [
67927
+ 'o_simple',
67928
+ 'p_scout',
67929
+ 'o_simple',
67930
+ 'p_guard',
67931
+ 'p_warrior',
67932
+ 'o_simple',
67933
+ 'p_elder',
67934
+ 'p_scout',
67935
+ 'o_simple',
67936
+ 'p_champion',
67937
+ 'p_guard',
67938
+ 'o_simple',
67939
+ 'p_warrior',
67940
+ 'p_scout',
67941
+ 'o_simple',
67942
+ 'p_elder',
67943
+ 'p_guard',
67944
+ 'o_simple',
67945
+ ];
67920
67946
  const STARTING_GAME = {
67921
67947
  gameId: 'mock-christianity',
67922
67948
  status: 'in_progress',
@@ -67924,12 +67950,14 @@ const STARTING_GAME = {
67924
67950
  turnOwner: 'P1',
67925
67951
  revision: 0,
67926
67952
  turnCount: 1,
67927
- sharedDeckCount: 12,
67953
+ sharedDeck: STARTING_SHARED_DECK,
67928
67954
  historyZone: [],
67929
67955
  players: {
67930
67956
  P1: {
67931
67957
  seat: 'P1',
67932
67958
  displayName: 'Jugador',
67959
+ avatar: 'J',
67960
+ avatarColor: '#2563eb',
67933
67961
  leaderName: 'Adam',
67934
67962
  leaderHp: 15,
67935
67963
  leaderMaxHp: 15,
@@ -67941,6 +67969,8 @@ const STARTING_GAME = {
67941
67969
  P2: {
67942
67970
  seat: 'P2',
67943
67971
  displayName: 'Rival',
67972
+ avatar: 'R',
67973
+ avatarColor: '#b45309',
67944
67974
  leaderName: 'Noah',
67945
67975
  leaderHp: 15,
67946
67976
  leaderMaxHp: 15,
@@ -68158,6 +68188,7 @@ class ChristianityGameComponent {
68158
68188
  endTurn() {
68159
68189
  this.selectedHandCard.set(null);
68160
68190
  this.selectedAttacker.set(null);
68191
+ this.selectedPreview.set(null);
68161
68192
  this.game.update(game => {
68162
68193
  const next = structuredClone(game);
68163
68194
  next.turnOwner = next.turnOwner === 'P1' ? 'P2' : 'P1';
@@ -68166,8 +68197,21 @@ class ChristianityGameComponent {
68166
68197
  current.offeringPlayedThisTurn = false;
68167
68198
  current.offerings = current.offerings.map(offering => ({ ...offering, ready: true }));
68168
68199
  current.battleZone = current.battleZone.map(card => ({ ...card, canAttack: true }));
68200
+ const drawnCard = next.sharedDeck.shift();
68201
+ if (drawnCard) {
68202
+ if (current.hand) {
68203
+ current.hand.push(drawnCard);
68204
+ }
68205
+ else {
68206
+ current.handCount = (current.handCount ?? 0) + 1;
68207
+ }
68208
+ }
68169
68209
  next.revision++;
68170
- next.log = [`Turno de ${current.displayName}.`, ...next.log].slice(0, 4);
68210
+ next.log = [
68211
+ drawnCard ? `${current.displayName} roba una carta.` : `El mazo esta vacio.`,
68212
+ `Turno de ${current.displayName}.`,
68213
+ ...next.log,
68214
+ ].slice(0, 4);
68171
68215
  return next;
68172
68216
  });
68173
68217
  }
@@ -68176,11 +68220,10 @@ class ChristianityGameComponent {
68176
68220
  this.selectedHandCard.set(null);
68177
68221
  this.selectedAttacker.set(null);
68178
68222
  this.selectedPreview.set(null);
68223
+ this.showHistory.set(false);
68179
68224
  }
68180
- historyNames() {
68181
- return this.game()
68182
- .historyZone.map(cardId => this.cardDefinition(cardId).name)
68183
- .join(', ');
68225
+ closePreview() {
68226
+ this.selectedPreview.set(null);
68184
68227
  }
68185
68228
  cleanupDestroyed(player, game) {
68186
68229
  const destroyed = player.battleZone.filter(card => card.currentHp <= 0);
@@ -68206,6 +68249,14 @@ class ChristianityGameComponent {
68206
68249
  body: this.t('christianityOfferingBody'),
68207
68250
  });
68208
68251
  }
68252
+ inspectDeck() {
68253
+ this.selectedPreview.set({
68254
+ title: this.t('christianityDeck'),
68255
+ eyebrow: this.t('christianitySharedZone'),
68256
+ meta: `${this.game().sharedDeck.length}`,
68257
+ body: this.t('christianityDeckBody'),
68258
+ });
68259
+ }
68209
68260
  inspectHandCard(cardId) {
68210
68261
  const card = this.cardDefinition(cardId);
68211
68262
  this.selectedPreview.set({
@@ -68215,6 +68266,10 @@ class ChristianityGameComponent {
68215
68266
  body: card.type === 'offering' ? this.t('christianityOfferingBody') : this.t('christianityCharacterBody'),
68216
68267
  });
68217
68268
  }
68269
+ inspectHistoryCard(cardId) {
68270
+ this.showHistory.set(false);
68271
+ this.inspectHandCard(cardId);
68272
+ }
68218
68273
  inspectCharacter(card) {
68219
68274
  this.selectedPreview.set({
68220
68275
  title: card.name,
@@ -68246,15 +68301,21 @@ class ChristianityGameComponent {
68246
68301
  </div>
68247
68302
  </section>
68248
68303
 
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
- }
68304
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68305
+ <div class="christianity-player-badge christianity-player-badge--opponent">
68306
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68307
+ <strong>{{ opponent().displayName }}</strong>
68308
+ </div>
68309
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68310
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68311
+ <button
68312
+ type="button"
68313
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68314
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68315
+ [attr.aria-label]="t('christianityHiddenCard')"
68316
+ ></button>
68317
+ }
68318
+ </div>
68258
68319
  </section>
68259
68320
 
68260
68321
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
@@ -68276,6 +68337,10 @@ class ChristianityGameComponent {
68276
68337
  <span>{{ opponent().leaderName }}</span>
68277
68338
  <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68278
68339
  </button>
68340
+ <div class="christianity-player-badge">
68341
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68342
+ <strong>{{ opponent().displayName }}</strong>
68343
+ </div>
68279
68344
  </section>
68280
68345
 
68281
68346
  <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
@@ -68297,14 +68362,20 @@ class ChristianityGameComponent {
68297
68362
  </section>
68298
68363
 
68299
68364
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
68300
- <button type="button" class="christianity-zone-card" (click)="showHistory.set(!showHistory())">
68365
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--history" (click)="showHistory.set(true)">
68366
+ <i aria-hidden="true"></i>
68367
+ <i aria-hidden="true"></i>
68368
+ <i aria-hidden="true"></i>
68301
68369
  <span>{{ t('christianityHistory') }}</span>
68302
68370
  <strong>{{ game().historyZone.length }}</strong>
68303
68371
  </button>
68304
- <div class="christianity-zone-card" aria-live="polite">
68372
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--deck" aria-live="polite" (click)="inspectDeck()">
68373
+ <i aria-hidden="true"></i>
68374
+ <i aria-hidden="true"></i>
68375
+ <i aria-hidden="true"></i>
68305
68376
  <span>{{ t('christianityDeck') }}</span>
68306
- <strong>{{ game().sharedDeckCount }}</strong>
68307
- </div>
68377
+ <strong>{{ game().sharedDeck.length }}</strong>
68378
+ </button>
68308
68379
  <div class="christianity-zone-card">
68309
68380
  <span>{{ t('christianityPlace') }}</span>
68310
68381
  <strong>{{ t('christianityEmpty') }}</strong>
@@ -68348,9 +68419,15 @@ class ChristianityGameComponent {
68348
68419
  <span>{{ player().leaderName }}</span>
68349
68420
  <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68350
68421
  </button>
68351
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68352
- {{ t('christianityEndTurn') }}
68353
- </button>
68422
+ <div class="christianity-player-command">
68423
+ <div class="christianity-player-badge">
68424
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68425
+ <strong>{{ player().displayName }}</strong>
68426
+ </div>
68427
+ <button type="button" class="christianity-end-turn" (click)="endTurn()">
68428
+ {{ t('christianityEndTurn') }}
68429
+ </button>
68430
+ </div>
68354
68431
  </section>
68355
68432
  </section>
68356
68433
 
@@ -68385,6 +68462,7 @@ class ChristianityGameComponent {
68385
68462
  </section>
68386
68463
 
68387
68464
  @if (selectedPreview()) {
68465
+ <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68388
68466
  <aside class="christianity-floating-card" aria-live="polite">
68389
68467
  <small>{{ selectedPreview()?.eyebrow }}</small>
68390
68468
  <strong>{{ selectedPreview()?.title }}</strong>
@@ -68406,17 +68484,36 @@ class ChristianityGameComponent {
68406
68484
  </section>
68407
68485
 
68408
68486
  @if (showHistory()) {
68409
- <section class="christianity-history">
68410
- <h2>{{ t('christianityHistory') }}</h2>
68487
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseHistory')" (click)="showHistory.set(false)"></button>
68488
+ <section class="christianity-history-drawer">
68489
+ <header>
68490
+ <h2>{{ t('christianityHistory') }}</h2>
68491
+ <span>{{ game().historyZone.length }}</span>
68492
+ </header>
68411
68493
  @if (game().historyZone.length) {
68412
- <p>{{ historyNames() }}</p>
68494
+ <div class="christianity-history-grid">
68495
+ @for (cardId of game().historyZone; track cardId + $index) {
68496
+ @let card = cardDefinition(cardId);
68497
+ <button type="button" class="christianity-card-preview-card" (click)="inspectHistoryCard(cardId)">
68498
+ <small>{{ card.type === 'offering' ? t('christianityOfferingCard') : t('christianityCharacterCard') }}</small>
68499
+ <span>{{ card.name }}</span>
68500
+ <strong>
68501
+ @if (card.type === 'offering') {
68502
+ +{{ card.life }}
68503
+ } @else {
68504
+ {{ card.attack }} / {{ card.life }}
68505
+ }
68506
+ </strong>
68507
+ </button>
68508
+ }
68509
+ </div>
68413
68510
  } @else {
68414
68511
  <p>{{ t('christianityHistoryEmpty') }}</p>
68415
68512
  }
68416
68513
  </section>
68417
68514
  }
68418
68515
  </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"] }); }
68516
+ `, 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:5.2rem}.christianity-opponent-hand-area{display:grid;gap:.25rem;min-height:6.7rem;align-items:start;padding-bottom:.35rem}.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{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,.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:.55rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.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;transform:translate(-50%,-50%) perspective(48rem) rotateX(5deg) rotateY(-5deg)}.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-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:6.2rem}}\n"] }); }
68420
68517
  }
68421
68518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
68422
68519
  type: Component,
@@ -68433,15 +68530,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68433
68530
  </div>
68434
68531
  </section>
68435
68532
 
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
- }
68533
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68534
+ <div class="christianity-player-badge christianity-player-badge--opponent">
68535
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68536
+ <strong>{{ opponent().displayName }}</strong>
68537
+ </div>
68538
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68539
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68540
+ <button
68541
+ type="button"
68542
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68543
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68544
+ [attr.aria-label]="t('christianityHiddenCard')"
68545
+ ></button>
68546
+ }
68547
+ </div>
68445
68548
  </section>
68446
68549
 
68447
68550
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
@@ -68463,6 +68566,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68463
68566
  <span>{{ opponent().leaderName }}</span>
68464
68567
  <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68465
68568
  </button>
68569
+ <div class="christianity-player-badge">
68570
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68571
+ <strong>{{ opponent().displayName }}</strong>
68572
+ </div>
68466
68573
  </section>
68467
68574
 
68468
68575
  <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
@@ -68484,14 +68591,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68484
68591
  </section>
68485
68592
 
68486
68593
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
68487
- <button type="button" class="christianity-zone-card" (click)="showHistory.set(!showHistory())">
68594
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--history" (click)="showHistory.set(true)">
68595
+ <i aria-hidden="true"></i>
68596
+ <i aria-hidden="true"></i>
68597
+ <i aria-hidden="true"></i>
68488
68598
  <span>{{ t('christianityHistory') }}</span>
68489
68599
  <strong>{{ game().historyZone.length }}</strong>
68490
68600
  </button>
68491
- <div class="christianity-zone-card" aria-live="polite">
68601
+ <button type="button" class="christianity-zone-pile christianity-zone-pile--deck" aria-live="polite" (click)="inspectDeck()">
68602
+ <i aria-hidden="true"></i>
68603
+ <i aria-hidden="true"></i>
68604
+ <i aria-hidden="true"></i>
68492
68605
  <span>{{ t('christianityDeck') }}</span>
68493
- <strong>{{ game().sharedDeckCount }}</strong>
68494
- </div>
68606
+ <strong>{{ game().sharedDeck.length }}</strong>
68607
+ </button>
68495
68608
  <div class="christianity-zone-card">
68496
68609
  <span>{{ t('christianityPlace') }}</span>
68497
68610
  <strong>{{ t('christianityEmpty') }}</strong>
@@ -68535,9 +68648,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68535
68648
  <span>{{ player().leaderName }}</span>
68536
68649
  <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68537
68650
  </button>
68538
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68539
- {{ t('christianityEndTurn') }}
68540
- </button>
68651
+ <div class="christianity-player-command">
68652
+ <div class="christianity-player-badge">
68653
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68654
+ <strong>{{ player().displayName }}</strong>
68655
+ </div>
68656
+ <button type="button" class="christianity-end-turn" (click)="endTurn()">
68657
+ {{ t('christianityEndTurn') }}
68658
+ </button>
68659
+ </div>
68541
68660
  </section>
68542
68661
  </section>
68543
68662
 
@@ -68572,6 +68691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68572
68691
  </section>
68573
68692
 
68574
68693
  @if (selectedPreview()) {
68694
+ <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68575
68695
  <aside class="christianity-floating-card" aria-live="polite">
68576
68696
  <small>{{ selectedPreview()?.eyebrow }}</small>
68577
68697
  <strong>{{ selectedPreview()?.title }}</strong>
@@ -68593,17 +68713,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68593
68713
  </section>
68594
68714
 
68595
68715
  @if (showHistory()) {
68596
- <section class="christianity-history">
68597
- <h2>{{ t('christianityHistory') }}</h2>
68716
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseHistory')" (click)="showHistory.set(false)"></button>
68717
+ <section class="christianity-history-drawer">
68718
+ <header>
68719
+ <h2>{{ t('christianityHistory') }}</h2>
68720
+ <span>{{ game().historyZone.length }}</span>
68721
+ </header>
68598
68722
  @if (game().historyZone.length) {
68599
- <p>{{ historyNames() }}</p>
68723
+ <div class="christianity-history-grid">
68724
+ @for (cardId of game().historyZone; track cardId + $index) {
68725
+ @let card = cardDefinition(cardId);
68726
+ <button type="button" class="christianity-card-preview-card" (click)="inspectHistoryCard(cardId)">
68727
+ <small>{{ card.type === 'offering' ? t('christianityOfferingCard') : t('christianityCharacterCard') }}</small>
68728
+ <span>{{ card.name }}</span>
68729
+ <strong>
68730
+ @if (card.type === 'offering') {
68731
+ +{{ card.life }}
68732
+ } @else {
68733
+ {{ card.attack }} / {{ card.life }}
68734
+ }
68735
+ </strong>
68736
+ </button>
68737
+ }
68738
+ </div>
68600
68739
  } @else {
68601
68740
  <p>{{ t('christianityHistoryEmpty') }}</p>
68602
68741
  }
68603
68742
  </section>
68604
68743
  }
68605
68744
  </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"] }]
68745
+ `, 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:5.2rem}.christianity-opponent-hand-area{display:grid;gap:.25rem;min-height:6.7rem;align-items:start;padding-bottom:.35rem}.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{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,.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:.55rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.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;transform:translate(-50%,-50%) perspective(48rem) rotateX(5deg) rotateY(-5deg)}.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-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:6.2rem}}\n"] }]
68607
68746
  }], ctorParameters: () => [] });
68608
68747
 
68609
68748
  addIcons({ refreshOutline, sparklesOutline, trophyOutline });