valtech-components 4.0.418 → 4.0.419

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.
@@ -25,7 +25,7 @@ import { getApps, getApp, initializeApp as initializeApp$1 } from 'firebase/app'
25
25
  import * as i2$1 from '@ionic/angular/standalone';
26
26
  import { AlertController, IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonModal, IonHeader, IonToolbar, IonContent, IonButtons, IonTitle, IonProgressBar, IonSkeletonText, IonFab, IonFabButton, IonFabList, IonLabel, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonRadio, IonRadioGroup, IonTextarea, IonDatetime, IonSelect, IonSelectOption, IonPopover, IonList, IonItem, IonInput, IonChip, IonRange, IonSearchbar, IonSegment, IonSegmentButton, IonToggle, IonRippleEffect, IonAccordion, IonAccordionGroup, IonTabBar, IonTabButton, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonInfiniteScroll, IonInfiniteScrollContent, IonNote, IonDatetimeButton, ToastController as ToastController$1, IonCol, IonRow, IonRefresher, IonRefresherContent, IonFooter, IonMenuButton, IonListHeader, IonGrid, MenuController, IonMenu, IonMenuToggle, IonSplitPane } from '@ionic/angular/standalone';
27
27
  import { addIcons } from 'ionicons';
28
- import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settings, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notifications, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, home, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, peopleOutline, phonePortraitOutline, refreshOutline, documentTextOutline, lockClosedOutline, cloudUploadOutline, textOutline, informationCircleOutline, logoNpm, removeOutline, optionsOutline, personOutline, shieldCheckmarkOutline, keyOutline, desktopOutline, logOutOutline, cloudDownloadOutline, cloudOutline, gitBranchOutline, layersOutline, serverOutline, warningOutline, bulbOutline, lockOpenOutline, diamondOutline, newspaperOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, search, person, helpCircle, informationCircle, documentText, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, logoWhatsapp, paperPlaneOutline, mailOutline, chevronDownCircleOutline, closeCircle, alertCircle, logoApple, logoMicrosoft, linkOutline, unlinkOutline, cloudOfflineOutline, documentOutline, attachOutline, cameraOutline, closeCircleOutline, imageOutline, printOutline, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, searchOutline, cartOutline, chatbubble, compass, compassOutline, gridOutline, listOutline, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, laptopOutline, swapHorizontalOutline, codeSlashOutline, notificationsOffOutline, alarmOutline, chatboxEllipsesOutline, checkmarkDoneOutline, cogOutline, shareSocialOutline, helpCircleOutline, musicalNotesOutline, trophyOutline, gameControllerOutline, sparklesOutline, volumeHighOutline, volumeMuteOutline, menuOutline, stopCircleOutline, videocamOffOutline, checkmarkDone, arrowUndoOutline, micOutline, pulseOutline, arrowUpOutline } from 'ionicons/icons';
28
+ import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, settings, settingsOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notifications, notificationsOutline, openOutline, closeOutline, chatbubblesOutline, shareOutline, heart, heartOutline, home, homeOutline, eyeOffOutline, eyeOutline, scanOutline, chevronDownOutline, chevronForwardOutline, checkmarkOutline, clipboardOutline, copyOutline, filterOutline, locationOutline, calendarOutline, businessOutline, logoTwitter, logoInstagram, logoLinkedin, logoYoutube, logoTiktok, logoFacebook, logoGoogle, createOutline, trashOutline, playOutline, peopleOutline, phonePortraitOutline, refreshOutline, documentTextOutline, lockClosedOutline, cloudUploadOutline, textOutline, informationCircleOutline, logoNpm, removeOutline, optionsOutline, personOutline, shieldCheckmarkOutline, keyOutline, desktopOutline, logOutOutline, cloudDownloadOutline, cloudOutline, gitBranchOutline, layersOutline, serverOutline, warningOutline, bulbOutline, lockOpenOutline, diamondOutline, newspaperOutline, add, close, share, create, trash, star, camera, mic, send, downloadOutline, chevronDown, language, globeOutline, checkmark, list, grid, apps, menu, search, person, helpCircle, informationCircle, documentText, mail, calendar, folder, chevronForward, ellipsisHorizontal, chevronBack, playBack, playForward, ellipse, starOutline, starHalf, heartHalf, checkmarkCircle, timeOutline, flag, trendingUp, trendingDown, remove, analytics, people, cash, cart, eye, chatbubbleOutline, thumbsUpOutline, thumbsUp, happyOutline, happy, sadOutline, sad, chevronUp, pin, pencil, callOutline, logoWhatsapp, paperPlaneOutline, mailOutline, chevronDownCircleOutline, closeCircle, alertCircle, logoApple, logoMicrosoft, linkOutline, unlinkOutline, cloudOfflineOutline, documentOutline, attachOutline, cameraOutline, closeCircleOutline, imageOutline, printOutline, chevronBackOutline, sendOutline, chatbubbleEllipsesOutline, swapVerticalOutline, chevronUpOutline, searchOutline, cartOutline, chatbubble, compass, compassOutline, gridOutline, listOutline, folderOutline, documents, documentsOutline, statsChart, statsChartOutline, laptopOutline, swapHorizontalOutline, codeSlashOutline, notificationsOffOutline, alarmOutline, chatboxEllipsesOutline, checkmarkDoneOutline, cogOutline, shareSocialOutline, helpCircleOutline, sparklesOutline, trophyOutline, musicalNotesOutline, gameControllerOutline, volumeHighOutline, volumeMuteOutline, menuOutline, stopCircleOutline, videocamOffOutline, checkmarkDone, arrowUndoOutline, micOutline, pulseOutline, arrowUpOutline } from 'ionicons/icons';
29
29
  import { Browser } from '@capacitor/browser';
30
30
  import * as i1$6 from '@angular/platform-browser';
31
31
  import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
@@ -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.418';
61
+ const VERSION = '4.0.419';
62
62
 
63
63
  // Control de estado de refresco (singleton a nivel de módulo)
64
64
  let isRefreshing = false;
@@ -62358,6 +62358,8 @@ const MINI_GAMES_I18N = {
62358
62358
  memoryDescription: 'Encuentra pares, entrena la memoria y desbloquea sonidos retro.',
62359
62359
  simonTitle: 'Simón',
62360
62360
  simonDescription: 'Repite luces y sonidos cada vez más largos.',
62361
+ bubbleTitle: 'Burbuja Blitz',
62362
+ bubbleDescription: 'Revienta grupos de burbujas, encadena combos y sube tu puntaje.',
62361
62363
  chessimalsTitle: 'Chessimals',
62362
62364
  chessimalsDescription: 'Una carrera de peones con cartas de animales y poderes tácticos.',
62363
62365
  soonTitle: 'Próximamente',
@@ -62400,6 +62402,13 @@ const MINI_GAMES_I18N = {
62400
62402
  startGame: 'Empezar partida',
62401
62403
  restart: 'Reiniciar',
62402
62404
  backToSetup: 'Cambiar modo',
62405
+ changeGame: 'Cambiar juego',
62406
+ confirmRestartTitle: '¿Reiniciar partida?',
62407
+ confirmRestartBody: 'Se perderá el progreso de esta partida y volverá a empezar desde cero.',
62408
+ confirmModeTitle: '¿Cambiar modo?',
62409
+ confirmModeBody: 'Saldrás de la partida actual y volverás a la configuración del juego.',
62410
+ confirmGamesTitle: '¿Cambiar juego?',
62411
+ confirmGamesBody: 'Saldrás de esta pantalla y volverás al selector de mini juegos.',
62403
62412
  attempts: 'Intentos',
62404
62413
  pairs: 'Pares',
62405
62414
  streak: 'Racha',
@@ -62445,6 +62454,26 @@ const MINI_GAMES_I18N = {
62445
62454
  simonLeaderboardModeTitle: 'Mejores rondas: {mode}',
62446
62455
  simonLeaderboardEmpty: 'Aún no hay rondas guardadas. La primera puede ser tuya.',
62447
62456
  simonScore: 'Ronda {round} · {steps} pasos',
62457
+ bubbleHomeTitle: 'Burbuja Blitz',
62458
+ bubbleHomeSubtitle: 'Toca grupos del mismo color, haz combos y llena la barra de fiebre antes de que se acabe el tiempo.',
62459
+ bubbleHowToTitle: 'Cómo se juega',
62460
+ bubbleHowToBody: 'Toca dos o más burbujas conectadas del mismo color. Grupos grandes suben tu combo y la fiebre duplica tus puntos.',
62461
+ bubbleModeKid: 'Peques',
62462
+ bubbleModeKidDescription: 'Menos colores, más tiempo y grupos fáciles de encontrar.',
62463
+ bubbleModeClassic: 'Clásico',
62464
+ bubbleModeClassicDescription: 'Ritmo equilibrado para buscar combos sin apuro.',
62465
+ bubbleModeNinja: 'Ninja',
62466
+ bubbleModeNinjaDescription: 'Más colores, menos tiempo y decisiones rápidas.',
62467
+ bubbleScore: 'Puntos',
62468
+ bubbleCombo: 'Combo',
62469
+ bubblePopped: 'Burbujas',
62470
+ bubbleFever: 'Fiebre',
62471
+ bubbleFeverReady: 'Fiebre x2 activa',
62472
+ bubbleFinishedTitle: 'Tiempo terminado',
62473
+ bubbleResultBody: '{score} puntos · combo máximo x{combo} · {popped} burbujas.',
62474
+ bubbleLeaderboardModeTitle: 'Mejores puntajes: {mode}',
62475
+ bubbleLeaderboardEmpty: 'Aún no hay puntajes guardados. La primera partida puede ser tuya.',
62476
+ bubbleLeaderboardLine: '{score} pts · x{combo} · {popped} burbujas',
62448
62477
  chessimalsSubtitle: 'Elige cómo jugar: contra bot, en el mismo dispositivo o con un enlace online.',
62449
62478
  chessimalsHowToTitle: 'Cómo se juega',
62450
62479
  chessimalsHowToBody: 'Cada peón avanza una casilla y captura en diagonal. Cuando cruza el centro, o el rival entra en tu lado, se desbloquean cuatro poderes de un solo uso.',
@@ -62690,6 +62719,8 @@ const MINI_GAMES_I18N = {
62690
62719
  memoryDescription: 'Find pairs, train your memory, and unlock retro sounds.',
62691
62720
  simonTitle: 'Simon',
62692
62721
  simonDescription: 'Repeat longer and longer light-and-sound patterns.',
62722
+ bubbleTitle: 'Bubble Blitz',
62723
+ bubbleDescription: 'Pop bubble groups, chain combos, and push your score higher.',
62693
62724
  chessimalsTitle: 'Chessimals',
62694
62725
  chessimalsDescription: 'A pawn race with animal cards and tactical powers.',
62695
62726
  soonTitle: 'Coming soon',
@@ -62732,6 +62763,13 @@ const MINI_GAMES_I18N = {
62732
62763
  startGame: 'Start game',
62733
62764
  restart: 'Restart',
62734
62765
  backToSetup: 'Change mode',
62766
+ changeGame: 'Change game',
62767
+ confirmRestartTitle: 'Restart game?',
62768
+ confirmRestartBody: 'This game progress will be lost and the game will start again from zero.',
62769
+ confirmModeTitle: 'Change mode?',
62770
+ confirmModeBody: 'You will leave the current game and return to this game setup.',
62771
+ confirmGamesTitle: 'Change game?',
62772
+ confirmGamesBody: 'You will leave this screen and return to the mini games selector.',
62735
62773
  attempts: 'Attempts',
62736
62774
  pairs: 'Pairs',
62737
62775
  streak: 'Streak',
@@ -62777,6 +62815,26 @@ const MINI_GAMES_I18N = {
62777
62815
  simonLeaderboardModeTitle: 'Best rounds: {mode}',
62778
62816
  simonLeaderboardEmpty: 'No rounds saved yet. Yours can be first.',
62779
62817
  simonScore: 'Round {round} · {steps} steps',
62818
+ bubbleHomeTitle: 'Bubble Blitz',
62819
+ bubbleHomeSubtitle: 'Tap same-color groups, chain combos, and fill the fever bar before time runs out.',
62820
+ bubbleHowToTitle: 'How to play',
62821
+ bubbleHowToBody: 'Tap two or more connected bubbles of the same color. Bigger groups raise your combo and fever doubles your points.',
62822
+ bubbleModeKid: 'Kids',
62823
+ bubbleModeKidDescription: 'Fewer colors, more time, and easy groups to spot.',
62824
+ bubbleModeClassic: 'Classic',
62825
+ bubbleModeClassicDescription: 'Balanced pace for finding combos without rushing.',
62826
+ bubbleModeNinja: 'Ninja',
62827
+ bubbleModeNinjaDescription: 'More colors, less time, and faster choices.',
62828
+ bubbleScore: 'Score',
62829
+ bubbleCombo: 'Combo',
62830
+ bubblePopped: 'Bubbles',
62831
+ bubbleFever: 'Fever',
62832
+ bubbleFeverReady: 'Fever x2 active',
62833
+ bubbleFinishedTitle: 'Time is up',
62834
+ bubbleResultBody: '{score} points · max combo x{combo} · {popped} bubbles.',
62835
+ bubbleLeaderboardModeTitle: 'Best scores: {mode}',
62836
+ bubbleLeaderboardEmpty: 'No scores saved yet. Yours can be first.',
62837
+ bubbleLeaderboardLine: '{score} pts · x{combo} · {popped} bubbles',
62780
62838
  chessimalsSubtitle: 'Choose how to play: against a bot, on one device, or with an online link.',
62781
62839
  chessimalsHowToTitle: 'How to play',
62782
62840
  chessimalsHowToBody: 'Each pawn moves one square forward and captures diagonally. Crossing the center, or defending against an invading rival pawn, unlocks four one-use powers.',
@@ -64769,10 +64827,6 @@ class ChessimalsGameComponent {
64769
64827
  this.audio.flip();
64770
64828
  }
64771
64829
  requestChangeGame() {
64772
- if (this.game().status === 'finished') {
64773
- this.resetToGamesMenu();
64774
- return;
64775
- }
64776
64830
  this.confirmAction.set('games');
64777
64831
  this.audio.flip();
64778
64832
  }
@@ -65999,6 +66053,9 @@ class ChessimalsGameComponent {
65999
66053
  <button class="chessimals-secondary" type="button" (click)="openAboutModal()">
66000
66054
  {{ t('chessimalsAbout') }}
66001
66055
  </button>
66056
+ <button class="chessimals-secondary" type="button" (click)="requestChangeGame()">
66057
+ {{ t('chessimalsChangeGame') }}
66058
+ </button>
66002
66059
  </div>
66003
66060
  </article>
66004
66061
  </section>
@@ -66656,7 +66713,7 @@ class ChessimalsGameComponent {
66656
66713
  />
66657
66714
  </ng-template>
66658
66715
  </ion-modal>
66659
- `, 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-warning: #f4c542;--chessimals-warning-rgb: 244, 197, 66;--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 val-user-avatar{display:inline-flex;flex:0 0 auto;line-height:0}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;aspect-ratio:1 / 1;overflow:hidden;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}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:2.25rem;min-width:2.25rem;height:2.25rem;border-radius:50%}.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:1.35rem minmax(0,1fr);align-items:center;gap:.85rem;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{justify-self:center;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\" \"avatar tendency\";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 p{grid-area:tendency;margin:.12rem 0 0;color:var(--chessimals-muted);font-size:.72rem;font-weight:820;line-height:1.24}.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 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.is-winning.is-legal:not(.is-capture):after{border-color:rgba(var(--chessimals-warning-rgb),.92);border-radius:999px;box-shadow:0 0 .75rem rgba(var(--chessimals-warning-rgb),.48),inset 0 0 .58rem #ffffff38}.chessimals-cell.is-winning .chessimals-target{background:var(--chessimals-warning);box-shadow:0 0 0 .22rem rgba(var(--chessimals-warning-rgb),.2),0 0 .95rem rgba(var(--chessimals-warning-rgb),.56)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-warning-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-warning-rgb),.52)) 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-warning-rgb),.52)) 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-warning-rgb),.96);box-shadow:0 0 0 .18rem rgba(var(--chessimals-warning-rgb),.22);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(30rem,100%);aspect-ratio:1280 / 698;object-fit:cover;object-position:center;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__avatar{flex:0 0 1.8rem;width:1.8rem;height:1.8rem;aspect-ratio:1 / 1}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:1.8rem;min-width:1.8rem;height:1.8rem}.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"] }] }); }
66716
+ `, 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-warning: #f4c542;--chessimals-warning-rgb: 244, 197, 66;--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(auto-fit,minmax(9rem,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 val-user-avatar{display:inline-flex;flex:0 0 auto;line-height:0}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;aspect-ratio:1 / 1;overflow:hidden;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}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:2.25rem;min-width:2.25rem;height:2.25rem;border-radius:50%}.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:1.35rem minmax(0,1fr);align-items:center;gap:.85rem;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{justify-self:center;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\" \"avatar tendency\";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 p{grid-area:tendency;margin:.12rem 0 0;color:var(--chessimals-muted);font-size:.72rem;font-weight:820;line-height:1.24}.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 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.is-winning.is-legal:not(.is-capture):after{border-color:rgba(var(--chessimals-warning-rgb),.92);border-radius:999px;box-shadow:0 0 .75rem rgba(var(--chessimals-warning-rgb),.48),inset 0 0 .58rem #ffffff38}.chessimals-cell.is-winning .chessimals-target{background:var(--chessimals-warning);box-shadow:0 0 0 .22rem rgba(var(--chessimals-warning-rgb),.2),0 0 .95rem rgba(var(--chessimals-warning-rgb),.56)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-warning-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-warning-rgb),.52)) 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-warning-rgb),.52)) 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-warning-rgb),.96);box-shadow:0 0 0 .18rem rgba(var(--chessimals-warning-rgb),.22);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(30rem,100%);aspect-ratio:1280 / 698;object-fit:cover;object-position:center;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__avatar{flex:0 0 1.8rem;width:1.8rem;height:1.8rem;aspect-ratio:1 / 1}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:1.8rem;min-width:1.8rem;height:1.8rem}.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"] }] }); }
66660
66717
  }
66661
66718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChessimalsGameComponent, decorators: [{
66662
66719
  type: Component,
@@ -66836,6 +66893,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
66836
66893
  <button class="chessimals-secondary" type="button" (click)="openAboutModal()">
66837
66894
  {{ t('chessimalsAbout') }}
66838
66895
  </button>
66896
+ <button class="chessimals-secondary" type="button" (click)="requestChangeGame()">
66897
+ {{ t('chessimalsChangeGame') }}
66898
+ </button>
66839
66899
  </div>
66840
66900
  </article>
66841
66901
  </section>
@@ -67493,7 +67553,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
67493
67553
  />
67494
67554
  </ng-template>
67495
67555
  </ion-modal>
67496
- `, 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-warning: #f4c542;--chessimals-warning-rgb: 244, 197, 66;--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 val-user-avatar{display:inline-flex;flex:0 0 auto;line-height:0}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;aspect-ratio:1 / 1;overflow:hidden;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}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:2.25rem;min-width:2.25rem;height:2.25rem;border-radius:50%}.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:1.35rem minmax(0,1fr);align-items:center;gap:.85rem;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{justify-self:center;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\" \"avatar tendency\";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 p{grid-area:tendency;margin:.12rem 0 0;color:var(--chessimals-muted);font-size:.72rem;font-weight:820;line-height:1.24}.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 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.is-winning.is-legal:not(.is-capture):after{border-color:rgba(var(--chessimals-warning-rgb),.92);border-radius:999px;box-shadow:0 0 .75rem rgba(var(--chessimals-warning-rgb),.48),inset 0 0 .58rem #ffffff38}.chessimals-cell.is-winning .chessimals-target{background:var(--chessimals-warning);box-shadow:0 0 0 .22rem rgba(var(--chessimals-warning-rgb),.2),0 0 .95rem rgba(var(--chessimals-warning-rgb),.56)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-warning-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-warning-rgb),.52)) 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-warning-rgb),.52)) 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-warning-rgb),.96);box-shadow:0 0 0 .18rem rgba(var(--chessimals-warning-rgb),.22);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(30rem,100%);aspect-ratio:1280 / 698;object-fit:cover;object-position:center;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__avatar{flex:0 0 1.8rem;width:1.8rem;height:1.8rem;aspect-ratio:1 / 1}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:1.8rem;min-width:1.8rem;height:1.8rem}.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"] }]
67556
+ `, 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-warning: #f4c542;--chessimals-warning-rgb: 244, 197, 66;--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(auto-fit,minmax(9rem,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 val-user-avatar{display:inline-flex;flex:0 0 auto;line-height:0}.chessimals-player-strip__avatar{display:grid;place-items:center;flex:0 0 2.25rem;width:2.25rem;height:2.25rem;aspect-ratio:1 / 1;overflow:hidden;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}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:2.25rem;min-width:2.25rem;height:2.25rem;border-radius:50%}.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:1.35rem minmax(0,1fr);align-items:center;gap:.85rem;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{justify-self:center;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\" \"avatar tendency\";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 p{grid-area:tendency;margin:.12rem 0 0;color:var(--chessimals-muted);font-size:.72rem;font-weight:820;line-height:1.24}.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 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.is-winning.is-legal:not(.is-capture):after{border-color:rgba(var(--chessimals-warning-rgb),.92);border-radius:999px;box-shadow:0 0 .75rem rgba(var(--chessimals-warning-rgb),.48),inset 0 0 .58rem #ffffff38}.chessimals-cell.is-winning .chessimals-target{background:var(--chessimals-warning);box-shadow:0 0 0 .22rem rgba(var(--chessimals-warning-rgb),.2),0 0 .95rem rgba(var(--chessimals-warning-rgb),.56)}.chessimals-cell.has-threat:not(.is-selected):not(.is-capture){background:radial-gradient(circle at 50% 52%,rgba(var(--chessimals-warning-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-warning-rgb),.52)) 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-warning-rgb),.52)) 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-warning-rgb),.96);box-shadow:0 0 0 .18rem rgba(var(--chessimals-warning-rgb),.22);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(30rem,100%);aspect-ratio:1280 / 698;object-fit:cover;object-position:center;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__avatar{flex:0 0 1.8rem;width:1.8rem;height:1.8rem;aspect-ratio:1 / 1}:host ::ng-deep .chessimals-player-strip .chessimals-turn-avatar{width:1.8rem;min-width:1.8rem;height:1.8rem}.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"] }]
67497
67557
  }], ctorParameters: () => [], propDecorators: { boardAnchor: [{
67498
67558
  type: ViewChild,
67499
67559
  args: ['boardAnchor']
@@ -67505,6 +67565,671 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
67505
67565
  type: Input
67506
67566
  }] } });
67507
67567
 
67568
+ addIcons({ refreshOutline, sparklesOutline, trophyOutline });
67569
+ const BUBBLE_COLORS = {
67570
+ rose: '#ff4f9f',
67571
+ cyan: '#18c7d4',
67572
+ sun: '#ffca3a',
67573
+ violet: '#7b4dff',
67574
+ leaf: '#36b66f',
67575
+ orange: '#ff8a3d',
67576
+ };
67577
+ const MODE_CONFIG = {
67578
+ kid: {
67579
+ rows: 7,
67580
+ cols: 6,
67581
+ seconds: 70,
67582
+ colors: ['rose', 'cyan', 'sun', 'leaf'],
67583
+ feverTarget: 42,
67584
+ },
67585
+ classic: {
67586
+ rows: 8,
67587
+ cols: 7,
67588
+ seconds: 60,
67589
+ colors: ['rose', 'cyan', 'sun', 'violet', 'leaf'],
67590
+ feverTarget: 54,
67591
+ },
67592
+ ninja: {
67593
+ rows: 9,
67594
+ cols: 7,
67595
+ seconds: 50,
67596
+ colors: ['rose', 'cyan', 'sun', 'violet', 'leaf', 'orange'],
67597
+ feverTarget: 66,
67598
+ },
67599
+ };
67600
+ const LEADERBOARD_KEY$2 = 'val-mini-games-bubble-blitz-leaderboard:v1';
67601
+ class BubbleBlitzGameComponent {
67602
+ constructor() {
67603
+ this.i18n = inject(I18nService);
67604
+ this.router = inject(Router);
67605
+ this.playerProfiles = inject(MiniGamePlayerProfileService);
67606
+ this.audio = inject(RetroAudioService);
67607
+ this.miniGamesRoute = '/mini-games';
67608
+ this.modes = ['kid', 'classic', 'ninja'];
67609
+ this.phase = signal('home');
67610
+ this.mode = signal('classic');
67611
+ this.grid = signal([]);
67612
+ this.score = signal(0);
67613
+ this.combo = signal(1);
67614
+ this.maxCombo = signal(1);
67615
+ this.popped = signal(0);
67616
+ this.remaining = signal(MODE_CONFIG.classic.seconds);
67617
+ this.fever = signal(0);
67618
+ this.selectedGroupKey = signal('');
67619
+ this.leaderboard = signal(this.readLeaderboard());
67620
+ this.confirmAction = signal(undefined);
67621
+ this.config = computed(() => MODE_CONFIG[this.mode()]);
67622
+ this.feverReady = computed(() => this.fever() >= this.config().feverTarget);
67623
+ this.feverProgress = computed(() => Math.min(100, Math.round((this.fever() / this.config().feverTarget) * 100)));
67624
+ this.playerName = computed(() => this.playerProfiles.displayName(this.playerProfiles.activeProfile(), this.t('defaultPlayerName')));
67625
+ this.activePlayerAvatar = computed(() => this.playerProfiles.activeProfile()?.avatar ?? '🫧');
67626
+ this.activePlayerColor = computed(() => this.playerProfiles.activeProfile()?.color ?? '#ff4f9f');
67627
+ this.modeLeaderboard = computed(() => this.leaderboard()
67628
+ .filter((entry) => entry.mode === this.mode())
67629
+ .sort((a, b) => b.score - a.score || b.maxCombo - a.maxCombo)
67630
+ .slice(0, 5));
67631
+ this.leaderboardHeading = computed(() => this.t('bubbleLeaderboardModeTitle').replace('{mode}', this.modeTitle(this.mode())));
67632
+ this.resultBody = computed(() => this.t('bubbleResultBody')
67633
+ .replace('{score}', String(this.score()))
67634
+ .replace('{combo}', String(this.maxCombo()))
67635
+ .replace('{popped}', String(this.popped())));
67636
+ this.confirmTitle = computed(() => {
67637
+ const action = this.confirmAction();
67638
+ if (action === 'restart')
67639
+ return this.t('confirmRestartTitle');
67640
+ if (action === 'games')
67641
+ return this.t('confirmGamesTitle');
67642
+ return this.t('confirmModeTitle');
67643
+ });
67644
+ this.confirmBody = computed(() => {
67645
+ const action = this.confirmAction();
67646
+ if (action === 'restart')
67647
+ return this.t('confirmRestartBody');
67648
+ if (action === 'games')
67649
+ return this.t('confirmGamesBody');
67650
+ return this.t('confirmModeBody');
67651
+ });
67652
+ this.confirmActions = computed(() => [
67653
+ {
67654
+ text: this.t('cancel'),
67655
+ color: 'dark',
67656
+ state: 'ENABLED',
67657
+ fill: 'outline',
67658
+ shape: 'round',
67659
+ type: 'button',
67660
+ token: 'cancel',
67661
+ },
67662
+ {
67663
+ text: this.confirmAction() === 'restart'
67664
+ ? this.t('restart')
67665
+ : this.confirmAction() === 'games'
67666
+ ? this.t('changeGame')
67667
+ : this.t('backToSetup'),
67668
+ color: 'dark',
67669
+ state: 'ENABLED',
67670
+ fill: 'outline',
67671
+ shape: 'round',
67672
+ type: 'button',
67673
+ token: 'confirm',
67674
+ },
67675
+ ]);
67676
+ this.i18n.registerDefaults('MiniGames', MINI_GAMES_I18N);
67677
+ window.setTimeout(() => void this.audio.startMenuMusic().catch(() => undefined), 0);
67678
+ }
67679
+ ngOnDestroy() {
67680
+ this.stopTimer();
67681
+ this.audio.stopMusic();
67682
+ }
67683
+ t(key) {
67684
+ this.i18n.lang();
67685
+ return this.i18n.t(key, 'MiniGames');
67686
+ }
67687
+ selectMode(mode) {
67688
+ this.mode.set(mode);
67689
+ this.remaining.set(this.config().seconds);
67690
+ }
67691
+ modeTitle(mode) {
67692
+ return this.t(`bubbleMode${this.capitalize(mode)}`);
67693
+ }
67694
+ modeDescription(mode) {
67695
+ return this.t(`bubbleMode${this.capitalize(mode)}Description`);
67696
+ }
67697
+ start() {
67698
+ this.stopTimer();
67699
+ this.score.set(0);
67700
+ this.combo.set(1);
67701
+ this.maxCombo.set(1);
67702
+ this.popped.set(0);
67703
+ this.fever.set(0);
67704
+ this.remaining.set(this.config().seconds);
67705
+ this.grid.set(this.createBoard());
67706
+ this.phase.set('playing');
67707
+ this.selectedGroupKey.set('');
67708
+ void this.audio.startGameMusic().catch(() => undefined);
67709
+ this.startTimer();
67710
+ }
67711
+ resetToSetup() {
67712
+ this.stopTimer();
67713
+ this.phase.set('home');
67714
+ this.grid.set([]);
67715
+ this.selectedGroupKey.set('');
67716
+ this.remaining.set(this.config().seconds);
67717
+ void this.audio.startMenuMusic().catch(() => undefined);
67718
+ }
67719
+ popGroup(cell) {
67720
+ if (this.phase() !== 'playing')
67721
+ return;
67722
+ const group = this.groupFrom(cell, this.grid());
67723
+ this.selectedGroupKey.set(group.map((item) => item.id).sort().join('|'));
67724
+ if (group.length < 2) {
67725
+ this.combo.set(1);
67726
+ this.audio.miss();
67727
+ return;
67728
+ }
67729
+ const feverMultiplier = this.feverReady() ? 2 : 1;
67730
+ const points = group.length * group.length * this.combo() * feverMultiplier;
67731
+ this.score.update((value) => value + points);
67732
+ this.popped.update((value) => value + group.length);
67733
+ this.fever.set(this.feverReady() ? 0 : Math.min(this.config().feverTarget, this.fever() + group.length));
67734
+ this.combo.update((value) => {
67735
+ const next = Math.min(9, group.length >= 5 ? value + 1 : value);
67736
+ this.maxCombo.update((best) => Math.max(best, next));
67737
+ return next;
67738
+ });
67739
+ this.grid.set(this.refillBoard(this.removeGroup(group)));
67740
+ this.audio.match();
67741
+ if (!this.hasPlayableGroup(this.grid())) {
67742
+ this.grid.set(this.createBoard());
67743
+ this.combo.set(1);
67744
+ this.audio.flip();
67745
+ }
67746
+ }
67747
+ bubbleColor(color) {
67748
+ return BUBBLE_COLORS[color];
67749
+ }
67750
+ isTargetCell(cell) {
67751
+ return this.selectedGroupKey().split('|').includes(cell.id);
67752
+ }
67753
+ groupSizeLabel(cell) {
67754
+ const group = this.groupFrom(cell, this.grid());
67755
+ return group.length > 1 ? String(group.length) : '';
67756
+ }
67757
+ leaderboardLine(entry) {
67758
+ return this.t('bubbleLeaderboardLine')
67759
+ .replace('{score}', String(entry.score))
67760
+ .replace('{combo}', String(entry.maxCombo))
67761
+ .replace('{popped}', String(entry.popped));
67762
+ }
67763
+ requestRestartGame() {
67764
+ this.confirmAction.set('restart');
67765
+ this.audio.flip();
67766
+ }
67767
+ requestChangeMode() {
67768
+ this.confirmAction.set('mode');
67769
+ this.audio.flip();
67770
+ }
67771
+ requestChangeGame() {
67772
+ this.confirmAction.set('games');
67773
+ this.audio.flip();
67774
+ }
67775
+ closeConfirmModal() {
67776
+ this.confirmAction.set(undefined);
67777
+ }
67778
+ confirmPendingAction(token) {
67779
+ if (token !== 'confirm') {
67780
+ this.closeConfirmModal();
67781
+ return;
67782
+ }
67783
+ const action = this.confirmAction();
67784
+ this.confirmAction.set(undefined);
67785
+ if (action === 'restart') {
67786
+ this.start();
67787
+ return;
67788
+ }
67789
+ if (action === 'mode') {
67790
+ this.resetToSetup();
67791
+ return;
67792
+ }
67793
+ if (action === 'games') {
67794
+ this.resetToGamesMenu();
67795
+ }
67796
+ }
67797
+ startTimer() {
67798
+ this.stopTimer();
67799
+ this.timer = window.setInterval(() => {
67800
+ this.remaining.update((value) => {
67801
+ const next = Math.max(0, value - 1);
67802
+ if (next === 0)
67803
+ this.finish();
67804
+ return next;
67805
+ });
67806
+ }, 1000);
67807
+ }
67808
+ stopTimer() {
67809
+ if (!this.timer)
67810
+ return;
67811
+ window.clearInterval(this.timer);
67812
+ this.timer = undefined;
67813
+ }
67814
+ finish() {
67815
+ if (this.phase() === 'finished')
67816
+ return;
67817
+ this.stopTimer();
67818
+ this.phase.set('finished');
67819
+ this.saveScore();
67820
+ this.audio.win();
67821
+ }
67822
+ createBoard() {
67823
+ const cells = [];
67824
+ for (let row = 0; row < this.config().rows; row += 1) {
67825
+ for (let col = 0; col < this.config().cols; col += 1) {
67826
+ cells.push(this.createCell(row, col));
67827
+ }
67828
+ }
67829
+ return this.hasPlayableGroup(cells) ? cells : this.createBoard();
67830
+ }
67831
+ createCell(row, col) {
67832
+ const color = this.randomColor();
67833
+ return {
67834
+ id: `${row}-${col}-${Date.now()}-${Math.random().toString(36).slice(2)}`,
67835
+ row,
67836
+ col,
67837
+ color,
67838
+ };
67839
+ }
67840
+ randomColor() {
67841
+ const colors = this.config().colors;
67842
+ return colors[Math.floor(Math.random() * colors.length)];
67843
+ }
67844
+ groupFrom(start, cells) {
67845
+ const byPosition = new Map(cells.map((cell) => [this.positionKey(cell.row, cell.col), cell]));
67846
+ const visited = new Set();
67847
+ const queue = [start];
67848
+ const group = [];
67849
+ while (queue.length) {
67850
+ const cell = queue.shift();
67851
+ if (!cell || visited.has(cell.id) || cell.color !== start.color)
67852
+ continue;
67853
+ visited.add(cell.id);
67854
+ group.push(cell);
67855
+ this.neighborPositions(cell).forEach(([row, col]) => {
67856
+ const neighbor = byPosition.get(this.positionKey(row, col));
67857
+ if (neighbor && !visited.has(neighbor.id))
67858
+ queue.push(neighbor);
67859
+ });
67860
+ }
67861
+ return group;
67862
+ }
67863
+ removeGroup(group) {
67864
+ const removed = new Set(group.map((cell) => cell.id));
67865
+ return this.grid().filter((cell) => !removed.has(cell.id));
67866
+ }
67867
+ refillBoard(cells) {
67868
+ const next = [];
67869
+ for (let col = 0; col < this.config().cols; col += 1) {
67870
+ const column = cells
67871
+ .filter((cell) => cell.col === col)
67872
+ .sort((a, b) => b.row - a.row);
67873
+ const missing = this.config().rows - column.length;
67874
+ const refilled = [
67875
+ ...Array.from({ length: missing }, (_, index) => this.createCell(index, col)),
67876
+ ...column.map((cell, index) => ({ ...cell, row: missing + index })),
67877
+ ];
67878
+ next.push(...refilled);
67879
+ }
67880
+ return next.sort((a, b) => a.row - b.row || a.col - b.col);
67881
+ }
67882
+ hasPlayableGroup(cells) {
67883
+ return cells.some((cell) => this.groupFrom(cell, cells).length > 1);
67884
+ }
67885
+ neighborPositions(cell) {
67886
+ const positions = [
67887
+ [cell.row - 1, cell.col],
67888
+ [cell.row + 1, cell.col],
67889
+ [cell.row, cell.col - 1],
67890
+ [cell.row, cell.col + 1],
67891
+ ];
67892
+ return positions.filter(([row, col]) => row >= 0 && col >= 0 && row < this.config().rows && col < this.config().cols);
67893
+ }
67894
+ positionKey(row, col) {
67895
+ return `${row}:${col}`;
67896
+ }
67897
+ saveScore() {
67898
+ const entry = {
67899
+ id: `${Date.now()}-${Math.random().toString(36).slice(2)}`,
67900
+ mode: this.mode(),
67901
+ playerName: this.playerName(),
67902
+ playerAvatar: this.activePlayerAvatar(),
67903
+ playerColor: this.activePlayerColor(),
67904
+ score: this.score(),
67905
+ maxCombo: this.maxCombo(),
67906
+ popped: this.popped(),
67907
+ createdAt: new Date().toISOString(),
67908
+ };
67909
+ const updated = [entry, ...this.leaderboard()]
67910
+ .sort((a, b) => b.score - a.score || b.maxCombo - a.maxCombo)
67911
+ .slice(0, 40);
67912
+ this.leaderboard.set(updated);
67913
+ try {
67914
+ localStorage.setItem(LEADERBOARD_KEY$2, JSON.stringify(updated));
67915
+ }
67916
+ catch {
67917
+ // El ranking local no es critico si storage no esta disponible.
67918
+ }
67919
+ }
67920
+ readLeaderboard() {
67921
+ try {
67922
+ const raw = localStorage.getItem(LEADERBOARD_KEY$2);
67923
+ const parsed = raw ? JSON.parse(raw) : [];
67924
+ return Array.isArray(parsed) ? parsed : [];
67925
+ }
67926
+ catch {
67927
+ return [];
67928
+ }
67929
+ }
67930
+ resetToGamesMenu() {
67931
+ this.resetToSetup();
67932
+ void this.router.navigateByUrl(this.miniGamesBaseRoute()).catch(() => undefined);
67933
+ }
67934
+ miniGamesBaseRoute() {
67935
+ const route = (this.miniGamesRoute || '/mini-games').trim();
67936
+ return `/${route.replace(/^\/+|\/+$/g, '') || 'mini-games'}`;
67937
+ }
67938
+ capitalize(value) {
67939
+ return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
67940
+ }
67941
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BubbleBlitzGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67942
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BubbleBlitzGameComponent, isStandalone: true, selector: "val-bubble-blitz-game", inputs: { miniGamesRoute: "miniGamesRoute" }, ngImport: i0, template: `
67943
+ <main class="bubble-shell">
67944
+ @if (phase() === 'home') {
67945
+ <section class="bubble-hero">
67946
+ <span class="bubble-hero__badge">
67947
+ <ion-icon name="sparkles-outline" aria-hidden="true"></ion-icon>
67948
+ {{ t('bubbleTitle') }}
67949
+ </span>
67950
+ <h1>{{ t('bubbleHomeTitle') }}</h1>
67951
+ <p>{{ t('bubbleHomeSubtitle') }}</p>
67952
+ </section>
67953
+
67954
+ <section class="bubble-panel">
67955
+ <article class="bubble-howto">
67956
+ <h2>{{ t('bubbleHowToTitle') }}</h2>
67957
+ <p>{{ t('bubbleHowToBody') }}</p>
67958
+ </article>
67959
+
67960
+ <div class="bubble-modes" role="radiogroup" [attr.aria-label]="t('modeTitle')">
67961
+ @for (item of modes; track item) {
67962
+ <button type="button" [class.is-selected]="mode() === item" (click)="selectMode(item)">
67963
+ <strong>{{ modeTitle(item) }}</strong>
67964
+ <small>{{ modeDescription(item) }}</small>
67965
+ </button>
67966
+ }
67967
+ </div>
67968
+
67969
+ <button class="bubble-primary" type="button" (click)="start()">{{ t('startGame') }}</button>
67970
+ <div class="bubble-menu-actions">
67971
+ <button class="bubble-secondary" type="button" (click)="requestChangeGame()">
67972
+ {{ t('changeGame') }}
67973
+ </button>
67974
+ </div>
67975
+ </section>
67976
+ } @else {
67977
+ <section class="bubble-game">
67978
+ <div class="bubble-status">
67979
+ <div>
67980
+ <small>{{ t('bubbleScore') }}</small>
67981
+ <strong>{{ score() }}</strong>
67982
+ </div>
67983
+ <div>
67984
+ <small>{{ t('timeLeft') }}</small>
67985
+ <strong>{{ remaining() }}s</strong>
67986
+ </div>
67987
+ <div>
67988
+ <small>{{ t('bubbleCombo') }}</small>
67989
+ <strong>x{{ combo() }}</strong>
67990
+ </div>
67991
+ <div>
67992
+ <small>{{ t('bubblePopped') }}</small>
67993
+ <strong>{{ popped() }}</strong>
67994
+ </div>
67995
+ </div>
67996
+
67997
+ <div class="bubble-fever" [class.is-ready]="feverReady()">
67998
+ <span [style.width.%]="feverProgress()"></span>
67999
+ <strong>{{ feverReady() ? t('bubbleFeverReady') : t('bubbleFever') }}</strong>
68000
+ </div>
68001
+
68002
+ <div
68003
+ class="bubble-board"
68004
+ [class.is-finished]="phase() === 'finished'"
68005
+ [style.--bubble-rows]="config().rows"
68006
+ [style.--bubble-cols]="config().cols"
68007
+ >
68008
+ @for (cell of grid(); track cell.id) {
68009
+ <button
68010
+ type="button"
68011
+ class="bubble-cell"
68012
+ [class.is-target]="isTargetCell(cell)"
68013
+ [style.--bubble-color]="bubbleColor(cell.color)"
68014
+ [disabled]="phase() !== 'playing'"
68015
+ (click)="popGroup(cell)"
68016
+ >
68017
+ <span>{{ groupSizeLabel(cell) }}</span>
68018
+ </button>
68019
+ }
68020
+ </div>
68021
+
68022
+ @if (phase() === 'finished') {
68023
+ <article class="bubble-result" [style.--player-color]="activePlayerColor()">
68024
+ <ion-icon name="trophy-outline" aria-hidden="true"></ion-icon>
68025
+ <strong>{{ t('bubbleFinishedTitle') }}</strong>
68026
+ <p>{{ resultBody() }}</p>
68027
+ <div>
68028
+ <span>{{ activePlayerAvatar() }}</span>
68029
+ <b>{{ playerName() }}</b>
68030
+ </div>
68031
+ </article>
68032
+ }
68033
+
68034
+ <div class="bubble-actions">
68035
+ <button class="bubble-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
68036
+ <button class="bubble-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
68037
+ <button class="bubble-primary" type="button" (click)="requestRestartGame()">
68038
+ <ion-icon name="refresh-outline" aria-hidden="true"></ion-icon>
68039
+ {{ t('restart') }}
68040
+ </button>
68041
+ </div>
68042
+ </section>
68043
+ }
68044
+
68045
+ <section class="bubble-leaderboard" aria-live="polite">
68046
+ <div class="bubble-leaderboard__title">
68047
+ <ion-icon name="trophy-outline" aria-hidden="true"></ion-icon>
68048
+ <h2>{{ leaderboardHeading() }}</h2>
68049
+ </div>
68050
+ @if (modeLeaderboard().length === 0) {
68051
+ <p>{{ t('bubbleLeaderboardEmpty') }}</p>
68052
+ } @else {
68053
+ <ol>
68054
+ @for (entry of modeLeaderboard(); track entry.id) {
68055
+ <li [style.--player-color]="entry.playerColor">
68056
+ <span>{{ entry.playerAvatar }}</span>
68057
+ <strong>{{ entry.playerName }}</strong>
68058
+ <small>{{ leaderboardLine(entry) }}</small>
68059
+ </li>
68060
+ }
68061
+ </ol>
68062
+ }
68063
+ </section>
68064
+ </main>
68065
+
68066
+ <ion-modal
68067
+ [isOpen]="!!confirmAction()"
68068
+ cssClass="val-modal-adaptive"
68069
+ (didDismiss)="closeConfirmModal()"
68070
+ >
68071
+ <ng-template>
68072
+ <val-modal-layout
68073
+ [title]="confirmTitle()"
68074
+ [subtitle]="confirmBody()"
68075
+ [closeLabel]="t('close')"
68076
+ [actions]="confirmActions()"
68077
+ actionsAlign="end"
68078
+ (close)="closeConfirmModal()"
68079
+ (actionClick)="confirmPendingAction($event.action?.token)"
68080
+ />
68081
+ </ng-template>
68082
+ </ion-modal>
68083
+ `, isInline: true, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { 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"] }] }); }
68084
+ }
68085
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BubbleBlitzGameComponent, decorators: [{
68086
+ type: Component,
68087
+ args: [{ selector: 'val-bubble-blitz-game', standalone: true, imports: [IonIcon, IonModal, ModalLayoutComponent], template: `
68088
+ <main class="bubble-shell">
68089
+ @if (phase() === 'home') {
68090
+ <section class="bubble-hero">
68091
+ <span class="bubble-hero__badge">
68092
+ <ion-icon name="sparkles-outline" aria-hidden="true"></ion-icon>
68093
+ {{ t('bubbleTitle') }}
68094
+ </span>
68095
+ <h1>{{ t('bubbleHomeTitle') }}</h1>
68096
+ <p>{{ t('bubbleHomeSubtitle') }}</p>
68097
+ </section>
68098
+
68099
+ <section class="bubble-panel">
68100
+ <article class="bubble-howto">
68101
+ <h2>{{ t('bubbleHowToTitle') }}</h2>
68102
+ <p>{{ t('bubbleHowToBody') }}</p>
68103
+ </article>
68104
+
68105
+ <div class="bubble-modes" role="radiogroup" [attr.aria-label]="t('modeTitle')">
68106
+ @for (item of modes; track item) {
68107
+ <button type="button" [class.is-selected]="mode() === item" (click)="selectMode(item)">
68108
+ <strong>{{ modeTitle(item) }}</strong>
68109
+ <small>{{ modeDescription(item) }}</small>
68110
+ </button>
68111
+ }
68112
+ </div>
68113
+
68114
+ <button class="bubble-primary" type="button" (click)="start()">{{ t('startGame') }}</button>
68115
+ <div class="bubble-menu-actions">
68116
+ <button class="bubble-secondary" type="button" (click)="requestChangeGame()">
68117
+ {{ t('changeGame') }}
68118
+ </button>
68119
+ </div>
68120
+ </section>
68121
+ } @else {
68122
+ <section class="bubble-game">
68123
+ <div class="bubble-status">
68124
+ <div>
68125
+ <small>{{ t('bubbleScore') }}</small>
68126
+ <strong>{{ score() }}</strong>
68127
+ </div>
68128
+ <div>
68129
+ <small>{{ t('timeLeft') }}</small>
68130
+ <strong>{{ remaining() }}s</strong>
68131
+ </div>
68132
+ <div>
68133
+ <small>{{ t('bubbleCombo') }}</small>
68134
+ <strong>x{{ combo() }}</strong>
68135
+ </div>
68136
+ <div>
68137
+ <small>{{ t('bubblePopped') }}</small>
68138
+ <strong>{{ popped() }}</strong>
68139
+ </div>
68140
+ </div>
68141
+
68142
+ <div class="bubble-fever" [class.is-ready]="feverReady()">
68143
+ <span [style.width.%]="feverProgress()"></span>
68144
+ <strong>{{ feverReady() ? t('bubbleFeverReady') : t('bubbleFever') }}</strong>
68145
+ </div>
68146
+
68147
+ <div
68148
+ class="bubble-board"
68149
+ [class.is-finished]="phase() === 'finished'"
68150
+ [style.--bubble-rows]="config().rows"
68151
+ [style.--bubble-cols]="config().cols"
68152
+ >
68153
+ @for (cell of grid(); track cell.id) {
68154
+ <button
68155
+ type="button"
68156
+ class="bubble-cell"
68157
+ [class.is-target]="isTargetCell(cell)"
68158
+ [style.--bubble-color]="bubbleColor(cell.color)"
68159
+ [disabled]="phase() !== 'playing'"
68160
+ (click)="popGroup(cell)"
68161
+ >
68162
+ <span>{{ groupSizeLabel(cell) }}</span>
68163
+ </button>
68164
+ }
68165
+ </div>
68166
+
68167
+ @if (phase() === 'finished') {
68168
+ <article class="bubble-result" [style.--player-color]="activePlayerColor()">
68169
+ <ion-icon name="trophy-outline" aria-hidden="true"></ion-icon>
68170
+ <strong>{{ t('bubbleFinishedTitle') }}</strong>
68171
+ <p>{{ resultBody() }}</p>
68172
+ <div>
68173
+ <span>{{ activePlayerAvatar() }}</span>
68174
+ <b>{{ playerName() }}</b>
68175
+ </div>
68176
+ </article>
68177
+ }
68178
+
68179
+ <div class="bubble-actions">
68180
+ <button class="bubble-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
68181
+ <button class="bubble-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
68182
+ <button class="bubble-primary" type="button" (click)="requestRestartGame()">
68183
+ <ion-icon name="refresh-outline" aria-hidden="true"></ion-icon>
68184
+ {{ t('restart') }}
68185
+ </button>
68186
+ </div>
68187
+ </section>
68188
+ }
68189
+
68190
+ <section class="bubble-leaderboard" aria-live="polite">
68191
+ <div class="bubble-leaderboard__title">
68192
+ <ion-icon name="trophy-outline" aria-hidden="true"></ion-icon>
68193
+ <h2>{{ leaderboardHeading() }}</h2>
68194
+ </div>
68195
+ @if (modeLeaderboard().length === 0) {
68196
+ <p>{{ t('bubbleLeaderboardEmpty') }}</p>
68197
+ } @else {
68198
+ <ol>
68199
+ @for (entry of modeLeaderboard(); track entry.id) {
68200
+ <li [style.--player-color]="entry.playerColor">
68201
+ <span>{{ entry.playerAvatar }}</span>
68202
+ <strong>{{ entry.playerName }}</strong>
68203
+ <small>{{ leaderboardLine(entry) }}</small>
68204
+ </li>
68205
+ }
68206
+ </ol>
68207
+ }
68208
+ </section>
68209
+ </main>
68210
+
68211
+ <ion-modal
68212
+ [isOpen]="!!confirmAction()"
68213
+ cssClass="val-modal-adaptive"
68214
+ (didDismiss)="closeConfirmModal()"
68215
+ >
68216
+ <ng-template>
68217
+ <val-modal-layout
68218
+ [title]="confirmTitle()"
68219
+ [subtitle]="confirmBody()"
68220
+ [closeLabel]="t('close')"
68221
+ [actions]="confirmActions()"
68222
+ actionsAlign="end"
68223
+ (close)="closeConfirmModal()"
68224
+ (actionClick)="confirmPendingAction($event.action?.token)"
68225
+ />
68226
+ </ng-template>
68227
+ </ion-modal>
68228
+ `, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"] }]
68229
+ }], ctorParameters: () => [], propDecorators: { miniGamesRoute: [{
68230
+ type: Input
68231
+ }] } });
68232
+
67508
68233
  addIcons({ musicalNotesOutline, refreshOutline, trophyOutline });
67509
68234
  const SYMBOLS = ['⭐', '🚀', '🎵', '⚡', '🌙', '💎', '🎈', '🍀', '🧩', '🎲', '🌈', '🔥', '🍓', '🦄', '🎁', '☀️'];
67510
68235
  const PROFILE_CONFIG = {
@@ -67529,8 +68254,10 @@ const LEADERBOARD_KEY$1 = 'val-mini-games-memory-leaderboard:v1';
67529
68254
  class MemoryGameComponent {
67530
68255
  constructor() {
67531
68256
  this.i18n = inject(I18nService);
68257
+ this.router = inject(Router);
67532
68258
  this.playerProfiles = inject(MiniGamePlayerProfileService);
67533
68259
  this.audio = inject(RetroAudioService);
68260
+ this.miniGamesRoute = '/mini-games';
67534
68261
  this.profiles = ['kid', 'classic', 'ninja'];
67535
68262
  this.confettiPieces = Array.from({ length: 14 }, (_, index) => index);
67536
68263
  this.phase = signal('home');
@@ -67547,6 +68274,7 @@ class MemoryGameComponent {
67547
68274
  this.failed = signal(false);
67548
68275
  this.lockBoard = signal(false);
67549
68276
  this.leaderboard = signal(this.readLeaderboard());
68277
+ this.confirmAction = signal(undefined);
67550
68278
  this.profileConfig = computed(() => PROFILE_CONFIG[this.profile()]);
67551
68279
  this.pairCount = computed(() => this.profileConfig().pairs);
67552
68280
  this.boardClass = computed(() => `memory-board ${this.profileConfig().boardClass}`);
@@ -67572,6 +68300,46 @@ class MemoryGameComponent {
67572
68300
  .replace('{attempts}', String(this.attempts()))
67573
68301
  .replace('{time}', this.formatSeconds(this.resultSeconds()))
67574
68302
  .replace('{streak}', String(this.bestStreak())));
68303
+ this.confirmTitle = computed(() => {
68304
+ const action = this.confirmAction();
68305
+ if (action === 'restart')
68306
+ return this.t('confirmRestartTitle');
68307
+ if (action === 'games')
68308
+ return this.t('confirmGamesTitle');
68309
+ return this.t('confirmModeTitle');
68310
+ });
68311
+ this.confirmBody = computed(() => {
68312
+ const action = this.confirmAction();
68313
+ if (action === 'restart')
68314
+ return this.t('confirmRestartBody');
68315
+ if (action === 'games')
68316
+ return this.t('confirmGamesBody');
68317
+ return this.t('confirmModeBody');
68318
+ });
68319
+ this.confirmActions = computed(() => [
68320
+ {
68321
+ text: this.t('cancel'),
68322
+ color: 'dark',
68323
+ state: 'ENABLED',
68324
+ fill: 'outline',
68325
+ shape: 'round',
68326
+ type: 'button',
68327
+ token: 'cancel',
68328
+ },
68329
+ {
68330
+ text: this.confirmAction() === 'restart'
68331
+ ? this.t('restart')
68332
+ : this.confirmAction() === 'games'
68333
+ ? this.t('changeGame')
68334
+ : this.t('backToSetup'),
68335
+ color: 'dark',
68336
+ state: 'ENABLED',
68337
+ fill: 'outline',
68338
+ shape: 'round',
68339
+ type: 'button',
68340
+ token: 'confirm',
68341
+ },
68342
+ ]);
67575
68343
  this.i18n.registerDefaults('MiniGames', MINI_GAMES_I18N);
67576
68344
  window.setTimeout(() => void this.audio.startMenuMusic().catch(() => undefined), 0);
67577
68345
  }
@@ -67629,6 +68397,40 @@ class MemoryGameComponent {
67629
68397
  this.stopTimer();
67630
68398
  void this.audio.startMenuMusic().catch(() => undefined);
67631
68399
  }
68400
+ requestRestartGame() {
68401
+ this.confirmAction.set('restart');
68402
+ this.audio.flip();
68403
+ }
68404
+ requestChangeMode() {
68405
+ this.confirmAction.set('mode');
68406
+ this.audio.flip();
68407
+ }
68408
+ requestChangeGame() {
68409
+ this.confirmAction.set('games');
68410
+ this.audio.flip();
68411
+ }
68412
+ closeConfirmModal() {
68413
+ this.confirmAction.set(undefined);
68414
+ }
68415
+ confirmPendingAction(token) {
68416
+ if (token !== 'confirm') {
68417
+ this.closeConfirmModal();
68418
+ return;
68419
+ }
68420
+ const action = this.confirmAction();
68421
+ this.confirmAction.set(undefined);
68422
+ if (action === 'restart') {
68423
+ this.start();
68424
+ return;
68425
+ }
68426
+ if (action === 'mode') {
68427
+ this.resetToSetup();
68428
+ return;
68429
+ }
68430
+ if (action === 'games') {
68431
+ this.resetToGamesMenu();
68432
+ }
68433
+ }
67632
68434
  flip(card) {
67633
68435
  if (this.lockBoard() || card.flipped || card.matched || this.won() || this.failed())
67634
68436
  return;
@@ -67693,6 +68495,14 @@ class MemoryGameComponent {
67693
68495
  this.timer = undefined;
67694
68496
  }
67695
68497
  }
68498
+ resetToGamesMenu() {
68499
+ this.resetToSetup();
68500
+ void this.router.navigateByUrl(this.miniGamesBaseRoute()).catch(() => undefined);
68501
+ }
68502
+ miniGamesBaseRoute() {
68503
+ const route = (this.miniGamesRoute || '/mini-games').trim();
68504
+ return `/${route.replace(/^\/+|\/+$/g, '') || 'mini-games'}`;
68505
+ }
67696
68506
  shuffle(items) {
67697
68507
  const copy = [...items];
67698
68508
  for (let i = copy.length - 1; i > 0; i -= 1) {
@@ -67795,7 +68605,165 @@ class MemoryGameComponent {
67795
68605
  return `${min}:${String(sec).padStart(2, '0')}`;
67796
68606
  }
67797
68607
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemoryGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67798
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MemoryGameComponent, isStandalone: true, selector: "val-memory-game", ngImport: i0, template: `
68608
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MemoryGameComponent, isStandalone: true, selector: "val-memory-game", inputs: { miniGamesRoute: "miniGamesRoute" }, ngImport: i0, template: `
68609
+ <main class="memory-shell">
68610
+ @if (phase() === 'home') {
68611
+ <section class="memory-hero">
68612
+ <div class="memory-hero__badge">
68613
+ <ion-icon name="musical-notes-outline" />
68614
+ {{ t('memoryTitle') }}
68615
+ </div>
68616
+ <h1>{{ t('homeTitle') }}</h1>
68617
+ <p>{{ t('homeSubtitle') }}</p>
68618
+ </section>
68619
+
68620
+ <section class="memory-panel">
68621
+ <div class="memory-options">
68622
+ <article class="memory-howto">
68623
+ <h2>{{ t('instructionsTitle') }}</h2>
68624
+ <p>{{ t('instructionsBody') }}</p>
68625
+ </article>
68626
+
68627
+ <h2>{{ t('profileTitle') }}</h2>
68628
+ <div class="memory-profiles" role="radiogroup" [attr.aria-label]="t('profileTitle')">
68629
+ @for (item of profiles; track item) {
68630
+ <button
68631
+ type="button"
68632
+ [class.is-selected]="profile() === item"
68633
+ (click)="selectProfile(item)"
68634
+ >
68635
+ <strong>{{ t(item) }}</strong>
68636
+ <small>{{ t(item + 'Description') }}</small>
68637
+ </button>
68638
+ }
68639
+ </div>
68640
+
68641
+ <button class="memory-primary" type="button" (click)="start()">{{ t('startGame') }}</button>
68642
+ <div class="memory-menu-actions">
68643
+ <button class="memory-secondary" type="button" (click)="requestChangeGame()">
68644
+ {{ t('changeGame') }}
68645
+ </button>
68646
+ </div>
68647
+ </div>
68648
+ </section>
68649
+ } @else {
68650
+ <section class="memory-game">
68651
+ <div class="memory-score">
68652
+ <span>
68653
+ <small>{{ t('attempts') }}</small>
68654
+ <strong>{{ attempts() }}</strong>
68655
+ </span>
68656
+ <span>
68657
+ <small>{{ t('pairs') }}</small>
68658
+ <strong>{{ matchedPairs() }}/{{ pairCount() }}</strong>
68659
+ </span>
68660
+ <span>
68661
+ <small>{{ t(timeLabel()) }}</small>
68662
+ <strong>{{ formattedTime() }}</strong>
68663
+ </span>
68664
+ <span>
68665
+ <small>{{ t('streak') }}</small>
68666
+ <strong>{{ streak() }}</strong>
68667
+ </span>
68668
+ </div>
68669
+
68670
+ <div class="memory-board" [class]="boardClass()">
68671
+ @for (card of cards(); track card.id) {
68672
+ <button
68673
+ type="button"
68674
+ class="memory-card"
68675
+ [class.is-flipped]="card.flipped || card.matched"
68676
+ [class.is-matched]="card.matched"
68677
+ [disabled]="card.matched || lockBoard() || failed()"
68678
+ (click)="flip(card)"
68679
+ >
68680
+ <span class="memory-card__back">?</span>
68681
+ <span class="memory-card__front">{{ card.symbol }}</span>
68682
+ </button>
68683
+ }
68684
+ </div>
68685
+
68686
+ @if (phase() === 'won') {
68687
+ <div class="memory-win">
68688
+ <div class="memory-confetti" aria-hidden="true">
68689
+ @for (piece of confettiPieces; track piece) {
68690
+ <span></span>
68691
+ }
68692
+ </div>
68693
+ <ion-icon name="trophy-outline" />
68694
+ <strong>{{ t('winTitle') }}</strong>
68695
+ <p>{{ winBody() }}</p>
68696
+ <div class="memory-result" [style.--player-color]="activePlayerColor()">
68697
+ <span>{{ activePlayerAvatar() }}</span>
68698
+ <div>
68699
+ <small>{{ playerName() }}</small>
68700
+ <strong>{{ medalIcon(resultMedal()) }} {{ t(resultMedal()) }}</strong>
68701
+ </div>
68702
+ </div>
68703
+ </div>
68704
+ }
68705
+
68706
+ @if (phase() === 'lost') {
68707
+ <div class="memory-win memory-win--failed">
68708
+ <strong>{{ t('loseTitle') }}</strong>
68709
+ <p>{{ t('loseBody') }}</p>
68710
+ </div>
68711
+ }
68712
+
68713
+ <div class="memory-actions">
68714
+ <button class="memory-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
68715
+ <button class="memory-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
68716
+ <button class="memory-primary" type="button" (click)="requestRestartGame()">
68717
+ <ion-icon name="refresh-outline" aria-hidden="true"></ion-icon>
68718
+ {{ t('restart') }}
68719
+ </button>
68720
+ </div>
68721
+ </section>
68722
+ }
68723
+
68724
+ <section class="memory-leaderboard" aria-live="polite">
68725
+ <div class="memory-leaderboard__title">
68726
+ <ion-icon name="trophy-outline" />
68727
+ <h2>{{ leaderboardHeading() }}</h2>
68728
+ </div>
68729
+ @if (profileLeaderboard().length === 0) {
68730
+ <p>{{ t('leaderboardEmpty') }}</p>
68731
+ } @else {
68732
+ <ol>
68733
+ @for (entry of profileLeaderboard(); track entry.id; let index = $index) {
68734
+ <li>
68735
+ <span>{{ index + 1 }}</span>
68736
+ <strong>{{ leaderboardTitle(entry) }}</strong>
68737
+ <small>{{ leaderboardLine(entry) }}</small>
68738
+ </li>
68739
+ }
68740
+ </ol>
68741
+ }
68742
+ </section>
68743
+ </main>
68744
+
68745
+ <ion-modal
68746
+ [isOpen]="!!confirmAction()"
68747
+ cssClass="val-modal-adaptive"
68748
+ (didDismiss)="closeConfirmModal()"
68749
+ >
68750
+ <ng-template>
68751
+ <val-modal-layout
68752
+ [title]="confirmTitle()"
68753
+ [subtitle]="confirmBody()"
68754
+ [closeLabel]="t('close')"
68755
+ [actions]="confirmActions()"
68756
+ actionsAlign="end"
68757
+ (close)="closeConfirmModal()"
68758
+ (actionClick)="confirmPendingAction($event.action?.token)"
68759
+ />
68760
+ </ng-template>
68761
+ </ion-modal>
68762
+ `, isInline: true, styles: [":host{display:block;min-height:100%;--memory-panel: var(--ion-card-background, #ffffff);--memory-panel-strong: #f8f6fb;--memory-border: var(--ion-border-color, #e7e4ea);--memory-text: var(--ion-color-dark, #2f2a3a);--memory-muted: var(--ion-color-medium, #6f6a7a);--memory-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--memory-row: rgba(var(--ion-color-dark-rgb, 47, 42, 58), .04);--memory-primary: var(--ion-color-primary, #ff00b2);--memory-secondary: var(--ion-color-tertiary, #6a2de2)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--memory-panel: #231f2d;--memory-panel-strong: #2f2939;--memory-border: rgba(255, 255, 255, .13);--memory-text: #fff8ff;--memory-muted: rgba(255, 248, 255, .68);--memory-soft: rgba(255, 255, 255, .045);--memory-row: rgba(255, 255, 255, .055)}.memory-shell{min-height:calc(100vh - 120px);display:flex;flex-direction:column;gap:20px;padding:18px 0 32px;color:var(--memory-text)}.memory-hero{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,8vw,52px) 20px;text-align:center;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.32),transparent 24%),linear-gradient(135deg,var(--memory-primary),var(--memory-secondary));box-shadow:0 24px 70px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.25)}.memory-hero:after{content:\"\";position:absolute;inset:auto -20% -42%;height:55%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 10px,transparent 10px 20px);opacity:.18;transform:rotate(-4deg)}.memory-hero__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff29;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.memory-hero h1{margin:14px 0 6px;font-size:clamp(2.25rem,9vw,3.625rem);line-height:.95;font-weight:900}.memory-hero p{max-width:520px;margin:0 auto;font-size:clamp(1rem,3vw,1.25rem);line-height:1.35;opacity:.88}.memory-panel,.memory-game{border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,28px);background:var(--memory-panel);box-shadow:inset 0 1px #ffffff08}.memory-options{display:grid;gap:14px}.memory-howto{display:grid;gap:6px;padding:16px;border:1px solid var(--memory-border);border-radius:20px;background:var(--memory-soft)}.memory-options h2,.memory-howto h2,.memory-leaderboard h2{margin:8px 0 0;color:var(--memory-text);font-size:1.25rem;font-weight:900}.memory-howto h2,.memory-leaderboard h2{margin:0}.memory-howto p,.memory-leaderboard p{margin:0;color:var(--memory-muted);font-size:1rem;line-height:1.45}.memory-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.memory-profiles button,.memory-secondary{border:1px solid var(--memory-border);border-radius:999px;background:transparent;color:var(--memory-text);font:inherit;font-weight:850}.memory-profiles button{min-height:92px;display:grid;align-content:center;gap:5px;padding:12px 18px;text-align:center}.memory-profiles button.is-selected{border-color:var(--memory-primary);background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.12);color:var(--memory-primary)}.memory-profiles strong{font-size:1.02rem}.memory-profiles small{color:var(--memory-muted);font-size:.88rem;line-height:1.25}.memory-profiles button.is-selected small{color:inherit}.memory-primary{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--memory-primary);color:var(--ion-color-primary-contrast, #fff);font:inherit;font-weight:900;box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.memory-primary ion-icon{flex:0 0 auto;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.memory-score{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.memory-score span{border-radius:18px;padding:12px;background:var(--memory-row);text-align:center}.memory-score small,.memory-win p{color:var(--memory-muted)}.memory-score small{display:block;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.memory-score strong{display:block;color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-board{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:clamp(8px,2vw,12px)}.memory-board--kid,.memory-board--classic{grid-template-columns:repeat(4,minmax(58px,1fr))}.memory-board--ninja{grid-template-columns:repeat(8,minmax(40px,1fr))}.memory-card{position:relative;aspect-ratio:1;border:0;border-radius:clamp(14px,4vw,22px);background:transparent;perspective:800px;font-size:clamp(24px,7vw,42px)}.memory-card__back,.memory-card__front{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;backface-visibility:hidden;transition:transform .28s ease,box-shadow .2s ease,opacity .2s ease}.memory-card__back{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.3),transparent 24%),linear-gradient(135deg,var(--memory-secondary),var(--memory-primary));color:#fff;font-weight:950;box-shadow:0 10px 24px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.2)}.memory-card__front{transform:rotateY(180deg);border:1px solid var(--memory-border);background:var(--memory-panel-strong)}.memory-card.is-flipped .memory-card__back{transform:rotateY(180deg)}.memory-card.is-flipped .memory-card__front{transform:rotateY(360deg)}.memory-card.is-matched .memory-card__front{box-shadow:inset 0 0 0 3px var(--memory-primary)}.memory-win{position:relative;overflow:hidden;margin-top:16px;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.memory-win ion-icon{display:block;margin:0 auto 8px;color:var(--ion-color-success, #2dd36f);font-size:2rem}.memory-win strong{color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-win p{margin:4px 0 0}.memory-result{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;border-radius:999px;background:#ffffffb8;color:#2f2a3a}:host-context(html.ion-palette-dark) .memory-result,:host-context([data-theme=\"dark\"]) .memory-result{background:#ffffff1a;color:var(--memory-text)}.memory-result>span{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--player-color, var(--memory-primary));font-size:1.3rem}.memory-result div{display:grid;text-align:left}.memory-result small{color:var(--memory-muted);font-weight:800}.memory-confetti span{position:absolute;top:-16px;left:8%;width:9px;height:16px;border-radius:4px;background:var(--memory-primary);opacity:0;animation:memory-confetti-fall 1.5s ease-out forwards;transform:rotate(20deg)}.memory-confetti span:nth-child(2n){background:var(--memory-secondary);animation-delay:.08s;left:20%}.memory-confetti span:nth-child(3n){background:#ffcf3f;animation-delay:.16s;left:38%}.memory-confetti span:nth-child(4n){background:#2dd36f;animation-delay:.24s;left:55%}.memory-confetti span:nth-child(5n){left:72%}.memory-confetti span:nth-child(6n){left:86%}.memory-win--failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.memory-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;padding-top:10px;background:linear-gradient(to bottom,transparent,var(--memory-panel) 28%)}.memory-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.memory-secondary{min-height:58px}.memory-leaderboard{display:grid;gap:12px;border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,22px);background:var(--memory-panel)}.memory-leaderboard__title{display:flex;align-items:center;gap:10px}.memory-leaderboard__title ion-icon{color:var(--memory-primary);font-size:1.4rem}.memory-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.memory-leaderboard li{display:grid;grid-template-columns:38px 1fr;gap:2px 10px;align-items:center;padding:12px;border-radius:16px;background:var(--memory-row)}.memory-leaderboard li>span{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--memory-primary);font-weight:950}.memory-leaderboard strong{color:var(--memory-text);font-size:.98rem}.memory-leaderboard small{color:var(--memory-muted);font-size:.88rem}.memory-player{display:grid;gap:12px;padding:14px;border:1px solid var(--memory-border);border-radius:22px;background:var(--memory-soft)}.memory-player h2,.memory-player p{margin:0}.memory-player p{color:var(--memory-muted)}.memory-player label{display:grid;gap:6px;font-weight:850}.memory-player input{width:100%;min-height:52px;border:1px solid var(--memory-border);border-radius:999px;padding:0 18px;background:var(--memory-panel);color:var(--memory-text);font:inherit;font-weight:850}.memory-avatar-list,.memory-color-list{display:flex;flex-wrap:wrap;gap:8px}.memory-avatar-list button,.memory-color-list button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--memory-border);border-radius:999px;background:var(--memory-panel);color:var(--memory-text);font-size:1.15rem}.memory-avatar-list button.is-selected,.memory-color-list button.is-selected{border-color:var(--memory-primary);box-shadow:0 0 0 3px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.memory-color-list button{background:var(--player-color)}@keyframes memory-confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(170px) rotate(300deg)}}@media (max-width: 520px){.memory-score{grid-template-columns:repeat(2,1fr)}.memory-board--ninja{grid-template-columns:repeat(4,minmax(54px,1fr))}.memory-actions,.memory-menu-actions,.memory-profiles{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { 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"] }] }); }
68763
+ }
68764
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemoryGameComponent, decorators: [{
68765
+ type: Component,
68766
+ args: [{ selector: 'val-memory-game', standalone: true, imports: [IonIcon, IonModal, ModalLayoutComponent], template: `
67799
68767
  <main class="memory-shell">
67800
68768
  @if (phase() === 'home') {
67801
68769
  <section class="memory-hero">
@@ -67829,140 +68797,11 @@ class MemoryGameComponent {
67829
68797
  </div>
67830
68798
 
67831
68799
  <button class="memory-primary" type="button" (click)="start()">{{ t('startGame') }}</button>
67832
- </div>
67833
- </section>
67834
- } @else {
67835
- <section class="memory-game">
67836
- <div class="memory-score">
67837
- <span>
67838
- <small>{{ t('attempts') }}</small>
67839
- <strong>{{ attempts() }}</strong>
67840
- </span>
67841
- <span>
67842
- <small>{{ t('pairs') }}</small>
67843
- <strong>{{ matchedPairs() }}/{{ pairCount() }}</strong>
67844
- </span>
67845
- <span>
67846
- <small>{{ t(timeLabel()) }}</small>
67847
- <strong>{{ formattedTime() }}</strong>
67848
- </span>
67849
- <span>
67850
- <small>{{ t('streak') }}</small>
67851
- <strong>{{ streak() }}</strong>
67852
- </span>
67853
- </div>
67854
-
67855
- <div class="memory-board" [class]="boardClass()">
67856
- @for (card of cards(); track card.id) {
67857
- <button
67858
- type="button"
67859
- class="memory-card"
67860
- [class.is-flipped]="card.flipped || card.matched"
67861
- [class.is-matched]="card.matched"
67862
- [disabled]="card.matched || lockBoard() || failed()"
67863
- (click)="flip(card)"
67864
- >
67865
- <span class="memory-card__back">?</span>
67866
- <span class="memory-card__front">{{ card.symbol }}</span>
68800
+ <div class="memory-menu-actions">
68801
+ <button class="memory-secondary" type="button" (click)="requestChangeGame()">
68802
+ {{ t('changeGame') }}
67867
68803
  </button>
67868
- }
67869
- </div>
67870
-
67871
- @if (phase() === 'won') {
67872
- <div class="memory-win">
67873
- <div class="memory-confetti" aria-hidden="true">
67874
- @for (piece of confettiPieces; track piece) {
67875
- <span></span>
67876
- }
67877
- </div>
67878
- <ion-icon name="trophy-outline" />
67879
- <strong>{{ t('winTitle') }}</strong>
67880
- <p>{{ winBody() }}</p>
67881
- <div class="memory-result" [style.--player-color]="activePlayerColor()">
67882
- <span>{{ activePlayerAvatar() }}</span>
67883
- <div>
67884
- <small>{{ playerName() }}</small>
67885
- <strong>{{ medalIcon(resultMedal()) }} {{ t(resultMedal()) }}</strong>
67886
- </div>
67887
- </div>
67888
- </div>
67889
- }
67890
-
67891
- @if (phase() === 'lost') {
67892
- <div class="memory-win memory-win--failed">
67893
- <strong>{{ t('loseTitle') }}</strong>
67894
- <p>{{ t('loseBody') }}</p>
67895
68804
  </div>
67896
- }
67897
-
67898
- <div class="memory-actions">
67899
- <button class="memory-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
67900
- <button class="memory-primary" type="button" (click)="start()">
67901
- <ion-icon name="refresh-outline" aria-hidden="true"></ion-icon>
67902
- {{ t(phase() === 'playing' ? 'restart' : 'playAgain') }}
67903
- </button>
67904
- </div>
67905
- </section>
67906
- }
67907
-
67908
- <section class="memory-leaderboard" aria-live="polite">
67909
- <div class="memory-leaderboard__title">
67910
- <ion-icon name="trophy-outline" />
67911
- <h2>{{ leaderboardHeading() }}</h2>
67912
- </div>
67913
- @if (profileLeaderboard().length === 0) {
67914
- <p>{{ t('leaderboardEmpty') }}</p>
67915
- } @else {
67916
- <ol>
67917
- @for (entry of profileLeaderboard(); track entry.id; let index = $index) {
67918
- <li>
67919
- <span>{{ index + 1 }}</span>
67920
- <strong>{{ leaderboardTitle(entry) }}</strong>
67921
- <small>{{ leaderboardLine(entry) }}</small>
67922
- </li>
67923
- }
67924
- </ol>
67925
- }
67926
- </section>
67927
- </main>
67928
- `, isInline: true, styles: [":host{display:block;min-height:100%;--memory-panel: var(--ion-card-background, #ffffff);--memory-panel-strong: #f8f6fb;--memory-border: var(--ion-border-color, #e7e4ea);--memory-text: var(--ion-color-dark, #2f2a3a);--memory-muted: var(--ion-color-medium, #6f6a7a);--memory-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--memory-row: rgba(var(--ion-color-dark-rgb, 47, 42, 58), .04);--memory-primary: var(--ion-color-primary, #ff00b2);--memory-secondary: var(--ion-color-tertiary, #6a2de2)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--memory-panel: #231f2d;--memory-panel-strong: #2f2939;--memory-border: rgba(255, 255, 255, .13);--memory-text: #fff8ff;--memory-muted: rgba(255, 248, 255, .68);--memory-soft: rgba(255, 255, 255, .045);--memory-row: rgba(255, 255, 255, .055)}.memory-shell{min-height:calc(100vh - 120px);display:flex;flex-direction:column;gap:20px;padding:18px 0 32px;color:var(--memory-text)}.memory-hero{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,8vw,52px) 20px;text-align:center;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.32),transparent 24%),linear-gradient(135deg,var(--memory-primary),var(--memory-secondary));box-shadow:0 24px 70px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.25)}.memory-hero:after{content:\"\";position:absolute;inset:auto -20% -42%;height:55%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 10px,transparent 10px 20px);opacity:.18;transform:rotate(-4deg)}.memory-hero__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff29;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.memory-hero h1{margin:14px 0 6px;font-size:clamp(2.25rem,9vw,3.625rem);line-height:.95;font-weight:900}.memory-hero p{max-width:520px;margin:0 auto;font-size:clamp(1rem,3vw,1.25rem);line-height:1.35;opacity:.88}.memory-panel,.memory-game{border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,28px);background:var(--memory-panel);box-shadow:inset 0 1px #ffffff08}.memory-options{display:grid;gap:14px}.memory-howto{display:grid;gap:6px;padding:16px;border:1px solid var(--memory-border);border-radius:20px;background:var(--memory-soft)}.memory-options h2,.memory-howto h2,.memory-leaderboard h2{margin:8px 0 0;color:var(--memory-text);font-size:1.25rem;font-weight:900}.memory-howto h2,.memory-leaderboard h2{margin:0}.memory-howto p,.memory-leaderboard p{margin:0;color:var(--memory-muted);font-size:1rem;line-height:1.45}.memory-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.memory-profiles button,.memory-secondary{border:1px solid var(--memory-border);border-radius:999px;background:transparent;color:var(--memory-text);font:inherit;font-weight:850}.memory-profiles button{min-height:92px;display:grid;align-content:center;gap:5px;padding:12px 18px;text-align:center}.memory-profiles button.is-selected{border-color:var(--memory-primary);background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.12);color:var(--memory-primary)}.memory-profiles strong{font-size:1.02rem}.memory-profiles small{color:var(--memory-muted);font-size:.88rem;line-height:1.25}.memory-profiles button.is-selected small{color:inherit}.memory-primary{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--memory-primary);color:var(--ion-color-primary-contrast, #fff);font:inherit;font-weight:900;box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.memory-primary ion-icon{flex:0 0 auto;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.memory-score{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.memory-score span{border-radius:18px;padding:12px;background:var(--memory-row);text-align:center}.memory-score small,.memory-win p{color:var(--memory-muted)}.memory-score small{display:block;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.memory-score strong{display:block;color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-board{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:clamp(8px,2vw,12px)}.memory-board--kid,.memory-board--classic{grid-template-columns:repeat(4,minmax(58px,1fr))}.memory-board--ninja{grid-template-columns:repeat(8,minmax(40px,1fr))}.memory-card{position:relative;aspect-ratio:1;border:0;border-radius:clamp(14px,4vw,22px);background:transparent;perspective:800px;font-size:clamp(24px,7vw,42px)}.memory-card__back,.memory-card__front{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;backface-visibility:hidden;transition:transform .28s ease,box-shadow .2s ease,opacity .2s ease}.memory-card__back{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.3),transparent 24%),linear-gradient(135deg,var(--memory-secondary),var(--memory-primary));color:#fff;font-weight:950;box-shadow:0 10px 24px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.2)}.memory-card__front{transform:rotateY(180deg);border:1px solid var(--memory-border);background:var(--memory-panel-strong)}.memory-card.is-flipped .memory-card__back{transform:rotateY(180deg)}.memory-card.is-flipped .memory-card__front{transform:rotateY(360deg)}.memory-card.is-matched .memory-card__front{box-shadow:inset 0 0 0 3px var(--memory-primary)}.memory-win{position:relative;overflow:hidden;margin-top:16px;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.memory-win ion-icon{display:block;margin:0 auto 8px;color:var(--ion-color-success, #2dd36f);font-size:2rem}.memory-win strong{color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-win p{margin:4px 0 0}.memory-result{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;border-radius:999px;background:#ffffffb8;color:#2f2a3a}:host-context(html.ion-palette-dark) .memory-result,:host-context([data-theme=\"dark\"]) .memory-result{background:#ffffff1a;color:var(--memory-text)}.memory-result>span{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--player-color, var(--memory-primary));font-size:1.3rem}.memory-result div{display:grid;text-align:left}.memory-result small{color:var(--memory-muted);font-weight:800}.memory-confetti span{position:absolute;top:-16px;left:8%;width:9px;height:16px;border-radius:4px;background:var(--memory-primary);opacity:0;animation:memory-confetti-fall 1.5s ease-out forwards;transform:rotate(20deg)}.memory-confetti span:nth-child(2n){background:var(--memory-secondary);animation-delay:.08s;left:20%}.memory-confetti span:nth-child(3n){background:#ffcf3f;animation-delay:.16s;left:38%}.memory-confetti span:nth-child(4n){background:#2dd36f;animation-delay:.24s;left:55%}.memory-confetti span:nth-child(5n){left:72%}.memory-confetti span:nth-child(6n){left:86%}.memory-win--failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.memory-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding-top:10px;background:linear-gradient(to bottom,transparent,var(--memory-panel) 28%)}.memory-secondary{min-height:58px}.memory-leaderboard{display:grid;gap:12px;border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,22px);background:var(--memory-panel)}.memory-leaderboard__title{display:flex;align-items:center;gap:10px}.memory-leaderboard__title ion-icon{color:var(--memory-primary);font-size:1.4rem}.memory-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.memory-leaderboard li{display:grid;grid-template-columns:38px 1fr;gap:2px 10px;align-items:center;padding:12px;border-radius:16px;background:var(--memory-row)}.memory-leaderboard li>span{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--memory-primary);font-weight:950}.memory-leaderboard strong{color:var(--memory-text);font-size:.98rem}.memory-leaderboard small{color:var(--memory-muted);font-size:.88rem}.memory-player{display:grid;gap:12px;padding:14px;border:1px solid var(--memory-border);border-radius:22px;background:var(--memory-soft)}.memory-player h2,.memory-player p{margin:0}.memory-player p{color:var(--memory-muted)}.memory-player label{display:grid;gap:6px;font-weight:850}.memory-player input{width:100%;min-height:52px;border:1px solid var(--memory-border);border-radius:999px;padding:0 18px;background:var(--memory-panel);color:var(--memory-text);font:inherit;font-weight:850}.memory-avatar-list,.memory-color-list{display:flex;flex-wrap:wrap;gap:8px}.memory-avatar-list button,.memory-color-list button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--memory-border);border-radius:999px;background:var(--memory-panel);color:var(--memory-text);font-size:1.15rem}.memory-avatar-list button.is-selected,.memory-color-list button.is-selected{border-color:var(--memory-primary);box-shadow:0 0 0 3px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.memory-color-list button{background:var(--player-color)}@keyframes memory-confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(170px) rotate(300deg)}}@media (max-width: 520px){.memory-score{grid-template-columns:repeat(2,1fr)}.memory-board--ninja{grid-template-columns:repeat(4,minmax(54px,1fr))}.memory-actions,.memory-profiles{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
67929
- }
67930
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemoryGameComponent, decorators: [{
67931
- type: Component,
67932
- args: [{ selector: 'val-memory-game', standalone: true, imports: [IonIcon], template: `
67933
- <main class="memory-shell">
67934
- @if (phase() === 'home') {
67935
- <section class="memory-hero">
67936
- <div class="memory-hero__badge">
67937
- <ion-icon name="musical-notes-outline" />
67938
- {{ t('memoryTitle') }}
67939
- </div>
67940
- <h1>{{ t('homeTitle') }}</h1>
67941
- <p>{{ t('homeSubtitle') }}</p>
67942
- </section>
67943
-
67944
- <section class="memory-panel">
67945
- <div class="memory-options">
67946
- <article class="memory-howto">
67947
- <h2>{{ t('instructionsTitle') }}</h2>
67948
- <p>{{ t('instructionsBody') }}</p>
67949
- </article>
67950
-
67951
- <h2>{{ t('profileTitle') }}</h2>
67952
- <div class="memory-profiles" role="radiogroup" [attr.aria-label]="t('profileTitle')">
67953
- @for (item of profiles; track item) {
67954
- <button
67955
- type="button"
67956
- [class.is-selected]="profile() === item"
67957
- (click)="selectProfile(item)"
67958
- >
67959
- <strong>{{ t(item) }}</strong>
67960
- <small>{{ t(item + 'Description') }}</small>
67961
- </button>
67962
- }
67963
- </div>
67964
-
67965
- <button class="memory-primary" type="button" (click)="start()">{{ t('startGame') }}</button>
67966
68805
  </div>
67967
68806
  </section>
67968
68807
  } @else {
@@ -68030,10 +68869,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68030
68869
  }
68031
68870
 
68032
68871
  <div class="memory-actions">
68033
- <button class="memory-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
68034
- <button class="memory-primary" type="button" (click)="start()">
68872
+ <button class="memory-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
68873
+ <button class="memory-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
68874
+ <button class="memory-primary" type="button" (click)="requestRestartGame()">
68035
68875
  <ion-icon name="refresh-outline" aria-hidden="true"></ion-icon>
68036
- {{ t(phase() === 'playing' ? 'restart' : 'playAgain') }}
68876
+ {{ t('restart') }}
68037
68877
  </button>
68038
68878
  </div>
68039
68879
  </section>
@@ -68059,8 +68899,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68059
68899
  }
68060
68900
  </section>
68061
68901
  </main>
68062
- `, styles: [":host{display:block;min-height:100%;--memory-panel: var(--ion-card-background, #ffffff);--memory-panel-strong: #f8f6fb;--memory-border: var(--ion-border-color, #e7e4ea);--memory-text: var(--ion-color-dark, #2f2a3a);--memory-muted: var(--ion-color-medium, #6f6a7a);--memory-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--memory-row: rgba(var(--ion-color-dark-rgb, 47, 42, 58), .04);--memory-primary: var(--ion-color-primary, #ff00b2);--memory-secondary: var(--ion-color-tertiary, #6a2de2)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--memory-panel: #231f2d;--memory-panel-strong: #2f2939;--memory-border: rgba(255, 255, 255, .13);--memory-text: #fff8ff;--memory-muted: rgba(255, 248, 255, .68);--memory-soft: rgba(255, 255, 255, .045);--memory-row: rgba(255, 255, 255, .055)}.memory-shell{min-height:calc(100vh - 120px);display:flex;flex-direction:column;gap:20px;padding:18px 0 32px;color:var(--memory-text)}.memory-hero{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,8vw,52px) 20px;text-align:center;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.32),transparent 24%),linear-gradient(135deg,var(--memory-primary),var(--memory-secondary));box-shadow:0 24px 70px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.25)}.memory-hero:after{content:\"\";position:absolute;inset:auto -20% -42%;height:55%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 10px,transparent 10px 20px);opacity:.18;transform:rotate(-4deg)}.memory-hero__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff29;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.memory-hero h1{margin:14px 0 6px;font-size:clamp(2.25rem,9vw,3.625rem);line-height:.95;font-weight:900}.memory-hero p{max-width:520px;margin:0 auto;font-size:clamp(1rem,3vw,1.25rem);line-height:1.35;opacity:.88}.memory-panel,.memory-game{border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,28px);background:var(--memory-panel);box-shadow:inset 0 1px #ffffff08}.memory-options{display:grid;gap:14px}.memory-howto{display:grid;gap:6px;padding:16px;border:1px solid var(--memory-border);border-radius:20px;background:var(--memory-soft)}.memory-options h2,.memory-howto h2,.memory-leaderboard h2{margin:8px 0 0;color:var(--memory-text);font-size:1.25rem;font-weight:900}.memory-howto h2,.memory-leaderboard h2{margin:0}.memory-howto p,.memory-leaderboard p{margin:0;color:var(--memory-muted);font-size:1rem;line-height:1.45}.memory-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.memory-profiles button,.memory-secondary{border:1px solid var(--memory-border);border-radius:999px;background:transparent;color:var(--memory-text);font:inherit;font-weight:850}.memory-profiles button{min-height:92px;display:grid;align-content:center;gap:5px;padding:12px 18px;text-align:center}.memory-profiles button.is-selected{border-color:var(--memory-primary);background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.12);color:var(--memory-primary)}.memory-profiles strong{font-size:1.02rem}.memory-profiles small{color:var(--memory-muted);font-size:.88rem;line-height:1.25}.memory-profiles button.is-selected small{color:inherit}.memory-primary{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--memory-primary);color:var(--ion-color-primary-contrast, #fff);font:inherit;font-weight:900;box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.memory-primary ion-icon{flex:0 0 auto;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.memory-score{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.memory-score span{border-radius:18px;padding:12px;background:var(--memory-row);text-align:center}.memory-score small,.memory-win p{color:var(--memory-muted)}.memory-score small{display:block;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.memory-score strong{display:block;color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-board{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:clamp(8px,2vw,12px)}.memory-board--kid,.memory-board--classic{grid-template-columns:repeat(4,minmax(58px,1fr))}.memory-board--ninja{grid-template-columns:repeat(8,minmax(40px,1fr))}.memory-card{position:relative;aspect-ratio:1;border:0;border-radius:clamp(14px,4vw,22px);background:transparent;perspective:800px;font-size:clamp(24px,7vw,42px)}.memory-card__back,.memory-card__front{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;backface-visibility:hidden;transition:transform .28s ease,box-shadow .2s ease,opacity .2s ease}.memory-card__back{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.3),transparent 24%),linear-gradient(135deg,var(--memory-secondary),var(--memory-primary));color:#fff;font-weight:950;box-shadow:0 10px 24px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.2)}.memory-card__front{transform:rotateY(180deg);border:1px solid var(--memory-border);background:var(--memory-panel-strong)}.memory-card.is-flipped .memory-card__back{transform:rotateY(180deg)}.memory-card.is-flipped .memory-card__front{transform:rotateY(360deg)}.memory-card.is-matched .memory-card__front{box-shadow:inset 0 0 0 3px var(--memory-primary)}.memory-win{position:relative;overflow:hidden;margin-top:16px;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.memory-win ion-icon{display:block;margin:0 auto 8px;color:var(--ion-color-success, #2dd36f);font-size:2rem}.memory-win strong{color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-win p{margin:4px 0 0}.memory-result{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;border-radius:999px;background:#ffffffb8;color:#2f2a3a}:host-context(html.ion-palette-dark) .memory-result,:host-context([data-theme=\"dark\"]) .memory-result{background:#ffffff1a;color:var(--memory-text)}.memory-result>span{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--player-color, var(--memory-primary));font-size:1.3rem}.memory-result div{display:grid;text-align:left}.memory-result small{color:var(--memory-muted);font-weight:800}.memory-confetti span{position:absolute;top:-16px;left:8%;width:9px;height:16px;border-radius:4px;background:var(--memory-primary);opacity:0;animation:memory-confetti-fall 1.5s ease-out forwards;transform:rotate(20deg)}.memory-confetti span:nth-child(2n){background:var(--memory-secondary);animation-delay:.08s;left:20%}.memory-confetti span:nth-child(3n){background:#ffcf3f;animation-delay:.16s;left:38%}.memory-confetti span:nth-child(4n){background:#2dd36f;animation-delay:.24s;left:55%}.memory-confetti span:nth-child(5n){left:72%}.memory-confetti span:nth-child(6n){left:86%}.memory-win--failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.memory-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding-top:10px;background:linear-gradient(to bottom,transparent,var(--memory-panel) 28%)}.memory-secondary{min-height:58px}.memory-leaderboard{display:grid;gap:12px;border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,22px);background:var(--memory-panel)}.memory-leaderboard__title{display:flex;align-items:center;gap:10px}.memory-leaderboard__title ion-icon{color:var(--memory-primary);font-size:1.4rem}.memory-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.memory-leaderboard li{display:grid;grid-template-columns:38px 1fr;gap:2px 10px;align-items:center;padding:12px;border-radius:16px;background:var(--memory-row)}.memory-leaderboard li>span{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--memory-primary);font-weight:950}.memory-leaderboard strong{color:var(--memory-text);font-size:.98rem}.memory-leaderboard small{color:var(--memory-muted);font-size:.88rem}.memory-player{display:grid;gap:12px;padding:14px;border:1px solid var(--memory-border);border-radius:22px;background:var(--memory-soft)}.memory-player h2,.memory-player p{margin:0}.memory-player p{color:var(--memory-muted)}.memory-player label{display:grid;gap:6px;font-weight:850}.memory-player input{width:100%;min-height:52px;border:1px solid var(--memory-border);border-radius:999px;padding:0 18px;background:var(--memory-panel);color:var(--memory-text);font:inherit;font-weight:850}.memory-avatar-list,.memory-color-list{display:flex;flex-wrap:wrap;gap:8px}.memory-avatar-list button,.memory-color-list button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--memory-border);border-radius:999px;background:var(--memory-panel);color:var(--memory-text);font-size:1.15rem}.memory-avatar-list button.is-selected,.memory-color-list button.is-selected{border-color:var(--memory-primary);box-shadow:0 0 0 3px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.memory-color-list button{background:var(--player-color)}@keyframes memory-confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(170px) rotate(300deg)}}@media (max-width: 520px){.memory-score{grid-template-columns:repeat(2,1fr)}.memory-board--ninja{grid-template-columns:repeat(4,minmax(54px,1fr))}.memory-actions,.memory-profiles{grid-template-columns:1fr}}\n"] }]
68063
- }], ctorParameters: () => [] });
68902
+
68903
+ <ion-modal
68904
+ [isOpen]="!!confirmAction()"
68905
+ cssClass="val-modal-adaptive"
68906
+ (didDismiss)="closeConfirmModal()"
68907
+ >
68908
+ <ng-template>
68909
+ <val-modal-layout
68910
+ [title]="confirmTitle()"
68911
+ [subtitle]="confirmBody()"
68912
+ [closeLabel]="t('close')"
68913
+ [actions]="confirmActions()"
68914
+ actionsAlign="end"
68915
+ (close)="closeConfirmModal()"
68916
+ (actionClick)="confirmPendingAction($event.action?.token)"
68917
+ />
68918
+ </ng-template>
68919
+ </ion-modal>
68920
+ `, styles: [":host{display:block;min-height:100%;--memory-panel: var(--ion-card-background, #ffffff);--memory-panel-strong: #f8f6fb;--memory-border: var(--ion-border-color, #e7e4ea);--memory-text: var(--ion-color-dark, #2f2a3a);--memory-muted: var(--ion-color-medium, #6f6a7a);--memory-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--memory-row: rgba(var(--ion-color-dark-rgb, 47, 42, 58), .04);--memory-primary: var(--ion-color-primary, #ff00b2);--memory-secondary: var(--ion-color-tertiary, #6a2de2)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--memory-panel: #231f2d;--memory-panel-strong: #2f2939;--memory-border: rgba(255, 255, 255, .13);--memory-text: #fff8ff;--memory-muted: rgba(255, 248, 255, .68);--memory-soft: rgba(255, 255, 255, .045);--memory-row: rgba(255, 255, 255, .055)}.memory-shell{min-height:calc(100vh - 120px);display:flex;flex-direction:column;gap:20px;padding:18px 0 32px;color:var(--memory-text)}.memory-hero{position:relative;overflow:hidden;border-radius:28px;padding:clamp(28px,8vw,52px) 20px;text-align:center;color:#fff;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.32),transparent 24%),linear-gradient(135deg,var(--memory-primary),var(--memory-secondary));box-shadow:0 24px 70px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.25)}.memory-hero:after{content:\"\";position:absolute;inset:auto -20% -42%;height:55%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 10px,transparent 10px 20px);opacity:.18;transform:rotate(-4deg)}.memory-hero__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#ffffff29;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.memory-hero h1{margin:14px 0 6px;font-size:clamp(2.25rem,9vw,3.625rem);line-height:.95;font-weight:900}.memory-hero p{max-width:520px;margin:0 auto;font-size:clamp(1rem,3vw,1.25rem);line-height:1.35;opacity:.88}.memory-panel,.memory-game{border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,28px);background:var(--memory-panel);box-shadow:inset 0 1px #ffffff08}.memory-options{display:grid;gap:14px}.memory-howto{display:grid;gap:6px;padding:16px;border:1px solid var(--memory-border);border-radius:20px;background:var(--memory-soft)}.memory-options h2,.memory-howto h2,.memory-leaderboard h2{margin:8px 0 0;color:var(--memory-text);font-size:1.25rem;font-weight:900}.memory-howto h2,.memory-leaderboard h2{margin:0}.memory-howto p,.memory-leaderboard p{margin:0;color:var(--memory-muted);font-size:1rem;line-height:1.45}.memory-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.memory-profiles button,.memory-secondary{border:1px solid var(--memory-border);border-radius:999px;background:transparent;color:var(--memory-text);font:inherit;font-weight:850}.memory-profiles button{min-height:92px;display:grid;align-content:center;gap:5px;padding:12px 18px;text-align:center}.memory-profiles button.is-selected{border-color:var(--memory-primary);background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.12);color:var(--memory-primary)}.memory-profiles strong{font-size:1.02rem}.memory-profiles small{color:var(--memory-muted);font-size:.88rem;line-height:1.25}.memory-profiles button.is-selected small{color:inherit}.memory-primary{min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--memory-primary);color:var(--ion-color-primary-contrast, #fff);font:inherit;font-weight:900;box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.memory-primary ion-icon{flex:0 0 auto;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.memory-score{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.memory-score span{border-radius:18px;padding:12px;background:var(--memory-row);text-align:center}.memory-score small,.memory-win p{color:var(--memory-muted)}.memory-score small{display:block;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.memory-score strong{display:block;color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-board{display:grid;grid-template-columns:repeat(4,minmax(58px,1fr));gap:clamp(8px,2vw,12px)}.memory-board--kid,.memory-board--classic{grid-template-columns:repeat(4,minmax(58px,1fr))}.memory-board--ninja{grid-template-columns:repeat(8,minmax(40px,1fr))}.memory-card{position:relative;aspect-ratio:1;border:0;border-radius:clamp(14px,4vw,22px);background:transparent;perspective:800px;font-size:clamp(24px,7vw,42px)}.memory-card__back,.memory-card__front{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;backface-visibility:hidden;transition:transform .28s ease,box-shadow .2s ease,opacity .2s ease}.memory-card__back{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.3),transparent 24%),linear-gradient(135deg,var(--memory-secondary),var(--memory-primary));color:#fff;font-weight:950;box-shadow:0 10px 24px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.2)}.memory-card__front{transform:rotateY(180deg);border:1px solid var(--memory-border);background:var(--memory-panel-strong)}.memory-card.is-flipped .memory-card__back{transform:rotateY(180deg)}.memory-card.is-flipped .memory-card__front{transform:rotateY(360deg)}.memory-card.is-matched .memory-card__front{box-shadow:inset 0 0 0 3px var(--memory-primary)}.memory-win{position:relative;overflow:hidden;margin-top:16px;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.memory-win ion-icon{display:block;margin:0 auto 8px;color:var(--ion-color-success, #2dd36f);font-size:2rem}.memory-win strong{color:var(--memory-text);font-size:1.35rem;font-weight:950}.memory-win p{margin:4px 0 0}.memory-result{position:relative;z-index:1;display:inline-flex;align-items:center;gap:10px;margin-top:12px;padding:10px 14px;border-radius:999px;background:#ffffffb8;color:#2f2a3a}:host-context(html.ion-palette-dark) .memory-result,:host-context([data-theme=\"dark\"]) .memory-result{background:#ffffff1a;color:var(--memory-text)}.memory-result>span{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:var(--player-color, var(--memory-primary));font-size:1.3rem}.memory-result div{display:grid;text-align:left}.memory-result small{color:var(--memory-muted);font-weight:800}.memory-confetti span{position:absolute;top:-16px;left:8%;width:9px;height:16px;border-radius:4px;background:var(--memory-primary);opacity:0;animation:memory-confetti-fall 1.5s ease-out forwards;transform:rotate(20deg)}.memory-confetti span:nth-child(2n){background:var(--memory-secondary);animation-delay:.08s;left:20%}.memory-confetti span:nth-child(3n){background:#ffcf3f;animation-delay:.16s;left:38%}.memory-confetti span:nth-child(4n){background:#2dd36f;animation-delay:.24s;left:55%}.memory-confetti span:nth-child(5n){left:72%}.memory-confetti span:nth-child(6n){left:86%}.memory-win--failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.memory-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;padding-top:10px;background:linear-gradient(to bottom,transparent,var(--memory-panel) 28%)}.memory-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.memory-secondary{min-height:58px}.memory-leaderboard{display:grid;gap:12px;border:1px solid var(--memory-border);border-radius:24px;padding:clamp(16px,4vw,22px);background:var(--memory-panel)}.memory-leaderboard__title{display:flex;align-items:center;gap:10px}.memory-leaderboard__title ion-icon{color:var(--memory-primary);font-size:1.4rem}.memory-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.memory-leaderboard li{display:grid;grid-template-columns:38px 1fr;gap:2px 10px;align-items:center;padding:12px;border-radius:16px;background:var(--memory-row)}.memory-leaderboard li>span{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--memory-primary);font-weight:950}.memory-leaderboard strong{color:var(--memory-text);font-size:.98rem}.memory-leaderboard small{color:var(--memory-muted);font-size:.88rem}.memory-player{display:grid;gap:12px;padding:14px;border:1px solid var(--memory-border);border-radius:22px;background:var(--memory-soft)}.memory-player h2,.memory-player p{margin:0}.memory-player p{color:var(--memory-muted)}.memory-player label{display:grid;gap:6px;font-weight:850}.memory-player input{width:100%;min-height:52px;border:1px solid var(--memory-border);border-radius:999px;padding:0 18px;background:var(--memory-panel);color:var(--memory-text);font:inherit;font-weight:850}.memory-avatar-list,.memory-color-list{display:flex;flex-wrap:wrap;gap:8px}.memory-avatar-list button,.memory-color-list button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--memory-border);border-radius:999px;background:var(--memory-panel);color:var(--memory-text);font-size:1.15rem}.memory-avatar-list button.is-selected,.memory-color-list button.is-selected{border-color:var(--memory-primary);box-shadow:0 0 0 3px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.memory-color-list button{background:var(--player-color)}@keyframes memory-confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(170px) rotate(300deg)}}@media (max-width: 520px){.memory-score{grid-template-columns:repeat(2,1fr)}.memory-board--ninja{grid-template-columns:repeat(4,minmax(54px,1fr))}.memory-actions,.memory-menu-actions,.memory-profiles{grid-template-columns:1fr}}\n"] }]
68921
+ }], ctorParameters: () => [], propDecorators: { miniGamesRoute: [{
68922
+ type: Input
68923
+ }] } });
68064
68924
 
68065
68925
  addIcons({
68066
68926
  addCircleOutline,
@@ -68087,7 +68947,9 @@ class MiniGamesMenuComponent {
68087
68947
  this.audio.stopMusic();
68088
68948
  }
68089
68949
  get safeGames() {
68090
- return this.games.filter((game) => !!game && !!game.id && game.status !== 'soon');
68950
+ return this.games
68951
+ .filter((game) => !!game && !!game.id && game.status !== 'soon')
68952
+ .sort((a, b) => Number(b.id === 'chessimals') - Number(a.id === 'chessimals'));
68091
68953
  }
68092
68954
  t(key) {
68093
68955
  this.i18n.lang();
@@ -68372,9 +69234,11 @@ const LEADERBOARD_KEY = 'val-mini-games-simon-leaderboard:v1';
68372
69234
  class SimonGameComponent {
68373
69235
  constructor() {
68374
69236
  this.i18n = inject(I18nService);
69237
+ this.router = inject(Router);
68375
69238
  this.audio = inject(RetroAudioService);
68376
69239
  this.timers = [];
68377
69240
  this.acceptingInput = false;
69241
+ this.miniGamesRoute = '/mini-games';
68378
69242
  this.modes = ['kid', 'classic', 'ninja'];
68379
69243
  this.pads = SIMON_PADS;
68380
69244
  this.phase = signal('home');
@@ -68384,6 +69248,7 @@ class SimonGameComponent {
68384
69248
  this.inputIndex = signal(0);
68385
69249
  this.activePad = signal(undefined);
68386
69250
  this.leaderboard = signal(this.readLeaderboard());
69251
+ this.confirmAction = signal(undefined);
68387
69252
  this.modeConfig = computed(() => SIMON_MODES[this.mode()]);
68388
69253
  this.bestRound = computed(() => this.modeLeaderboard()[0]?.round ?? 0);
68389
69254
  this.modeLeaderboard = computed(() => this.leaderboard()
@@ -68392,6 +69257,46 @@ class SimonGameComponent {
68392
69257
  .slice(0, 5));
68393
69258
  this.leaderboardHeading = computed(() => this.t('simonLeaderboardModeTitle').replace('{mode}', this.modeTitle(this.mode())));
68394
69259
  this.failBody = computed(() => this.t('simonFailedBody').replace('{round}', String(Math.max(0, this.round() - 1))));
69260
+ this.confirmTitle = computed(() => {
69261
+ const action = this.confirmAction();
69262
+ if (action === 'restart')
69263
+ return this.t('confirmRestartTitle');
69264
+ if (action === 'games')
69265
+ return this.t('confirmGamesTitle');
69266
+ return this.t('confirmModeTitle');
69267
+ });
69268
+ this.confirmBody = computed(() => {
69269
+ const action = this.confirmAction();
69270
+ if (action === 'restart')
69271
+ return this.t('confirmRestartBody');
69272
+ if (action === 'games')
69273
+ return this.t('confirmGamesBody');
69274
+ return this.t('confirmModeBody');
69275
+ });
69276
+ this.confirmActions = computed(() => [
69277
+ {
69278
+ text: this.t('cancel'),
69279
+ color: 'dark',
69280
+ state: 'ENABLED',
69281
+ fill: 'outline',
69282
+ shape: 'round',
69283
+ type: 'button',
69284
+ token: 'cancel',
69285
+ },
69286
+ {
69287
+ text: this.confirmAction() === 'restart'
69288
+ ? this.t('restart')
69289
+ : this.confirmAction() === 'games'
69290
+ ? this.t('changeGame')
69291
+ : this.t('backToSetup'),
69292
+ color: 'dark',
69293
+ state: 'ENABLED',
69294
+ fill: 'outline',
69295
+ shape: 'round',
69296
+ type: 'button',
69297
+ token: 'confirm',
69298
+ },
69299
+ ]);
68395
69300
  this.i18n.registerDefaults('MiniGames', MINI_GAMES_I18N);
68396
69301
  this.audio.stopMusic();
68397
69302
  }
@@ -68428,6 +69333,40 @@ class SimonGameComponent {
68428
69333
  this.inputIndex.set(0);
68429
69334
  this.activePad.set(undefined);
68430
69335
  }
69336
+ requestRestartGame() {
69337
+ this.confirmAction.set('restart');
69338
+ this.audio.flip();
69339
+ }
69340
+ requestChangeMode() {
69341
+ this.confirmAction.set('mode');
69342
+ this.audio.flip();
69343
+ }
69344
+ requestChangeGame() {
69345
+ this.confirmAction.set('games');
69346
+ this.audio.flip();
69347
+ }
69348
+ closeConfirmModal() {
69349
+ this.confirmAction.set(undefined);
69350
+ }
69351
+ confirmPendingAction(token) {
69352
+ if (token !== 'confirm') {
69353
+ this.closeConfirmModal();
69354
+ return;
69355
+ }
69356
+ const action = this.confirmAction();
69357
+ this.confirmAction.set(undefined);
69358
+ if (action === 'restart') {
69359
+ this.start();
69360
+ return;
69361
+ }
69362
+ if (action === 'mode') {
69363
+ this.resetToSetup();
69364
+ return;
69365
+ }
69366
+ if (action === 'games') {
69367
+ this.resetToGamesMenu();
69368
+ }
69369
+ }
68431
69370
  tap(pad) {
68432
69371
  if (this.phase() !== 'waiting' || !this.acceptingInput)
68433
69372
  return;
@@ -68527,6 +69466,14 @@ class SimonGameComponent {
68527
69466
  // El ranking local no es crítico si storage no está disponible.
68528
69467
  }
68529
69468
  }
69469
+ resetToGamesMenu() {
69470
+ this.resetToSetup();
69471
+ void this.router.navigateByUrl(this.miniGamesBaseRoute()).catch(() => undefined);
69472
+ }
69473
+ miniGamesBaseRoute() {
69474
+ const route = (this.miniGamesRoute || '/mini-games').trim();
69475
+ return `/${route.replace(/^\/+|\/+$/g, '') || 'mini-games'}`;
69476
+ }
68530
69477
  readLeaderboard() {
68531
69478
  try {
68532
69479
  const raw = localStorage.getItem(LEADERBOARD_KEY);
@@ -68551,7 +69498,7 @@ class SimonGameComponent {
68551
69498
  return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
68552
69499
  }
68553
69500
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimonGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68554
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SimonGameComponent, isStandalone: true, selector: "val-simon-game", ngImport: i0, template: `
69501
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SimonGameComponent, isStandalone: true, selector: "val-simon-game", inputs: { miniGamesRoute: "miniGamesRoute" }, ngImport: i0, template: `
68555
69502
  <main class="simon-shell">
68556
69503
  @if (phase() === 'home') {
68557
69504
  <section class="simon-hero">
@@ -68580,6 +69527,11 @@ class SimonGameComponent {
68580
69527
  </div>
68581
69528
 
68582
69529
  <button class="simon-primary" type="button" (click)="start()">{{ t('simonStart') }}</button>
69530
+ <div class="simon-menu-actions">
69531
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">
69532
+ {{ t('changeGame') }}
69533
+ </button>
69534
+ </div>
68583
69535
  </section>
68584
69536
  } @else {
68585
69537
  <section class="simon-game">
@@ -68627,8 +69579,9 @@ class SimonGameComponent {
68627
69579
  </div>
68628
69580
 
68629
69581
  <div class="simon-actions">
68630
- <button class="simon-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
68631
- <button class="simon-primary" type="button" (click)="start()">{{ t('restart') }}</button>
69582
+ <button class="simon-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
69583
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
69584
+ <button class="simon-primary" type="button" (click)="requestRestartGame()">{{ t('restart') }}</button>
68632
69585
  </div>
68633
69586
  </section>
68634
69587
  }
@@ -68653,11 +69606,29 @@ class SimonGameComponent {
68653
69606
  }
68654
69607
  </section>
68655
69608
  </main>
68656
- `, isInline: true, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
69609
+
69610
+ <ion-modal
69611
+ [isOpen]="!!confirmAction()"
69612
+ cssClass="val-modal-adaptive"
69613
+ (didDismiss)="closeConfirmModal()"
69614
+ >
69615
+ <ng-template>
69616
+ <val-modal-layout
69617
+ [title]="confirmTitle()"
69618
+ [subtitle]="confirmBody()"
69619
+ [closeLabel]="t('close')"
69620
+ [actions]="confirmActions()"
69621
+ actionsAlign="end"
69622
+ (close)="closeConfirmModal()"
69623
+ (actionClick)="confirmPendingAction($event.action?.token)"
69624
+ />
69625
+ </ng-template>
69626
+ </ion-modal>
69627
+ `, isInline: true, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions,.simon-menu-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { 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"] }] }); }
68657
69628
  }
68658
69629
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimonGameComponent, decorators: [{
68659
69630
  type: Component,
68660
- args: [{ selector: 'val-simon-game', standalone: true, imports: [IonIcon], template: `
69631
+ args: [{ selector: 'val-simon-game', standalone: true, imports: [IonIcon, IonModal, ModalLayoutComponent], template: `
68661
69632
  <main class="simon-shell">
68662
69633
  @if (phase() === 'home') {
68663
69634
  <section class="simon-hero">
@@ -68686,6 +69657,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68686
69657
  </div>
68687
69658
 
68688
69659
  <button class="simon-primary" type="button" (click)="start()">{{ t('simonStart') }}</button>
69660
+ <div class="simon-menu-actions">
69661
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">
69662
+ {{ t('changeGame') }}
69663
+ </button>
69664
+ </div>
68689
69665
  </section>
68690
69666
  } @else {
68691
69667
  <section class="simon-game">
@@ -68733,8 +69709,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68733
69709
  </div>
68734
69710
 
68735
69711
  <div class="simon-actions">
68736
- <button class="simon-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
68737
- <button class="simon-primary" type="button" (click)="start()">{{ t('restart') }}</button>
69712
+ <button class="simon-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
69713
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
69714
+ <button class="simon-primary" type="button" (click)="requestRestartGame()">{{ t('restart') }}</button>
68738
69715
  </div>
68739
69716
  </section>
68740
69717
  }
@@ -68759,8 +69736,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
68759
69736
  }
68760
69737
  </section>
68761
69738
  </main>
68762
- `, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"] }]
68763
- }], ctorParameters: () => [] });
69739
+
69740
+ <ion-modal
69741
+ [isOpen]="!!confirmAction()"
69742
+ cssClass="val-modal-adaptive"
69743
+ (didDismiss)="closeConfirmModal()"
69744
+ >
69745
+ <ng-template>
69746
+ <val-modal-layout
69747
+ [title]="confirmTitle()"
69748
+ [subtitle]="confirmBody()"
69749
+ [closeLabel]="t('close')"
69750
+ [actions]="confirmActions()"
69751
+ actionsAlign="end"
69752
+ (close)="closeConfirmModal()"
69753
+ (actionClick)="confirmPendingAction($event.action?.token)"
69754
+ />
69755
+ </ng-template>
69756
+ </ion-modal>
69757
+ `, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions,.simon-menu-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"] }]
69758
+ }], ctorParameters: () => [], propDecorators: { miniGamesRoute: [{
69759
+ type: Input
69760
+ }] } });
68764
69761
 
68765
69762
  /**
68766
69763
  * Defaults i18n (es/en) embebidos en `val-field-list`. Auto-registrados en el
@@ -84059,5 +85056,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
84059
85056
  * Generated bundle index. Do not edit.
84060
85057
  */
84061
85058
 
84062
- export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHESSIMALS_BOT_PROFILES, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, ChatComposerComponent, ChatInputComponent, ChatWindowComponent, CheckInputComponent, CheckboxRadioInputComponent, ChessimalsGameComponent, ChessimalsOnlineService, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentReactionModalComponent, ContentService, ContentTransformer, ConversationListItemComponent, ConversationService, CookieBannerComponent, CookieSettingsComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_POST_UPDATE_GRACE_MS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DatasetPaginationService, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, EntityFeedService, ExpandableTextComponent, ExternalBrowserService, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSchemaBuilderService, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderActionsService, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, HtmlViewerModalComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, KNOWN_ROUTES, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LiveReadFallbackService, LoadMoreComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, META_SCHEMA_VERSION, METRIC_CARD_DEFAULTS, MINI_GAME_PLAYER_AVATARS, MINI_GAME_PLAYER_COLORS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MediaViewerModalComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MemoryGameComponent, MenuComponent, MessageBubbleComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, MiniGamePlayerProfileService, MiniGamesMenuComponent, ModalLayoutComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OperationReferenceComponent, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, POST_UPDATE_TS_KEY, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PdfService, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneDisplayComponent, PhoneFormatService, PhoneInputComponent, PickerV2Component, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PricingTableComponent, ProcessLinksPipe, ProfileContentComponent, ProfileModalComponent, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, ReactionBarComponent, ReactionsService, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, RequestService, RetroAudioService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SessionTransitionOverlayComponent, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimonGameComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, ThreadPanelComponent, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, TypingIndicatorComponent, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UsageMetersComponent, UsageService, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_CHAT_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_REACTIONS_CONFIG, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, WorkflowService, applyChessimalsMove, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, chooseChessimalsBotMove, collections, connectPageRefresh, createChessimalsGame, createChessimalsReviewState, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialDatasetState, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, datasetPageFromLegacyCursor, docs, errorLoggingInterceptor, extractPathParams, formatClockTime, formatDateSeparator, formatRelativeTime, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getChessimalsAllLegalMoves, getChessimalsLegalMoves, getChessimalsPieceAt, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isKnownRoute, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, positionKey, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechChat, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationClickActions, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechReactions, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resignChessimalsGame, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle, validateRoutes };
85059
+ export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, BubbleBlitzGameComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHESSIMALS_BOT_PROFILES, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, ChatComposerComponent, ChatInputComponent, ChatWindowComponent, CheckInputComponent, CheckboxRadioInputComponent, ChessimalsGameComponent, ChessimalsOnlineService, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentReactionModalComponent, ContentService, ContentTransformer, ConversationListItemComponent, ConversationService, CookieBannerComponent, CookieSettingsComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_POST_UPDATE_GRACE_MS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DatasetPaginationService, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, EntityFeedService, ExpandableTextComponent, ExternalBrowserService, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSchemaBuilderService, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderActionsService, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, HtmlViewerModalComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, KNOWN_ROUTES, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LiveReadFallbackService, LoadMoreComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, META_SCHEMA_VERSION, METRIC_CARD_DEFAULTS, MINI_GAME_PLAYER_AVATARS, MINI_GAME_PLAYER_COLORS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MediaViewerModalComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MemoryGameComponent, MenuComponent, MessageBubbleComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, MiniGamePlayerProfileService, MiniGamesMenuComponent, ModalLayoutComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OperationReferenceComponent, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, POST_UPDATE_TS_KEY, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PdfService, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneDisplayComponent, PhoneFormatService, PhoneInputComponent, PickerV2Component, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PricingTableComponent, ProcessLinksPipe, ProfileContentComponent, ProfileModalComponent, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, ReactionBarComponent, ReactionsService, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, RequestService, RetroAudioService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SessionTransitionOverlayComponent, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimonGameComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, ThreadPanelComponent, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, TypingIndicatorComponent, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UsageMetersComponent, UsageService, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_CHAT_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_REACTIONS_CONFIG, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, WorkflowService, applyChessimalsMove, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, chooseChessimalsBotMove, collections, connectPageRefresh, createChessimalsGame, createChessimalsReviewState, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialDatasetState, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, datasetPageFromLegacyCursor, docs, errorLoggingInterceptor, extractPathParams, formatClockTime, formatDateSeparator, formatRelativeTime, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getChessimalsAllLegalMoves, getChessimalsLegalMoves, getChessimalsPieceAt, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isKnownRoute, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, positionKey, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechChat, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationClickActions, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechReactions, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resignChessimalsGame, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle, validateRoutes };
84063
85060
  //# sourceMappingURL=valtech-components.mjs.map