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