valtech-components 4.0.431 → 4.0.433

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.431';
61
+ const VERSION = '4.0.433';
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',
@@ -62490,6 +62492,9 @@ const MINI_GAMES_I18N = {
62490
62492
  christianityOfferingReady: 'Lista',
62491
62493
  christianityOfferingExhausted: 'Agotada',
62492
62494
  christianityOfferingBody: 'Se agota para pagar costes y vuelve a estar lista al comenzar tu turno.',
62495
+ christianityOfferingNoAbility: 'Esta ofrenda no tiene habilidad activable.',
62496
+ christianityUseAbility: 'Usar',
62497
+ christianityCloseOfferings: 'Cerrar ofrendas',
62493
62498
  christianityCharacterBody: 'Entra a batalla y debe esperar un turno para atacar.',
62494
62499
  christianityCharacterReady: 'Listo para atacar.',
62495
62500
  christianityCharacterExhausted: 'No puede atacar todavía.',
@@ -62887,6 +62892,8 @@ const MINI_GAMES_I18N = {
62887
62892
  christianityYourBattle: 'Your battle zone',
62888
62893
  christianityOpponentHand: 'Opponent hand',
62889
62894
  christianitySharedZone: 'Shared zone',
62895
+ christianityMatch: 'Match',
62896
+ christianityMatchScore: 'Match score',
62890
62897
  christianityHistory: 'History',
62891
62898
  christianityDeck: 'Deck',
62892
62899
  christianityPlace: 'Place',
@@ -62911,6 +62918,9 @@ const MINI_GAMES_I18N = {
62911
62918
  christianityOfferingReady: 'Ready',
62912
62919
  christianityOfferingExhausted: 'Exhausted',
62913
62920
  christianityOfferingBody: 'Exhaust it to pay costs. It readies again at the start of your turn.',
62921
+ christianityOfferingNoAbility: 'This offering has no active ability.',
62922
+ christianityUseAbility: 'Use',
62923
+ christianityCloseOfferings: 'Close offerings',
62914
62924
  christianityCharacterBody: 'Enters battle and must wait one turn before attacking.',
62915
62925
  christianityCharacterReady: 'Ready to attack.',
62916
62926
  christianityCharacterExhausted: 'Cannot attack yet.',
@@ -67917,6 +67927,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
67917
67927
 
67918
67928
  const STARTER_CARDS = {
67919
67929
  o_simple: { id: 'o_simple', name: 'Ofrenda simple', type: 'offering', cost: 0, attack: 0, life: 1 },
67930
+ o_forbidden: {
67931
+ id: 'o_forbidden',
67932
+ name: 'El fruto prohibido',
67933
+ type: 'offering',
67934
+ cost: 0,
67935
+ attack: 0,
67936
+ life: 2,
67937
+ abilityName: 'Conocimiento del bien y del mal',
67938
+ abilityText: 'Al usarla, disminuye en 1 los puntos de vida de tu Lider.',
67939
+ abilityCost: 0,
67940
+ },
67920
67941
  p_scout: { id: 'p_scout', name: 'Scout', type: 'character', cost: 1, attack: 1, life: 1 },
67921
67942
  p_guard: { id: 'p_guard', name: 'Guard', type: 'character', cost: 2, attack: 1, life: 3 },
67922
67943
  p_warrior: { id: 'p_warrior', name: 'Warrior', type: 'character', cost: 2, attack: 2, life: 2 },
@@ -67926,6 +67947,7 @@ const STARTER_CARDS = {
67926
67947
  const STARTING_SHARED_DECK = [
67927
67948
  'o_simple',
67928
67949
  'p_scout',
67950
+ 'o_forbidden',
67929
67951
  'o_simple',
67930
67952
  'p_guard',
67931
67953
  'p_warrior',
@@ -67950,6 +67972,7 @@ const STARTING_GAME = {
67950
67972
  turnOwner: 'P1',
67951
67973
  revision: 0,
67952
67974
  turnCount: 1,
67975
+ matchScore: { P1: 1, P2: 0 },
67953
67976
  sharedDeck: STARTING_SHARED_DECK,
67954
67977
  historyZone: [],
67955
67978
  players: {
@@ -67961,7 +67984,20 @@ const STARTING_GAME = {
67961
67984
  leaderName: 'Adam',
67962
67985
  leaderHp: 15,
67963
67986
  leaderMaxHp: 15,
67964
- offerings: [{ instanceId: 'p1_offering_001', cardId: 'o_simple', name: 'Ofrenda simple', owner: 'P1', ready: true, value: 1 }],
67987
+ offerings: [
67988
+ { instanceId: 'p1_offering_001', cardId: 'o_simple', name: 'Ofrenda simple', owner: 'P1', ready: true, value: 1 },
67989
+ {
67990
+ instanceId: 'p1_offering_002',
67991
+ cardId: 'o_forbidden',
67992
+ name: 'El fruto prohibido',
67993
+ owner: 'P1',
67994
+ ready: true,
67995
+ value: 2,
67996
+ abilityName: 'Conocimiento del bien y del mal',
67997
+ abilityText: 'Al usarla, disminuye en 1 los puntos de vida de tu Lider.',
67998
+ abilityCost: 0,
67999
+ },
68000
+ ],
67965
68001
  offeringPlayedThisTurn: false,
67966
68002
  hand: ['o_simple', 'p_scout', 'p_warrior', 'p_guard'],
67967
68003
  battleZone: [],
@@ -68001,7 +68037,9 @@ class ChristianityGameComponent {
68001
68037
  this.selectedHandCard = signal(null);
68002
68038
  this.selectedAttacker = signal(null);
68003
68039
  this.selectedPreview = signal(null);
68040
+ this.previewTilt = signal({ rotateX: 5, rotateY: -5, shiftX: 0, shiftY: 0 });
68004
68041
  this.showHistory = signal(false);
68042
+ this.offeringsSeat = signal(null);
68005
68043
  this.player = computed(() => this.game().players.P1);
68006
68044
  this.opponent = computed(() => this.game().players.P2);
68007
68045
  this.currentPlayer = computed(() => this.game().players[this.game().turnOwner]);
@@ -68055,6 +68093,9 @@ class ChristianityGameComponent {
68055
68093
  readyOfferings(player) {
68056
68094
  return player.offerings.reduce((total, offering) => total + (offering.ready ? offering.value : 0), 0);
68057
68095
  }
68096
+ totalOfferings(player) {
68097
+ return player.offerings.reduce((total, offering) => total + offering.value, 0);
68098
+ }
68058
68099
  canPlay(card) {
68059
68100
  if (!this.isOwnTurn())
68060
68101
  return false;
@@ -68093,6 +68134,9 @@ class ChristianityGameComponent {
68093
68134
  owner: 'P1',
68094
68135
  ready: true,
68095
68136
  value: card.life,
68137
+ abilityName: card.abilityName,
68138
+ abilityText: card.abilityText,
68139
+ abilityCost: card.abilityCost,
68096
68140
  });
68097
68141
  player.offeringPlayedThisTurn = true;
68098
68142
  }
@@ -68221,9 +68265,33 @@ class ChristianityGameComponent {
68221
68265
  this.selectedAttacker.set(null);
68222
68266
  this.selectedPreview.set(null);
68223
68267
  this.showHistory.set(false);
68268
+ this.offeringsSeat.set(null);
68224
68269
  }
68225
68270
  closePreview() {
68226
68271
  this.selectedPreview.set(null);
68272
+ this.resetPreviewTilt();
68273
+ }
68274
+ openOfferings(seat) {
68275
+ this.selectedPreview.set(null);
68276
+ this.showHistory.set(false);
68277
+ this.offeringsSeat.set(seat);
68278
+ }
68279
+ closeOfferings() {
68280
+ this.offeringsSeat.set(null);
68281
+ }
68282
+ tiltPreview(event) {
68283
+ const bounds = event.currentTarget.getBoundingClientRect();
68284
+ const x = (event.clientX - bounds.left) / bounds.width - 0.5;
68285
+ const y = (event.clientY - bounds.top) / bounds.height - 0.5;
68286
+ this.previewTilt.set({
68287
+ rotateX: 5 - y * 18,
68288
+ rotateY: -5 + x * 18,
68289
+ shiftX: x * 10,
68290
+ shiftY: y * 10,
68291
+ });
68292
+ }
68293
+ resetPreviewTilt() {
68294
+ this.previewTilt.set({ rotateX: 5, rotateY: -5, shiftX: 0, shiftY: 0 });
68227
68295
  }
68228
68296
  cleanupDestroyed(player, game) {
68229
68297
  const destroyed = player.battleZone.filter(card => card.currentHp <= 0);
@@ -68246,7 +68314,32 @@ class ChristianityGameComponent {
68246
68314
  title: offering.name,
68247
68315
  eyebrow: this.t('christianityOfferingCard'),
68248
68316
  meta: offering.ready ? this.t('christianityOfferingReady') : this.t('christianityOfferingExhausted'),
68249
- body: this.t('christianityOfferingBody'),
68317
+ body: offering.abilityText || this.t('christianityOfferingBody'),
68318
+ });
68319
+ }
68320
+ canUseOfferingAbility(offering, seat) {
68321
+ if (seat !== 'P1' || !this.isOwnTurn())
68322
+ return false;
68323
+ if (!offering.ready || !offering.abilityName)
68324
+ return false;
68325
+ return this.readyOfferings(this.game().players[seat]) >= (offering.abilityCost ?? 0);
68326
+ }
68327
+ useOfferingAbility(offering, seat) {
68328
+ if (!this.canUseOfferingAbility(offering, seat))
68329
+ return;
68330
+ this.game.update(game => {
68331
+ const next = structuredClone(game);
68332
+ const player = next.players[seat];
68333
+ const liveOffering = player.offerings.find(card => card.instanceId === offering.instanceId);
68334
+ if (!liveOffering || !liveOffering.ready)
68335
+ return game;
68336
+ const offeringId = liveOffering.instanceId;
68337
+ this.spendOfferings(player, liveOffering.abilityCost ?? 0);
68338
+ player.offerings = player.offerings.map(card => (card.instanceId === offeringId ? { ...card, ready: false } : card));
68339
+ player.leaderHp = Math.max(0, player.leaderHp - 1);
68340
+ next.revision++;
68341
+ next.log = [`${liveOffering.name}: ${liveOffering.abilityName}.`, ...next.log].slice(0, 4);
68342
+ return next;
68250
68343
  });
68251
68344
  }
68252
68345
  inspectDeck() {
@@ -68301,64 +68394,79 @@ class ChristianityGameComponent {
68301
68394
  </div>
68302
68395
  </section>
68303
68396
 
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
- }
68397
+ <section class="christianity-match-strip" [attr.aria-label]="t('christianityMatchScore')">
68398
+ <article class="christianity-match-player">
68399
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68400
+ <div>
68401
+ <strong>{{ player().displayName }}</strong>
68402
+ <small>{{ player().leaderName }} · {{ player().leaderHp }}/{{ player().leaderMaxHp }}</small>
68403
+ </div>
68404
+ </article>
68405
+ <div class="christianity-scoreboard">
68406
+ <span>{{ t('christianityMatch') }}</span>
68407
+ <strong>{{ game().matchScore.P1 }}-{{ game().matchScore.P2 }}</strong>
68318
68408
  </div>
68409
+ <article class="christianity-match-player christianity-match-player--opponent">
68410
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68411
+ <div>
68412
+ <strong>{{ opponent().displayName }}</strong>
68413
+ <small>{{ opponent().leaderName }} · {{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</small>
68414
+ </div>
68415
+ </article>
68319
68416
  </section>
68320
68417
 
68321
68418
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68322
- <section class="christianity-player-rack christianity-player-rack--opponent">
68323
- <div class="christianity-offerings-zone">
68324
- @for (offering of opponent().offerings; track offering.instanceId) {
68325
- <button
68326
- type="button"
68327
- class="christianity-card-mini christianity-card-mini--offering"
68328
- [class.is-exhausted]="!offering.ready"
68329
- (click)="inspectOffering(offering)"
68330
- >
68331
- <span>{{ t('christianityOfferingCard') }}</span>
68332
- <strong>+{{ offering.value }}</strong>
68419
+ <section class="christianity-player-side christianity-player-side--opponent">
68420
+ <section class="christianity-player-rack christianity-player-rack--opponent">
68421
+ <div class="christianity-offerings-zone">
68422
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P2')">
68423
+ <i aria-hidden="true"></i>
68424
+ <i aria-hidden="true"></i>
68425
+ <i aria-hidden="true"></i>
68426
+ <span>{{ t('christianityOfferings') }}</span>
68427
+ <strong>{{ readyOfferings(opponent()) }}/{{ totalOfferings(opponent()) }}</strong>
68333
68428
  </button>
68334
- }
68335
- </div>
68336
- <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68337
- <span>{{ opponent().leaderName }}</span>
68338
- <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
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>
68344
- </section>
68429
+ </div>
68430
+ <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68431
+ <span>{{ opponent().leaderName }}</span>
68432
+ <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68433
+ </button>
68434
+ <div class="christianity-hand-count">
68435
+ <span>{{ t('christianityHand') }}</span>
68436
+ <strong>{{ opponentHandCount() }}</strong>
68437
+ </div>
68438
+ </section>
68345
68439
 
68346
- <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68347
- @for (slot of battleSlots('P2'); track slot.trackId) {
68348
- @if (slot.card) {
68349
- <button
68350
- type="button"
68351
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68352
- [class.is-target]="selectedAttacker()"
68353
- (click)="handleOpponentCharacter(slot.card)"
68354
- >
68355
- <span>{{ slot.card.name }}</span>
68356
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68357
- </button>
68358
- } @else {
68359
- <span class="christianity-slot"></span>
68440
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68441
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68442
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68443
+ <button
68444
+ type="button"
68445
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68446
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68447
+ [attr.aria-label]="t('christianityHiddenCard')"
68448
+ ></button>
68449
+ }
68450
+ </div>
68451
+ </section>
68452
+
68453
+ <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68454
+ @for (slot of battleSlots('P2'); track slot.trackId) {
68455
+ @if (slot.card) {
68456
+ <button
68457
+ type="button"
68458
+ class="christianity-card-preview-card christianity-card-preview-card--battle"
68459
+ [class.is-target]="selectedAttacker()"
68460
+ (click)="handleOpponentCharacter(slot.card)"
68461
+ >
68462
+ <span>{{ slot.card.name }}</span>
68463
+ <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68464
+ </button>
68465
+ } @else {
68466
+ <span class="christianity-slot"></span>
68467
+ }
68360
68468
  }
68361
- }
68469
+ </section>
68362
68470
  </section>
68363
68471
 
68364
68472
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
@@ -68382,88 +68490,101 @@ class ChristianityGameComponent {
68382
68490
  </div>
68383
68491
  </section>
68384
68492
 
68385
- <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68386
- @for (slot of battleSlots('P1'); track slot.trackId) {
68387
- @if (slot.card) {
68388
- <button
68389
- type="button"
68390
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68391
- [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68392
- [class.is-exhausted]="!slot.card.canAttack"
68393
- (click)="selectAttacker(slot.card)"
68394
- >
68395
- <span>{{ slot.card.name }}</span>
68396
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68397
- </button>
68398
- } @else {
68399
- <span class="christianity-slot"></span>
68493
+ <section class="christianity-player-side">
68494
+ <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68495
+ @for (slot of battleSlots('P1'); track slot.trackId) {
68496
+ @if (slot.card) {
68497
+ <button
68498
+ type="button"
68499
+ class="christianity-card-preview-card christianity-card-preview-card--battle"
68500
+ [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68501
+ [class.is-exhausted]="!slot.card.canAttack"
68502
+ (click)="selectAttacker(slot.card)"
68503
+ >
68504
+ <span>{{ slot.card.name }}</span>
68505
+ <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68506
+ </button>
68507
+ } @else {
68508
+ <span class="christianity-slot"></span>
68509
+ }
68400
68510
  }
68401
- }
68402
- </section>
68511
+ </section>
68403
68512
 
68404
- <section class="christianity-player-rack">
68405
- <div class="christianity-offerings-zone">
68406
- @for (offering of player().offerings; track offering.instanceId) {
68513
+ <section class="christianity-player-rack">
68514
+ <div class="christianity-offerings-zone">
68515
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P1')">
68516
+ <i aria-hidden="true"></i>
68517
+ <i aria-hidden="true"></i>
68518
+ <i aria-hidden="true"></i>
68519
+ <span>{{ t('christianityOfferings') }}</span>
68520
+ <strong>{{ readyOfferings(player()) }}/{{ totalOfferings(player()) }}</strong>
68521
+ </button>
68522
+ </div>
68523
+ <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68524
+ <span>{{ player().leaderName }}</span>
68525
+ <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68526
+ </button>
68527
+ <div class="christianity-player-command">
68528
+ <div class="christianity-player-badge">
68529
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68530
+ <strong>{{ player().displayName }}</strong>
68531
+ </div>
68407
68532
  <button
68408
68533
  type="button"
68409
- class="christianity-card-mini christianity-card-mini--offering"
68410
- [class.is-exhausted]="!offering.ready"
68411
- (click)="inspectOffering(offering)"
68534
+ class="christianity-end-turn"
68535
+ (click)="endTurn()"
68412
68536
  >
68413
- <span>{{ t('christianityOfferingCard') }}</span>
68414
- <strong>+{{ offering.value }}</strong>
68537
+ {{ t('christianityEndTurn') }}
68415
68538
  </button>
68416
- }
68417
- </div>
68418
- <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68419
- <span>{{ player().leaderName }}</span>
68420
- <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68421
- </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
68539
  </div>
68427
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68428
- {{ t('christianityEndTurn') }}
68429
- </button>
68430
- </div>
68540
+ </section>
68431
68541
  </section>
68432
68542
  </section>
68433
68543
 
68434
- <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68435
- @for (cardId of player().hand ?? []; track cardId + $index) {
68436
- @let card = cardDefinition(cardId);
68437
- <button
68438
- type="button"
68439
- class="christianity-card-preview-card christianity-card-preview-card--hand"
68440
- [class.is-selected]="selectedHandCard() === cardId"
68441
- [class.is-disabled]="!canPlay(card)"
68442
- [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68443
- (click)="selectHandCard(cardId)"
68444
- >
68445
- <small>
68446
- @if (card.type === 'offering') {
68447
- {{ t('christianityOfferingCard') }}
68448
- } @else {
68449
- {{ t('christianityCost') }} {{ card.cost }}
68450
- }
68451
- </small>
68452
- <span>{{ card.name }}</span>
68453
- <strong>
68454
- @if (card.type === 'offering') {
68455
- +{{ card.life }}
68456
- } @else {
68457
- {{ card.attack }} / {{ card.life }}
68458
- }
68459
- </strong>
68460
- </button>
68461
- }
68544
+ <section class="christianity-hand-shelf">
68545
+ <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68546
+ @for (cardId of player().hand ?? []; track cardId + $index) {
68547
+ @let card = cardDefinition(cardId);
68548
+ <button
68549
+ type="button"
68550
+ class="christianity-card-preview-card christianity-card-preview-card--hand"
68551
+ [class.is-selected]="selectedHandCard() === cardId"
68552
+ [class.is-disabled]="!canPlay(card)"
68553
+ [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68554
+ (click)="selectHandCard(cardId)"
68555
+ >
68556
+ <small>
68557
+ @if (card.type === 'offering') {
68558
+ {{ t('christianityOfferingCard') }}
68559
+ } @else {
68560
+ {{ t('christianityCost') }} {{ card.cost }}
68561
+ }
68562
+ </small>
68563
+ <span>{{ card.name }}</span>
68564
+ <strong>
68565
+ @if (card.type === 'offering') {
68566
+ +{{ card.life }}
68567
+ } @else {
68568
+ {{ card.attack }} / {{ card.life }}
68569
+ }
68570
+ </strong>
68571
+ </button>
68572
+ }
68573
+ </section>
68462
68574
  </section>
68463
68575
 
68464
68576
  @if (selectedPreview()) {
68465
68577
  <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68466
- <aside class="christianity-floating-card" aria-live="polite">
68578
+ <aside
68579
+ class="christianity-floating-card"
68580
+ aria-live="polite"
68581
+ [style.--preview-rotate-x]="previewTilt().rotateX + 'deg'"
68582
+ [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
68583
+ [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
68584
+ [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
68585
+ (pointermove)="tiltPreview($event)"
68586
+ (pointerleave)="resetPreviewTilt()"
68587
+ >
68467
68588
  <small>{{ selectedPreview()?.eyebrow }}</small>
68468
68589
  <strong>{{ selectedPreview()?.title }}</strong>
68469
68590
  <span>{{ selectedPreview()?.meta }}</span>
@@ -68512,8 +68633,46 @@ class ChristianityGameComponent {
68512
68633
  }
68513
68634
  </section>
68514
68635
  }
68636
+
68637
+ @if (offeringsSeat()) {
68638
+ @let offeringPlayer = game().players[offeringsSeat()!];
68639
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseOfferings')" (click)="closeOfferings()"></button>
68640
+ <section class="christianity-history-drawer christianity-offerings-drawer">
68641
+ <header>
68642
+ <h2>{{ t('christianityOfferings') }}</h2>
68643
+ <span>{{ readyOfferings(offeringPlayer) }}/{{ totalOfferings(offeringPlayer) }}</span>
68644
+ </header>
68645
+ <div class="christianity-offering-list">
68646
+ @for (offering of offeringPlayer.offerings; track offering.instanceId) {
68647
+ <article class="christianity-offering-row" [class.is-exhausted]="!offering.ready">
68648
+ <button type="button" class="christianity-offering-card" (click)="inspectOffering(offering)">
68649
+ <small>{{ t('christianityOfferingCard') }}</small>
68650
+ <span>{{ offering.name }}</span>
68651
+ <strong>+{{ offering.value }}</strong>
68652
+ @if (offering.abilityName) {
68653
+ <p>{{ offering.abilityName }}</p>
68654
+ }
68655
+ </button>
68656
+ <div>
68657
+ <strong>{{ offering.ready ? t('christianityOfferingReady') : t('christianityOfferingExhausted') }}</strong>
68658
+ <p>{{ offering.abilityText || t('christianityOfferingNoAbility') }}</p>
68659
+ @if (offering.abilityName) {
68660
+ <button
68661
+ type="button"
68662
+ [disabled]="!canUseOfferingAbility(offering, offeringsSeat()!)"
68663
+ (click)="useOfferingAbility(offering, offeringsSeat()!)"
68664
+ >
68665
+ {{ t('christianityUseAbility') }}
68666
+ </button>
68667
+ }
68668
+ </div>
68669
+ </article>
68670
+ }
68671
+ </div>
68672
+ </section>
68673
+ }
68515
68674
  </main>
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"] }); }
68675
+ `, 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;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;min-height:0}.christianity-player-side--opponent{grid-template-rows:auto minmax(4.55rem,auto) auto}.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-shelf{display:grid;min-height:8.1rem;padding:.35rem .25rem 0;overflow:hidden}.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-offering-pile,.christianity-offering-card,.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-offering-pile span,.christianity-offering-card 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-offering-pile strong,.christianity-offering-card 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(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.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-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.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-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:5.8rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:.6rem auto auto .7rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.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}.christianity-offerings-drawer{max-height:min(30rem,calc(100vh - 3rem))}.christianity-offering-list{display:grid;gap:.6rem;overflow-y:auto;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}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-player-side{padding:.3rem .25rem}.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-hand-shelf{min-height:7.4rem;padding-top:.25rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.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-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }); }
68517
68676
  }
68518
68677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
68519
68678
  type: Component,
@@ -68530,64 +68689,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68530
68689
  </div>
68531
68690
  </section>
68532
68691
 
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
- }
68692
+ <section class="christianity-match-strip" [attr.aria-label]="t('christianityMatchScore')">
68693
+ <article class="christianity-match-player">
68694
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68695
+ <div>
68696
+ <strong>{{ player().displayName }}</strong>
68697
+ <small>{{ player().leaderName }} · {{ player().leaderHp }}/{{ player().leaderMaxHp }}</small>
68698
+ </div>
68699
+ </article>
68700
+ <div class="christianity-scoreboard">
68701
+ <span>{{ t('christianityMatch') }}</span>
68702
+ <strong>{{ game().matchScore.P1 }}-{{ game().matchScore.P2 }}</strong>
68547
68703
  </div>
68704
+ <article class="christianity-match-player christianity-match-player--opponent">
68705
+ <span class="christianity-avatar" [style.background]="opponent().avatarColor">{{ opponent().avatar }}</span>
68706
+ <div>
68707
+ <strong>{{ opponent().displayName }}</strong>
68708
+ <small>{{ opponent().leaderName }} · {{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</small>
68709
+ </div>
68710
+ </article>
68548
68711
  </section>
68549
68712
 
68550
68713
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68551
- <section class="christianity-player-rack christianity-player-rack--opponent">
68552
- <div class="christianity-offerings-zone">
68553
- @for (offering of opponent().offerings; track offering.instanceId) {
68554
- <button
68555
- type="button"
68556
- class="christianity-card-mini christianity-card-mini--offering"
68557
- [class.is-exhausted]="!offering.ready"
68558
- (click)="inspectOffering(offering)"
68559
- >
68560
- <span>{{ t('christianityOfferingCard') }}</span>
68561
- <strong>+{{ offering.value }}</strong>
68714
+ <section class="christianity-player-side christianity-player-side--opponent">
68715
+ <section class="christianity-player-rack christianity-player-rack--opponent">
68716
+ <div class="christianity-offerings-zone">
68717
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P2')">
68718
+ <i aria-hidden="true"></i>
68719
+ <i aria-hidden="true"></i>
68720
+ <i aria-hidden="true"></i>
68721
+ <span>{{ t('christianityOfferings') }}</span>
68722
+ <strong>{{ readyOfferings(opponent()) }}/{{ totalOfferings(opponent()) }}</strong>
68562
68723
  </button>
68563
- }
68564
- </div>
68565
- <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68566
- <span>{{ opponent().leaderName }}</span>
68567
- <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
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>
68573
- </section>
68724
+ </div>
68725
+ <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68726
+ <span>{{ opponent().leaderName }}</span>
68727
+ <strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
68728
+ </button>
68729
+ <div class="christianity-hand-count">
68730
+ <span>{{ t('christianityHand') }}</span>
68731
+ <strong>{{ opponentHandCount() }}</strong>
68732
+ </div>
68733
+ </section>
68574
68734
 
68575
- <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68576
- @for (slot of battleSlots('P2'); track slot.trackId) {
68577
- @if (slot.card) {
68578
- <button
68579
- type="button"
68580
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68581
- [class.is-target]="selectedAttacker()"
68582
- (click)="handleOpponentCharacter(slot.card)"
68583
- >
68584
- <span>{{ slot.card.name }}</span>
68585
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68586
- </button>
68587
- } @else {
68588
- <span class="christianity-slot"></span>
68735
+ <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68736
+ <div class="christianity-hand-fan christianity-hand-fan--opponent">
68737
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68738
+ <button
68739
+ type="button"
68740
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68741
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68742
+ [attr.aria-label]="t('christianityHiddenCard')"
68743
+ ></button>
68744
+ }
68745
+ </div>
68746
+ </section>
68747
+
68748
+ <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68749
+ @for (slot of battleSlots('P2'); track slot.trackId) {
68750
+ @if (slot.card) {
68751
+ <button
68752
+ type="button"
68753
+ class="christianity-card-preview-card christianity-card-preview-card--battle"
68754
+ [class.is-target]="selectedAttacker()"
68755
+ (click)="handleOpponentCharacter(slot.card)"
68756
+ >
68757
+ <span>{{ slot.card.name }}</span>
68758
+ <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68759
+ </button>
68760
+ } @else {
68761
+ <span class="christianity-slot"></span>
68762
+ }
68589
68763
  }
68590
- }
68764
+ </section>
68591
68765
  </section>
68592
68766
 
68593
68767
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
@@ -68611,88 +68785,101 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68611
68785
  </div>
68612
68786
  </section>
68613
68787
 
68614
- <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68615
- @for (slot of battleSlots('P1'); track slot.trackId) {
68616
- @if (slot.card) {
68617
- <button
68618
- type="button"
68619
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68620
- [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68621
- [class.is-exhausted]="!slot.card.canAttack"
68622
- (click)="selectAttacker(slot.card)"
68623
- >
68624
- <span>{{ slot.card.name }}</span>
68625
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68626
- </button>
68627
- } @else {
68628
- <span class="christianity-slot"></span>
68788
+ <section class="christianity-player-side">
68789
+ <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68790
+ @for (slot of battleSlots('P1'); track slot.trackId) {
68791
+ @if (slot.card) {
68792
+ <button
68793
+ type="button"
68794
+ class="christianity-card-preview-card christianity-card-preview-card--battle"
68795
+ [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68796
+ [class.is-exhausted]="!slot.card.canAttack"
68797
+ (click)="selectAttacker(slot.card)"
68798
+ >
68799
+ <span>{{ slot.card.name }}</span>
68800
+ <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68801
+ </button>
68802
+ } @else {
68803
+ <span class="christianity-slot"></span>
68804
+ }
68629
68805
  }
68630
- }
68631
- </section>
68806
+ </section>
68632
68807
 
68633
- <section class="christianity-player-rack">
68634
- <div class="christianity-offerings-zone">
68635
- @for (offering of player().offerings; track offering.instanceId) {
68808
+ <section class="christianity-player-rack">
68809
+ <div class="christianity-offerings-zone">
68810
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P1')">
68811
+ <i aria-hidden="true"></i>
68812
+ <i aria-hidden="true"></i>
68813
+ <i aria-hidden="true"></i>
68814
+ <span>{{ t('christianityOfferings') }}</span>
68815
+ <strong>{{ readyOfferings(player()) }}/{{ totalOfferings(player()) }}</strong>
68816
+ </button>
68817
+ </div>
68818
+ <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68819
+ <span>{{ player().leaderName }}</span>
68820
+ <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68821
+ </button>
68822
+ <div class="christianity-player-command">
68823
+ <div class="christianity-player-badge">
68824
+ <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68825
+ <strong>{{ player().displayName }}</strong>
68826
+ </div>
68636
68827
  <button
68637
68828
  type="button"
68638
- class="christianity-card-mini christianity-card-mini--offering"
68639
- [class.is-exhausted]="!offering.ready"
68640
- (click)="inspectOffering(offering)"
68829
+ class="christianity-end-turn"
68830
+ (click)="endTurn()"
68641
68831
  >
68642
- <span>{{ t('christianityOfferingCard') }}</span>
68643
- <strong>+{{ offering.value }}</strong>
68832
+ {{ t('christianityEndTurn') }}
68644
68833
  </button>
68645
- }
68646
- </div>
68647
- <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68648
- <span>{{ player().leaderName }}</span>
68649
- <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68650
- </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
68834
  </div>
68656
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68657
- {{ t('christianityEndTurn') }}
68658
- </button>
68659
- </div>
68835
+ </section>
68660
68836
  </section>
68661
68837
  </section>
68662
68838
 
68663
- <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68664
- @for (cardId of player().hand ?? []; track cardId + $index) {
68665
- @let card = cardDefinition(cardId);
68666
- <button
68667
- type="button"
68668
- class="christianity-card-preview-card christianity-card-preview-card--hand"
68669
- [class.is-selected]="selectedHandCard() === cardId"
68670
- [class.is-disabled]="!canPlay(card)"
68671
- [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68672
- (click)="selectHandCard(cardId)"
68673
- >
68674
- <small>
68675
- @if (card.type === 'offering') {
68676
- {{ t('christianityOfferingCard') }}
68677
- } @else {
68678
- {{ t('christianityCost') }} {{ card.cost }}
68679
- }
68680
- </small>
68681
- <span>{{ card.name }}</span>
68682
- <strong>
68683
- @if (card.type === 'offering') {
68684
- +{{ card.life }}
68685
- } @else {
68686
- {{ card.attack }} / {{ card.life }}
68687
- }
68688
- </strong>
68689
- </button>
68690
- }
68839
+ <section class="christianity-hand-shelf">
68840
+ <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68841
+ @for (cardId of player().hand ?? []; track cardId + $index) {
68842
+ @let card = cardDefinition(cardId);
68843
+ <button
68844
+ type="button"
68845
+ class="christianity-card-preview-card christianity-card-preview-card--hand"
68846
+ [class.is-selected]="selectedHandCard() === cardId"
68847
+ [class.is-disabled]="!canPlay(card)"
68848
+ [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68849
+ (click)="selectHandCard(cardId)"
68850
+ >
68851
+ <small>
68852
+ @if (card.type === 'offering') {
68853
+ {{ t('christianityOfferingCard') }}
68854
+ } @else {
68855
+ {{ t('christianityCost') }} {{ card.cost }}
68856
+ }
68857
+ </small>
68858
+ <span>{{ card.name }}</span>
68859
+ <strong>
68860
+ @if (card.type === 'offering') {
68861
+ +{{ card.life }}
68862
+ } @else {
68863
+ {{ card.attack }} / {{ card.life }}
68864
+ }
68865
+ </strong>
68866
+ </button>
68867
+ }
68868
+ </section>
68691
68869
  </section>
68692
68870
 
68693
68871
  @if (selectedPreview()) {
68694
68872
  <button type="button" class="christianity-preview-backdrop" [attr.aria-label]="t('christianityClosePreview')" (click)="closePreview()"></button>
68695
- <aside class="christianity-floating-card" aria-live="polite">
68873
+ <aside
68874
+ class="christianity-floating-card"
68875
+ aria-live="polite"
68876
+ [style.--preview-rotate-x]="previewTilt().rotateX + 'deg'"
68877
+ [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
68878
+ [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
68879
+ [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
68880
+ (pointermove)="tiltPreview($event)"
68881
+ (pointerleave)="resetPreviewTilt()"
68882
+ >
68696
68883
  <small>{{ selectedPreview()?.eyebrow }}</small>
68697
68884
  <strong>{{ selectedPreview()?.title }}</strong>
68698
68885
  <span>{{ selectedPreview()?.meta }}</span>
@@ -68741,8 +68928,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68741
68928
  }
68742
68929
  </section>
68743
68930
  }
68931
+
68932
+ @if (offeringsSeat()) {
68933
+ @let offeringPlayer = game().players[offeringsSeat()!];
68934
+ <button type="button" class="christianity-history-backdrop" [attr.aria-label]="t('christianityCloseOfferings')" (click)="closeOfferings()"></button>
68935
+ <section class="christianity-history-drawer christianity-offerings-drawer">
68936
+ <header>
68937
+ <h2>{{ t('christianityOfferings') }}</h2>
68938
+ <span>{{ readyOfferings(offeringPlayer) }}/{{ totalOfferings(offeringPlayer) }}</span>
68939
+ </header>
68940
+ <div class="christianity-offering-list">
68941
+ @for (offering of offeringPlayer.offerings; track offering.instanceId) {
68942
+ <article class="christianity-offering-row" [class.is-exhausted]="!offering.ready">
68943
+ <button type="button" class="christianity-offering-card" (click)="inspectOffering(offering)">
68944
+ <small>{{ t('christianityOfferingCard') }}</small>
68945
+ <span>{{ offering.name }}</span>
68946
+ <strong>+{{ offering.value }}</strong>
68947
+ @if (offering.abilityName) {
68948
+ <p>{{ offering.abilityName }}</p>
68949
+ }
68950
+ </button>
68951
+ <div>
68952
+ <strong>{{ offering.ready ? t('christianityOfferingReady') : t('christianityOfferingExhausted') }}</strong>
68953
+ <p>{{ offering.abilityText || t('christianityOfferingNoAbility') }}</p>
68954
+ @if (offering.abilityName) {
68955
+ <button
68956
+ type="button"
68957
+ [disabled]="!canUseOfferingAbility(offering, offeringsSeat()!)"
68958
+ (click)="useOfferingAbility(offering, offeringsSeat()!)"
68959
+ >
68960
+ {{ t('christianityUseAbility') }}
68961
+ </button>
68962
+ }
68963
+ </div>
68964
+ </article>
68965
+ }
68966
+ </div>
68967
+ </section>
68968
+ }
68744
68969
  </main>
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"] }]
68970
+ `, 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;padding:.35rem .3rem;border-radius:.7rem;background:#ffffff57;min-height:0}.christianity-player-side--opponent{grid-template-rows:auto minmax(4.55rem,auto) auto}.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-shelf{display:grid;min-height:8.1rem;padding:.35rem .25rem 0;overflow:hidden}.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-offering-pile,.christianity-offering-card,.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-offering-pile span,.christianity-offering-card 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-offering-pile strong,.christianity-offering-card 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(5.9rem,7rem) minmax(5rem,1fr) minmax(4.2rem,7rem);gap:.45rem;align-items:end;justify-items:stretch}.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-start;justify-self:start;width:100%}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.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-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-self:start;width:min(100%,5.9rem);min-height:5.8rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-offering-pile i{position:absolute;inset:.6rem auto auto .7rem;z-index:-1;width:2.55rem;height:3.55rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:linear-gradient(180deg,#ffffffeb,#f1f5f9eb),radial-gradient(circle at 78% 18%,#facc15 0 .38rem,transparent .4rem);box-shadow:0 .35rem .85rem #102a431a;transform:rotate(-5deg)}.christianity-offering-pile i:nth-child(2){transform:translate(.28rem,.08rem) rotate(3deg)}.christianity-offering-pile i:nth-child(3){transform:translate(.55rem,.18rem) rotate(-1deg)}.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}.christianity-offerings-drawer{max-height:min(30rem,calc(100vh - 3rem))}.christianity-offering-list{display:grid;gap:.6rem;overflow-y:auto;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(4.9rem,6.2rem) minmax(0,1fr);gap:.65rem;align-items:stretch;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-offering-card{min-height:7.4rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 82% 14%,#facc15 0 .48rem,transparent .5rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{color:#1f293394;font-size:.66rem;text-transform:uppercase}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}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-player-side{padding:.3rem .25rem}.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-hand-shelf{min-height:7.4rem;padding-top:.25rem}.christianity-player-rack{grid-template-columns:minmax(4.7rem,5.9rem) minmax(4.8rem,1fr) minmax(3.7rem,5rem)}.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-offering-row{grid-template-columns:minmax(4.5rem,5.5rem) minmax(0,1fr);gap:.5rem}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }]
68746
68971
  }], ctorParameters: () => [] });
68747
68972
 
68748
68973
  addIcons({ refreshOutline, sparklesOutline, trophyOutline });