game-home.css 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. html, body.millions-bg { background: #f5f7fb !important; }
  2. .main-content { background: #f5f7fb !important; }
  3. /* Mega Jackpot amount — spiral grow & shrink */
  4. .mega-jackpot-spiral {
  5. display: inline-block;
  6. transform-origin: center center;
  7. animation: megaJackpotSpiral 1.8s ease-in-out infinite;
  8. will-change: transform;
  9. }
  10. /* Redeem Rewards button — gentle pulse + golden glow */
  11. .redeem-pulse {
  12. animation: redeemPulse 1.6s ease-in-out infinite;
  13. will-change: transform, box-shadow;
  14. }
  15. @keyframes redeemPulse {
  16. 0%, 100% {
  17. transform: scale(1);
  18. box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12), 0 0 0 0 rgba(255, 207, 15, 0.6);
  19. }
  20. 50% {
  21. transform: scale(1.06);
  22. box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18), 0 0 0 6px rgba(255, 207, 15, 0);
  23. }
  24. }
  25. .lang-flag-icon {
  26. width: 16px;
  27. height: 12px;
  28. object-fit: cover;
  29. border-radius: 2px;
  30. flex-shrink: 0;
  31. box-shadow: 0 0 0 1px rgba(0,0,0,0.08);
  32. }
  33. @keyframes megaJackpotSpiral {
  34. 0% {
  35. transform: scale(0.25) rotate(0deg);
  36. }
  37. 30% {
  38. transform: scale(1.15) rotate(360deg);
  39. }
  40. 65% {
  41. transform: scale(1.15) rotate(360deg);
  42. }
  43. 100% {
  44. transform: scale(0.25) rotate(720deg);
  45. }
  46. }
  47. /* ===== Sub MILLION popup ===== */
  48. .sub-modal {
  49. background: rgba(5, 0, 60, 0.72);
  50. backdrop-filter: blur(4px);
  51. -webkit-backdrop-filter: blur(4px);
  52. }
  53. .sub-modal__panel {
  54. box-shadow: 0 24px 60px rgba(0, 20, 120, 0.45);
  55. }
  56. .sub-modal__close {
  57. position: absolute;
  58. top: 12px;
  59. right: 12px;
  60. z-index: 3;
  61. width: 32px;
  62. height: 32px;
  63. border-radius: 9999px;
  64. display: flex;
  65. align-items: center;
  66. justify-content: center;
  67. font-size: 16px;
  68. color: #fff;
  69. background: rgba(255, 255, 255, 0.18);
  70. transition: background 0.2s;
  71. }
  72. .sub-modal__close:hover { background: rgba(255, 255, 255, 0.3); }
  73. .sub-modal__panel:has(#subResultView.flex) .sub-modal__close {
  74. color: #797979;
  75. background: #f1f3f8;
  76. }
  77. .sub-modal__hero {
  78. background: linear-gradient(-1.8deg, #050068 3.87%, #0062ff 96.13%);
  79. }
  80. .sub-modal__hero::before,
  81. .sub-modal__hero::after {
  82. content: "";
  83. position: absolute;
  84. border-radius: 9999px;
  85. pointer-events: none;
  86. }
  87. .sub-modal__hero::before {
  88. width: 180px;
  89. height: 180px;
  90. top: -70px;
  91. left: -60px;
  92. background: radial-gradient(circle, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 70%);
  93. }
  94. .sub-modal__hero::after {
  95. width: 220px;
  96. height: 220px;
  97. bottom: -120px;
  98. right: -80px;
  99. background: radial-gradient(circle, rgba(255, 187, 50, 0.28) 0%, rgba(255, 187, 50, 0) 70%);
  100. }
  101. .sub-modal__badge {
  102. position: relative;
  103. z-index: 1;
  104. display: inline-block;
  105. padding: 3px 12px;
  106. border-radius: 9999px;
  107. font-size: 11px;
  108. font-weight: 800;
  109. letter-spacing: 2px;
  110. color: #3a2400;
  111. background: linear-gradient(180deg, #fff1c9 0%, #ffbb32 100%);
  112. box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  113. }
  114. .sub-modal__crown {
  115. display: block;
  116. width: 150px;
  117. height: auto;
  118. margin: -52px auto 0;
  119. position: relative;
  120. z-index: 2;
  121. filter: drop-shadow(0 6px 10px rgba(0, 20, 120, 0.3));
  122. animation: subCrownFloat 2.4s ease-in-out infinite;
  123. }
  124. @keyframes subCrownFloat {
  125. 0%, 100% { transform: translateY(0); }
  126. 50% { transform: translateY(-5px); }
  127. }
  128. .sub-modal__benefits {
  129. display: flex;
  130. flex-direction: column;
  131. gap: 10px;
  132. padding: 14px;
  133. border-radius: 16px;
  134. background: #f3f6ff;
  135. }
  136. .sub-modal__benefits li {
  137. display: flex;
  138. align-items: center;
  139. gap: 10px;
  140. font-size: 14px;
  141. font-weight: 600;
  142. color: #1a1a2e;
  143. line-height: 1.3;
  144. }
  145. .sub-modal__check {
  146. flex-shrink: 0;
  147. width: 28px;
  148. height: 28px;
  149. border-radius: 9999px;
  150. display: flex;
  151. align-items: center;
  152. justify-content: center;
  153. font-size: 13px;
  154. color: #fff;
  155. background: linear-gradient(180deg, #0400ff 0%, #0062ff 100%);
  156. }
  157. .sub-modal__primary {
  158. position: relative;
  159. width: 100%;
  160. padding: 13px 16px;
  161. border-radius: 14px;
  162. font-size: 18px;
  163. font-weight: 800;
  164. color: #fff;
  165. background: linear-gradient(180deg, #0062ff 0%, #001ec7 100%);
  166. box-shadow: 0 6px 16px rgba(0, 62, 255, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.35);
  167. transition: transform 0.15s, opacity 0.2s;
  168. }
  169. .sub-modal__primary:active { transform: scale(0.97); }
  170. .sub-modal__primary:disabled { opacity: 0.75; }
  171. .sub-modal__secondary {
  172. width: 100%;
  173. padding: 11px 16px;
  174. border-radius: 14px;
  175. font-size: 16px;
  176. font-weight: 700;
  177. color: #0062ff;
  178. background: #fff;
  179. border: 2px solid #cfdcff;
  180. transition: transform 0.15s, border-color 0.2s;
  181. }
  182. .sub-modal__secondary:hover { border-color: #0062ff; }
  183. .sub-modal__secondary:active { transform: scale(0.97); }
  184. .sub-modal__spinner {
  185. display: none;
  186. width: 20px;
  187. height: 20px;
  188. border-radius: 9999px;
  189. border: 3px solid rgba(255, 255, 255, 0.35);
  190. border-top-color: #fff;
  191. animation: subSpin 0.8s linear infinite;
  192. }
  193. .sub-modal__primary.is-loading .sub-modal__btn-label { visibility: hidden; }
  194. .sub-modal__primary.is-loading .sub-modal__spinner {
  195. display: block;
  196. position: absolute;
  197. top: 50%;
  198. left: 50%;
  199. margin: -10px 0 0 -10px;
  200. }
  201. @keyframes subSpin { to { transform: rotate(360deg); } }
  202. .sub-modal__result-icon {
  203. width: 84px;
  204. height: 84px;
  205. border-radius: 9999px;
  206. display: flex;
  207. align-items: center;
  208. justify-content: center;
  209. font-size: 38px;
  210. color: #fff;
  211. }
  212. .sub-modal__result-icon--success {
  213. background: linear-gradient(180deg, #2ee59d 0%, #0fb36b 100%);
  214. box-shadow: 0 0 0 10px rgba(15, 179, 107, 0.12);
  215. }
  216. .sub-modal__result-icon--fail {
  217. background: linear-gradient(180deg, #ff7a7a 0%, #e53935 100%);
  218. box-shadow: 0 0 0 10px rgba(229, 57, 53, 0.12);
  219. }
  220. .sub-modal__btn-close {
  221. width: 100%;
  222. padding: 12px 16px;
  223. border-radius: 14px;
  224. font-size: 16px;
  225. font-weight: 700;
  226. color: #4b5563;
  227. background: #f3f4f6;
  228. border: 1px solid #e5e7eb;
  229. transition: transform 0.15s, background-color 0.2s, color 0.2s;
  230. cursor: pointer;
  231. }
  232. .sub-modal__btn-close:hover {
  233. background: #e5e7eb;
  234. color: #1f2937;
  235. }
  236. .sub-modal__btn-close:active {
  237. transform: scale(0.97);
  238. }