landingpage_br.html 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. <!DOCTYPE html>
  2. <html lang="pt-BR">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="Cache-Control" content="max-age=0">
  6. <link rel="icon" href="%%FAV_ICO%%" type="image/x-icon">
  7. <script src="../js/load.m.js"></script>
  8. <script defer src="./cdn/pixel_h5.js?v=20250827"></script>
  9. <script defer src="./cdn/push_manager.js"></script>
  10. <script defer src="../fingerprint2.js"></script>
  11. <script defer src="../js/anonymous.js"></script>
  12. <!-- <script utpfxyz defer ifsyo ycsnqt src="./js/com.devtool.js" rgryn></script> &lt;!&ndash; CSS非阻塞加载支持脚本 &ndash;&gt;-->
  13. <script>
  14. let videos=["home_video.mp4","sq011.mp4","sq015.mp4","sq017.mp4"]
  15. window.home_video="./product/"+videos[Math.floor(Math.random() * videos.length)];
  16. window.game_title="%%BRAND_TITLE%%";
  17. window.pwaTitle = window.game_title
  18. window.developer="24680 Gaming";
  19. window.weblog="https://api1.usvip.org/api/weblog";
  20. // loadCSS polyfill
  21. window.loadCSS = "defined";
  22. (function (global) {
  23. function loadCSS(href, before, media, attributes) {
  24. var doc = global.document;
  25. var link = doc.createElement("link");
  26. var ref = before || (doc.body || doc.getElementsByTagName("head")[0]).lastChild;
  27. var sheets = doc.styleSheets;
  28. if (attributes) {
  29. for (var attr in attributes) {
  30. if (attributes.hasOwnProperty(attr)) {
  31. link.setAttribute(attr, attributes[attr]);
  32. }
  33. }
  34. }
  35. link.rel = "stylesheet";
  36. link.href = href;
  37. link.media = "only x";
  38. function ready(callback) {
  39. if (doc.body) {
  40. return callback();
  41. }
  42. setTimeout(function () {
  43. ready(callback);
  44. });
  45. }
  46. ready(function () {
  47. ref.parentNode.insertBefore(link, before ? ref : ref.nextSibling);
  48. });
  49. function onloadcssdefined(callback) {
  50. var resolvedHref = link.href;
  51. var i = sheets.length;
  52. while (i--) {
  53. if (sheets[i].href === resolvedHref) {
  54. return callback();
  55. }
  56. }
  57. setTimeout(function () {
  58. onloadcssdefined(callback);
  59. });
  60. }
  61. function loadCB() {
  62. if (link.addEventListener) {
  63. link.removeEventListener("load", loadCB);
  64. }
  65. link.media = media || "all";
  66. }
  67. if (link.addEventListener) {
  68. link.addEventListener("load", loadCB);
  69. }
  70. link.onloadcssdefined = onloadcssdefined;
  71. onloadcssdefined(loadCB);
  72. return link;
  73. }
  74. if (typeof exports !== "undefined") {
  75. exports.loadCSS = loadCSS;
  76. } else {
  77. global.loadCSS = loadCSS;
  78. }
  79. })(typeof global !== "undefined" ? global : this);
  80. (function (global) {
  81. if (!global.loadCSS) {
  82. return;
  83. }
  84. var rp = loadCSS.relpreload = {};
  85. rp.support = (function () {
  86. var ret;
  87. try {
  88. ret = global.document.createElement("link").relList.supports("preload");
  89. } catch (e) {
  90. ret = false;
  91. }
  92. return function () {
  93. return ret;
  94. };
  95. })();
  96. rp.bindMediaToggle = function (link) {
  97. var finalMedia = link.getAttribute("data-media") || link.media;
  98. function enableStylesheet() {
  99. link.media = finalMedia;
  100. }
  101. if (link.addEventListener) {
  102. link.addEventListener("load", enableStylesheet);
  103. } else if (link.attachEvent) {
  104. link.attachEvent("onload", enableStylesheet);
  105. }
  106. setTimeout(function () {
  107. link.rel = "stylesheet";
  108. link.media = "only x";
  109. });
  110. setTimeout(enableStylesheet, 3000);
  111. };
  112. rp.poly = function () {
  113. if (rp.support()) {
  114. return;
  115. }
  116. var links = global.document.getElementsByTagName("link");
  117. for (var i = 0; i < links.length; i++) {
  118. var link = links[i];
  119. if (link.rel === "preload" && link.getAttribute("as") === "style" && !link.getAttribute("data-loadcss")) {
  120. link.setAttribute("data-loadcss", true);
  121. rp.bindMediaToggle(link);
  122. }
  123. }
  124. };
  125. if (!rp.support()) {
  126. rp.poly();
  127. var run = global.setInterval(rp.poly, 500);
  128. if (global.addEventListener) {
  129. global.addEventListener("load", function () {
  130. rp.poly();
  131. global.clearInterval(run);
  132. });
  133. }
  134. }
  135. })(this);
  136. </script>
  137. <script>
  138. function inPwaEnv() {
  139. // Check if running in PWA (Progressive Web App) environment
  140. return ('standalone' in window.navigator && window.navigator.standalone) ||
  141. window.matchMedia('(display-mode: standalone)').matches;
  142. }
  143. // If in PWA environment, redirect from landingpage*.html to index.html
  144. if (inPwaEnv()) {
  145. // window.location.href = window.location.href.replace(/\blandingpage\d*\.html\b/, 'index.html');
  146. window.location.href = window.location.origin + '/' + window.location.search;
  147. }
  148. </script>
  149. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  150. <meta name="apple-mobile-web-app-title" content="%%BRAND_TITLE%%">
  151. <meta name="screen-orientation" content="portrait">
  152. <meta name="x5-orientation" content="portrait">
  153. <meta name="referrer" content="origin">
  154. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
  155. <title>%%BRAND_TITLE%%</title>
  156. <style>:root {
  157. --primaryColor: #0cf1a9;
  158. --secondaryColor: #00c385;
  159. --thirdColor: #00af78;
  160. --fourthColor: #046e55;
  161. --backgroundColor: linear-gradient(90deg, #0baa47, #057b52);
  162. --buttonColor: linear-gradient(180deg, #0ce986, #008e61);
  163. --textColor: #e8ecf0;
  164. --textGrayColor: #818e99;
  165. --mainBgColor: #1b1c26;
  166. --darkColor: #13141b;
  167. --darkColor1: #272d39;
  168. --darkColor2: #2e3541;
  169. --darkColor3: #343b49;
  170. --warningColor: #ffd118;
  171. --warningButtonColor: linear-gradient(180deg, #f7c61d, #ef9a05);
  172. --disabledButtonColor: linear-gradient(180deg, #b3b3b3, #939393);
  173. --errorButtonColor: linear-gradient(180deg, #ff5a6d, #ce1126);
  174. --activityBgColor: linear-gradient(90deg, #0baa47, #057b52)
  175. }
  176. .loader {
  177. background: #fff;
  178. bottom: 0;
  179. left: 0;
  180. overflow: hidden;
  181. position: fixed;
  182. right: 0;
  183. top: 0;
  184. z-index: 9999
  185. }
  186. .loader.show {
  187. display: block
  188. }
  189. .container {
  190. flex-direction: column;
  191. height: 100%;
  192. position: relative
  193. }
  194. .container, .container .img {
  195. align-items: center;
  196. display: flex;
  197. justify-content: center;
  198. width: 100%
  199. }
  200. .container .img {
  201. height: 65px
  202. }
  203. .container .img img {
  204. height: 100%;
  205. width: auto
  206. }
  207. .container .title {
  208. color: #fff;
  209. height: 50px;
  210. line-height: 1.5;
  211. margin: 23px 0;
  212. text-align: center
  213. }
  214. .container .title div {
  215. font-family: PingFang SC;
  216. font-size: 16px
  217. }
  218. .container .footer {
  219. height: 109px;
  220. margin-top: 120px;
  221. width: 294px
  222. }
  223. .container .footer img {
  224. width: 100%
  225. }
  226. .container .footer > div {
  227. display: flex;
  228. margin-top: 60px;
  229. width: 100%
  230. }
  231. .container .footer > div:first-child {
  232. margin-top: 0
  233. }
  234. .loader-inner {
  235. height: 60px;
  236. margin-bottom: 200px;
  237. position: relative;
  238. width: 100px
  239. }
  240. .loader-line-wrap {
  241. animation: spin 2s cubic-bezier(.175, .885, .32, 1.275) infinite;
  242. height: 50px;
  243. overflow: hidden;
  244. transform-origin: 50% 100%
  245. }
  246. .loader-line, .loader-line-wrap {
  247. box-sizing: border-box;
  248. left: 0;
  249. position: absolute;
  250. top: 0;
  251. width: 100px
  252. }
  253. .loader-line {
  254. border: 4px solid transparent;
  255. border-radius: 100%;
  256. height: 100px;
  257. margin: 0 auto;
  258. right: 0
  259. }
  260. img:not([src]), img[src=""] {
  261. visibility: hidden
  262. }
  263. .loader-line-wrap:first-child {
  264. animation-delay: -50ms
  265. }
  266. .loader-line-wrap:nth-child(2) {
  267. animation-delay: -.1s
  268. }
  269. .loader-line-wrap:nth-child(3) {
  270. animation-delay: -.15s
  271. }
  272. .loader-line-wrap:nth-child(4) {
  273. animation-delay: -.2s
  274. }
  275. .loader-line-wrap:nth-child(5) {
  276. animation-delay: -.25s
  277. }
  278. .loader-line-wrap:first-child .loader-line {
  279. border-color: #eb4747;
  280. height: 90px;
  281. top: 7px;
  282. width: 90px
  283. }
  284. .loader-line-wrap:nth-child(2) .loader-line {
  285. border-color: #ebeb47;
  286. height: 76px;
  287. top: 14px;
  288. width: 76px
  289. }
  290. .loader-line-wrap:nth-child(3) .loader-line {
  291. border-color: #47eb47;
  292. height: 62px;
  293. top: 21px;
  294. width: 62px
  295. }
  296. .loader-line-wrap:nth-child(4) .loader-line {
  297. border-color: #47ebeb;
  298. height: 48px;
  299. top: 28px;
  300. width: 48px
  301. }
  302. .loader-line-wrap:nth-child(5) .loader-line {
  303. border-color: #4747eb;
  304. height: 34px;
  305. top: 35px;
  306. width: 34px
  307. }
  308. @keyframes spin {
  309. 0%, 15% {
  310. transform: rotate(0)
  311. }
  312. to {
  313. transform: rotate(1turn)
  314. }
  315. }
  316. .loading-dots {
  317. display: flex;
  318. gap: 8px;
  319. justify-content: center
  320. }
  321. .loading-dot {
  322. animation: bounce 1s ease-in-out infinite;
  323. background-color: #4285f4;
  324. border-radius: 50%;
  325. height: 13px;
  326. width: 13px
  327. }
  328. .loading-dot:first-child {
  329. animation-delay: 0s
  330. }
  331. .loading-dot:nth-child(2) {
  332. animation-delay: .2s
  333. }
  334. .loading-dot:nth-child(3) {
  335. animation-delay: .4s
  336. }
  337. @keyframes bounce {
  338. 0%, to {
  339. transform: translateY(0)
  340. }
  341. 50% {
  342. transform: translateY(-15px)
  343. }
  344. }
  345. /* ===== Replaced text blocks (BR) ===== */
  346. .rtxt-wrap { width: 100%; font-family: "Google Sans", Roboto, Arial, sans-serif; color: #202124; box-sizing: border-box; }
  347. .step0 { padding: 6px 22px 18px;box-sizing: border-box; }
  348. .step2, .step3, .step4, .step5, .step6, .step7, .step8 { padding: 6px 22px 18px; background: #fff; box-sizing: border-box; }
  349. .step3, .step4, .step7 { padding-top: 18px; }
  350. .step3 { margin-top: 6px; }
  351. .rtxt-wrap * { box-sizing: border-box; }
  352. .rtxt p { font-size: 15px; line-height: 1.6; color: #3c4043; margin: 0 0 14px; }
  353. .rtxt h2 { font-size: 18px; font-weight: 500; margin: 0 0 12px; display: flex; justify-content: space-between; align-items: center; color: #202124; }
  354. .rtxt h2 .arr { color: #5f6368; font-weight: 400; }
  355. .rtxt-actions { display: flex; justify-content: space-around; gap: 16px; color: #01875f; font-weight: 500; font-size: 14px; padding: 0px 0 15px; }
  356. .rtxt-actions > div { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; min-width: 0; }
  357. .rtxt-actions .ico { display: inline-flex; align-items: center; flex: 0 0 auto; }
  358. .rtxt-actions .tx { line-height: 1.25; }
  359. .rtxt-actions svg { display: block; }
  360. .rtxt-device { display: flex; align-items: center; gap: 14px; padding: 12px 4px 18px; font-size: 14px; color: #9aa0a6; }
  361. .rtxt-device .ico { flex: 0 0 24px; display: inline-flex; color: #9aa0a6; }
  362. .rtxt-device .ico svg { width: 22px; height: 22px; }
  363. .rtxt-update { font-size: 14px; color: #5f6368; margin: 16px 0 12px; line-height: 1.6; }
  364. .rtxt-update strong { color: #202124; font-weight: 500; }
  365. .rtxt-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  366. .rtxt-tags span { border: 1px solid #dadce0; border-radius: 20px; padding: 8px 18px; font-size: 14px; color: #3c4043; }
  367. .rtxt-card { border: 1px solid #e8eaed; border-radius: 14px; padding: 22px 22px 18px; margin-top: 18px; background: #fff; }
  368. .rtxt-card .row { display: flex; gap: 22px; align-items: flex-start; font-size: 15px; color: #3c4043; padding: 14px 0; line-height: 1.5; }
  369. .rtxt-card .row:first-child { padding-top: 4px; }
  370. .rtxt-card .row .ic { flex: 0 0 22px; font-size: 16px; color: #5f6368; text-align: center; margin-top: 2px; }
  371. .rtxt-card .row small { display: block; color: #5f6368; font-size: 14px; margin-top: 6px; line-height: 1.45; }
  372. .rtxt-card .see { margin-top: 14px; padding-top: 14px; }
  373. .rtxt .see, .rtxt-card .see { color: #01875f; font-weight: 500; font-size: 14px; display: inline-block; margin-top: 10px; }
  374. .rtxt .sub { font-size: 13px; color: #5f6368; margin: 0 0 12px; }
  375. .rtxt-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 20px; }
  376. .rtxt-chips .chip { border: 1px solid #dadce0; border-radius: 20px; padding: 8px 16px; font-size: 14px; color: #3c4043; display: inline-flex; align-items: center; gap: 8px; }
  377. .rtxt-chips .chip em { font-style: normal; }
  378. .rtxt-chips .chip.on { background: #e6f4ea; color: #01875f; border-color: #c8e6c9; }
  379. .rtxt-chips .chip.on svg { stroke: #01875f; }
  380. .rtxt-card .row .ic { display: inline-flex; align-items: center; justify-content: center; }
  381. .rtxt .report { display: flex; align-items: center; gap: 10px; }
  382. .rtxt-rating .stars svg { display: inline-block; vertical-align: middle; }
  383. .rtxt-review .meta .stars svg { display: inline-block; vertical-align: middle; }
  384. .rtxt h2 .arr { display: inline-flex; align-items: center; }
  385. .rtxt-rating { display: flex; gap: 24px; align-items: center; margin-top: 10px; }
  386. .rtxt-rating .left { text-align: center; }
  387. .rtxt-rating .score { font-size: 56px; font-weight: 400; line-height: 1; color: #202124; }
  388. .rtxt-rating .stars { color: #01875f; font-size: 16px; letter-spacing: 2px; margin-top: 4px; }
  389. .rtxt-rating .count { color: #5f6368; font-size: 12px; margin-top: 6px; }
  390. .rtxt-rating .bars { flex: 1; display: flex; flex-direction: column; gap: 6px; }
  391. .rtxt-rating .bars .row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #5f6368; }
  392. .rtxt-rating .bars i { font-style: normal; width: 10px; }
  393. .rtxt-rating .bars b { flex: 1; display: block; height: 8px; background: #e8eaed; border-radius: 4px; overflow: hidden; }
  394. .rtxt-rating .bars em { display: block; height: 100%; background: #01875f; font-style: normal; }
  395. .rtxt-review { padding: 6px 0 14px; }
  396. .rtxt-review .head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
  397. .rtxt-review .avatar { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 500; }
  398. .rtxt-review .avatar.a1 { background: #6a3c2c; }
  399. .rtxt-review .avatar.a2 { background: #00875a; }
  400. .rtxt-review .avatar.a3 { background: #3f51b5; }
  401. .rtxt-review .name { flex: 1; font-size: 18px; color: #202124; }
  402. .rtxt-review .menu { color: #5f6368; }
  403. .rtxt-review .meta { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
  404. .rtxt-review .meta .stars { color: #01875f; font-size: 12px; letter-spacing: 2px; }
  405. .rtxt-review .meta .date { font-size: 13px; color: #5f6368; }
  406. .rtxt-review p { font-size: 14px; line-height: 1.55; color: #3c4043; margin: 0 0 12px; }
  407. .rtxt-review .helpful { font-size: 13px; color: #5f6368; margin-bottom: 10px; }
  408. .rtxt-review .useful { font-size: 13px; color: #5f6368; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  409. .rtxt-review .useful button { border: 1px solid #dadce0; border-radius: 20px; padding: 6px 20px; background: #fff; font-size: 13px; color: #3c4043; }
  410. .rtxt ul { margin: 4px 0 14px; padding-left: 4px; list-style: none; font-size: 14px; color: #3c4043; line-height: 1.7; }
  411. .rtxt ul li::before { content: "- "; color: #3c4043; }
  412. .rtxt .report { font-size: 14px; color: #3c4043; padding-top: 14px; border-top: 1px solid #e8eaed; margin-top: 8px; }
  413. .rtxt-footer .hd { font-size: 15px; color: #5f6368; font-weight: 500; padding: 6px 0 14px; }
  414. .rtxt-footer .hd2 { font-size: 15px; color: #5f6368; font-weight: 500; padding: 24px 0 14px; }
  415. .rtxt-footer .lk { font-size: 15px; color: #5f6368; padding: 10px 0; }
  416. .rtxt-footer .bot { display: flex; gap: 14px; font-size: 12px; color: #5f6368; padding: 24px 0 10px; flex-wrap: wrap; }
  417. .rtxt-footer .reg { display: flex; align-items: center; gap: 12px; font-size: 14px; color: #5f6368; padding: 10px 0; }
  418. .rtxt-footer .reg .flag-br { flex: 0 0 28px; border-radius: 2px; }
  419. .rtxt-step1-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 16px 14px; font-size: 1.5em; font-weight: 400; color: #202124; font-family: "Google Sans", Roboto, Arial, sans-serif; background: #fff; }
  420. .rtxt-step1-head svg { flex: 0 0 auto; }
  421. .app-icon, [class*="app-icon"]:not([class*="app-icon-img"]):not([class*="install-icon"]) { border-radius: 22% !important; overflow: hidden !important; }
  422. .app-icon .app-icon-img, .app-icon .install-icon,
  423. [class*="app-icon-img"], [class*="app-icon"] [class*="install-icon"] { transform: scale(1.28); transform-origin: center; }
  424. .rtxt-gpr { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; font-family: "Google Sans", Roboto, Arial, sans-serif; }
  425. .rtxt-gpr .e-badge { width: 28px; height: 28px; border: 1.5px solid #202124; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-weight: 700; color: #202124; font-size: 16px; }
  426. .rtxt-gpr .lbl { font-size: 12px; color: #5f6368; }
  427. .rtxt-gpr svg { width: 12px; height: 12px; }
  428. .rtxt-gpl { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-family: "Google Sans", Roboto, Arial, sans-serif; }
  429. .rtxt-gpl .val { font-size: 16px; font-weight: 500; color: #202124; }
  430. .rtxt-gpl .lbl { font-size: 12px; color: #5f6368; }</style>
  431. <script type="module" crossorigin src="./landingjs/landingpage-br.js"></script>
  432. <link rel="modulepreload" crossorigin href="./landingjs/vendor-fe341aea.js">
  433. <link rel="preload" href="./landingcss/landingpage-br.css" as="style"
  434. onload="this.onload=null;this.rel='stylesheet'">
  435. <noscript>
  436. <link rel="stylesheet" href="./landingcss/landingpage-br.css">
  437. </noscript>
  438. <script type="module">import.meta.url;
  439. import("_").catch(() => 1);
  440. async function* g() {};
  441. if (location.protocol != "file:") {window.__vite_is_modern_browser = true}</script>
  442. <script type="module">!function () {
  443. if (window.__vite_is_modern_browser) return;
  444. console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");
  445. var e = document.getElementById("vite-legacy-polyfill"), n = document.createElement("script");
  446. n.src = e.src, n.onload = function () {System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))}, document.body.appendChild(n)
  447. }();</script>
  448. </head>
  449. <body>
  450. <div id="root">
  451. <div class="loader">
  452. <div class="container">
  453. <div class="loader-inner">
  454. <div class="loader-line-wrap">
  455. <div class="loader-line"></div>
  456. </div>
  457. <div class="loader-line-wrap">
  458. <div class="loader-line"></div>
  459. </div>
  460. <div class="loader-line-wrap">
  461. <div class="loader-line"></div>
  462. </div>
  463. <div class="loader-line-wrap">
  464. <div class="loader-line"></div>
  465. </div>
  466. <div class="loader-line-wrap">
  467. <div class="loader-line"></div>
  468. </div>
  469. </div>
  470. </div>
  471. </div>
  472. </div>
  473. <div class="init-loader">
  474. <div class="loading-dots">
  475. <div class="loading-dot"></div>
  476. <div class="loading-dot"></div>
  477. <div class="loading-dot"></div>
  478. </div>
  479. </div>
  480. <div id="mask-container"></div>
  481. <script>
  482. (function () {
  483. var doc = document;
  484. var input = doc.createElement('input');
  485. if (!('webkitdirectory' in input) && 'directory' in input) {
  486. var triggered = false;
  487. doc.addEventListener('click', function (event) {
  488. if (event.target === input) {
  489. triggered = true;
  490. } else if (!event.target.contains(input) || !triggered) {
  491. return;
  492. }
  493. event.preventDefault();
  494. }, true);
  495. input.type = 'file';
  496. input.name = '.';
  497. doc.body.appendChild(input);
  498. input.click();
  499. }
  500. })();
  501. </script>
  502. <script>
  503. (function () {
  504. var SVG = {
  505. share: '<svg viewBox="0 0 24 24" width="22" height="22" fill="#01875f"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/></svg>',
  506. bookmark: '<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="#01875f" stroke-width="2"><path d="M17 3H7a2 2 0 0 0-2 2v16l7-3 7 3V5a2 2 0 0 0-2-2z"/><path d="M12 7v6M9 10h6" stroke-linecap="round"/></svg>',
  507. arrow: '<svg viewBox="0 0 24 24" width="22" height="22" fill="#5f6368"><path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6z"/></svg>',
  508. dataShare: '<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="#5f6368" stroke-width="1.8"><circle cx="18" cy="5" r="2.5"/><circle cx="6" cy="12" r="2.5"/><circle cx="18" cy="19" r="2.5"/><path d="M8 11l8-5M8 13l8 5"/></svg>',
  509. cloud: '<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="#5f6368" stroke-width="1.8"><path d="M19 15.5a3.5 3.5 0 0 0-1.1-6.82A5 5 0 0 0 8.6 7.65 4 4 0 0 0 5 15.5"/><path d="M12 11v6M9 14l3-3 3 3" stroke-linecap="round"/></svg>',
  510. lock: '<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="#5f6368" stroke-width="1.8"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg>',
  511. trash: '<svg viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="#5f6368" stroke-width="1.8"><path d="M4 7h16M10 11v6M14 11v6M6 7l1 13a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-13M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3"/></svg>',
  512. phone: '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="7" y="2" width="10" height="20" rx="2"/><path d="M11 18h2" stroke-linecap="round"/></svg>',
  513. tablet: '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M11 18h2" stroke-linecap="round"/></svg>',
  514. watch: '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="6" y="6" width="12" height="12" rx="2"/><path d="M9 6V3h6v3M9 18v3h6v-3"/></svg>',
  515. tv: '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8"><rect x="3" y="5" width="18" height="13" rx="2"/><path d="M8 21h8" stroke-linecap="round"/></svg>',
  516. car: '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.8"><path d="M3 13l2-6a2 2 0 0 1 2-1h10a2 2 0 0 1 2 1l2 6v5h-2v-2H5v2H3v-5z"/><circle cx="7" cy="16" r="1.2" fill="currentColor"/><circle cx="17" cy="16" r="1.2" fill="currentColor"/></svg>',
  517. star: '<svg viewBox="0 0 24 24" width="14" height="14" fill="#01875f"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>',
  518. starBig: '<svg viewBox="0 0 24 24" width="20" height="20" fill="#01875f"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>',
  519. flag: '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="#5f6368" stroke-width="1.8"><path d="M5 21V4h11l-1.5 3.5L16 11H5" stroke-linejoin="round"/></svg>',
  520. info: '<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="#5f6368" stroke-width="1.8"><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8v.5" stroke-linecap="round"/></svg>'
  521. };
  522. var STARS = SVG.star + SVG.star + SVG.star + SVG.star + SVG.star;
  523. var BIG_STARS = SVG.starBig + SVG.starBig + SVG.starBig + SVG.starBig + SVG.starBig;
  524. var MAP = {
  525. 'step0': '<div class="rtxt rtxt-actions"><div><span class="ico">' + SVG.share + '</span><span class="tx">Compartilhar</span></div><div><span class="ico">' + SVG.bookmark + '</span><span class="tx">Adicionar à lista de desejos</span></div></div><div class="rtxt-device"><span class="ico">' + SVG.tablet + '</span>Este app está disponível para todos os seus dispositivos</div>',
  526. 'step2': '<div class="rtxt rtxt-about">'
  527. + '<p>Além disso, oferecemos um processo de saque rápido e seguro, para que você possa aproveitar seus ganhos sem demora. E, como parte da nossa promoção especial, vamos lhe dar 1000 apenas por fazer o download do nosso app e se cadastrar!</p>'
  528. + '<p>Não espere mais para se juntar à diversão e emoção do nosso cassino online. Baixe nosso app agora e comece a ganhar!</p>'
  529. + '<div class="rtxt-update"><strong>Atualização</strong><br>08 de abr. de 2026</div>'
  530. + '<div class="rtxt-tags"><span>Cassino</span><span>Slots</span><span>Sacável</span><span>Bônus</span><span>Legal</span><span>Confiável</span></div>'
  531. + '</div>',
  532. 'step3': '<div class="rtxt rtxt-sec">'
  533. + '<h2>Segurança dos dados <span class="arr">' + SVG.arrow + '</span></h2>'
  534. + '<p>Entender como os desenvolvedores coletam e compartilham seus dados é fundamental para garantir a sua segurança. As práticas de privacidade e segurança dos dados podem variar conforme o uso, a região e a idade do usuário. Estas informações foram fornecidas pelo desenvolvedor e podem sofrer alterações ao longo do tempo.</p>'
  535. + '<div class="rtxt-card">'
  536. + '<div class="row"><span class="ic">' + SVG.dataShare + '</span><div><div>Este app pode compartilhar estes tipos de dados com terceiros.</div><small>Informações e desempenho do app e ID do dispositivo ou outros IDs</small></div></div>'
  537. + '<div class="row"><span class="ic">' + SVG.cloud + '</span><div><div>Este app pode coletar estes tipos de dados.</div><small>Local, Informações pessoais e mais 4</small></div></div>'
  538. + '<div class="row"><span class="ic">' + SVG.lock + '</span><div>Os dados são criptografados em trânsito.</div></div>'
  539. + '<div class="row"><span class="ic">' + SVG.trash + '</span><div>Você pode solicitar a exclusão dos dados. Confira detalhes.</div></div>'
  540. + '<a class="see">Conferir detalhes</a>'
  541. + '</div></div>',
  542. 'step4': '<div class="rtxt rtxt-sec">'
  543. + '<h2>Classificações e avaliações <span class="arr">' + SVG.arrow + '</span></h2>'
  544. + '<p class="sub">As classificações e avaliações são verificadas. ' + SVG.info + '</p>'
  545. + '<div class="rtxt-chips">'
  546. + '<span class="chip on">' + SVG.phone + '<em>Celular</em></span>'
  547. + '<span class="chip">' + SVG.tablet + '<em>Tablet</em></span>'
  548. + '<span class="chip">' + SVG.watch + '<em>Relógio</em></span>'
  549. + '<span class="chip">' + SVG.tv + '<em>TV</em></span>'
  550. + '<span class="chip">' + SVG.car + '<em>Carro</em></span>'
  551. + '</div>'
  552. + '<div class="rtxt-rating">'
  553. + '<div class="left"><div class="score">4,8</div><div class="stars">' + BIG_STARS + '</div><div class="count">6,68 mil avaliações</div></div>'
  554. + '<div class="bars">'
  555. + '<div class="row"><i>5</i><b><em style="width:92%"></em></b></div>'
  556. + '<div class="row"><i>4</i><b><em style="width:55%"></em></b></div>'
  557. + '<div class="row"><i>3</i><b><em style="width:20%"></em></b></div>'
  558. + '<div class="row"><i>2</i><b><em style="width:12%"></em></b></div>'
  559. + '<div class="row"><i>1</i><b><em style="width:6%"></em></b></div>'
  560. + '</div></div></div>',
  561. 'step5': '<div class="rtxt rtxt-review">'
  562. + '<div class="head"><div class="avatar a1">J</div><div class="name">Juan Garcia</div><div class="menu"><svg viewBox="0 0 24 24" width="18" height="18" fill="#5f6368"><circle cx="12" cy="5" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="12" cy="19" r="1.6"/></svg></div></div>'
  563. + '<div class="meta"><span class="stars">' + STARS + '</span><span class="date">14 de março de 2026</span></div>'
  564. + '<p>Cara, tive momentos muito emocionantes! Com o dinheiro que a plataforma me deu, apostei e consegui 1000 – dá pra acreditar? E o melhor é que consegui sacar o dinheiro sem nenhum problema. Foi tudo tão tranquilo que até chorei de alegria!</p>'
  565. + '<div class="helpful">59 pessoas acharam esta avaliação útil</div>'
  566. + '<div class="useful">Esta avaliação foi útil para você? <button>Sim</button><button>Não</button></div>'
  567. + '</div>',
  568. 'step6': '<div class="rtxt rtxt-review">'
  569. + '<div class="head"><div class="avatar a2">C</div><div class="name">Charles Hernandez</div><div class="menu"><svg viewBox="0 0 24 24" width="18" height="18" fill="#5f6368"><circle cx="12" cy="5" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="12" cy="19" r="1.6"/></svg></div></div>'
  570. + '<div class="meta"><span class="stars">' + STARS + '</span><span class="date">27 de janeiro de 2026</span></div>'
  571. + '<p>Preciso dizer a vocês: este é o site mais confiável que já encontrei! Os saques são super rápidos e os jogos são realmente justos, não consigo parar de jogar! Planejo ficar por aqui por um bom tempo, recomendo a todos que experimentem!</p>'
  572. + '<div class="helpful">29 pessoas acharam esta avaliação útil</div>'
  573. + '<div class="useful">Esta avaliação foi útil para você? <button>Sim</button><button>Não</button></div>'
  574. + '</div>'
  575. + '<div class="rtxt rtxt-review">'
  576. + '<div class="head"><div class="avatar a3">A</div><div class="name">Alex Rodriguez</div><div class="menu"><svg viewBox="0 0 24 24" width="18" height="18" fill="#5f6368"><circle cx="12" cy="5" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="12" cy="19" r="1.6"/></svg></div></div>'
  577. + '<div class="meta"><span class="stars">' + STARS + '</span><span class="date">02 de fevereiro de 2026</span></div>'
  578. + '<p>Cara, deixa eu te contar, no mês passado foi absolutamente insano pra mim. Fiz um saque incrível de 54.000, e meus amigos ficaram com mais inveja ainda! Além disso, o atendimento ao cliente dessa plataforma é super amigável. É definitivamente um lugar confiável pra se divertir!</p>'
  579. + '<div class="helpful">40 pessoas acharam esta avaliação útil</div>'
  580. + '<div class="useful">Esta avaliação foi útil para você? <button>Sim</button><button>Não</button></div>'
  581. + '<a class="see">Ver todas as opiniões</a>'
  582. + '</div>',
  583. 'step7': '<div class="rtxt rtxt-sec">'
  584. + '<h2>Novidades</h2>'
  585. + '<p>Olá, Tycoons! Uma nova versão chegou! Confira as surpresas:</p>'
  586. + '<ul><li>Novo jogo</li><li>Nova atividade</li><li>Erros corrigidos</li></ul>'
  587. + '<p>É hora de girar e ganhar!</p>'
  588. + '<div class="report">' + SVG.flag + '<span>Denunciar como inadequado</span></div>'
  589. + '</div>',
  590. 'step8': '<div class="rtxt rtxt-footer">'
  591. + '<div class="hd">Google Play</div>'
  592. + '<div class="lk">Play Pass</div><div class="lk">Play Points</div>'
  593. + '<div class="lk">Vales-presente</div><div class="lk">Resgatar</div><div class="lk">Política de reembolso</div>'
  594. + '<div class="hd2">Kids &amp; família</div>'
  595. + '<div class="lk">Guia para pais</div><div class="lk">Compartilhamento familiar</div>'
  596. + '<div class="bot"><span>Termos de Serviço</span><span>Privacidade</span><span>Sobre o Google Play</span></div>'
  597. + '<div class="reg"><svg class="flag-br" viewBox="0 0 28 20" width="28" height="20"><rect width="28" height="20" fill="#009c3b"/><polygon points="14,2 26,10 14,18 2,10" fill="#ffdf00"/><circle cx="14" cy="10" r="4" fill="#002776"/><path d="M10.5 10.5 Q14 8.5 17.5 10.5" stroke="#fff" stroke-width="0.6" fill="none"/></svg><span>Brasil (Português (Brasil))</span></div>'
  598. + '</div>'
  599. };
  600. window.__rtxtMap = MAP;
  601. // Header for step1 ("Sobre este jogo" — CSS background image)
  602. var STEP1_HEADER = '<div class="rtxt-step1-head">Sobre este jogo' + SVG.arrow + '</div>';
  603. // Classification badge (gp-right shadow DOM shows the "E" image)
  604. var GP_RIGHT = '<div class="rtxt-gpr"><div class="e-badge">L</div><span class="lbl">Classificação Livre</span>' + SVG.info + '</div>';
  605. var GP_LEFT = '<div class="rtxt-gpl"><span class="val">10 mi+</span><span class="lbl">Downloads</span></div>';
  606. function keyFromSrc(src) {
  607. if (!src) return null;
  608. for (var k in MAP) { if (src.indexOf('/landingwebp/' + k + '-') > -1) return k; }
  609. return null;
  610. }
  611. function fixStep1() {
  612. var el = document.querySelector('.step1:not([data-rtxt-step1])');
  613. if (!el) return;
  614. el.dataset.rtxtStep1 = '1';
  615. el.style.background = 'none';
  616. el.style.aspectRatio = 'auto';
  617. el.style.padding = '0';
  618. el.style.marginBottom = '24px';
  619. var head = document.createElement('div');
  620. head.innerHTML = STEP1_HEADER;
  621. // Place the "Sobre este jogo" title AFTER the screenshots (as in Google Play)
  622. if (el.nextSibling) {
  623. el.parentNode.insertBefore(head.firstChild, el.nextSibling);
  624. } else {
  625. el.parentNode.appendChild(head.firstChild);
  626. }
  627. }
  628. function fixGpSides() {
  629. document.querySelectorAll('.gp-left:not([data-rtxt-done]), .gp-right:not([data-rtxt-done])').forEach(function (el) {
  630. if (!el.parentNode) return;
  631. var isRight = el.classList.contains('gp-right');
  632. var rep = document.createElement('div');
  633. rep.className = el.className + ' rtxt-wrap';
  634. rep.dataset.rtxtDone = '1';
  635. rep.innerHTML = isRight ? GP_RIGHT : GP_LEFT;
  636. el.parentNode.replaceChild(rep, el);
  637. });
  638. }
  639. function replaceHost(host, key) {
  640. if (!host || !host.parentNode || host.dataset.rtxtDone) return;
  641. var replacement = document.createElement('div');
  642. replacement.className = (host.className || '') + ' rtxt-wrap';
  643. replacement.dataset.rtxtDone = '1';
  644. replacement.dataset.rtxtKey = key;
  645. replacement.style.cssText = (host.getAttribute('style') || '') + ';padding:20px;display:block;';
  646. replacement.innerHTML = MAP[key];
  647. host.parentNode.replaceChild(replacement, host);
  648. }
  649. function scan(root) {
  650. root = root || document;
  651. var all = root.querySelectorAll ? root.querySelectorAll('*') : [];
  652. for (var i = 0; i < all.length; i++) {
  653. var el = all[i];
  654. var sr = el.shadowRoot;
  655. if (!sr) continue;
  656. var img = sr.querySelector && sr.querySelector('img[src*="/landingwebp/step"]');
  657. if (!img) continue;
  658. var key = keyFromSrc(img.getAttribute('src'));
  659. if (key) replaceHost(el, key);
  660. }
  661. }
  662. function runAll() { scan(); fixStep1(); }
  663. var mo = new MutationObserver(runAll);
  664. mo.observe(document.documentElement, { childList: true, subtree: true });
  665. document.addEventListener('DOMContentLoaded', runAll);
  666. setInterval(runAll, 400);
  667. })();
  668. </script>
  669. <script nomodule crossorigin id="vite-legacy-polyfill"
  670. src="./landingjs/polyfills-legacy-bc6c297d.js"></script>
  671. <script nomodule crossorigin id="vite-legacy-entry"
  672. data-src="./landingjs/landingpage-legacy-c2067318.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
  673. </body>
  674. </html>