diff --git a/src/assets/animal/1.webp b/src/assets/animal/1.webp
index df1dbb9..aa53190 100644
Binary files a/src/assets/animal/1.webp and b/src/assets/animal/1.webp differ
diff --git a/src/assets/animal/10.webp b/src/assets/animal/10.webp
index d9cb0bb..1d7bfab 100644
Binary files a/src/assets/animal/10.webp and b/src/assets/animal/10.webp differ
diff --git a/src/assets/animal/11.webp b/src/assets/animal/11.webp
index 55d319f..34c0eee 100644
Binary files a/src/assets/animal/11.webp and b/src/assets/animal/11.webp differ
diff --git a/src/assets/animal/12.webp b/src/assets/animal/12.webp
index a3eeb5e..655fbb8 100644
Binary files a/src/assets/animal/12.webp and b/src/assets/animal/12.webp differ
diff --git a/src/assets/animal/13.webp b/src/assets/animal/13.webp
index 10679ad..56c083c 100644
Binary files a/src/assets/animal/13.webp and b/src/assets/animal/13.webp differ
diff --git a/src/assets/animal/14.webp b/src/assets/animal/14.webp
index 95e63e4..18a896b 100644
Binary files a/src/assets/animal/14.webp and b/src/assets/animal/14.webp differ
diff --git a/src/assets/animal/15.webp b/src/assets/animal/15.webp
index d7c71f6..37eb540 100644
Binary files a/src/assets/animal/15.webp and b/src/assets/animal/15.webp differ
diff --git a/src/assets/animal/16.webp b/src/assets/animal/16.webp
index 546dc0b..6f6a009 100644
Binary files a/src/assets/animal/16.webp and b/src/assets/animal/16.webp differ
diff --git a/src/assets/animal/17.webp b/src/assets/animal/17.webp
index 137d958..bc4a154 100644
Binary files a/src/assets/animal/17.webp and b/src/assets/animal/17.webp differ
diff --git a/src/assets/animal/18.webp b/src/assets/animal/18.webp
index 421c064..73d2ff0 100644
Binary files a/src/assets/animal/18.webp and b/src/assets/animal/18.webp differ
diff --git a/src/assets/animal/19.webp b/src/assets/animal/19.webp
index cd69941..e6686bb 100644
Binary files a/src/assets/animal/19.webp and b/src/assets/animal/19.webp differ
diff --git a/src/assets/animal/2.webp b/src/assets/animal/2.webp
index 21d448d..276d1b5 100644
Binary files a/src/assets/animal/2.webp and b/src/assets/animal/2.webp differ
diff --git a/src/assets/animal/20.webp b/src/assets/animal/20.webp
index a4c7221..9ed303a 100644
Binary files a/src/assets/animal/20.webp and b/src/assets/animal/20.webp differ
diff --git a/src/assets/animal/21.webp b/src/assets/animal/21.webp
index 560261e..2c59a34 100644
Binary files a/src/assets/animal/21.webp and b/src/assets/animal/21.webp differ
diff --git a/src/assets/animal/22.webp b/src/assets/animal/22.webp
index 6a2a2e5..3f3d82c 100644
Binary files a/src/assets/animal/22.webp and b/src/assets/animal/22.webp differ
diff --git a/src/assets/animal/23.webp b/src/assets/animal/23.webp
index 087ff3e..9ff1d5d 100644
Binary files a/src/assets/animal/23.webp and b/src/assets/animal/23.webp differ
diff --git a/src/assets/animal/24.webp b/src/assets/animal/24.webp
index 6b713c8..b5df60c 100644
Binary files a/src/assets/animal/24.webp and b/src/assets/animal/24.webp differ
diff --git a/src/assets/animal/25.webp b/src/assets/animal/25.webp
index e9927b1..905517f 100644
Binary files a/src/assets/animal/25.webp and b/src/assets/animal/25.webp differ
diff --git a/src/assets/animal/26.webp b/src/assets/animal/26.webp
index 883c8de..fbfbc69 100644
Binary files a/src/assets/animal/26.webp and b/src/assets/animal/26.webp differ
diff --git a/src/assets/animal/27.webp b/src/assets/animal/27.webp
index 6c4b6da..a4733a6 100644
Binary files a/src/assets/animal/27.webp and b/src/assets/animal/27.webp differ
diff --git a/src/assets/animal/28.webp b/src/assets/animal/28.webp
index 65ccb32..d67f8ee 100644
Binary files a/src/assets/animal/28.webp and b/src/assets/animal/28.webp differ
diff --git a/src/assets/animal/29.webp b/src/assets/animal/29.webp
index d545bd0..0f9a052 100644
Binary files a/src/assets/animal/29.webp and b/src/assets/animal/29.webp differ
diff --git a/src/assets/animal/3.webp b/src/assets/animal/3.webp
index 08bcd84..5aa6b5a 100644
Binary files a/src/assets/animal/3.webp and b/src/assets/animal/3.webp differ
diff --git a/src/assets/animal/30.webp b/src/assets/animal/30.webp
index fca1bcc..394b23c 100644
Binary files a/src/assets/animal/30.webp and b/src/assets/animal/30.webp differ
diff --git a/src/assets/animal/31.webp b/src/assets/animal/31.webp
index e848520..eb12f75 100644
Binary files a/src/assets/animal/31.webp and b/src/assets/animal/31.webp differ
diff --git a/src/assets/animal/32.webp b/src/assets/animal/32.webp
index 43ccd39..d575deb 100644
Binary files a/src/assets/animal/32.webp and b/src/assets/animal/32.webp differ
diff --git a/src/assets/animal/33.webp b/src/assets/animal/33.webp
index c4822ed..e21db3d 100644
Binary files a/src/assets/animal/33.webp and b/src/assets/animal/33.webp differ
diff --git a/src/assets/animal/34.webp b/src/assets/animal/34.webp
index 754e55c..4abe6fb 100644
Binary files a/src/assets/animal/34.webp and b/src/assets/animal/34.webp differ
diff --git a/src/assets/animal/35.webp b/src/assets/animal/35.webp
index 2a0b1f7..33e958c 100644
Binary files a/src/assets/animal/35.webp and b/src/assets/animal/35.webp differ
diff --git a/src/assets/animal/36.webp b/src/assets/animal/36.webp
index ced01e0..764c370 100644
Binary files a/src/assets/animal/36.webp and b/src/assets/animal/36.webp differ
diff --git a/src/assets/animal/4.webp b/src/assets/animal/4.webp
index 16624b5..e5bef7f 100644
Binary files a/src/assets/animal/4.webp and b/src/assets/animal/4.webp differ
diff --git a/src/assets/animal/5.webp b/src/assets/animal/5.webp
index c53193b..8c4bcb9 100644
Binary files a/src/assets/animal/5.webp and b/src/assets/animal/5.webp differ
diff --git a/src/assets/animal/6.webp b/src/assets/animal/6.webp
index 60c49ae..a97e050 100644
Binary files a/src/assets/animal/6.webp and b/src/assets/animal/6.webp differ
diff --git a/src/assets/animal/7.webp b/src/assets/animal/7.webp
index d17b21e..7b966c1 100644
Binary files a/src/assets/animal/7.webp and b/src/assets/animal/7.webp differ
diff --git a/src/assets/animal/8.webp b/src/assets/animal/8.webp
index 583c1ed..5b5bf6e 100644
Binary files a/src/assets/animal/8.webp and b/src/assets/animal/8.webp differ
diff --git a/src/assets/animal/9.webp b/src/assets/animal/9.webp
index ae1fc71..3ae21ea 100644
Binary files a/src/assets/animal/9.webp and b/src/assets/animal/9.webp differ
diff --git a/src/assets/game/add.webp b/src/assets/game/add.webp
index 22b8858..6385e46 100644
Binary files a/src/assets/game/add.webp and b/src/assets/game/add.webp differ
diff --git a/src/assets/game/animal-border.webp b/src/assets/game/animal-border.webp
index f54408c..3129659 100644
Binary files a/src/assets/game/animal-border.webp and b/src/assets/game/animal-border.webp differ
diff --git a/src/assets/game/animal-card.webp b/src/assets/game/animal-card.webp
index f54408c..3129659 100644
Binary files a/src/assets/game/animal-card.webp and b/src/assets/game/animal-card.webp differ
diff --git a/src/assets/game/arrow.webp b/src/assets/game/arrow.webp
index f188a96..2b81b32 100644
Binary files a/src/assets/game/arrow.webp and b/src/assets/game/arrow.webp differ
diff --git a/src/assets/game/chip-bg.webp b/src/assets/game/chip-bg.webp
index 95b8563..05754b2 100644
Binary files a/src/assets/game/chip-bg.webp and b/src/assets/game/chip-bg.webp differ
diff --git a/src/assets/game/chip-line-bg.webp b/src/assets/game/chip-line-bg.webp
index df3ddaa..30c5358 100644
Binary files a/src/assets/game/chip-line-bg.webp and b/src/assets/game/chip-line-bg.webp differ
diff --git a/src/assets/game/chip-lock.webp b/src/assets/game/chip-lock.webp
index 34e1409..8b2d53e 100644
Binary files a/src/assets/game/chip-lock.webp and b/src/assets/game/chip-lock.webp differ
diff --git a/src/assets/game/chip1.webp b/src/assets/game/chip1.webp
index 9d6e83b..1c5d2fe 100644
Binary files a/src/assets/game/chip1.webp and b/src/assets/game/chip1.webp differ
diff --git a/src/assets/game/chip2.webp b/src/assets/game/chip2.webp
index 40fc046..87484f4 100644
Binary files a/src/assets/game/chip2.webp and b/src/assets/game/chip2.webp differ
diff --git a/src/assets/game/chip3.webp b/src/assets/game/chip3.webp
index a0763a2..38e5ed7 100644
Binary files a/src/assets/game/chip3.webp and b/src/assets/game/chip3.webp differ
diff --git a/src/assets/game/chip4.webp b/src/assets/game/chip4.webp
index e7953c2..86e330f 100644
Binary files a/src/assets/game/chip4.webp and b/src/assets/game/chip4.webp differ
diff --git a/src/assets/game/chip5.webp b/src/assets/game/chip5.webp
index fd21a56..429dd3e 100644
Binary files a/src/assets/game/chip5.webp and b/src/assets/game/chip5.webp differ
diff --git a/src/assets/game/chip6.webp b/src/assets/game/chip6.webp
index aa773b0..707e06e 100644
Binary files a/src/assets/game/chip6.webp and b/src/assets/game/chip6.webp differ
diff --git a/src/assets/game/confirm-bg.png b/src/assets/game/confirm-bg.png
index f222351..24494e8 100644
Binary files a/src/assets/game/confirm-bg.png and b/src/assets/game/confirm-bg.png differ
diff --git a/src/assets/game/confirm-bg.webp b/src/assets/game/confirm-bg.webp
index c16ef28..6e52fd7 100644
Binary files a/src/assets/game/confirm-bg.webp and b/src/assets/game/confirm-bg.webp differ
diff --git a/src/assets/game/confirm-red-bg.png b/src/assets/game/confirm-red-bg.png
index 6d23c3d..99f8169 100644
Binary files a/src/assets/game/confirm-red-bg.png and b/src/assets/game/confirm-red-bg.png differ
diff --git a/src/assets/game/control-bg.png b/src/assets/game/control-bg.png
index dea0af7..90c614b 100644
Binary files a/src/assets/game/control-bg.png and b/src/assets/game/control-bg.png differ
diff --git a/src/assets/game/control-left.webp b/src/assets/game/control-left.webp
index 255c6ac..cffeaba 100644
Binary files a/src/assets/game/control-left.webp and b/src/assets/game/control-left.webp differ
diff --git a/src/assets/game/control-mid.webp b/src/assets/game/control-mid.webp
index a37b3e7..4543361 100644
Binary files a/src/assets/game/control-mid.webp and b/src/assets/game/control-mid.webp differ
diff --git a/src/assets/game/control-right.webp b/src/assets/game/control-right.webp
index 061b542..7db0f7d 100644
Binary files a/src/assets/game/control-right.webp and b/src/assets/game/control-right.webp differ
diff --git a/src/assets/game/en-stop.webp b/src/assets/game/en-stop.webp
index 8ae498b..dcad3e3 100644
Binary files a/src/assets/game/en-stop.webp and b/src/assets/game/en-stop.webp differ
diff --git a/src/assets/game/hosting-bg.webp b/src/assets/game/hosting-bg.webp
index 1030cb7..f06cd1d 100644
Binary files a/src/assets/game/hosting-bg.webp and b/src/assets/game/hosting-bg.webp differ
diff --git a/src/assets/game/hosting-btn.webp b/src/assets/game/hosting-btn.webp
index 0b253c7..4ee55bc 100644
Binary files a/src/assets/game/hosting-btn.webp and b/src/assets/game/hosting-btn.webp differ
diff --git a/src/assets/game/left-bg.webp b/src/assets/game/left-bg.webp
index 6df1f2a..5a49b1f 100644
Binary files a/src/assets/game/left-bg.webp and b/src/assets/game/left-bg.webp differ
diff --git a/src/assets/game/mobile-add-reduce-bg.webp b/src/assets/game/mobile-add-reduce-bg.webp
index d641226..2e4488c 100644
Binary files a/src/assets/game/mobile-add-reduce-bg.webp and b/src/assets/game/mobile-add-reduce-bg.webp differ
diff --git a/src/assets/game/mobile-confirm-red-bg.webp b/src/assets/game/mobile-confirm-red-bg.webp
index a9ec7cd..b3d5250 100644
Binary files a/src/assets/game/mobile-confirm-red-bg.webp and b/src/assets/game/mobile-confirm-red-bg.webp differ
diff --git a/src/assets/game/mobile-contro-comfirm.webp b/src/assets/game/mobile-contro-comfirm.webp
index 78bf73d..cba1022 100644
Binary files a/src/assets/game/mobile-contro-comfirm.webp and b/src/assets/game/mobile-contro-comfirm.webp differ
diff --git a/src/assets/game/mobile-control-actions-bg.png b/src/assets/game/mobile-control-actions-bg.png
index 813aa6d..a23cca9 100644
Binary files a/src/assets/game/mobile-control-actions-bg.png and b/src/assets/game/mobile-control-actions-bg.png differ
diff --git a/src/assets/game/mobile-control-number.webp b/src/assets/game/mobile-control-number.webp
index a2ef98d..980222d 100644
Binary files a/src/assets/game/mobile-control-number.webp and b/src/assets/game/mobile-control-number.webp differ
diff --git a/src/assets/game/reduce.webp b/src/assets/game/reduce.webp
index 550c504..dc19b11 100644
Binary files a/src/assets/game/reduce.webp and b/src/assets/game/reduce.webp differ
diff --git a/src/assets/game/total-bg.webp b/src/assets/game/total-bg.webp
index 4af8a88..acf8148 100644
Binary files a/src/assets/game/total-bg.webp and b/src/assets/game/total-bg.webp differ
diff --git a/src/assets/game/win-bg.webp b/src/assets/game/win-bg.webp
index 5c168fa..7ce82a0 100644
Binary files a/src/assets/game/win-bg.webp and b/src/assets/game/win-bg.webp differ
diff --git a/src/assets/game/win.webp b/src/assets/game/win.webp
index 1b4955e..4649a37 100644
Binary files a/src/assets/game/win.webp and b/src/assets/game/win.webp differ
diff --git a/src/assets/game/zh-stop.webp b/src/assets/game/zh-stop.webp
index 5326cf1..9152cb5 100644
Binary files a/src/assets/game/zh-stop.webp and b/src/assets/game/zh-stop.webp differ
diff --git a/src/assets/reward/1.webp b/src/assets/reward/1.webp
index 9fbcb51..aa8b470 100644
Binary files a/src/assets/reward/1.webp and b/src/assets/reward/1.webp differ
diff --git a/src/assets/reward/10.webp b/src/assets/reward/10.webp
index 552156e..5c35289 100644
Binary files a/src/assets/reward/10.webp and b/src/assets/reward/10.webp differ
diff --git a/src/assets/reward/11.webp b/src/assets/reward/11.webp
index 286123a..4e9eda8 100644
Binary files a/src/assets/reward/11.webp and b/src/assets/reward/11.webp differ
diff --git a/src/assets/reward/12.webp b/src/assets/reward/12.webp
index ce7b6c2..4ed52b5 100644
Binary files a/src/assets/reward/12.webp and b/src/assets/reward/12.webp differ
diff --git a/src/assets/reward/13.webp b/src/assets/reward/13.webp
index 1a843ba..e0b2abb 100644
Binary files a/src/assets/reward/13.webp and b/src/assets/reward/13.webp differ
diff --git a/src/assets/reward/14.webp b/src/assets/reward/14.webp
index d02f7b9..74ddc24 100644
Binary files a/src/assets/reward/14.webp and b/src/assets/reward/14.webp differ
diff --git a/src/assets/reward/15.webp b/src/assets/reward/15.webp
index 95e56ee..98f6a1a 100644
Binary files a/src/assets/reward/15.webp and b/src/assets/reward/15.webp differ
diff --git a/src/assets/reward/16.webp b/src/assets/reward/16.webp
index a6c68b8..80b70cf 100644
Binary files a/src/assets/reward/16.webp and b/src/assets/reward/16.webp differ
diff --git a/src/assets/reward/17.webp b/src/assets/reward/17.webp
index a131d66..448ed79 100644
Binary files a/src/assets/reward/17.webp and b/src/assets/reward/17.webp differ
diff --git a/src/assets/reward/18.webp b/src/assets/reward/18.webp
index d2d67ee..2098d6c 100644
Binary files a/src/assets/reward/18.webp and b/src/assets/reward/18.webp differ
diff --git a/src/assets/reward/19.webp b/src/assets/reward/19.webp
index 7699d2d..c6ed7bd 100644
Binary files a/src/assets/reward/19.webp and b/src/assets/reward/19.webp differ
diff --git a/src/assets/reward/2.webp b/src/assets/reward/2.webp
index eb0ebe4..3ababb5 100644
Binary files a/src/assets/reward/2.webp and b/src/assets/reward/2.webp differ
diff --git a/src/assets/reward/20.webp b/src/assets/reward/20.webp
index 66068fc..e04df76 100644
Binary files a/src/assets/reward/20.webp and b/src/assets/reward/20.webp differ
diff --git a/src/assets/reward/21.webp b/src/assets/reward/21.webp
index c991371..e1dd18d 100644
Binary files a/src/assets/reward/21.webp and b/src/assets/reward/21.webp differ
diff --git a/src/assets/reward/22.webp b/src/assets/reward/22.webp
index 9826810..49b26fb 100644
Binary files a/src/assets/reward/22.webp and b/src/assets/reward/22.webp differ
diff --git a/src/assets/reward/23.webp b/src/assets/reward/23.webp
index 5240127..ce8cae6 100644
Binary files a/src/assets/reward/23.webp and b/src/assets/reward/23.webp differ
diff --git a/src/assets/reward/24.webp b/src/assets/reward/24.webp
index 12ead6f..a7f6ff8 100644
Binary files a/src/assets/reward/24.webp and b/src/assets/reward/24.webp differ
diff --git a/src/assets/reward/25.webp b/src/assets/reward/25.webp
index bf7d637..835801b 100644
Binary files a/src/assets/reward/25.webp and b/src/assets/reward/25.webp differ
diff --git a/src/assets/reward/26.webp b/src/assets/reward/26.webp
index 9122933..798274e 100644
Binary files a/src/assets/reward/26.webp and b/src/assets/reward/26.webp differ
diff --git a/src/assets/reward/27.webp b/src/assets/reward/27.webp
index 40fc6b9..716901a 100644
Binary files a/src/assets/reward/27.webp and b/src/assets/reward/27.webp differ
diff --git a/src/assets/reward/28.webp b/src/assets/reward/28.webp
index 89fc939..f1c8426 100644
Binary files a/src/assets/reward/28.webp and b/src/assets/reward/28.webp differ
diff --git a/src/assets/reward/29.webp b/src/assets/reward/29.webp
index 26b4b91..45ea787 100644
Binary files a/src/assets/reward/29.webp and b/src/assets/reward/29.webp differ
diff --git a/src/assets/reward/3.webp b/src/assets/reward/3.webp
index 3318df3..5674382 100644
Binary files a/src/assets/reward/3.webp and b/src/assets/reward/3.webp differ
diff --git a/src/assets/reward/30.webp b/src/assets/reward/30.webp
index 61d0193..ffa0cc4 100644
Binary files a/src/assets/reward/30.webp and b/src/assets/reward/30.webp differ
diff --git a/src/assets/reward/31.webp b/src/assets/reward/31.webp
index bc0c479..2feed5d 100644
Binary files a/src/assets/reward/31.webp and b/src/assets/reward/31.webp differ
diff --git a/src/assets/reward/32.webp b/src/assets/reward/32.webp
index 1fb8928..f5872a0 100644
Binary files a/src/assets/reward/32.webp and b/src/assets/reward/32.webp differ
diff --git a/src/assets/reward/33.webp b/src/assets/reward/33.webp
index 951c451..27f24fc 100644
Binary files a/src/assets/reward/33.webp and b/src/assets/reward/33.webp differ
diff --git a/src/assets/reward/34.webp b/src/assets/reward/34.webp
index 6c52a1f..952dec8 100644
Binary files a/src/assets/reward/34.webp and b/src/assets/reward/34.webp differ
diff --git a/src/assets/reward/35.webp b/src/assets/reward/35.webp
index 3ed3dff..176b26c 100644
Binary files a/src/assets/reward/35.webp and b/src/assets/reward/35.webp differ
diff --git a/src/assets/reward/36.webp b/src/assets/reward/36.webp
index 134fa39..fd6d090 100644
Binary files a/src/assets/reward/36.webp and b/src/assets/reward/36.webp differ
diff --git a/src/assets/reward/4.webp b/src/assets/reward/4.webp
index 381f1f5..ecd8283 100644
Binary files a/src/assets/reward/4.webp and b/src/assets/reward/4.webp differ
diff --git a/src/assets/reward/5.webp b/src/assets/reward/5.webp
index e0dc2b7..d6249ae 100644
Binary files a/src/assets/reward/5.webp and b/src/assets/reward/5.webp differ
diff --git a/src/assets/reward/6.webp b/src/assets/reward/6.webp
index db91172..fa6c9f1 100644
Binary files a/src/assets/reward/6.webp and b/src/assets/reward/6.webp differ
diff --git a/src/assets/reward/7.webp b/src/assets/reward/7.webp
index 644341c..238f02d 100644
Binary files a/src/assets/reward/7.webp and b/src/assets/reward/7.webp differ
diff --git a/src/assets/reward/8.webp b/src/assets/reward/8.webp
index 36e51b3..af8e279 100644
Binary files a/src/assets/reward/8.webp and b/src/assets/reward/8.webp differ
diff --git a/src/assets/reward/9.webp b/src/assets/reward/9.webp
index 05d9513..f324189 100644
Binary files a/src/assets/reward/9.webp and b/src/assets/reward/9.webp differ
diff --git a/src/assets/system/avatar.webp b/src/assets/system/avatar.webp
index eca0e7f..87c841b 100644
Binary files a/src/assets/system/avatar.webp and b/src/assets/system/avatar.webp differ
diff --git a/src/assets/system/blue-btn.webp b/src/assets/system/blue-btn.webp
index d1fef2b..771b586 100644
Binary files a/src/assets/system/blue-btn.webp and b/src/assets/system/blue-btn.webp differ
diff --git a/src/assets/system/broadcast.webp b/src/assets/system/broadcast.webp
index 996f498..0131b45 100644
Binary files a/src/assets/system/broadcast.webp and b/src/assets/system/broadcast.webp differ
diff --git a/src/assets/system/chat.webp b/src/assets/system/chat.webp
index dc8ca70..029eee1 100644
Binary files a/src/assets/system/chat.webp and b/src/assets/system/chat.webp differ
diff --git a/src/assets/system/diamond.webp b/src/assets/system/diamond.webp
index 47df018..6785b91 100644
Binary files a/src/assets/system/diamond.webp and b/src/assets/system/diamond.webp differ
diff --git a/src/assets/system/en-US.png b/src/assets/system/en-US.png
index 4cd1fa6..22c6068 100644
Binary files a/src/assets/system/en-US.png and b/src/assets/system/en-US.png differ
diff --git a/src/assets/system/fire.webp b/src/assets/system/fire.webp
index a1f2957..dd7a974 100644
Binary files a/src/assets/system/fire.webp and b/src/assets/system/fire.webp differ
diff --git a/src/assets/system/green-btn.webp b/src/assets/system/green-btn.webp
index 2961eb3..47a7424 100644
Binary files a/src/assets/system/green-btn.webp and b/src/assets/system/green-btn.webp differ
diff --git a/src/assets/system/history-bg.png b/src/assets/system/history-bg.png
index 59a13b3..a52c2be 100644
Binary files a/src/assets/system/history-bg.png and b/src/assets/system/history-bg.png differ
diff --git a/src/assets/system/id-ID.webp b/src/assets/system/id-ID.webp
index 209535f..7cddfaa 100644
Binary files a/src/assets/system/id-ID.webp and b/src/assets/system/id-ID.webp differ
diff --git a/src/assets/system/length-blue-btn.webp b/src/assets/system/length-blue-btn.webp
index 7fb504f..8e5b44c 100644
Binary files a/src/assets/system/length-blue-btn.webp and b/src/assets/system/length-blue-btn.webp differ
diff --git a/src/assets/system/length-green-btn.webp b/src/assets/system/length-green-btn.webp
index f9d194b..4f931a5 100644
Binary files a/src/assets/system/length-green-btn.webp and b/src/assets/system/length-green-btn.webp differ
diff --git a/src/assets/system/lock.webp b/src/assets/system/lock.webp
index 918a134..5d7bca5 100644
Binary files a/src/assets/system/lock.webp and b/src/assets/system/lock.webp differ
diff --git a/src/assets/system/login-bg.webp b/src/assets/system/login-bg.webp
index 550c40f..89a2b2c 100644
Binary files a/src/assets/system/login-bg.webp and b/src/assets/system/login-bg.webp differ
diff --git a/src/assets/system/login-text.webp b/src/assets/system/login-text.webp
index 956cbf7..9ec0edb 100644
Binary files a/src/assets/system/login-text.webp and b/src/assets/system/login-text.webp differ
diff --git a/src/assets/system/logo.webp b/src/assets/system/logo.webp
index 89e7c34..e5aad53 100644
Binary files a/src/assets/system/logo.webp and b/src/assets/system/logo.webp differ
diff --git a/src/assets/system/mobile-add-reduce-bg.webp b/src/assets/system/mobile-add-reduce-bg.webp
index d641226..2e4488c 100644
Binary files a/src/assets/system/mobile-add-reduce-bg.webp and b/src/assets/system/mobile-add-reduce-bg.webp differ
diff --git a/src/assets/system/mobile-contro-comfirm.webp b/src/assets/system/mobile-contro-comfirm.webp
index 78bf73d..cba1022 100644
Binary files a/src/assets/system/mobile-contro-comfirm.webp and b/src/assets/system/mobile-contro-comfirm.webp differ
diff --git a/src/assets/system/mobile-control-number.webp b/src/assets/system/mobile-control-number.webp
index a2ef98d..980222d 100644
Binary files a/src/assets/system/mobile-control-number.webp and b/src/assets/system/mobile-control-number.webp differ
diff --git a/src/assets/system/mobile-modal-header.webp b/src/assets/system/mobile-modal-header.webp
index bc7aa5d..45b8b12 100644
Binary files a/src/assets/system/mobile-modal-header.webp and b/src/assets/system/mobile-modal-header.webp differ
diff --git a/src/assets/system/modal-bg.webp b/src/assets/system/modal-bg.webp
index d1f2795..8be35ad 100644
Binary files a/src/assets/system/modal-bg.webp and b/src/assets/system/modal-bg.webp differ
diff --git a/src/assets/system/modal-close.webp b/src/assets/system/modal-close.webp
index f340940..6c8051c 100644
Binary files a/src/assets/system/modal-close.webp and b/src/assets/system/modal-close.webp differ
diff --git a/src/assets/system/modal-normal-bg.png b/src/assets/system/modal-normal-bg.png
index b7eb2fd..8328303 100644
Binary files a/src/assets/system/modal-normal-bg.png and b/src/assets/system/modal-normal-bg.png differ
diff --git a/src/assets/system/ms-MY.png b/src/assets/system/ms-MY.png
index efe714a..dd0efb7 100644
Binary files a/src/assets/system/ms-MY.png and b/src/assets/system/ms-MY.png differ
diff --git a/src/assets/system/notice-bg.webp b/src/assets/system/notice-bg.webp
index 3b495c0..de9d611 100644
Binary files a/src/assets/system/notice-bg.webp and b/src/assets/system/notice-bg.webp differ
diff --git a/src/assets/system/procedures-bg.webp b/src/assets/system/procedures-bg.webp
index e3c76c2..e4e0ec0 100644
Binary files a/src/assets/system/procedures-bg.webp and b/src/assets/system/procedures-bg.webp differ
diff --git a/src/assets/system/refresh.webp b/src/assets/system/refresh.webp
index e6577be..87b2db5 100644
Binary files a/src/assets/system/refresh.webp and b/src/assets/system/refresh.webp differ
diff --git a/src/assets/system/right.webp b/src/assets/system/right.webp
index 6cbac06..d60ee52 100644
Binary files a/src/assets/system/right.webp and b/src/assets/system/right.webp differ
diff --git a/src/assets/system/status-center.webp b/src/assets/system/status-center.webp
index 41c10ec..a4eb5b5 100644
Binary files a/src/assets/system/status-center.webp and b/src/assets/system/status-center.webp differ
diff --git a/src/assets/system/status-line.webp b/src/assets/system/status-line.webp
index 418df7a..f01436a 100644
Binary files a/src/assets/system/status-line.webp and b/src/assets/system/status-line.webp differ
diff --git a/src/assets/system/switch.webp b/src/assets/system/switch.webp
index a00c758..cd64e2b 100644
Binary files a/src/assets/system/switch.webp and b/src/assets/system/switch.webp differ
diff --git a/src/assets/system/topup.webp b/src/assets/system/topup.webp
index c14c2cf..53e9fcf 100644
Binary files a/src/assets/system/topup.webp and b/src/assets/system/topup.webp differ
diff --git a/src/assets/system/userInfo-bg.webp b/src/assets/system/userInfo-bg.webp
index 1c1eefb..c503a12 100644
Binary files a/src/assets/system/userInfo-bg.webp and b/src/assets/system/userInfo-bg.webp differ
diff --git a/src/assets/system/wifi.webp b/src/assets/system/wifi.webp
index ac17d33..6569782 100644
Binary files a/src/assets/system/wifi.webp and b/src/assets/system/wifi.webp differ
diff --git a/src/assets/system/withdraw.webp b/src/assets/system/withdraw.webp
index 5b30754..b2d6659 100644
Binary files a/src/assets/system/withdraw.webp and b/src/assets/system/withdraw.webp differ
diff --git a/src/assets/system/zh-CN.png b/src/assets/system/zh-CN.png
index 259c44a..5e236e2 100644
Binary files a/src/assets/system/zh-CN.png and b/src/assets/system/zh-CN.png differ
diff --git a/src/main.tsx b/src/main.tsx
index 4192843..95558cf 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,7 +1,6 @@
import { QueryClientProvider } from '@tanstack/react-query'
-import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
import { RouterProvider } from '@tanstack/react-router'
-import { StrictMode } from 'react'
+import { lazy, StrictMode, Suspense } from 'react'
import { createRoot } from 'react-dom/client'
import { getCurrentUserProfile, refreshAuthSession } from '@/api'
import { AppBootResourceGate } from '@/components/app-boot-resource-gate'
@@ -23,6 +22,15 @@ const rootElement = document.getElementById(APP_ROOT_ELEMENT_ID)
const shouldShowQueryDevtools =
import.meta.env.VITE_APP_ENV === 'development' &&
import.meta.env.VITE_ENABLE_QUERY_DEVTOOLS === 'true'
+const QueryDevtools = shouldShowQueryDevtools
+ ? lazy(async () => {
+ const { ReactQueryDevtools } = await import(
+ '@tanstack/react-query-devtools'
+ )
+
+ return { default: ReactQueryDevtools }
+ })
+ : null
if (!rootElement) {
throw new Error('Root element not found')
@@ -46,8 +54,10 @@ createRoot(rootElement).render(
- {shouldShowQueryDevtools && (
-
+ {QueryDevtools && (
+
+
+
)}
diff --git a/src/main/desktop-modal-host.tsx b/src/main/desktop-modal-host.tsx
new file mode 100644
index 0000000..25ee5e4
--- /dev/null
+++ b/src/main/desktop-modal-host.tsx
@@ -0,0 +1,31 @@
+import { EntryNoticeGateModal } from '@/features/game/components/shared/entry-notice-gate-modal'
+import DesktopAutoSettingModal from '@/modal/desktop/desktop-auto-setting-modal.tsx'
+import DesktopLanguageModal from '@/modal/desktop/desktop-language-modal.tsx'
+import DesktopLoginModal from '@/modal/desktop/desktop-login-modal.tsx'
+import DesktopNoticeModal from '@/modal/desktop/desktop-notice-modal.tsx'
+import { DesktopPeriodHistoryDrawer } from '@/modal/desktop/desktop-period-history-drawer.tsx'
+import DesktopProceduresModal from '@/modal/desktop/desktop-procedures-modal.tsx'
+import DesktopRegisterModal from '@/modal/desktop/desktop-register-modal.tsx'
+import DesktopRulesModal from '@/modal/desktop/desktop-rules-modal.tsx'
+import DesktopSupportModal from '@/modal/desktop/desktop-support-modal.tsx'
+import DesktopUserInfoModal from '@/modal/desktop/desktop-userInfo-modal.tsx'
+import DesktopWithdrawTopupModal from '@/modal/desktop/desktop-withdraw-topup-modal.tsx'
+
+export default function DesktopModalHost() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/src/main/main-entry-page.tsx b/src/main/main-entry-page.tsx
index 7cad2f3..da98962 100644
--- a/src/main/main-entry-page.tsx
+++ b/src/main/main-entry-page.tsx
@@ -1,102 +1,25 @@
-import { startTransition, useEffect, useState } from 'react'
+import { lazy, Suspense, startTransition, useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { getGameLobbyInit } from '@/api'
import { MOBILE_LAYOUT_BREAKPOINT_PX } from '@/constants'
-import {
- EntryNoticeGateModal,
- MobileEntryNoticeGateModal,
-} from '@/features/game/components/shared/entry-notice-gate-modal'
import { useGameRealtimeSync } from '@/hooks/use-game-realtime-sync.ts'
import { useDocumentMetadata } from '@/lib/head/document-metadata.ts'
import { notify } from '@/lib/notify.ts'
-import { MobileEntry } from '@/main/mobile-entry.tsx'
-import { PcEntry } from '@/main/pc-entry.tsx'
-import DesktopAutoSettingModal from '@/modal/desktop/desktop-auto-setting-modal.tsx'
-import DesktopLanguageModal from '@/modal/desktop/desktop-language-modal.tsx'
-import DesktopLoginModal from '@/modal/desktop/desktop-login-modal.tsx'
-import DesktopNoticeModal from '@/modal/desktop/desktop-notice-modal.tsx'
-import { DesktopPeriodHistoryDrawer } from '@/modal/desktop/desktop-period-history-drawer.tsx'
-import DesktopProceduresModal from '@/modal/desktop/desktop-procedures-modal.tsx'
-import DesktopRegisterModal from '@/modal/desktop/desktop-register-modal.tsx'
-import DesktopRulesModal from '@/modal/desktop/desktop-rules-modal.tsx'
-import DesktopSupportModal from '@/modal/desktop/desktop-support-modal.tsx'
-import DesktopUserInfoModal from '@/modal/desktop/desktop-userInfo-modal.tsx'
-import DesktopWithdrawTopupModal from '@/modal/desktop/desktop-withdraw-topup-modal.tsx'
-import MobileAutoSettingModal from '@/modal/mobile/mobile-auto-setting-modal.tsx'
-import MobileLanguageModal from '@/modal/mobile/mobile-language-modal.tsx'
-import MobileLoginModal from '@/modal/mobile/mobile-login-modal.tsx'
-import MobileNoticeModal from '@/modal/mobile/mobile-notice-modal.tsx'
-import { MobilePeriodHistoryDrawer } from '@/modal/mobile/mobile-period-history-drawer.tsx'
-import MobileProceduresModal from '@/modal/mobile/mobile-procedures-modal.tsx'
-import MobileRegisterModal from '@/modal/mobile/mobile-register-modal.tsx'
-import MobileRulesModal from '@/modal/mobile/mobile-rules-modal.tsx'
-import MobileSupportModal from '@/modal/mobile/mobile-support-modal.tsx'
-import MobileUserInfoModal from '@/modal/mobile/mobile-userInfo-modal.tsx'
-import MobileWithdrawTopupModal from '@/modal/mobile/mobile-withdraw-topup-modal.tsx'
import { useAuthStore } from '@/store/auth'
import { useGameRoundStore, useGameSessionStore } from '@/store/game'
-function DesktopModalHost() {
- return (
- <>
- {/* 桌面端登录弹窗:用于未登录用户进入登录流程 */}
-
- {/* 桌面端注册弹窗:用于新用户注册账号 */}
-
- {/* 桌面端语言切换弹窗:用于选择当前站点展示语言 */}
-
- {/* 桌面端规则弹窗:展示当前游戏玩法、下注与结算规则 */}
-
- {/* 桌面端用户信息弹窗:展示个人资料与站内消息 */}
-
- {/* 桌面端公告弹窗:展示活动公告或运营通知内容 */}
-
- {/* 桌面端自动托管弹窗:配置自动托管相关条件 */}
-
- {/* 桌面端充值/提现前置选择弹窗:先选择进入充值还是提现 */}
-
- {/* 桌面端充值/提现业务弹窗:承载具体的充值或提现内容 */}
-
- {/* 桌面端客服弹窗:承载在线客服 iframe */}
-
- {/* 强制弹窗 */}
-
- {/* 历史开奖信息弹窗 */}
-
- >
- )
-}
+const DesktopModalHost = lazy(() => import('@/main/desktop-modal-host.tsx'))
+const MobileEntry = lazy(async () => {
+ const { MobileEntry } = await import('@/main/mobile-entry.tsx')
-function MobileModalHost() {
- return (
- <>
- {/* 移动端登录弹窗:用于未登录用户进入登录流程 */}
-
- {/* 移动端注册弹窗:用于新用户注册账号 */}
-
- {/* 移动端语言切换弹窗:用于选择当前站点展示语言 */}
-
- {/* 移动端规则弹窗:展示当前游戏玩法、下注与结算规则 */}
-
- {/* 移动端用户信息弹窗:展示个人资料与站内消息 */}
-
- {/* 移动端公告弹窗:展示活动公告或运营通知内容 */}
-
- {/* 移动端自动托管弹窗:配置自动托管相关条件 */}
-
- {/* 移动端充值/提现前置选择弹窗:先选择进入充值还是提现 */}
-
- {/* 移动端充值/提现业务弹窗:承载具体的充值或提现内容 */}
-
- {/* 移动端客服弹窗:承载在线客服 iframe */}
-
- {/* 强制弹窗 */}
-
- {/* 历史开奖信息弹窗 */}
-
- >
- )
-}
+ return { default: MobileEntry }
+})
+const MobileModalHost = lazy(() => import('@/main/mobile-modal-host.tsx'))
+const PcEntry = lazy(async () => {
+ const { PcEntry } = await import('@/main/pc-entry.tsx')
+
+ return { default: PcEntry }
+})
export function MainEntryPage() {
const { t } = useTranslation()
@@ -258,8 +181,12 @@ export function MainEntryPage() {
isMobile ? 'flex w-full flex-col' : 'flex min-h-0 flex-1 flex-col'
}
>
- {isMobile ? : }
- {isMobile ? : }
+
+ {isMobile ? : }
+
+
+ {isMobile ? : }
+
)
}
diff --git a/src/main/mobile-modal-host.tsx b/src/main/mobile-modal-host.tsx
new file mode 100644
index 0000000..202f7ce
--- /dev/null
+++ b/src/main/mobile-modal-host.tsx
@@ -0,0 +1,31 @@
+import { MobileEntryNoticeGateModal } from '@/features/game/components/shared/entry-notice-gate-modal'
+import MobileAutoSettingModal from '@/modal/mobile/mobile-auto-setting-modal.tsx'
+import MobileLanguageModal from '@/modal/mobile/mobile-language-modal.tsx'
+import MobileLoginModal from '@/modal/mobile/mobile-login-modal.tsx'
+import MobileNoticeModal from '@/modal/mobile/mobile-notice-modal.tsx'
+import { MobilePeriodHistoryDrawer } from '@/modal/mobile/mobile-period-history-drawer.tsx'
+import MobileProceduresModal from '@/modal/mobile/mobile-procedures-modal.tsx'
+import MobileRegisterModal from '@/modal/mobile/mobile-register-modal.tsx'
+import MobileRulesModal from '@/modal/mobile/mobile-rules-modal.tsx'
+import MobileSupportModal from '@/modal/mobile/mobile-support-modal.tsx'
+import MobileUserInfoModal from '@/modal/mobile/mobile-userInfo-modal.tsx'
+import MobileWithdrawTopupModal from '@/modal/mobile/mobile-withdraw-topup-modal.tsx'
+
+export default function MobileModalHost() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/vite.config.ts b/vite.config.ts
index 032f749..b219918 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -5,10 +5,61 @@ import { tanstackRouter } from '@tanstack/router-plugin/vite'
import react, { reactCompilerPreset } from '@vitejs/plugin-react'
import { defineConfig } from 'vite'
+function resolveManualChunk(id: string) {
+ if (!id.includes('/node_modules/')) {
+ return
+ }
+
+ if (
+ id.includes('/node_modules/react/') ||
+ id.includes('/node_modules/react-dom/') ||
+ id.includes('/node_modules/scheduler/')
+ ) {
+ return 'vendor-react'
+ }
+
+ if (id.includes('/node_modules/@tanstack/')) {
+ return 'vendor-tanstack'
+ }
+
+ if (
+ id.includes('/node_modules/i18next/') ||
+ id.includes('/node_modules/react-i18next/')
+ ) {
+ return 'vendor-i18n'
+ }
+
+ if (
+ id.includes('/node_modules/motion/') ||
+ id.includes('/node_modules/lottie-web/')
+ ) {
+ return 'vendor-animation'
+ }
+
+ if (
+ id.includes('/node_modules/radix-ui/') ||
+ id.includes('/node_modules/@radix-ui/')
+ ) {
+ return 'vendor-radix'
+ }
+
+ if (id.includes('/node_modules/lucide-react/')) {
+ return 'vendor-icons'
+ }
+
+ return 'vendor'
+}
+
export default defineConfig({
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
+ 'lottie-web': fileURLToPath(
+ new URL(
+ './node_modules/lottie-web/build/player/lottie_light.js',
+ import.meta.url,
+ ),
+ ),
},
},
server: {
@@ -33,5 +84,10 @@ export default defineConfig({
],
build: {
outDir: 'zihua-web',
+ rolldownOptions: {
+ output: {
+ manualChunks: resolveManualChunk,
+ },
+ },
},
})