valtech-components 4.0.385 → 4.0.387

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.385';
61
+ const VERSION = '4.0.387';
62
62
 
63
63
  // Control de estado de refresco (singleton a nivel de módulo)
64
64
  let isRefreshing = false;
@@ -61054,7 +61054,7 @@ function chooseChessimalsBotMove(state, difficulty = 'normal') {
61054
61054
  return scored[0]?.move;
61055
61055
  }
61056
61056
  function applyChessimalsMove(state, candidate) {
61057
- const legalMove = getChessimalsLegalMoves(state, candidate.pieceId, candidate.animal).find((move) => samePosition(move.to, candidate.to));
61057
+ const legalMove = getChessimalsLegalMoves(state, candidate.pieceId, candidate.animal).find((move) => samePosition(move.from, candidate.from) && samePosition(move.to, candidate.to));
61058
61058
  if (!legalMove) {
61059
61059
  throw new Error('CHESSIMALS_ILLEGAL_MOVE');
61060
61060
  }
@@ -61739,19 +61739,63 @@ class ChessimalsOnlineService {
61739
61739
  async move(gameId, move) {
61740
61740
  const normalizedGameId = this.normalizeGameId(gameId);
61741
61741
  const uid = await this.ensureUser();
61742
+ const operationId = this.createOperationId();
61743
+ let rejectedError;
61742
61744
  await runTransaction(this.firestore, async (transaction) => {
61743
61745
  const ref = this.gameRef(normalizedGameId);
61744
61746
  const snapshot = await transaction.get(ref);
61745
61747
  if (!snapshot.exists())
61746
61748
  throw new Error('CHESSIMALS_GAME_NOT_FOUND');
61747
61749
  const state = snapshot.data();
61748
- this.assertNotExpired(state);
61749
61750
  const side = this.participantSide(state, uid);
61750
- if (!side || side !== state.currentTurn)
61751
- throw new Error('CHESSIMALS_NOT_YOUR_TURN');
61752
- const updated = applyChessimalsMove(state, move);
61753
- transaction.set(ref, this.withUpdatedAt(updated));
61751
+ const reject = (code, error) => {
61752
+ const nextError = new Error(code);
61753
+ rejectedError = nextError;
61754
+ const entry = this.createMoveLogEntry({
61755
+ id: operationId,
61756
+ uid,
61757
+ side,
61758
+ status: 'rejected',
61759
+ code,
61760
+ message: error instanceof Error ? error.message : code,
61761
+ move,
61762
+ state,
61763
+ });
61764
+ transaction.set(ref, this.withMoveLog(state, entry));
61765
+ };
61766
+ try {
61767
+ this.assertNotExpired(state);
61768
+ }
61769
+ catch (error) {
61770
+ reject('CHESSIMALS_GAME_EXPIRED', error);
61771
+ return;
61772
+ }
61773
+ if (!side || side !== state.currentTurn) {
61774
+ reject('CHESSIMALS_NOT_YOUR_TURN');
61775
+ return;
61776
+ }
61777
+ try {
61778
+ const updated = applyChessimalsMove(state, move);
61779
+ const entry = this.createMoveLogEntry({
61780
+ id: operationId,
61781
+ uid,
61782
+ side,
61783
+ status: 'accepted',
61784
+ move,
61785
+ state,
61786
+ updated,
61787
+ });
61788
+ transaction.set(ref, this.withMoveLog(updated, entry));
61789
+ }
61790
+ catch (error) {
61791
+ reject(error instanceof Error ? error.message : 'CHESSIMALS_ILLEGAL_MOVE', error);
61792
+ }
61754
61793
  });
61794
+ if (rejectedError) {
61795
+ console.warn('[Chessimals] online move rejected', { gameId: normalizedGameId, operationId, move, code: rejectedError.message });
61796
+ throw rejectedError;
61797
+ }
61798
+ console.info('[Chessimals] online move accepted', { gameId: normalizedGameId, operationId, move });
61755
61799
  }
61756
61800
  async resign(gameId) {
61757
61801
  const normalizedGameId = this.normalizeGameId(gameId);
@@ -61838,6 +61882,9 @@ class ChessimalsOnlineService {
61838
61882
  const normalizedBaseRoute = `/${baseRoute.replace(/^\/+|\/+$/g, '') || 'mini-games'}`;
61839
61883
  return `${origin}${normalizedBaseRoute}/chessimals/${encodeURIComponent(this.normalizeGameId(gameId))}`;
61840
61884
  }
61885
+ projectionShareUrl(gameId, baseRoute = '/mini-games') {
61886
+ return `${this.shareUrl(gameId, baseRoute)}/projection`;
61887
+ }
61841
61888
  async saveCurrentUserHistory(state) {
61842
61889
  const uid = this.currentUid;
61843
61890
  if (!uid || state.mode !== 'online')
@@ -61889,6 +61936,43 @@ class ChessimalsOnlineService {
61889
61936
  return state;
61890
61937
  return { ...state, online: { ...state.online, updatedAt: date.toISOString() } };
61891
61938
  }
61939
+ withMoveLog(state, entry, date = new Date()) {
61940
+ if (!state.online)
61941
+ return this.withUpdatedAt(state, date);
61942
+ return {
61943
+ ...state,
61944
+ online: {
61945
+ ...state.online,
61946
+ updatedAt: date.toISOString(),
61947
+ moveLog: [...(state.online.moveLog ?? []), entry].slice(-80),
61948
+ },
61949
+ };
61950
+ }
61951
+ createMoveLogEntry(args) {
61952
+ return this.withoutUndefined({
61953
+ id: args.id,
61954
+ at: new Date().toISOString(),
61955
+ uid: args.uid,
61956
+ side: args.side,
61957
+ status: args.status,
61958
+ code: args.code,
61959
+ message: args.message,
61960
+ move: this.sanitizeMove(args.move),
61961
+ moveCountBefore: args.state.moveCount,
61962
+ moveCountAfter: args.updated?.moveCount,
61963
+ currentTurnBefore: args.state.currentTurn,
61964
+ });
61965
+ }
61966
+ sanitizeMove(move) {
61967
+ return this.withoutUndefined({
61968
+ pieceId: move.pieceId,
61969
+ from: { ...move.from },
61970
+ to: { ...move.to },
61971
+ kind: move.kind,
61972
+ animal: move.animal,
61973
+ capturesPieceId: move.capturesPieceId,
61974
+ });
61975
+ }
61892
61976
  createHistoryEntry(state, uid) {
61893
61977
  if (!state.online)
61894
61978
  return undefined;
@@ -61945,6 +62029,11 @@ class ChessimalsOnlineService {
61945
62029
  const makePart = () => Array.from({ length: 4 }, () => alphabet[this.randomIndex(alphabet.length)]).join('');
61946
62030
  return `${makePart()}-${makePart()}`;
61947
62031
  }
62032
+ createOperationId() {
62033
+ if (typeof crypto !== 'undefined' && 'randomUUID' in crypto)
62034
+ return crypto.randomUUID();
62035
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
62036
+ }
61948
62037
  randomIndex(max) {
61949
62038
  if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
61950
62039
  const values = new Uint32Array(1);
@@ -62113,6 +62202,10 @@ const MINI_GAMES_I18N = {
62113
62202
  chessimalsShareLink: 'Compartir link',
62114
62203
  chessimalsLinkCopied: 'Link de la partida copiado.',
62115
62204
  chessimalsShareText: 'Únete a mi partida de Chessimals.',
62205
+ chessimalsShareProjection: 'Compartir proyección',
62206
+ chessimalsProjectionTitle: 'Proyección de Chessimals',
62207
+ chessimalsProjectionShareText: 'Mira esta partida de Chessimals en pantalla grande.',
62208
+ chessimalsProjectionLinkCopied: 'Link de proyección copiado.',
62116
62209
  chessimalsOnlineWaiting: 'Esperando',
62117
62210
  chessimalsOnlinePending: 'Pendiente',
62118
62211
  chessimalsOnlinePlayer: 'Online',
@@ -62342,6 +62435,10 @@ const MINI_GAMES_I18N = {
62342
62435
  chessimalsShareLink: 'Share link',
62343
62436
  chessimalsLinkCopied: 'Game link copied.',
62344
62437
  chessimalsShareText: 'Join my Chessimals game.',
62438
+ chessimalsShareProjection: 'Share projection',
62439
+ chessimalsProjectionTitle: 'Chessimals projection',
62440
+ chessimalsProjectionShareText: 'Watch this Chessimals game on a big screen.',
62441
+ chessimalsProjectionLinkCopied: 'Projection link copied.',
62345
62442
  chessimalsOnlineWaiting: 'Waiting',
62346
62443
  chessimalsOnlinePending: 'Pending',
62347
62444
  chessimalsOnlinePlayer: 'Online',
@@ -62487,13 +62584,16 @@ class RetroAudioService {
62487
62584
  this.activeMelody = mode;
62488
62585
  this.noteIndex = 0;
62489
62586
  const melody = mode === 'menu' ? this.menuMelody() : this.gameMelody();
62490
- const intervalMs = mode === 'menu' ? 560 : 190;
62491
- const wave = mode === 'menu' ? 'sine' : 'square';
62492
- const gain = mode === 'menu' ? 0.012 : 0.025;
62587
+ const intervalMs = mode === 'menu' ? 640 : 190;
62588
+ const wave = mode === 'menu' ? 'triangle' : 'square';
62589
+ const gain = mode === 'menu' ? 0.018 : 0.025;
62493
62590
  this.musicTimer = window.setInterval(() => {
62591
+ const step = this.noteIndex;
62494
62592
  const [freq, duration] = melody[this.noteIndex % melody.length];
62495
62593
  this.noteIndex += 1;
62496
62594
  this.tone(freq, duration, wave, gain);
62595
+ if (mode === 'menu')
62596
+ this.savannaPulse(step);
62497
62597
  }, intervalMs);
62498
62598
  }
62499
62599
  stopMusic() {
@@ -62637,6 +62737,14 @@ class RetroAudioService {
62637
62737
  window.setTimeout(() => void this.sweep(130.81, 65.41, 0.28, 'sawtooth', 0.02), 40);
62638
62738
  window.setTimeout(() => void this.sweep(523.25, 1567.98, 0.34, 'sine', 0.026), 240);
62639
62739
  }
62740
+ chessimalsJoinRequest() {
62741
+ void this.sequence([
62742
+ [523.25, 0.055],
62743
+ [659.25, 0.06],
62744
+ [987.77, 0.12],
62745
+ ], 'triangle', 0.034, 58);
62746
+ window.setTimeout(() => void this.tone(1318.51, 0.075, 'sine', 0.02), 136);
62747
+ }
62640
62748
  chessimalsPowerUnlocked() {
62641
62749
  void this.sequence([
62642
62750
  [392, 0.055],
@@ -62665,18 +62773,35 @@ class RetroAudioService {
62665
62773
  }
62666
62774
  menuMelody() {
62667
62775
  return [
62668
- [261.63, 0.22],
62776
+ [220, 0.38],
62669
62777
  [0, 0.12],
62670
- [329.63, 0.22],
62671
- [392, 0.3],
62672
- [329.63, 0.26],
62673
- [293.66, 0.3],
62778
+ [261.63, 0.34],
62779
+ [329.63, 0.42],
62780
+ [293.66, 0.28],
62781
+ [0, 0.12],
62782
+ [392, 0.48],
62783
+ [329.63, 0.34],
62784
+ [261.63, 0.36],
62785
+ [220, 0.58],
62786
+ [0, 0.2],
62787
+ [293.66, 0.34],
62788
+ [329.63, 0.42],
62789
+ [440, 0.5],
62674
62790
  [392, 0.36],
62675
- [392, 0.28],
62676
- [329.63, 0.22],
62677
- [261.63, 0.5],
62791
+ [261.63, 0.62],
62678
62792
  ];
62679
62793
  }
62794
+ savannaPulse(step) {
62795
+ if (step % 4 === 0) {
62796
+ window.setTimeout(() => void this.sweep(96, 48, 0.18, 'sine', 0.012), 18);
62797
+ }
62798
+ if (step % 8 === 5) {
62799
+ window.setTimeout(() => void this.tone(164.81, 0.045, 'triangle', 0.012), 96);
62800
+ }
62801
+ if (step % 16 === 10) {
62802
+ window.setTimeout(() => void this.sweep(146.83, 196, 0.08, 'triangle', 0.01), 140);
62803
+ }
62804
+ }
62680
62805
  gameMelody() {
62681
62806
  return [
62682
62807
  [523.25, 0.13],
@@ -62799,6 +62924,113 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
62799
62924
  args: [{ providedIn: 'root' }]
62800
62925
  }], ctorParameters: () => [] });
62801
62926
 
62927
+ /**
62928
+ * HapticsService — feedback háptico reutilizable cross-app.
62929
+ *
62930
+ * Estrategia de dos niveles, best-effort (ningún método lanza):
62931
+ *
62932
+ * 1. **Nativo (preferido)** — usa `@capacitor/haptics` vía dynamic import. Es un
62933
+ * **peer dep OPCIONAL**: instalalo en la app consumer para haptics nativos en
62934
+ * iOS/Android (`npm i @capacitor/haptics`, misma major que `@capacitor/core`).
62935
+ * Si no está instalado, el import falla silenciosamente y se cae al fallback.
62936
+ * 2. **Fallback web/PWA** — `navigator.vibrate(...)` con patrones equivalentes.
62937
+ * SSR-safe (chequea `typeof navigator`). En iOS Safari `navigator.vibrate`
62938
+ * no existe / se ignora — es **esperado**: no hay vibración en web iOS, solo
62939
+ * con el plugin nativo de Capacitor.
62940
+ *
62941
+ * Mismo patrón de dynamic-import de peer dep opcional que `SplashScreenService`.
62942
+ *
62943
+ * @example
62944
+ * private haptics = inject(HapticsService);
62945
+ * await this.haptics.success();
62946
+ * await this.haptics.impact('light');
62947
+ */
62948
+ class HapticsService {
62949
+ /** Feedback de éxito (operación completada). */
62950
+ async success() {
62951
+ try {
62952
+ const m = await import('@capacitor/haptics');
62953
+ await m.Haptics.notification({ type: m.NotificationType.Success });
62954
+ }
62955
+ catch {
62956
+ this.vibrate(100);
62957
+ }
62958
+ }
62959
+ /** Feedback de advertencia / estado esperado pero atípico. */
62960
+ async warning() {
62961
+ try {
62962
+ const m = await import('@capacitor/haptics');
62963
+ await m.Haptics.notification({ type: m.NotificationType.Warning });
62964
+ }
62965
+ catch {
62966
+ this.vibrate([60, 40, 60]);
62967
+ }
62968
+ }
62969
+ /** Feedback de error (operación fallida). */
62970
+ async error() {
62971
+ try {
62972
+ const m = await import('@capacitor/haptics');
62973
+ await m.Haptics.notification({ type: m.NotificationType.Error });
62974
+ }
62975
+ catch {
62976
+ this.vibrate([80, 60, 80]);
62977
+ }
62978
+ }
62979
+ /**
62980
+ * Impacto físico (toque/golpe). Default `'medium'`.
62981
+ *
62982
+ * @param style intensidad del impacto.
62983
+ */
62984
+ async impact(style = 'medium') {
62985
+ try {
62986
+ const m = await import('@capacitor/haptics');
62987
+ const map = {
62988
+ light: m.ImpactStyle.Light,
62989
+ medium: m.ImpactStyle.Medium,
62990
+ heavy: m.ImpactStyle.Heavy,
62991
+ };
62992
+ await m.Haptics.impact({ style: map[style] });
62993
+ }
62994
+ catch {
62995
+ const durations = {
62996
+ light: 20,
62997
+ medium: 40,
62998
+ heavy: 60,
62999
+ };
63000
+ this.vibrate(durations[style]);
63001
+ }
63002
+ }
63003
+ /** Tick sutil de selección (al recorrer opciones, cambiar de tab, etc.). */
63004
+ async selection() {
63005
+ try {
63006
+ const m = await import('@capacitor/haptics');
63007
+ await m.Haptics.selectionStart();
63008
+ }
63009
+ catch {
63010
+ this.vibrate(10);
63011
+ }
63012
+ }
63013
+ /**
63014
+ * Fallback Vibration API. SSR-safe + feature-detect. Nunca lanza.
63015
+ */
63016
+ vibrate(pattern) {
63017
+ try {
63018
+ if (typeof navigator !== 'undefined' && 'vibrate' in navigator) {
63019
+ navigator.vibrate(pattern);
63020
+ }
63021
+ }
63022
+ catch {
63023
+ // no-op — vibrate puede no estar disponible o estar bloqueado por el browser
63024
+ }
63025
+ }
63026
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63027
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, providedIn: 'root' }); }
63028
+ }
63029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, decorators: [{
63030
+ type: Injectable,
63031
+ args: [{ providedIn: 'root' }]
63032
+ }] });
63033
+
62802
63034
  const CHESSIMALS_MOVE_ANIMATION_MS = 360;
62803
63035
  const CHESSIMALS_BOT_THINKING_MS = 620;
62804
63036
  const CHESSIMALS_BOT_COLOR = 'black';
@@ -62825,6 +63057,7 @@ class ChessimalsGameComponent {
62825
63057
  this.router = inject(Router);
62826
63058
  this.toast = inject(ToastService);
62827
63059
  this.auth = inject(AuthService);
63060
+ this.haptics = inject(HapticsService);
62828
63061
  this.playerProfiles = inject(MiniGamePlayerProfileService);
62829
63062
  this.routeSubscription = new Subscription();
62830
63063
  this.boardSizes = [6, 8];
@@ -62871,11 +63104,13 @@ class ChessimalsGameComponent {
62871
63104
  this.confirmAction = signal(undefined);
62872
63105
  this.onlineJoinCode = signal('');
62873
63106
  this.onlineLoading = signal(false);
63107
+ this.onlineAction = signal(undefined);
62874
63108
  this.onlineError = signal('');
62875
63109
  this.onlineUid = signal(undefined);
62876
63110
  this.onlineHistory = signal([]);
62877
63111
  this.resumeSplashVisible = signal(false);
62878
63112
  this.rematchLoading = signal(false);
63113
+ this.moveSyncing = signal(false);
62879
63114
  this.loggedInUser = this.auth.user;
62880
63115
  this.localPlayerProfile = computed(() => this.playerProfiles.activeProfile());
62881
63116
  this.localPlayerAvatar = computed(() => this.localPlayerProfile()?.avatar ?? '🌟');
@@ -62903,6 +63138,7 @@ class ChessimalsGameComponent {
62903
63138
  bordered: true,
62904
63139
  }));
62905
63140
  this.miniGamesRoute = '/mini-games';
63141
+ this.projectionMode = false;
62906
63142
  this.currentPlayer = computed(() => this.game().players[this.game().currentTurn]);
62907
63143
  this.legalMoves = computed(() => {
62908
63144
  const pieceId = this.selectedPieceId();
@@ -62941,6 +63177,8 @@ class ChessimalsGameComponent {
62941
63177
  return this.online.participantSide(game, uid) ?? 'spectator';
62942
63178
  });
62943
63179
  this.canPlayCurrentTurn = computed(() => {
63180
+ if (this.projectionMode)
63181
+ return false;
62944
63182
  const game = this.game();
62945
63183
  if (game.mode === 'local' && this.selectedLocalMode() === 'bot') {
62946
63184
  return game.currentTurn !== CHESSIMALS_BOT_COLOR && !this.botThinking();
@@ -63115,6 +63353,7 @@ class ChessimalsGameComponent {
63115
63353
  async createOnlineGame() {
63116
63354
  this.clearBotTurn();
63117
63355
  this.onlineError.set('');
63356
+ this.onlineAction.set('create');
63118
63357
  this.onlineLoading.set(true);
63119
63358
  this.resumeSplashVisible.set(true);
63120
63359
  try {
@@ -63126,6 +63365,7 @@ class ChessimalsGameComponent {
63126
63365
  this.game.set(game);
63127
63366
  this.screen.set('game');
63128
63367
  this.audio.flip();
63368
+ void this.haptics.success();
63129
63369
  this.focusBoardSoon();
63130
63370
  void this.router.navigateByUrl(this.chessimalsGameRoute(game.id));
63131
63371
  }
@@ -63134,8 +63374,10 @@ class ChessimalsGameComponent {
63134
63374
  this.onlineError.set(this.t('chessimalsOnlineError'));
63135
63375
  this.resumeSplashVisible.set(false);
63136
63376
  this.audio.miss();
63377
+ void this.haptics.error();
63137
63378
  }
63138
63379
  finally {
63380
+ this.onlineAction.set(undefined);
63139
63381
  this.onlineLoading.set(false);
63140
63382
  }
63141
63383
  }
@@ -63147,9 +63389,15 @@ class ChessimalsGameComponent {
63147
63389
  return;
63148
63390
  }
63149
63391
  this.onlineJoinCode.set(gameId);
63150
- await this.openOnlineGame(gameId);
63151
- if (this.openedOnlineGameId === gameId) {
63152
- void this.router.navigateByUrl(this.chessimalsGameRoute(gameId));
63392
+ this.onlineAction.set('join');
63393
+ try {
63394
+ await this.openOnlineGame(gameId);
63395
+ if (this.openedOnlineGameId === gameId) {
63396
+ void this.router.navigateByUrl(this.chessimalsGameRoute(gameId));
63397
+ }
63398
+ }
63399
+ finally {
63400
+ this.onlineAction.set(undefined);
63153
63401
  }
63154
63402
  }
63155
63403
  async openOnlineGame(gameId) {
@@ -63174,6 +63422,7 @@ class ChessimalsGameComponent {
63174
63422
  this.openedOnlineGameId = normalizedGameId;
63175
63423
  this.watchOnlineGame(normalizedGameId);
63176
63424
  this.screen.set('game');
63425
+ void this.haptics.selection();
63177
63426
  this.focusBoardSoon();
63178
63427
  }
63179
63428
  catch (error) {
@@ -63183,6 +63432,7 @@ class ChessimalsGameComponent {
63183
63432
  this.screen.set('home');
63184
63433
  this.resumeSplashVisible.set(false);
63185
63434
  this.audio.miss();
63435
+ void this.haptics.error();
63186
63436
  }
63187
63437
  finally {
63188
63438
  this.openingOnlineGameId = undefined;
@@ -63310,7 +63560,7 @@ class ChessimalsGameComponent {
63310
63560
  }
63311
63561
  selectCell(position) {
63312
63562
  const game = this.game();
63313
- if (game.status !== 'in_progress' || !this.canPlayCurrentTurn() || this.movingPiece())
63563
+ if (this.projectionMode || game.status !== 'in_progress' || !this.canPlayCurrentTurn() || this.movingPiece() || this.moveSyncing())
63314
63564
  return;
63315
63565
  const piece = getChessimalsPieceAt(game, position);
63316
63566
  if (piece?.color === game.currentTurn) {
@@ -63324,10 +63574,21 @@ class ChessimalsGameComponent {
63324
63574
  const updated = applyChessimalsMove(game, move);
63325
63575
  this.animateMove(game, move, updated);
63326
63576
  if (game.mode === 'online') {
63327
- void this.online.move(game.id, move).catch(() => {
63577
+ this.moveSyncing.set(true);
63578
+ void this.online
63579
+ .move(game.id, move)
63580
+ .then(() => {
63581
+ void this.haptics.impact(move.capturesPieceId ? 'medium' : 'light');
63582
+ })
63583
+ .catch((error) => {
63584
+ console.warn('[Chessimals] online move failed', { gameId: game.id, move, error });
63328
63585
  this.game.set(game);
63329
63586
  this.onlineError.set(this.t('chessimalsOnlineError'));
63330
63587
  this.audio.miss();
63588
+ void this.haptics.error();
63589
+ })
63590
+ .finally(() => {
63591
+ this.moveSyncing.set(false);
63331
63592
  });
63332
63593
  }
63333
63594
  this.selectedPieceId.set(undefined);
@@ -63507,7 +63768,7 @@ class ChessimalsGameComponent {
63507
63768
  }, delayMs);
63508
63769
  }
63509
63770
  toggleAnimal(animal) {
63510
- if (!this.canPlayCurrentTurn() || this.botThinking())
63771
+ if (this.projectionMode || !this.canPlayCurrentTurn() || this.botThinking())
63511
63772
  return;
63512
63773
  const current = this.selectedAnimal();
63513
63774
  this.selectedAnimal.set(current === animal.type ? undefined : animal.type);
@@ -63565,6 +63826,13 @@ class ChessimalsGameComponent {
63565
63826
  rankLabel(row) {
63566
63827
  return `${this.game().boardSize - row}`;
63567
63828
  }
63829
+ showRankLabel(col) {
63830
+ return col === this.displayCols()[0];
63831
+ }
63832
+ showFileLabel(row) {
63833
+ const rows = this.displayRows();
63834
+ return row === rows[rows.length - 1];
63835
+ }
63568
63836
  playerLabel(color) {
63569
63837
  return color === 'white' ? this.t('chessimalsWhite') : this.t('chessimalsBlack');
63570
63838
  }
@@ -63616,6 +63884,30 @@ class ChessimalsGameComponent {
63616
63884
  }
63617
63885
  await this.copyOnlineLink();
63618
63886
  }
63887
+ async shareProjectionLink() {
63888
+ const url = this.online.projectionShareUrl(this.game().id, this.miniGamesBaseRoute());
63889
+ if (navigator.share) {
63890
+ await navigator.share({
63891
+ title: this.t('chessimalsProjectionTitle'),
63892
+ text: this.t('chessimalsProjectionShareText'),
63893
+ url,
63894
+ });
63895
+ return;
63896
+ }
63897
+ try {
63898
+ await navigator.clipboard?.writeText(url);
63899
+ this.toast.show({
63900
+ message: this.t('chessimalsProjectionLinkCopied'),
63901
+ color: 'dark',
63902
+ duration: 2200,
63903
+ position: 'top',
63904
+ });
63905
+ this.audio.flip();
63906
+ }
63907
+ catch {
63908
+ this.audio.miss();
63909
+ }
63910
+ }
63619
63911
  canReviewPendingGuest() {
63620
63912
  const game = this.game();
63621
63913
  const uid = this.onlineUid();
@@ -63646,36 +63938,44 @@ class ChessimalsGameComponent {
63646
63938
  async acceptOnlineGuest() {
63647
63939
  if (!this.canReviewPendingGuest())
63648
63940
  return;
63941
+ this.onlineAction.set('accept');
63649
63942
  this.onlineLoading.set(true);
63650
63943
  try {
63651
63944
  await this.online.acceptGuest(this.game().id);
63652
63945
  this.toast.show({ message: this.t('chessimalsGuestAccepted'), color: 'dark', duration: 2200, position: 'top' });
63653
63946
  this.audio.flip();
63947
+ void this.haptics.success();
63654
63948
  }
63655
63949
  catch (error) {
63656
63950
  console.warn('[Chessimals] accept guest failed', error);
63657
63951
  this.onlineError.set(this.t('chessimalsOnlineError'));
63658
63952
  this.audio.miss();
63953
+ void this.haptics.error();
63659
63954
  }
63660
63955
  finally {
63956
+ this.onlineAction.set(undefined);
63661
63957
  this.onlineLoading.set(false);
63662
63958
  }
63663
63959
  }
63664
63960
  async rejectOnlineGuest() {
63665
63961
  if (!this.canReviewPendingGuest())
63666
63962
  return;
63963
+ this.onlineAction.set('reject');
63667
63964
  this.onlineLoading.set(true);
63668
63965
  try {
63669
63966
  await this.online.rejectGuest(this.game().id);
63670
63967
  this.toast.show({ message: this.t('chessimalsGuestRejected'), color: 'dark', duration: 2200, position: 'top' });
63671
63968
  this.audio.miss();
63969
+ void this.haptics.warning();
63672
63970
  }
63673
63971
  catch (error) {
63674
63972
  console.warn('[Chessimals] reject guest failed', error);
63675
63973
  this.onlineError.set(this.t('chessimalsOnlineError'));
63676
63974
  this.audio.miss();
63975
+ void this.haptics.error();
63677
63976
  }
63678
63977
  finally {
63978
+ this.onlineAction.set(undefined);
63679
63979
  this.onlineLoading.set(false);
63680
63980
  }
63681
63981
  }
@@ -63774,6 +64074,15 @@ class ChessimalsGameComponent {
63774
64074
  this.game.set(state);
63775
64075
  this.selectedBoardSize.set(state.boardSize);
63776
64076
  this.resumeSplashVisible.set(false);
64077
+ const previousPendingUid = previous.id === state.id ? previous.online?.pendingGuest?.uid : undefined;
64078
+ const nextPendingUid = state.online?.pendingGuest?.uid;
64079
+ if (state.status === 'waiting' &&
64080
+ state.online?.lobby?.uid === this.online.currentUid &&
64081
+ !!nextPendingUid &&
64082
+ nextPendingUid !== previousPendingUid) {
64083
+ this.audio.chessimalsJoinRequest();
64084
+ void this.haptics.success();
64085
+ }
63777
64086
  if (previous.currentTurn !== state.currentTurn &&
63778
64087
  state.status === 'in_progress' &&
63779
64088
  !this.shouldKeepBoardOrientationStatic(state)) {
@@ -63781,6 +64090,7 @@ class ChessimalsGameComponent {
63781
64090
  }
63782
64091
  if (state.status === 'finished' && previous.status !== 'finished') {
63783
64092
  this.audio.chessimalsVictory();
64093
+ void this.haptics.success();
63784
64094
  }
63785
64095
  },
63786
64096
  error: () => {
@@ -63802,8 +64112,8 @@ class ChessimalsGameComponent {
63802
64112
  return value.charAt(0).toUpperCase() + value.slice(1);
63803
64113
  }
63804
64114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChessimalsGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63805
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChessimalsGameComponent, isStandalone: true, selector: "val-chessimals-game", inputs: { onlineGameId: "onlineGameId", miniGamesRoute: "miniGamesRoute" }, viewQueries: [{ propertyName: "boardAnchor", first: true, predicate: ["boardAnchor"], descendants: true }], ngImport: i0, template: `
63806
- <main class="chessimals-shell">
64115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChessimalsGameComponent, isStandalone: true, selector: "val-chessimals-game", inputs: { onlineGameId: "onlineGameId", miniGamesRoute: "miniGamesRoute", projectionMode: "projectionMode" }, viewQueries: [{ propertyName: "boardAnchor", first: true, predicate: ["boardAnchor"], descendants: true }], ngImport: i0, template: `
64116
+ <main class="chessimals-shell" [class.chessimals-shell--projection]="projectionMode">
63807
64117
  @if (screen() === 'home') {
63808
64118
  <section class="chessimals-hero">
63809
64119
  <span class="chessimals-hero__icon">♟</span>
@@ -63882,9 +64192,14 @@ class ChessimalsGameComponent {
63882
64192
  <button
63883
64193
  class="chessimals-primary"
63884
64194
  type="button"
64195
+ [class.is-working]="onlineAction() === 'create'"
64196
+ [attr.aria-busy]="onlineAction() === 'create'"
63885
64197
  [disabled]="onlineLoading()"
63886
64198
  (click)="createOnlineGame()"
63887
64199
  >
64200
+ @if (onlineAction() === 'create') {
64201
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64202
+ }
63888
64203
  {{ t('chessimalsCreateOnline') }}
63889
64204
  </button>
63890
64205
  <small>{{ t('chessimalsCreateOnlineHint') }}</small>
@@ -63903,9 +64218,14 @@ class ChessimalsGameComponent {
63903
64218
  <button
63904
64219
  class="chessimals-secondary"
63905
64220
  type="button"
64221
+ [class.is-working]="onlineAction() === 'join'"
64222
+ [attr.aria-busy]="onlineAction() === 'join'"
63906
64223
  [disabled]="onlineLoading() || !onlineJoinCode()"
63907
64224
  (click)="joinOnlineGameByCode()"
63908
64225
  >
64226
+ @if (onlineAction() === 'join') {
64227
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64228
+ }
63909
64229
  {{ t('chessimalsJoinOnline') }}
63910
64230
  </button>
63911
64231
  </div>
@@ -64000,10 +64320,30 @@ class ChessimalsGameComponent {
64000
64320
  </div>
64001
64321
  <div class="chessimals-online-actions">
64002
64322
  @if (canReviewPendingGuest()) {
64003
- <button class="chessimals-secondary" type="button" (click)="rejectOnlineGuest()">
64323
+ <button
64324
+ class="chessimals-secondary"
64325
+ type="button"
64326
+ [class.is-working]="onlineAction() === 'reject'"
64327
+ [attr.aria-busy]="onlineAction() === 'reject'"
64328
+ [disabled]="onlineLoading()"
64329
+ (click)="rejectOnlineGuest()"
64330
+ >
64331
+ @if (onlineAction() === 'reject') {
64332
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64333
+ }
64004
64334
  {{ t('chessimalsRejectGuest') }}
64005
64335
  </button>
64006
- <button class="chessimals-primary" type="button" (click)="acceptOnlineGuest()">
64336
+ <button
64337
+ class="chessimals-primary"
64338
+ type="button"
64339
+ [class.is-working]="onlineAction() === 'accept'"
64340
+ [attr.aria-busy]="onlineAction() === 'accept'"
64341
+ [disabled]="onlineLoading()"
64342
+ (click)="acceptOnlineGuest()"
64343
+ >
64344
+ @if (onlineAction() === 'accept') {
64345
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64346
+ }
64007
64347
  {{ t('chessimalsAcceptGuest') }}
64008
64348
  </button>
64009
64349
  } @else {
@@ -64039,19 +64379,10 @@ class ChessimalsGameComponent {
64039
64379
  class="chessimals-board-wrap"
64040
64380
  [class.is-finished]="game().status === 'finished'"
64041
64381
  [class.is-orienting]="isBoardOrienting()"
64382
+ [class.is-syncing]="moveSyncing()"
64042
64383
  [style.--board-size]="game().boardSize"
64043
64384
  >
64044
64385
  <div class="chessimals-board-frame">
64045
- <div class="chessimals-file-labels" aria-hidden="true">
64046
- @for (col of displayCols(); track col) {
64047
- <span>{{ fileLabel(col) }}</span>
64048
- }
64049
- </div>
64050
- <div class="chessimals-rank-labels" aria-hidden="true">
64051
- @for (row of displayRows(); track row) {
64052
- <span>{{ rankLabel(row) }}</span>
64053
- }
64054
- </div>
64055
64386
  <div
64056
64387
  class="chessimals-board"
64057
64388
  role="grid"
@@ -64077,9 +64408,19 @@ class ChessimalsGameComponent {
64077
64408
  [class.effect-bull]="isMoveEffectCell(row, col, 'bull')"
64078
64409
  [class.effect-kangaroo]="isMoveEffectCell(row, col, 'kangaroo')"
64079
64410
  [class.effect-lion]="isMoveEffectCell(row, col, 'lion')"
64080
- [disabled]="game().status !== 'in_progress' || !canPlayCurrentTurn() || !!movingPiece() || botThinking()"
64411
+ [disabled]="projectionMode || game().status !== 'in_progress' || !canPlayCurrentTurn() || !!movingPiece() || botThinking() || moveSyncing()"
64081
64412
  (click)="selectCell({ row, col })"
64082
64413
  >
64414
+ @if (showRankLabel(col)) {
64415
+ <span class="chessimals-cell-coordinate chessimals-cell-coordinate--rank" aria-hidden="true">
64416
+ {{ rankLabel(row) }}
64417
+ </span>
64418
+ }
64419
+ @if (showFileLabel(row)) {
64420
+ <span class="chessimals-cell-coordinate chessimals-cell-coordinate--file" aria-hidden="true">
64421
+ {{ fileLabel(col) }}
64422
+ </span>
64423
+ }
64083
64424
  @if (pieceAt(row, col); as piece) {
64084
64425
  <span
64085
64426
  class="chessimals-piece"
@@ -64142,20 +64483,10 @@ class ChessimalsGameComponent {
64142
64483
  </div>
64143
64484
  }
64144
64485
  </div>
64145
- <div class="chessimals-rank-labels chessimals-rank-labels--right" aria-hidden="true">
64146
- @for (row of displayRows(); track row) {
64147
- <span>{{ rankLabel(row) }}</span>
64148
- }
64149
- </div>
64150
- <div class="chessimals-file-labels chessimals-file-labels--bottom" aria-hidden="true">
64151
- @for (col of displayCols(); track col) {
64152
- <span>{{ fileLabel(col) }}</span>
64153
- }
64154
- </div>
64155
64486
  </div>
64156
64487
  </section>
64157
64488
 
64158
- @if (onlineRole() !== 'spectator') {
64489
+ @if (onlineRole() !== 'spectator' && !projectionMode) {
64159
64490
  <section
64160
64491
  class="chessimals-powers"
64161
64492
  [class.is-locked]="!currentPlayer().powerUnlocked"
@@ -64243,6 +64574,11 @@ class ChessimalsGameComponent {
64243
64574
  {{ t('restart') }}
64244
64575
  </button>
64245
64576
  }
64577
+ @if (game().mode === 'online' && game().id && !projectionMode) {
64578
+ <button class="chessimals-secondary" type="button" (click)="shareProjectionLink()">
64579
+ {{ t('chessimalsShareProjection') }}
64580
+ </button>
64581
+ }
64246
64582
  <button class="chessimals-secondary" type="button" (click)="requestChangeMode()">
64247
64583
  {{ t('chessimalsChangeMode') }}
64248
64584
  </button>
@@ -64334,12 +64670,12 @@ class ChessimalsGameComponent {
64334
64670
  />
64335
64671
  </ng-template>
64336
64672
  </ion-modal>
64337
- `, isInline: true, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #fff8ea;--chessimals-border: rgba(84, 65, 44, .2);--chessimals-text: #2e251b;--chessimals-muted: #746654;--chessimals-soft: rgba(196, 111, 57, .12);--chessimals-primary: #c46f39;--chessimals-primary-rgb: 196, 111, 57;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #d8a640;--chessimals-secondary-rgb: 216, 166, 64;--chessimals-sky: #2f93b3;--chessimals-sky-rgb: 47, 147, 179;--chessimals-stone: #ede0c2;--chessimals-stone-rgb: 237, 224, 194;--chessimals-selected: #2fffa1;--chessimals-selected-rgb: 47, 255, 161;--chessimals-move: var(--chessimals-sky);--chessimals-move-rgb: var(--chessimals-sky-rgb);--chessimals-capture: #e1a32b;--chessimals-capture-rgb: 225, 163, 43;--chessimals-last: #8b6f4c;--chessimals-last-rgb: 139, 111, 76;--chessimals-cell-light: #fffdf5;--chessimals-cell-dark: #dcc79c;--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .08);--chessimals-piece-white-shadow: drop-shadow(0 0 .04rem rgba(47, 42, 58, .3)) drop-shadow(0 .12rem .18rem rgba(47, 42, 58, .14));--chessimals-piece-black-fill: #2f2a3a;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .08);--chessimals-piece-black-shadow: drop-shadow(0 0 .04rem rgba(255, 255, 255, .16)) drop-shadow(0 .14rem .2rem rgba(0, 0, 0, .24));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .88), transparent 30%), color-mix(in srgb, var(--chessimals-text) 6%, var(--chessimals-panel));--chessimals-animal-face-border: color-mix(in srgb, var(--chessimals-text) 13%, transparent);--chessimals-animal-face-filter: drop-shadow(0 .12rem .12rem rgba(0, 0, 0, .16));--chessimals-animal-face-locked-filter: grayscale(.2) saturate(.72);--chessimals-animal-face-locked-img-opacity: .72;display:grid;gap:1.125rem;max-width:48rem;margin:0 auto;color:var(--chessimals-text)}.chessimals-resume-splash{order:0;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;align-content:center;gap:.65rem;padding:1.5rem;text-align:center;color:var(--chessimals-text);background:radial-gradient(circle at 50% 42%,rgba(var(--chessimals-primary-rgb),.18),transparent 22rem),color-mix(in srgb,var(--chessimals-panel) 92%,transparent);backdrop-filter:blur(.9rem)}.chessimals-resume-splash span{display:grid;place-items:center;width:4.75rem;height:4.75rem;border-radius:1.6rem;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:2.25rem;box-shadow:0 1.25rem 3rem rgba(var(--chessimals-primary-rgb),.32);animation:chessimals-resume-pulse 1.2s ease-in-out infinite}.chessimals-resume-splash strong{font-size:clamp(1.55rem,5vw,2.4rem);font-weight:950;line-height:1.05}.chessimals-resume-splash p{max-width:24rem;margin:0;color:var(--chessimals-muted);font-size:1rem;line-height:1.35}@keyframes chessimals-resume-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.25rem) scale(1.04)}}@keyframes chessimals-spin{to{transform:rotate(360deg)}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #211b15;--chessimals-border: rgba(255, 242, 210, .16);--chessimals-text: #fff1d1;--chessimals-muted: rgba(255, 239, 206, .7);--chessimals-soft: rgba(226, 139, 82, .13);--chessimals-primary: #e28b52;--chessimals-primary-rgb: 226, 139, 82;--chessimals-primary-contrast: #24170f;--chessimals-secondary: #efc96d;--chessimals-secondary-rgb: 239, 201, 109;--chessimals-sky: #5cb2c9;--chessimals-sky-rgb: 92, 178, 201;--chessimals-stone: #5d503f;--chessimals-stone-rgb: 93, 80, 63;--chessimals-cell-light: #2b241c;--chessimals-cell-dark: #725f42;--chessimals-capture: #f0c150;--chessimals-capture-rgb: 240, 193, 80;--chessimals-last: #c8a56d;--chessimals-last-rgb: 200, 165, 109;--chessimals-piece-white-fill: #fffaff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .1);--chessimals-piece-white-shadow: drop-shadow(0 0 .04rem rgba(47, 42, 58, .28)) drop-shadow(0 .12rem .2rem rgba(0, 0, 0, .22));--chessimals-piece-black-fill: #17131f;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .12);--chessimals-piece-black-shadow: drop-shadow(0 0 .04rem rgba(255, 255, 255, .34)) drop-shadow(0 .16rem .24rem rgba(0, 0, 0, .44));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .18), transparent 30%), linear-gradient(145deg, #f7f0ff, #d8d1e4);--chessimals-animal-face-border: rgba(255, 255, 255, .72);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(0, 0, 0, .22));--chessimals-animal-face-locked-filter: grayscale(.32) saturate(.72);--chessimals-animal-face-locked-img-opacity: .58}.chessimals-hero{display:grid;gap:.75rem;overflow:hidden;border-radius:1.75rem;padding:clamp(2rem,7vw,4rem);background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.52),transparent 16%),linear-gradient(135deg,var(--chessimals-primary),var(--chessimals-secondary));color:#fff;text-align:center}.chessimals-hero__icon{font-size:clamp(2.5rem,10vw,5rem);line-height:1}.chessimals-hero h1{margin:0;font-size:clamp(3rem,12vw,5.5rem);line-height:.9;font-weight:950}.chessimals-hero p,.chessimals-howto p,.chessimals-tip p,.chessimals-result p,.chessimals-powers p{margin:0;line-height:1.45}.chessimals-panel,.chessimals-game,.chessimals-powers{display:grid;gap:1rem;border:1px solid var(--chessimals-border);border-radius:1.625rem;padding:clamp(1rem,4vw,1.5rem);background:var(--chessimals-panel)}.chessimals-online{display:grid;gap:.875rem;border:1px solid var(--chessimals-border);border-radius:1.375rem;padding:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-online--waiting{order:2;border-color:rgba(var(--chessimals-primary-rgb),.34)}.chessimals-online h2,.chessimals-online p{margin:0}.chessimals-online h2{font-size:1.1rem;font-weight:950}.chessimals-online p{color:var(--chessimals-muted);line-height:1.4}.chessimals-online__create,.chessimals-online__join{display:grid;gap:.55rem}.chessimals-online__create small{color:var(--chessimals-muted);font-weight:800;line-height:1.35}.chessimals-online__join{border-top:1px solid var(--chessimals-border);padding-top:.85rem}.chessimals-online__join>strong{font-size:.95rem;font-weight:950}.chessimals-online__error{border-radius:.875rem;padding:.7rem .8rem;background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12);color:var(--ion-color-danger, #eb445a)!important;font-weight:800}.chessimals-online__loading{display:flex;align-items:center;gap:.625rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:999px;padding:.65rem .85rem;background:rgba(var(--chessimals-primary-rgb),.08);color:var(--chessimals-text);font-size:.92rem;font-weight:900}.chessimals-online__loading span{width:1rem;height:1rem;border:.15rem solid rgba(var(--chessimals-primary-rgb),.24);border-top-color:var(--chessimals-primary);border-radius:999px;animation:chessimals-spin .75s linear infinite}.chessimals-online-code{display:grid;gap:.4rem;font-weight:950}.chessimals-online-code input{width:100%;min-height:3.3rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.chessimals-game-code{display:grid;gap:.2rem;border-radius:1rem;padding:.85rem 1rem;background:var(--chessimals-soft)}.chessimals-game-code small{color:var(--chessimals-muted);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.chessimals-game-code strong{font-size:clamp(1.35rem,6vw,2rem);font-weight:950;letter-spacing:.05em}.chessimals-online-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-history{gap:.75rem}.chessimals-history__heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.chessimals-history__list{display:grid;gap:.5rem}.chessimals-history__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.7rem .8rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-history__item span{display:grid;gap:.1rem;min-width:0}.chessimals-history__item strong{font-weight:950;letter-spacing:.04em}.chessimals-history__item small{overflow:hidden;color:var(--chessimals-muted);font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.chessimals-history__item em{flex:0 0 auto;color:var(--chessimals-primary);font-size:.86rem;font-style:normal;font-weight:950}.chessimals-pending-player{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:1rem;padding:.75rem;background:var(--chessimals-soft)}.chessimals-pending-player div{display:grid;gap:.1rem;min-width:0}.chessimals-pending-player small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.chessimals-pending-player strong{overflow:hidden;font-size:1.05rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-game{display:grid;gap:.875rem}.chessimals-turn-card{order:1;display:flex;align-items:center;justify-content:space-between;gap:.625rem;min-height:3.75rem;overflow:visible;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1rem;padding:.55rem .65rem;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.34),transparent 18%),linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.2),rgba(var(--chessimals-secondary-rgb),.1))}.chessimals-turn-card.is-black-turn{border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.28);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.12),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-dark-rgb, 47, 42, 58),.14),rgba(var(--chessimals-primary-rgb),.1))}.chessimals-turn-card.is-finished{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.42);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.35),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.18),rgba(var(--chessimals-primary-rgb),.12))}.chessimals-turn-card.is-finished .chessimals-turn-card__chip{color:var(--ion-color-success, #2dd36f)}.chessimals-turn-card__copy{display:grid;min-width:0;gap:.15rem}.chessimals-turn-card__chip{justify-self:start;border-radius:999px;padding:.2rem .5rem;background:var(--chessimals-panel);color:var(--chessimals-primary);font-size:.62rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-turn-card strong{display:block;min-width:0;font-size:clamp(1rem,3.5vw,1.25rem);line-height:1.08;font-weight:950;overflow-wrap:anywhere}.chessimals-turn-card p{display:block;min-width:0;margin:0;color:var(--chessimals-muted);font-size:.78rem;line-height:1.22}.chessimals-player-strip{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;min-width:10rem;max-width:min(17rem,42%);border:1px solid var(--chessimals-border);border-radius:999px;padding:.3rem .55rem .3rem .35rem;background:rgba(var(--ion-color-light-rgb, 244, 245, 248),.72)}:host-context(html.ion-palette-dark) .chessimals-player-strip,:host-context([data-theme=\"dark\"]) .chessimals-player-strip{background:#ffffff0f}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:.875rem;line-height:1}.chessimals-player-strip__text{display:grid;min-width:0;gap:.05rem;line-height:1.1}.chessimals-player-strip__text span{color:var(--chessimals-muted);font-size:.58rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-player-strip__text strong{overflow:hidden;font-size:.82rem;line-height:1.08;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-player-strip__text small{overflow:hidden;color:var(--chessimals-muted);font-size:.66rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.chessimals-arena{order:4;display:grid;gap:.875rem;align-items:start}.chessimals-howto,.chessimals-tip,.chessimals-result,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-result{order:5}.chessimals-rematch-status{order:5;border:1px solid rgba(var(--chessimals-primary-rgb),.22);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-rematch-status.is-incoming{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.38);background:linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.14),transparent),var(--chessimals-panel)}.chessimals-rematch-status strong{font-size:1rem;font-weight:950}.chessimals-rematch-status p{margin:0;color:var(--chessimals-muted);font-size:.88rem;line-height:1.35}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.chessimals-howto p,.chessimals-tip p,.chessimals-powers p{color:var(--chessimals-muted)}.chessimals-learn-more{justify-self:start;min-height:2.75rem;border:0;border-radius:999px;padding:0 1rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font:inherit;font-weight:950}.chessimals-size,.chessimals-mode,.chessimals-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-status{order:3;grid-template-columns:repeat(3,minmax(0,1fr))}.chessimals-size button,.chessimals-mode button,.chessimals-status div{display:grid;gap:.2rem;align-content:center;min-width:0;min-height:3.875rem;padding:.55rem .65rem;border:1px solid var(--chessimals-border);border-radius:1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-size button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-mode button.is-selected{border-color:var(--chessimals-primary);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-difficulty{display:flex;flex-wrap:wrap;gap:.55rem}.chessimals-difficulty button{min-height:2.75rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:950}.chessimals-difficulty button.is-selected{border-color:var(--chessimals-primary);background:var(--chessimals-primary);color:#fff}.chessimals-size strong,.chessimals-mode strong,.chessimals-status strong,.chessimals-result strong,.chessimals-rematch-status strong,.chessimals-tip strong{font-weight:950}.chessimals-status strong{min-width:0;font-size:clamp(.95rem,2.5vw,1.2rem);line-height:1.08;overflow-wrap:anywhere;white-space:normal}.chessimals-size small,.chessimals-mode small,.chessimals-status small{color:var(--chessimals-muted);font-size:.78rem;line-height:1.12}.chessimals-board-wrap{display:grid;justify-items:center;overflow-x:auto;width:100%;padding:.25rem 0}.chessimals-board-wrap.is-orienting .chessimals-board-frame{animation:chessimals-orient-board .32s ease}.chessimals-board-wrap.is-finished{overflow-x:visible}.chessimals-board-frame{--chessimals-coord-size: 1.35rem;--chessimals-coord-gap: .55rem;display:grid;grid-template-columns:var(--chessimals-coord-size) minmax(0,1fr) var(--chessimals-coord-size);grid-template-rows:var(--chessimals-coord-size) minmax(0,1fr) var(--chessimals-coord-size);gap:var(--chessimals-coord-gap);align-items:stretch;justify-content:center;width:min(100%,48rem)}.chessimals-file-labels,.chessimals-rank-labels{display:grid;color:color-mix(in srgb,var(--chessimals-muted) 82%,var(--chessimals-text));font-size:clamp(.62rem,2.1vw,.78rem);font-weight:950;letter-spacing:.04em;line-height:1;text-transform:uppercase;-webkit-user-select:none;user-select:none}.chessimals-file-labels{grid-column:2;grid-row:1;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));align-items:end;text-align:center}.chessimals-file-labels--bottom{grid-row:3;align-items:start}.chessimals-rank-labels{grid-column:1;grid-row:2;grid-template-rows:repeat(var(--board-size),minmax(0,1fr));align-items:center;justify-items:end}.chessimals-rank-labels--right{grid-column:3;justify-items:start}.chessimals-board{position:relative;grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));grid-template-rows:repeat(var(--board-size),minmax(0,1fr));width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--chessimals-border);border-radius:.95rem;background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.22),transparent 20%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.07),transparent 24%),linear-gradient(22deg,transparent 0 28%,rgba(var(--chessimals-stone-rgb),.16) 28.2% 28.55%,transparent 28.8%),linear-gradient(147deg,transparent 0 64%,rgba(var(--chessimals-stone-rgb),.12) 64.2% 64.45%,transparent 64.7%),var(--chessimals-border);box-shadow:inset 0 0 0 1px #ffffff1a,0 .85rem 2.1rem #2e251b1f}@keyframes chessimals-orient-board{0%{opacity:.72;filter:blur(.06rem);transform:scale(.985)}52%{opacity:.92;filter:blur(0);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}.chessimals-center-line{position:absolute;top:50%;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;border-top:.08rem dashed rgba(var(--chessimals-secondary-rgb),.72);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-secondary-rgb),.34));pointer-events:none}.chessimals-power-trail{position:absolute;inset:0;z-index:5;pointer-events:none;--trail-color: rgba(var(--chessimals-selected-rgb), .76);--trail-glow: rgba(var(--chessimals-selected-rgb), .34)}.chessimals-power-trail.is-capture{--trail-color: rgba(var(--chessimals-capture-rgb), .86);--trail-glow: rgba(var(--chessimals-capture-rgb), .46)}.chessimals-power-trail.effect-eagle{--trail-color: rgba(255, 255, 255, .92);--trail-glow: rgba(120, 210, 255, .54)}.chessimals-power-trail.effect-bull{--trail-color: rgba(188, 131, 76, .86);--trail-glow: rgba(188, 131, 76, .36)}.chessimals-power-trail.effect-kangaroo{--trail-color: rgba(174, 124, 255, .86);--trail-glow: rgba(174, 124, 255, .42)}.chessimals-power-trail.effect-lion{--trail-color: rgba(255, 221, 120, .88);--trail-glow: rgba(255, 190, 56, .42)}.chessimals-power-trail>span{position:absolute;top:var(--trail-y);left:var(--trail-x);width:var(--trail-length);height:.45rem;border-radius:999px;background:linear-gradient(90deg,transparent,var(--trail-color) 42%,rgba(255,255,255,.92));box-shadow:0 0 .75rem var(--trail-glow),0 0 1.45rem var(--trail-glow);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0);transform-origin:0 50%;animation:chessimals-power-trail .72s ease-out both}.chessimals-power-trail.effect-eagle>span{height:.28rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 44%,rgba(120,210,255,.58)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);animation-name:chessimals-eagle-trail}.chessimals-power-trail.effect-bull>span{height:.72rem;background:repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 .18rem,transparent .18rem .42rem),linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.86));animation-name:chessimals-bull-trail}.chessimals-power-trail.effect-kangaroo>span{height:1rem;border-top:.16rem dashed var(--trail-color);background:transparent;box-shadow:none;filter:drop-shadow(0 0 .8rem var(--trail-glow));animation-name:chessimals-kangaroo-trail}.chessimals-power-trail.effect-lion>span{height:.62rem;background:linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.82)),repeating-linear-gradient(115deg,rgba(255,255,255,.55) 0 .12rem,transparent .12rem .34rem);animation-name:chessimals-lion-trail}@keyframes chessimals-power-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}28%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.72)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-eagle-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) skew(-10deg)}30%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.82) skew(-10deg)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1.05) skew(-10deg)}}@keyframes chessimals-bull-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) scaleY(1)}38%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.7) scaleY(1.18)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1) scaleY(.82)}}@keyframes chessimals-kangaroo-trail{0%{opacity:0;transform:translateY(-.4rem) rotate(var(--trail-angle)) scaleX(0)}34%{opacity:1;transform:translateY(-1.2rem) rotate(var(--trail-angle)) scaleX(.62)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-lion-trail{0%{opacity:0;filter:saturate(1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}36%{opacity:1;filter:saturate(1.4);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.76)}to{opacity:0;filter:saturate(1.1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}.chessimals-board-overlay{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:.45rem;padding:1.25rem;background:radial-gradient(circle at 50% 36%,rgba(255,226,129,.28),transparent 28%),radial-gradient(circle at 50% 48%,rgba(var(--chessimals-primary-rgb),.3),transparent 44%),#0d0a12c7;color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.62) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.46) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.42) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay>*{position:relative;z-index:1}.chessimals-board-overlay span{justify-self:center;border-radius:999px;padding:.32rem .7rem;background:#ffffff26;color:#ffffffe6;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay strong{font-size:clamp(1.65rem,8vw,3rem);line-height:1;font-weight:950;text-shadow:0 0 1.25rem rgba(255,255,255,.26)}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}.chessimals-cell{position:relative;isolation:isolate;--chessimals-cell-bg: var(--chessimals-cell-light);display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;border:0;background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.2),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(var(--chessimals-stone-rgb),.12),transparent 28%),linear-gradient(24deg,transparent 0 34%,rgba(255,255,255,.08) 34.3% 34.8%,transparent 35.1%),linear-gradient(138deg,transparent 0 70%,rgba(var(--chessimals-stone-rgb),.11) 70.2% 70.55%,transparent 70.8%),var(--chessimals-cell-bg);color:var(--chessimals-text);font:inherit;overflow:hidden;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.chessimals-cell:before,.chessimals-cell:after{pointer-events:none}.chessimals-cell.is-dark-cell{--chessimals-cell-bg: var(--chessimals-cell-dark)}.chessimals-cell.is-selected{z-index:1;background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.28) 0 36%,transparent 62%),linear-gradient(135deg,rgba(var(--chessimals-selected-rgb),.22),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .18rem var(--chessimals-selected),inset 0 0 .55rem #ffffffb8,inset 0 0 1.8rem rgba(var(--chessimals-selected-rgb),.42),0 0 .55rem rgba(var(--chessimals-selected-rgb),.56),0 0 1.55rem rgba(var(--chessimals-selected-rgb),.36)}.chessimals-cell.is-legal:not(.is-capture):after{position:absolute;inset:.35rem;z-index:2;border:.14rem solid var(--chessimals-move);border-radius:.55rem;content:\"\";opacity:.74;pointer-events:none}.chessimals-cell.is-last:not(.is-selected):not(.is-legal):not(.is-capture){background:radial-gradient(circle,rgba(var(--chessimals-last-rgb),.16) 0 42%,transparent 68%),var(--chessimals-cell-bg)}.chessimals-cell.is-capture{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.24),transparent 34%),linear-gradient(135deg,rgba(var(--chessimals-capture-rgb),.14),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .14rem rgba(var(--chessimals-capture-rgb),.84),inset 0 0 1.4rem rgba(var(--chessimals-capture-rgb),.24),0 0 .95rem rgba(var(--chessimals-capture-rgb),.34);animation:chessimals-capture-aura 1.35s ease-in-out infinite}.chessimals-cell.is-capture:before{position:absolute;inset:.08rem;z-index:1;display:block;border-radius:.64rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.24),transparent 58%);content:\"\";opacity:0;transform:translate(-42%) scale(.9);animation:chessimals-capture-sweep 1.35s ease-in-out infinite}.chessimals-cell.is-capture:after{position:absolute;inset:.2rem;z-index:3;border:.12rem solid rgba(var(--chessimals-capture-rgb),.9);border-radius:.62rem;box-shadow:0 0 .75rem rgba(var(--chessimals-capture-rgb),.5),inset 0 0 .72rem #ffffff38;content:\"\";pointer-events:none;animation:chessimals-capture-frame 1.35s ease-in-out infinite}@keyframes chessimals-capture-aura{0%,to{filter:saturate(1);box-shadow:inset 0 0 0 .12rem rgba(var(--chessimals-capture-rgb),.78),inset 0 0 1rem rgba(var(--chessimals-capture-rgb),.2),0 0 .64rem rgba(var(--chessimals-capture-rgb),.32)}50%{filter:saturate(1.22);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.96),inset 0 0 1.34rem rgba(var(--chessimals-capture-rgb),.34),0 0 1.2rem rgba(var(--chessimals-capture-rgb),.48)}}@keyframes chessimals-capture-sweep{0%{opacity:0;transform:translate(-52%) scale(.88)}42%{opacity:.66;transform:translate(0) scale(1)}to{opacity:0;transform:translate(48%) scale(.92)}}@keyframes chessimals-capture-frame{0%,to{opacity:.68;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.chessimals-cell.has-source-effect:not(.is-moving-source){background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.12) 0 34%,transparent 64%),var(--chessimals-cell-bg)}.chessimals-cell.has-move-effect{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.22) 0 34%,transparent 68%),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.86),inset 0 0 1.2rem rgba(var(--chessimals-capture-rgb),.26),0 0 1.1rem rgba(var(--chessimals-capture-rgb),.42)}.chessimals-cell.has-move-effect:before{position:absolute;inset:.12rem;z-index:1;display:block;border-radius:.7rem;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.48),transparent 22%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.42),transparent 58%);content:\"\";opacity:0;transform:scale(.72);animation:chessimals-power-impact .7s ease-out both}.chessimals-cell.has-move-effect:after{position:absolute;inset:.28rem;z-index:4;display:block;border:.14rem solid rgba(255,255,255,.72);border-radius:.58rem;box-shadow:0 0 .5rem #ffffff5c,0 0 1rem rgba(var(--chessimals-capture-rgb),.32);content:\"\";animation:chessimals-power-frame .86s ease-out both}.chessimals-cell.has-capture-effect{animation:chessimals-capture-hit .78s ease-out both}.chessimals-cell.effect-eagle:before{background:linear-gradient(135deg,transparent 10%,rgba(255,255,255,.78) 48%,transparent 52%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.36),transparent 62%)}.chessimals-cell.effect-bull:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 .16rem,transparent .16rem .34rem),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.38),transparent 62%)}.chessimals-cell.effect-kangaroo:before{border-radius:999px;background:radial-gradient(circle at 42% 44%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 58% 56%,rgba(var(--chessimals-capture-rgb),.4),transparent 64%)}.chessimals-cell.effect-lion:before{background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.56),transparent,rgba(var(--chessimals-capture-rgb),.4),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.34),transparent 62%)}@keyframes chessimals-power-impact{0%{opacity:0;transform:scale(.54) rotate(0)}28%{opacity:1;transform:scale(.96) rotate(2deg)}to{opacity:0;transform:scale(1.3) rotate(8deg)}}@keyframes chessimals-power-frame{0%{opacity:0;transform:scale(.84)}34%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.16)}}@keyframes chessimals-capture-hit{0%,to{filter:saturate(1)}35%{filter:saturate(1.35) brightness(1.08)}}.chessimals-cell.is-moving-source .chessimals-piece{opacity:0}.chessimals-piece{position:relative;z-index:2;display:block;width:clamp(2.1rem,7.8vw,3.95rem);height:clamp(2.1rem,7.8vw,3.95rem);color:var(--chessimals-primary);--chessimals-piece-fill: var(--chessimals-piece-white-fill);--chessimals-piece-side: var(--chessimals-piece-white-side);--chessimals-piece-line: var(--chessimals-piece-white-line);--chessimals-piece-outline: rgba(47, 42, 58, .18);filter:var(--chessimals-piece-white-shadow)}.chessimals-piece.is-black{color:#fff;--chessimals-piece-fill: var(--chessimals-piece-black-fill);--chessimals-piece-side: var(--chessimals-piece-black-side);--chessimals-piece-line: var(--chessimals-piece-black-line);--chessimals-piece-outline: rgba(255, 255, 255, .22);filter:var(--chessimals-piece-black-shadow)}.chessimals-moving-piece{position:absolute;top:0;left:0;z-index:6;width:calc(100% / var(--board-size));height:calc(100% / var(--board-size));display:grid;place-items:center;pointer-events:none;transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%));animation:chessimals-piece-travel .36s cubic-bezier(.2,.82,.24,1) both}@keyframes chessimals-piece-travel{0%{transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%)) scale(1)}68%{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1.07)}to{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1)}}.chessimals-piece__side,.chessimals-piece__head,.chessimals-piece__collar,.chessimals-piece__neck,.chessimals-piece__base{position:absolute;display:block;left:50%;background:var(--chessimals-piece-fill);border:.075rem solid var(--chessimals-piece-outline);transform:translate(-50%)}.chessimals-piece__side{display:none}.chessimals-piece__head{top:3%;width:48%;height:42%;border-radius:50% 50% 42% 42%;background:linear-gradient(135deg,rgba(255,255,255,.26) 0 30%,transparent 31%),var(--chessimals-piece-fill);box-shadow:inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .22rem -.18rem #ffffff12,inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:39%;width:74%;height:18%;border-radius:999px;box-shadow:inset -.18rem .14rem #ffffff0f,inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece__neck{top:54%;width:58%;height:30%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);box-shadow:inset -.16rem .16rem #ffffff0d}.chessimals-piece__base{bottom:2%;width:84%;height:20%;border-radius:.5rem .5rem .24rem .24rem;box-shadow:inset -.16rem .12rem #ffffff0d}.chessimals-target{width:.85rem;height:.85rem;border-radius:999px;background:var(--chessimals-move);opacity:.9;box-shadow:0 0 .9rem rgba(var(--chessimals-move-rgb),.42)}.chessimals-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}.chessimals-cards button{display:grid;gap:.375rem;place-items:center;min-height:5.75rem;padding:.625rem;border:1px solid var(--chessimals-border);border-radius:1.125rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.chessimals-powers__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chessimals-powers p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chessimals-powers__heading span{flex:0 0 auto;border-radius:999px;padding:.28rem .62rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-size:.78rem;font-weight:950}.chessimals-cards button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16),0 .9rem 2rem rgba(var(--chessimals-primary-rgb),.13);transform:translateY(-1px)}.chessimals-cards button.is-used{opacity:.42}.chessimals-animal-face{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:1rem;background:var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 92%,#000);box-shadow:inset 0 0 0 1px var(--chessimals-animal-face-border)}.chessimals-animal-face img{display:block;width:72%;height:72%;object-fit:contain;filter:var(--chessimals-animal-face-filter)}.chessimals-cards button.is-selected .chessimals-animal-face,.chessimals-powers.is-ready .chessimals-cards button:not(.is-used) .chessimals-animal-face{background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.96),transparent 32%),linear-gradient(145deg,#fff,#f0ecf7);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2f2a3a1f,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.14)}.chessimals-powers.is-locked .chessimals-animal-face{filter:var(--chessimals-animal-face-locked-filter);opacity:.86}.chessimals-powers.is-locked .chessimals-animal-face img,.chessimals-cards button.is-used .chessimals-animal-face img{opacity:var(--chessimals-animal-face-locked-img-opacity)}.chessimals-cards strong{overflow:hidden;max-width:100%;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-powers.is-locked .chessimals-cards{opacity:.68}.chessimals-powers.is-ready{border-color:rgba(var(--chessimals-primary-rgb),.42);box-shadow:0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-powers.is-ready .chessimals-cards button:not(.is-used){animation:chessimalsPowerPulse 1.8s ease-in-out infinite}.chessimals-powers.is-unlock-pulse{animation:chessimalsPowersUnlocked 1.18s ease-out both}.chessimals-powers.is-unlock-pulse .chessimals-cards button:not(.is-used){animation:chessimalsPowerIgnite .76s ease-out both,chessimalsPowerPulse 1.8s ease-in-out .76s infinite}@keyframes chessimalsPowerPulse{0%,to{box-shadow:0 0 rgba(var(--chessimals-primary-rgb),0)}50%{box-shadow:0 0 1.4rem rgba(var(--chessimals-primary-rgb),.22)}}@keyframes chessimalsPowersUnlocked{0%{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}34%{box-shadow:0 0 0 .18rem rgba(var(--chessimals-selected-rgb),.24),0 0 2.2rem rgba(var(--chessimals-selected-rgb),.34),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.16)}to{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}}@keyframes chessimalsPowerIgnite{0%{transform:translateY(0) scale(.96);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}42%{transform:translateY(-.08rem) scale(1.025);box-shadow:0 0 0 .14rem rgba(var(--chessimals-selected-rgb),.2),0 0 1.5rem rgba(var(--chessimals-selected-rgb),.42)}to{transform:translateY(0) scale(1);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}}.chessimals-actions{order:6;align-self:stretch;justify-self:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.625rem;margin-top:1rem}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-result,.chessimals-actions{grid-column:1 / -1}.chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:1rem}.chessimals-powers{width:min(100%,44rem);align-content:center;grid-template-columns:minmax(11rem,.68fr) minmax(0,1fr);align-items:center;gap:1rem;padding:1rem}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.chessimals-cards button{min-height:5rem}.chessimals-powers p{-webkit-line-clamp:3}}.chessimals-rules{display:grid;gap:1rem;padding-top:.25rem}.chessimals-rules article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;padding:1rem;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:1.25rem;background:var(--ion-card-background, #fff);color:var(--ion-text-color, #2f2a3a)}.chessimals-rules article>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-weight:950}.chessimals-rules article>div{display:grid;min-width:0;gap:.45rem}.chessimals-rules h3,.chessimals-rules p,.chessimals-rules ul{margin:0}.chessimals-rules h3{font-size:1rem;font-weight:950;line-height:1.2}.chessimals-rules p,.chessimals-rules li{color:var(--ion-color-medium, #6f6a7a);line-height:1.5}.chessimals-rules ul{display:grid;gap:.45rem;padding-left:1.15rem}.chessimals-primary,.chessimals-secondary{min-height:3.625rem;border-radius:999px;font:inherit;font-weight:950}.chessimals-primary{border:0;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 1.125rem 2.8rem rgba(var(--chessimals-primary-rgb),.28)}.chessimals-secondary{border:1px solid var(--chessimals-border);background:transparent;color:var(--chessimals-text)}@media (max-width: 560px){.chessimals-size,.chessimals-mode,.chessimals-actions{grid-template-columns:1fr}.chessimals-game{gap:.55rem;border-radius:1.25rem;padding:.625rem}.chessimals-turn-card{flex-direction:column;align-items:stretch;gap:.45rem;min-height:0;border-radius:.95rem;padding:.55rem}.chessimals-turn-card__chip{padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.98rem,5vw,1.25rem);line-height:1.08}.chessimals-turn-card p{font-size:.76rem;line-height:1.2}.chessimals-player-strip{width:100%;max-width:none;min-width:0}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.chessimals-status div{gap:.2rem;min-height:2.5rem;border-radius:.95rem;padding:.4rem .35rem}.chessimals-status small{font-size:.66rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.86rem,3.4vw,1rem);line-height:1.05}.chessimals-tip,.chessimals-result{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-arena{gap:.5rem}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.65rem}.chessimals-powers__heading{gap:.4rem}.chessimals-powers h2{font-size:1rem}.chessimals-powers__heading span{padding:.22rem .48rem;font-size:.68rem}.chessimals-powers p{font-size:.78rem;line-height:1.2;-webkit-line-clamp:1}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.chessimals-cards button{gap:.25rem;min-height:4.25rem;border-radius:.85rem;padding:.4rem .25rem}.chessimals-animal-face{width:2.1rem;height:2.1rem;border-radius:.75rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:1.1rem}.chessimals-board-frame{--chessimals-coord-size: .95rem;--chessimals-coord-gap: .34rem}}@media (prefers-reduced-motion: reduce){.chessimals-cell.is-capture,.chessimals-cell.is-capture:before,.chessimals-cell.is-capture:after,.chessimals-cell.has-move-effect,.chessimals-cell.has-move-effect:before,.chessimals-cell.has-move-effect:after,.chessimals-cell.has-capture-effect,.chessimals-moving-piece{animation:none!important}.chessimals-moving-piece{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%))}}\n"], dependencies: [{ kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
64673
+ `, isInline: true, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #f6e3d5;--chessimals-surface: #fff7ed;--chessimals-border: rgba(138, 75, 45, .24);--chessimals-text: #2f2623;--chessimals-muted: #8a4b2d;--chessimals-soft: rgba(192, 106, 61, .14);--chessimals-primary: #c06a3d;--chessimals-primary-rgb: 192, 106, 61;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #6f7a3c;--chessimals-secondary-rgb: 111, 122, 60;--chessimals-sky: #a8a06a;--chessimals-sky-rgb: 168, 160, 106;--chessimals-stone: #cdbe9b;--chessimals-stone-rgb: 205, 190, 155;--chessimals-selected: #2fffa1;--chessimals-selected-rgb: 47, 255, 161;--chessimals-move: var(--chessimals-sky);--chessimals-move-rgb: var(--chessimals-sky-rgb);--chessimals-capture: #1fcdb3;--chessimals-capture-rgb: 31, 205, 179;--chessimals-last: #8c6b4f;--chessimals-last-rgb: 140, 107, 79;--chessimals-cell-light: #f6e3d5;--chessimals-cell-dark: #d2b48c;--chessimals-board-shadow: rgba(58, 46, 36, .16);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .08);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(47, 42, 58, .3)) drop-shadow(0 2px 3px rgba(47, 42, 58, .14));--chessimals-piece-black-fill: #2f2a3a;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .08);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .16)) drop-shadow(0 2px 3px rgba(0, 0, 0, .24));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .88), transparent 30%), color-mix(in srgb, var(--chessimals-text) 6%, var(--chessimals-panel));--chessimals-animal-face-border: color-mix(in srgb, var(--chessimals-text) 13%, transparent);--chessimals-animal-face-filter: drop-shadow(0 .12rem .12rem rgba(0, 0, 0, .16));--chessimals-animal-face-locked-filter: grayscale(.2) saturate(.72);--chessimals-animal-face-locked-img-opacity: .72;display:grid;gap:1.125rem;width:100%;max-width:min(100%,60rem);margin:0 auto;color:var(--chessimals-text)}.chessimals-resume-splash{order:0;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;align-content:center;gap:.65rem;padding:1.5rem;text-align:center;color:var(--chessimals-text);background:radial-gradient(circle at 50% 42%,rgba(var(--chessimals-primary-rgb),.18),transparent 22rem),color-mix(in srgb,var(--chessimals-panel) 92%,transparent);backdrop-filter:blur(.9rem)}.chessimals-resume-splash span{display:grid;place-items:center;width:4.75rem;height:4.75rem;border-radius:1.6rem;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:2.25rem;box-shadow:0 1.25rem 3rem rgba(var(--chessimals-primary-rgb),.32);animation:chessimals-resume-pulse 1.2s ease-in-out infinite}.chessimals-resume-splash strong{font-size:clamp(1.55rem,5vw,2.4rem);font-weight:950;line-height:1.05}.chessimals-resume-splash p{max-width:24rem;margin:0;color:var(--chessimals-muted);font-size:1rem;line-height:1.35}@keyframes chessimals-resume-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.25rem) scale(1.04)}}@keyframes chessimals-spin{to{transform:rotate(360deg)}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #2f2623;--chessimals-surface: #3a2e24;--chessimals-border: rgba(246, 227, 213, .18);--chessimals-text: #f6e3d5;--chessimals-muted: rgba(242, 230, 213, .72);--chessimals-soft: rgba(217, 160, 126, .12);--chessimals-primary: #d9a07e;--chessimals-primary-rgb: 217, 160, 126;--chessimals-primary-contrast: #2f2623;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #cdbe9b;--chessimals-sky-rgb: 205, 190, 155;--chessimals-stone: #8c6b4f;--chessimals-stone-rgb: 140, 107, 79;--chessimals-cell-light: #3a2e24;--chessimals-cell-dark: #8a4b2d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-capture: #66f2d7;--chessimals-capture-rgb: 102, 242, 215;--chessimals-last: #cdbe9b;--chessimals-last-rgb: 205, 190, 155;--chessimals-piece-white-fill: #fffaff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .1);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(47, 42, 58, .28)) drop-shadow(0 2px 3px rgba(0, 0, 0, .22));--chessimals-piece-black-fill: #17131f;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .12);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 3px 4px rgba(0, 0, 0, .44));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .18), transparent 30%), linear-gradient(145deg, #f7f0ff, #d8d1e4);--chessimals-animal-face-border: rgba(255, 255, 255, .72);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(0, 0, 0, .22));--chessimals-animal-face-locked-filter: grayscale(.32) saturate(.72);--chessimals-animal-face-locked-img-opacity: .58}.chessimals-hero{display:grid;gap:.75rem;overflow:hidden;border-radius:1.75rem;padding:clamp(2rem,7vw,4rem);background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.52),transparent 16%),linear-gradient(135deg,var(--chessimals-primary),var(--chessimals-secondary));color:#fff;text-align:center}.chessimals-hero__icon{font-size:clamp(2.5rem,10vw,5rem);line-height:1}.chessimals-hero h1{margin:0;font-size:clamp(3rem,12vw,5.5rem);line-height:.9;font-weight:950}.chessimals-hero p,.chessimals-howto p,.chessimals-tip p,.chessimals-result p,.chessimals-powers p{margin:0;line-height:1.45}.chessimals-panel,.chessimals-game,.chessimals-powers{display:grid;gap:1rem;border:1px solid var(--chessimals-border);border-radius:1.625rem;padding:clamp(1rem,4vw,1.5rem);background:var(--chessimals-panel)}.chessimals-online{display:grid;gap:.875rem;border:1px solid var(--chessimals-border);border-radius:1.375rem;padding:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-online--waiting{order:2;border-color:rgba(var(--chessimals-primary-rgb),.34)}.chessimals-online h2,.chessimals-online p{margin:0}.chessimals-online h2{font-size:1.1rem;font-weight:950}.chessimals-online p{color:var(--chessimals-muted);line-height:1.4}.chessimals-online__create,.chessimals-online__join{display:grid;gap:.55rem}.chessimals-online__create small{color:var(--chessimals-muted);font-weight:800;line-height:1.35}.chessimals-online__join{border-top:1px solid var(--chessimals-border);padding-top:.85rem}.chessimals-online__join>strong{font-size:.95rem;font-weight:950}.chessimals-online__error{border-radius:.875rem;padding:.7rem .8rem;background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12);color:var(--ion-color-danger, #eb445a)!important;font-weight:800}.chessimals-online__loading{display:flex;align-items:center;gap:.625rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:999px;padding:.65rem .85rem;background:rgba(var(--chessimals-primary-rgb),.08);color:var(--chessimals-text);font-size:.92rem;font-weight:900}.chessimals-online__loading span{width:1rem;height:1rem;border:.15rem solid rgba(var(--chessimals-primary-rgb),.24);border-top-color:var(--chessimals-primary);border-radius:999px;animation:chessimals-spin .75s linear infinite}.chessimals-online-code{display:grid;gap:.4rem;font-weight:950}.chessimals-online-code input{width:100%;min-height:3.3rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.chessimals-game-code{display:grid;gap:.2rem;border-radius:1rem;padding:.85rem 1rem;background:var(--chessimals-soft)}.chessimals-game-code small{color:var(--chessimals-muted);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.chessimals-game-code strong{font-size:clamp(1.35rem,6vw,2rem);font-weight:950;letter-spacing:.05em}.chessimals-online-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-history{gap:.75rem}.chessimals-history__heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.chessimals-history__list{display:grid;gap:.5rem}.chessimals-history__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.7rem .8rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-history__item span{display:grid;gap:.1rem;min-width:0}.chessimals-history__item strong{font-weight:950;letter-spacing:.04em}.chessimals-history__item small{overflow:hidden;color:var(--chessimals-muted);font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.chessimals-history__item em{flex:0 0 auto;color:var(--chessimals-primary);font-size:.86rem;font-style:normal;font-weight:950}.chessimals-pending-player{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:1rem;padding:.75rem;background:var(--chessimals-soft)}.chessimals-pending-player div{display:grid;gap:.1rem;min-width:0}.chessimals-pending-player small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.chessimals-pending-player strong{overflow:hidden;font-size:1.05rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-game{display:grid;gap:.875rem}.chessimals-turn-card{order:1;display:flex;align-items:center;justify-content:space-between;gap:.625rem;min-height:3.75rem;overflow:visible;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1rem;padding:.55rem .65rem;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.34),transparent 18%),linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.2),rgba(var(--chessimals-secondary-rgb),.1))}.chessimals-turn-card.is-black-turn{border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.28);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.12),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-dark-rgb, 47, 42, 58),.14),rgba(var(--chessimals-primary-rgb),.1))}.chessimals-turn-card.is-finished{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.42);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.35),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.18),rgba(var(--chessimals-primary-rgb),.12))}.chessimals-turn-card.is-finished .chessimals-turn-card__chip{color:var(--ion-color-success, #2dd36f)}.chessimals-turn-card__copy{display:grid;min-width:0;gap:.15rem}.chessimals-turn-card__chip{justify-self:start;border-radius:999px;padding:.2rem .5rem;background:var(--chessimals-panel);color:var(--chessimals-primary);font-size:.62rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-turn-card strong{display:block;min-width:0;font-size:clamp(1rem,3.5vw,1.25rem);line-height:1.08;font-weight:950;overflow-wrap:anywhere}.chessimals-turn-card p{display:block;min-width:0;margin:0;color:var(--chessimals-muted);font-size:.78rem;line-height:1.22}.chessimals-player-strip{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;min-width:10rem;max-width:min(17rem,42%);border:1px solid var(--chessimals-border);border-radius:999px;padding:.3rem .55rem .3rem .35rem;background:rgba(var(--ion-color-light-rgb, 244, 245, 248),.72)}:host-context(html.ion-palette-dark) .chessimals-player-strip,:host-context([data-theme=\"dark\"]) .chessimals-player-strip{background:#ffffff0f}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:.875rem;line-height:1}.chessimals-player-strip__text{display:grid;min-width:0;gap:.05rem;line-height:1.1}.chessimals-player-strip__text span{color:var(--chessimals-muted);font-size:.58rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-player-strip__text strong{overflow:hidden;font-size:.82rem;line-height:1.08;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-player-strip__text small{overflow:hidden;color:var(--chessimals-muted);font-size:.66rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.chessimals-arena{order:4;display:grid;gap:.875rem;align-items:start}.chessimals-howto,.chessimals-tip,.chessimals-result,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-result{order:5}.chessimals-rematch-status{order:5;border:1px solid rgba(var(--chessimals-primary-rgb),.22);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-rematch-status.is-incoming{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.38);background:linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.14),transparent),var(--chessimals-panel)}.chessimals-rematch-status strong{font-size:1rem;font-weight:950}.chessimals-rematch-status p{margin:0;color:var(--chessimals-muted);font-size:.88rem;line-height:1.35}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.chessimals-howto p,.chessimals-tip p,.chessimals-powers p{color:var(--chessimals-muted)}.chessimals-learn-more{justify-self:start;min-height:2.75rem;border:0;border-radius:999px;padding:0 1rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font:inherit;font-weight:950}.chessimals-size,.chessimals-mode,.chessimals-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-status{order:3;grid-template-columns:repeat(3,minmax(0,1fr))}.chessimals-size button,.chessimals-mode button,.chessimals-status div{display:grid;gap:.2rem;align-content:center;min-width:0;min-height:3.875rem;padding:.55rem .65rem;border:1px solid var(--chessimals-border);border-radius:1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-size button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-mode button.is-selected{border-color:var(--chessimals-primary);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-difficulty{display:flex;flex-wrap:wrap;gap:.55rem}.chessimals-difficulty button{min-height:2.75rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:950}.chessimals-difficulty button.is-selected{border-color:var(--chessimals-primary);background:var(--chessimals-primary);color:#fff}.chessimals-size strong,.chessimals-mode strong,.chessimals-status strong,.chessimals-result strong,.chessimals-rematch-status strong,.chessimals-tip strong{font-weight:950}.chessimals-status strong{min-width:0;font-size:clamp(.95rem,2.5vw,1.2rem);line-height:1.08;overflow-wrap:anywhere;white-space:normal}.chessimals-size small,.chessimals-mode small,.chessimals-status small{color:var(--chessimals-muted);font-size:.78rem;line-height:1.12}.chessimals-board-wrap{display:grid;justify-items:center;overflow-x:auto;width:100%;padding:.25rem 0}.chessimals-board-wrap.is-orienting .chessimals-board-frame{animation:chessimals-orient-board .32s ease}.chessimals-board-wrap.is-finished{overflow-x:visible}.chessimals-board-frame{display:grid;align-items:stretch;justify-content:center;width:min(100%,58rem)}.chessimals-board{position:relative;display:grid;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));grid-template-rows:repeat(var(--board-size),minmax(0,1fr));width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--chessimals-border);border-radius:.95rem;background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.2),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-secondary-rgb),.08),transparent 22%),linear-gradient(22deg,transparent 0 31%,rgba(var(--chessimals-stone-rgb),.08) 31.1% 31.24%,transparent 31.35%),linear-gradient(145deg,transparent 0 67%,rgba(var(--chessimals-stone-rgb),.07) 67.1% 67.22%,transparent 67.35%),var(--chessimals-border);box-shadow:inset 0 0 0 1px #ffffff1a,0 .85rem 2.1rem var(--chessimals-board-shadow)}.chessimals-board-wrap.is-syncing .chessimals-board{cursor:wait}.chessimals-cell-coordinate{position:absolute;z-index:5;color:color-mix(in srgb,var(--chessimals-muted) 78%,var(--chessimals-text));font-size:.68rem;font-weight:950;letter-spacing:.02em;line-height:1;pointer-events:none;text-transform:uppercase;-webkit-user-select:none;user-select:none}.chessimals-cell-coordinate--rank{top:.2rem;left:.24rem}.chessimals-cell-coordinate--file{right:.24rem;bottom:.18rem}@keyframes chessimals-orient-board{0%{opacity:.72;filter:blur(.06rem);transform:scale(.985)}52%{opacity:.92;filter:blur(0);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}.chessimals-center-line{position:absolute;top:50%;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;border-top:.08rem dashed rgba(var(--chessimals-secondary-rgb),.72);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-secondary-rgb),.34));pointer-events:none}.chessimals-power-trail{position:absolute;inset:0;z-index:5;pointer-events:none;--trail-color: rgba(var(--chessimals-selected-rgb), .76);--trail-glow: rgba(var(--chessimals-selected-rgb), .34)}.chessimals-power-trail.is-capture{--trail-color: rgba(var(--chessimals-capture-rgb), .86);--trail-glow: rgba(var(--chessimals-capture-rgb), .46)}.chessimals-power-trail.effect-eagle{--trail-color: rgba(255, 255, 255, .92);--trail-glow: rgba(120, 210, 255, .54)}.chessimals-power-trail.effect-bull{--trail-color: rgba(188, 131, 76, .86);--trail-glow: rgba(188, 131, 76, .36)}.chessimals-power-trail.effect-kangaroo{--trail-color: rgba(174, 124, 255, .86);--trail-glow: rgba(174, 124, 255, .42)}.chessimals-power-trail.effect-lion{--trail-color: rgba(255, 221, 120, .88);--trail-glow: rgba(255, 190, 56, .42)}.chessimals-power-trail>span{position:absolute;top:var(--trail-y);left:var(--trail-x);width:var(--trail-length);height:.45rem;border-radius:999px;background:linear-gradient(90deg,transparent,var(--trail-color) 42%,rgba(255,255,255,.92));box-shadow:0 0 .75rem var(--trail-glow),0 0 1.45rem var(--trail-glow);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0);transform-origin:0 50%;animation:chessimals-power-trail .72s ease-out both}.chessimals-power-trail.effect-eagle>span{height:.28rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 44%,rgba(120,210,255,.58)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);animation-name:chessimals-eagle-trail}.chessimals-power-trail.effect-bull>span{height:.72rem;background:repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 .18rem,transparent .18rem .42rem),linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.86));animation-name:chessimals-bull-trail}.chessimals-power-trail.effect-kangaroo>span{height:1rem;border-top:.16rem dashed var(--trail-color);background:transparent;box-shadow:none;filter:drop-shadow(0 0 .8rem var(--trail-glow));animation-name:chessimals-kangaroo-trail}.chessimals-power-trail.effect-lion>span{height:.62rem;background:linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.82)),repeating-linear-gradient(115deg,rgba(255,255,255,.55) 0 .12rem,transparent .12rem .34rem);animation-name:chessimals-lion-trail}@keyframes chessimals-power-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}28%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.72)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-eagle-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) skew(-10deg)}30%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.82) skew(-10deg)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1.05) skew(-10deg)}}@keyframes chessimals-bull-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) scaleY(1)}38%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.7) scaleY(1.18)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1) scaleY(.82)}}@keyframes chessimals-kangaroo-trail{0%{opacity:0;transform:translateY(-.4rem) rotate(var(--trail-angle)) scaleX(0)}34%{opacity:1;transform:translateY(-1.2rem) rotate(var(--trail-angle)) scaleX(.62)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-lion-trail{0%{opacity:0;filter:saturate(1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}36%{opacity:1;filter:saturate(1.4);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.76)}to{opacity:0;filter:saturate(1.1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}.chessimals-board-overlay{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:.45rem;padding:1.25rem;background:radial-gradient(circle at 50% 36%,rgba(255,226,129,.28),transparent 28%),radial-gradient(circle at 50% 48%,rgba(var(--chessimals-primary-rgb),.3),transparent 44%),#0d0a12c7;color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.62) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.46) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.42) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay>*{position:relative;z-index:1}.chessimals-board-overlay span{justify-self:center;border-radius:999px;padding:.32rem .7rem;background:#ffffff26;color:#ffffffe6;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay strong{font-size:clamp(1.65rem,8vw,3rem);line-height:1;font-weight:950;text-shadow:0 0 1.25rem rgba(255,255,255,.26)}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}.chessimals-cell{position:relative;isolation:isolate;--chessimals-cell-bg: var(--chessimals-cell-light);display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;border:0;background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.2),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(var(--chessimals-stone-rgb),.12),transparent 28%),linear-gradient(24deg,transparent 0 34%,rgba(255,255,255,.08) 34.3% 34.8%,transparent 35.1%),linear-gradient(138deg,transparent 0 70%,rgba(var(--chessimals-stone-rgb),.11) 70.2% 70.55%,transparent 70.8%),var(--chessimals-cell-bg);color:var(--chessimals-text);font:inherit;overflow:hidden;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.chessimals-cell:before,.chessimals-cell:after{pointer-events:none}.chessimals-cell.is-dark-cell{--chessimals-cell-bg: var(--chessimals-cell-dark)}.chessimals-cell.is-selected{z-index:1;background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.28) 0 36%,transparent 62%),linear-gradient(135deg,rgba(var(--chessimals-selected-rgb),.22),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .18rem var(--chessimals-selected),inset 0 0 .55rem #ffffffb8,inset 0 0 1.8rem rgba(var(--chessimals-selected-rgb),.42),0 0 .55rem rgba(var(--chessimals-selected-rgb),.56),0 0 1.55rem rgba(var(--chessimals-selected-rgb),.36)}.chessimals-cell.is-legal:not(.is-capture):after{position:absolute;inset:13%;z-index:2;border:max(2px,1.8%) solid var(--chessimals-move);border-radius:.55rem;content:\"\";opacity:.74;pointer-events:none}.chessimals-cell.is-last:not(.is-selected):not(.is-legal):not(.is-capture){background:radial-gradient(circle,rgba(var(--chessimals-last-rgb),.16) 0 42%,transparent 68%),var(--chessimals-cell-bg)}.chessimals-cell.is-capture{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.24),transparent 34%),linear-gradient(135deg,rgba(var(--chessimals-capture-rgb),.14),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .14rem rgba(var(--chessimals-capture-rgb),.84),inset 0 0 1.4rem rgba(var(--chessimals-capture-rgb),.24),0 0 .95rem rgba(var(--chessimals-capture-rgb),.34);animation:chessimals-capture-aura 1.35s ease-in-out infinite}.chessimals-cell.is-capture:before{position:absolute;inset:4%;z-index:1;display:block;border-radius:.64rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.24),transparent 58%);content:\"\";opacity:0;transform:translate(-42%) scale(.9);animation:chessimals-capture-sweep 1.35s ease-in-out infinite}.chessimals-cell.is-capture:after{position:absolute;inset:8%;z-index:3;border:max(2px,1.55%) solid rgba(var(--chessimals-capture-rgb),.9);border-radius:.62rem;box-shadow:0 0 .75rem rgba(var(--chessimals-capture-rgb),.5),inset 0 0 .72rem #ffffff38;content:\"\";pointer-events:none;animation:chessimals-capture-frame 1.35s ease-in-out infinite}@keyframes chessimals-capture-aura{0%,to{filter:saturate(1);box-shadow:inset 0 0 0 .12rem rgba(var(--chessimals-capture-rgb),.78),inset 0 0 1rem rgba(var(--chessimals-capture-rgb),.2),0 0 .64rem rgba(var(--chessimals-capture-rgb),.32)}50%{filter:saturate(1.22);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.96),inset 0 0 1.34rem rgba(var(--chessimals-capture-rgb),.34),0 0 1.2rem rgba(var(--chessimals-capture-rgb),.48)}}@keyframes chessimals-capture-sweep{0%{opacity:0;transform:translate(-52%) scale(.88)}42%{opacity:.66;transform:translate(0) scale(1)}to{opacity:0;transform:translate(48%) scale(.92)}}@keyframes chessimals-capture-frame{0%,to{opacity:.68;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.chessimals-cell.has-source-effect:not(.is-moving-source){background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.12) 0 34%,transparent 64%),var(--chessimals-cell-bg)}.chessimals-cell.has-move-effect{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.22) 0 34%,transparent 68%),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.86),inset 0 0 1.2rem rgba(var(--chessimals-capture-rgb),.26),0 0 1.1rem rgba(var(--chessimals-capture-rgb),.42)}.chessimals-cell.has-move-effect:before{position:absolute;inset:.12rem;z-index:1;display:block;border-radius:.7rem;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.48),transparent 22%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.42),transparent 58%);content:\"\";opacity:0;transform:scale(.72);animation:chessimals-power-impact .7s ease-out both}.chessimals-cell.has-move-effect:after{position:absolute;inset:.28rem;z-index:4;display:block;border:.14rem solid rgba(255,255,255,.72);border-radius:.58rem;box-shadow:0 0 .5rem #ffffff5c,0 0 1rem rgba(var(--chessimals-capture-rgb),.32);content:\"\";animation:chessimals-power-frame .86s ease-out both}.chessimals-cell.has-capture-effect{animation:chessimals-capture-hit .78s ease-out both}.chessimals-cell.effect-eagle:before{background:linear-gradient(135deg,transparent 10%,rgba(255,255,255,.78) 48%,transparent 52%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.36),transparent 62%)}.chessimals-cell.effect-bull:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 .16rem,transparent .16rem .34rem),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.38),transparent 62%)}.chessimals-cell.effect-kangaroo:before{border-radius:999px;background:radial-gradient(circle at 42% 44%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 58% 56%,rgba(var(--chessimals-capture-rgb),.4),transparent 64%)}.chessimals-cell.effect-lion:before{background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.56),transparent,rgba(var(--chessimals-capture-rgb),.4),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.34),transparent 62%)}@keyframes chessimals-power-impact{0%{opacity:0;transform:scale(.54) rotate(0)}28%{opacity:1;transform:scale(.96) rotate(2deg)}to{opacity:0;transform:scale(1.3) rotate(8deg)}}@keyframes chessimals-power-frame{0%{opacity:0;transform:scale(.84)}34%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.16)}}@keyframes chessimals-capture-hit{0%,to{filter:saturate(1)}35%{filter:saturate(1.35) brightness(1.08)}}.chessimals-cell.is-moving-source .chessimals-piece{opacity:0}.chessimals-piece{position:relative;z-index:2;display:block;width:72%;height:72%;color:var(--chessimals-primary);--chessimals-piece-fill: var(--chessimals-piece-white-fill);--chessimals-piece-side: var(--chessimals-piece-white-side);--chessimals-piece-line: var(--chessimals-piece-white-line);--chessimals-piece-outline: rgba(47, 42, 58, .18);filter:var(--chessimals-piece-white-shadow)}.chessimals-piece.is-black{color:#fff;--chessimals-piece-fill: var(--chessimals-piece-black-fill);--chessimals-piece-side: var(--chessimals-piece-black-side);--chessimals-piece-line: var(--chessimals-piece-black-line);--chessimals-piece-outline: rgba(255, 255, 255, .22);filter:var(--chessimals-piece-black-shadow)}.chessimals-moving-piece{position:absolute;top:0;left:0;z-index:6;width:calc(100% / var(--board-size));height:calc(100% / var(--board-size));display:grid;place-items:center;pointer-events:none;transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%));animation:chessimals-piece-travel .36s cubic-bezier(.2,.82,.24,1) both}@keyframes chessimals-piece-travel{0%{transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%)) scale(1)}68%{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1.07)}to{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1)}}.chessimals-piece__side,.chessimals-piece__head,.chessimals-piece__collar,.chessimals-piece__neck,.chessimals-piece__base{position:absolute;display:block;left:50%;background:var(--chessimals-piece-fill);border:max(1px,1.25%) solid var(--chessimals-piece-outline);transform:translate(-50%)}.chessimals-piece__side{display:none}.chessimals-piece__head{top:3%;width:48%;height:42%;border-radius:50% 50% 42% 42%;background:linear-gradient(135deg,rgba(255,255,255,.26) 0 30%,transparent 31%),var(--chessimals-piece-fill);box-shadow:inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset 4px -3px #ffffff12,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:39%;width:74%;height:18%;border-radius:999px;box-shadow:inset -3px 2px #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__neck{top:54%;width:58%;height:30%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);box-shadow:inset -3px 3px #ffffff0d}.chessimals-piece__base{bottom:2%;width:84%;height:20%;border-radius:.5rem .5rem .24rem .24rem;box-shadow:inset -3px 2px #ffffff0d}.chessimals-target{width:16%;height:16%;border-radius:999px;background:var(--chessimals-move);opacity:.9;box-shadow:0 0 .9rem rgba(var(--chessimals-move-rgb),.42)}.chessimals-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}.chessimals-cards button{display:grid;gap:.375rem;place-items:center;min-height:5.75rem;padding:.625rem;border:1px solid var(--chessimals-border);border-radius:1.125rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.chessimals-powers__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chessimals-powers p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chessimals-powers__heading span{flex:0 0 auto;border-radius:999px;padding:.28rem .62rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-size:.78rem;font-weight:950}.chessimals-cards button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16),0 .9rem 2rem rgba(var(--chessimals-primary-rgb),.13);transform:translateY(-1px)}.chessimals-cards button.is-used{opacity:.42}.chessimals-animal-face{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:1rem;background:var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 92%,#000);box-shadow:inset 0 0 0 1px var(--chessimals-animal-face-border)}.chessimals-animal-face img{display:block;width:72%;height:72%;object-fit:contain;filter:var(--chessimals-animal-face-filter)}.chessimals-cards button.is-selected .chessimals-animal-face,.chessimals-powers.is-ready .chessimals-cards button:not(.is-used) .chessimals-animal-face{background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.96),transparent 32%),linear-gradient(145deg,#fff,#f0ecf7);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2f2a3a1f,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.14)}.chessimals-powers.is-locked .chessimals-animal-face{filter:var(--chessimals-animal-face-locked-filter);opacity:.86}.chessimals-powers.is-locked .chessimals-animal-face img,.chessimals-cards button.is-used .chessimals-animal-face img{opacity:var(--chessimals-animal-face-locked-img-opacity)}.chessimals-cards strong{overflow:hidden;max-width:100%;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-powers.is-locked .chessimals-cards{opacity:.68}.chessimals-powers.is-ready{border-color:rgba(var(--chessimals-primary-rgb),.42);box-shadow:0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-powers.is-ready .chessimals-cards button:not(.is-used){animation:chessimalsPowerPulse 1.8s ease-in-out infinite}.chessimals-powers.is-unlock-pulse{animation:chessimalsPowersUnlocked 1.18s ease-out both}.chessimals-powers.is-unlock-pulse .chessimals-cards button:not(.is-used){animation:chessimalsPowerIgnite .76s ease-out both,chessimalsPowerPulse 1.8s ease-in-out .76s infinite}@keyframes chessimalsPowerPulse{0%,to{box-shadow:0 0 rgba(var(--chessimals-primary-rgb),0)}50%{box-shadow:0 0 1.4rem rgba(var(--chessimals-primary-rgb),.22)}}@keyframes chessimalsPowersUnlocked{0%{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}34%{box-shadow:0 0 0 .18rem rgba(var(--chessimals-selected-rgb),.24),0 0 2.2rem rgba(var(--chessimals-selected-rgb),.34),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.16)}to{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}}@keyframes chessimalsPowerIgnite{0%{transform:translateY(0) scale(.96);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}42%{transform:translateY(-.08rem) scale(1.025);box-shadow:0 0 0 .14rem rgba(var(--chessimals-selected-rgb),.2),0 0 1.5rem rgba(var(--chessimals-selected-rgb),.42)}to{transform:translateY(0) scale(1);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}}.chessimals-actions{order:6;align-self:stretch;justify-self:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.625rem;margin-top:1rem}.chessimals-shell--projection .chessimals-game{max-width:min(96vw,90rem)}.chessimals-shell--projection .chessimals-turn-card{padding:.875rem 1rem}.chessimals-shell--projection .chessimals-status,.chessimals-shell--projection .chessimals-actions,.chessimals-shell--projection .chessimals-online,.chessimals-shell--projection .chessimals-rematch-status{display:none}.chessimals-shell--projection .chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center}.chessimals-shell--projection .chessimals-board-wrap{width:min(96vw,82vh,58rem);max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-result,.chessimals-actions{grid-column:1 / -1}.chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:1rem}.chessimals-powers{width:min(100%,44rem);align-content:center;grid-template-columns:minmax(11rem,.68fr) minmax(0,1fr);align-items:center;gap:1rem;padding:1rem}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.chessimals-cards button{min-height:5rem}.chessimals-powers p{-webkit-line-clamp:3}}.chessimals-rules{display:grid;gap:1rem;padding-top:.25rem}.chessimals-rules article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;padding:1rem;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:1.25rem;background:var(--ion-card-background, #fff);color:var(--ion-text-color, #2f2a3a)}.chessimals-rules article>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-weight:950}.chessimals-rules article>div{display:grid;min-width:0;gap:.45rem}.chessimals-rules h3,.chessimals-rules p,.chessimals-rules ul{margin:0}.chessimals-rules h3{font-size:1rem;font-weight:950;line-height:1.2}.chessimals-rules p,.chessimals-rules li{color:var(--ion-color-medium, #6f6a7a);line-height:1.5}.chessimals-rules ul{display:grid;gap:.45rem;padding-left:1.15rem}.chessimals-primary,.chessimals-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.625rem;border-radius:999px;font:inherit;font-weight:950}.chessimals-primary{border:0;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 1.125rem 2.8rem rgba(var(--chessimals-primary-rgb),.28)}.chessimals-secondary{border:1px solid var(--chessimals-border);background:transparent;color:var(--chessimals-text)}.chessimals-primary.is-working,.chessimals-secondary.is-working{cursor:wait;opacity:.82}.chessimals-button-spinner{width:1rem;height:1rem;flex:0 0 auto;border:.14rem solid currentColor;border-right-color:transparent;border-radius:999px;animation:chessimals-spin .72s linear infinite}@media (max-width: 560px){.chessimals-size,.chessimals-mode,.chessimals-actions{grid-template-columns:1fr}.chessimals-game{gap:.55rem;border-radius:1.25rem;padding:.625rem}.chessimals-turn-card{flex-direction:column;align-items:stretch;gap:.45rem;min-height:0;border-radius:.95rem;padding:.55rem}.chessimals-turn-card__chip{padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.98rem,5vw,1.25rem);line-height:1.08}.chessimals-turn-card p{font-size:.76rem;line-height:1.2}.chessimals-player-strip{width:100%;max-width:none;min-width:0}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.chessimals-status div{gap:.2rem;min-height:2.5rem;border-radius:.95rem;padding:.4rem .35rem}.chessimals-status small{font-size:.66rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.86rem,3.4vw,1rem);line-height:1.05}.chessimals-tip,.chessimals-result{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:calc(100% + 1.25rem);margin-inline:-.625rem;padding:0}.chessimals-board-frame{width:100%}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.65rem}.chessimals-powers__heading{gap:.4rem}.chessimals-powers h2{font-size:1rem}.chessimals-powers__heading span{padding:.22rem .48rem;font-size:.68rem}.chessimals-powers p{font-size:.78rem;line-height:1.2;-webkit-line-clamp:1}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.chessimals-cards button{gap:.25rem;min-height:4.25rem;border-radius:.85rem;padding:.4rem .25rem}.chessimals-animal-face{width:2.1rem;height:2.1rem;border-radius:.75rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:1.1rem}.chessimals-cell-coordinate{font-size:.58rem}}@media (prefers-reduced-motion: reduce){.chessimals-cell.is-capture,.chessimals-cell.is-capture:before,.chessimals-cell.is-capture:after,.chessimals-cell.has-move-effect,.chessimals-cell.has-move-effect:before,.chessimals-cell.has-move-effect:after,.chessimals-cell.has-capture-effect,.chessimals-moving-piece{animation:none!important}.chessimals-moving-piece{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%))}}\n"], dependencies: [{ kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
64338
64674
  }
64339
64675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChessimalsGameComponent, decorators: [{
64340
64676
  type: Component,
64341
64677
  args: [{ selector: 'val-chessimals-game', standalone: true, imports: [IonModal, ModalLayoutComponent, UserAvatarComponent], template: `
64342
- <main class="chessimals-shell">
64678
+ <main class="chessimals-shell" [class.chessimals-shell--projection]="projectionMode">
64343
64679
  @if (screen() === 'home') {
64344
64680
  <section class="chessimals-hero">
64345
64681
  <span class="chessimals-hero__icon">♟</span>
@@ -64418,9 +64754,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64418
64754
  <button
64419
64755
  class="chessimals-primary"
64420
64756
  type="button"
64757
+ [class.is-working]="onlineAction() === 'create'"
64758
+ [attr.aria-busy]="onlineAction() === 'create'"
64421
64759
  [disabled]="onlineLoading()"
64422
64760
  (click)="createOnlineGame()"
64423
64761
  >
64762
+ @if (onlineAction() === 'create') {
64763
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64764
+ }
64424
64765
  {{ t('chessimalsCreateOnline') }}
64425
64766
  </button>
64426
64767
  <small>{{ t('chessimalsCreateOnlineHint') }}</small>
@@ -64439,9 +64780,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64439
64780
  <button
64440
64781
  class="chessimals-secondary"
64441
64782
  type="button"
64783
+ [class.is-working]="onlineAction() === 'join'"
64784
+ [attr.aria-busy]="onlineAction() === 'join'"
64442
64785
  [disabled]="onlineLoading() || !onlineJoinCode()"
64443
64786
  (click)="joinOnlineGameByCode()"
64444
64787
  >
64788
+ @if (onlineAction() === 'join') {
64789
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64790
+ }
64445
64791
  {{ t('chessimalsJoinOnline') }}
64446
64792
  </button>
64447
64793
  </div>
@@ -64536,10 +64882,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64536
64882
  </div>
64537
64883
  <div class="chessimals-online-actions">
64538
64884
  @if (canReviewPendingGuest()) {
64539
- <button class="chessimals-secondary" type="button" (click)="rejectOnlineGuest()">
64885
+ <button
64886
+ class="chessimals-secondary"
64887
+ type="button"
64888
+ [class.is-working]="onlineAction() === 'reject'"
64889
+ [attr.aria-busy]="onlineAction() === 'reject'"
64890
+ [disabled]="onlineLoading()"
64891
+ (click)="rejectOnlineGuest()"
64892
+ >
64893
+ @if (onlineAction() === 'reject') {
64894
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64895
+ }
64540
64896
  {{ t('chessimalsRejectGuest') }}
64541
64897
  </button>
64542
- <button class="chessimals-primary" type="button" (click)="acceptOnlineGuest()">
64898
+ <button
64899
+ class="chessimals-primary"
64900
+ type="button"
64901
+ [class.is-working]="onlineAction() === 'accept'"
64902
+ [attr.aria-busy]="onlineAction() === 'accept'"
64903
+ [disabled]="onlineLoading()"
64904
+ (click)="acceptOnlineGuest()"
64905
+ >
64906
+ @if (onlineAction() === 'accept') {
64907
+ <span class="chessimals-button-spinner" aria-hidden="true"></span>
64908
+ }
64543
64909
  {{ t('chessimalsAcceptGuest') }}
64544
64910
  </button>
64545
64911
  } @else {
@@ -64575,19 +64941,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64575
64941
  class="chessimals-board-wrap"
64576
64942
  [class.is-finished]="game().status === 'finished'"
64577
64943
  [class.is-orienting]="isBoardOrienting()"
64944
+ [class.is-syncing]="moveSyncing()"
64578
64945
  [style.--board-size]="game().boardSize"
64579
64946
  >
64580
64947
  <div class="chessimals-board-frame">
64581
- <div class="chessimals-file-labels" aria-hidden="true">
64582
- @for (col of displayCols(); track col) {
64583
- <span>{{ fileLabel(col) }}</span>
64584
- }
64585
- </div>
64586
- <div class="chessimals-rank-labels" aria-hidden="true">
64587
- @for (row of displayRows(); track row) {
64588
- <span>{{ rankLabel(row) }}</span>
64589
- }
64590
- </div>
64591
64948
  <div
64592
64949
  class="chessimals-board"
64593
64950
  role="grid"
@@ -64613,9 +64970,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64613
64970
  [class.effect-bull]="isMoveEffectCell(row, col, 'bull')"
64614
64971
  [class.effect-kangaroo]="isMoveEffectCell(row, col, 'kangaroo')"
64615
64972
  [class.effect-lion]="isMoveEffectCell(row, col, 'lion')"
64616
- [disabled]="game().status !== 'in_progress' || !canPlayCurrentTurn() || !!movingPiece() || botThinking()"
64973
+ [disabled]="projectionMode || game().status !== 'in_progress' || !canPlayCurrentTurn() || !!movingPiece() || botThinking() || moveSyncing()"
64617
64974
  (click)="selectCell({ row, col })"
64618
64975
  >
64976
+ @if (showRankLabel(col)) {
64977
+ <span class="chessimals-cell-coordinate chessimals-cell-coordinate--rank" aria-hidden="true">
64978
+ {{ rankLabel(row) }}
64979
+ </span>
64980
+ }
64981
+ @if (showFileLabel(row)) {
64982
+ <span class="chessimals-cell-coordinate chessimals-cell-coordinate--file" aria-hidden="true">
64983
+ {{ fileLabel(col) }}
64984
+ </span>
64985
+ }
64619
64986
  @if (pieceAt(row, col); as piece) {
64620
64987
  <span
64621
64988
  class="chessimals-piece"
@@ -64678,20 +65045,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64678
65045
  </div>
64679
65046
  }
64680
65047
  </div>
64681
- <div class="chessimals-rank-labels chessimals-rank-labels--right" aria-hidden="true">
64682
- @for (row of displayRows(); track row) {
64683
- <span>{{ rankLabel(row) }}</span>
64684
- }
64685
- </div>
64686
- <div class="chessimals-file-labels chessimals-file-labels--bottom" aria-hidden="true">
64687
- @for (col of displayCols(); track col) {
64688
- <span>{{ fileLabel(col) }}</span>
64689
- }
64690
- </div>
64691
65048
  </div>
64692
65049
  </section>
64693
65050
 
64694
- @if (onlineRole() !== 'spectator') {
65051
+ @if (onlineRole() !== 'spectator' && !projectionMode) {
64695
65052
  <section
64696
65053
  class="chessimals-powers"
64697
65054
  [class.is-locked]="!currentPlayer().powerUnlocked"
@@ -64779,6 +65136,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64779
65136
  {{ t('restart') }}
64780
65137
  </button>
64781
65138
  }
65139
+ @if (game().mode === 'online' && game().id && !projectionMode) {
65140
+ <button class="chessimals-secondary" type="button" (click)="shareProjectionLink()">
65141
+ {{ t('chessimalsShareProjection') }}
65142
+ </button>
65143
+ }
64782
65144
  <button class="chessimals-secondary" type="button" (click)="requestChangeMode()">
64783
65145
  {{ t('chessimalsChangeMode') }}
64784
65146
  </button>
@@ -64870,7 +65232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64870
65232
  />
64871
65233
  </ng-template>
64872
65234
  </ion-modal>
64873
- `, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #fff8ea;--chessimals-border: rgba(84, 65, 44, .2);--chessimals-text: #2e251b;--chessimals-muted: #746654;--chessimals-soft: rgba(196, 111, 57, .12);--chessimals-primary: #c46f39;--chessimals-primary-rgb: 196, 111, 57;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #d8a640;--chessimals-secondary-rgb: 216, 166, 64;--chessimals-sky: #2f93b3;--chessimals-sky-rgb: 47, 147, 179;--chessimals-stone: #ede0c2;--chessimals-stone-rgb: 237, 224, 194;--chessimals-selected: #2fffa1;--chessimals-selected-rgb: 47, 255, 161;--chessimals-move: var(--chessimals-sky);--chessimals-move-rgb: var(--chessimals-sky-rgb);--chessimals-capture: #e1a32b;--chessimals-capture-rgb: 225, 163, 43;--chessimals-last: #8b6f4c;--chessimals-last-rgb: 139, 111, 76;--chessimals-cell-light: #fffdf5;--chessimals-cell-dark: #dcc79c;--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .08);--chessimals-piece-white-shadow: drop-shadow(0 0 .04rem rgba(47, 42, 58, .3)) drop-shadow(0 .12rem .18rem rgba(47, 42, 58, .14));--chessimals-piece-black-fill: #2f2a3a;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .08);--chessimals-piece-black-shadow: drop-shadow(0 0 .04rem rgba(255, 255, 255, .16)) drop-shadow(0 .14rem .2rem rgba(0, 0, 0, .24));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .88), transparent 30%), color-mix(in srgb, var(--chessimals-text) 6%, var(--chessimals-panel));--chessimals-animal-face-border: color-mix(in srgb, var(--chessimals-text) 13%, transparent);--chessimals-animal-face-filter: drop-shadow(0 .12rem .12rem rgba(0, 0, 0, .16));--chessimals-animal-face-locked-filter: grayscale(.2) saturate(.72);--chessimals-animal-face-locked-img-opacity: .72;display:grid;gap:1.125rem;max-width:48rem;margin:0 auto;color:var(--chessimals-text)}.chessimals-resume-splash{order:0;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;align-content:center;gap:.65rem;padding:1.5rem;text-align:center;color:var(--chessimals-text);background:radial-gradient(circle at 50% 42%,rgba(var(--chessimals-primary-rgb),.18),transparent 22rem),color-mix(in srgb,var(--chessimals-panel) 92%,transparent);backdrop-filter:blur(.9rem)}.chessimals-resume-splash span{display:grid;place-items:center;width:4.75rem;height:4.75rem;border-radius:1.6rem;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:2.25rem;box-shadow:0 1.25rem 3rem rgba(var(--chessimals-primary-rgb),.32);animation:chessimals-resume-pulse 1.2s ease-in-out infinite}.chessimals-resume-splash strong{font-size:clamp(1.55rem,5vw,2.4rem);font-weight:950;line-height:1.05}.chessimals-resume-splash p{max-width:24rem;margin:0;color:var(--chessimals-muted);font-size:1rem;line-height:1.35}@keyframes chessimals-resume-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.25rem) scale(1.04)}}@keyframes chessimals-spin{to{transform:rotate(360deg)}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #211b15;--chessimals-border: rgba(255, 242, 210, .16);--chessimals-text: #fff1d1;--chessimals-muted: rgba(255, 239, 206, .7);--chessimals-soft: rgba(226, 139, 82, .13);--chessimals-primary: #e28b52;--chessimals-primary-rgb: 226, 139, 82;--chessimals-primary-contrast: #24170f;--chessimals-secondary: #efc96d;--chessimals-secondary-rgb: 239, 201, 109;--chessimals-sky: #5cb2c9;--chessimals-sky-rgb: 92, 178, 201;--chessimals-stone: #5d503f;--chessimals-stone-rgb: 93, 80, 63;--chessimals-cell-light: #2b241c;--chessimals-cell-dark: #725f42;--chessimals-capture: #f0c150;--chessimals-capture-rgb: 240, 193, 80;--chessimals-last: #c8a56d;--chessimals-last-rgb: 200, 165, 109;--chessimals-piece-white-fill: #fffaff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .1);--chessimals-piece-white-shadow: drop-shadow(0 0 .04rem rgba(47, 42, 58, .28)) drop-shadow(0 .12rem .2rem rgba(0, 0, 0, .22));--chessimals-piece-black-fill: #17131f;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .12);--chessimals-piece-black-shadow: drop-shadow(0 0 .04rem rgba(255, 255, 255, .34)) drop-shadow(0 .16rem .24rem rgba(0, 0, 0, .44));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .18), transparent 30%), linear-gradient(145deg, #f7f0ff, #d8d1e4);--chessimals-animal-face-border: rgba(255, 255, 255, .72);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(0, 0, 0, .22));--chessimals-animal-face-locked-filter: grayscale(.32) saturate(.72);--chessimals-animal-face-locked-img-opacity: .58}.chessimals-hero{display:grid;gap:.75rem;overflow:hidden;border-radius:1.75rem;padding:clamp(2rem,7vw,4rem);background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.52),transparent 16%),linear-gradient(135deg,var(--chessimals-primary),var(--chessimals-secondary));color:#fff;text-align:center}.chessimals-hero__icon{font-size:clamp(2.5rem,10vw,5rem);line-height:1}.chessimals-hero h1{margin:0;font-size:clamp(3rem,12vw,5.5rem);line-height:.9;font-weight:950}.chessimals-hero p,.chessimals-howto p,.chessimals-tip p,.chessimals-result p,.chessimals-powers p{margin:0;line-height:1.45}.chessimals-panel,.chessimals-game,.chessimals-powers{display:grid;gap:1rem;border:1px solid var(--chessimals-border);border-radius:1.625rem;padding:clamp(1rem,4vw,1.5rem);background:var(--chessimals-panel)}.chessimals-online{display:grid;gap:.875rem;border:1px solid var(--chessimals-border);border-radius:1.375rem;padding:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-online--waiting{order:2;border-color:rgba(var(--chessimals-primary-rgb),.34)}.chessimals-online h2,.chessimals-online p{margin:0}.chessimals-online h2{font-size:1.1rem;font-weight:950}.chessimals-online p{color:var(--chessimals-muted);line-height:1.4}.chessimals-online__create,.chessimals-online__join{display:grid;gap:.55rem}.chessimals-online__create small{color:var(--chessimals-muted);font-weight:800;line-height:1.35}.chessimals-online__join{border-top:1px solid var(--chessimals-border);padding-top:.85rem}.chessimals-online__join>strong{font-size:.95rem;font-weight:950}.chessimals-online__error{border-radius:.875rem;padding:.7rem .8rem;background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12);color:var(--ion-color-danger, #eb445a)!important;font-weight:800}.chessimals-online__loading{display:flex;align-items:center;gap:.625rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:999px;padding:.65rem .85rem;background:rgba(var(--chessimals-primary-rgb),.08);color:var(--chessimals-text);font-size:.92rem;font-weight:900}.chessimals-online__loading span{width:1rem;height:1rem;border:.15rem solid rgba(var(--chessimals-primary-rgb),.24);border-top-color:var(--chessimals-primary);border-radius:999px;animation:chessimals-spin .75s linear infinite}.chessimals-online-code{display:grid;gap:.4rem;font-weight:950}.chessimals-online-code input{width:100%;min-height:3.3rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.chessimals-game-code{display:grid;gap:.2rem;border-radius:1rem;padding:.85rem 1rem;background:var(--chessimals-soft)}.chessimals-game-code small{color:var(--chessimals-muted);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.chessimals-game-code strong{font-size:clamp(1.35rem,6vw,2rem);font-weight:950;letter-spacing:.05em}.chessimals-online-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-history{gap:.75rem}.chessimals-history__heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.chessimals-history__list{display:grid;gap:.5rem}.chessimals-history__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.7rem .8rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-history__item span{display:grid;gap:.1rem;min-width:0}.chessimals-history__item strong{font-weight:950;letter-spacing:.04em}.chessimals-history__item small{overflow:hidden;color:var(--chessimals-muted);font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.chessimals-history__item em{flex:0 0 auto;color:var(--chessimals-primary);font-size:.86rem;font-style:normal;font-weight:950}.chessimals-pending-player{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:1rem;padding:.75rem;background:var(--chessimals-soft)}.chessimals-pending-player div{display:grid;gap:.1rem;min-width:0}.chessimals-pending-player small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.chessimals-pending-player strong{overflow:hidden;font-size:1.05rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-game{display:grid;gap:.875rem}.chessimals-turn-card{order:1;display:flex;align-items:center;justify-content:space-between;gap:.625rem;min-height:3.75rem;overflow:visible;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1rem;padding:.55rem .65rem;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.34),transparent 18%),linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.2),rgba(var(--chessimals-secondary-rgb),.1))}.chessimals-turn-card.is-black-turn{border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.28);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.12),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-dark-rgb, 47, 42, 58),.14),rgba(var(--chessimals-primary-rgb),.1))}.chessimals-turn-card.is-finished{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.42);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.35),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.18),rgba(var(--chessimals-primary-rgb),.12))}.chessimals-turn-card.is-finished .chessimals-turn-card__chip{color:var(--ion-color-success, #2dd36f)}.chessimals-turn-card__copy{display:grid;min-width:0;gap:.15rem}.chessimals-turn-card__chip{justify-self:start;border-radius:999px;padding:.2rem .5rem;background:var(--chessimals-panel);color:var(--chessimals-primary);font-size:.62rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-turn-card strong{display:block;min-width:0;font-size:clamp(1rem,3.5vw,1.25rem);line-height:1.08;font-weight:950;overflow-wrap:anywhere}.chessimals-turn-card p{display:block;min-width:0;margin:0;color:var(--chessimals-muted);font-size:.78rem;line-height:1.22}.chessimals-player-strip{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;min-width:10rem;max-width:min(17rem,42%);border:1px solid var(--chessimals-border);border-radius:999px;padding:.3rem .55rem .3rem .35rem;background:rgba(var(--ion-color-light-rgb, 244, 245, 248),.72)}:host-context(html.ion-palette-dark) .chessimals-player-strip,:host-context([data-theme=\"dark\"]) .chessimals-player-strip{background:#ffffff0f}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:.875rem;line-height:1}.chessimals-player-strip__text{display:grid;min-width:0;gap:.05rem;line-height:1.1}.chessimals-player-strip__text span{color:var(--chessimals-muted);font-size:.58rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-player-strip__text strong{overflow:hidden;font-size:.82rem;line-height:1.08;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-player-strip__text small{overflow:hidden;color:var(--chessimals-muted);font-size:.66rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.chessimals-arena{order:4;display:grid;gap:.875rem;align-items:start}.chessimals-howto,.chessimals-tip,.chessimals-result,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-result{order:5}.chessimals-rematch-status{order:5;border:1px solid rgba(var(--chessimals-primary-rgb),.22);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-rematch-status.is-incoming{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.38);background:linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.14),transparent),var(--chessimals-panel)}.chessimals-rematch-status strong{font-size:1rem;font-weight:950}.chessimals-rematch-status p{margin:0;color:var(--chessimals-muted);font-size:.88rem;line-height:1.35}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.chessimals-howto p,.chessimals-tip p,.chessimals-powers p{color:var(--chessimals-muted)}.chessimals-learn-more{justify-self:start;min-height:2.75rem;border:0;border-radius:999px;padding:0 1rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font:inherit;font-weight:950}.chessimals-size,.chessimals-mode,.chessimals-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-status{order:3;grid-template-columns:repeat(3,minmax(0,1fr))}.chessimals-size button,.chessimals-mode button,.chessimals-status div{display:grid;gap:.2rem;align-content:center;min-width:0;min-height:3.875rem;padding:.55rem .65rem;border:1px solid var(--chessimals-border);border-radius:1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-size button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-mode button.is-selected{border-color:var(--chessimals-primary);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-difficulty{display:flex;flex-wrap:wrap;gap:.55rem}.chessimals-difficulty button{min-height:2.75rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:950}.chessimals-difficulty button.is-selected{border-color:var(--chessimals-primary);background:var(--chessimals-primary);color:#fff}.chessimals-size strong,.chessimals-mode strong,.chessimals-status strong,.chessimals-result strong,.chessimals-rematch-status strong,.chessimals-tip strong{font-weight:950}.chessimals-status strong{min-width:0;font-size:clamp(.95rem,2.5vw,1.2rem);line-height:1.08;overflow-wrap:anywhere;white-space:normal}.chessimals-size small,.chessimals-mode small,.chessimals-status small{color:var(--chessimals-muted);font-size:.78rem;line-height:1.12}.chessimals-board-wrap{display:grid;justify-items:center;overflow-x:auto;width:100%;padding:.25rem 0}.chessimals-board-wrap.is-orienting .chessimals-board-frame{animation:chessimals-orient-board .32s ease}.chessimals-board-wrap.is-finished{overflow-x:visible}.chessimals-board-frame{--chessimals-coord-size: 1.35rem;--chessimals-coord-gap: .55rem;display:grid;grid-template-columns:var(--chessimals-coord-size) minmax(0,1fr) var(--chessimals-coord-size);grid-template-rows:var(--chessimals-coord-size) minmax(0,1fr) var(--chessimals-coord-size);gap:var(--chessimals-coord-gap);align-items:stretch;justify-content:center;width:min(100%,48rem)}.chessimals-file-labels,.chessimals-rank-labels{display:grid;color:color-mix(in srgb,var(--chessimals-muted) 82%,var(--chessimals-text));font-size:clamp(.62rem,2.1vw,.78rem);font-weight:950;letter-spacing:.04em;line-height:1;text-transform:uppercase;-webkit-user-select:none;user-select:none}.chessimals-file-labels{grid-column:2;grid-row:1;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));align-items:end;text-align:center}.chessimals-file-labels--bottom{grid-row:3;align-items:start}.chessimals-rank-labels{grid-column:1;grid-row:2;grid-template-rows:repeat(var(--board-size),minmax(0,1fr));align-items:center;justify-items:end}.chessimals-rank-labels--right{grid-column:3;justify-items:start}.chessimals-board{position:relative;grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));grid-template-rows:repeat(var(--board-size),minmax(0,1fr));width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--chessimals-border);border-radius:.95rem;background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.22),transparent 20%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.07),transparent 24%),linear-gradient(22deg,transparent 0 28%,rgba(var(--chessimals-stone-rgb),.16) 28.2% 28.55%,transparent 28.8%),linear-gradient(147deg,transparent 0 64%,rgba(var(--chessimals-stone-rgb),.12) 64.2% 64.45%,transparent 64.7%),var(--chessimals-border);box-shadow:inset 0 0 0 1px #ffffff1a,0 .85rem 2.1rem #2e251b1f}@keyframes chessimals-orient-board{0%{opacity:.72;filter:blur(.06rem);transform:scale(.985)}52%{opacity:.92;filter:blur(0);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}.chessimals-center-line{position:absolute;top:50%;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;border-top:.08rem dashed rgba(var(--chessimals-secondary-rgb),.72);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-secondary-rgb),.34));pointer-events:none}.chessimals-power-trail{position:absolute;inset:0;z-index:5;pointer-events:none;--trail-color: rgba(var(--chessimals-selected-rgb), .76);--trail-glow: rgba(var(--chessimals-selected-rgb), .34)}.chessimals-power-trail.is-capture{--trail-color: rgba(var(--chessimals-capture-rgb), .86);--trail-glow: rgba(var(--chessimals-capture-rgb), .46)}.chessimals-power-trail.effect-eagle{--trail-color: rgba(255, 255, 255, .92);--trail-glow: rgba(120, 210, 255, .54)}.chessimals-power-trail.effect-bull{--trail-color: rgba(188, 131, 76, .86);--trail-glow: rgba(188, 131, 76, .36)}.chessimals-power-trail.effect-kangaroo{--trail-color: rgba(174, 124, 255, .86);--trail-glow: rgba(174, 124, 255, .42)}.chessimals-power-trail.effect-lion{--trail-color: rgba(255, 221, 120, .88);--trail-glow: rgba(255, 190, 56, .42)}.chessimals-power-trail>span{position:absolute;top:var(--trail-y);left:var(--trail-x);width:var(--trail-length);height:.45rem;border-radius:999px;background:linear-gradient(90deg,transparent,var(--trail-color) 42%,rgba(255,255,255,.92));box-shadow:0 0 .75rem var(--trail-glow),0 0 1.45rem var(--trail-glow);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0);transform-origin:0 50%;animation:chessimals-power-trail .72s ease-out both}.chessimals-power-trail.effect-eagle>span{height:.28rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 44%,rgba(120,210,255,.58)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);animation-name:chessimals-eagle-trail}.chessimals-power-trail.effect-bull>span{height:.72rem;background:repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 .18rem,transparent .18rem .42rem),linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.86));animation-name:chessimals-bull-trail}.chessimals-power-trail.effect-kangaroo>span{height:1rem;border-top:.16rem dashed var(--trail-color);background:transparent;box-shadow:none;filter:drop-shadow(0 0 .8rem var(--trail-glow));animation-name:chessimals-kangaroo-trail}.chessimals-power-trail.effect-lion>span{height:.62rem;background:linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.82)),repeating-linear-gradient(115deg,rgba(255,255,255,.55) 0 .12rem,transparent .12rem .34rem);animation-name:chessimals-lion-trail}@keyframes chessimals-power-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}28%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.72)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-eagle-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) skew(-10deg)}30%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.82) skew(-10deg)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1.05) skew(-10deg)}}@keyframes chessimals-bull-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) scaleY(1)}38%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.7) scaleY(1.18)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1) scaleY(.82)}}@keyframes chessimals-kangaroo-trail{0%{opacity:0;transform:translateY(-.4rem) rotate(var(--trail-angle)) scaleX(0)}34%{opacity:1;transform:translateY(-1.2rem) rotate(var(--trail-angle)) scaleX(.62)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-lion-trail{0%{opacity:0;filter:saturate(1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}36%{opacity:1;filter:saturate(1.4);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.76)}to{opacity:0;filter:saturate(1.1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}.chessimals-board-overlay{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:.45rem;padding:1.25rem;background:radial-gradient(circle at 50% 36%,rgba(255,226,129,.28),transparent 28%),radial-gradient(circle at 50% 48%,rgba(var(--chessimals-primary-rgb),.3),transparent 44%),#0d0a12c7;color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.62) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.46) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.42) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay>*{position:relative;z-index:1}.chessimals-board-overlay span{justify-self:center;border-radius:999px;padding:.32rem .7rem;background:#ffffff26;color:#ffffffe6;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay strong{font-size:clamp(1.65rem,8vw,3rem);line-height:1;font-weight:950;text-shadow:0 0 1.25rem rgba(255,255,255,.26)}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}.chessimals-cell{position:relative;isolation:isolate;--chessimals-cell-bg: var(--chessimals-cell-light);display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;border:0;background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.2),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(var(--chessimals-stone-rgb),.12),transparent 28%),linear-gradient(24deg,transparent 0 34%,rgba(255,255,255,.08) 34.3% 34.8%,transparent 35.1%),linear-gradient(138deg,transparent 0 70%,rgba(var(--chessimals-stone-rgb),.11) 70.2% 70.55%,transparent 70.8%),var(--chessimals-cell-bg);color:var(--chessimals-text);font:inherit;overflow:hidden;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.chessimals-cell:before,.chessimals-cell:after{pointer-events:none}.chessimals-cell.is-dark-cell{--chessimals-cell-bg: var(--chessimals-cell-dark)}.chessimals-cell.is-selected{z-index:1;background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.28) 0 36%,transparent 62%),linear-gradient(135deg,rgba(var(--chessimals-selected-rgb),.22),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .18rem var(--chessimals-selected),inset 0 0 .55rem #ffffffb8,inset 0 0 1.8rem rgba(var(--chessimals-selected-rgb),.42),0 0 .55rem rgba(var(--chessimals-selected-rgb),.56),0 0 1.55rem rgba(var(--chessimals-selected-rgb),.36)}.chessimals-cell.is-legal:not(.is-capture):after{position:absolute;inset:.35rem;z-index:2;border:.14rem solid var(--chessimals-move);border-radius:.55rem;content:\"\";opacity:.74;pointer-events:none}.chessimals-cell.is-last:not(.is-selected):not(.is-legal):not(.is-capture){background:radial-gradient(circle,rgba(var(--chessimals-last-rgb),.16) 0 42%,transparent 68%),var(--chessimals-cell-bg)}.chessimals-cell.is-capture{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.24),transparent 34%),linear-gradient(135deg,rgba(var(--chessimals-capture-rgb),.14),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .14rem rgba(var(--chessimals-capture-rgb),.84),inset 0 0 1.4rem rgba(var(--chessimals-capture-rgb),.24),0 0 .95rem rgba(var(--chessimals-capture-rgb),.34);animation:chessimals-capture-aura 1.35s ease-in-out infinite}.chessimals-cell.is-capture:before{position:absolute;inset:.08rem;z-index:1;display:block;border-radius:.64rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.24),transparent 58%);content:\"\";opacity:0;transform:translate(-42%) scale(.9);animation:chessimals-capture-sweep 1.35s ease-in-out infinite}.chessimals-cell.is-capture:after{position:absolute;inset:.2rem;z-index:3;border:.12rem solid rgba(var(--chessimals-capture-rgb),.9);border-radius:.62rem;box-shadow:0 0 .75rem rgba(var(--chessimals-capture-rgb),.5),inset 0 0 .72rem #ffffff38;content:\"\";pointer-events:none;animation:chessimals-capture-frame 1.35s ease-in-out infinite}@keyframes chessimals-capture-aura{0%,to{filter:saturate(1);box-shadow:inset 0 0 0 .12rem rgba(var(--chessimals-capture-rgb),.78),inset 0 0 1rem rgba(var(--chessimals-capture-rgb),.2),0 0 .64rem rgba(var(--chessimals-capture-rgb),.32)}50%{filter:saturate(1.22);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.96),inset 0 0 1.34rem rgba(var(--chessimals-capture-rgb),.34),0 0 1.2rem rgba(var(--chessimals-capture-rgb),.48)}}@keyframes chessimals-capture-sweep{0%{opacity:0;transform:translate(-52%) scale(.88)}42%{opacity:.66;transform:translate(0) scale(1)}to{opacity:0;transform:translate(48%) scale(.92)}}@keyframes chessimals-capture-frame{0%,to{opacity:.68;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.chessimals-cell.has-source-effect:not(.is-moving-source){background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.12) 0 34%,transparent 64%),var(--chessimals-cell-bg)}.chessimals-cell.has-move-effect{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.22) 0 34%,transparent 68%),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.86),inset 0 0 1.2rem rgba(var(--chessimals-capture-rgb),.26),0 0 1.1rem rgba(var(--chessimals-capture-rgb),.42)}.chessimals-cell.has-move-effect:before{position:absolute;inset:.12rem;z-index:1;display:block;border-radius:.7rem;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.48),transparent 22%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.42),transparent 58%);content:\"\";opacity:0;transform:scale(.72);animation:chessimals-power-impact .7s ease-out both}.chessimals-cell.has-move-effect:after{position:absolute;inset:.28rem;z-index:4;display:block;border:.14rem solid rgba(255,255,255,.72);border-radius:.58rem;box-shadow:0 0 .5rem #ffffff5c,0 0 1rem rgba(var(--chessimals-capture-rgb),.32);content:\"\";animation:chessimals-power-frame .86s ease-out both}.chessimals-cell.has-capture-effect{animation:chessimals-capture-hit .78s ease-out both}.chessimals-cell.effect-eagle:before{background:linear-gradient(135deg,transparent 10%,rgba(255,255,255,.78) 48%,transparent 52%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.36),transparent 62%)}.chessimals-cell.effect-bull:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 .16rem,transparent .16rem .34rem),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.38),transparent 62%)}.chessimals-cell.effect-kangaroo:before{border-radius:999px;background:radial-gradient(circle at 42% 44%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 58% 56%,rgba(var(--chessimals-capture-rgb),.4),transparent 64%)}.chessimals-cell.effect-lion:before{background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.56),transparent,rgba(var(--chessimals-capture-rgb),.4),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.34),transparent 62%)}@keyframes chessimals-power-impact{0%{opacity:0;transform:scale(.54) rotate(0)}28%{opacity:1;transform:scale(.96) rotate(2deg)}to{opacity:0;transform:scale(1.3) rotate(8deg)}}@keyframes chessimals-power-frame{0%{opacity:0;transform:scale(.84)}34%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.16)}}@keyframes chessimals-capture-hit{0%,to{filter:saturate(1)}35%{filter:saturate(1.35) brightness(1.08)}}.chessimals-cell.is-moving-source .chessimals-piece{opacity:0}.chessimals-piece{position:relative;z-index:2;display:block;width:clamp(2.1rem,7.8vw,3.95rem);height:clamp(2.1rem,7.8vw,3.95rem);color:var(--chessimals-primary);--chessimals-piece-fill: var(--chessimals-piece-white-fill);--chessimals-piece-side: var(--chessimals-piece-white-side);--chessimals-piece-line: var(--chessimals-piece-white-line);--chessimals-piece-outline: rgba(47, 42, 58, .18);filter:var(--chessimals-piece-white-shadow)}.chessimals-piece.is-black{color:#fff;--chessimals-piece-fill: var(--chessimals-piece-black-fill);--chessimals-piece-side: var(--chessimals-piece-black-side);--chessimals-piece-line: var(--chessimals-piece-black-line);--chessimals-piece-outline: rgba(255, 255, 255, .22);filter:var(--chessimals-piece-black-shadow)}.chessimals-moving-piece{position:absolute;top:0;left:0;z-index:6;width:calc(100% / var(--board-size));height:calc(100% / var(--board-size));display:grid;place-items:center;pointer-events:none;transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%));animation:chessimals-piece-travel .36s cubic-bezier(.2,.82,.24,1) both}@keyframes chessimals-piece-travel{0%{transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%)) scale(1)}68%{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1.07)}to{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1)}}.chessimals-piece__side,.chessimals-piece__head,.chessimals-piece__collar,.chessimals-piece__neck,.chessimals-piece__base{position:absolute;display:block;left:50%;background:var(--chessimals-piece-fill);border:.075rem solid var(--chessimals-piece-outline);transform:translate(-50%)}.chessimals-piece__side{display:none}.chessimals-piece__head{top:3%;width:48%;height:42%;border-radius:50% 50% 42% 42%;background:linear-gradient(135deg,rgba(255,255,255,.26) 0 30%,transparent 31%),var(--chessimals-piece-fill);box-shadow:inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .22rem -.18rem #ffffff12,inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:39%;width:74%;height:18%;border-radius:999px;box-shadow:inset -.18rem .14rem #ffffff0f,inset 0 -.08rem 0 var(--chessimals-piece-line)}.chessimals-piece__neck{top:54%;width:58%;height:30%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);box-shadow:inset -.16rem .16rem #ffffff0d}.chessimals-piece__base{bottom:2%;width:84%;height:20%;border-radius:.5rem .5rem .24rem .24rem;box-shadow:inset -.16rem .12rem #ffffff0d}.chessimals-target{width:.85rem;height:.85rem;border-radius:999px;background:var(--chessimals-move);opacity:.9;box-shadow:0 0 .9rem rgba(var(--chessimals-move-rgb),.42)}.chessimals-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}.chessimals-cards button{display:grid;gap:.375rem;place-items:center;min-height:5.75rem;padding:.625rem;border:1px solid var(--chessimals-border);border-radius:1.125rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.chessimals-powers__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chessimals-powers p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chessimals-powers__heading span{flex:0 0 auto;border-radius:999px;padding:.28rem .62rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-size:.78rem;font-weight:950}.chessimals-cards button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16),0 .9rem 2rem rgba(var(--chessimals-primary-rgb),.13);transform:translateY(-1px)}.chessimals-cards button.is-used{opacity:.42}.chessimals-animal-face{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:1rem;background:var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 92%,#000);box-shadow:inset 0 0 0 1px var(--chessimals-animal-face-border)}.chessimals-animal-face img{display:block;width:72%;height:72%;object-fit:contain;filter:var(--chessimals-animal-face-filter)}.chessimals-cards button.is-selected .chessimals-animal-face,.chessimals-powers.is-ready .chessimals-cards button:not(.is-used) .chessimals-animal-face{background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.96),transparent 32%),linear-gradient(145deg,#fff,#f0ecf7);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2f2a3a1f,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.14)}.chessimals-powers.is-locked .chessimals-animal-face{filter:var(--chessimals-animal-face-locked-filter);opacity:.86}.chessimals-powers.is-locked .chessimals-animal-face img,.chessimals-cards button.is-used .chessimals-animal-face img{opacity:var(--chessimals-animal-face-locked-img-opacity)}.chessimals-cards strong{overflow:hidden;max-width:100%;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-powers.is-locked .chessimals-cards{opacity:.68}.chessimals-powers.is-ready{border-color:rgba(var(--chessimals-primary-rgb),.42);box-shadow:0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-powers.is-ready .chessimals-cards button:not(.is-used){animation:chessimalsPowerPulse 1.8s ease-in-out infinite}.chessimals-powers.is-unlock-pulse{animation:chessimalsPowersUnlocked 1.18s ease-out both}.chessimals-powers.is-unlock-pulse .chessimals-cards button:not(.is-used){animation:chessimalsPowerIgnite .76s ease-out both,chessimalsPowerPulse 1.8s ease-in-out .76s infinite}@keyframes chessimalsPowerPulse{0%,to{box-shadow:0 0 rgba(var(--chessimals-primary-rgb),0)}50%{box-shadow:0 0 1.4rem rgba(var(--chessimals-primary-rgb),.22)}}@keyframes chessimalsPowersUnlocked{0%{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}34%{box-shadow:0 0 0 .18rem rgba(var(--chessimals-selected-rgb),.24),0 0 2.2rem rgba(var(--chessimals-selected-rgb),.34),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.16)}to{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}}@keyframes chessimalsPowerIgnite{0%{transform:translateY(0) scale(.96);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}42%{transform:translateY(-.08rem) scale(1.025);box-shadow:0 0 0 .14rem rgba(var(--chessimals-selected-rgb),.2),0 0 1.5rem rgba(var(--chessimals-selected-rgb),.42)}to{transform:translateY(0) scale(1);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}}.chessimals-actions{order:6;align-self:stretch;justify-self:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.625rem;margin-top:1rem}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-result,.chessimals-actions{grid-column:1 / -1}.chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:1rem}.chessimals-powers{width:min(100%,44rem);align-content:center;grid-template-columns:minmax(11rem,.68fr) minmax(0,1fr);align-items:center;gap:1rem;padding:1rem}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.chessimals-cards button{min-height:5rem}.chessimals-powers p{-webkit-line-clamp:3}}.chessimals-rules{display:grid;gap:1rem;padding-top:.25rem}.chessimals-rules article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;padding:1rem;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:1.25rem;background:var(--ion-card-background, #fff);color:var(--ion-text-color, #2f2a3a)}.chessimals-rules article>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-weight:950}.chessimals-rules article>div{display:grid;min-width:0;gap:.45rem}.chessimals-rules h3,.chessimals-rules p,.chessimals-rules ul{margin:0}.chessimals-rules h3{font-size:1rem;font-weight:950;line-height:1.2}.chessimals-rules p,.chessimals-rules li{color:var(--ion-color-medium, #6f6a7a);line-height:1.5}.chessimals-rules ul{display:grid;gap:.45rem;padding-left:1.15rem}.chessimals-primary,.chessimals-secondary{min-height:3.625rem;border-radius:999px;font:inherit;font-weight:950}.chessimals-primary{border:0;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 1.125rem 2.8rem rgba(var(--chessimals-primary-rgb),.28)}.chessimals-secondary{border:1px solid var(--chessimals-border);background:transparent;color:var(--chessimals-text)}@media (max-width: 560px){.chessimals-size,.chessimals-mode,.chessimals-actions{grid-template-columns:1fr}.chessimals-game{gap:.55rem;border-radius:1.25rem;padding:.625rem}.chessimals-turn-card{flex-direction:column;align-items:stretch;gap:.45rem;min-height:0;border-radius:.95rem;padding:.55rem}.chessimals-turn-card__chip{padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.98rem,5vw,1.25rem);line-height:1.08}.chessimals-turn-card p{font-size:.76rem;line-height:1.2}.chessimals-player-strip{width:100%;max-width:none;min-width:0}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.chessimals-status div{gap:.2rem;min-height:2.5rem;border-radius:.95rem;padding:.4rem .35rem}.chessimals-status small{font-size:.66rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.86rem,3.4vw,1rem);line-height:1.05}.chessimals-tip,.chessimals-result{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-arena{gap:.5rem}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.65rem}.chessimals-powers__heading{gap:.4rem}.chessimals-powers h2{font-size:1rem}.chessimals-powers__heading span{padding:.22rem .48rem;font-size:.68rem}.chessimals-powers p{font-size:.78rem;line-height:1.2;-webkit-line-clamp:1}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.chessimals-cards button{gap:.25rem;min-height:4.25rem;border-radius:.85rem;padding:.4rem .25rem}.chessimals-animal-face{width:2.1rem;height:2.1rem;border-radius:.75rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:1.1rem}.chessimals-board-frame{--chessimals-coord-size: .95rem;--chessimals-coord-gap: .34rem}}@media (prefers-reduced-motion: reduce){.chessimals-cell.is-capture,.chessimals-cell.is-capture:before,.chessimals-cell.is-capture:after,.chessimals-cell.has-move-effect,.chessimals-cell.has-move-effect:before,.chessimals-cell.has-move-effect:after,.chessimals-cell.has-capture-effect,.chessimals-moving-piece{animation:none!important}.chessimals-moving-piece{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%))}}\n"] }]
65235
+ `, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #f6e3d5;--chessimals-surface: #fff7ed;--chessimals-border: rgba(138, 75, 45, .24);--chessimals-text: #2f2623;--chessimals-muted: #8a4b2d;--chessimals-soft: rgba(192, 106, 61, .14);--chessimals-primary: #c06a3d;--chessimals-primary-rgb: 192, 106, 61;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #6f7a3c;--chessimals-secondary-rgb: 111, 122, 60;--chessimals-sky: #a8a06a;--chessimals-sky-rgb: 168, 160, 106;--chessimals-stone: #cdbe9b;--chessimals-stone-rgb: 205, 190, 155;--chessimals-selected: #2fffa1;--chessimals-selected-rgb: 47, 255, 161;--chessimals-move: var(--chessimals-sky);--chessimals-move-rgb: var(--chessimals-sky-rgb);--chessimals-capture: #1fcdb3;--chessimals-capture-rgb: 31, 205, 179;--chessimals-last: #8c6b4f;--chessimals-last-rgb: 140, 107, 79;--chessimals-cell-light: #f6e3d5;--chessimals-cell-dark: #d2b48c;--chessimals-board-shadow: rgba(58, 46, 36, .16);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .08);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(47, 42, 58, .3)) drop-shadow(0 2px 3px rgba(47, 42, 58, .14));--chessimals-piece-black-fill: #2f2a3a;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .08);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .16)) drop-shadow(0 2px 3px rgba(0, 0, 0, .24));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .88), transparent 30%), color-mix(in srgb, var(--chessimals-text) 6%, var(--chessimals-panel));--chessimals-animal-face-border: color-mix(in srgb, var(--chessimals-text) 13%, transparent);--chessimals-animal-face-filter: drop-shadow(0 .12rem .12rem rgba(0, 0, 0, .16));--chessimals-animal-face-locked-filter: grayscale(.2) saturate(.72);--chessimals-animal-face-locked-img-opacity: .72;display:grid;gap:1.125rem;width:100%;max-width:min(100%,60rem);margin:0 auto;color:var(--chessimals-text)}.chessimals-resume-splash{order:0;position:fixed;inset:0;z-index:1000;display:grid;place-items:center;align-content:center;gap:.65rem;padding:1.5rem;text-align:center;color:var(--chessimals-text);background:radial-gradient(circle at 50% 42%,rgba(var(--chessimals-primary-rgb),.18),transparent 22rem),color-mix(in srgb,var(--chessimals-panel) 92%,transparent);backdrop-filter:blur(.9rem)}.chessimals-resume-splash span{display:grid;place-items:center;width:4.75rem;height:4.75rem;border-radius:1.6rem;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:2.25rem;box-shadow:0 1.25rem 3rem rgba(var(--chessimals-primary-rgb),.32);animation:chessimals-resume-pulse 1.2s ease-in-out infinite}.chessimals-resume-splash strong{font-size:clamp(1.55rem,5vw,2.4rem);font-weight:950;line-height:1.05}.chessimals-resume-splash p{max-width:24rem;margin:0;color:var(--chessimals-muted);font-size:1rem;line-height:1.35}@keyframes chessimals-resume-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.25rem) scale(1.04)}}@keyframes chessimals-spin{to{transform:rotate(360deg)}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #2f2623;--chessimals-surface: #3a2e24;--chessimals-border: rgba(246, 227, 213, .18);--chessimals-text: #f6e3d5;--chessimals-muted: rgba(242, 230, 213, .72);--chessimals-soft: rgba(217, 160, 126, .12);--chessimals-primary: #d9a07e;--chessimals-primary-rgb: 217, 160, 126;--chessimals-primary-contrast: #2f2623;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #cdbe9b;--chessimals-sky-rgb: 205, 190, 155;--chessimals-stone: #8c6b4f;--chessimals-stone-rgb: 140, 107, 79;--chessimals-cell-light: #3a2e24;--chessimals-cell-dark: #8a4b2d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-capture: #66f2d7;--chessimals-capture-rgb: 102, 242, 215;--chessimals-last: #cdbe9b;--chessimals-last-rgb: 205, 190, 155;--chessimals-piece-white-fill: #fffaff;--chessimals-piece-white-side: transparent;--chessimals-piece-white-line: rgba(47, 42, 58, .1);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(47, 42, 58, .28)) drop-shadow(0 2px 3px rgba(0, 0, 0, .22));--chessimals-piece-black-fill: #17131f;--chessimals-piece-black-side: transparent;--chessimals-piece-black-line: rgba(255, 255, 255, .12);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 3px 4px rgba(0, 0, 0, .44));--chessimals-animal-face-bg: radial-gradient(circle at 32% 24%, rgba(255, 255, 255, .18), transparent 30%), linear-gradient(145deg, #f7f0ff, #d8d1e4);--chessimals-animal-face-border: rgba(255, 255, 255, .72);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(0, 0, 0, .22));--chessimals-animal-face-locked-filter: grayscale(.32) saturate(.72);--chessimals-animal-face-locked-img-opacity: .58}.chessimals-hero{display:grid;gap:.75rem;overflow:hidden;border-radius:1.75rem;padding:clamp(2rem,7vw,4rem);background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.52),transparent 16%),linear-gradient(135deg,var(--chessimals-primary),var(--chessimals-secondary));color:#fff;text-align:center}.chessimals-hero__icon{font-size:clamp(2.5rem,10vw,5rem);line-height:1}.chessimals-hero h1{margin:0;font-size:clamp(3rem,12vw,5.5rem);line-height:.9;font-weight:950}.chessimals-hero p,.chessimals-howto p,.chessimals-tip p,.chessimals-result p,.chessimals-powers p{margin:0;line-height:1.45}.chessimals-panel,.chessimals-game,.chessimals-powers{display:grid;gap:1rem;border:1px solid var(--chessimals-border);border-radius:1.625rem;padding:clamp(1rem,4vw,1.5rem);background:var(--chessimals-panel)}.chessimals-online{display:grid;gap:.875rem;border:1px solid var(--chessimals-border);border-radius:1.375rem;padding:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-online--waiting{order:2;border-color:rgba(var(--chessimals-primary-rgb),.34)}.chessimals-online h2,.chessimals-online p{margin:0}.chessimals-online h2{font-size:1.1rem;font-weight:950}.chessimals-online p{color:var(--chessimals-muted);line-height:1.4}.chessimals-online__create,.chessimals-online__join{display:grid;gap:.55rem}.chessimals-online__create small{color:var(--chessimals-muted);font-weight:800;line-height:1.35}.chessimals-online__join{border-top:1px solid var(--chessimals-border);padding-top:.85rem}.chessimals-online__join>strong{font-size:.95rem;font-weight:950}.chessimals-online__error{border-radius:.875rem;padding:.7rem .8rem;background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12);color:var(--ion-color-danger, #eb445a)!important;font-weight:800}.chessimals-online__loading{display:flex;align-items:center;gap:.625rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:999px;padding:.65rem .85rem;background:rgba(var(--chessimals-primary-rgb),.08);color:var(--chessimals-text);font-size:.92rem;font-weight:900}.chessimals-online__loading span{width:1rem;height:1rem;border:.15rem solid rgba(var(--chessimals-primary-rgb),.24);border-top-color:var(--chessimals-primary);border-radius:999px;animation:chessimals-spin .75s linear infinite}.chessimals-online-code{display:grid;gap:.4rem;font-weight:950}.chessimals-online-code input{width:100%;min-height:3.3rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.chessimals-game-code{display:grid;gap:.2rem;border-radius:1rem;padding:.85rem 1rem;background:var(--chessimals-soft)}.chessimals-game-code small{color:var(--chessimals-muted);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.chessimals-game-code strong{font-size:clamp(1.35rem,6vw,2rem);font-weight:950;letter-spacing:.05em}.chessimals-online-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-history{gap:.75rem}.chessimals-history__heading{display:flex;align-items:start;justify-content:space-between;gap:.75rem}.chessimals-history__list{display:grid;gap:.5rem}.chessimals-history__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.7rem .8rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-history__item span{display:grid;gap:.1rem;min-width:0}.chessimals-history__item strong{font-weight:950;letter-spacing:.04em}.chessimals-history__item small{overflow:hidden;color:var(--chessimals-muted);font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.chessimals-history__item em{flex:0 0 auto;color:var(--chessimals-primary);font-size:.86rem;font-style:normal;font-weight:950}.chessimals-pending-player{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.22);border-radius:1rem;padding:.75rem;background:var(--chessimals-soft)}.chessimals-pending-player div{display:grid;gap:.1rem;min-width:0}.chessimals-pending-player small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.chessimals-pending-player strong{overflow:hidden;font-size:1.05rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-game{display:grid;gap:.875rem}.chessimals-turn-card{order:1;display:flex;align-items:center;justify-content:space-between;gap:.625rem;min-height:3.75rem;overflow:visible;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1rem;padding:.55rem .65rem;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.34),transparent 18%),linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.2),rgba(var(--chessimals-secondary-rgb),.1))}.chessimals-turn-card.is-black-turn{border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.28);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.12),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-dark-rgb, 47, 42, 58),.14),rgba(var(--chessimals-primary-rgb),.1))}.chessimals-turn-card.is-finished{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.42);background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.35),transparent 18%),linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.18),rgba(var(--chessimals-primary-rgb),.12))}.chessimals-turn-card.is-finished .chessimals-turn-card__chip{color:var(--ion-color-success, #2dd36f)}.chessimals-turn-card__copy{display:grid;min-width:0;gap:.15rem}.chessimals-turn-card__chip{justify-self:start;border-radius:999px;padding:.2rem .5rem;background:var(--chessimals-panel);color:var(--chessimals-primary);font-size:.62rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-turn-card strong{display:block;min-width:0;font-size:clamp(1rem,3.5vw,1.25rem);line-height:1.08;font-weight:950;overflow-wrap:anywhere}.chessimals-turn-card p{display:block;min-width:0;margin:0;color:var(--chessimals-muted);font-size:.78rem;line-height:1.22}.chessimals-player-strip{display:flex;flex:0 0 auto;align-items:center;gap:.45rem;min-width:10rem;max-width:min(17rem,42%);border:1px solid var(--chessimals-border);border-radius:999px;padding:.3rem .55rem .3rem .35rem;background:rgba(var(--ion-color-light-rgb, 244, 245, 248),.72)}:host-context(html.ion-palette-dark) .chessimals-player-strip,:host-context([data-theme=\"dark\"]) .chessimals-player-strip{background:#ffffff0f}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font-size:.875rem;line-height:1}.chessimals-player-strip__text{display:grid;min-width:0;gap:.05rem;line-height:1.1}.chessimals-player-strip__text span{color:var(--chessimals-muted);font-size:.58rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-player-strip__text strong{overflow:hidden;font-size:.82rem;line-height:1.08;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-player-strip__text small{overflow:hidden;color:var(--chessimals-muted);font-size:.66rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.chessimals-arena{order:4;display:grid;gap:.875rem;align-items:start}.chessimals-howto,.chessimals-tip,.chessimals-result,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-result{order:5}.chessimals-rematch-status{order:5;border:1px solid rgba(var(--chessimals-primary-rgb),.22);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-rematch-status.is-incoming{border-color:rgba(var(--ion-color-success-rgb, 45, 211, 111),.38);background:linear-gradient(135deg,rgba(var(--ion-color-success-rgb, 45, 211, 111),.14),transparent),var(--chessimals-panel)}.chessimals-rematch-status strong{font-size:1rem;font-weight:950}.chessimals-rematch-status p{margin:0;color:var(--chessimals-muted);font-size:.88rem;line-height:1.35}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.chessimals-howto p,.chessimals-tip p,.chessimals-powers p{color:var(--chessimals-muted)}.chessimals-learn-more{justify-self:start;min-height:2.75rem;border:0;border-radius:999px;padding:0 1rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font:inherit;font-weight:950}.chessimals-size,.chessimals-mode,.chessimals-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.chessimals-status{order:3;grid-template-columns:repeat(3,minmax(0,1fr))}.chessimals-size button,.chessimals-mode button,.chessimals-status div{display:grid;gap:.2rem;align-content:center;min-width:0;min-height:3.875rem;padding:.55rem .65rem;border:1px solid var(--chessimals-border);border-radius:1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-size button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-mode button.is-selected{border-color:var(--chessimals-primary);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16)}.chessimals-difficulty{display:flex;flex-wrap:wrap;gap:.55rem}.chessimals-difficulty button{min-height:2.75rem;border:1px solid var(--chessimals-border);border-radius:999px;padding:0 1rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;font-weight:950}.chessimals-difficulty button.is-selected{border-color:var(--chessimals-primary);background:var(--chessimals-primary);color:#fff}.chessimals-size strong,.chessimals-mode strong,.chessimals-status strong,.chessimals-result strong,.chessimals-rematch-status strong,.chessimals-tip strong{font-weight:950}.chessimals-status strong{min-width:0;font-size:clamp(.95rem,2.5vw,1.2rem);line-height:1.08;overflow-wrap:anywhere;white-space:normal}.chessimals-size small,.chessimals-mode small,.chessimals-status small{color:var(--chessimals-muted);font-size:.78rem;line-height:1.12}.chessimals-board-wrap{display:grid;justify-items:center;overflow-x:auto;width:100%;padding:.25rem 0}.chessimals-board-wrap.is-orienting .chessimals-board-frame{animation:chessimals-orient-board .32s ease}.chessimals-board-wrap.is-finished{overflow-x:visible}.chessimals-board-frame{display:grid;align-items:stretch;justify-content:center;width:min(100%,58rem)}.chessimals-board{position:relative;display:grid;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));grid-template-rows:repeat(var(--board-size),minmax(0,1fr));width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--chessimals-border);border-radius:.95rem;background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.2),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-secondary-rgb),.08),transparent 22%),linear-gradient(22deg,transparent 0 31%,rgba(var(--chessimals-stone-rgb),.08) 31.1% 31.24%,transparent 31.35%),linear-gradient(145deg,transparent 0 67%,rgba(var(--chessimals-stone-rgb),.07) 67.1% 67.22%,transparent 67.35%),var(--chessimals-border);box-shadow:inset 0 0 0 1px #ffffff1a,0 .85rem 2.1rem var(--chessimals-board-shadow)}.chessimals-board-wrap.is-syncing .chessimals-board{cursor:wait}.chessimals-cell-coordinate{position:absolute;z-index:5;color:color-mix(in srgb,var(--chessimals-muted) 78%,var(--chessimals-text));font-size:.68rem;font-weight:950;letter-spacing:.02em;line-height:1;pointer-events:none;text-transform:uppercase;-webkit-user-select:none;user-select:none}.chessimals-cell-coordinate--rank{top:.2rem;left:.24rem}.chessimals-cell-coordinate--file{right:.24rem;bottom:.18rem}@keyframes chessimals-orient-board{0%{opacity:.72;filter:blur(.06rem);transform:scale(.985)}52%{opacity:.92;filter:blur(0);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}.chessimals-center-line{position:absolute;top:50%;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;border-top:.08rem dashed rgba(var(--chessimals-secondary-rgb),.72);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-secondary-rgb),.34));pointer-events:none}.chessimals-power-trail{position:absolute;inset:0;z-index:5;pointer-events:none;--trail-color: rgba(var(--chessimals-selected-rgb), .76);--trail-glow: rgba(var(--chessimals-selected-rgb), .34)}.chessimals-power-trail.is-capture{--trail-color: rgba(var(--chessimals-capture-rgb), .86);--trail-glow: rgba(var(--chessimals-capture-rgb), .46)}.chessimals-power-trail.effect-eagle{--trail-color: rgba(255, 255, 255, .92);--trail-glow: rgba(120, 210, 255, .54)}.chessimals-power-trail.effect-bull{--trail-color: rgba(188, 131, 76, .86);--trail-glow: rgba(188, 131, 76, .36)}.chessimals-power-trail.effect-kangaroo{--trail-color: rgba(174, 124, 255, .86);--trail-glow: rgba(174, 124, 255, .42)}.chessimals-power-trail.effect-lion{--trail-color: rgba(255, 221, 120, .88);--trail-glow: rgba(255, 190, 56, .42)}.chessimals-power-trail>span{position:absolute;top:var(--trail-y);left:var(--trail-x);width:var(--trail-length);height:.45rem;border-radius:999px;background:linear-gradient(90deg,transparent,var(--trail-color) 42%,rgba(255,255,255,.92));box-shadow:0 0 .75rem var(--trail-glow),0 0 1.45rem var(--trail-glow);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0);transform-origin:0 50%;animation:chessimals-power-trail .72s ease-out both}.chessimals-power-trail.effect-eagle>span{height:.28rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95) 44%,rgba(120,210,255,.58)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);animation-name:chessimals-eagle-trail}.chessimals-power-trail.effect-bull>span{height:.72rem;background:repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 .18rem,transparent .18rem .42rem),linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.86));animation-name:chessimals-bull-trail}.chessimals-power-trail.effect-kangaroo>span{height:1rem;border-top:.16rem dashed var(--trail-color);background:transparent;box-shadow:none;filter:drop-shadow(0 0 .8rem var(--trail-glow));animation-name:chessimals-kangaroo-trail}.chessimals-power-trail.effect-lion>span{height:.62rem;background:linear-gradient(90deg,transparent,var(--trail-color),rgba(255,255,255,.82)),repeating-linear-gradient(115deg,rgba(255,255,255,.55) 0 .12rem,transparent .12rem .34rem);animation-name:chessimals-lion-trail}@keyframes chessimals-power-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}28%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.72)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-eagle-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) skew(-10deg)}30%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.82) skew(-10deg)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1.05) skew(-10deg)}}@keyframes chessimals-bull-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0) scaleY(1)}38%{opacity:1;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.7) scaleY(1.18)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1) scaleY(.82)}}@keyframes chessimals-kangaroo-trail{0%{opacity:0;transform:translateY(-.4rem) rotate(var(--trail-angle)) scaleX(0)}34%{opacity:1;transform:translateY(-1.2rem) rotate(var(--trail-angle)) scaleX(.62)}to{opacity:0;transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}@keyframes chessimals-lion-trail{0%{opacity:0;filter:saturate(1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(0)}36%{opacity:1;filter:saturate(1.4);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(.76)}to{opacity:0;filter:saturate(1.1);transform:translateY(-50%) rotate(var(--trail-angle)) scaleX(1)}}.chessimals-board-overlay{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:.45rem;padding:1.25rem;background:radial-gradient(circle at 50% 36%,rgba(255,226,129,.28),transparent 28%),radial-gradient(circle at 50% 48%,rgba(var(--chessimals-primary-rgb),.3),transparent 44%),#0d0a12c7;color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.62) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.46) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.42) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay>*{position:relative;z-index:1}.chessimals-board-overlay span{justify-self:center;border-radius:999px;padding:.32rem .7rem;background:#ffffff26;color:#ffffffe6;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay strong{font-size:clamp(1.65rem,8vw,3rem);line-height:1;font-weight:950;text-shadow:0 0 1.25rem rgba(255,255,255,.26)}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}.chessimals-cell{position:relative;isolation:isolate;--chessimals-cell-bg: var(--chessimals-cell-light);display:grid;place-items:center;min-width:0;min-height:0;aspect-ratio:1;border:0;background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.2),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(var(--chessimals-stone-rgb),.12),transparent 28%),linear-gradient(24deg,transparent 0 34%,rgba(255,255,255,.08) 34.3% 34.8%,transparent 35.1%),linear-gradient(138deg,transparent 0 70%,rgba(var(--chessimals-stone-rgb),.11) 70.2% 70.55%,transparent 70.8%),var(--chessimals-cell-bg);color:var(--chessimals-text);font:inherit;overflow:hidden;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.chessimals-cell:before,.chessimals-cell:after{pointer-events:none}.chessimals-cell.is-dark-cell{--chessimals-cell-bg: var(--chessimals-cell-dark)}.chessimals-cell.is-selected{z-index:1;background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.28) 0 36%,transparent 62%),linear-gradient(135deg,rgba(var(--chessimals-selected-rgb),.22),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .18rem var(--chessimals-selected),inset 0 0 .55rem #ffffffb8,inset 0 0 1.8rem rgba(var(--chessimals-selected-rgb),.42),0 0 .55rem rgba(var(--chessimals-selected-rgb),.56),0 0 1.55rem rgba(var(--chessimals-selected-rgb),.36)}.chessimals-cell.is-legal:not(.is-capture):after{position:absolute;inset:13%;z-index:2;border:max(2px,1.8%) solid var(--chessimals-move);border-radius:.55rem;content:\"\";opacity:.74;pointer-events:none}.chessimals-cell.is-last:not(.is-selected):not(.is-legal):not(.is-capture){background:radial-gradient(circle,rgba(var(--chessimals-last-rgb),.16) 0 42%,transparent 68%),var(--chessimals-cell-bg)}.chessimals-cell.is-capture{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.24),transparent 34%),linear-gradient(135deg,rgba(var(--chessimals-capture-rgb),.14),#ffffff14),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .14rem rgba(var(--chessimals-capture-rgb),.84),inset 0 0 1.4rem rgba(var(--chessimals-capture-rgb),.24),0 0 .95rem rgba(var(--chessimals-capture-rgb),.34);animation:chessimals-capture-aura 1.35s ease-in-out infinite}.chessimals-cell.is-capture:before{position:absolute;inset:4%;z-index:1;display:block;border-radius:.64rem;background:linear-gradient(90deg,transparent,rgba(255,255,255,.52),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.24),transparent 58%);content:\"\";opacity:0;transform:translate(-42%) scale(.9);animation:chessimals-capture-sweep 1.35s ease-in-out infinite}.chessimals-cell.is-capture:after{position:absolute;inset:8%;z-index:3;border:max(2px,1.55%) solid rgba(var(--chessimals-capture-rgb),.9);border-radius:.62rem;box-shadow:0 0 .75rem rgba(var(--chessimals-capture-rgb),.5),inset 0 0 .72rem #ffffff38;content:\"\";pointer-events:none;animation:chessimals-capture-frame 1.35s ease-in-out infinite}@keyframes chessimals-capture-aura{0%,to{filter:saturate(1);box-shadow:inset 0 0 0 .12rem rgba(var(--chessimals-capture-rgb),.78),inset 0 0 1rem rgba(var(--chessimals-capture-rgb),.2),0 0 .64rem rgba(var(--chessimals-capture-rgb),.32)}50%{filter:saturate(1.22);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.96),inset 0 0 1.34rem rgba(var(--chessimals-capture-rgb),.34),0 0 1.2rem rgba(var(--chessimals-capture-rgb),.48)}}@keyframes chessimals-capture-sweep{0%{opacity:0;transform:translate(-52%) scale(.88)}42%{opacity:.66;transform:translate(0) scale(1)}to{opacity:0;transform:translate(48%) scale(.92)}}@keyframes chessimals-capture-frame{0%,to{opacity:.68;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.chessimals-cell.has-source-effect:not(.is-moving-source){background:radial-gradient(circle,rgba(var(--chessimals-selected-rgb),.12) 0 34%,transparent 64%),var(--chessimals-cell-bg)}.chessimals-cell.has-move-effect{z-index:2;background:radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.22) 0 34%,transparent 68%),var(--chessimals-cell-bg);box-shadow:inset 0 0 0 .16rem rgba(var(--chessimals-capture-rgb),.86),inset 0 0 1.2rem rgba(var(--chessimals-capture-rgb),.26),0 0 1.1rem rgba(var(--chessimals-capture-rgb),.42)}.chessimals-cell.has-move-effect:before{position:absolute;inset:.12rem;z-index:1;display:block;border-radius:.7rem;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.48),transparent 22%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.42),transparent 58%);content:\"\";opacity:0;transform:scale(.72);animation:chessimals-power-impact .7s ease-out both}.chessimals-cell.has-move-effect:after{position:absolute;inset:.28rem;z-index:4;display:block;border:.14rem solid rgba(255,255,255,.72);border-radius:.58rem;box-shadow:0 0 .5rem #ffffff5c,0 0 1rem rgba(var(--chessimals-capture-rgb),.32);content:\"\";animation:chessimals-power-frame .86s ease-out both}.chessimals-cell.has-capture-effect{animation:chessimals-capture-hit .78s ease-out both}.chessimals-cell.effect-eagle:before{background:linear-gradient(135deg,transparent 10%,rgba(255,255,255,.78) 48%,transparent 52%),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.36),transparent 62%)}.chessimals-cell.effect-bull:before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.34) 0 .16rem,transparent .16rem .34rem),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.38),transparent 62%)}.chessimals-cell.effect-kangaroo:before{border-radius:999px;background:radial-gradient(circle at 42% 44%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 58% 56%,rgba(var(--chessimals-capture-rgb),.4),transparent 64%)}.chessimals-cell.effect-lion:before{background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.56),transparent,rgba(var(--chessimals-capture-rgb),.4),transparent),radial-gradient(circle at 50% 50%,rgba(var(--chessimals-capture-rgb),.34),transparent 62%)}@keyframes chessimals-power-impact{0%{opacity:0;transform:scale(.54) rotate(0)}28%{opacity:1;transform:scale(.96) rotate(2deg)}to{opacity:0;transform:scale(1.3) rotate(8deg)}}@keyframes chessimals-power-frame{0%{opacity:0;transform:scale(.84)}34%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.16)}}@keyframes chessimals-capture-hit{0%,to{filter:saturate(1)}35%{filter:saturate(1.35) brightness(1.08)}}.chessimals-cell.is-moving-source .chessimals-piece{opacity:0}.chessimals-piece{position:relative;z-index:2;display:block;width:72%;height:72%;color:var(--chessimals-primary);--chessimals-piece-fill: var(--chessimals-piece-white-fill);--chessimals-piece-side: var(--chessimals-piece-white-side);--chessimals-piece-line: var(--chessimals-piece-white-line);--chessimals-piece-outline: rgba(47, 42, 58, .18);filter:var(--chessimals-piece-white-shadow)}.chessimals-piece.is-black{color:#fff;--chessimals-piece-fill: var(--chessimals-piece-black-fill);--chessimals-piece-side: var(--chessimals-piece-black-side);--chessimals-piece-line: var(--chessimals-piece-black-line);--chessimals-piece-outline: rgba(255, 255, 255, .22);filter:var(--chessimals-piece-black-shadow)}.chessimals-moving-piece{position:absolute;top:0;left:0;z-index:6;width:calc(100% / var(--board-size));height:calc(100% / var(--board-size));display:grid;place-items:center;pointer-events:none;transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%));animation:chessimals-piece-travel .36s cubic-bezier(.2,.82,.24,1) both}@keyframes chessimals-piece-travel{0%{transform:translate(calc(var(--from-col) * 100%),calc(var(--from-row) * 100%)) scale(1)}68%{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1.07)}to{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%)) scale(1)}}.chessimals-piece__side,.chessimals-piece__head,.chessimals-piece__collar,.chessimals-piece__neck,.chessimals-piece__base{position:absolute;display:block;left:50%;background:var(--chessimals-piece-fill);border:max(1px,1.25%) solid var(--chessimals-piece-outline);transform:translate(-50%)}.chessimals-piece__side{display:none}.chessimals-piece__head{top:3%;width:48%;height:42%;border-radius:50% 50% 42% 42%;background:linear-gradient(135deg,rgba(255,255,255,.26) 0 30%,transparent 31%),var(--chessimals-piece-fill);box-shadow:inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset 4px -3px #ffffff12,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:39%;width:74%;height:18%;border-radius:999px;box-shadow:inset -3px 2px #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__neck{top:54%;width:58%;height:30%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);box-shadow:inset -3px 3px #ffffff0d}.chessimals-piece__base{bottom:2%;width:84%;height:20%;border-radius:.5rem .5rem .24rem .24rem;box-shadow:inset -3px 2px #ffffff0d}.chessimals-target{width:16%;height:16%;border-radius:999px;background:var(--chessimals-move);opacity:.9;box-shadow:0 0 .9rem rgba(var(--chessimals-move-rgb),.42)}.chessimals-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}.chessimals-cards button{display:grid;gap:.375rem;place-items:center;min-height:5.75rem;padding:.625rem;border:1px solid var(--chessimals-border);border-radius:1.125rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.chessimals-powers__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.chessimals-powers p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chessimals-powers__heading span{flex:0 0 auto;border-radius:999px;padding:.28rem .62rem;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-size:.78rem;font-weight:950}.chessimals-cards button.is-selected{border-color:var(--chessimals-primary);box-shadow:0 0 0 2px rgba(var(--chessimals-primary-rgb),.16),0 .9rem 2rem rgba(var(--chessimals-primary-rgb),.13);transform:translateY(-1px)}.chessimals-cards button.is-used{opacity:.42}.chessimals-animal-face{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:1rem;background:var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 92%,#000);box-shadow:inset 0 0 0 1px var(--chessimals-animal-face-border)}.chessimals-animal-face img{display:block;width:72%;height:72%;object-fit:contain;filter:var(--chessimals-animal-face-filter)}.chessimals-cards button.is-selected .chessimals-animal-face,.chessimals-powers.is-ready .chessimals-cards button:not(.is-used) .chessimals-animal-face{background:radial-gradient(circle at 34% 24%,rgba(255,255,255,.96),transparent 32%),linear-gradient(145deg,#fff,#f0ecf7);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2f2a3a1f,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.14)}.chessimals-powers.is-locked .chessimals-animal-face{filter:var(--chessimals-animal-face-locked-filter);opacity:.86}.chessimals-powers.is-locked .chessimals-animal-face img,.chessimals-cards button.is-used .chessimals-animal-face img{opacity:var(--chessimals-animal-face-locked-img-opacity)}.chessimals-cards strong{overflow:hidden;max-width:100%;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-powers.is-locked .chessimals-cards{opacity:.68}.chessimals-powers.is-ready{border-color:rgba(var(--chessimals-primary-rgb),.42);box-shadow:0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-powers.is-ready .chessimals-cards button:not(.is-used){animation:chessimalsPowerPulse 1.8s ease-in-out infinite}.chessimals-powers.is-unlock-pulse{animation:chessimalsPowersUnlocked 1.18s ease-out both}.chessimals-powers.is-unlock-pulse .chessimals-cards button:not(.is-used){animation:chessimalsPowerIgnite .76s ease-out both,chessimalsPowerPulse 1.8s ease-in-out .76s infinite}@keyframes chessimalsPowerPulse{0%,to{box-shadow:0 0 rgba(var(--chessimals-primary-rgb),0)}50%{box-shadow:0 0 1.4rem rgba(var(--chessimals-primary-rgb),.22)}}@keyframes chessimalsPowersUnlocked{0%{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}34%{box-shadow:0 0 0 .18rem rgba(var(--chessimals-selected-rgb),.24),0 0 2.2rem rgba(var(--chessimals-selected-rgb),.34),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.16)}to{box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0),0 1rem 2.4rem rgba(var(--chessimals-primary-rgb),.12)}}@keyframes chessimalsPowerIgnite{0%{transform:translateY(0) scale(.96);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}42%{transform:translateY(-.08rem) scale(1.025);box-shadow:0 0 0 .14rem rgba(var(--chessimals-selected-rgb),.2),0 0 1.5rem rgba(var(--chessimals-selected-rgb),.42)}to{transform:translateY(0) scale(1);box-shadow:0 0 rgba(var(--chessimals-selected-rgb),0)}}.chessimals-actions{order:6;align-self:stretch;justify-self:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.625rem;margin-top:1rem}.chessimals-shell--projection .chessimals-game{max-width:min(96vw,90rem)}.chessimals-shell--projection .chessimals-turn-card{padding:.875rem 1rem}.chessimals-shell--projection .chessimals-status,.chessimals-shell--projection .chessimals-actions,.chessimals-shell--projection .chessimals-online,.chessimals-shell--projection .chessimals-rematch-status{display:none}.chessimals-shell--projection .chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center}.chessimals-shell--projection .chessimals-board-wrap{width:min(96vw,82vh,58rem);max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-result,.chessimals-actions{grid-column:1 / -1}.chessimals-arena{grid-template-columns:minmax(0,1fr);justify-items:center;align-items:start;gap:1rem}.chessimals-powers{width:min(100%,44rem);align-content:center;grid-template-columns:minmax(11rem,.68fr) minmax(0,1fr);align-items:center;gap:1rem;padding:1rem}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.chessimals-cards button{min-height:5rem}.chessimals-powers p{-webkit-line-clamp:3}}.chessimals-rules{display:grid;gap:1rem;padding-top:.25rem}.chessimals-rules article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;padding:1rem;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:1.25rem;background:var(--ion-card-background, #fff);color:var(--ion-text-color, #2f2a3a)}.chessimals-rules article>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:rgba(var(--chessimals-primary-rgb),.12);color:var(--chessimals-primary);font-weight:950}.chessimals-rules article>div{display:grid;min-width:0;gap:.45rem}.chessimals-rules h3,.chessimals-rules p,.chessimals-rules ul{margin:0}.chessimals-rules h3{font-size:1rem;font-weight:950;line-height:1.2}.chessimals-rules p,.chessimals-rules li{color:var(--ion-color-medium, #6f6a7a);line-height:1.5}.chessimals-rules ul{display:grid;gap:.45rem;padding-left:1.15rem}.chessimals-primary,.chessimals-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.625rem;border-radius:999px;font:inherit;font-weight:950}.chessimals-primary{border:0;background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 1.125rem 2.8rem rgba(var(--chessimals-primary-rgb),.28)}.chessimals-secondary{border:1px solid var(--chessimals-border);background:transparent;color:var(--chessimals-text)}.chessimals-primary.is-working,.chessimals-secondary.is-working{cursor:wait;opacity:.82}.chessimals-button-spinner{width:1rem;height:1rem;flex:0 0 auto;border:.14rem solid currentColor;border-right-color:transparent;border-radius:999px;animation:chessimals-spin .72s linear infinite}@media (max-width: 560px){.chessimals-size,.chessimals-mode,.chessimals-actions{grid-template-columns:1fr}.chessimals-game{gap:.55rem;border-radius:1.25rem;padding:.625rem}.chessimals-turn-card{flex-direction:column;align-items:stretch;gap:.45rem;min-height:0;border-radius:.95rem;padding:.55rem}.chessimals-turn-card__chip{padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.98rem,5vw,1.25rem);line-height:1.08}.chessimals-turn-card p{font-size:.76rem;line-height:1.2}.chessimals-player-strip{width:100%;max-width:none;min-width:0}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.chessimals-status div{gap:.2rem;min-height:2.5rem;border-radius:.95rem;padding:.4rem .35rem}.chessimals-status small{font-size:.66rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.86rem,3.4vw,1rem);line-height:1.05}.chessimals-tip,.chessimals-result{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:calc(100% + 1.25rem);margin-inline:-.625rem;padding:0}.chessimals-board-frame{width:100%}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.65rem}.chessimals-powers__heading{gap:.4rem}.chessimals-powers h2{font-size:1rem}.chessimals-powers__heading span{padding:.22rem .48rem;font-size:.68rem}.chessimals-powers p{font-size:.78rem;line-height:1.2;-webkit-line-clamp:1}.chessimals-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.chessimals-cards button{gap:.25rem;min-height:4.25rem;border-radius:.85rem;padding:.4rem .25rem}.chessimals-animal-face{width:2.1rem;height:2.1rem;border-radius:.75rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:1.1rem}.chessimals-cell-coordinate{font-size:.58rem}}@media (prefers-reduced-motion: reduce){.chessimals-cell.is-capture,.chessimals-cell.is-capture:before,.chessimals-cell.is-capture:after,.chessimals-cell.has-move-effect,.chessimals-cell.has-move-effect:before,.chessimals-cell.has-move-effect:after,.chessimals-cell.has-capture-effect,.chessimals-moving-piece{animation:none!important}.chessimals-moving-piece{transform:translate(calc(var(--to-col) * 100%),calc(var(--to-row) * 100%))}}\n"] }]
64874
65236
  }], ctorParameters: () => [], propDecorators: { boardAnchor: [{
64875
65237
  type: ViewChild,
64876
65238
  args: ['boardAnchor']
@@ -64878,6 +65240,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64878
65240
  type: Input
64879
65241
  }], miniGamesRoute: [{
64880
65242
  type: Input
65243
+ }], projectionMode: [{
65244
+ type: Input
64881
65245
  }] } });
64882
65246
 
64883
65247
  addIcons({ musicalNotesOutline, refreshOutline, trophyOutline });
@@ -65599,7 +65963,7 @@ class MiniGamesMenuComponent {
65599
65963
  }
65600
65964
  </div>
65601
65965
  </ng-template>
65602
- `, isInline: true, styles: [":host{display:block;--mini-games-panel: #fff8ea;--mini-games-border: rgba(84, 65, 44, .2);--mini-games-text: #2e251b;--mini-games-muted: #746654;--mini-games-primary: #c46f39;--mini-games-primary-rgb: 196, 111, 57;--mini-games-secondary: #2f93b3;--mini-games-secondary-rgb: 47, 147, 179;--mini-games-accent: #d8a640;--mini-games-accent-rgb: 216, 166, 64;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211b15;--mini-games-border: rgba(255, 242, 210, .16);--mini-games-text: #fff1d1;--mini-games-muted: rgba(255, 239, 206, .72);--mini-games-primary: #e28b52;--mini-games-primary-rgb: 226, 139, 82;--mini-games-secondary: #5cb2c9;--mini-games-secondary-rgb: 92, 178, 201;--mini-games-accent: #efc96d;--mini-games-accent-rgb: 239, 201, 109;--mini-games-focus: rgba(var(--mini-games-accent-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 18%,transparent),transparent 34%),var(--mini-games-panel);box-shadow:0 1.125rem 2.75rem #2e251b14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 20%,transparent),transparent 34%),var(--mini-games-panel);box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),var(--mini-games-panel);color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.16),transparent 32%),var(--mini-games-panel);color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:#fff;font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
65966
+ `, isInline: true, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
65603
65967
  }
65604
65968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MiniGamesMenuComponent, decorators: [{
65605
65969
  type: Component,
@@ -65710,7 +66074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
65710
66074
  }
65711
66075
  </div>
65712
66076
  </ng-template>
65713
- `, styles: [":host{display:block;--mini-games-panel: #fff8ea;--mini-games-border: rgba(84, 65, 44, .2);--mini-games-text: #2e251b;--mini-games-muted: #746654;--mini-games-primary: #c46f39;--mini-games-primary-rgb: 196, 111, 57;--mini-games-secondary: #2f93b3;--mini-games-secondary-rgb: 47, 147, 179;--mini-games-accent: #d8a640;--mini-games-accent-rgb: 216, 166, 64;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211b15;--mini-games-border: rgba(255, 242, 210, .16);--mini-games-text: #fff1d1;--mini-games-muted: rgba(255, 239, 206, .72);--mini-games-primary: #e28b52;--mini-games-primary-rgb: 226, 139, 82;--mini-games-secondary: #5cb2c9;--mini-games-secondary-rgb: 92, 178, 201;--mini-games-accent: #efc96d;--mini-games-accent-rgb: 239, 201, 109;--mini-games-focus: rgba(var(--mini-games-accent-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 18%,transparent),transparent 34%),var(--mini-games-panel);box-shadow:0 1.125rem 2.75rem #2e251b14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 20%,transparent),transparent 34%),var(--mini-games-panel);box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),var(--mini-games-panel);color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.16),transparent 32%),var(--mini-games-panel);color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:#fff;font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"] }]
66077
+ `, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"] }]
65714
66078
  }], ctorParameters: () => [], propDecorators: { games: [{
65715
66079
  type: Input
65716
66080
  }], asModal: [{
@@ -74985,113 +75349,6 @@ function provideSplashScreen(config = {}) {
74985
75349
  * });
74986
75350
  */
74987
75351
 
74988
- /**
74989
- * HapticsService — feedback háptico reutilizable cross-app.
74990
- *
74991
- * Estrategia de dos niveles, best-effort (ningún método lanza):
74992
- *
74993
- * 1. **Nativo (preferido)** — usa `@capacitor/haptics` vía dynamic import. Es un
74994
- * **peer dep OPCIONAL**: instalalo en la app consumer para haptics nativos en
74995
- * iOS/Android (`npm i @capacitor/haptics`, misma major que `@capacitor/core`).
74996
- * Si no está instalado, el import falla silenciosamente y se cae al fallback.
74997
- * 2. **Fallback web/PWA** — `navigator.vibrate(...)` con patrones equivalentes.
74998
- * SSR-safe (chequea `typeof navigator`). En iOS Safari `navigator.vibrate`
74999
- * no existe / se ignora — es **esperado**: no hay vibración en web iOS, solo
75000
- * con el plugin nativo de Capacitor.
75001
- *
75002
- * Mismo patrón de dynamic-import de peer dep opcional que `SplashScreenService`.
75003
- *
75004
- * @example
75005
- * private haptics = inject(HapticsService);
75006
- * await this.haptics.success();
75007
- * await this.haptics.impact('light');
75008
- */
75009
- class HapticsService {
75010
- /** Feedback de éxito (operación completada). */
75011
- async success() {
75012
- try {
75013
- const m = await import('@capacitor/haptics');
75014
- await m.Haptics.notification({ type: m.NotificationType.Success });
75015
- }
75016
- catch {
75017
- this.vibrate(100);
75018
- }
75019
- }
75020
- /** Feedback de advertencia / estado esperado pero atípico. */
75021
- async warning() {
75022
- try {
75023
- const m = await import('@capacitor/haptics');
75024
- await m.Haptics.notification({ type: m.NotificationType.Warning });
75025
- }
75026
- catch {
75027
- this.vibrate([60, 40, 60]);
75028
- }
75029
- }
75030
- /** Feedback de error (operación fallida). */
75031
- async error() {
75032
- try {
75033
- const m = await import('@capacitor/haptics');
75034
- await m.Haptics.notification({ type: m.NotificationType.Error });
75035
- }
75036
- catch {
75037
- this.vibrate([80, 60, 80]);
75038
- }
75039
- }
75040
- /**
75041
- * Impacto físico (toque/golpe). Default `'medium'`.
75042
- *
75043
- * @param style intensidad del impacto.
75044
- */
75045
- async impact(style = 'medium') {
75046
- try {
75047
- const m = await import('@capacitor/haptics');
75048
- const map = {
75049
- light: m.ImpactStyle.Light,
75050
- medium: m.ImpactStyle.Medium,
75051
- heavy: m.ImpactStyle.Heavy,
75052
- };
75053
- await m.Haptics.impact({ style: map[style] });
75054
- }
75055
- catch {
75056
- const durations = {
75057
- light: 20,
75058
- medium: 40,
75059
- heavy: 60,
75060
- };
75061
- this.vibrate(durations[style]);
75062
- }
75063
- }
75064
- /** Tick sutil de selección (al recorrer opciones, cambiar de tab, etc.). */
75065
- async selection() {
75066
- try {
75067
- const m = await import('@capacitor/haptics');
75068
- await m.Haptics.selectionStart();
75069
- }
75070
- catch {
75071
- this.vibrate(10);
75072
- }
75073
- }
75074
- /**
75075
- * Fallback Vibration API. SSR-safe + feature-detect. Nunca lanza.
75076
- */
75077
- vibrate(pattern) {
75078
- try {
75079
- if (typeof navigator !== 'undefined' && 'vibrate' in navigator) {
75080
- navigator.vibrate(pattern);
75081
- }
75082
- }
75083
- catch {
75084
- // no-op — vibrate puede no estar disponible o estar bloqueado por el browser
75085
- }
75086
- }
75087
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
75088
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, providedIn: 'root' }); }
75089
- }
75090
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HapticsService, decorators: [{
75091
- type: Injectable,
75092
- args: [{ providedIn: 'root' }]
75093
- }] });
75094
-
75095
75352
  /**
75096
75353
  * Haptics Service
75097
75354
  *