valtech-components 4.0.413 → 4.0.415
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.
- package/esm2022/lib/components/organisms/mini-games/chessimals-game.component.mjs +789 -46
- package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +129 -1
- package/esm2022/lib/components/organisms/mini-games/retro-audio.service.mjs +64 -11
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +979 -56
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
- package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
- package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
- package/lib/components/molecules/load-more/load-more.component.d.ts +1 -1
- package/lib/components/molecules/operation-reference/operation-reference.component.d.ts +1 -1
- package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
- package/lib/components/organisms/article/article.component.d.ts +5 -5
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +62 -3
- package/lib/components/organisms/mini-games/retro-audio.service.d.ts +6 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/assets/games/chessimals/Game.mp3 +0 -0
- package/src/lib/assets/games/chessimals/bull.wav +0 -0
- package/src/lib/assets/games/chessimals/eagle-cry.wav +0 -0
- package/src/lib/assets/games/chessimals/kangaroo-jump.mp3 +0 -0
- package/src/lib/assets/games/chessimals/lion-roar.wav +0 -0
- package/src/lib/assets/games/chessimals/main-menu.mp3 +0 -0
- package/src/lib/assets/games/chessimals/tada.mp3 +0 -0
- package/src/lib/assets/games/chessimals/you-lose.mp3 +0 -0
|
@@ -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.
|
|
61
|
+
const VERSION = '4.0.415';
|
|
62
62
|
|
|
63
63
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
64
64
|
let isRefreshing = false;
|
|
@@ -62513,6 +62513,7 @@ const MINI_GAMES_I18N = {
|
|
|
62513
62513
|
chessimalsOnlineViewer: 'Esta partida ya tiene dos jugadores. Puedes mirar cómo avanza.',
|
|
62514
62514
|
chessimalsYourTurn: 'Tu turno',
|
|
62515
62515
|
chessimalsYourTurnBody: 'Toca uno de tus peones para ver sus movimientos y juega cuando estés listo.',
|
|
62516
|
+
chessimalsWaitingTurnLabel: 'Esperando turno',
|
|
62516
62517
|
chessimalsWaitingTurn: 'Espera a que juegue la otra persona.',
|
|
62517
62518
|
chessimalsRematch: 'Pedir revancha',
|
|
62518
62519
|
chessimalsAcceptRematch: 'Aceptar revancha',
|
|
@@ -62526,6 +62527,19 @@ const MINI_GAMES_I18N = {
|
|
|
62526
62527
|
chessimalsRematchRequestedToast: 'Revancha solicitada. Espera a que la otra persona acepte.',
|
|
62527
62528
|
chessimalsRematchAccepted: 'Revancha aceptada. Preparando la nueva partida.',
|
|
62528
62529
|
chessimalsOnlineError: 'No pudimos abrir la partida. Revisa el código o intenta nuevamente.',
|
|
62530
|
+
chessimalsOnlineInvalidCode: 'El código no tiene el formato esperado. Revisa el link o escribe el código completo.',
|
|
62531
|
+
chessimalsOnlineNotFound: 'No encontramos esa partida. Puede haber expirado o el código no existe.',
|
|
62532
|
+
chessimalsOnlineConnectedTitle: 'Conectado',
|
|
62533
|
+
chessimalsOnlineDisconnectedTitle: 'Sin conexión',
|
|
62534
|
+
chessimalsOnlineDisconnectedBody: 'Perdimos la sincronización con la partida. Revisa tu conexión e intenta abrirla nuevamente.',
|
|
62535
|
+
chessimalsOnlineSyncingTitle: 'Sincronizando',
|
|
62536
|
+
chessimalsOnlineSyncingBody: 'Estamos guardando y actualizando la partida online.',
|
|
62537
|
+
chessimalsOnlineExpiredTitle: 'Partida expirada',
|
|
62538
|
+
chessimalsOnlineExpiredBody: 'Esta partida ya expiró. Crea una nueva partida online para seguir jugando.',
|
|
62539
|
+
chessimalsOnlineFinishedTitle: 'Partida finalizada',
|
|
62540
|
+
chessimalsOnlineFinishedBody: 'Puedes revisar las jugadas o pedir revancha si ambos jugadores siguen disponibles.',
|
|
62541
|
+
chessimalsOnlinePendingTitle: 'Solicitud enviada',
|
|
62542
|
+
chessimalsOnlineSpectatorTitle: 'Modo observador',
|
|
62529
62543
|
chessimalsResumeSplashTitle: 'Retomando partida',
|
|
62530
62544
|
chessimalsResumeSplashBody: 'Estamos cargando el tablero y sincronizando el turno.',
|
|
62531
62545
|
chessimalsTurn: 'Turno',
|
|
@@ -62559,6 +62573,21 @@ const MINI_GAMES_I18N = {
|
|
|
62559
62573
|
chessimalsBotSprinterBody: 'Optimiza rutas de promoción.',
|
|
62560
62574
|
chessimalsBotSentinel: 'Centinela',
|
|
62561
62575
|
chessimalsBotSentinelBody: 'Defiende sólido y castiga errores.',
|
|
62576
|
+
chessimalsBotExplorerTendency: 'Tiende a variar rutas, probar el centro y cometer errores suaves.',
|
|
62577
|
+
chessimalsBotImpulsiveTendency: 'Tiende a capturar rápido, incluso cuando puede quedar expuesto.',
|
|
62578
|
+
chessimalsBotRunnerTendency: 'Tiende a avanzar hacia la promoción antes que defender.',
|
|
62579
|
+
chessimalsBotHunterTendency: 'Tiende a buscar capturas útiles y presión constante.',
|
|
62580
|
+
chessimalsBotGuardianTendency: 'Tiende a cuidar sus peones y reducir riesgos.',
|
|
62581
|
+
chessimalsBotJumperTendency: 'Tiende a activar poderes y encontrar rutas indirectas.',
|
|
62582
|
+
chessimalsBotStrategistTendency: 'Tiende a balancear avance, centro y seguridad.',
|
|
62583
|
+
chessimalsBotPredatorTendency: 'Tiende a forzar capturas y usar poderes agresivos.',
|
|
62584
|
+
chessimalsBotSprinterTendency: 'Tiende a encontrar caminos rápidos de promoción.',
|
|
62585
|
+
chessimalsBotSentinelTendency: 'Tiende a defender sólido y castigar errores.',
|
|
62586
|
+
chessimalsBotReportTitle: 'Reporte del bot',
|
|
62587
|
+
chessimalsBotReportVs: 'Contra {bot}',
|
|
62588
|
+
chessimalsBotReportBody: '{outcome}. Hizo {captures} capturas y usó {powers} poderes. {style}',
|
|
62589
|
+
chessimalsBotReportOutcomeWon: 'El bot ganó',
|
|
62590
|
+
chessimalsBotReportOutcomeLost: 'El bot perdió',
|
|
62562
62591
|
chessimalsBotThinkingTitle: 'Chessibot está pensando',
|
|
62563
62592
|
chessimalsBotThinkingBody: 'El bot mueve las negras. Espera un momento para continuar.',
|
|
62564
62593
|
chessimalsBotYourTurnBody: 'Juegas con blancas. Toca uno de tus peones para ver sus movimientos.',
|
|
@@ -62588,6 +62617,26 @@ const MINI_GAMES_I18N = {
|
|
|
62588
62617
|
chessimalsMusicVolume: 'Volumen de música',
|
|
62589
62618
|
chessimalsSfxEnabled: 'Sonidos',
|
|
62590
62619
|
chessimalsSfxVolume: 'Volumen de sonidos',
|
|
62620
|
+
chessimalsTutorialStart: 'Tutorial jugable',
|
|
62621
|
+
chessimalsTutorialExit: 'Salir del tutorial',
|
|
62622
|
+
chessimalsTutorialProgress: 'Paso {step} de {total}',
|
|
62623
|
+
chessimalsTutorialCompleteProgress: 'Tutorial completo',
|
|
62624
|
+
chessimalsTutorialStep1Title: 'Mueve tu primer peón',
|
|
62625
|
+
chessimalsTutorialStep1Body: 'Toca el peón blanco de la columna B y avanza una casilla hacia arriba.',
|
|
62626
|
+
chessimalsTutorialStep2Title: 'El rival también avanza',
|
|
62627
|
+
chessimalsTutorialStep2Body: 'Toca el peón negro de la columna C y muévelo una casilla hacia abajo.',
|
|
62628
|
+
chessimalsTutorialStep3Title: 'Captura en diagonal',
|
|
62629
|
+
chessimalsTutorialStep3Body: 'Selecciona tu peón blanco y captura el peón negro marcado en diagonal.',
|
|
62630
|
+
chessimalsTutorialStep4Title: 'Devuelve el turno',
|
|
62631
|
+
chessimalsTutorialStep4Body: 'Mueve el peón negro de la columna F una casilla hacia abajo para continuar.',
|
|
62632
|
+
chessimalsTutorialStep5Title: 'Usa el poder Canguro',
|
|
62633
|
+
chessimalsTutorialStep5Body: 'Selecciona la carta Canguro y salta en L para capturar el peón negro.',
|
|
62634
|
+
chessimalsTutorialStep6Title: 'Prepara la llegada',
|
|
62635
|
+
chessimalsTutorialStep6Body: 'Mueve el último peón negro hacia abajo. Después tendrás camino para ganar.',
|
|
62636
|
+
chessimalsTutorialStep7Title: 'Llega a la última fila',
|
|
62637
|
+
chessimalsTutorialStep7Body: 'Avanza tu peón blanco a la primera fila para terminar la partida.',
|
|
62638
|
+
chessimalsTutorialDoneTitle: 'Ya conoces lo esencial',
|
|
62639
|
+
chessimalsTutorialDoneBody: 'Completaste movimiento, captura, poderes y victoria. Puedes reiniciar el tutorial o volver al menú.',
|
|
62591
62640
|
chessimalsResign: 'Rendirse',
|
|
62592
62641
|
chessimalsChangeMode: 'Cambiar modo',
|
|
62593
62642
|
chessimalsChangeGame: 'Cambiar juego',
|
|
@@ -62606,11 +62655,26 @@ const MINI_GAMES_I18N = {
|
|
|
62606
62655
|
chessimalsFinishedChip: 'Partida terminada',
|
|
62607
62656
|
chessimalsGameOver: 'Fin de la partida',
|
|
62608
62657
|
chessimalsMovesSummary: '{moves} jugadas',
|
|
62658
|
+
chessimalsResultMoves: 'Jugadas',
|
|
62659
|
+
chessimalsResultCaptures: 'Capturas',
|
|
62660
|
+
chessimalsResultPowers: 'Poderes',
|
|
62661
|
+
chessimalsResultReason: 'Motivo',
|
|
62662
|
+
chessimalsResultPowersUsed: 'Poderes usados: {powers}.',
|
|
62663
|
+
chessimalsResultNoPowers: 'ninguno',
|
|
62664
|
+
chessimalsSeriesTitle: 'Serie',
|
|
62665
|
+
chessimalsSeriesScore: 'Tú {mine} · {player} {rival}',
|
|
62666
|
+
chessimalsSeriesLastWinner: 'Última partida: ganó {player}.',
|
|
62667
|
+
chessimalsYou: 'tú',
|
|
62609
62668
|
chessimalsReplayTitle: 'Revisar jugadas',
|
|
62610
62669
|
chessimalsReplayStart: 'Posición inicial',
|
|
62611
62670
|
chessimalsReplayMove: 'Jugada {move} de {total}',
|
|
62612
62671
|
chessimalsReplayPrevious: 'Anterior',
|
|
62613
62672
|
chessimalsReplayNext: 'Siguiente',
|
|
62673
|
+
chessimalsAbout: 'Acerca de',
|
|
62674
|
+
chessimalsAboutTitle: 'Acerca de Chessimals',
|
|
62675
|
+
chessimalsAboutSubtitle: 'Juego de estrategia por turnos',
|
|
62676
|
+
chessimalsAboutBody: 'Chessimals mezcla el avance táctico del ajedrez con poderes de animales de un solo uso. Avanza tus peones, captura al rival y usa tus cartas en el momento preciso para ganar.',
|
|
62677
|
+
chessimalsAboutLibVersion: 'Versión de la lib',
|
|
62614
62678
|
chessimalsWinTitle: 'Gana {player}',
|
|
62615
62679
|
chessimalsWinPromotion: 'Un peón llegó a la última fila con un paso normal.',
|
|
62616
62680
|
chessimalsWinElimination: 'No quedan peones rivales en el tablero.',
|
|
@@ -62781,6 +62845,7 @@ const MINI_GAMES_I18N = {
|
|
|
62781
62845
|
chessimalsOnlineViewer: 'This game already has two players. You can watch it play out.',
|
|
62782
62846
|
chessimalsYourTurn: 'Your turn',
|
|
62783
62847
|
chessimalsYourTurnBody: 'Tap one of your pawns to see its moves and play when you are ready.',
|
|
62848
|
+
chessimalsWaitingTurnLabel: 'Waiting turn',
|
|
62784
62849
|
chessimalsWaitingTurn: 'Wait for the other player to move.',
|
|
62785
62850
|
chessimalsRematch: 'Request rematch',
|
|
62786
62851
|
chessimalsAcceptRematch: 'Accept rematch',
|
|
@@ -62794,6 +62859,19 @@ const MINI_GAMES_I18N = {
|
|
|
62794
62859
|
chessimalsRematchRequestedToast: 'Rematch requested. Wait for the other player to accept.',
|
|
62795
62860
|
chessimalsRematchAccepted: 'Rematch accepted. Preparing the new game.',
|
|
62796
62861
|
chessimalsOnlineError: 'We could not open this game. Check the code or try again.',
|
|
62862
|
+
chessimalsOnlineInvalidCode: 'The code does not match the expected format. Check the link or enter the full code.',
|
|
62863
|
+
chessimalsOnlineNotFound: 'We could not find that game. It may have expired or the code does not exist.',
|
|
62864
|
+
chessimalsOnlineConnectedTitle: 'Connected',
|
|
62865
|
+
chessimalsOnlineDisconnectedTitle: 'Offline',
|
|
62866
|
+
chessimalsOnlineDisconnectedBody: 'We lost sync with the game. Check your connection and try opening it again.',
|
|
62867
|
+
chessimalsOnlineSyncingTitle: 'Syncing',
|
|
62868
|
+
chessimalsOnlineSyncingBody: 'Saving and updating the online game.',
|
|
62869
|
+
chessimalsOnlineExpiredTitle: 'Game expired',
|
|
62870
|
+
chessimalsOnlineExpiredBody: 'This game has expired. Create a new online game to keep playing.',
|
|
62871
|
+
chessimalsOnlineFinishedTitle: 'Game finished',
|
|
62872
|
+
chessimalsOnlineFinishedBody: 'You can review moves or request a rematch if both players are still available.',
|
|
62873
|
+
chessimalsOnlinePendingTitle: 'Request sent',
|
|
62874
|
+
chessimalsOnlineSpectatorTitle: 'Spectator mode',
|
|
62797
62875
|
chessimalsResumeSplashTitle: 'Resuming game',
|
|
62798
62876
|
chessimalsResumeSplashBody: 'Loading the board and syncing the turn.',
|
|
62799
62877
|
chessimalsTurn: 'Turn',
|
|
@@ -62827,6 +62905,21 @@ const MINI_GAMES_I18N = {
|
|
|
62827
62905
|
chessimalsBotSprinterBody: 'Optimizes promotion routes.',
|
|
62828
62906
|
chessimalsBotSentinel: 'Sentinel',
|
|
62829
62907
|
chessimalsBotSentinelBody: 'Defends solidly and punishes mistakes.',
|
|
62908
|
+
chessimalsBotExplorerTendency: 'Tends to vary routes, test the center, and make soft mistakes.',
|
|
62909
|
+
chessimalsBotImpulsiveTendency: 'Tends to capture quickly, even when it can become exposed.',
|
|
62910
|
+
chessimalsBotRunnerTendency: 'Tends to push toward promotion before defending.',
|
|
62911
|
+
chessimalsBotHunterTendency: 'Tends to seek useful captures and steady pressure.',
|
|
62912
|
+
chessimalsBotGuardianTendency: 'Tends to protect pawns and reduce risk.',
|
|
62913
|
+
chessimalsBotJumperTendency: 'Tends to trigger powers and find indirect routes.',
|
|
62914
|
+
chessimalsBotStrategistTendency: 'Tends to balance progress, center control, and safety.',
|
|
62915
|
+
chessimalsBotPredatorTendency: 'Tends to force captures and use aggressive powers.',
|
|
62916
|
+
chessimalsBotSprinterTendency: 'Tends to find fast promotion paths.',
|
|
62917
|
+
chessimalsBotSentinelTendency: 'Tends to defend solidly and punish mistakes.',
|
|
62918
|
+
chessimalsBotReportTitle: 'Bot report',
|
|
62919
|
+
chessimalsBotReportVs: 'Against {bot}',
|
|
62920
|
+
chessimalsBotReportBody: '{outcome}. It made {captures} captures and used {powers} powers. {style}',
|
|
62921
|
+
chessimalsBotReportOutcomeWon: 'The bot won',
|
|
62922
|
+
chessimalsBotReportOutcomeLost: 'The bot lost',
|
|
62830
62923
|
chessimalsBotThinkingTitle: 'Chessibot is thinking',
|
|
62831
62924
|
chessimalsBotThinkingBody: 'The bot is moving black. Wait a moment to continue.',
|
|
62832
62925
|
chessimalsBotYourTurnBody: 'You play white. Tap one of your pawns to see its moves.',
|
|
@@ -62856,6 +62949,26 @@ const MINI_GAMES_I18N = {
|
|
|
62856
62949
|
chessimalsMusicVolume: 'Music volume',
|
|
62857
62950
|
chessimalsSfxEnabled: 'Sounds',
|
|
62858
62951
|
chessimalsSfxVolume: 'Sound volume',
|
|
62952
|
+
chessimalsTutorialStart: 'Playable tutorial',
|
|
62953
|
+
chessimalsTutorialExit: 'Exit tutorial',
|
|
62954
|
+
chessimalsTutorialProgress: 'Step {step} of {total}',
|
|
62955
|
+
chessimalsTutorialCompleteProgress: 'Tutorial complete',
|
|
62956
|
+
chessimalsTutorialStep1Title: 'Move your first pawn',
|
|
62957
|
+
chessimalsTutorialStep1Body: 'Tap the white pawn on file B and move it one square upward.',
|
|
62958
|
+
chessimalsTutorialStep2Title: 'The rival advances too',
|
|
62959
|
+
chessimalsTutorialStep2Body: 'Tap the black pawn on file C and move it one square downward.',
|
|
62960
|
+
chessimalsTutorialStep3Title: 'Capture diagonally',
|
|
62961
|
+
chessimalsTutorialStep3Body: 'Select your white pawn and capture the marked black pawn diagonally.',
|
|
62962
|
+
chessimalsTutorialStep4Title: 'Return the turn',
|
|
62963
|
+
chessimalsTutorialStep4Body: 'Move the black pawn on file F one square downward to continue.',
|
|
62964
|
+
chessimalsTutorialStep5Title: 'Use the Kangaroo power',
|
|
62965
|
+
chessimalsTutorialStep5Body: 'Select the Kangaroo card and jump in an L shape to capture the black pawn.',
|
|
62966
|
+
chessimalsTutorialStep6Title: 'Prepare the finish',
|
|
62967
|
+
chessimalsTutorialStep6Body: 'Move the last black pawn downward. Then your path to win is open.',
|
|
62968
|
+
chessimalsTutorialStep7Title: 'Reach the last row',
|
|
62969
|
+
chessimalsTutorialStep7Body: 'Move your white pawn to the first row to finish the game.',
|
|
62970
|
+
chessimalsTutorialDoneTitle: 'You know the essentials',
|
|
62971
|
+
chessimalsTutorialDoneBody: 'You completed movement, capture, powers, and victory. You can restart the tutorial or return to the menu.',
|
|
62859
62972
|
chessimalsResign: 'Resign',
|
|
62860
62973
|
chessimalsChangeMode: 'Change mode',
|
|
62861
62974
|
chessimalsChangeGame: 'Change game',
|
|
@@ -62874,11 +62987,26 @@ const MINI_GAMES_I18N = {
|
|
|
62874
62987
|
chessimalsFinishedChip: 'Game finished',
|
|
62875
62988
|
chessimalsGameOver: 'Game over',
|
|
62876
62989
|
chessimalsMovesSummary: '{moves} moves',
|
|
62990
|
+
chessimalsResultMoves: 'Moves',
|
|
62991
|
+
chessimalsResultCaptures: 'Captures',
|
|
62992
|
+
chessimalsResultPowers: 'Powers',
|
|
62993
|
+
chessimalsResultReason: 'Reason',
|
|
62994
|
+
chessimalsResultPowersUsed: 'Powers used: {powers}.',
|
|
62995
|
+
chessimalsResultNoPowers: 'none',
|
|
62996
|
+
chessimalsSeriesTitle: 'Series',
|
|
62997
|
+
chessimalsSeriesScore: 'You {mine} · {player} {rival}',
|
|
62998
|
+
chessimalsSeriesLastWinner: 'Last game: {player} won.',
|
|
62999
|
+
chessimalsYou: 'you',
|
|
62877
63000
|
chessimalsReplayTitle: 'Review moves',
|
|
62878
63001
|
chessimalsReplayStart: 'Starting position',
|
|
62879
63002
|
chessimalsReplayMove: 'Move {move} of {total}',
|
|
62880
63003
|
chessimalsReplayPrevious: 'Previous',
|
|
62881
63004
|
chessimalsReplayNext: 'Next',
|
|
63005
|
+
chessimalsAbout: 'About',
|
|
63006
|
+
chessimalsAboutTitle: 'About Chessimals',
|
|
63007
|
+
chessimalsAboutSubtitle: 'Turn-based strategy game',
|
|
63008
|
+
chessimalsAboutBody: 'Chessimals blends chess-like pawn tactics with one-use animal powers. Advance your pawns, capture your rival, and play your cards at the right moment to win.',
|
|
63009
|
+
chessimalsAboutLibVersion: 'Library version',
|
|
62882
63010
|
chessimalsWinTitle: '{player} wins',
|
|
62883
63011
|
chessimalsWinPromotion: 'A pawn reached the final row with a normal step.',
|
|
62884
63012
|
chessimalsWinElimination: 'No rival pawns remain on the board.',
|
|
@@ -62890,10 +63018,10 @@ const MINI_GAMES_I18N = {
|
|
|
62890
63018
|
};
|
|
62891
63019
|
|
|
62892
63020
|
const CHESSIMALS_POWER_SAMPLES = {
|
|
62893
|
-
eagle: { src: 'assets/games/chessimals/eagle-cry.wav', volume: 0.
|
|
62894
|
-
bull: { src: 'assets/games/chessimals/bull.wav', volume: 0.
|
|
62895
|
-
kangaroo: { src: 'assets/games/chessimals/kangaroo-jump.mp3', volume: 0.
|
|
62896
|
-
lion: { src: 'assets/games/chessimals/lion-roar.wav', volume: 0.
|
|
63021
|
+
eagle: { src: 'assets/games/chessimals/eagle-cry.wav', volume: 0.62 },
|
|
63022
|
+
bull: { src: 'assets/games/chessimals/bull.wav', volume: 0.9 },
|
|
63023
|
+
kangaroo: { src: 'assets/games/chessimals/kangaroo-jump.mp3', volume: 0.82 },
|
|
63024
|
+
lion: { src: 'assets/games/chessimals/lion-roar.wav', volume: 0.82 },
|
|
62897
63025
|
};
|
|
62898
63026
|
const CHESSIMALS_OUTCOME_SAMPLES = {
|
|
62899
63027
|
victory: { src: 'assets/games/chessimals/tada.mp3', volume: 0.72 },
|
|
@@ -62901,11 +63029,11 @@ const CHESSIMALS_OUTCOME_SAMPLES = {
|
|
|
62901
63029
|
};
|
|
62902
63030
|
const CHESSIMALS_MENU_MUSIC = {
|
|
62903
63031
|
src: 'assets/games/chessimals/main-menu.mp3',
|
|
62904
|
-
volume: 0.
|
|
63032
|
+
volume: 0.32,
|
|
62905
63033
|
};
|
|
62906
63034
|
const CHESSIMALS_GAME_MUSIC = {
|
|
62907
63035
|
src: 'assets/games/chessimals/Game.mp3',
|
|
62908
|
-
volume: 0.
|
|
63036
|
+
volume: 0.32,
|
|
62909
63037
|
};
|
|
62910
63038
|
class RetroAudioService {
|
|
62911
63039
|
constructor() {
|
|
@@ -62989,6 +63117,7 @@ class RetroAudioService {
|
|
|
62989
63117
|
const volume = this.normalizeVolume(value);
|
|
62990
63118
|
this.sfxVolume.set(volume);
|
|
62991
63119
|
this.writeSetting('val-mini-games-sfx-volume', `${volume}`);
|
|
63120
|
+
this.applyActiveSampleVolumes();
|
|
62992
63121
|
}
|
|
62993
63122
|
async startMenuMusic() {
|
|
62994
63123
|
await this.startMusic('menu');
|
|
@@ -63211,7 +63340,8 @@ class RetroAudioService {
|
|
|
63211
63340
|
const cached = this.sampleCache.get(sample.src);
|
|
63212
63341
|
const audio = cached ? cached.cloneNode(true) : new Audio(sample.src);
|
|
63213
63342
|
audio.preload = 'auto';
|
|
63214
|
-
audio.
|
|
63343
|
+
audio.dataset['baseVolume'] = `${sample.volume}`;
|
|
63344
|
+
audio.volume = this.sampleVolume(sample);
|
|
63215
63345
|
this.activeSamples.add(audio);
|
|
63216
63346
|
const release = () => this.activeSamples.delete(audio);
|
|
63217
63347
|
audio.addEventListener('ended', release, { once: true });
|
|
@@ -63244,7 +63374,7 @@ class RetroAudioService {
|
|
|
63244
63374
|
const source = ctx.createBufferSource();
|
|
63245
63375
|
const gain = ctx.createGain();
|
|
63246
63376
|
source.buffer = buffer;
|
|
63247
|
-
gain.gain.setValueAtTime(
|
|
63377
|
+
gain.gain.setValueAtTime(this.sampleVolume(sample), ctx.currentTime);
|
|
63248
63378
|
source.connect(gain);
|
|
63249
63379
|
gain.connect(this.masterGain ?? ctx.destination);
|
|
63250
63380
|
source.start(ctx.currentTime);
|
|
@@ -63474,9 +63604,9 @@ class RetroAudioService {
|
|
|
63474
63604
|
const audio = new Audio(config.src);
|
|
63475
63605
|
audio.loop = true;
|
|
63476
63606
|
audio.preload = 'auto';
|
|
63477
|
-
audio.volume = this.sampleMusicVolume(config);
|
|
63478
63607
|
this.sampleMusic = audio;
|
|
63479
63608
|
this.sampleMusicConfig = config;
|
|
63609
|
+
await this.connectSampleMusic(audio, config);
|
|
63480
63610
|
try {
|
|
63481
63611
|
await audio.play();
|
|
63482
63612
|
}
|
|
@@ -63488,6 +63618,7 @@ class RetroAudioService {
|
|
|
63488
63618
|
const music = this.sampleMusic;
|
|
63489
63619
|
this.sampleMusic = undefined;
|
|
63490
63620
|
this.sampleMusicConfig = undefined;
|
|
63621
|
+
this.disconnectSampleMusicGraph();
|
|
63491
63622
|
if (!music)
|
|
63492
63623
|
return;
|
|
63493
63624
|
music.pause();
|
|
@@ -63496,11 +63627,61 @@ class RetroAudioService {
|
|
|
63496
63627
|
applySampleMusicVolume() {
|
|
63497
63628
|
if (!this.sampleMusic || !this.sampleMusicConfig)
|
|
63498
63629
|
return;
|
|
63499
|
-
|
|
63630
|
+
const volume = this.sampleMusicVolume(this.sampleMusicConfig);
|
|
63631
|
+
if (this.sampleMusicGain && this.context) {
|
|
63632
|
+
this.sampleMusicGain.gain.setTargetAtTime(volume, this.context.currentTime, 0.025);
|
|
63633
|
+
return;
|
|
63634
|
+
}
|
|
63635
|
+
this.sampleMusic.volume = volume;
|
|
63500
63636
|
}
|
|
63501
63637
|
sampleMusicVolume(config) {
|
|
63502
63638
|
return Math.min(1, Math.max(0, config.volume * this.musicVolume()));
|
|
63503
63639
|
}
|
|
63640
|
+
sampleVolume(sample) {
|
|
63641
|
+
return Math.min(1, Math.max(0, sample.volume * this.sfxVolume()));
|
|
63642
|
+
}
|
|
63643
|
+
applyActiveSampleVolumes() {
|
|
63644
|
+
for (const audio of this.activeSamples) {
|
|
63645
|
+
const baseVolume = Number(audio.dataset['baseVolume'] ?? '1');
|
|
63646
|
+
audio.volume = Math.min(1, Math.max(0, baseVolume * this.sfxVolume()));
|
|
63647
|
+
}
|
|
63648
|
+
}
|
|
63649
|
+
async connectSampleMusic(audio, config) {
|
|
63650
|
+
const volume = this.sampleMusicVolume(config);
|
|
63651
|
+
audio.volume = volume;
|
|
63652
|
+
try {
|
|
63653
|
+
const ctx = await this.wakeAudio();
|
|
63654
|
+
const source = ctx.createMediaElementSource(audio);
|
|
63655
|
+
const gain = ctx.createGain();
|
|
63656
|
+
gain.gain.setValueAtTime(volume, ctx.currentTime);
|
|
63657
|
+
source.connect(gain);
|
|
63658
|
+
gain.connect(this.masterGain ?? ctx.destination);
|
|
63659
|
+
this.sampleMusicSource = source;
|
|
63660
|
+
this.sampleMusicGain = gain;
|
|
63661
|
+
audio.volume = 1;
|
|
63662
|
+
}
|
|
63663
|
+
catch {
|
|
63664
|
+
audio.volume = volume;
|
|
63665
|
+
this.sampleMusicSource = undefined;
|
|
63666
|
+
this.sampleMusicGain = undefined;
|
|
63667
|
+
}
|
|
63668
|
+
}
|
|
63669
|
+
disconnectSampleMusicGraph() {
|
|
63670
|
+
try {
|
|
63671
|
+
this.sampleMusicSource?.disconnect();
|
|
63672
|
+
}
|
|
63673
|
+
catch {
|
|
63674
|
+
// El nodo puede estar desconectado si el navegador libero la pista.
|
|
63675
|
+
}
|
|
63676
|
+
try {
|
|
63677
|
+
this.sampleMusicGain?.disconnect();
|
|
63678
|
+
}
|
|
63679
|
+
catch {
|
|
63680
|
+
// El nodo puede estar desconectado si el navegador libero la pista.
|
|
63681
|
+
}
|
|
63682
|
+
this.sampleMusicSource = undefined;
|
|
63683
|
+
this.sampleMusicGain = undefined;
|
|
63684
|
+
}
|
|
63504
63685
|
async tone(freq, duration = 0.1, type = 'square', gainValue = 0.04) {
|
|
63505
63686
|
if (!this.canPlaySfx())
|
|
63506
63687
|
return;
|
|
@@ -63752,6 +63933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
63752
63933
|
const CHESSIMALS_MOVE_ANIMATION_MS = 360;
|
|
63753
63934
|
const CHESSIMALS_BOT_THINKING_MS = 620;
|
|
63754
63935
|
const CHESSIMALS_BOT_COLOR = 'black';
|
|
63936
|
+
const CHESSIMALS_TUTORIAL_STEPS = 7;
|
|
63755
63937
|
const ANIMALS = [
|
|
63756
63938
|
{ type: 'eagle', assetSrc: 'assets/games/chessimals/eagle.jpg', tone: 659.25 },
|
|
63757
63939
|
{ type: 'bull', assetSrc: 'assets/games/chessimals/bull.jpg', tone: 261.63 },
|
|
@@ -63784,16 +63966,20 @@ class ChessimalsGameComponent {
|
|
|
63784
63966
|
this.botDifficulties = ['easy', 'normal', 'hard'];
|
|
63785
63967
|
this.botProfiles = CHESSIMALS_BOT_PROFILES;
|
|
63786
63968
|
this.animals = ANIMALS;
|
|
63969
|
+
this.valtechComponentsVersion = VERSION;
|
|
63787
63970
|
this.screen = signal('home');
|
|
63788
63971
|
this.selectedBoardSize = signal(6);
|
|
63789
63972
|
this.selectedLocalMode = signal('one-device');
|
|
63790
63973
|
this.selectedBotDifficulty = signal('normal');
|
|
63791
63974
|
this.selectedBotProfileId = signal('hunter');
|
|
63975
|
+
this.gameBotProfileId = signal(undefined);
|
|
63792
63976
|
this.game = signal(createChessimalsGame(6));
|
|
63793
63977
|
this.selectedPieceId = signal(undefined);
|
|
63794
63978
|
this.selectedAnimal = signal(undefined);
|
|
63795
63979
|
this.isRulesModalOpen = signal(false);
|
|
63796
63980
|
this.isSettingsModalOpen = signal(false);
|
|
63981
|
+
this.isAboutModalOpen = signal(false);
|
|
63982
|
+
this.tutorialMode = signal(false);
|
|
63797
63983
|
this.isBoardOrienting = signal(false);
|
|
63798
63984
|
this.movingPiece = signal(undefined);
|
|
63799
63985
|
this.moveEffect = signal(undefined);
|
|
@@ -63833,6 +64019,7 @@ class ChessimalsGameComponent {
|
|
|
63833
64019
|
this.resumeSplashVisible = signal(false);
|
|
63834
64020
|
this.rematchLoading = signal(false);
|
|
63835
64021
|
this.moveSyncing = signal(false);
|
|
64022
|
+
this.onlineConnectionState = signal('idle');
|
|
63836
64023
|
this.reviewIndex = signal(undefined);
|
|
63837
64024
|
this.loggedInUser = this.auth.user;
|
|
63838
64025
|
this.localPlayerProfile = computed(() => this.playerProfiles.activeProfile());
|
|
@@ -63901,6 +64088,11 @@ class ChessimalsGameComponent {
|
|
|
63901
64088
|
pinFormatter: (value) => `${value}%`,
|
|
63902
64089
|
}));
|
|
63903
64090
|
this.availableBotProfiles = computed(() => this.botProfiles.filter((profile) => profile.difficulty === this.selectedBotDifficulty()));
|
|
64091
|
+
this.selectedBotProfile = computed(() => this.botProfiles.find((profile) => profile.id === this.selectedBotProfileId()));
|
|
64092
|
+
this.gameBotProfile = computed(() => {
|
|
64093
|
+
const profileId = this.gameBotProfileId();
|
|
64094
|
+
return profileId ? this.botProfiles.find((profile) => profile.id === profileId) : undefined;
|
|
64095
|
+
});
|
|
63904
64096
|
this.miniGamesRoute = '/mini-games';
|
|
63905
64097
|
this.projectionMode = false;
|
|
63906
64098
|
this.replayEntries = computed(() => this.game().moveHistory ?? []);
|
|
@@ -63943,10 +64135,35 @@ class ChessimalsGameComponent {
|
|
|
63943
64135
|
return [];
|
|
63944
64136
|
if (!this.canPlayCurrentTurn())
|
|
63945
64137
|
return [];
|
|
63946
|
-
|
|
64138
|
+
const moves = getChessimalsLegalMoves(this.game(), pieceId, this.selectedAnimal());
|
|
64139
|
+
const expected = this.tutorialExpectedMove();
|
|
64140
|
+
if (!expected)
|
|
64141
|
+
return moves;
|
|
64142
|
+
return moves.filter((move) => move.pieceId === expected.pieceId &&
|
|
64143
|
+
positionKey(move.to) === positionKey(expected.to) &&
|
|
64144
|
+
(move.animal ?? undefined) === (expected.animal ?? undefined));
|
|
63947
64145
|
});
|
|
63948
64146
|
this.legalMoveKeys = computed(() => new Set(this.legalMoves().map((move) => positionKey(move.to))));
|
|
63949
64147
|
this.captureMoveKeys = computed(() => new Set(this.legalMoves().filter((move) => !!move.capturesPieceId).map((move) => positionKey(move.to))));
|
|
64148
|
+
this.captureReadyPieceIds = computed(() => {
|
|
64149
|
+
const game = this.game();
|
|
64150
|
+
if (this.activeReviewIndex() !== undefined || game.status !== 'in_progress')
|
|
64151
|
+
return new Set();
|
|
64152
|
+
const moves = this.basicMovesForColor(game, game.currentTurn).filter((move) => !!move.capturesPieceId);
|
|
64153
|
+
return new Set(moves.map((move) => move.pieceId));
|
|
64154
|
+
});
|
|
64155
|
+
this.threatenedPieceIds = computed(() => {
|
|
64156
|
+
const game = this.game();
|
|
64157
|
+
if (this.activeReviewIndex() !== undefined || game.status !== 'in_progress')
|
|
64158
|
+
return new Set();
|
|
64159
|
+
const opponent = game.currentTurn === 'white' ? 'black' : 'white';
|
|
64160
|
+
const threatened = this.basicMovesForColor(game, opponent)
|
|
64161
|
+
.map((move) => move.capturesPieceId)
|
|
64162
|
+
.filter((pieceId) => !!pieceId);
|
|
64163
|
+
return new Set(threatened);
|
|
64164
|
+
});
|
|
64165
|
+
this.isActionableTurn = computed(() => this.game().status === 'in_progress' && this.canPlayCurrentTurn() && !this.botThinking() && !this.moveSyncing());
|
|
64166
|
+
this.isWaitingForTurn = computed(() => this.game().status === 'in_progress' && !this.isActionableTurn());
|
|
63950
64167
|
this.boardRows = computed(() => Array.from({ length: this.reviewGame().boardSize }, (_, index) => index));
|
|
63951
64168
|
this.boardCols = computed(() => Array.from({ length: this.reviewGame().boardSize }, (_, index) => index));
|
|
63952
64169
|
this.displayRows = computed(() => this.boardOrientationColor() === 'black' ? [...this.boardRows()].reverse() : this.boardRows());
|
|
@@ -63954,6 +64171,8 @@ class ChessimalsGameComponent {
|
|
|
63954
64171
|
this.boardOrientationColor = computed(() => {
|
|
63955
64172
|
const game = this.game();
|
|
63956
64173
|
const uid = this.onlineUid();
|
|
64174
|
+
if (this.tutorialMode())
|
|
64175
|
+
return 'white';
|
|
63957
64176
|
if (game.mode === 'online')
|
|
63958
64177
|
return uid ? this.online.participantSide(game, uid) ?? 'white' : 'white';
|
|
63959
64178
|
if (game.mode === 'local' && this.selectedLocalMode() === 'bot')
|
|
@@ -64019,6 +64238,59 @@ class ChessimalsGameComponent {
|
|
|
64019
64238
|
return this.t('chessimalsRematchRequestedAction');
|
|
64020
64239
|
return this.t('chessimalsRematch');
|
|
64021
64240
|
});
|
|
64241
|
+
this.shouldShowOnlineStatus = computed(() => !this.projectionMode && this.game().mode === 'online' && this.game().status !== 'waiting');
|
|
64242
|
+
this.onlineStatusTitle = computed(() => {
|
|
64243
|
+
const game = this.game();
|
|
64244
|
+
const role = this.onlineRole();
|
|
64245
|
+
if (this.onlineConnectionState() === 'connecting' || this.moveSyncing())
|
|
64246
|
+
return this.t('chessimalsOnlineSyncingTitle');
|
|
64247
|
+
if (this.onlineConnectionState() === 'error')
|
|
64248
|
+
return this.t('chessimalsOnlineDisconnectedTitle');
|
|
64249
|
+
if (game.status === 'expired')
|
|
64250
|
+
return this.t('chessimalsOnlineExpiredTitle');
|
|
64251
|
+
if (game.status === 'finished')
|
|
64252
|
+
return this.t('chessimalsOnlineFinishedTitle');
|
|
64253
|
+
if (role === 'pending')
|
|
64254
|
+
return this.t('chessimalsOnlinePendingTitle');
|
|
64255
|
+
if (role === 'spectator')
|
|
64256
|
+
return this.t('chessimalsOnlineSpectatorTitle');
|
|
64257
|
+
return this.t('chessimalsOnlineConnectedTitle');
|
|
64258
|
+
});
|
|
64259
|
+
this.onlineStatusBody = computed(() => {
|
|
64260
|
+
const game = this.game();
|
|
64261
|
+
const role = this.onlineRole();
|
|
64262
|
+
if (this.onlineConnectionState() === 'connecting' || this.moveSyncing())
|
|
64263
|
+
return this.t('chessimalsOnlineSyncingBody');
|
|
64264
|
+
if (this.onlineConnectionState() === 'error')
|
|
64265
|
+
return this.t('chessimalsOnlineDisconnectedBody');
|
|
64266
|
+
if (game.status === 'expired')
|
|
64267
|
+
return this.t('chessimalsOnlineExpiredBody');
|
|
64268
|
+
if (game.status === 'finished')
|
|
64269
|
+
return this.t('chessimalsOnlineFinishedBody');
|
|
64270
|
+
if (role === 'pending')
|
|
64271
|
+
return this.t('chessimalsLobbyGuestWaitingBody');
|
|
64272
|
+
if (role === 'spectator')
|
|
64273
|
+
return this.t('chessimalsOnlineViewer');
|
|
64274
|
+
if (this.onlineRole() === this.game().currentTurn)
|
|
64275
|
+
return this.t('chessimalsYourTurnBody');
|
|
64276
|
+
return this.t('chessimalsWaitingTurn');
|
|
64277
|
+
});
|
|
64278
|
+
this.tutorialStepIndex = computed(() => Math.min(this.game().moveCount, CHESSIMALS_TUTORIAL_STEPS));
|
|
64279
|
+
this.tutorialProgressLabel = computed(() => this.game().status === 'finished'
|
|
64280
|
+
? this.t('chessimalsTutorialCompleteProgress')
|
|
64281
|
+
: this.t('chessimalsTutorialProgress')
|
|
64282
|
+
.replace('{step}', String(this.tutorialStepIndex() + 1))
|
|
64283
|
+
.replace('{total}', String(CHESSIMALS_TUTORIAL_STEPS)));
|
|
64284
|
+
this.tutorialTitle = computed(() => {
|
|
64285
|
+
if (this.game().status === 'finished')
|
|
64286
|
+
return this.t('chessimalsTutorialDoneTitle');
|
|
64287
|
+
return this.t(`chessimalsTutorialStep${this.tutorialStepIndex() + 1}Title`);
|
|
64288
|
+
});
|
|
64289
|
+
this.tutorialBody = computed(() => {
|
|
64290
|
+
if (this.game().status === 'finished')
|
|
64291
|
+
return this.t('chessimalsTutorialDoneBody');
|
|
64292
|
+
return this.t(`chessimalsTutorialStep${this.tutorialStepIndex() + 1}Body`);
|
|
64293
|
+
});
|
|
64022
64294
|
this.currentTurnTitle = computed(() => this.t('chessimalsCurrentTurn').replace('{player}', this.playerLabel(this.game().currentTurn)));
|
|
64023
64295
|
this.winTitle = computed(() => this.t('chessimalsWinTitle').replace('{player}', this.winnerDisplayName()));
|
|
64024
64296
|
this.winBody = computed(() => {
|
|
@@ -64040,6 +64312,87 @@ class ChessimalsGameComponent {
|
|
|
64040
64312
|
return this.t(key);
|
|
64041
64313
|
});
|
|
64042
64314
|
this.movesSummary = computed(() => this.t('chessimalsMovesSummary').replace('{moves}', `${this.game().moveCount}`));
|
|
64315
|
+
this.resultCaptures = computed(() => this.replayEntries().filter((entry) => !!entry.move?.capturesPieceId).length);
|
|
64316
|
+
this.resultPowers = computed(() => this.replayEntries()
|
|
64317
|
+
.map((entry) => entry.move?.animal)
|
|
64318
|
+
.filter((animal) => !!animal));
|
|
64319
|
+
this.resultStats = computed(() => [
|
|
64320
|
+
{
|
|
64321
|
+
label: this.t('chessimalsResultMoves'),
|
|
64322
|
+
value: String(this.game().moveCount),
|
|
64323
|
+
},
|
|
64324
|
+
{
|
|
64325
|
+
label: this.t('chessimalsResultCaptures'),
|
|
64326
|
+
value: String(this.resultCaptures()),
|
|
64327
|
+
},
|
|
64328
|
+
{
|
|
64329
|
+
label: this.t('chessimalsResultPowers'),
|
|
64330
|
+
value: String(this.resultPowers().length),
|
|
64331
|
+
},
|
|
64332
|
+
{
|
|
64333
|
+
label: this.t('chessimalsResultReason'),
|
|
64334
|
+
value: this.winReasonLabel(),
|
|
64335
|
+
},
|
|
64336
|
+
]);
|
|
64337
|
+
this.resultPowersLabel = computed(() => {
|
|
64338
|
+
const powers = this.resultPowers();
|
|
64339
|
+
if (!powers.length)
|
|
64340
|
+
return this.t('chessimalsResultNoPowers');
|
|
64341
|
+
return powers.map((animal) => this.animalLabel(animal)).join(' · ');
|
|
64342
|
+
});
|
|
64343
|
+
this.shouldShowBotReport = computed(() => this.game().mode === 'local' &&
|
|
64344
|
+
this.game().status === 'finished' &&
|
|
64345
|
+
!this.tutorialMode() &&
|
|
64346
|
+
!!this.gameBotProfile());
|
|
64347
|
+
this.botReportTitle = computed(() => {
|
|
64348
|
+
const profile = this.gameBotProfile();
|
|
64349
|
+
return this.t('chessimalsBotReportVs').replace('{bot}', profile ? this.botProfileLabel(profile) : this.t('chessimalsBotMode'));
|
|
64350
|
+
});
|
|
64351
|
+
this.botReportBody = computed(() => {
|
|
64352
|
+
const profile = this.gameBotProfile();
|
|
64353
|
+
const botMoves = this.replayEntries().filter((entry) => entry.move?.pieceId.startsWith('B'));
|
|
64354
|
+
const captures = botMoves.filter((entry) => !!entry.move?.capturesPieceId).length;
|
|
64355
|
+
const powers = botMoves.filter((entry) => !!entry.move?.animal).length;
|
|
64356
|
+
const outcomeKey = this.game().winner === CHESSIMALS_BOT_COLOR
|
|
64357
|
+
? 'chessimalsBotReportOutcomeWon'
|
|
64358
|
+
: 'chessimalsBotReportOutcomeLost';
|
|
64359
|
+
return this.t('chessimalsBotReportBody')
|
|
64360
|
+
.replace('{outcome}', this.t(outcomeKey))
|
|
64361
|
+
.replace('{captures}', String(captures))
|
|
64362
|
+
.replace('{powers}', String(powers))
|
|
64363
|
+
.replace('{style}', profile ? this.botProfileTendency(profile) : '');
|
|
64364
|
+
});
|
|
64365
|
+
this.seriesGames = computed(() => {
|
|
64366
|
+
const opponentUid = this.currentOpponentUid();
|
|
64367
|
+
if (!opponentUid)
|
|
64368
|
+
return [];
|
|
64369
|
+
return this.onlineHistory().filter((entry) => entry.opponentUid === opponentUid && entry.status === 'finished');
|
|
64370
|
+
});
|
|
64371
|
+
this.seriesScore = computed(() => {
|
|
64372
|
+
const games = this.seriesGames();
|
|
64373
|
+
if (!games.length)
|
|
64374
|
+
return undefined;
|
|
64375
|
+
return {
|
|
64376
|
+
mine: games.filter((entry) => entry.outcome === 'won').length,
|
|
64377
|
+
rival: games.filter((entry) => entry.outcome === 'lost').length,
|
|
64378
|
+
total: games.length,
|
|
64379
|
+
};
|
|
64380
|
+
});
|
|
64381
|
+
this.seriesSummary = computed(() => {
|
|
64382
|
+
const score = this.seriesScore();
|
|
64383
|
+
if (!score || score.total < 2)
|
|
64384
|
+
return '';
|
|
64385
|
+
return this.t('chessimalsSeriesScore')
|
|
64386
|
+
.replace('{mine}', String(score.mine))
|
|
64387
|
+
.replace('{rival}', String(score.rival))
|
|
64388
|
+
.replace('{player}', this.rematchOpponentName());
|
|
64389
|
+
});
|
|
64390
|
+
this.lastSeriesWinnerLabel = computed(() => {
|
|
64391
|
+
const last = this.seriesGames()[0];
|
|
64392
|
+
if (!last)
|
|
64393
|
+
return '';
|
|
64394
|
+
return last.outcome === 'won' ? this.t('chessimalsYou') : last.opponentName || this.rematchOpponentName();
|
|
64395
|
+
});
|
|
64043
64396
|
this.confirmTitle = computed(() => {
|
|
64044
64397
|
const action = this.confirmAction();
|
|
64045
64398
|
if (action === 'restart')
|
|
@@ -64100,6 +64453,17 @@ class ChessimalsGameComponent {
|
|
|
64100
64453
|
token: 'close',
|
|
64101
64454
|
},
|
|
64102
64455
|
]);
|
|
64456
|
+
this.aboutActions = computed(() => [
|
|
64457
|
+
{
|
|
64458
|
+
text: this.t('close'),
|
|
64459
|
+
color: 'dark',
|
|
64460
|
+
state: 'ENABLED',
|
|
64461
|
+
fill: 'outline',
|
|
64462
|
+
shape: 'round',
|
|
64463
|
+
type: 'button',
|
|
64464
|
+
token: 'close',
|
|
64465
|
+
},
|
|
64466
|
+
]);
|
|
64103
64467
|
this.actionHint = computed(() => {
|
|
64104
64468
|
const pieceId = this.selectedPieceId();
|
|
64105
64469
|
if (!pieceId)
|
|
@@ -64183,6 +64547,9 @@ class ChessimalsGameComponent {
|
|
|
64183
64547
|
this.openedOnlineGameId = undefined;
|
|
64184
64548
|
this.openingOnlineGameId = undefined;
|
|
64185
64549
|
this.clearBotTurn();
|
|
64550
|
+
this.tutorialMode.set(false);
|
|
64551
|
+
this.onlineConnectionState.set('idle');
|
|
64552
|
+
this.gameBotProfileId.set(this.selectedLocalMode() === 'bot' ? this.selectedBotProfileId() : undefined);
|
|
64186
64553
|
this.audio.stopMusic();
|
|
64187
64554
|
this.game.set(createChessimalsGame(this.selectedBoardSize()));
|
|
64188
64555
|
this.clearReview();
|
|
@@ -64195,8 +64562,31 @@ class ChessimalsGameComponent {
|
|
|
64195
64562
|
this.focusBoardSoon();
|
|
64196
64563
|
this.queueBotTurnIfNeeded();
|
|
64197
64564
|
}
|
|
64565
|
+
startTutorial() {
|
|
64566
|
+
this.onlineSubscription?.unsubscribe();
|
|
64567
|
+
this.openedOnlineGameId = undefined;
|
|
64568
|
+
this.openingOnlineGameId = undefined;
|
|
64569
|
+
this.clearBotTurn();
|
|
64570
|
+
this.tutorialMode.set(true);
|
|
64571
|
+
this.onlineConnectionState.set('idle');
|
|
64572
|
+
this.gameBotProfileId.set(undefined);
|
|
64573
|
+
this.selectedLocalMode.set('one-device');
|
|
64574
|
+
this.audio.stopMusic();
|
|
64575
|
+
this.game.set(this.createTutorialGame());
|
|
64576
|
+
this.clearReview();
|
|
64577
|
+
this.selectedPieceId.set(undefined);
|
|
64578
|
+
this.selectedAnimal.set(undefined);
|
|
64579
|
+
this.movingPiece.set(undefined);
|
|
64580
|
+
this.screen.set('game');
|
|
64581
|
+
this.startChessimalsGameMusicSoon();
|
|
64582
|
+
this.audio.flip();
|
|
64583
|
+
this.focusBoardSoon();
|
|
64584
|
+
}
|
|
64198
64585
|
async createOnlineGame() {
|
|
64199
64586
|
this.clearBotTurn();
|
|
64587
|
+
this.tutorialMode.set(false);
|
|
64588
|
+
this.gameBotProfileId.set(undefined);
|
|
64589
|
+
this.onlineConnectionState.set('connecting');
|
|
64200
64590
|
this.audio.stopMusic();
|
|
64201
64591
|
this.onlineError.set('');
|
|
64202
64592
|
this.onlineAction.set('create');
|
|
@@ -64233,7 +64623,7 @@ class ChessimalsGameComponent {
|
|
|
64233
64623
|
async joinOnlineGameByCode() {
|
|
64234
64624
|
const gameId = this.online.normalizeGameId(this.onlineJoinCode());
|
|
64235
64625
|
if (!this.online.isValidGameId(gameId)) {
|
|
64236
|
-
this.onlineError.set(this.t('
|
|
64626
|
+
this.onlineError.set(this.t('chessimalsOnlineInvalidCode'));
|
|
64237
64627
|
this.audio.miss();
|
|
64238
64628
|
return;
|
|
64239
64629
|
}
|
|
@@ -64252,7 +64642,7 @@ class ChessimalsGameComponent {
|
|
|
64252
64642
|
async openOnlineGame(gameId) {
|
|
64253
64643
|
const normalizedGameId = this.online.normalizeGameId(gameId);
|
|
64254
64644
|
if (!this.online.isValidGameId(normalizedGameId)) {
|
|
64255
|
-
this.onlineError.set(this.t('
|
|
64645
|
+
this.onlineError.set(this.t('chessimalsOnlineInvalidCode'));
|
|
64256
64646
|
this.screen.set('home');
|
|
64257
64647
|
this.startChessimalsMenuMusicSoon();
|
|
64258
64648
|
return;
|
|
@@ -64261,7 +64651,10 @@ class ChessimalsGameComponent {
|
|
|
64261
64651
|
return;
|
|
64262
64652
|
this.onlineError.set('');
|
|
64263
64653
|
this.clearBotTurn();
|
|
64654
|
+
this.tutorialMode.set(false);
|
|
64655
|
+
this.gameBotProfileId.set(undefined);
|
|
64264
64656
|
this.audio.stopMusic();
|
|
64657
|
+
this.onlineConnectionState.set('connecting');
|
|
64265
64658
|
this.onlineLoading.set(true);
|
|
64266
64659
|
this.resumeSplashVisible.set(true);
|
|
64267
64660
|
this.screen.set('game');
|
|
@@ -64280,7 +64673,8 @@ class ChessimalsGameComponent {
|
|
|
64280
64673
|
catch (error) {
|
|
64281
64674
|
console.warn('[Chessimals] open online game failed', error);
|
|
64282
64675
|
this.openedOnlineGameId = undefined;
|
|
64283
|
-
this.
|
|
64676
|
+
this.onlineConnectionState.set('error');
|
|
64677
|
+
this.onlineError.set(this.onlineOpenErrorMessage(error));
|
|
64284
64678
|
this.screen.set('home');
|
|
64285
64679
|
this.resumeSplashVisible.set(false);
|
|
64286
64680
|
this.startChessimalsMenuMusicSoon();
|
|
@@ -64298,7 +64692,7 @@ class ChessimalsGameComponent {
|
|
|
64298
64692
|
return;
|
|
64299
64693
|
}
|
|
64300
64694
|
this.clearBotTurn();
|
|
64301
|
-
this.game.set(createChessimalsGame(this.game().boardSize));
|
|
64695
|
+
this.game.set(this.tutorialMode() ? this.createTutorialGame() : createChessimalsGame(this.game().boardSize));
|
|
64302
64696
|
this.clearReview();
|
|
64303
64697
|
this.selectedPieceId.set(undefined);
|
|
64304
64698
|
this.selectedAnimal.set(undefined);
|
|
@@ -64308,7 +64702,12 @@ class ChessimalsGameComponent {
|
|
|
64308
64702
|
this.focusBoardSoon();
|
|
64309
64703
|
this.queueBotTurnIfNeeded();
|
|
64310
64704
|
}
|
|
64705
|
+
exitTutorial() {
|
|
64706
|
+
this.tutorialMode.set(false);
|
|
64707
|
+
this.resetToModeSetup();
|
|
64708
|
+
}
|
|
64311
64709
|
resetToModeSetup() {
|
|
64710
|
+
this.tutorialMode.set(false);
|
|
64312
64711
|
this.resetFinishedLocalGameForNextVisit();
|
|
64313
64712
|
this.onlineSubscription?.unsubscribe();
|
|
64314
64713
|
this.onlineSubscription = undefined;
|
|
@@ -64316,6 +64715,7 @@ class ChessimalsGameComponent {
|
|
|
64316
64715
|
this.openingOnlineGameId = undefined;
|
|
64317
64716
|
this.resumeSplashVisible.set(false);
|
|
64318
64717
|
this.clearBotTurn();
|
|
64718
|
+
this.onlineConnectionState.set('idle');
|
|
64319
64719
|
this.screen.set('home');
|
|
64320
64720
|
this.startChessimalsMenuMusicSoon();
|
|
64321
64721
|
this.selectedPieceId.set(undefined);
|
|
@@ -64433,6 +64833,13 @@ class ChessimalsGameComponent {
|
|
|
64433
64833
|
closeSettingsModal() {
|
|
64434
64834
|
this.isSettingsModalOpen.set(false);
|
|
64435
64835
|
}
|
|
64836
|
+
openAboutModal() {
|
|
64837
|
+
this.isAboutModalOpen.set(true);
|
|
64838
|
+
this.audio.flip();
|
|
64839
|
+
}
|
|
64840
|
+
closeAboutModal() {
|
|
64841
|
+
this.isAboutModalOpen.set(false);
|
|
64842
|
+
}
|
|
64436
64843
|
setMusicVolume(value) {
|
|
64437
64844
|
const volume = this.rangeValueToNumber(value);
|
|
64438
64845
|
if (this.musicVolumeControl.value !== volume) {
|
|
@@ -64449,6 +64856,64 @@ class ChessimalsGameComponent {
|
|
|
64449
64856
|
}
|
|
64450
64857
|
this.audio.setSfxVolume(volume / 100);
|
|
64451
64858
|
}
|
|
64859
|
+
tutorialExpectedMove() {
|
|
64860
|
+
if (!this.tutorialMode() || this.game().status !== 'in_progress')
|
|
64861
|
+
return undefined;
|
|
64862
|
+
const steps = [
|
|
64863
|
+
{ pieceId: 'TW1', to: { row: 3, col: 1 } },
|
|
64864
|
+
{ pieceId: 'TB1', to: { row: 2, col: 2 } },
|
|
64865
|
+
{ pieceId: 'TW1', to: { row: 2, col: 2 } },
|
|
64866
|
+
{ pieceId: 'TB2', to: { row: 2, col: 5 } },
|
|
64867
|
+
{ pieceId: 'TW1', to: { row: 1, col: 4 }, animal: 'kangaroo' },
|
|
64868
|
+
{ pieceId: 'TB2', to: { row: 3, col: 5 } },
|
|
64869
|
+
{ pieceId: 'TW1', to: { row: 0, col: 4 } },
|
|
64870
|
+
];
|
|
64871
|
+
return steps[this.game().moveCount];
|
|
64872
|
+
}
|
|
64873
|
+
isPowerCardBlockedByTutorial(animal) {
|
|
64874
|
+
const expected = this.tutorialExpectedMove();
|
|
64875
|
+
return !!expected?.animal && expected.animal !== animal;
|
|
64876
|
+
}
|
|
64877
|
+
createTutorialGame() {
|
|
64878
|
+
const base = createChessimalsGame(6);
|
|
64879
|
+
const pieces = [
|
|
64880
|
+
{ id: 'TW1', color: 'white', position: { row: 4, col: 1 }, captured: false },
|
|
64881
|
+
{ id: 'TB1', color: 'black', position: { row: 1, col: 2 }, captured: false },
|
|
64882
|
+
{ id: 'TB2', color: 'black', position: { row: 1, col: 5 }, captured: false },
|
|
64883
|
+
{ id: 'TB3', color: 'black', position: { row: 1, col: 4 }, captured: false },
|
|
64884
|
+
];
|
|
64885
|
+
return {
|
|
64886
|
+
...base,
|
|
64887
|
+
id: 'TUTORIAL',
|
|
64888
|
+
pieces,
|
|
64889
|
+
currentTurn: 'white',
|
|
64890
|
+
moveCount: 0,
|
|
64891
|
+
players: {
|
|
64892
|
+
white: {
|
|
64893
|
+
...base.players.white,
|
|
64894
|
+
powerUnlocked: false,
|
|
64895
|
+
},
|
|
64896
|
+
black: {
|
|
64897
|
+
...base.players.black,
|
|
64898
|
+
powerUnlocked: false,
|
|
64899
|
+
},
|
|
64900
|
+
},
|
|
64901
|
+
moveHistory: [
|
|
64902
|
+
{
|
|
64903
|
+
moveNumber: 0,
|
|
64904
|
+
pieces: pieces.map((piece) => ({ ...piece, position: { ...piece.position } })),
|
|
64905
|
+
currentTurn: 'white',
|
|
64906
|
+
status: 'in_progress',
|
|
64907
|
+
},
|
|
64908
|
+
],
|
|
64909
|
+
};
|
|
64910
|
+
}
|
|
64911
|
+
basicMovesForColor(game, color) {
|
|
64912
|
+
const turnState = color === game.currentTurn ? game : { ...game, currentTurn: color };
|
|
64913
|
+
return turnState.pieces
|
|
64914
|
+
.filter((piece) => piece.color === color && !piece.captured)
|
|
64915
|
+
.flatMap((piece) => getChessimalsLegalMoves(turnState, piece.id));
|
|
64916
|
+
}
|
|
64452
64917
|
selectCell(position) {
|
|
64453
64918
|
const game = this.game();
|
|
64454
64919
|
if (this.projectionMode || game.status !== 'in_progress' || !this.canPlayCurrentTurn() || this.movingPiece() || this.moveSyncing())
|
|
@@ -64614,6 +65079,8 @@ class ChessimalsGameComponent {
|
|
|
64614
65079
|
});
|
|
64615
65080
|
}
|
|
64616
65081
|
shouldKeepBoardOrientationStatic(game = this.game()) {
|
|
65082
|
+
if (this.tutorialMode())
|
|
65083
|
+
return true;
|
|
64617
65084
|
if (game.mode === 'online')
|
|
64618
65085
|
return true;
|
|
64619
65086
|
return game.mode === 'local' && this.selectedLocalMode() === 'bot';
|
|
@@ -64728,6 +65195,8 @@ class ChessimalsGameComponent {
|
|
|
64728
65195
|
toggleAnimal(animal) {
|
|
64729
65196
|
if (this.projectionMode || !this.canUsePowerCards())
|
|
64730
65197
|
return;
|
|
65198
|
+
if (this.isPowerCardBlockedByTutorial(animal.type))
|
|
65199
|
+
return;
|
|
64731
65200
|
const player = this.powerPlayer();
|
|
64732
65201
|
if (!player.powerUnlocked || player.cards[animal.type].used)
|
|
64733
65202
|
return;
|
|
@@ -64764,6 +65233,14 @@ class ChessimalsGameComponent {
|
|
|
64764
65233
|
isCaptureCell(row, col) {
|
|
64765
65234
|
return this.captureMoveKeys().has(positionKey({ row, col }));
|
|
64766
65235
|
}
|
|
65236
|
+
isThreatenedCell(row, col) {
|
|
65237
|
+
const piece = this.pieceAt(row, col);
|
|
65238
|
+
return !!piece && this.threatenedPieceIds().has(piece.id);
|
|
65239
|
+
}
|
|
65240
|
+
isCaptureReadyCell(row, col) {
|
|
65241
|
+
const piece = this.pieceAt(row, col);
|
|
65242
|
+
return !!piece && piece.color === this.game().currentTurn && this.captureReadyPieceIds().has(piece.id);
|
|
65243
|
+
}
|
|
64767
65244
|
isLastMoveCell(row, col) {
|
|
64768
65245
|
const lastMove = this.reviewGame().lastMove;
|
|
64769
65246
|
return !this.selectedPieceId() && !!lastMove && positionKey(lastMove.to) === positionKey({ row, col });
|
|
@@ -64806,6 +65283,31 @@ class ChessimalsGameComponent {
|
|
|
64806
65283
|
playerLabel(color) {
|
|
64807
65284
|
return color === 'white' ? this.t('chessimalsWhite') : this.t('chessimalsBlack');
|
|
64808
65285
|
}
|
|
65286
|
+
turnStateLabel() {
|
|
65287
|
+
if (this.game().status === 'finished')
|
|
65288
|
+
return this.t('chessimalsFinishedChip');
|
|
65289
|
+
if (this.isActionableTurn())
|
|
65290
|
+
return this.t('chessimalsYourTurn');
|
|
65291
|
+
if (this.botThinking())
|
|
65292
|
+
return this.t('chessimalsBotThinkingTitle');
|
|
65293
|
+
if (this.moveSyncing())
|
|
65294
|
+
return this.t('chessimalsOnlineSyncingTitle');
|
|
65295
|
+
return this.isWaitingForTurn() ? this.t('chessimalsWaitingTurnLabel') : this.modeChipLabel();
|
|
65296
|
+
}
|
|
65297
|
+
turnStateBody() {
|
|
65298
|
+
if (this.game().status === 'finished')
|
|
65299
|
+
return this.winBody();
|
|
65300
|
+
if (this.isActionableTurn()) {
|
|
65301
|
+
return this.selectedLocalMode() === 'bot' && this.game().mode === 'local'
|
|
65302
|
+
? this.t('chessimalsBotYourTurnBody')
|
|
65303
|
+
: this.t('chessimalsYourTurnBody');
|
|
65304
|
+
}
|
|
65305
|
+
if (this.botThinking())
|
|
65306
|
+
return this.t('chessimalsBotThinkingBody');
|
|
65307
|
+
if (this.moveSyncing())
|
|
65308
|
+
return this.t('chessimalsOnlineSyncingBody');
|
|
65309
|
+
return this.t('chessimalsWaitingTurn');
|
|
65310
|
+
}
|
|
64809
65311
|
winnerDisplayName() {
|
|
64810
65312
|
const winner = this.game().winner ?? 'white';
|
|
64811
65313
|
return this.playerDisplayName(winner);
|
|
@@ -64823,6 +65325,13 @@ class ChessimalsGameComponent {
|
|
|
64823
65325
|
.join('');
|
|
64824
65326
|
return initials || this.winnerSideLabel().charAt(0).toUpperCase();
|
|
64825
65327
|
}
|
|
65328
|
+
winnerAvatarUrl() {
|
|
65329
|
+
const game = this.game();
|
|
65330
|
+
const winner = game.winner;
|
|
65331
|
+
if (!winner || game.mode !== 'online')
|
|
65332
|
+
return '';
|
|
65333
|
+
return game.online?.participants?.[winner]?.avatarUrl?.trim() ?? '';
|
|
65334
|
+
}
|
|
64826
65335
|
isCurrentPlayerVictory() {
|
|
64827
65336
|
const game = this.game();
|
|
64828
65337
|
if (game.status !== 'finished' || !game.winner)
|
|
@@ -64852,6 +65361,17 @@ class ChessimalsGameComponent {
|
|
|
64852
65361
|
}
|
|
64853
65362
|
return this.playerLabel(color);
|
|
64854
65363
|
}
|
|
65364
|
+
rematchOpponent() {
|
|
65365
|
+
const game = this.game();
|
|
65366
|
+
const role = this.onlineRole();
|
|
65367
|
+
if (game.mode !== 'online' || (role !== 'white' && role !== 'black'))
|
|
65368
|
+
return undefined;
|
|
65369
|
+
const opponentSide = role === 'white' ? 'black' : 'white';
|
|
65370
|
+
return game.online?.participants?.[opponentSide];
|
|
65371
|
+
}
|
|
65372
|
+
currentOpponentUid() {
|
|
65373
|
+
return this.rematchOpponent()?.uid ?? '';
|
|
65374
|
+
}
|
|
64855
65375
|
modeChipLabel() {
|
|
64856
65376
|
const game = this.game();
|
|
64857
65377
|
if (game.mode !== 'online') {
|
|
@@ -64938,12 +65458,20 @@ class ChessimalsGameComponent {
|
|
|
64938
65458
|
pendingGuestHandle() {
|
|
64939
65459
|
return this.game().online?.pendingGuest?.handle ?? '';
|
|
64940
65460
|
}
|
|
64941
|
-
pendingGuestAvatar() {
|
|
64942
|
-
return this.game().online?.pendingGuest?.avatar ?? '♟️';
|
|
64943
|
-
}
|
|
64944
65461
|
pendingGuestAvatarUrl() {
|
|
64945
65462
|
return this.game().online?.pendingGuest?.avatarUrl ?? '';
|
|
64946
65463
|
}
|
|
65464
|
+
pendingGuestInitials() {
|
|
65465
|
+
const guest = this.game().online?.pendingGuest;
|
|
65466
|
+
const name = (guest?.name || guest?.handle || this.t('defaultPlayerName')).trim();
|
|
65467
|
+
const initials = name
|
|
65468
|
+
.split(/\s+/)
|
|
65469
|
+
.filter(Boolean)
|
|
65470
|
+
.slice(0, 2)
|
|
65471
|
+
.map((part) => part.charAt(0).toUpperCase())
|
|
65472
|
+
.join('');
|
|
65473
|
+
return initials || '?';
|
|
65474
|
+
}
|
|
64947
65475
|
pendingGuestAvatarProps() {
|
|
64948
65476
|
const guest = this.game().online?.pendingGuest;
|
|
64949
65477
|
return {
|
|
@@ -64956,6 +65484,38 @@ class ChessimalsGameComponent {
|
|
|
64956
65484
|
bordered: true,
|
|
64957
65485
|
};
|
|
64958
65486
|
}
|
|
65487
|
+
rematchOpponentName() {
|
|
65488
|
+
return this.rematchOpponent()?.name?.trim() || this.t('defaultPlayerName');
|
|
65489
|
+
}
|
|
65490
|
+
rematchOpponentHandle() {
|
|
65491
|
+
return this.rematchOpponent()?.handle?.trim() ?? '';
|
|
65492
|
+
}
|
|
65493
|
+
rematchOpponentAvatarUrl() {
|
|
65494
|
+
return this.rematchOpponent()?.avatarUrl?.trim() ?? '';
|
|
65495
|
+
}
|
|
65496
|
+
rematchOpponentInitials() {
|
|
65497
|
+
const opponent = this.rematchOpponent();
|
|
65498
|
+
const name = (opponent?.name || opponent?.handle || this.t('defaultPlayerName')).trim();
|
|
65499
|
+
const initials = name
|
|
65500
|
+
.split(/\s+/)
|
|
65501
|
+
.filter(Boolean)
|
|
65502
|
+
.slice(0, 2)
|
|
65503
|
+
.map((part) => part.charAt(0).toUpperCase())
|
|
65504
|
+
.join('');
|
|
65505
|
+
return initials || '?';
|
|
65506
|
+
}
|
|
65507
|
+
rematchOpponentAvatarProps() {
|
|
65508
|
+
const opponent = this.rematchOpponent();
|
|
65509
|
+
return {
|
|
65510
|
+
user: {
|
|
65511
|
+
name: opponent?.name,
|
|
65512
|
+
handle: opponent?.handle,
|
|
65513
|
+
avatarUrl: opponent?.avatarUrl,
|
|
65514
|
+
},
|
|
65515
|
+
size: 'small',
|
|
65516
|
+
bordered: true,
|
|
65517
|
+
};
|
|
65518
|
+
}
|
|
64959
65519
|
waitingTitle() {
|
|
64960
65520
|
if (this.canReviewPendingGuest())
|
|
64961
65521
|
return this.t('chessimalsJoinRequestTitle');
|
|
@@ -65073,7 +65633,7 @@ class ChessimalsGameComponent {
|
|
|
65073
65633
|
return;
|
|
65074
65634
|
this.historyUid = uid;
|
|
65075
65635
|
this.historySubscription?.unsubscribe();
|
|
65076
|
-
this.historySubscription = this.online.watchHistory().subscribe({
|
|
65636
|
+
this.historySubscription = this.online.watchHistory(24).subscribe({
|
|
65077
65637
|
next: (history) => this.onlineHistory.set(history),
|
|
65078
65638
|
error: () => this.onlineHistory.set([]),
|
|
65079
65639
|
});
|
|
@@ -65106,6 +65666,9 @@ class ChessimalsGameComponent {
|
|
|
65106
65666
|
botProfileDescription(profile) {
|
|
65107
65667
|
return this.t(profile.descriptionKey);
|
|
65108
65668
|
}
|
|
65669
|
+
botProfileTendency(profile) {
|
|
65670
|
+
return this.t(`chessimalsBot${this.capitalize(profile.id)}Tendency`);
|
|
65671
|
+
}
|
|
65109
65672
|
animalLabel(type) {
|
|
65110
65673
|
return this.t(`chessimalsAnimal${this.capitalize(type)}`);
|
|
65111
65674
|
}
|
|
@@ -65163,16 +65726,20 @@ class ChessimalsGameComponent {
|
|
|
65163
65726
|
next: (state) => {
|
|
65164
65727
|
this.ngZone.run(() => {
|
|
65165
65728
|
if (!state) {
|
|
65166
|
-
this.
|
|
65729
|
+
this.onlineConnectionState.set('error');
|
|
65730
|
+
this.onlineError.set(this.t('chessimalsOnlineNotFound'));
|
|
65167
65731
|
return;
|
|
65168
65732
|
}
|
|
65733
|
+
this.onlineConnectionState.set('live');
|
|
65734
|
+
this.onlineError.set('');
|
|
65169
65735
|
const previous = this.game();
|
|
65170
65736
|
this.applyOnlineGameSnapshot(previous, state);
|
|
65171
65737
|
});
|
|
65172
65738
|
},
|
|
65173
65739
|
error: () => {
|
|
65174
65740
|
this.ngZone.run(() => {
|
|
65175
|
-
this.
|
|
65741
|
+
this.onlineConnectionState.set('error');
|
|
65742
|
+
this.onlineError.set(this.t('chessimalsOnlineDisconnectedBody'));
|
|
65176
65743
|
this.resumeSplashVisible.set(false);
|
|
65177
65744
|
this.screen.set('home');
|
|
65178
65745
|
this.audio.miss();
|
|
@@ -65180,6 +65747,14 @@ class ChessimalsGameComponent {
|
|
|
65180
65747
|
},
|
|
65181
65748
|
});
|
|
65182
65749
|
}
|
|
65750
|
+
onlineOpenErrorMessage(error) {
|
|
65751
|
+
const message = error instanceof Error ? error.message : '';
|
|
65752
|
+
if (message.includes('CHESSIMALS_GAME_EXPIRED'))
|
|
65753
|
+
return this.t('chessimalsOnlineExpiredBody');
|
|
65754
|
+
if (message.includes('CHESSIMALS_GAME_NOT_FOUND'))
|
|
65755
|
+
return this.t('chessimalsOnlineNotFound');
|
|
65756
|
+
return this.t('chessimalsOnlineError');
|
|
65757
|
+
}
|
|
65183
65758
|
applyOnlineGameSnapshot(previous, state) {
|
|
65184
65759
|
this.game.set(state);
|
|
65185
65760
|
if (state.status === 'finished') {
|
|
@@ -65252,12 +65827,14 @@ class ChessimalsGameComponent {
|
|
|
65252
65827
|
<article class="chessimals-howto">
|
|
65253
65828
|
<h2>{{ t('chessimalsHowToTitle') }}</h2>
|
|
65254
65829
|
<p>{{ t('chessimalsHowToBody') }}</p>
|
|
65255
|
-
<
|
|
65256
|
-
|
|
65257
|
-
|
|
65258
|
-
|
|
65259
|
-
|
|
65260
|
-
|
|
65830
|
+
<div class="chessimals-howto__actions">
|
|
65831
|
+
<button class="chessimals-learn-more" type="button" (click)="startTutorial()">
|
|
65832
|
+
{{ t('chessimalsTutorialStart') }}
|
|
65833
|
+
</button>
|
|
65834
|
+
<button class="chessimals-learn-more" type="button" (click)="openRulesModal()">
|
|
65835
|
+
{{ t('learnMore') }}
|
|
65836
|
+
</button>
|
|
65837
|
+
</div>
|
|
65261
65838
|
</article>
|
|
65262
65839
|
|
|
65263
65840
|
<div class="chessimals-size" role="radiogroup" [attr.aria-label]="t('chessimalsBoardSize')">
|
|
@@ -65311,6 +65888,16 @@ class ChessimalsGameComponent {
|
|
|
65311
65888
|
</button>
|
|
65312
65889
|
}
|
|
65313
65890
|
</div>
|
|
65891
|
+
@if (selectedBotProfile(); as profile) {
|
|
65892
|
+
<article class="chessimals-bot-preview">
|
|
65893
|
+
<span aria-hidden="true">{{ profile.avatar }}</span>
|
|
65894
|
+
<div>
|
|
65895
|
+
<small>{{ botDifficultyLabel(profile.difficulty) }}</small>
|
|
65896
|
+
<strong>{{ botProfileLabel(profile) }}</strong>
|
|
65897
|
+
<p>{{ botProfileTendency(profile) }}</p>
|
|
65898
|
+
</div>
|
|
65899
|
+
</article>
|
|
65900
|
+
}
|
|
65314
65901
|
}
|
|
65315
65902
|
|
|
65316
65903
|
<button class="chessimals-primary" type="button" (click)="startGame()">
|
|
@@ -65383,7 +65970,7 @@ class ChessimalsGameComponent {
|
|
|
65383
65970
|
</div>
|
|
65384
65971
|
</div>
|
|
65385
65972
|
<div class="chessimals-history__list">
|
|
65386
|
-
@for (entry of onlineHistory(); track entry.gameId) {
|
|
65973
|
+
@for (entry of onlineHistory().slice(0, 6); track entry.gameId) {
|
|
65387
65974
|
<button type="button" class="chessimals-history__item" (click)="openHistoryGame(entry)">
|
|
65388
65975
|
<span>
|
|
65389
65976
|
<strong>{{ entry.gameId }}</strong>
|
|
@@ -65395,6 +65982,21 @@ class ChessimalsGameComponent {
|
|
|
65395
65982
|
</div>
|
|
65396
65983
|
</article>
|
|
65397
65984
|
}
|
|
65985
|
+
|
|
65986
|
+
<article class="chessimals-online chessimals-home-settings">
|
|
65987
|
+
<div>
|
|
65988
|
+
<h2>{{ t('chessimalsSettings') }}</h2>
|
|
65989
|
+
<p>{{ t('chessimalsSettingsSubtitle') }}</p>
|
|
65990
|
+
</div>
|
|
65991
|
+
<div class="chessimals-home-settings__actions">
|
|
65992
|
+
<button class="chessimals-secondary" type="button" (click)="openSettingsModal()">
|
|
65993
|
+
{{ t('chessimalsSettings') }}
|
|
65994
|
+
</button>
|
|
65995
|
+
<button class="chessimals-secondary" type="button" (click)="openAboutModal()">
|
|
65996
|
+
{{ t('chessimalsAbout') }}
|
|
65997
|
+
</button>
|
|
65998
|
+
</div>
|
|
65999
|
+
</article>
|
|
65398
66000
|
</section>
|
|
65399
66001
|
} @else {
|
|
65400
66002
|
<section class="chessimals-game">
|
|
@@ -65412,15 +66014,15 @@ class ChessimalsGameComponent {
|
|
|
65412
66014
|
class="chessimals-turn-card"
|
|
65413
66015
|
[class.is-black-turn]="game().currentTurn === 'black'"
|
|
65414
66016
|
[class.is-finished]="game().status === 'finished'"
|
|
66017
|
+
[class.is-your-turn]="isActionableTurn()"
|
|
66018
|
+
[class.is-waiting-turn]="isWaitingForTurn()"
|
|
65415
66019
|
>
|
|
65416
66020
|
<div class="chessimals-turn-card__copy">
|
|
65417
66021
|
<span class="chessimals-turn-card__chip">
|
|
65418
|
-
{{
|
|
66022
|
+
{{ turnStateLabel() }}
|
|
65419
66023
|
</span>
|
|
65420
66024
|
<strong>{{ game().status === 'finished' ? winTitle() : turnTitle() }}</strong>
|
|
65421
|
-
|
|
65422
|
-
<p>{{ winBody() }}</p>
|
|
65423
|
-
}
|
|
66025
|
+
<p>{{ turnStateBody() }}</p>
|
|
65424
66026
|
</div>
|
|
65425
66027
|
|
|
65426
66028
|
<div class="chessimals-player-strip">
|
|
@@ -65453,8 +66055,8 @@ class ChessimalsGameComponent {
|
|
|
65453
66055
|
@if (pendingGuestAvatarUrl()) {
|
|
65454
66056
|
<val-user-avatar [props]="pendingGuestAvatarProps()" />
|
|
65455
66057
|
} @else {
|
|
65456
|
-
<span class="chessimals-player-strip__avatar" aria-hidden="true">
|
|
65457
|
-
{{
|
|
66058
|
+
<span class="chessimals-player-strip__avatar chessimals-player-strip__avatar--initials" aria-hidden="true">
|
|
66059
|
+
{{ pendingGuestInitials() }}
|
|
65458
66060
|
</span>
|
|
65459
66061
|
}
|
|
65460
66062
|
<div>
|
|
@@ -65525,6 +66127,34 @@ class ChessimalsGameComponent {
|
|
|
65525
66127
|
</div>
|
|
65526
66128
|
</div>
|
|
65527
66129
|
|
|
66130
|
+
@if (shouldShowOnlineStatus()) {
|
|
66131
|
+
<article
|
|
66132
|
+
class="chessimals-online-status"
|
|
66133
|
+
[class.is-error]="onlineConnectionState() === 'error' || game().status === 'expired'"
|
|
66134
|
+
[class.is-syncing]="onlineConnectionState() === 'connecting' || moveSyncing()"
|
|
66135
|
+
aria-live="polite"
|
|
66136
|
+
>
|
|
66137
|
+
<span aria-hidden="true"></span>
|
|
66138
|
+
<div>
|
|
66139
|
+
<strong>{{ onlineStatusTitle() }}</strong>
|
|
66140
|
+
<p>{{ onlineStatusBody() }}</p>
|
|
66141
|
+
</div>
|
|
66142
|
+
</article>
|
|
66143
|
+
}
|
|
66144
|
+
|
|
66145
|
+
@if (tutorialMode()) {
|
|
66146
|
+
<article class="chessimals-tutorial" aria-live="polite">
|
|
66147
|
+
<div>
|
|
66148
|
+
<small>{{ tutorialProgressLabel() }}</small>
|
|
66149
|
+
<strong>{{ tutorialTitle() }}</strong>
|
|
66150
|
+
<p>{{ tutorialBody() }}</p>
|
|
66151
|
+
</div>
|
|
66152
|
+
<button class="chessimals-secondary" type="button" (click)="exitTutorial()">
|
|
66153
|
+
{{ t('chessimalsTutorialExit') }}
|
|
66154
|
+
</button>
|
|
66155
|
+
</article>
|
|
66156
|
+
}
|
|
66157
|
+
|
|
65528
66158
|
<section class="chessimals-arena">
|
|
65529
66159
|
<section
|
|
65530
66160
|
#boardAnchor
|
|
@@ -65558,6 +66188,8 @@ class ChessimalsGameComponent {
|
|
|
65558
66188
|
[class.is-selected]="isSelectedCell(row, col)"
|
|
65559
66189
|
[class.is-legal]="isLegalCell(row, col)"
|
|
65560
66190
|
[class.is-capture]="isCaptureCell(row, col)"
|
|
66191
|
+
[class.has-threat]="isThreatenedCell(row, col)"
|
|
66192
|
+
[class.has-capture-ready]="isCaptureReadyCell(row, col)"
|
|
65561
66193
|
[class.is-last]="isLastMoveCell(row, col)"
|
|
65562
66194
|
[class.is-moving-source]="isMovingSourceCell(row, col)"
|
|
65563
66195
|
[class.has-move-effect]="isMoveEffectCell(row, col)"
|
|
@@ -65647,10 +66279,24 @@ class ChessimalsGameComponent {
|
|
|
65647
66279
|
<i class="chessimals-board-overlay__ribbon ribbon-b"></i>
|
|
65648
66280
|
<i class="chessimals-board-overlay__ribbon ribbon-c"></i>
|
|
65649
66281
|
<span>{{ t('chessimalsGameOver') }}</span>
|
|
65650
|
-
|
|
66282
|
+
@if (winnerAvatarUrl()) {
|
|
66283
|
+
<em class="has-avatar">
|
|
66284
|
+
<img [src]="winnerAvatarUrl()" [alt]="winnerDisplayName()" />
|
|
66285
|
+
</em>
|
|
66286
|
+
} @else {
|
|
66287
|
+
<em>{{ winnerInitials() }}</em>
|
|
66288
|
+
}
|
|
65651
66289
|
<strong>{{ winTitle() }}</strong>
|
|
65652
66290
|
<b>{{ winnerSideLabel() }}</b>
|
|
65653
66291
|
<small>{{ movesSummary() }}</small>
|
|
66292
|
+
<dl class="chessimals-board-overlay__stats">
|
|
66293
|
+
@for (stat of resultStats(); track stat.label) {
|
|
66294
|
+
<div>
|
|
66295
|
+
<dt>{{ stat.label }}</dt>
|
|
66296
|
+
<dd>{{ stat.value }}</dd>
|
|
66297
|
+
</div>
|
|
66298
|
+
}
|
|
66299
|
+
</dl>
|
|
65654
66300
|
</div>
|
|
65655
66301
|
}
|
|
65656
66302
|
</div>
|
|
@@ -65677,7 +66323,7 @@ class ChessimalsGameComponent {
|
|
|
65677
66323
|
type="button"
|
|
65678
66324
|
[class.is-selected]="selectedAnimal() === animal.type"
|
|
65679
66325
|
[class.is-used]="powerPlayer().cards[animal.type].used"
|
|
65680
|
-
[disabled]="!canUsePowerCards() || powerPlayer().cards[animal.type].used"
|
|
66326
|
+
[disabled]="!canUsePowerCards() || powerPlayer().cards[animal.type].used || isPowerCardBlockedByTutorial(animal.type)"
|
|
65681
66327
|
(click)="toggleAnimal(animal)"
|
|
65682
66328
|
>
|
|
65683
66329
|
<span class="chessimals-animal-face" aria-hidden="true">
|
|
@@ -65722,6 +66368,36 @@ class ChessimalsGameComponent {
|
|
|
65722
66368
|
<article class="chessimals-result">
|
|
65723
66369
|
<strong>{{ winTitle() }}</strong>
|
|
65724
66370
|
<p>{{ winBody() }}</p>
|
|
66371
|
+
<div class="chessimals-result__stats">
|
|
66372
|
+
@for (stat of resultStats(); track stat.label) {
|
|
66373
|
+
<span>
|
|
66374
|
+
<small>{{ stat.label }}</small>
|
|
66375
|
+
<b>{{ stat.value }}</b>
|
|
66376
|
+
</span>
|
|
66377
|
+
}
|
|
66378
|
+
</div>
|
|
66379
|
+
<p class="chessimals-result__detail">
|
|
66380
|
+
{{ t('chessimalsResultPowersUsed').replace('{powers}', resultPowersLabel()) }}
|
|
66381
|
+
</p>
|
|
66382
|
+
@if (shouldShowBotReport()) {
|
|
66383
|
+
<div class="chessimals-bot-report">
|
|
66384
|
+
<span aria-hidden="true">{{ gameBotProfile()?.avatar }}</span>
|
|
66385
|
+
<div>
|
|
66386
|
+
<small>{{ t('chessimalsBotReportTitle') }}</small>
|
|
66387
|
+
<strong>{{ botReportTitle() }}</strong>
|
|
66388
|
+
<p>{{ botReportBody() }}</p>
|
|
66389
|
+
</div>
|
|
66390
|
+
</div>
|
|
66391
|
+
}
|
|
66392
|
+
@if (seriesSummary()) {
|
|
66393
|
+
<div class="chessimals-series">
|
|
66394
|
+
<small>{{ t('chessimalsSeriesTitle') }}</small>
|
|
66395
|
+
<strong>{{ seriesSummary() }}</strong>
|
|
66396
|
+
@if (lastSeriesWinnerLabel()) {
|
|
66397
|
+
<span>{{ t('chessimalsSeriesLastWinner').replace('{player}', lastSeriesWinnerLabel()) }}</span>
|
|
66398
|
+
}
|
|
66399
|
+
</div>
|
|
66400
|
+
}
|
|
65725
66401
|
</article>
|
|
65726
66402
|
}
|
|
65727
66403
|
|
|
@@ -65743,6 +66419,45 @@ class ChessimalsGameComponent {
|
|
|
65743
66419
|
}}
|
|
65744
66420
|
</p>
|
|
65745
66421
|
</div>
|
|
66422
|
+
@if (seriesSummary()) {
|
|
66423
|
+
<div class="chessimals-series chessimals-series--compact">
|
|
66424
|
+
<small>{{ t('chessimalsSeriesTitle') }}</small>
|
|
66425
|
+
<strong>{{ seriesSummary() }}</strong>
|
|
66426
|
+
@if (lastSeriesWinnerLabel()) {
|
|
66427
|
+
<span>{{ t('chessimalsSeriesLastWinner').replace('{player}', lastSeriesWinnerLabel()) }}</span>
|
|
66428
|
+
}
|
|
66429
|
+
</div>
|
|
66430
|
+
}
|
|
66431
|
+
<div class="chessimals-pending-player chessimals-rematch-player">
|
|
66432
|
+
@if (rematchOpponentAvatarUrl()) {
|
|
66433
|
+
<val-user-avatar [props]="rematchOpponentAvatarProps()" />
|
|
66434
|
+
} @else {
|
|
66435
|
+
<span class="chessimals-player-strip__avatar chessimals-player-strip__avatar--initials" aria-hidden="true">
|
|
66436
|
+
{{ rematchOpponentInitials() }}
|
|
66437
|
+
</span>
|
|
66438
|
+
}
|
|
66439
|
+
<div>
|
|
66440
|
+
<small>{{ t('chessimalsRival') }}</small>
|
|
66441
|
+
<strong>{{ rematchOpponentName() }}</strong>
|
|
66442
|
+
@if (rematchOpponentHandle()) {
|
|
66443
|
+
<small>{{ rematchOpponentHandle() }}</small>
|
|
66444
|
+
}
|
|
66445
|
+
</div>
|
|
66446
|
+
</div>
|
|
66447
|
+
<div class="chessimals-rematch-status__actions">
|
|
66448
|
+
<button
|
|
66449
|
+
class="chessimals-secondary"
|
|
66450
|
+
[class.is-working]="rematchLoading()"
|
|
66451
|
+
type="button"
|
|
66452
|
+
[disabled]="rematchState() === 'requested' || rematchLoading()"
|
|
66453
|
+
(click)="requestOnlineRematch()"
|
|
66454
|
+
>
|
|
66455
|
+
@if (rematchLoading()) {
|
|
66456
|
+
<span class="chessimals-button-spinner" aria-hidden="true"></span>
|
|
66457
|
+
}
|
|
66458
|
+
{{ rematchActionLabel() }}
|
|
66459
|
+
</button>
|
|
66460
|
+
</div>
|
|
65746
66461
|
</article>
|
|
65747
66462
|
}
|
|
65748
66463
|
|
|
@@ -65751,7 +66466,7 @@ class ChessimalsGameComponent {
|
|
|
65751
66466
|
<button class="chessimals-secondary" type="button" (click)="requestResign()">
|
|
65752
66467
|
{{ t('chessimalsResign') }}
|
|
65753
66468
|
</button>
|
|
65754
|
-
} @else if (game().mode === 'online' && canControlCurrentGame()) {
|
|
66469
|
+
} @else if (game().mode === 'online' && canControlCurrentGame() && rematchState() === 'none') {
|
|
65755
66470
|
<button
|
|
65756
66471
|
class="chessimals-secondary"
|
|
65757
66472
|
[class.is-working]="rematchLoading()"
|
|
@@ -65885,6 +66600,40 @@ class ChessimalsGameComponent {
|
|
|
65885
66600
|
</ng-template>
|
|
65886
66601
|
</ion-modal>
|
|
65887
66602
|
|
|
66603
|
+
<ion-modal
|
|
66604
|
+
[isOpen]="isAboutModalOpen()"
|
|
66605
|
+
cssClass="val-modal-adaptive"
|
|
66606
|
+
(didDismiss)="closeAboutModal()"
|
|
66607
|
+
>
|
|
66608
|
+
<ng-template>
|
|
66609
|
+
<val-modal-layout
|
|
66610
|
+
[title]="t('chessimalsAboutTitle')"
|
|
66611
|
+
[subtitle]="t('chessimalsAboutSubtitle')"
|
|
66612
|
+
[closeLabel]="t('close')"
|
|
66613
|
+
[actions]="aboutActions()"
|
|
66614
|
+
actionsAlign="end"
|
|
66615
|
+
(close)="closeAboutModal()"
|
|
66616
|
+
(actionClick)="closeAboutModal()"
|
|
66617
|
+
>
|
|
66618
|
+
<section class="chessimals-about">
|
|
66619
|
+
<img
|
|
66620
|
+
class="chessimals-about__logo"
|
|
66621
|
+
src="assets/games/chessimals/menu-logo.jpg"
|
|
66622
|
+
alt=""
|
|
66623
|
+
loading="lazy"
|
|
66624
|
+
/>
|
|
66625
|
+
<p>{{ t('chessimalsAboutBody') }}</p>
|
|
66626
|
+
<dl>
|
|
66627
|
+
<div>
|
|
66628
|
+
<dt>{{ t('chessimalsAboutLibVersion') }}</dt>
|
|
66629
|
+
<dd>{{ valtechComponentsVersion }}</dd>
|
|
66630
|
+
</div>
|
|
66631
|
+
</dl>
|
|
66632
|
+
</section>
|
|
66633
|
+
</val-modal-layout>
|
|
66634
|
+
</ng-template>
|
|
66635
|
+
</ion-modal>
|
|
66636
|
+
|
|
65888
66637
|
<ion-modal
|
|
65889
66638
|
[isOpen]="!!confirmAction()"
|
|
65890
66639
|
cssClass="val-modal-adaptive"
|
|
@@ -65902,7 +66651,7 @@ class ChessimalsGameComponent {
|
|
|
65902
66651
|
/>
|
|
65903
66652
|
</ng-template>
|
|
65904
66653
|
</ion-modal>
|
|
65905
|
-
`, isInline: true, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #ffffff;--chessimals-surface: #fffaf1;--chessimals-border: rgba(46, 58, 44, .18);--chessimals-text: #2e3a2c;--chessimals-muted: #51643d;--chessimals-soft: rgba(111, 122, 60, .1);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-selected: #37f28a;--chessimals-selected-rgb: 55, 242, 138;--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: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(46, 58, 44, .14);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: #f3eadb;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .52)) drop-shadow(0 .18rem .12rem rgba(72, 58, 36, .22)) drop-shadow(0 .34rem .42rem rgba(72, 58, 36, .22));--chessimals-piece-black-fill: #242936;--chessimals-piece-black-side: #171b25;--chessimals-piece-black-line: rgba(255, 255, 255, .1);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 .18rem .1rem rgba(255, 255, 255, .12)) drop-shadow(0 .32rem .42rem rgba(0, 0, 0, .36));--chessimals-piece-gold: #c79a42;--chessimals-piece-gold-dark: #8a5f22;--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(46, 58, 44, .12);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(46, 58, 44, .18));--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)}@media (prefers-color-scheme: dark){.chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(242, 230, 213, .2);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-animal-face-border: rgba(242, 230, 213, .24)}}.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__paw{display:grid;place-items:center;width:clamp(4.6rem,16vw,5.6rem);height:clamp(4.6rem,16vw,5.6rem);border-radius:1.55rem;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),transparent 34%),linear-gradient(145deg,#fffffff5,rgba(var(--chessimals-secondary-rgb),.22)),color-mix(in srgb,var(--chessimals-panel) 82%,white);border:.12rem solid rgba(var(--chessimals-primary-rgb),.22);box-shadow:0 1.15rem 2.6rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.16),0 0 0 .42rem #ffffff6b,inset 0 -.25rem .6rem rgba(var(--chessimals-primary-rgb),.08);animation:chessimals-resume-pulse 1.2s ease-in-out infinite;font-size:clamp(2.45rem,9vw,3.35rem);line-height:1;filter:drop-shadow(0 .28rem .38rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18))}.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: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(246, 227, 213, .22);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #e8eadc;--chessimals-cell-dark: #5f7040;--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: #f0e5d4;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .48)) drop-shadow(0 .18rem .12rem rgba(0, 0, 0, .24)) drop-shadow(0 .34rem .42rem rgba(0, 0, 0, .3));--chessimals-piece-black-fill: #202633;--chessimals-piece-black-side: #111620;--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 .18rem .1rem rgba(255, 255, 255, .14)) drop-shadow(0 .34rem .44rem rgba(0, 0, 0, .52));--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(242, 230, 213, .24);--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;justify-items:center;overflow:hidden;border-radius:1.75rem;padding:clamp(1.25rem,5vw,2.5rem);background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.92),transparent 20%),linear-gradient(135deg,#fdf8ee,#fff 40%,#edf3df);color:var(--chessimals-text);text-align:center;border:1px solid var(--chessimals-border)}:host-context(html.ion-palette-dark) .chessimals-hero,:host-context([data-theme=\"dark\"]) .chessimals-hero{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.08),transparent 22%),linear-gradient(135deg,#111a10,#172116 48%,#0f170f);color:var(--chessimals-text);border-color:#f6e3d538}.chessimals-hero__logo{display:grid;place-items:center;width:min(22rem,82vw);max-width:100%;padding:.5rem;border-radius:1.35rem;background:#fff;box-shadow:0 1rem 2.5rem #2e3a2c1a,inset 0 0 0 1px #2e3a2c14}.chessimals-hero__logo img{display:block;width:100%;height:auto;max-height:12rem;object-fit:contain;border-radius:1rem}.chessimals-hero h1{margin:0;font-size:clamp(2.4rem,9vw,4.5rem);line-height:.95;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-replay,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-howto{border:1px solid var(--chessimals-border);background:var(--chessimals-soft);color:var(--chessimals-text)}.chessimals-howto p{color:var(--chessimals-muted)}:host-context(html.ion-palette-dark) .chessimals-howto,:host-context([data-theme=\"dark\"]) .chessimals-howto{border-color:#f6e3d533;background:#172116;color:#f6f3e9}:host-context(html.ion-palette-dark) .chessimals-howto p,:host-context([data-theme=\"dark\"]) .chessimals-howto p{color:#c8cfb1}.chessimals-result{order:5}.chessimals-replay{order:5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.2);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-replay>div:first-child{display:grid;gap:.15rem;min-width:0}.chessimals-replay strong{font-size:1rem;font-weight:950}.chessimals-replay span{color:var(--chessimals-muted);font-size:.86rem;font-weight:800;line-height:1.25}.chessimals-replay__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.chessimals-replay__actions .chessimals-secondary{min-height:2.5rem;padding:0 .8rem}.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-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:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font:inherit;font-weight:950;box-shadow:0 .75rem 1.6rem rgba(var(--chessimals-primary-rgb),.28)}.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-bots{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.625rem}.chessimals-bots button{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"avatar title\" \"avatar body\";column-gap:.55rem;row-gap:.12rem;min-width:0;min-height:4.75rem;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.65rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-bots button>span{grid-area:avatar;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.2rem}.chessimals-bots button strong{grid-area:title;align-self:end;font-size:.95rem;font-weight:950}.chessimals-bots button small{grid-area:body;color:var(--chessimals-muted);font-size:.75rem;font-weight:750;line-height:1.25}.chessimals-bots 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),0 .75rem 1.5rem rgba(var(--chessimals-primary-rgb),.1)}.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{--chessimals-board-radius: min(.85rem, 14px);display:flex;justify-content:center;min-width:0;max-width:100%;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{flex:0 1 58rem;min-width:0;width:100%;max-width:58rem;border-radius:var(--chessimals-board-radius)}.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));min-width:0;width:100%;aspect-ratio:1 / 1;overflow:hidden;isolation:isolate;contain:paint;border:1px solid var(--chessimals-border);border-radius:var(--chessimals-board-radius);clip-path:inset(0 round var(--chessimals-board-radius));-webkit-mask-image:-webkit-radial-gradient(white,black);background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.34),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.1),transparent 22%),radial-gradient(ellipse at 32% 68%,rgba(var(--chessimals-stone-rgb),.05),transparent 30%),radial-gradient(ellipse at 66% 34%,rgba(255,255,255,.08),transparent 24%),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-primary-rgb),.56);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-primary-rgb),.26));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:.5rem;padding:1.25rem;background:radial-gradient(circle at 50% 34%,rgba(255,226,129,.34),transparent 24%),radial-gradient(circle at 50% 52%,rgba(var(--chessimals-primary-rgb),.34),transparent 42%),linear-gradient(135deg,#140c16e0,#08120dc7);color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay.is-defeat{background:radial-gradient(circle at 50% 34%,rgba(143,168,206,.26),transparent 24%),radial-gradient(circle at 50% 52%,rgba(72,86,115,.42),transparent 42%),linear-gradient(135deg,#090c14e6,#1c1e2bcc)}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.58) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.7) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.54) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.48) 0 .07rem,transparent .09rem),radial-gradient(circle at 84% 66%,rgba(255,255,255,.38) 0 .06rem,transparent .08rem),radial-gradient(circle at 14% 64%,rgba(255,226,129,.48) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay__rays{position:absolute;inset:-18%;background:conic-gradient(from 8deg,transparent 0 7deg,rgba(255,226,129,.16) 7deg 11deg,transparent 11deg 22deg);opacity:.85;animation:chessimals-finale-rays 8s linear infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__rays{background:conic-gradient(from 8deg,transparent 0 8deg,rgba(180,204,240,.1) 8deg 12deg,transparent 12deg 24deg);animation-duration:12s}.chessimals-board-overlay__ribbon{position:absolute;top:-20%;width:.42rem;height:54%;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(255,226,129,.72),transparent);opacity:.7;transform:rotate(var(--ribbon-angle, 12deg));animation:chessimals-finale-ribbon 2.5s ease-in-out infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__ribbon{background:linear-gradient(to bottom,transparent,rgba(180,204,240,.42),transparent);opacity:.48}.chessimals-board-overlay__ribbon.ribbon-a{left:18%;--ribbon-angle: -18deg}.chessimals-board-overlay__ribbon.ribbon-b{left:50%;--ribbon-angle: 8deg;animation-delay:.32s}.chessimals-board-overlay__ribbon.ribbon-c{right:18%;--ribbon-angle: 20deg;animation-delay:.64s}.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 em{justify-self:center;display:grid;place-items:center;width:clamp(3rem,14vw,4.6rem);height:clamp(3rem,14vw,4.6rem);border:.16rem solid rgba(255,255,255,.62);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.72),transparent 18%),linear-gradient(135deg,#ffe281,#b98436);color:#2d2412;font-size:clamp(1.1rem,5vw,1.65rem);font-style:normal;font-weight:950;box-shadow:0 0 0 .45rem #ffe2811f,0 1rem 2rem #00000042;animation:chessimals-finale-medal 1.8s ease-in-out infinite}.chessimals-board-overlay.is-defeat em{background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.48),transparent 18%),linear-gradient(135deg,#d9e2ef,#69758e);color:#182032;box-shadow:0 0 0 .45rem #b4ccf01a,0 1rem 2rem #00000052}.chessimals-board-overlay b{justify-self:center;color:#fffc;font-size:.8rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.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)}}@keyframes chessimals-finale-rays{to{transform:rotate(360deg)}}@keyframes chessimals-finale-ribbon{0%,to{opacity:.18;transform:translateY(-.5rem) rotate(var(--ribbon-angle))}50%{opacity:.75;transform:translateY(1.4rem) rotate(var(--ribbon-angle))}}@keyframes chessimals-finale-medal{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.18rem) scale(1.04)}}.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 26% 24%,rgba(255,255,255,.12),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(61,54,36,.06),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 52%,rgba(52,44,28,.04)),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-texture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none;opacity:.42;mix-blend-mode:multiply;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.16),transparent 17%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.09),transparent 25%),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.045) 0 1px,transparent 1px .52rem),linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(52,44,28,.045))}.chessimals-cell-texture:after{position:absolute;inset:.08rem;border:1px solid rgba(75,66,42,.05);border-radius:.18rem;box-shadow:inset .08rem .08rem #ffffff14,inset -.08rem -.08rem #342c1c0b;content:\"\"}.chessimals-cell.is-edge-cell .chessimals-cell-texture{opacity:.56;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.14),transparent 18%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.14),transparent 28%),linear-gradient(135deg,rgba(70,52,28,.055),transparent 44%,rgba(52,44,28,.09)),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.055) 0 1px,transparent 1px .48rem)}.chessimals-cell.wear-0{--wear-x: 22%;--wear-y: 24%;--wear-x2: 78%;--wear-y2: 72%;--wear-angle: 18deg}.chessimals-cell.wear-1{--wear-x: 64%;--wear-y: 18%;--wear-x2: 30%;--wear-y2: 76%;--wear-angle: -24deg}.chessimals-cell.wear-2{--wear-x: 42%;--wear-y: 58%;--wear-x2: 82%;--wear-y2: 26%;--wear-angle: 42deg}.chessimals-cell.wear-3{--wear-x: 74%;--wear-y: 68%;--wear-x2: 24%;--wear-y2: 28%;--wear-angle: -12deg}.chessimals-cell.wear-4{--wear-x: 34%;--wear-y: 18%;--wear-x2: 62%;--wear-y2: 84%;--wear-angle: 64deg}.chessimals-cell.wear-5{--wear-x: 18%;--wear-y: 70%;--wear-x2: 70%;--wear-y2: 34%;--wear-angle: -48deg}:host-context(html.ion-palette-dark) .chessimals-cell-texture,:host-context([data-theme=\"dark\"]) .chessimals-cell-texture{opacity:.34;mix-blend-mode:soft-light}.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:68%;height:74%;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(82, 65, 46, .34);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{top:46%;z-index:0;width:58%;height:41%;border-radius:34% 34% 12% 12%;background:linear-gradient(96deg,var(--chessimals-piece-side) 0 34%,transparent 35%),var(--chessimals-piece-fill);clip-path:polygon(22% 0,78% 0,96% 100%,4% 100%);opacity:.92}.chessimals-piece__head{top:1%;z-index:4;width:48%;height:40%;border-radius:999px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.72) 0 13%,transparent 14%),linear-gradient(135deg,rgba(255,255,255,.28) 0 34%,transparent 35%),var(--chessimals-piece-fill);box-shadow:inset -.18rem -.12rem #52412e0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .18rem -.12rem #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:37%;z-index:5;width:72%;height:15%;border-radius:999px;background:linear-gradient(180deg,#f5cd77 0%,var(--chessimals-piece-gold) 55%,var(--chessimals-piece-gold-dark) 100%);border-color:color-mix(in srgb,var(--chessimals-piece-gold-dark) 72%,transparent);box-shadow:inset 0 .12rem #ffffff47,inset 0 -.08rem #462e1238,0 .08rem .18rem #462e1224}.chessimals-piece__neck{top:50%;z-index:2;width:52%;height:31%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);background:linear-gradient(100deg,var(--chessimals-piece-side) 0 28%,transparent 29%),linear-gradient(180deg,var(--chessimals-piece-fill),color-mix(in srgb,var(--chessimals-piece-fill) 78%,var(--chessimals-piece-side)));box-shadow:inset -.12rem .1rem #ffffff14}.chessimals-piece__base{bottom:0;z-index:6;width:86%;height:17%;border-radius:.42rem .42rem .22rem .22rem;background:linear-gradient(100deg,var(--chessimals-piece-side) 0 18%,transparent 19%),linear-gradient(180deg,color-mix(in srgb,var(--chessimals-piece-fill) 92%,#ffffff),var(--chessimals-piece-fill));box-shadow:inset 0 .12rem #ffffff24,inset 0 -.1rem 0 var(--chessimals-piece-line)}.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:3.25rem;height:3.25rem;padding:.34rem;overflow:hidden;border-radius:1.2rem;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.82),transparent 55%),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),0 .45rem 1.15rem #2e3a2c1a}.chessimals-animal-face img{display:block;width:100%;height:100%;object-fit:contain;border-radius:.72rem;background:var(--chessimals-animal-face-inner-bg);box-shadow:inset 0 0 0 1px #2e3a2c14;transform:none;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 35% 22%,rgba(255,255,255,.82),transparent 55%),var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2e3a2c24,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.18)}.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-replay,.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{--chessimals-board-radius: min(.625rem, 10px);width:min(96vw,82vh,58rem);max-width:none}.chessimals-shell--projection .chessimals-board-frame{flex-basis:auto;max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-replay,.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-settings{display:grid;gap:.85rem}.chessimals-settings article{display:grid;gap:.65rem;padding:.9rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-rules__hero{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:1.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);box-shadow:0 1rem 2.25rem #2e3a2c1f}.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,.chessimals-replay{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong,.chessimals-replay strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-replay{grid-template-columns:1fr}.chessimals-replay__actions{justify-content:stretch}.chessimals-replay__actions .chessimals-secondary{flex:1 1 8rem}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:100%;margin-inline:0;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.35rem;height:2.35rem;padding:.26rem;border-radius:.85rem}.chessimals-animal-face img{border-radius:.55rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:var(--chessimals-board-radius)}.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: RangeInputComponent, selector: "val-range-input", inputs: ["props"], outputs: ["rangeChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
66654
|
+
`, isInline: true, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #ffffff;--chessimals-surface: #fffaf1;--chessimals-border: rgba(46, 58, 44, .18);--chessimals-text: #2e3a2c;--chessimals-muted: #51643d;--chessimals-soft: rgba(111, 122, 60, .1);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-selected: #37f28a;--chessimals-selected-rgb: 55, 242, 138;--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: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(46, 58, 44, .14);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: #f3eadb;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .52)) drop-shadow(0 .18rem .12rem rgba(72, 58, 36, .22)) drop-shadow(0 .34rem .42rem rgba(72, 58, 36, .22));--chessimals-piece-black-fill: #242936;--chessimals-piece-black-side: #171b25;--chessimals-piece-black-line: rgba(255, 255, 255, .1);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 .18rem .1rem rgba(255, 255, 255, .12)) drop-shadow(0 .32rem .42rem rgba(0, 0, 0, .36));--chessimals-piece-gold: #c79a42;--chessimals-piece-gold-dark: #8a5f22;--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(46, 58, 44, .12);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(46, 58, 44, .18));--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)}@media (prefers-color-scheme: dark){.chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(242, 230, 213, .2);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-animal-face-border: rgba(242, 230, 213, .24)}}.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__paw{display:grid;place-items:center;width:clamp(4.6rem,16vw,5.6rem);height:clamp(4.6rem,16vw,5.6rem);border-radius:1.55rem;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),transparent 34%),linear-gradient(145deg,#fffffff5,rgba(var(--chessimals-secondary-rgb),.22)),color-mix(in srgb,var(--chessimals-panel) 82%,white);border:.12rem solid rgba(var(--chessimals-primary-rgb),.22);box-shadow:0 1.15rem 2.6rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.16),0 0 0 .42rem #ffffff6b,inset 0 -.25rem .6rem rgba(var(--chessimals-primary-rgb),.08);animation:chessimals-resume-pulse 1.2s ease-in-out infinite;font-size:clamp(2.45rem,9vw,3.35rem);line-height:1;filter:drop-shadow(0 .28rem .38rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18))}.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)}}@keyframes chessimals-online-pulse{0%,to{transform:scale(1);opacity:.78}50%{transform:scale(1.22);opacity:1}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(246, 227, 213, .22);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #e8eadc;--chessimals-cell-dark: #5f7040;--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: #f0e5d4;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .48)) drop-shadow(0 .18rem .12rem rgba(0, 0, 0, .24)) drop-shadow(0 .34rem .42rem rgba(0, 0, 0, .3));--chessimals-piece-black-fill: #202633;--chessimals-piece-black-side: #111620;--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 .18rem .1rem rgba(255, 255, 255, .14)) drop-shadow(0 .34rem .44rem rgba(0, 0, 0, .52));--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(242, 230, 213, .24);--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;justify-items:center;overflow:hidden;border-radius:1.75rem;padding:clamp(1.25rem,5vw,2.5rem);background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.92),transparent 20%),linear-gradient(135deg,#fdf8ee,#fff 40%,#edf3df);color:var(--chessimals-text);text-align:center;border:1px solid var(--chessimals-border)}:host-context(html.ion-palette-dark) .chessimals-hero,:host-context([data-theme=\"dark\"]) .chessimals-hero{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.08),transparent 22%),linear-gradient(135deg,#111a10,#172116 48%,#0f170f);color:var(--chessimals-text);border-color:#f6e3d538}.chessimals-hero__logo{display:grid;place-items:center;width:min(22rem,82vw);max-width:100%;padding:.5rem;border-radius:1.35rem;background:#fff;box-shadow:0 1rem 2.5rem #2e3a2c1a,inset 0 0 0 1px #2e3a2c14}.chessimals-hero__logo img{display:block;width:100%;height:auto;max-height:12rem;object-fit:contain;border-radius:1rem}.chessimals-hero h1{margin:0;font-size:clamp(2.4rem,9vw,4.5rem);line-height:.95;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-home-settings{gap:.8rem}.chessimals-home-settings__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.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.is-your-turn{border-color:rgba(var(--chessimals-primary-rgb),.48);box-shadow:0 0 0 .12rem rgba(var(--chessimals-primary-rgb),.12),0 .95rem 2rem rgba(var(--chessimals-primary-rgb),.14)}.chessimals-turn-card.is-your-turn .chessimals-turn-card__chip{background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 0 0 .32rem rgba(var(--chessimals-primary-rgb),.14);animation:chessimals-turn-pulse 1.45s ease-in-out infinite}.chessimals-turn-card.is-waiting-turn .chessimals-turn-card__chip{color:var(--chessimals-muted)}@keyframes chessimals-turn-pulse{0%,to{transform:translateZ(0) scale(1)}50%{transform:translateZ(0) scale(1.035)}}.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__avatar--initials{font-size:.78rem;font-weight:950}.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-replay,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-howto{border:1px solid var(--chessimals-border);background:var(--chessimals-soft);color:var(--chessimals-text)}.chessimals-howto p{color:var(--chessimals-muted)}.chessimals-howto__actions{display:flex;flex-wrap:wrap;gap:.625rem}:host-context(html.ion-palette-dark) .chessimals-howto,:host-context([data-theme=\"dark\"]) .chessimals-howto{border-color:#f6e3d533;background:#172116;color:#f6f3e9}:host-context(html.ion-palette-dark) .chessimals-howto p,:host-context([data-theme=\"dark\"]) .chessimals-howto p{color:#c8cfb1}.chessimals-result{order:5}.chessimals-result__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.35rem}.chessimals-result__stats span{display:grid;gap:.15rem;min-width:0;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:.85rem;padding:.58rem .6rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-result__stats small{overflow:hidden;color:var(--chessimals-muted);font-size:.68rem;font-weight:950;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.chessimals-result__stats b{overflow:hidden;color:var(--chessimals-text);font-size:.92rem;font-weight:950;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.chessimals-result__detail{margin:.2rem 0 0}.chessimals-bot-report{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;margin-top:.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-bot-report>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.85rem;background:rgba(var(--chessimals-secondary-rgb),.14);font-size:1.45rem;box-shadow:inset 0 0 0 1px rgba(var(--chessimals-primary-rgb),.14)}.chessimals-bot-report div{display:grid;gap:.12rem;min-width:0}.chessimals-bot-report small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-bot-report strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-bot-report p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:820;line-height:1.28}.chessimals-online-status{order:3;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1.1rem;padding:.85rem .95rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.09),transparent),var(--chessimals-panel)}.chessimals-online-status>span{width:.72rem;height:.72rem;border-radius:999px;background:var(--chessimals-primary);box-shadow:0 0 0 .38rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-online-status.is-syncing>span{animation:chessimals-online-pulse .9s ease-in-out infinite}.chessimals-online-status.is-error{border-color:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.28);background:linear-gradient(135deg,rgba(var(--ion-color-danger-rgb, 235, 68, 90),.1),transparent),var(--chessimals-panel)}.chessimals-online-status.is-error>span{background:var(--ion-color-danger, #eb445a);box-shadow:0 0 0 .38rem rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.chessimals-online-status div{display:grid;gap:.12rem;min-width:0}.chessimals-online-status strong{overflow:hidden;color:var(--chessimals-text);font-size:.95rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-online-status p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:780;line-height:1.28}.chessimals-series{display:grid;gap:.18rem;margin-top:.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-secondary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-series--compact{margin-top:0}.chessimals-series small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-series strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-series span{color:var(--chessimals-muted);font-size:.84rem;font-weight:820;line-height:1.28}.chessimals-replay{order:5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.2);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-replay>div:first-child{display:grid;gap:.15rem;min-width:0}.chessimals-replay strong{font-size:1rem;font-weight:950}.chessimals-replay span{color:var(--chessimals-muted);font-size:.86rem;font-weight:800;line-height:1.25}.chessimals-replay__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.chessimals-replay__actions .chessimals-secondary{min-height:2.5rem;padding:0 .8rem}.chessimals-tutorial{order:3;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:1rem;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1.25rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel)}.chessimals-tutorial>div{display:grid;gap:.18rem;min-width:0}.chessimals-tutorial small{color:var(--chessimals-primary);font-size:.76rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-tutorial strong{font-size:1rem;font-weight:950}.chessimals-tutorial p{margin:0;color:var(--chessimals-muted);font-size:.88rem;font-weight:780;line-height:1.35}.chessimals-tutorial .chessimals-secondary{min-height:2.5rem;padding:0 .85rem}.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-rematch-player{background:#ffffff7a}:host-context(html.ion-palette-dark) .chessimals-rematch-player,:host-context([data-theme=\"dark\"]) .chessimals-rematch-player{background:#ffffff0f}.chessimals-rematch-status__actions{display:flex;justify-content:flex-end}.chessimals-rematch-status__actions .chessimals-secondary{min-height:2.5rem;padding:0 .95rem}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.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:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font:inherit;font-weight:950;box-shadow:0 .75rem 1.6rem rgba(var(--chessimals-primary-rgb),.28)}.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-bots{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.625rem}.chessimals-bots button{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"avatar title\" \"avatar body\";column-gap:.55rem;row-gap:.12rem;min-width:0;min-height:4.75rem;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.65rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-bots button>span{grid-area:avatar;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.2rem}.chessimals-bots button strong{grid-area:title;align-self:end;font-size:.95rem;font-weight:950}.chessimals-bots button small{grid-area:body;color:var(--chessimals-muted);font-size:.75rem;font-weight:750;line-height:1.25}.chessimals-bots 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),0 .75rem 1.5rem rgba(var(--chessimals-primary-rgb),.1)}.chessimals-bot-preview{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-secondary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-bot-preview>span{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.9rem;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.55rem;box-shadow:inset 0 0 0 1px rgba(var(--chessimals-primary-rgb),.14)}.chessimals-bot-preview div{display:grid;gap:.12rem;min-width:0}.chessimals-bot-preview small{color:var(--chessimals-muted);font-size:.7rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-bot-preview strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-bot-preview p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:800;line-height:1.3}.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{--chessimals-board-radius: min(.85rem, 14px);display:flex;justify-content:center;min-width:0;max-width:100%;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{flex:0 1 58rem;min-width:0;width:100%;max-width:58rem;border-radius:var(--chessimals-board-radius)}.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));min-width:0;width:100%;aspect-ratio:1 / 1;overflow:hidden;isolation:isolate;contain:paint;border:1px solid var(--chessimals-border);border-radius:var(--chessimals-board-radius);clip-path:inset(0 round var(--chessimals-board-radius));-webkit-mask-image:-webkit-radial-gradient(white,black);background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.34),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.1),transparent 22%),radial-gradient(ellipse at 32% 68%,rgba(var(--chessimals-stone-rgb),.05),transparent 30%),radial-gradient(ellipse at 66% 34%,rgba(255,255,255,.08),transparent 24%),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-primary-rgb),.56);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-primary-rgb),.26));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:.5rem;padding:1.25rem;background:radial-gradient(circle at 50% 34%,rgba(255,226,129,.34),transparent 24%),radial-gradient(circle at 50% 52%,rgba(var(--chessimals-primary-rgb),.34),transparent 42%),linear-gradient(135deg,#140c16e0,#08120dc7);color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay.is-defeat{background:radial-gradient(circle at 50% 34%,rgba(143,168,206,.26),transparent 24%),radial-gradient(circle at 50% 52%,rgba(72,86,115,.42),transparent 42%),linear-gradient(135deg,#090c14e6,#1c1e2bcc)}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.58) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.7) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.54) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.48) 0 .07rem,transparent .09rem),radial-gradient(circle at 84% 66%,rgba(255,255,255,.38) 0 .06rem,transparent .08rem),radial-gradient(circle at 14% 64%,rgba(255,226,129,.48) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay__rays{position:absolute;inset:-18%;background:conic-gradient(from 8deg,transparent 0 7deg,rgba(255,226,129,.16) 7deg 11deg,transparent 11deg 22deg);opacity:.85;animation:chessimals-finale-rays 8s linear infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__rays{background:conic-gradient(from 8deg,transparent 0 8deg,rgba(180,204,240,.1) 8deg 12deg,transparent 12deg 24deg);animation-duration:12s}.chessimals-board-overlay__ribbon{position:absolute;top:-20%;width:.42rem;height:54%;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(255,226,129,.72),transparent);opacity:.7;transform:rotate(var(--ribbon-angle, 12deg));animation:chessimals-finale-ribbon 2.5s ease-in-out infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__ribbon{background:linear-gradient(to bottom,transparent,rgba(180,204,240,.42),transparent);opacity:.48}.chessimals-board-overlay__ribbon.ribbon-a{left:18%;--ribbon-angle: -18deg}.chessimals-board-overlay__ribbon.ribbon-b{left:50%;--ribbon-angle: 8deg;animation-delay:.32s}.chessimals-board-overlay__ribbon.ribbon-c{right:18%;--ribbon-angle: 20deg;animation-delay:.64s}.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 em{justify-self:center;display:grid;place-items:center;width:clamp(3rem,14vw,4.6rem);height:clamp(3rem,14vw,4.6rem);border:.16rem solid rgba(255,255,255,.62);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.72),transparent 18%),linear-gradient(135deg,#ffe281,#b98436);color:#2d2412;font-size:clamp(1.1rem,5vw,1.65rem);font-style:normal;font-weight:950;box-shadow:0 0 0 .45rem #ffe2811f,0 1rem 2rem #00000042;animation:chessimals-finale-medal 1.8s ease-in-out infinite}.chessimals-board-overlay.is-defeat em{background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.48),transparent 18%),linear-gradient(135deg,#d9e2ef,#69758e);color:#182032;box-shadow:0 0 0 .45rem #b4ccf01a,0 1rem 2rem #00000052}.chessimals-board-overlay em.has-avatar{overflow:hidden;background:#fff;padding:0}.chessimals-board-overlay em.has-avatar img{display:block;width:100%;height:100%;object-fit:cover}.chessimals-board-overlay b{justify-self:center;color:#fffc;font-size:.8rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}.chessimals-board-overlay__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;width:min(26rem,92%);margin:.2rem auto 0}.chessimals-board-overlay__stats div{display:grid;gap:.08rem;min-width:0;border:1px solid rgba(255,255,255,.18);border-radius:.75rem;padding:.42rem .46rem;background:#ffffff1a;backdrop-filter:blur(3px)}.chessimals-board-overlay__stats dt,.chessimals-board-overlay__stats dd{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.chessimals-board-overlay__stats dt{color:#ffffffad;font-size:clamp(.52rem,2.1vw,.66rem);font-weight:950;letter-spacing:.04em;text-transform:uppercase}.chessimals-board-overlay__stats dd{color:#fff;font-size:clamp(.68rem,2.8vw,.88rem);font-weight:950}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}@keyframes chessimals-finale-rays{to{transform:rotate(360deg)}}@keyframes chessimals-finale-ribbon{0%,to{opacity:.18;transform:translateY(-.5rem) rotate(var(--ribbon-angle))}50%{opacity:.75;transform:translateY(1.4rem) rotate(var(--ribbon-angle))}}@keyframes chessimals-finale-medal{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.18rem) scale(1.04)}}.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 26% 24%,rgba(255,255,255,.12),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(61,54,36,.06),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 52%,rgba(52,44,28,.04)),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-texture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none;opacity:.42;mix-blend-mode:multiply;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.16),transparent 17%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.09),transparent 25%),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.045) 0 1px,transparent 1px .52rem),linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(52,44,28,.045))}.chessimals-cell-texture:after{position:absolute;inset:.08rem;border:1px solid rgba(75,66,42,.05);border-radius:.18rem;box-shadow:inset .08rem .08rem #ffffff14,inset -.08rem -.08rem #342c1c0b;content:\"\"}.chessimals-cell.is-edge-cell .chessimals-cell-texture{opacity:.56;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.14),transparent 18%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.14),transparent 28%),linear-gradient(135deg,rgba(70,52,28,.055),transparent 44%,rgba(52,44,28,.09)),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.055) 0 1px,transparent 1px .48rem)}.chessimals-cell.wear-0{--wear-x: 22%;--wear-y: 24%;--wear-x2: 78%;--wear-y2: 72%;--wear-angle: 18deg}.chessimals-cell.wear-1{--wear-x: 64%;--wear-y: 18%;--wear-x2: 30%;--wear-y2: 76%;--wear-angle: -24deg}.chessimals-cell.wear-2{--wear-x: 42%;--wear-y: 58%;--wear-x2: 82%;--wear-y2: 26%;--wear-angle: 42deg}.chessimals-cell.wear-3{--wear-x: 74%;--wear-y: 68%;--wear-x2: 24%;--wear-y2: 28%;--wear-angle: -12deg}.chessimals-cell.wear-4{--wear-x: 34%;--wear-y: 18%;--wear-x2: 62%;--wear-y2: 84%;--wear-angle: 64deg}.chessimals-cell.wear-5{--wear-x: 18%;--wear-y: 70%;--wear-x2: 70%;--wear-y2: 34%;--wear-angle: -48deg}:host-context(html.ion-palette-dark) .chessimals-cell-texture,:host-context([data-theme=\"dark\"]) .chessimals-cell-texture{opacity:.34;mix-blend-mode:soft-light}.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}.chessimals-cell.has-capture-ready:not(.is-selected):after{position:absolute;inset:16%;z-index:3;border:max(2px,1.45%) solid rgba(var(--chessimals-selected-rgb),.72);border-radius:999px;box-shadow:0 0 .65rem rgba(var(--chessimals-selected-rgb),.34),inset 0 0 .55rem #ffffff2e;content:\"\"}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-capture-rgb),.16),transparent 52%),var(--chessimals-cell-bg)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture) .chessimals-piece{filter:drop-shadow(0 0 .38rem rgba(var(--chessimals-capture-rgb),.5)) var(--chessimals-piece-white-shadow)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture) .chessimals-piece.is-black{filter:drop-shadow(0 0 .38rem rgba(var(--chessimals-capture-rgb),.5)) var(--chessimals-piece-black-shadow)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture):before{position:absolute;top:.26rem;right:.26rem;z-index:4;width:.48rem;height:.48rem;border-radius:999px;background:rgba(var(--chessimals-capture-rgb),.86);box-shadow:0 0 0 .18rem rgba(var(--chessimals-capture-rgb),.18);content:\"\"}@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:68%;height:74%;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(82, 65, 46, .34);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{top:46%;z-index:0;width:58%;height:41%;border-radius:34% 34% 12% 12%;background:linear-gradient(96deg,var(--chessimals-piece-side) 0 34%,transparent 35%),var(--chessimals-piece-fill);clip-path:polygon(22% 0,78% 0,96% 100%,4% 100%);opacity:.92}.chessimals-piece__head{top:1%;z-index:4;width:48%;height:40%;border-radius:999px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.72) 0 13%,transparent 14%),linear-gradient(135deg,rgba(255,255,255,.28) 0 34%,transparent 35%),var(--chessimals-piece-fill);box-shadow:inset -.18rem -.12rem #52412e0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .18rem -.12rem #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:37%;z-index:5;width:72%;height:15%;border-radius:999px;background:linear-gradient(180deg,#f5cd77 0%,var(--chessimals-piece-gold) 55%,var(--chessimals-piece-gold-dark) 100%);border-color:color-mix(in srgb,var(--chessimals-piece-gold-dark) 72%,transparent);box-shadow:inset 0 .12rem #ffffff47,inset 0 -.08rem #462e1238,0 .08rem .18rem #462e1224}.chessimals-piece__neck{top:50%;z-index:2;width:52%;height:31%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);background:linear-gradient(100deg,var(--chessimals-piece-side) 0 28%,transparent 29%),linear-gradient(180deg,var(--chessimals-piece-fill),color-mix(in srgb,var(--chessimals-piece-fill) 78%,var(--chessimals-piece-side)));box-shadow:inset -.12rem .1rem #ffffff14}.chessimals-piece__base{bottom:0;z-index:6;width:86%;height:17%;border-radius:.42rem .42rem .22rem .22rem;background:linear-gradient(100deg,var(--chessimals-piece-side) 0 18%,transparent 19%),linear-gradient(180deg,color-mix(in srgb,var(--chessimals-piece-fill) 92%,#ffffff),var(--chessimals-piece-fill));box-shadow:inset 0 .12rem #ffffff24,inset 0 -.1rem 0 var(--chessimals-piece-line)}.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:3.25rem;height:3.25rem;padding:.34rem;overflow:hidden;border-radius:1.2rem;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.82),transparent 55%),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),0 .45rem 1.15rem #2e3a2c1a}.chessimals-animal-face img{display:block;width:100%;height:100%;object-fit:contain;border-radius:.72rem;background:var(--chessimals-animal-face-inner-bg);box-shadow:inset 0 0 0 1px #2e3a2c14;transform:none;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 35% 22%,rgba(255,255,255,.82),transparent 55%),var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2e3a2c24,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.18)}.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-replay,.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{--chessimals-board-radius: min(.625rem, 10px);width:min(96vw,82vh,58rem);max-width:none}.chessimals-shell--projection .chessimals-board-frame{flex-basis:auto;max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-replay,.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-settings{display:grid;gap:.85rem}.chessimals-settings article{display:grid;gap:.65rem;padding:.9rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-about{display:grid;justify-items:center;gap:1rem;color:var(--ion-text-color, var(--chessimals-text))}.chessimals-about__logo{display:block;width:min(12rem,72vw);aspect-ratio:1 / 1;object-fit:contain;border-radius:1.25rem;background:#fff;box-shadow:0 1rem 2rem #2e3a2c24}.chessimals-about p{margin:0;color:var(--ion-color-medium, var(--chessimals-muted));font-size:.95rem;font-weight:750;line-height:1.45;text-align:center}.chessimals-about dl{display:grid;width:100%;margin:0;gap:.65rem}.chessimals-about dl div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem .95rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-about dt,.chessimals-about dd{margin:0}.chessimals-about dt{color:var(--ion-color-medium, var(--chessimals-muted));font-size:.78rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-about dd{color:var(--ion-text-color, var(--chessimals-text));font-size:.95rem;font-weight:950}.chessimals-rules__hero{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:1.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);box-shadow:0 1rem 2.25rem #2e3a2c1f}.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{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;min-height:0;border-radius:.95rem;padding:.5rem}.chessimals-turn-card__copy{gap:.1rem}.chessimals-turn-card__chip{max-width:100%;padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.92rem,4.4vw,1.12rem);line-height:1.08}.chessimals-turn-card p{display:-webkit-box;overflow:hidden;font-size:.72rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chessimals-player-strip{width:auto;max-width:none;min-width:0;padding:.25rem}.chessimals-player-strip val-user-avatar,.chessimals-player-strip__avatar{flex-basis:1.55rem;width:1.55rem;height:1.55rem}.chessimals-player-strip__text{display:none}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.chessimals-status div{gap:.14rem;min-height:2.2rem;border-radius:.82rem;padding:.34rem .3rem}.chessimals-status small{font-size:.58rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.78rem,3.2vw,.94rem);line-height:1.05}.chessimals-tip,.chessimals-result,.chessimals-replay,.chessimals-online-status,.chessimals-tutorial{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong,.chessimals-replay strong,.chessimals-tutorial strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-result__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chessimals-replay,.chessimals-tutorial{grid-template-columns:1fr}.chessimals-replay__actions{justify-content:stretch}.chessimals-replay__actions .chessimals-secondary{flex:1 1 8rem}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:100%;margin-inline:0;padding:0}.chessimals-board-frame{width:100%}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.55rem}.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:3.95rem;border-radius:.85rem;padding:.34rem .22rem}.chessimals-animal-face{width:2.35rem;height:2.35rem;padding:.26rem;border-radius:.85rem}.chessimals-animal-face img{border-radius:.55rem}.chessimals-cards strong{font-size:.62rem}.chessimals-board{border-radius:var(--chessimals-board-radius)}.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: RangeInputComponent, selector: "val-range-input", inputs: ["props"], outputs: ["rangeChange"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: UserAvatarComponent, selector: "val-user-avatar", inputs: ["props"], outputs: ["onClick"] }] }); }
|
|
65906
66655
|
}
|
|
65907
66656
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChessimalsGameComponent, decorators: [{
|
|
65908
66657
|
type: Component,
|
|
@@ -65921,12 +66670,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
65921
66670
|
<article class="chessimals-howto">
|
|
65922
66671
|
<h2>{{ t('chessimalsHowToTitle') }}</h2>
|
|
65923
66672
|
<p>{{ t('chessimalsHowToBody') }}</p>
|
|
65924
|
-
<
|
|
65925
|
-
|
|
65926
|
-
|
|
65927
|
-
|
|
65928
|
-
|
|
65929
|
-
|
|
66673
|
+
<div class="chessimals-howto__actions">
|
|
66674
|
+
<button class="chessimals-learn-more" type="button" (click)="startTutorial()">
|
|
66675
|
+
{{ t('chessimalsTutorialStart') }}
|
|
66676
|
+
</button>
|
|
66677
|
+
<button class="chessimals-learn-more" type="button" (click)="openRulesModal()">
|
|
66678
|
+
{{ t('learnMore') }}
|
|
66679
|
+
</button>
|
|
66680
|
+
</div>
|
|
65930
66681
|
</article>
|
|
65931
66682
|
|
|
65932
66683
|
<div class="chessimals-size" role="radiogroup" [attr.aria-label]="t('chessimalsBoardSize')">
|
|
@@ -65980,6 +66731,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
65980
66731
|
</button>
|
|
65981
66732
|
}
|
|
65982
66733
|
</div>
|
|
66734
|
+
@if (selectedBotProfile(); as profile) {
|
|
66735
|
+
<article class="chessimals-bot-preview">
|
|
66736
|
+
<span aria-hidden="true">{{ profile.avatar }}</span>
|
|
66737
|
+
<div>
|
|
66738
|
+
<small>{{ botDifficultyLabel(profile.difficulty) }}</small>
|
|
66739
|
+
<strong>{{ botProfileLabel(profile) }}</strong>
|
|
66740
|
+
<p>{{ botProfileTendency(profile) }}</p>
|
|
66741
|
+
</div>
|
|
66742
|
+
</article>
|
|
66743
|
+
}
|
|
65983
66744
|
}
|
|
65984
66745
|
|
|
65985
66746
|
<button class="chessimals-primary" type="button" (click)="startGame()">
|
|
@@ -66052,7 +66813,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66052
66813
|
</div>
|
|
66053
66814
|
</div>
|
|
66054
66815
|
<div class="chessimals-history__list">
|
|
66055
|
-
@for (entry of onlineHistory(); track entry.gameId) {
|
|
66816
|
+
@for (entry of onlineHistory().slice(0, 6); track entry.gameId) {
|
|
66056
66817
|
<button type="button" class="chessimals-history__item" (click)="openHistoryGame(entry)">
|
|
66057
66818
|
<span>
|
|
66058
66819
|
<strong>{{ entry.gameId }}</strong>
|
|
@@ -66064,6 +66825,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66064
66825
|
</div>
|
|
66065
66826
|
</article>
|
|
66066
66827
|
}
|
|
66828
|
+
|
|
66829
|
+
<article class="chessimals-online chessimals-home-settings">
|
|
66830
|
+
<div>
|
|
66831
|
+
<h2>{{ t('chessimalsSettings') }}</h2>
|
|
66832
|
+
<p>{{ t('chessimalsSettingsSubtitle') }}</p>
|
|
66833
|
+
</div>
|
|
66834
|
+
<div class="chessimals-home-settings__actions">
|
|
66835
|
+
<button class="chessimals-secondary" type="button" (click)="openSettingsModal()">
|
|
66836
|
+
{{ t('chessimalsSettings') }}
|
|
66837
|
+
</button>
|
|
66838
|
+
<button class="chessimals-secondary" type="button" (click)="openAboutModal()">
|
|
66839
|
+
{{ t('chessimalsAbout') }}
|
|
66840
|
+
</button>
|
|
66841
|
+
</div>
|
|
66842
|
+
</article>
|
|
66067
66843
|
</section>
|
|
66068
66844
|
} @else {
|
|
66069
66845
|
<section class="chessimals-game">
|
|
@@ -66081,15 +66857,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66081
66857
|
class="chessimals-turn-card"
|
|
66082
66858
|
[class.is-black-turn]="game().currentTurn === 'black'"
|
|
66083
66859
|
[class.is-finished]="game().status === 'finished'"
|
|
66860
|
+
[class.is-your-turn]="isActionableTurn()"
|
|
66861
|
+
[class.is-waiting-turn]="isWaitingForTurn()"
|
|
66084
66862
|
>
|
|
66085
66863
|
<div class="chessimals-turn-card__copy">
|
|
66086
66864
|
<span class="chessimals-turn-card__chip">
|
|
66087
|
-
{{
|
|
66865
|
+
{{ turnStateLabel() }}
|
|
66088
66866
|
</span>
|
|
66089
66867
|
<strong>{{ game().status === 'finished' ? winTitle() : turnTitle() }}</strong>
|
|
66090
|
-
|
|
66091
|
-
<p>{{ winBody() }}</p>
|
|
66092
|
-
}
|
|
66868
|
+
<p>{{ turnStateBody() }}</p>
|
|
66093
66869
|
</div>
|
|
66094
66870
|
|
|
66095
66871
|
<div class="chessimals-player-strip">
|
|
@@ -66122,8 +66898,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66122
66898
|
@if (pendingGuestAvatarUrl()) {
|
|
66123
66899
|
<val-user-avatar [props]="pendingGuestAvatarProps()" />
|
|
66124
66900
|
} @else {
|
|
66125
|
-
<span class="chessimals-player-strip__avatar" aria-hidden="true">
|
|
66126
|
-
{{
|
|
66901
|
+
<span class="chessimals-player-strip__avatar chessimals-player-strip__avatar--initials" aria-hidden="true">
|
|
66902
|
+
{{ pendingGuestInitials() }}
|
|
66127
66903
|
</span>
|
|
66128
66904
|
}
|
|
66129
66905
|
<div>
|
|
@@ -66194,6 +66970,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66194
66970
|
</div>
|
|
66195
66971
|
</div>
|
|
66196
66972
|
|
|
66973
|
+
@if (shouldShowOnlineStatus()) {
|
|
66974
|
+
<article
|
|
66975
|
+
class="chessimals-online-status"
|
|
66976
|
+
[class.is-error]="onlineConnectionState() === 'error' || game().status === 'expired'"
|
|
66977
|
+
[class.is-syncing]="onlineConnectionState() === 'connecting' || moveSyncing()"
|
|
66978
|
+
aria-live="polite"
|
|
66979
|
+
>
|
|
66980
|
+
<span aria-hidden="true"></span>
|
|
66981
|
+
<div>
|
|
66982
|
+
<strong>{{ onlineStatusTitle() }}</strong>
|
|
66983
|
+
<p>{{ onlineStatusBody() }}</p>
|
|
66984
|
+
</div>
|
|
66985
|
+
</article>
|
|
66986
|
+
}
|
|
66987
|
+
|
|
66988
|
+
@if (tutorialMode()) {
|
|
66989
|
+
<article class="chessimals-tutorial" aria-live="polite">
|
|
66990
|
+
<div>
|
|
66991
|
+
<small>{{ tutorialProgressLabel() }}</small>
|
|
66992
|
+
<strong>{{ tutorialTitle() }}</strong>
|
|
66993
|
+
<p>{{ tutorialBody() }}</p>
|
|
66994
|
+
</div>
|
|
66995
|
+
<button class="chessimals-secondary" type="button" (click)="exitTutorial()">
|
|
66996
|
+
{{ t('chessimalsTutorialExit') }}
|
|
66997
|
+
</button>
|
|
66998
|
+
</article>
|
|
66999
|
+
}
|
|
67000
|
+
|
|
66197
67001
|
<section class="chessimals-arena">
|
|
66198
67002
|
<section
|
|
66199
67003
|
#boardAnchor
|
|
@@ -66227,6 +67031,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66227
67031
|
[class.is-selected]="isSelectedCell(row, col)"
|
|
66228
67032
|
[class.is-legal]="isLegalCell(row, col)"
|
|
66229
67033
|
[class.is-capture]="isCaptureCell(row, col)"
|
|
67034
|
+
[class.has-threat]="isThreatenedCell(row, col)"
|
|
67035
|
+
[class.has-capture-ready]="isCaptureReadyCell(row, col)"
|
|
66230
67036
|
[class.is-last]="isLastMoveCell(row, col)"
|
|
66231
67037
|
[class.is-moving-source]="isMovingSourceCell(row, col)"
|
|
66232
67038
|
[class.has-move-effect]="isMoveEffectCell(row, col)"
|
|
@@ -66316,10 +67122,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66316
67122
|
<i class="chessimals-board-overlay__ribbon ribbon-b"></i>
|
|
66317
67123
|
<i class="chessimals-board-overlay__ribbon ribbon-c"></i>
|
|
66318
67124
|
<span>{{ t('chessimalsGameOver') }}</span>
|
|
66319
|
-
|
|
67125
|
+
@if (winnerAvatarUrl()) {
|
|
67126
|
+
<em class="has-avatar">
|
|
67127
|
+
<img [src]="winnerAvatarUrl()" [alt]="winnerDisplayName()" />
|
|
67128
|
+
</em>
|
|
67129
|
+
} @else {
|
|
67130
|
+
<em>{{ winnerInitials() }}</em>
|
|
67131
|
+
}
|
|
66320
67132
|
<strong>{{ winTitle() }}</strong>
|
|
66321
67133
|
<b>{{ winnerSideLabel() }}</b>
|
|
66322
67134
|
<small>{{ movesSummary() }}</small>
|
|
67135
|
+
<dl class="chessimals-board-overlay__stats">
|
|
67136
|
+
@for (stat of resultStats(); track stat.label) {
|
|
67137
|
+
<div>
|
|
67138
|
+
<dt>{{ stat.label }}</dt>
|
|
67139
|
+
<dd>{{ stat.value }}</dd>
|
|
67140
|
+
</div>
|
|
67141
|
+
}
|
|
67142
|
+
</dl>
|
|
66323
67143
|
</div>
|
|
66324
67144
|
}
|
|
66325
67145
|
</div>
|
|
@@ -66346,7 +67166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66346
67166
|
type="button"
|
|
66347
67167
|
[class.is-selected]="selectedAnimal() === animal.type"
|
|
66348
67168
|
[class.is-used]="powerPlayer().cards[animal.type].used"
|
|
66349
|
-
[disabled]="!canUsePowerCards() || powerPlayer().cards[animal.type].used"
|
|
67169
|
+
[disabled]="!canUsePowerCards() || powerPlayer().cards[animal.type].used || isPowerCardBlockedByTutorial(animal.type)"
|
|
66350
67170
|
(click)="toggleAnimal(animal)"
|
|
66351
67171
|
>
|
|
66352
67172
|
<span class="chessimals-animal-face" aria-hidden="true">
|
|
@@ -66391,6 +67211,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66391
67211
|
<article class="chessimals-result">
|
|
66392
67212
|
<strong>{{ winTitle() }}</strong>
|
|
66393
67213
|
<p>{{ winBody() }}</p>
|
|
67214
|
+
<div class="chessimals-result__stats">
|
|
67215
|
+
@for (stat of resultStats(); track stat.label) {
|
|
67216
|
+
<span>
|
|
67217
|
+
<small>{{ stat.label }}</small>
|
|
67218
|
+
<b>{{ stat.value }}</b>
|
|
67219
|
+
</span>
|
|
67220
|
+
}
|
|
67221
|
+
</div>
|
|
67222
|
+
<p class="chessimals-result__detail">
|
|
67223
|
+
{{ t('chessimalsResultPowersUsed').replace('{powers}', resultPowersLabel()) }}
|
|
67224
|
+
</p>
|
|
67225
|
+
@if (shouldShowBotReport()) {
|
|
67226
|
+
<div class="chessimals-bot-report">
|
|
67227
|
+
<span aria-hidden="true">{{ gameBotProfile()?.avatar }}</span>
|
|
67228
|
+
<div>
|
|
67229
|
+
<small>{{ t('chessimalsBotReportTitle') }}</small>
|
|
67230
|
+
<strong>{{ botReportTitle() }}</strong>
|
|
67231
|
+
<p>{{ botReportBody() }}</p>
|
|
67232
|
+
</div>
|
|
67233
|
+
</div>
|
|
67234
|
+
}
|
|
67235
|
+
@if (seriesSummary()) {
|
|
67236
|
+
<div class="chessimals-series">
|
|
67237
|
+
<small>{{ t('chessimalsSeriesTitle') }}</small>
|
|
67238
|
+
<strong>{{ seriesSummary() }}</strong>
|
|
67239
|
+
@if (lastSeriesWinnerLabel()) {
|
|
67240
|
+
<span>{{ t('chessimalsSeriesLastWinner').replace('{player}', lastSeriesWinnerLabel()) }}</span>
|
|
67241
|
+
}
|
|
67242
|
+
</div>
|
|
67243
|
+
}
|
|
66394
67244
|
</article>
|
|
66395
67245
|
}
|
|
66396
67246
|
|
|
@@ -66412,6 +67262,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66412
67262
|
}}
|
|
66413
67263
|
</p>
|
|
66414
67264
|
</div>
|
|
67265
|
+
@if (seriesSummary()) {
|
|
67266
|
+
<div class="chessimals-series chessimals-series--compact">
|
|
67267
|
+
<small>{{ t('chessimalsSeriesTitle') }}</small>
|
|
67268
|
+
<strong>{{ seriesSummary() }}</strong>
|
|
67269
|
+
@if (lastSeriesWinnerLabel()) {
|
|
67270
|
+
<span>{{ t('chessimalsSeriesLastWinner').replace('{player}', lastSeriesWinnerLabel()) }}</span>
|
|
67271
|
+
}
|
|
67272
|
+
</div>
|
|
67273
|
+
}
|
|
67274
|
+
<div class="chessimals-pending-player chessimals-rematch-player">
|
|
67275
|
+
@if (rematchOpponentAvatarUrl()) {
|
|
67276
|
+
<val-user-avatar [props]="rematchOpponentAvatarProps()" />
|
|
67277
|
+
} @else {
|
|
67278
|
+
<span class="chessimals-player-strip__avatar chessimals-player-strip__avatar--initials" aria-hidden="true">
|
|
67279
|
+
{{ rematchOpponentInitials() }}
|
|
67280
|
+
</span>
|
|
67281
|
+
}
|
|
67282
|
+
<div>
|
|
67283
|
+
<small>{{ t('chessimalsRival') }}</small>
|
|
67284
|
+
<strong>{{ rematchOpponentName() }}</strong>
|
|
67285
|
+
@if (rematchOpponentHandle()) {
|
|
67286
|
+
<small>{{ rematchOpponentHandle() }}</small>
|
|
67287
|
+
}
|
|
67288
|
+
</div>
|
|
67289
|
+
</div>
|
|
67290
|
+
<div class="chessimals-rematch-status__actions">
|
|
67291
|
+
<button
|
|
67292
|
+
class="chessimals-secondary"
|
|
67293
|
+
[class.is-working]="rematchLoading()"
|
|
67294
|
+
type="button"
|
|
67295
|
+
[disabled]="rematchState() === 'requested' || rematchLoading()"
|
|
67296
|
+
(click)="requestOnlineRematch()"
|
|
67297
|
+
>
|
|
67298
|
+
@if (rematchLoading()) {
|
|
67299
|
+
<span class="chessimals-button-spinner" aria-hidden="true"></span>
|
|
67300
|
+
}
|
|
67301
|
+
{{ rematchActionLabel() }}
|
|
67302
|
+
</button>
|
|
67303
|
+
</div>
|
|
66415
67304
|
</article>
|
|
66416
67305
|
}
|
|
66417
67306
|
|
|
@@ -66420,7 +67309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66420
67309
|
<button class="chessimals-secondary" type="button" (click)="requestResign()">
|
|
66421
67310
|
{{ t('chessimalsResign') }}
|
|
66422
67311
|
</button>
|
|
66423
|
-
} @else if (game().mode === 'online' && canControlCurrentGame()) {
|
|
67312
|
+
} @else if (game().mode === 'online' && canControlCurrentGame() && rematchState() === 'none') {
|
|
66424
67313
|
<button
|
|
66425
67314
|
class="chessimals-secondary"
|
|
66426
67315
|
[class.is-working]="rematchLoading()"
|
|
@@ -66554,6 +67443,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66554
67443
|
</ng-template>
|
|
66555
67444
|
</ion-modal>
|
|
66556
67445
|
|
|
67446
|
+
<ion-modal
|
|
67447
|
+
[isOpen]="isAboutModalOpen()"
|
|
67448
|
+
cssClass="val-modal-adaptive"
|
|
67449
|
+
(didDismiss)="closeAboutModal()"
|
|
67450
|
+
>
|
|
67451
|
+
<ng-template>
|
|
67452
|
+
<val-modal-layout
|
|
67453
|
+
[title]="t('chessimalsAboutTitle')"
|
|
67454
|
+
[subtitle]="t('chessimalsAboutSubtitle')"
|
|
67455
|
+
[closeLabel]="t('close')"
|
|
67456
|
+
[actions]="aboutActions()"
|
|
67457
|
+
actionsAlign="end"
|
|
67458
|
+
(close)="closeAboutModal()"
|
|
67459
|
+
(actionClick)="closeAboutModal()"
|
|
67460
|
+
>
|
|
67461
|
+
<section class="chessimals-about">
|
|
67462
|
+
<img
|
|
67463
|
+
class="chessimals-about__logo"
|
|
67464
|
+
src="assets/games/chessimals/menu-logo.jpg"
|
|
67465
|
+
alt=""
|
|
67466
|
+
loading="lazy"
|
|
67467
|
+
/>
|
|
67468
|
+
<p>{{ t('chessimalsAboutBody') }}</p>
|
|
67469
|
+
<dl>
|
|
67470
|
+
<div>
|
|
67471
|
+
<dt>{{ t('chessimalsAboutLibVersion') }}</dt>
|
|
67472
|
+
<dd>{{ valtechComponentsVersion }}</dd>
|
|
67473
|
+
</div>
|
|
67474
|
+
</dl>
|
|
67475
|
+
</section>
|
|
67476
|
+
</val-modal-layout>
|
|
67477
|
+
</ng-template>
|
|
67478
|
+
</ion-modal>
|
|
67479
|
+
|
|
66557
67480
|
<ion-modal
|
|
66558
67481
|
[isOpen]="!!confirmAction()"
|
|
66559
67482
|
cssClass="val-modal-adaptive"
|
|
@@ -66571,7 +67494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66571
67494
|
/>
|
|
66572
67495
|
</ng-template>
|
|
66573
67496
|
</ion-modal>
|
|
66574
|
-
`, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #ffffff;--chessimals-surface: #fffaf1;--chessimals-border: rgba(46, 58, 44, .18);--chessimals-text: #2e3a2c;--chessimals-muted: #51643d;--chessimals-soft: rgba(111, 122, 60, .1);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-selected: #37f28a;--chessimals-selected-rgb: 55, 242, 138;--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: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(46, 58, 44, .14);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: #f3eadb;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .52)) drop-shadow(0 .18rem .12rem rgba(72, 58, 36, .22)) drop-shadow(0 .34rem .42rem rgba(72, 58, 36, .22));--chessimals-piece-black-fill: #242936;--chessimals-piece-black-side: #171b25;--chessimals-piece-black-line: rgba(255, 255, 255, .1);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 .18rem .1rem rgba(255, 255, 255, .12)) drop-shadow(0 .32rem .42rem rgba(0, 0, 0, .36));--chessimals-piece-gold: #c79a42;--chessimals-piece-gold-dark: #8a5f22;--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(46, 58, 44, .12);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(46, 58, 44, .18));--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)}@media (prefers-color-scheme: dark){.chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(242, 230, 213, .2);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-animal-face-border: rgba(242, 230, 213, .24)}}.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__paw{display:grid;place-items:center;width:clamp(4.6rem,16vw,5.6rem);height:clamp(4.6rem,16vw,5.6rem);border-radius:1.55rem;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),transparent 34%),linear-gradient(145deg,#fffffff5,rgba(var(--chessimals-secondary-rgb),.22)),color-mix(in srgb,var(--chessimals-panel) 82%,white);border:.12rem solid rgba(var(--chessimals-primary-rgb),.22);box-shadow:0 1.15rem 2.6rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.16),0 0 0 .42rem #ffffff6b,inset 0 -.25rem .6rem rgba(var(--chessimals-primary-rgb),.08);animation:chessimals-resume-pulse 1.2s ease-in-out infinite;font-size:clamp(2.45rem,9vw,3.35rem);line-height:1;filter:drop-shadow(0 .28rem .38rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18))}.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: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(246, 227, 213, .22);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #e8eadc;--chessimals-cell-dark: #5f7040;--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: #f0e5d4;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .48)) drop-shadow(0 .18rem .12rem rgba(0, 0, 0, .24)) drop-shadow(0 .34rem .42rem rgba(0, 0, 0, .3));--chessimals-piece-black-fill: #202633;--chessimals-piece-black-side: #111620;--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 .18rem .1rem rgba(255, 255, 255, .14)) drop-shadow(0 .34rem .44rem rgba(0, 0, 0, .52));--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(242, 230, 213, .24);--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;justify-items:center;overflow:hidden;border-radius:1.75rem;padding:clamp(1.25rem,5vw,2.5rem);background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.92),transparent 20%),linear-gradient(135deg,#fdf8ee,#fff 40%,#edf3df);color:var(--chessimals-text);text-align:center;border:1px solid var(--chessimals-border)}:host-context(html.ion-palette-dark) .chessimals-hero,:host-context([data-theme=\"dark\"]) .chessimals-hero{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.08),transparent 22%),linear-gradient(135deg,#111a10,#172116 48%,#0f170f);color:var(--chessimals-text);border-color:#f6e3d538}.chessimals-hero__logo{display:grid;place-items:center;width:min(22rem,82vw);max-width:100%;padding:.5rem;border-radius:1.35rem;background:#fff;box-shadow:0 1rem 2.5rem #2e3a2c1a,inset 0 0 0 1px #2e3a2c14}.chessimals-hero__logo img{display:block;width:100%;height:auto;max-height:12rem;object-fit:contain;border-radius:1rem}.chessimals-hero h1{margin:0;font-size:clamp(2.4rem,9vw,4.5rem);line-height:.95;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-replay,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-howto{border:1px solid var(--chessimals-border);background:var(--chessimals-soft);color:var(--chessimals-text)}.chessimals-howto p{color:var(--chessimals-muted)}:host-context(html.ion-palette-dark) .chessimals-howto,:host-context([data-theme=\"dark\"]) .chessimals-howto{border-color:#f6e3d533;background:#172116;color:#f6f3e9}:host-context(html.ion-palette-dark) .chessimals-howto p,:host-context([data-theme=\"dark\"]) .chessimals-howto p{color:#c8cfb1}.chessimals-result{order:5}.chessimals-replay{order:5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.2);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-replay>div:first-child{display:grid;gap:.15rem;min-width:0}.chessimals-replay strong{font-size:1rem;font-weight:950}.chessimals-replay span{color:var(--chessimals-muted);font-size:.86rem;font-weight:800;line-height:1.25}.chessimals-replay__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.chessimals-replay__actions .chessimals-secondary{min-height:2.5rem;padding:0 .8rem}.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-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:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font:inherit;font-weight:950;box-shadow:0 .75rem 1.6rem rgba(var(--chessimals-primary-rgb),.28)}.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-bots{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.625rem}.chessimals-bots button{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"avatar title\" \"avatar body\";column-gap:.55rem;row-gap:.12rem;min-width:0;min-height:4.75rem;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.65rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-bots button>span{grid-area:avatar;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.2rem}.chessimals-bots button strong{grid-area:title;align-self:end;font-size:.95rem;font-weight:950}.chessimals-bots button small{grid-area:body;color:var(--chessimals-muted);font-size:.75rem;font-weight:750;line-height:1.25}.chessimals-bots 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),0 .75rem 1.5rem rgba(var(--chessimals-primary-rgb),.1)}.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{--chessimals-board-radius: min(.85rem, 14px);display:flex;justify-content:center;min-width:0;max-width:100%;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{flex:0 1 58rem;min-width:0;width:100%;max-width:58rem;border-radius:var(--chessimals-board-radius)}.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));min-width:0;width:100%;aspect-ratio:1 / 1;overflow:hidden;isolation:isolate;contain:paint;border:1px solid var(--chessimals-border);border-radius:var(--chessimals-board-radius);clip-path:inset(0 round var(--chessimals-board-radius));-webkit-mask-image:-webkit-radial-gradient(white,black);background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.34),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.1),transparent 22%),radial-gradient(ellipse at 32% 68%,rgba(var(--chessimals-stone-rgb),.05),transparent 30%),radial-gradient(ellipse at 66% 34%,rgba(255,255,255,.08),transparent 24%),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-primary-rgb),.56);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-primary-rgb),.26));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:.5rem;padding:1.25rem;background:radial-gradient(circle at 50% 34%,rgba(255,226,129,.34),transparent 24%),radial-gradient(circle at 50% 52%,rgba(var(--chessimals-primary-rgb),.34),transparent 42%),linear-gradient(135deg,#140c16e0,#08120dc7);color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay.is-defeat{background:radial-gradient(circle at 50% 34%,rgba(143,168,206,.26),transparent 24%),radial-gradient(circle at 50% 52%,rgba(72,86,115,.42),transparent 42%),linear-gradient(135deg,#090c14e6,#1c1e2bcc)}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.58) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.7) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.54) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.48) 0 .07rem,transparent .09rem),radial-gradient(circle at 84% 66%,rgba(255,255,255,.38) 0 .06rem,transparent .08rem),radial-gradient(circle at 14% 64%,rgba(255,226,129,.48) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay__rays{position:absolute;inset:-18%;background:conic-gradient(from 8deg,transparent 0 7deg,rgba(255,226,129,.16) 7deg 11deg,transparent 11deg 22deg);opacity:.85;animation:chessimals-finale-rays 8s linear infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__rays{background:conic-gradient(from 8deg,transparent 0 8deg,rgba(180,204,240,.1) 8deg 12deg,transparent 12deg 24deg);animation-duration:12s}.chessimals-board-overlay__ribbon{position:absolute;top:-20%;width:.42rem;height:54%;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(255,226,129,.72),transparent);opacity:.7;transform:rotate(var(--ribbon-angle, 12deg));animation:chessimals-finale-ribbon 2.5s ease-in-out infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__ribbon{background:linear-gradient(to bottom,transparent,rgba(180,204,240,.42),transparent);opacity:.48}.chessimals-board-overlay__ribbon.ribbon-a{left:18%;--ribbon-angle: -18deg}.chessimals-board-overlay__ribbon.ribbon-b{left:50%;--ribbon-angle: 8deg;animation-delay:.32s}.chessimals-board-overlay__ribbon.ribbon-c{right:18%;--ribbon-angle: 20deg;animation-delay:.64s}.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 em{justify-self:center;display:grid;place-items:center;width:clamp(3rem,14vw,4.6rem);height:clamp(3rem,14vw,4.6rem);border:.16rem solid rgba(255,255,255,.62);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.72),transparent 18%),linear-gradient(135deg,#ffe281,#b98436);color:#2d2412;font-size:clamp(1.1rem,5vw,1.65rem);font-style:normal;font-weight:950;box-shadow:0 0 0 .45rem #ffe2811f,0 1rem 2rem #00000042;animation:chessimals-finale-medal 1.8s ease-in-out infinite}.chessimals-board-overlay.is-defeat em{background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.48),transparent 18%),linear-gradient(135deg,#d9e2ef,#69758e);color:#182032;box-shadow:0 0 0 .45rem #b4ccf01a,0 1rem 2rem #00000052}.chessimals-board-overlay b{justify-self:center;color:#fffc;font-size:.8rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.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)}}@keyframes chessimals-finale-rays{to{transform:rotate(360deg)}}@keyframes chessimals-finale-ribbon{0%,to{opacity:.18;transform:translateY(-.5rem) rotate(var(--ribbon-angle))}50%{opacity:.75;transform:translateY(1.4rem) rotate(var(--ribbon-angle))}}@keyframes chessimals-finale-medal{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.18rem) scale(1.04)}}.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 26% 24%,rgba(255,255,255,.12),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(61,54,36,.06),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 52%,rgba(52,44,28,.04)),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-texture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none;opacity:.42;mix-blend-mode:multiply;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.16),transparent 17%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.09),transparent 25%),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.045) 0 1px,transparent 1px .52rem),linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(52,44,28,.045))}.chessimals-cell-texture:after{position:absolute;inset:.08rem;border:1px solid rgba(75,66,42,.05);border-radius:.18rem;box-shadow:inset .08rem .08rem #ffffff14,inset -.08rem -.08rem #342c1c0b;content:\"\"}.chessimals-cell.is-edge-cell .chessimals-cell-texture{opacity:.56;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.14),transparent 18%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.14),transparent 28%),linear-gradient(135deg,rgba(70,52,28,.055),transparent 44%,rgba(52,44,28,.09)),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.055) 0 1px,transparent 1px .48rem)}.chessimals-cell.wear-0{--wear-x: 22%;--wear-y: 24%;--wear-x2: 78%;--wear-y2: 72%;--wear-angle: 18deg}.chessimals-cell.wear-1{--wear-x: 64%;--wear-y: 18%;--wear-x2: 30%;--wear-y2: 76%;--wear-angle: -24deg}.chessimals-cell.wear-2{--wear-x: 42%;--wear-y: 58%;--wear-x2: 82%;--wear-y2: 26%;--wear-angle: 42deg}.chessimals-cell.wear-3{--wear-x: 74%;--wear-y: 68%;--wear-x2: 24%;--wear-y2: 28%;--wear-angle: -12deg}.chessimals-cell.wear-4{--wear-x: 34%;--wear-y: 18%;--wear-x2: 62%;--wear-y2: 84%;--wear-angle: 64deg}.chessimals-cell.wear-5{--wear-x: 18%;--wear-y: 70%;--wear-x2: 70%;--wear-y2: 34%;--wear-angle: -48deg}:host-context(html.ion-palette-dark) .chessimals-cell-texture,:host-context([data-theme=\"dark\"]) .chessimals-cell-texture{opacity:.34;mix-blend-mode:soft-light}.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:68%;height:74%;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(82, 65, 46, .34);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{top:46%;z-index:0;width:58%;height:41%;border-radius:34% 34% 12% 12%;background:linear-gradient(96deg,var(--chessimals-piece-side) 0 34%,transparent 35%),var(--chessimals-piece-fill);clip-path:polygon(22% 0,78% 0,96% 100%,4% 100%);opacity:.92}.chessimals-piece__head{top:1%;z-index:4;width:48%;height:40%;border-radius:999px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.72) 0 13%,transparent 14%),linear-gradient(135deg,rgba(255,255,255,.28) 0 34%,transparent 35%),var(--chessimals-piece-fill);box-shadow:inset -.18rem -.12rem #52412e0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .18rem -.12rem #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:37%;z-index:5;width:72%;height:15%;border-radius:999px;background:linear-gradient(180deg,#f5cd77 0%,var(--chessimals-piece-gold) 55%,var(--chessimals-piece-gold-dark) 100%);border-color:color-mix(in srgb,var(--chessimals-piece-gold-dark) 72%,transparent);box-shadow:inset 0 .12rem #ffffff47,inset 0 -.08rem #462e1238,0 .08rem .18rem #462e1224}.chessimals-piece__neck{top:50%;z-index:2;width:52%;height:31%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);background:linear-gradient(100deg,var(--chessimals-piece-side) 0 28%,transparent 29%),linear-gradient(180deg,var(--chessimals-piece-fill),color-mix(in srgb,var(--chessimals-piece-fill) 78%,var(--chessimals-piece-side)));box-shadow:inset -.12rem .1rem #ffffff14}.chessimals-piece__base{bottom:0;z-index:6;width:86%;height:17%;border-radius:.42rem .42rem .22rem .22rem;background:linear-gradient(100deg,var(--chessimals-piece-side) 0 18%,transparent 19%),linear-gradient(180deg,color-mix(in srgb,var(--chessimals-piece-fill) 92%,#ffffff),var(--chessimals-piece-fill));box-shadow:inset 0 .12rem #ffffff24,inset 0 -.1rem 0 var(--chessimals-piece-line)}.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:3.25rem;height:3.25rem;padding:.34rem;overflow:hidden;border-radius:1.2rem;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.82),transparent 55%),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),0 .45rem 1.15rem #2e3a2c1a}.chessimals-animal-face img{display:block;width:100%;height:100%;object-fit:contain;border-radius:.72rem;background:var(--chessimals-animal-face-inner-bg);box-shadow:inset 0 0 0 1px #2e3a2c14;transform:none;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 35% 22%,rgba(255,255,255,.82),transparent 55%),var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2e3a2c24,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.18)}.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-replay,.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{--chessimals-board-radius: min(.625rem, 10px);width:min(96vw,82vh,58rem);max-width:none}.chessimals-shell--projection .chessimals-board-frame{flex-basis:auto;max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-replay,.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-settings{display:grid;gap:.85rem}.chessimals-settings article{display:grid;gap:.65rem;padding:.9rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-rules__hero{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:1.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);box-shadow:0 1rem 2.25rem #2e3a2c1f}.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,.chessimals-replay{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong,.chessimals-replay strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-replay{grid-template-columns:1fr}.chessimals-replay__actions{justify-content:stretch}.chessimals-replay__actions .chessimals-secondary{flex:1 1 8rem}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:100%;margin-inline:0;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.35rem;height:2.35rem;padding:.26rem;border-radius:.85rem}.chessimals-animal-face img{border-radius:.55rem}.chessimals-cards strong{font-size:.66rem}.chessimals-board{border-radius:var(--chessimals-board-radius)}.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"] }]
|
|
67497
|
+
`, styles: [":host{display:block}.chessimals-shell{--chessimals-panel: #ffffff;--chessimals-surface: #fffaf1;--chessimals-border: rgba(46, 58, 44, .18);--chessimals-text: #2e3a2c;--chessimals-muted: #51643d;--chessimals-soft: rgba(111, 122, 60, .1);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-selected: #37f28a;--chessimals-selected-rgb: 55, 242, 138;--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: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(46, 58, 44, .14);--chessimals-piece-white-fill: #ffffff;--chessimals-piece-white-side: #f3eadb;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .52)) drop-shadow(0 .18rem .12rem rgba(72, 58, 36, .22)) drop-shadow(0 .34rem .42rem rgba(72, 58, 36, .22));--chessimals-piece-black-fill: #242936;--chessimals-piece-black-side: #171b25;--chessimals-piece-black-line: rgba(255, 255, 255, .1);--chessimals-piece-black-shadow: drop-shadow(0 0 1px rgba(255, 255, 255, .34)) drop-shadow(0 .18rem .1rem rgba(255, 255, 255, .12)) drop-shadow(0 .32rem .42rem rgba(0, 0, 0, .36));--chessimals-piece-gold: #c79a42;--chessimals-piece-gold-dark: #8a5f22;--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(46, 58, 44, .12);--chessimals-animal-face-filter: drop-shadow(0 .12rem .16rem rgba(46, 58, 44, .18));--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)}@media (prefers-color-scheme: dark){.chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(242, 230, 213, .2);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #f3f4e8;--chessimals-cell-dark: #7f944d;--chessimals-board-shadow: rgba(0, 0, 0, .34);--chessimals-animal-face-border: rgba(242, 230, 213, .24)}}.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__paw{display:grid;place-items:center;width:clamp(4.6rem,16vw,5.6rem);height:clamp(4.6rem,16vw,5.6rem);border-radius:1.55rem;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.96),transparent 34%),linear-gradient(145deg,#fffffff5,rgba(var(--chessimals-secondary-rgb),.22)),color-mix(in srgb,var(--chessimals-panel) 82%,white);border:.12rem solid rgba(var(--chessimals-primary-rgb),.22);box-shadow:0 1.15rem 2.6rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.16),0 0 0 .42rem #ffffff6b,inset 0 -.25rem .6rem rgba(var(--chessimals-primary-rgb),.08);animation:chessimals-resume-pulse 1.2s ease-in-out infinite;font-size:clamp(2.45rem,9vw,3.35rem);line-height:1;filter:drop-shadow(0 .28rem .38rem rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18))}.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)}}@keyframes chessimals-online-pulse{0%,to{transform:scale(1);opacity:.78}50%{transform:scale(1.22);opacity:1}}:host-context(html.ion-palette-dark) .chessimals-shell,:host-context([data-theme=\"dark\"]) .chessimals-shell{--chessimals-panel: #172116;--chessimals-surface: #0f170f;--chessimals-border: rgba(246, 227, 213, .22);--chessimals-text: #f6f3e9;--chessimals-muted: #c8cfb1;--chessimals-soft: rgba(111, 122, 60, .22);--chessimals-primary: #2e6f3e;--chessimals-primary-rgb: 46, 111, 62;--chessimals-primary-contrast: #fffaf0;--chessimals-secondary: #a8a06a;--chessimals-secondary-rgb: 168, 160, 106;--chessimals-sky: #c06a3d;--chessimals-sky-rgb: 192, 106, 61;--chessimals-stone: #8e9362;--chessimals-stone-rgb: 142, 147, 98;--chessimals-cell-light: #e8eadc;--chessimals-cell-dark: #5f7040;--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: #f0e5d4;--chessimals-piece-white-line: rgba(82, 65, 46, .12);--chessimals-piece-white-shadow: drop-shadow(0 0 1px rgba(84, 62, 34, .48)) drop-shadow(0 .18rem .12rem rgba(0, 0, 0, .24)) drop-shadow(0 .34rem .42rem rgba(0, 0, 0, .3));--chessimals-piece-black-fill: #202633;--chessimals-piece-black-side: #111620;--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 .18rem .1rem rgba(255, 255, 255, .14)) drop-shadow(0 .34rem .44rem rgba(0, 0, 0, .52));--chessimals-animal-face-bg: #fffdf7;--chessimals-animal-face-inner-bg: #ffffff;--chessimals-animal-face-border: rgba(242, 230, 213, .24);--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;justify-items:center;overflow:hidden;border-radius:1.75rem;padding:clamp(1.25rem,5vw,2.5rem);background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.92),transparent 20%),linear-gradient(135deg,#fdf8ee,#fff 40%,#edf3df);color:var(--chessimals-text);text-align:center;border:1px solid var(--chessimals-border)}:host-context(html.ion-palette-dark) .chessimals-hero,:host-context([data-theme=\"dark\"]) .chessimals-hero{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.08),transparent 22%),linear-gradient(135deg,#111a10,#172116 48%,#0f170f);color:var(--chessimals-text);border-color:#f6e3d538}.chessimals-hero__logo{display:grid;place-items:center;width:min(22rem,82vw);max-width:100%;padding:.5rem;border-radius:1.35rem;background:#fff;box-shadow:0 1rem 2.5rem #2e3a2c1a,inset 0 0 0 1px #2e3a2c14}.chessimals-hero__logo img{display:block;width:100%;height:auto;max-height:12rem;object-fit:contain;border-radius:1rem}.chessimals-hero h1{margin:0;font-size:clamp(2.4rem,9vw,4.5rem);line-height:.95;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-home-settings{gap:.8rem}.chessimals-home-settings__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}.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.is-your-turn{border-color:rgba(var(--chessimals-primary-rgb),.48);box-shadow:0 0 0 .12rem rgba(var(--chessimals-primary-rgb),.12),0 .95rem 2rem rgba(var(--chessimals-primary-rgb),.14)}.chessimals-turn-card.is-your-turn .chessimals-turn-card__chip{background:var(--chessimals-primary);color:var(--chessimals-primary-contrast);box-shadow:0 0 0 .32rem rgba(var(--chessimals-primary-rgb),.14);animation:chessimals-turn-pulse 1.45s ease-in-out infinite}.chessimals-turn-card.is-waiting-turn .chessimals-turn-card__chip{color:var(--chessimals-muted)}@keyframes chessimals-turn-pulse{0%,to{transform:translateZ(0) scale(1)}50%{transform:translateZ(0) scale(1.035)}}.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__avatar--initials{font-size:.78rem;font-weight:950}.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-replay,.chessimals-rematch-status{display:grid;gap:.375rem;padding:1rem;border-radius:1.25rem;background:var(--chessimals-soft)}.chessimals-howto{border:1px solid var(--chessimals-border);background:var(--chessimals-soft);color:var(--chessimals-text)}.chessimals-howto p{color:var(--chessimals-muted)}.chessimals-howto__actions{display:flex;flex-wrap:wrap;gap:.625rem}:host-context(html.ion-palette-dark) .chessimals-howto,:host-context([data-theme=\"dark\"]) .chessimals-howto{border-color:#f6e3d533;background:#172116;color:#f6f3e9}:host-context(html.ion-palette-dark) .chessimals-howto p,:host-context([data-theme=\"dark\"]) .chessimals-howto p{color:#c8cfb1}.chessimals-result{order:5}.chessimals-result__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-top:.35rem}.chessimals-result__stats span{display:grid;gap:.15rem;min-width:0;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:.85rem;padding:.58rem .6rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--chessimals-panel)}.chessimals-result__stats small{overflow:hidden;color:var(--chessimals-muted);font-size:.68rem;font-weight:950;letter-spacing:.05em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.chessimals-result__stats b{overflow:hidden;color:var(--chessimals-text);font-size:.92rem;font-weight:950;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.chessimals-result__detail{margin:.2rem 0 0}.chessimals-bot-report{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;margin-top:.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-bot-report>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.85rem;background:rgba(var(--chessimals-secondary-rgb),.14);font-size:1.45rem;box-shadow:inset 0 0 0 1px rgba(var(--chessimals-primary-rgb),.14)}.chessimals-bot-report div{display:grid;gap:.12rem;min-width:0}.chessimals-bot-report small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-bot-report strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-bot-report p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:820;line-height:1.28}.chessimals-online-status{order:3;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1.1rem;padding:.85rem .95rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.09),transparent),var(--chessimals-panel)}.chessimals-online-status>span{width:.72rem;height:.72rem;border-radius:999px;background:var(--chessimals-primary);box-shadow:0 0 0 .38rem rgba(var(--chessimals-primary-rgb),.12)}.chessimals-online-status.is-syncing>span{animation:chessimals-online-pulse .9s ease-in-out infinite}.chessimals-online-status.is-error{border-color:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.28);background:linear-gradient(135deg,rgba(var(--ion-color-danger-rgb, 235, 68, 90),.1),transparent),var(--chessimals-panel)}.chessimals-online-status.is-error>span{background:var(--ion-color-danger, #eb445a);box-shadow:0 0 0 .38rem rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.chessimals-online-status div{display:grid;gap:.12rem;min-width:0}.chessimals-online-status strong{overflow:hidden;color:var(--chessimals-text);font-size:.95rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.chessimals-online-status p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:780;line-height:1.28}.chessimals-series{display:grid;gap:.18rem;margin-top:.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-secondary-rgb),.12),transparent),var(--chessimals-panel)}.chessimals-series--compact{margin-top:0}.chessimals-series small{color:var(--chessimals-muted);font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-series strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-series span{color:var(--chessimals-muted);font-size:.84rem;font-weight:820;line-height:1.28}.chessimals-replay{order:5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.2);background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-replay>div:first-child{display:grid;gap:.15rem;min-width:0}.chessimals-replay strong{font-size:1rem;font-weight:950}.chessimals-replay span{color:var(--chessimals-muted);font-size:.86rem;font-weight:800;line-height:1.25}.chessimals-replay__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.chessimals-replay__actions .chessimals-secondary{min-height:2.5rem;padding:0 .8rem}.chessimals-tutorial{order:3;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:1rem;border:1px solid rgba(var(--chessimals-primary-rgb),.24);border-radius:1.25rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.13),transparent),var(--chessimals-panel)}.chessimals-tutorial>div{display:grid;gap:.18rem;min-width:0}.chessimals-tutorial small{color:var(--chessimals-primary);font-size:.76rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-tutorial strong{font-size:1rem;font-weight:950}.chessimals-tutorial p{margin:0;color:var(--chessimals-muted);font-size:.88rem;font-weight:780;line-height:1.35}.chessimals-tutorial .chessimals-secondary{min-height:2.5rem;padding:0 .85rem}.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-rematch-player{background:#ffffff7a}:host-context(html.ion-palette-dark) .chessimals-rematch-player,:host-context([data-theme=\"dark\"]) .chessimals-rematch-player{background:#ffffff0f}.chessimals-rematch-status__actions{display:flex;justify-content:flex-end}.chessimals-rematch-status__actions .chessimals-secondary{min-height:2.5rem;padding:0 .95rem}.chessimals-howto h2,.chessimals-powers h2{margin:0;font-size:1.15rem;font-weight:950}.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:var(--chessimals-primary);color:var(--chessimals-primary-contrast);font:inherit;font-weight:950;box-shadow:0 .75rem 1.6rem rgba(var(--chessimals-primary-rgb),.28)}.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-bots{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.625rem}.chessimals-bots button{display:grid;grid-template-columns:auto 1fr;grid-template-areas:\"avatar title\" \"avatar body\";column-gap:.55rem;row-gap:.12rem;min-width:0;min-height:4.75rem;border:1px solid var(--chessimals-border);border-radius:1rem;padding:.65rem;background:var(--chessimals-panel);color:var(--chessimals-text);font:inherit;text-align:left}.chessimals-bots button>span{grid-area:avatar;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.2rem}.chessimals-bots button strong{grid-area:title;align-self:end;font-size:.95rem;font-weight:950}.chessimals-bots button small{grid-area:body;color:var(--chessimals-muted);font-size:.75rem;font-weight:750;line-height:1.25}.chessimals-bots 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),0 .75rem 1.5rem rgba(var(--chessimals-primary-rgb),.1)}.chessimals-bot-preview{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);border-radius:1rem;padding:.78rem .85rem;background:linear-gradient(135deg,rgba(var(--chessimals-secondary-rgb),.1),transparent),var(--chessimals-panel)}.chessimals-bot-preview>span{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.9rem;background:rgba(var(--chessimals-primary-rgb),.12);font-size:1.55rem;box-shadow:inset 0 0 0 1px rgba(var(--chessimals-primary-rgb),.14)}.chessimals-bot-preview div{display:grid;gap:.12rem;min-width:0}.chessimals-bot-preview small{color:var(--chessimals-muted);font-size:.7rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-bot-preview strong{color:var(--chessimals-text);font-size:1rem;font-weight:950;line-height:1.15}.chessimals-bot-preview p{margin:0;color:var(--chessimals-muted);font-size:.84rem;font-weight:800;line-height:1.3}.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{--chessimals-board-radius: min(.85rem, 14px);display:flex;justify-content:center;min-width:0;max-width:100%;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{flex:0 1 58rem;min-width:0;width:100%;max-width:58rem;border-radius:var(--chessimals-board-radius)}.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));min-width:0;width:100%;aspect-ratio:1 / 1;overflow:hidden;isolation:isolate;contain:paint;border:1px solid var(--chessimals-border);border-radius:var(--chessimals-board-radius);clip-path:inset(0 round var(--chessimals-board-radius));-webkit-mask-image:-webkit-radial-gradient(white,black);background:radial-gradient(ellipse at 16% 18%,rgba(255,255,255,.34),transparent 18%),radial-gradient(ellipse at 82% 78%,rgba(var(--chessimals-primary-rgb),.1),transparent 22%),radial-gradient(ellipse at 32% 68%,rgba(var(--chessimals-stone-rgb),.05),transparent 30%),radial-gradient(ellipse at 66% 34%,rgba(255,255,255,.08),transparent 24%),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-primary-rgb),.56);filter:drop-shadow(0 0 .24rem rgba(var(--chessimals-primary-rgb),.26));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:.5rem;padding:1.25rem;background:radial-gradient(circle at 50% 34%,rgba(255,226,129,.34),transparent 24%),radial-gradient(circle at 50% 52%,rgba(var(--chessimals-primary-rgb),.34),transparent 42%),linear-gradient(135deg,#140c16e0,#08120dc7);color:#fff;text-align:center;backdrop-filter:blur(2px);overflow:hidden}.chessimals-board-overlay.is-defeat{background:radial-gradient(circle at 50% 34%,rgba(143,168,206,.26),transparent 24%),radial-gradient(circle at 50% 52%,rgba(72,86,115,.42),transparent 42%),linear-gradient(135deg,#090c14e6,#1c1e2bcc)}.chessimals-board-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.58) 0 .08rem,transparent .1rem),radial-gradient(circle at 75% 25%,rgba(255,226,129,.7) 0 .1rem,transparent .12rem),radial-gradient(circle at 68% 72%,rgba(var(--chessimals-capture-rgb),.54) 0 .08rem,transparent .1rem),radial-gradient(circle at 35% 78%,rgba(255,255,255,.48) 0 .07rem,transparent .09rem),radial-gradient(circle at 84% 66%,rgba(255,255,255,.38) 0 .06rem,transparent .08rem),radial-gradient(circle at 14% 64%,rgba(255,226,129,.48) 0 .07rem,transparent .09rem);content:\"\";opacity:.72;animation:chessimals-victory-sparks 1.5s ease-in-out infinite}.chessimals-board-overlay__rays{position:absolute;inset:-18%;background:conic-gradient(from 8deg,transparent 0 7deg,rgba(255,226,129,.16) 7deg 11deg,transparent 11deg 22deg);opacity:.85;animation:chessimals-finale-rays 8s linear infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__rays{background:conic-gradient(from 8deg,transparent 0 8deg,rgba(180,204,240,.1) 8deg 12deg,transparent 12deg 24deg);animation-duration:12s}.chessimals-board-overlay__ribbon{position:absolute;top:-20%;width:.42rem;height:54%;border-radius:999px;background:linear-gradient(to bottom,transparent,rgba(255,226,129,.72),transparent);opacity:.7;transform:rotate(var(--ribbon-angle, 12deg));animation:chessimals-finale-ribbon 2.5s ease-in-out infinite}.chessimals-board-overlay.is-defeat .chessimals-board-overlay__ribbon{background:linear-gradient(to bottom,transparent,rgba(180,204,240,.42),transparent);opacity:.48}.chessimals-board-overlay__ribbon.ribbon-a{left:18%;--ribbon-angle: -18deg}.chessimals-board-overlay__ribbon.ribbon-b{left:50%;--ribbon-angle: 8deg;animation-delay:.32s}.chessimals-board-overlay__ribbon.ribbon-c{right:18%;--ribbon-angle: 20deg;animation-delay:.64s}.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 em{justify-self:center;display:grid;place-items:center;width:clamp(3rem,14vw,4.6rem);height:clamp(3rem,14vw,4.6rem);border:.16rem solid rgba(255,255,255,.62);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.72),transparent 18%),linear-gradient(135deg,#ffe281,#b98436);color:#2d2412;font-size:clamp(1.1rem,5vw,1.65rem);font-style:normal;font-weight:950;box-shadow:0 0 0 .45rem #ffe2811f,0 1rem 2rem #00000042;animation:chessimals-finale-medal 1.8s ease-in-out infinite}.chessimals-board-overlay.is-defeat em{background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.48),transparent 18%),linear-gradient(135deg,#d9e2ef,#69758e);color:#182032;box-shadow:0 0 0 .45rem #b4ccf01a,0 1rem 2rem #00000052}.chessimals-board-overlay em.has-avatar{overflow:hidden;background:#fff;padding:0}.chessimals-board-overlay em.has-avatar img{display:block;width:100%;height:100%;object-fit:cover}.chessimals-board-overlay b{justify-self:center;color:#fffc;font-size:.8rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.chessimals-board-overlay small{color:#ffffffd1;font-size:clamp(.9rem,3vw,1.1rem);font-weight:800}.chessimals-board-overlay__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;width:min(26rem,92%);margin:.2rem auto 0}.chessimals-board-overlay__stats div{display:grid;gap:.08rem;min-width:0;border:1px solid rgba(255,255,255,.18);border-radius:.75rem;padding:.42rem .46rem;background:#ffffff1a;backdrop-filter:blur(3px)}.chessimals-board-overlay__stats dt,.chessimals-board-overlay__stats dd{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.chessimals-board-overlay__stats dt{color:#ffffffad;font-size:clamp(.52rem,2.1vw,.66rem);font-weight:950;letter-spacing:.04em;text-transform:uppercase}.chessimals-board-overlay__stats dd{color:#fff;font-size:clamp(.68rem,2.8vw,.88rem);font-weight:950}@keyframes chessimals-victory-sparks{0%,to{opacity:.46;transform:translateY(0) scale(.98)}50%{opacity:.95;transform:translateY(-.35rem) scale(1.02)}}@keyframes chessimals-finale-rays{to{transform:rotate(360deg)}}@keyframes chessimals-finale-ribbon{0%,to{opacity:.18;transform:translateY(-.5rem) rotate(var(--ribbon-angle))}50%{opacity:.75;transform:translateY(1.4rem) rotate(var(--ribbon-angle))}}@keyframes chessimals-finale-medal{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.18rem) scale(1.04)}}.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 26% 24%,rgba(255,255,255,.12),transparent 24%),radial-gradient(ellipse at 78% 76%,rgba(61,54,36,.06),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.04),transparent 52%,rgba(52,44,28,.04)),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-texture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none;opacity:.42;mix-blend-mode:multiply;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.16),transparent 17%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.09),transparent 25%),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.045) 0 1px,transparent 1px .52rem),linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%,rgba(52,44,28,.045))}.chessimals-cell-texture:after{position:absolute;inset:.08rem;border:1px solid rgba(75,66,42,.05);border-radius:.18rem;box-shadow:inset .08rem .08rem #ffffff14,inset -.08rem -.08rem #342c1c0b;content:\"\"}.chessimals-cell.is-edge-cell .chessimals-cell-texture{opacity:.56;background:radial-gradient(ellipse at var(--wear-x, 28%) var(--wear-y, 32%),rgba(255,255,255,.14),transparent 18%),radial-gradient(ellipse at var(--wear-x2, 74%) var(--wear-y2, 68%),rgba(75,66,42,.14),transparent 28%),linear-gradient(135deg,rgba(70,52,28,.055),transparent 44%,rgba(52,44,28,.09)),repeating-linear-gradient(var(--wear-angle, 26deg),rgba(75,66,42,.055) 0 1px,transparent 1px .48rem)}.chessimals-cell.wear-0{--wear-x: 22%;--wear-y: 24%;--wear-x2: 78%;--wear-y2: 72%;--wear-angle: 18deg}.chessimals-cell.wear-1{--wear-x: 64%;--wear-y: 18%;--wear-x2: 30%;--wear-y2: 76%;--wear-angle: -24deg}.chessimals-cell.wear-2{--wear-x: 42%;--wear-y: 58%;--wear-x2: 82%;--wear-y2: 26%;--wear-angle: 42deg}.chessimals-cell.wear-3{--wear-x: 74%;--wear-y: 68%;--wear-x2: 24%;--wear-y2: 28%;--wear-angle: -12deg}.chessimals-cell.wear-4{--wear-x: 34%;--wear-y: 18%;--wear-x2: 62%;--wear-y2: 84%;--wear-angle: 64deg}.chessimals-cell.wear-5{--wear-x: 18%;--wear-y: 70%;--wear-x2: 70%;--wear-y2: 34%;--wear-angle: -48deg}:host-context(html.ion-palette-dark) .chessimals-cell-texture,:host-context([data-theme=\"dark\"]) .chessimals-cell-texture{opacity:.34;mix-blend-mode:soft-light}.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}.chessimals-cell.has-capture-ready:not(.is-selected):after{position:absolute;inset:16%;z-index:3;border:max(2px,1.45%) solid rgba(var(--chessimals-selected-rgb),.72);border-radius:999px;box-shadow:0 0 .65rem rgba(var(--chessimals-selected-rgb),.34),inset 0 0 .55rem #ffffff2e;content:\"\"}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-capture-rgb),.16),transparent 52%),var(--chessimals-cell-bg)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture) .chessimals-piece{filter:drop-shadow(0 0 .38rem rgba(var(--chessimals-capture-rgb),.5)) var(--chessimals-piece-white-shadow)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture) .chessimals-piece.is-black{filter:drop-shadow(0 0 .38rem rgba(var(--chessimals-capture-rgb),.5)) var(--chessimals-piece-black-shadow)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture):before{position:absolute;top:.26rem;right:.26rem;z-index:4;width:.48rem;height:.48rem;border-radius:999px;background:rgba(var(--chessimals-capture-rgb),.86);box-shadow:0 0 0 .18rem rgba(var(--chessimals-capture-rgb),.18);content:\"\"}@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:68%;height:74%;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(82, 65, 46, .34);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{top:46%;z-index:0;width:58%;height:41%;border-radius:34% 34% 12% 12%;background:linear-gradient(96deg,var(--chessimals-piece-side) 0 34%,transparent 35%),var(--chessimals-piece-fill);clip-path:polygon(22% 0,78% 0,96% 100%,4% 100%);opacity:.92}.chessimals-piece__head{top:1%;z-index:4;width:48%;height:40%;border-radius:999px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.72) 0 13%,transparent 14%),linear-gradient(135deg,rgba(255,255,255,.28) 0 34%,transparent 35%),var(--chessimals-piece-fill);box-shadow:inset -.18rem -.12rem #52412e0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece.is-black .chessimals-piece__head{box-shadow:inset .18rem -.12rem #ffffff0f,inset 0 -1px 0 var(--chessimals-piece-line)}.chessimals-piece__collar{top:37%;z-index:5;width:72%;height:15%;border-radius:999px;background:linear-gradient(180deg,#f5cd77 0%,var(--chessimals-piece-gold) 55%,var(--chessimals-piece-gold-dark) 100%);border-color:color-mix(in srgb,var(--chessimals-piece-gold-dark) 72%,transparent);box-shadow:inset 0 .12rem #ffffff47,inset 0 -.08rem #462e1238,0 .08rem .18rem #462e1224}.chessimals-piece__neck{top:50%;z-index:2;width:52%;height:31%;clip-path:polygon(16% 0,84% 0,100% 100%,0 100%);background:linear-gradient(100deg,var(--chessimals-piece-side) 0 28%,transparent 29%),linear-gradient(180deg,var(--chessimals-piece-fill),color-mix(in srgb,var(--chessimals-piece-fill) 78%,var(--chessimals-piece-side)));box-shadow:inset -.12rem .1rem #ffffff14}.chessimals-piece__base{bottom:0;z-index:6;width:86%;height:17%;border-radius:.42rem .42rem .22rem .22rem;background:linear-gradient(100deg,var(--chessimals-piece-side) 0 18%,transparent 19%),linear-gradient(180deg,color-mix(in srgb,var(--chessimals-piece-fill) 92%,#ffffff),var(--chessimals-piece-fill));box-shadow:inset 0 .12rem #ffffff24,inset 0 -.1rem 0 var(--chessimals-piece-line)}.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:3.25rem;height:3.25rem;padding:.34rem;overflow:hidden;border-radius:1.2rem;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.82),transparent 55%),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),0 .45rem 1.15rem #2e3a2c1a}.chessimals-animal-face img{display:block;width:100%;height:100%;object-fit:contain;border-radius:.72rem;background:var(--chessimals-animal-face-inner-bg);box-shadow:inset 0 0 0 1px #2e3a2c14;transform:none;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 35% 22%,rgba(255,255,255,.82),transparent 55%),var(--chessimals-animal-face-bg);color:color-mix(in srgb,var(--chessimals-text) 94%,#000);box-shadow:inset 0 0 0 1px #2e3a2c24,0 .75rem 1.6rem rgba(var(--chessimals-selected-rgb),.18)}.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-replay,.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{--chessimals-board-radius: min(.625rem, 10px);width:min(96vw,82vh,58rem);max-width:none}.chessimals-shell--projection .chessimals-board-frame{flex-basis:auto;max-width:none}@media (min-width: 760px){.chessimals-game{gap:1rem}.chessimals-turn-card,.chessimals-status,.chessimals-arena,.chessimals-replay,.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-settings{display:grid;gap:.85rem}.chessimals-settings article{display:grid;gap:.65rem;padding:.9rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-about{display:grid;justify-items:center;gap:1rem;color:var(--ion-text-color, var(--chessimals-text))}.chessimals-about__logo{display:block;width:min(12rem,72vw);aspect-ratio:1 / 1;object-fit:contain;border-radius:1.25rem;background:#fff;box-shadow:0 1rem 2rem #2e3a2c24}.chessimals-about p{margin:0;color:var(--ion-color-medium, var(--chessimals-muted));font-size:.95rem;font-weight:750;line-height:1.45;text-align:center}.chessimals-about dl{display:grid;width:100%;margin:0;gap:.65rem}.chessimals-about dl div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem .95rem;border:1px solid rgba(var(--chessimals-primary-rgb),.16);border-radius:1rem;background:linear-gradient(135deg,rgba(var(--chessimals-primary-rgb),.08),transparent),var(--ion-card-background, #fff)}.chessimals-about dt,.chessimals-about dd{margin:0}.chessimals-about dt{color:var(--ion-color-medium, var(--chessimals-muted));font-size:.78rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.chessimals-about dd{color:var(--ion-text-color, var(--chessimals-text));font-size:.95rem;font-weight:950}.chessimals-rules__hero{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:1.35rem;border:1px solid rgba(var(--chessimals-primary-rgb),.18);box-shadow:0 1rem 2.25rem #2e3a2c1f}.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{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;min-height:0;border-radius:.95rem;padding:.5rem}.chessimals-turn-card__copy{gap:.1rem}.chessimals-turn-card__chip{max-width:100%;padding:.18rem .5rem;font-size:.6rem;letter-spacing:.045em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chessimals-turn-card strong{font-size:clamp(.92rem,4.4vw,1.12rem);line-height:1.08}.chessimals-turn-card p{display:-webkit-box;overflow:hidden;font-size:.72rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:1}.chessimals-player-strip{width:auto;max-width:none;min-width:0;padding:.25rem}.chessimals-player-strip val-user-avatar,.chessimals-player-strip__avatar{flex-basis:1.55rem;width:1.55rem;height:1.55rem}.chessimals-player-strip__text{display:none}.chessimals-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.chessimals-status div{gap:.14rem;min-height:2.2rem;border-radius:.82rem;padding:.34rem .3rem}.chessimals-status small{font-size:.58rem;line-height:1.05}.chessimals-status strong{font-size:clamp(.78rem,3.2vw,.94rem);line-height:1.05}.chessimals-tip,.chessimals-result,.chessimals-replay,.chessimals-online-status,.chessimals-tutorial{gap:.2rem;border-radius:1rem;padding:.7rem .75rem}.chessimals-tip strong,.chessimals-result strong,.chessimals-replay strong,.chessimals-tutorial strong{font-size:.95rem}.chessimals-tip p,.chessimals-result p{font-size:.9rem;line-height:1.28}.chessimals-result__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chessimals-replay,.chessimals-tutorial{grid-template-columns:1fr}.chessimals-replay__actions{justify-content:stretch}.chessimals-replay__actions .chessimals-secondary{flex:1 1 8rem}.chessimals-arena{gap:.5rem}.chessimals-board-wrap{width:100%;margin-inline:0;padding:0}.chessimals-board-frame{width:100%}.chessimals-powers{gap:.5rem;border-radius:1rem;padding:.55rem}.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:3.95rem;border-radius:.85rem;padding:.34rem .22rem}.chessimals-animal-face{width:2.35rem;height:2.35rem;padding:.26rem;border-radius:.85rem}.chessimals-animal-face img{border-radius:.55rem}.chessimals-cards strong{font-size:.62rem}.chessimals-board{border-radius:var(--chessimals-board-radius)}.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"] }]
|
|
66575
67498
|
}], ctorParameters: () => [], propDecorators: { boardAnchor: [{
|
|
66576
67499
|
type: ViewChild,
|
|
66577
67500
|
args: ['boardAnchor']
|