valtech-components 4.0.432 → 4.0.434

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.432';
61
+ const VERSION = '4.0.434';
62
62
 
63
63
  // Control de estado de refresco (singleton a nivel de módulo)
64
64
  let isRefreshing = false;
@@ -62492,6 +62492,9 @@ const MINI_GAMES_I18N = {
62492
62492
  christianityOfferingReady: 'Lista',
62493
62493
  christianityOfferingExhausted: 'Agotada',
62494
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',
62495
62498
  christianityCharacterBody: 'Entra a batalla y debe esperar un turno para atacar.',
62496
62499
  christianityCharacterReady: 'Listo para atacar.',
62497
62500
  christianityCharacterExhausted: 'No puede atacar todavía.',
@@ -62915,6 +62918,9 @@ const MINI_GAMES_I18N = {
62915
62918
  christianityOfferingReady: 'Ready',
62916
62919
  christianityOfferingExhausted: 'Exhausted',
62917
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',
62918
62924
  christianityCharacterBody: 'Enters battle and must wait one turn before attacking.',
62919
62925
  christianityCharacterReady: 'Ready to attack.',
62920
62926
  christianityCharacterExhausted: 'Cannot attack yet.',
@@ -67921,6 +67927,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
67921
67927
 
67922
67928
  const STARTER_CARDS = {
67923
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
+ },
67924
67941
  p_scout: { id: 'p_scout', name: 'Scout', type: 'character', cost: 1, attack: 1, life: 1 },
67925
67942
  p_guard: { id: 'p_guard', name: 'Guard', type: 'character', cost: 2, attack: 1, life: 3 },
67926
67943
  p_warrior: { id: 'p_warrior', name: 'Warrior', type: 'character', cost: 2, attack: 2, life: 2 },
@@ -67930,6 +67947,7 @@ const STARTER_CARDS = {
67930
67947
  const STARTING_SHARED_DECK = [
67931
67948
  'o_simple',
67932
67949
  'p_scout',
67950
+ 'o_forbidden',
67933
67951
  'o_simple',
67934
67952
  'p_guard',
67935
67953
  'p_warrior',
@@ -67966,7 +67984,20 @@ const STARTING_GAME = {
67966
67984
  leaderName: 'Adam',
67967
67985
  leaderHp: 15,
67968
67986
  leaderMaxHp: 15,
67969
- 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
+ ],
67970
68001
  offeringPlayedThisTurn: false,
67971
68002
  hand: ['o_simple', 'p_scout', 'p_warrior', 'p_guard'],
67972
68003
  battleZone: [],
@@ -68008,6 +68039,7 @@ class ChristianityGameComponent {
68008
68039
  this.selectedPreview = signal(null);
68009
68040
  this.previewTilt = signal({ rotateX: 5, rotateY: -5, shiftX: 0, shiftY: 0 });
68010
68041
  this.showHistory = signal(false);
68042
+ this.offeringsSeat = signal(null);
68011
68043
  this.player = computed(() => this.game().players.P1);
68012
68044
  this.opponent = computed(() => this.game().players.P2);
68013
68045
  this.currentPlayer = computed(() => this.game().players[this.game().turnOwner]);
@@ -68061,6 +68093,9 @@ class ChristianityGameComponent {
68061
68093
  readyOfferings(player) {
68062
68094
  return player.offerings.reduce((total, offering) => total + (offering.ready ? offering.value : 0), 0);
68063
68095
  }
68096
+ totalOfferings(player) {
68097
+ return player.offerings.reduce((total, offering) => total + offering.value, 0);
68098
+ }
68064
68099
  canPlay(card) {
68065
68100
  if (!this.isOwnTurn())
68066
68101
  return false;
@@ -68099,6 +68134,9 @@ class ChristianityGameComponent {
68099
68134
  owner: 'P1',
68100
68135
  ready: true,
68101
68136
  value: card.life,
68137
+ abilityName: card.abilityName,
68138
+ abilityText: card.abilityText,
68139
+ abilityCost: card.abilityCost,
68102
68140
  });
68103
68141
  player.offeringPlayedThisTurn = true;
68104
68142
  }
@@ -68227,11 +68265,20 @@ class ChristianityGameComponent {
68227
68265
  this.selectedAttacker.set(null);
68228
68266
  this.selectedPreview.set(null);
68229
68267
  this.showHistory.set(false);
68268
+ this.offeringsSeat.set(null);
68230
68269
  }
68231
68270
  closePreview() {
68232
68271
  this.selectedPreview.set(null);
68233
68272
  this.resetPreviewTilt();
68234
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
+ }
68235
68282
  tiltPreview(event) {
68236
68283
  const bounds = event.currentTarget.getBoundingClientRect();
68237
68284
  const x = (event.clientX - bounds.left) / bounds.width - 0.5;
@@ -68267,7 +68314,32 @@ class ChristianityGameComponent {
68267
68314
  title: offering.name,
68268
68315
  eyebrow: this.t('christianityOfferingCard'),
68269
68316
  meta: offering.ready ? this.t('christianityOfferingReady') : this.t('christianityOfferingExhausted'),
68270
- 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;
68271
68343
  });
68272
68344
  }
68273
68345
  inspectDeck() {
@@ -68343,21 +68415,30 @@ class ChristianityGameComponent {
68343
68415
  </article>
68344
68416
  </section>
68345
68417
 
68418
+ <section class="christianity-hand-shelf christianity-hand-shelf--opponent">
68419
+ <section class="christianity-hand-fan christianity-hand-fan--opponent" [attr.aria-label]="t('christianityOpponentHand')">
68420
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68421
+ <button
68422
+ type="button"
68423
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68424
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68425
+ [attr.aria-label]="t('christianityHiddenCard')"
68426
+ ></button>
68427
+ }
68428
+ </section>
68429
+ </section>
68430
+
68346
68431
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68347
68432
  <section class="christianity-player-side christianity-player-side--opponent">
68348
68433
  <section class="christianity-player-rack christianity-player-rack--opponent">
68349
68434
  <div class="christianity-offerings-zone">
68350
- @for (offering of opponent().offerings; track offering.instanceId) {
68351
- <button
68352
- type="button"
68353
- class="christianity-card-mini christianity-card-mini--offering"
68354
- [class.is-exhausted]="!offering.ready"
68355
- (click)="inspectOffering(offering)"
68356
- >
68357
- <span>{{ t('christianityOfferingCard') }}</span>
68358
- <strong>+{{ offering.value }}</strong>
68359
- </button>
68360
- }
68435
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P2')">
68436
+ <i aria-hidden="true"></i>
68437
+ <i aria-hidden="true"></i>
68438
+ <i aria-hidden="true"></i>
68439
+ <span>{{ t('christianityOfferings') }}</span>
68440
+ <strong>{{ readyOfferings(opponent()) }}/{{ totalOfferings(opponent()) }}</strong>
68441
+ </button>
68361
68442
  </div>
68362
68443
  <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68363
68444
  <span>{{ opponent().leaderName }}</span>
@@ -68369,36 +68450,23 @@ class ChristianityGameComponent {
68369
68450
  </div>
68370
68451
  </section>
68371
68452
 
68372
- <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68373
- <div class="christianity-hand-fan christianity-hand-fan--opponent">
68374
- @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
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) {
68375
68456
  <button
68376
68457
  type="button"
68377
- class="christianity-card-preview-card christianity-card-preview-card--back"
68378
- [style.transform]="fanTransform($index, opponentHandCount(), true)"
68379
- [attr.aria-label]="t('christianityHiddenCard')"
68380
- ></button>
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>
68381
68467
  }
68382
- </div>
68383
- </section>
68384
- </section>
68385
-
68386
- <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68387
- @for (slot of battleSlots('P2'); track slot.trackId) {
68388
- @if (slot.card) {
68389
- <button
68390
- type="button"
68391
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68392
- [class.is-target]="selectedAttacker()"
68393
- (click)="handleOpponentCharacter(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>
68400
68468
  }
68401
- }
68469
+ </section>
68402
68470
  </section>
68403
68471
 
68404
68472
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
@@ -68422,83 +68490,87 @@ class ChristianityGameComponent {
68422
68490
  </div>
68423
68491
  </section>
68424
68492
 
68425
- <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68426
- @for (slot of battleSlots('P1'); track slot.trackId) {
68427
- @if (slot.card) {
68428
- <button
68429
- type="button"
68430
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68431
- [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68432
- [class.is-exhausted]="!slot.card.canAttack"
68433
- (click)="selectAttacker(slot.card)"
68434
- >
68435
- <span>{{ slot.card.name }}</span>
68436
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68437
- </button>
68438
- } @else {
68439
- <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
+ }
68440
68510
  }
68441
- }
68442
- </section>
68511
+ </section>
68443
68512
 
68444
- <section class="christianity-player-rack">
68445
- <div class="christianity-offerings-zone">
68446
- @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>
68447
68532
  <button
68448
68533
  type="button"
68449
- class="christianity-card-mini christianity-card-mini--offering"
68450
- [class.is-exhausted]="!offering.ready"
68451
- (click)="inspectOffering(offering)"
68534
+ class="christianity-end-turn"
68535
+ (click)="endTurn()"
68452
68536
  >
68453
- <span>{{ t('christianityOfferingCard') }}</span>
68454
- <strong>+{{ offering.value }}</strong>
68537
+ {{ t('christianityEndTurn') }}
68455
68538
  </button>
68456
- }
68457
- </div>
68458
- <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68459
- <span>{{ player().leaderName }}</span>
68460
- <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68461
- </button>
68462
- <div class="christianity-player-command">
68463
- <div class="christianity-player-badge">
68464
- <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68465
- <strong>{{ player().displayName }}</strong>
68466
68539
  </div>
68467
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68468
- {{ t('christianityEndTurn') }}
68469
- </button>
68470
- </div>
68540
+ </section>
68471
68541
  </section>
68472
68542
  </section>
68473
68543
 
68474
- <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68475
- @for (cardId of player().hand ?? []; track cardId + $index) {
68476
- @let card = cardDefinition(cardId);
68477
- <button
68478
- type="button"
68479
- class="christianity-card-preview-card christianity-card-preview-card--hand"
68480
- [class.is-selected]="selectedHandCard() === cardId"
68481
- [class.is-disabled]="!canPlay(card)"
68482
- [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68483
- (click)="selectHandCard(cardId)"
68484
- >
68485
- <small>
68486
- @if (card.type === 'offering') {
68487
- {{ t('christianityOfferingCard') }}
68488
- } @else {
68489
- {{ t('christianityCost') }} {{ card.cost }}
68490
- }
68491
- </small>
68492
- <span>{{ card.name }}</span>
68493
- <strong>
68494
- @if (card.type === 'offering') {
68495
- +{{ card.life }}
68496
- } @else {
68497
- {{ card.attack }} / {{ card.life }}
68498
- }
68499
- </strong>
68500
- </button>
68501
- }
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>
68502
68574
  </section>
68503
68575
 
68504
68576
  @if (selectedPreview()) {
@@ -68561,8 +68633,46 @@ class ChristianityGameComponent {
68561
68633
  }
68562
68634
  </section>
68563
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
+ }
68564
68674
  </main>
68565
- `, isInline: true, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player-side{display:grid;gap:.35rem;min-height:0}.christianity-player-side--opponent{padding:.25rem .3rem .05rem;border-radius:.7rem;background:#ffffff57}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.christianity-opponent-hand-area{display:grid;min-height:4.55rem;align-items:start;overflow:hidden}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.45rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-hand-count{display:grid;align-content:center;justify-items:center;width:100%;min-height:3.4rem;padding:.35rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#ffffffad}.christianity-hand-count span{color:#1f293394;font-size:.72rem}.christianity-hand-count strong{font-size:1.05rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;min-height:5.6rem;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:.62rem .72rem auto auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card{position:fixed;top:50%;left:50%;z-index:21;display:grid;gap:.45rem;width:min(20rem,calc(100vw - 2rem));min-height:min(27rem,calc(100vh - 5rem));padding:1rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(calc(-50% + var(--preview-shift-x, 0px)),calc(-50% + var(--preview-shift-y, 0px))) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;z-index:20;border:0;border-radius:0;background:#0f172a75}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.35rem,8vw,2rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-history-backdrop{z-index:22}.christianity-history-drawer{position:fixed;right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));left:max(.5rem,env(safe-area-inset-left));z-index:23;display:grid;gap:.75rem;max-height:min(27rem,calc(100vh - 4rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;overflow-y:auto;padding:.1rem .1rem .25rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }); }
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;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.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-shelf--opponent{min-height:5.6rem;padding:0 .25rem .15rem}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.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:6.6rem;padding:.62rem .52rem .55rem;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-card,.christianity-zone-pile{min-height:6.45rem;padding:.62rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;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-hand-shelf--opponent{min-height:5rem;padding-top:0}.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-offering-pile,.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.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-hand-fan--opponent{min-height:4rem}}\n"] }); }
68566
68676
  }
68567
68677
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
68568
68678
  type: Component,
@@ -68600,21 +68710,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68600
68710
  </article>
68601
68711
  </section>
68602
68712
 
68713
+ <section class="christianity-hand-shelf christianity-hand-shelf--opponent">
68714
+ <section class="christianity-hand-fan christianity-hand-fan--opponent" [attr.aria-label]="t('christianityOpponentHand')">
68715
+ @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
68716
+ <button
68717
+ type="button"
68718
+ class="christianity-card-preview-card christianity-card-preview-card--back"
68719
+ [style.transform]="fanTransform($index, opponentHandCount(), true)"
68720
+ [attr.aria-label]="t('christianityHiddenCard')"
68721
+ ></button>
68722
+ }
68723
+ </section>
68724
+ </section>
68725
+
68603
68726
  <section class="christianity-table" [attr.aria-label]="t('christianityTable')">
68604
68727
  <section class="christianity-player-side christianity-player-side--opponent">
68605
68728
  <section class="christianity-player-rack christianity-player-rack--opponent">
68606
68729
  <div class="christianity-offerings-zone">
68607
- @for (offering of opponent().offerings; track offering.instanceId) {
68608
- <button
68609
- type="button"
68610
- class="christianity-card-mini christianity-card-mini--offering"
68611
- [class.is-exhausted]="!offering.ready"
68612
- (click)="inspectOffering(offering)"
68613
- >
68614
- <span>{{ t('christianityOfferingCard') }}</span>
68615
- <strong>+{{ offering.value }}</strong>
68616
- </button>
68617
- }
68730
+ <button type="button" class="christianity-offering-pile" (click)="openOfferings('P2')">
68731
+ <i aria-hidden="true"></i>
68732
+ <i aria-hidden="true"></i>
68733
+ <i aria-hidden="true"></i>
68734
+ <span>{{ t('christianityOfferings') }}</span>
68735
+ <strong>{{ readyOfferings(opponent()) }}/{{ totalOfferings(opponent()) }}</strong>
68736
+ </button>
68618
68737
  </div>
68619
68738
  <button type="button" class="christianity-leader-card" [class.is-target]="selectedAttacker() && !hasOpponentGuards()" (click)="handleOpponentLeader()">
68620
68739
  <span>{{ opponent().leaderName }}</span>
@@ -68626,36 +68745,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68626
68745
  </div>
68627
68746
  </section>
68628
68747
 
68629
- <section class="christianity-opponent-hand-area" [attr.aria-label]="t('christianityOpponentHand')">
68630
- <div class="christianity-hand-fan christianity-hand-fan--opponent">
68631
- @for (_ of hiddenHandCards(opponentHandCount()); track $index) {
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) {
68632
68751
  <button
68633
68752
  type="button"
68634
- class="christianity-card-preview-card christianity-card-preview-card--back"
68635
- [style.transform]="fanTransform($index, opponentHandCount(), true)"
68636
- [attr.aria-label]="t('christianityHiddenCard')"
68637
- ></button>
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>
68638
68762
  }
68639
- </div>
68640
- </section>
68641
- </section>
68642
-
68643
- <section class="christianity-battle-zone christianity-battle-zone--opponent" [attr.aria-label]="t('christianityOpponentBattle')">
68644
- @for (slot of battleSlots('P2'); track slot.trackId) {
68645
- @if (slot.card) {
68646
- <button
68647
- type="button"
68648
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68649
- [class.is-target]="selectedAttacker()"
68650
- (click)="handleOpponentCharacter(slot.card)"
68651
- >
68652
- <span>{{ slot.card.name }}</span>
68653
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68654
- </button>
68655
- } @else {
68656
- <span class="christianity-slot"></span>
68657
68763
  }
68658
- }
68764
+ </section>
68659
68765
  </section>
68660
68766
 
68661
68767
  <section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
@@ -68679,83 +68785,87 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68679
68785
  </div>
68680
68786
  </section>
68681
68787
 
68682
- <section class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
68683
- @for (slot of battleSlots('P1'); track slot.trackId) {
68684
- @if (slot.card) {
68685
- <button
68686
- type="button"
68687
- class="christianity-card-preview-card christianity-card-preview-card--battle"
68688
- [class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
68689
- [class.is-exhausted]="!slot.card.canAttack"
68690
- (click)="selectAttacker(slot.card)"
68691
- >
68692
- <span>{{ slot.card.name }}</span>
68693
- <strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
68694
- </button>
68695
- } @else {
68696
- <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
+ }
68697
68805
  }
68698
- }
68699
- </section>
68806
+ </section>
68700
68807
 
68701
- <section class="christianity-player-rack">
68702
- <div class="christianity-offerings-zone">
68703
- @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>
68704
68827
  <button
68705
68828
  type="button"
68706
- class="christianity-card-mini christianity-card-mini--offering"
68707
- [class.is-exhausted]="!offering.ready"
68708
- (click)="inspectOffering(offering)"
68829
+ class="christianity-end-turn"
68830
+ (click)="endTurn()"
68709
68831
  >
68710
- <span>{{ t('christianityOfferingCard') }}</span>
68711
- <strong>+{{ offering.value }}</strong>
68832
+ {{ t('christianityEndTurn') }}
68712
68833
  </button>
68713
- }
68714
- </div>
68715
- <button type="button" class="christianity-leader-card" (click)="inspectLeader('P1')">
68716
- <span>{{ player().leaderName }}</span>
68717
- <strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
68718
- </button>
68719
- <div class="christianity-player-command">
68720
- <div class="christianity-player-badge">
68721
- <span class="christianity-avatar" [style.background]="player().avatarColor">{{ player().avatar }}</span>
68722
- <strong>{{ player().displayName }}</strong>
68723
68834
  </div>
68724
- <button type="button" class="christianity-end-turn" (click)="endTurn()">
68725
- {{ t('christianityEndTurn') }}
68726
- </button>
68727
- </div>
68835
+ </section>
68728
68836
  </section>
68729
68837
  </section>
68730
68838
 
68731
- <section class="christianity-hand-fan" [attr.aria-label]="t('christianityYourHand')">
68732
- @for (cardId of player().hand ?? []; track cardId + $index) {
68733
- @let card = cardDefinition(cardId);
68734
- <button
68735
- type="button"
68736
- class="christianity-card-preview-card christianity-card-preview-card--hand"
68737
- [class.is-selected]="selectedHandCard() === cardId"
68738
- [class.is-disabled]="!canPlay(card)"
68739
- [style.transform]="fanTransform($index, player().hand?.length ?? 0, false)"
68740
- (click)="selectHandCard(cardId)"
68741
- >
68742
- <small>
68743
- @if (card.type === 'offering') {
68744
- {{ t('christianityOfferingCard') }}
68745
- } @else {
68746
- {{ t('christianityCost') }} {{ card.cost }}
68747
- }
68748
- </small>
68749
- <span>{{ card.name }}</span>
68750
- <strong>
68751
- @if (card.type === 'offering') {
68752
- +{{ card.life }}
68753
- } @else {
68754
- {{ card.attack }} / {{ card.life }}
68755
- }
68756
- </strong>
68757
- </button>
68758
- }
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>
68759
68869
  </section>
68760
68870
 
68761
68871
  @if (selectedPreview()) {
@@ -68818,8 +68928,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68818
68928
  }
68819
68929
  </section>
68820
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
+ }
68821
68969
  </main>
68822
- `, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-table{display:grid;gap:.45rem;padding:.45rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player-side{display:grid;gap:.35rem;min-height:0}.christianity-player-side--opponent{padding:.25rem .3rem .05rem;border-radius:.7rem;background:#ffffff57}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:7.4rem;padding:0 .25rem;isolation:isolate}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.christianity-opponent-hand-area{display:grid;min-height:4.55rem;align-items:start;overflow:hidden}.christianity-card-preview-card,.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;align-content:space-between;width:clamp(4.9rem,17vw,7.1rem);min-height:clamp(6.6rem,22vw,8.8rem);margin-inline:-.42rem;padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-card-preview-card--hand:hover,.christianity-card-preview-card--hand.is-selected{z-index:3;border-color:#2563eb;box-shadow:0 1rem 2rem #2563eb2e}.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:clamp(5rem,16vw,6.6rem);background:linear-gradient(135deg,#102a431f,#102a4305),repeating-linear-gradient(45deg,#e2e8f0 0 .35rem,#f8fafc .35rem .7rem)}.christianity-card-preview-card--battle{width:100%;min-height:5.7rem;margin-inline:0}.christianity-card-preview-card span,.christianity-card-mini span,.christianity-leader-card span,.christianity-zone-card span,.christianity-zone-pile span{font-weight:700}.christianity-card-preview-card strong,.christianity-card-mini strong,.christianity-leader-card strong,.christianity-zone-card strong,.christianity-zone-pile strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{display:grid;grid-template-columns:minmax(4.2rem,1fr) minmax(5rem,6.5rem) minmax(4.2rem,1fr);gap:.45rem;align-items:end;justify-items:center}.christianity-player-rack--opponent{align-items:start}.christianity-hand-count{display:grid;align-content:center;justify-items:center;width:100%;min-height:3.4rem;padding:.35rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#ffffffad}.christianity-hand-count span{color:#1f293394;font-size:.72rem}.christianity-hand-count strong{font-size:1.05rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end;width:100%}.christianity-card-mini,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-mini{width:3.5rem}.christianity-leader-card{width:min(100%,6.5rem);min-height:5.8rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(4rem,1fr))}.christianity-shared-zone{display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;min-height:5.6rem;box-shadow:inset 0 0 0 999px #ffffff1f}.christianity-zone-pile i{position:absolute;inset:.62rem .72rem auto auto;z-index:-1;width:2.7rem;height:3.7rem;border:1px solid rgba(16,42,67,.18);border-radius:.35rem;background:#f8fafc;box-shadow:0 .35rem .85rem #102a431c;transform:rotate(4deg)}.christianity-zone-pile i:nth-child(2){transform:translate(-.28rem,.12rem) rotate(-3deg)}.christianity-zone-pile i:nth-child(3){background:linear-gradient(135deg,#102a4329,#102a4308),repeating-linear-gradient(45deg,#dbeafe 0 .33rem,#fff .33rem .66rem);transform:translate(-.54rem,.24rem) rotate(2deg)}.christianity-floating-card{position:fixed;top:50%;left:50%;z-index:21;display:grid;gap:.45rem;width:min(20rem,calc(100vw - 2rem));min-height:min(27rem,calc(100vh - 5rem));padding:1rem;border:1px solid rgba(36,48,68,.18);border-radius:.75rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 20% 0%,rgba(37,99,235,.12),transparent 45%);box-shadow:0 2.4rem 5rem #102a4357,inset 0 0 0 .35rem #ffffff8c;touch-action:none;transform:translate(calc(-50% + var(--preview-shift-x, 0px)),calc(-50% + var(--preview-shift-y, 0px))) perspective(48rem) rotateX(var(--preview-rotate-x, 5deg)) rotateY(var(--preview-rotate-y, -5deg));transition:transform 90ms ease-out}.christianity-preview-backdrop,.christianity-history-backdrop{position:fixed;inset:0;z-index:20;border:0;border-radius:0;background:#0f172a75}.christianity-floating-card small,.christianity-floating-card span{color:#1f2933a3}.christianity-floating-card strong{font-size:clamp(1.35rem,8vw,2rem);line-height:1.05}.christianity-floating-card p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-history-backdrop{z-index:22}.christianity-history-drawer{position:fixed;right:max(.5rem,env(safe-area-inset-right));bottom:max(.5rem,env(safe-area-inset-bottom));left:max(.5rem,env(safe-area-inset-left));z-index:23;display:grid;gap:.75rem;max-height:min(27rem,calc(100vh - 4rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;overflow-y:auto;padding:.1rem .1rem .25rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem}.christianity-battle-zone{grid-template-columns:repeat(4,minmax(3.35rem,1fr));overflow-x:auto}.christianity-hand-fan{min-height:6.8rem;overflow-x:clip}.christianity-player-rack{grid-template-columns:minmax(3.6rem,1fr) minmax(4.8rem,5.6rem) minmax(3.6rem,1fr)}.christianity-shared-zone{grid-template-columns:repeat(3,minmax(3.7rem,1fr))}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);min-height:clamp(5.8rem,26vw,7.4rem)}.christianity-opponent-hand-area{min-height:4.15rem}.christianity-hand-fan--opponent{min-height:4rem}}\n"] }]
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;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.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-shelf--opponent{min-height:5.6rem;padding:0 .25rem .15rem}.christianity-hand-fan--opponent{min-height:4.4rem;align-items:start}.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:6.6rem;padding:.62rem .52rem .55rem;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-card,.christianity-zone-pile{min-height:6.45rem;padding:.62rem .52rem .55rem}.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;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-hand-shelf--opponent{min-height:5rem;padding-top:0}.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-offering-pile,.christianity-zone-card,.christianity-zone-pile{min-height:6.15rem;padding:.58rem .46rem .5rem}.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-hand-fan--opponent{min-height:4rem}}\n"] }]
68823
68971
  }], ctorParameters: () => [] });
68824
68972
 
68825
68973
  addIcons({ refreshOutline, sparklesOutline, trophyOutline });