<!DOCTYPE html>
<html lang="ru" class="dark">
<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0" />
  <meta name="format-detection" content="telephone=no" />

  <title>Melbet — скачать приложение на Android (APK) и iOS</title>
  <meta name="description" content="Скачайте приложение Melbet на Android (APK) и iOS: ставки Live, платежи, казино и бонусы. Инструкция установки, безопасность, FAQ. 18+." />
  
  
  
  <meta name="robots" content="index,follow,max-image-preview:large" />
  <meta name="theme-color" content="#141414" />

  <meta property="og:locale" content="ru_RU" />
  <meta property="og:type" content="website" />
  <meta property="og:title" content="Melbet — скачать приложение на Android (APK) и iOS" />
  <meta property="og:description" content="Официальная страница загрузки приложения Melbet: Android (APK) и iOS. Инструкции, преимущества, безопасность, FAQ. 18+." />
  <meta property="og:url" content="/" />
  <meta property="og:image" content="/apk-777.webp" />

  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:title" content="Melbet — скачать приложение" />
  <meta name="twitter:description" content="Android APK и iOS. Инструкции, преимущества и безопасность. 18+." />
  <meta name="twitter:image" content="/apk-777.webp" />

  <link rel="icon" type="image/png" sizes="48x48" href="/favicon.png" />
  <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png" />
  <link rel="icon" href="/favicon.ico" />
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
  <link rel="preload" as="image" href="/apk-777.webp" fetchpriority="high" imagesizes="(max-width: 767px) 340px, 340px" />

<script>
(function(){
  try{
    var t = localStorage.getItem("theme");
    if (t === "light") document.documentElement.classList.remove("dark");
    else document.documentElement.classList.add("dark");
  } catch(e){ document.documentElement.classList.add("dark"); }
})();
</script>

<style>
/* ====== Design tokens (mirrors src/styles.css) ====== */
:root{
  --radius: 1rem;
  --background: oklch(0.985 0.006 95);
  --bg-soft: oklch(0.96 0.012 95);
  --foreground: oklch(0.22 0.015 260);
  --surface: oklch(1 0 0);
  --surface-2: oklch(0.965 0.008 95);
  --stroke: oklch(0.22 0.02 260 / 0.12);
  --stroke-soft: oklch(0.22 0.02 260 / 0.07);
  --muted-fg: oklch(0.42 0.015 260);
  --muted-2: oklch(0.52 0.015 260);
  --primary: oklch(0.78 0.17 82);
  --primary-dark: oklch(0.7 0.17 78);
  --primary-foreground: oklch(0.18 0.02 80);
  --hero-start: oklch(0.97 0.012 95);
  --hero-end: oklch(0.92 0.04 85);
  --shadow-glow: 0 12px 30px color-mix(in oklab, var(--primary) 25%, transparent);
  --shadow-elegant: 0 20px 60px oklch(0 0 0 / 0.12);
  --gradient-hero: linear-gradient(135deg, var(--hero-start) 0%, var(--hero-end) 100%);
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  /* footer + header */
  --footer-bg: oklch(0.24 0.018 95);
  --footer-fg: oklch(0.86 0.01 95);
  --footer-fg-soft: oklch(0.66 0.012 95);
  --footer-divider: oklch(1 0 0 / 0.08);
  --footer-badge-bg: oklch(1 0 0 / 0.06);
  --footer-badge-border: oklch(1 0 0 / 0.12);
  --footer-link-hover: oklch(0.96 0.04 92);
  --footer-link-active: oklch(0.82 0.05 92);
  --footer-link-accent: oklch(0.78 0.11 88);
  --footer-badge-bg-hover: oklch(0.78 0.11 88 / 0.14);
  --footer-badge-border-hover: oklch(0.78 0.11 88 / 0.55);
  --footer-link-bg-hover: oklch(0.82 0.045 80 / 0.09);
  --header-bg: var(--footer-bg);
  --header-border: oklch(1 0 0 / 0.08);
  --header-fg: oklch(0.92 0.008 95);
  --header-fg-soft: oklch(0.74 0.012 95);
  color-scheme: light;
}
html.dark{
  --background: oklch(0.18 0 0);
  --bg-soft: oklch(0.14 0 0);
  --foreground: oklch(1 0 0);
  --surface: oklch(1 0 0 / 0.05);
  --surface-2: oklch(1 0 0 / 0.07);
  --stroke: oklch(1 0 0 / 0.1);
  --stroke-soft: oklch(1 0 0 / 0.05);
  --muted-fg: oklch(0.75 0.01 260);
  --muted-2: oklch(0.62 0.01 260);
  --primary: oklch(0.85 0.18 90);
  --primary-dark: oklch(0.78 0.17 88);
  --primary-foreground: oklch(0.15 0 0);
  --hero-start: oklch(0.18 0 0);
  --hero-end: oklch(0.28 0.04 170);
  --shadow-elegant: 0 20px 60px oklch(0 0 0 / 0.35);
  --footer-bg: oklch(0.1 0 0);
  --footer-fg: oklch(0.7 0 0);
  --footer-fg-soft: oklch(0.55 0 0);
  --footer-divider: oklch(1 0 0 / 0.05);
  --footer-badge-bg: oklch(1 0 0 / 0.05);
  --footer-badge-border: oklch(1 0 0 / 0.1);
  --footer-link-hover: oklch(0.95 0.02 90);
  --footer-link-active: oklch(0.82 0.04 90);
  --footer-link-accent: oklch(0.85 0.14 90);
  --footer-badge-bg-hover: oklch(0.85 0.14 90 / 0.12);
  --footer-badge-border-hover: oklch(0.85 0.14 90 / 0.45);
  --footer-link-bg-hover: oklch(0.88 0.035 85 / 0.07);
  --header-bg: color-mix(in srgb, var(--background) 88%, transparent);
  --header-border: var(--stroke-soft);
  --header-fg: var(--foreground);
  --header-fg-soft: var(--muted-fg);
  color-scheme: dark;
}

/* ====== Reset ====== */
*{ box-sizing:border-box; border-color: var(--stroke); }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  line-height:1.5;
  min-width:320px;
  padding-bottom: 88px;
}
@media (min-width:768px){ body{ padding-bottom:0; } }
img{ display:block; max-width:100%; height:auto; }
svg{ display:block; }
h1,h2,h3,p,ul{ margin:0; }
ul{ padding-left:18px; }
a{ color: inherit; }
button{ font: inherit; }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ====== Layout ====== */
.mb-container{ width:100%; max-width:1200px; margin-inline:auto; padding-inline:16px; }
@media (min-width:768px){ .mb-container{ padding-inline:24px; } }
@media (min-width:1024px){ .mb-container{ padding-inline:32px; } }

.mb-section{ padding:56px 0; }
@media (max-width:1023px){ .mb-section{ padding:48px 0; } }
@media (max-width:767px){ .mb-section{ padding:36px 0; } }
.mb-section-muted{
  background: oklch(0 0 0 / 0.18);
  border-top:1px solid var(--stroke-soft);
  border-bottom:1px solid var(--stroke-soft);
}
html:not(.dark) .mb-section-muted{ background: oklch(0 0 0 / 0.03); }

/* ====== Card ====== */
.mb-card{
  background: var(--surface);
  border:1px solid var(--stroke);
  border-radius: calc(var(--radius) + 8px);
  padding:24px;
  transition: background-color .2s ease, border-color .2s ease;
}
.mb-card:hover{
  background: var(--surface-2);
  border-color: color-mix(in oklab, var(--primary) 28%, transparent);
}

/* ====== Buttons ====== */
.mb-btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; border-radius:999px; font-weight:700;
  font-size:15px; line-height:1; letter-spacing:-.01em;
  padding:14px 24px; min-height:48px; cursor:pointer;
  background: var(--primary); color: var(--primary-foreground);
  border:1px solid color-mix(in oklab, var(--primary) 45%, transparent);
  box-shadow: var(--shadow-glow);
  transition: background-color .18s ease, box-shadow .18s ease, transform .12s ease;
  text-decoration:none; white-space:nowrap;
}
.mb-btn-primary > svg{ flex:0 0 auto; }
.mb-btn-primary:hover{
  background: var(--primary-dark);
  box-shadow:0 16px 36px color-mix(in oklab, var(--primary) 35%, transparent);
}
.mb-btn-primary:active{ transform:translateY(1px); box-shadow: var(--shadow-glow); }
.mb-btn-primary:focus-visible{ outline:2px solid var(--primary); outline-offset:3px; }

.mb-btn-secondary{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; border-radius:999px; font-weight:700;
  font-size:15px; line-height:1; letter-spacing:-.01em;
  padding:14px 24px; min-height:48px; cursor:pointer;
  background: oklch(1 0 0); color: oklch(0.15 0 0);
  border:1px solid oklch(0 0 0 / 0.06);
  transition: background-color .18s ease, border-color .18s ease, transform .12s ease;
  text-decoration:none; white-space:nowrap;
}
.mb-btn-secondary:hover{ background: oklch(0.94 0 0); border-color: oklch(0 0 0 / 0.12); }
html:not(.dark) .mb-btn-secondary{
  background: var(--surface);
  color: var(--foreground);
  border-color: var(--stroke);
}
html:not(.dark) .mb-btn-secondary:hover{
  background: var(--surface-2);
  border-color: color-mix(in oklab, var(--foreground) 18%, transparent);
}

.mb-btn-sm{ min-height:36px; padding:8px 14px; font-size:13px; gap:6px; }
.mb-btn-md{ min-height:44px; padding:12px 20px; font-size:15px; }
@media (min-width:768px){ .mb-header-cta{ min-height:44px; padding:12px 20px; font-size:15px; } }

.mb-btn-ghost{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px; border-radius:14px; font-weight:700;
  padding:10px 14px; cursor:pointer;
  background: var(--surface); color: var(--foreground);
  border:1px solid var(--stroke);
  transition: transform .2s ease, background-color .2s ease;
  white-space:nowrap;
}
.mb-btn-ghost:hover{ transform: translateY(-1px); background: var(--surface-2); }
.mb-theme-label{ display:none; }
@media (min-width:1024px){ .mb-theme-label{ display:inline; } }

/* ====== Chip / eyebrow / accent ====== */
.mb-chip{
  display:inline-flex; align-items:center;
  padding:8px 12px; border-radius:999px;
  font-size:12px; font-weight:700;
  color: var(--primary);
  background: color-mix(in oklab, var(--primary) 12%, transparent);
  border:1px solid color-mix(in oklab, var(--primary) 24%, transparent);
}
.mb-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  color: var(--primary);
  text-transform: uppercase; letter-spacing:.18em;
  font-size:12px; font-weight:800;
}
.mb-accent-line{ width:48px; height:4px; border-radius:999px; background: var(--primary); margin-top:10px; }

.mb-icon-circle{
  width:44px; height:44px; border-radius:14px;
  display:inline-flex; align-items:center; justify-content:center;
  color: var(--primary);
  background: color-mix(in oklab, var(--primary) 14%, transparent);
  border:1px solid color-mix(in oklab, var(--primary) 22%, transparent);
  flex:0 0 auto;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease;
}
.mb-card:hover .mb-icon-circle{
  transform: rotate(-4deg) scale(1.05);
  background: color-mix(in oklab, var(--primary) 22%, transparent);
  border-color: color-mix(in oklab, var(--primary) 40%, transparent);
}

/* ====== Typography ====== */
.mb-h1{ font-size: clamp(36px, 7vw, 64px); line-height:1.05; letter-spacing:-.035em; font-weight:900; max-width:760px; }
.mb-h2{ font-size: clamp(28px, 4vw, 40px); line-height:1.1; letter-spacing:-.02em; font-weight:800; }
.mb-h3{ font-size:20px; line-height:1.2; font-weight:800; }
.mb-lead{ max-width:620px; font-size: clamp(16px, 2.2vw, 20px); color: var(--muted-fg); margin-top:18px; }
.mb-list{ color: var(--muted-fg); }
.mb-list li + li{ margin-top:10px; }

/* ====== Phone ====== */
.mb-phone{
  width:280px;
  aspect-ratio: 9 / 18.5;
  border-radius:40px;
  overflow:hidden;
  border:8px solid oklch(0.3 0 0);
  background: oklch(0.18 0 0);
  box-shadow: var(--shadow-elegant);
  position:relative;
  margin:0;
  animation: mb-float 6s ease-in-out infinite;
}
@media (min-width:768px){ .mb-phone{ width:300px; border-radius:44px; } }
@media (min-width:1024px){ .mb-phone{ width:340px; border-radius:48px; } }
.mb-phone img{ width:100%; height:100%; object-fit: cover; }
@keyframes mb-float{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce){ .mb-phone{ animation:none; } }

/* ====== Reveal ====== */
.mb-reveal{
  opacity:0; transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.mb-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .mb-reveal{ opacity:1; transform:none; transition:none; } }

/* ====== Pulse on header CTA ====== */
@keyframes mb-pulse-ring {
  0%   { box-shadow: 0 0 0 0 color-mix(in oklab, var(--primary) 55%, transparent), var(--shadow-glow); }
  70%  { box-shadow: 0 0 0 14px color-mix(in oklab, var(--primary) 0%, transparent), var(--shadow-glow); }
  100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--primary) 0%, transparent), var(--shadow-glow); }
}
.mb-pulse{ animation: mb-pulse-ring 2.4s cubic-bezier(.4,0,.6,1) infinite; }
.mb-pulse:hover{ animation-play-state: paused; }
@media (prefers-reduced-motion: reduce){ .mb-pulse{ animation:none; } }

/* ====== Header ====== */
.mb-app-header{
  position: sticky; top:0; z-index:50;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: var(--header-bg);
  border-bottom:1px solid var(--header-border);
  color: var(--header-fg);
}
.mb-app-header .mb-nav{ display:none; }
@media (min-width:768px){ .mb-app-header .mb-nav{ display:flex; align-items:center; gap:24px; font-size:14px; } }
.mb-app-header .mb-nav a{ color: var(--header-fg-soft); text-decoration:none; transition: color .2s ease; }
.mb-app-header .mb-nav a:hover{ color: var(--primary); }
.mb-header-row{ display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:56px; }
@media (min-width:768px){ .mb-header-row{ min-height:64px; gap:16px; } }
.mb-logo-link{ display:inline-flex; align-items:center; border-radius:12px; padding:4px 6px; margin-left:-6px; min-width:0; overflow:hidden; }
.mb-header-actions{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
@media (min-width:768px){ .mb-header-actions{ gap:10px; } }

/* ====== Hero ====== */
.mb-hero{
  background: var(--gradient-hero);
  border-bottom:1px solid var(--stroke-soft);
  overflow: clip;
}
.mb-hero-inner{
  display:grid; gap:32px;
  padding: 40px 0;
  text-align: center;
  align-items:center;
}
@media (min-width:768px){
  .mb-hero-inner{ grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr); gap:40px; padding:56px 0; text-align:left; }
}
@media (min-width:1024px){ .mb-hero-inner{ gap:56px; padding:80px 0; } }
.mb-hero-eyebrow{ justify-content:center; }
.mb-hero-cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; justify-content:center; }
.mb-hero-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; justify-content:center; }
@media (min-width:768px){
  .mb-hero-eyebrow{ justify-content:flex-start; }
  .mb-hero-cta-row,.mb-hero-chips{ justify-content:flex-start; }
}
.mb-hero-visual{ display:flex; justify-content:center; }
.mb-hero-h1{ margin-top:16px; margin-inline:auto; }
@media (min-width:768px){ .mb-hero-h1{ margin-inline:0; } }
.mb-hero-lead{ margin-inline:auto; }
@media (min-width:768px){ .mb-hero-lead{ margin-inline:0; } }
.mb-hero-note{ margin-top:14px; font-size:12px; color: var(--muted-2); }

/* ====== Section header ====== */
.mb-section-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px; }
.mb-section-link{ font-size:14px; color: var(--primary); text-decoration:none; }
.mb-section-link:hover{ text-decoration:underline; }
.mb-section-intro{ margin-top:16px; max-width:900px; color: var(--muted-fg); }

/* ====== Grids ====== */
.mb-grid{ display:grid; gap:16px; margin-top:24px; }
@media (min-width:768px){ .mb-grid{ gap:24px; } }
.mb-grid-2{ grid-template-columns: 1fr; }
.mb-grid-3{ grid-template-columns: 1fr; }
@media (min-width:768px){
  .mb-grid-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mb-grid-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
.mb-card-row{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }

/* ====== Table ====== */
.mb-table-wrap{ overflow:auto; margin-top:12px; }
.mb-table{ width:100%; border-collapse: collapse; min-width:640px; font-size:14px; }
.mb-table.min-760{ min-width:760px; }
.mb-table th{ text-align:left; padding:12px; border-bottom:1px solid var(--stroke); font-weight:700; }
.mb-table td{ padding:12px; border-bottom:1px solid var(--stroke-soft); }
.mb-table td.muted, .mb-table td:not(:first-child){ color: var(--muted-fg); }
.mb-table-note{ margin-top:12px; font-size:12px; color: var(--muted-2); }

/* ====== Reviews ====== */
.mb-review-head{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:14px; }
.mb-review-score{ font-size:24px; font-weight:800; color: var(--primary); }
.mb-review-stars{ font-size:20px; font-weight:800; color: var(--primary); }
.mb-review-count{ font-size:14px; color: var(--muted-fg); }

/* Reviews carousel */
.reviews-carousel{ position:relative; margin-top:28px; }
.reviews-carousel__viewport{ overflow:hidden; }
.reviews-carousel__track{ display:flex; transition: transform .5s ease; will-change: transform; }
.review-slide{ flex: 0 0 100%; min-width:0; padding: 0 8px; box-sizing:border-box; }
@media (min-width: 720px){ .review-slide{ flex-basis: 50%; } }
@media (min-width: 1024px){ .review-slide{ flex-basis: 33.3333%; } }
.player-review-card{
  background: var(--surface);
  border:1px solid color-mix(in oklch, var(--primary) 35%, var(--stroke));
  border-radius: 18px;
  padding: 22px 22px 24px;
  height: 100%;
  box-shadow: 0 8px 24px -18px color-mix(in oklch, var(--primary) 40%, transparent);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.player-review-card:hover{ transform: translateY(-4px); border-color: color-mix(in oklch, var(--primary) 55%, var(--stroke)); box-shadow: 0 14px 34px -18px color-mix(in oklch, var(--primary) 55%, transparent); }
.player-review-card .content{ display:flex; flex-direction:column; gap:8px; }
.player-review-card .name{ font-weight: 800; color: var(--foreground); font-size: 18px; }
.player-review-card .city{ color: var(--muted-fg); font-size: 14px; margin-left:6px; font-weight:500; }
.player-review-card .designation{ font-size: 14px; color: var(--primary); font-weight:700; margin-top:6px; }
.player-review-card .device,
.player-review-card .account,
.player-review-card .status{ font-size: 13px; color: var(--muted-fg); }
.player-review-card .cashback,
.player-review-card .xp{ display:inline-flex; align-items:center; gap:10px; font-size:13px; color: var(--foreground); width:fit-content; margin-top:2px; }
.player-review-card .cashback-icon,
.player-review-card .xp-icon{ display:inline-flex; align-items:center; justify-content:center; color: var(--primary); width:18px; }
.player-review-card .review-text{ margin-top:14px; font-size:14px; line-height:1.6; color: var(--muted-fg); font-style: italic; }
.player-review-card .rating{ margin-top:14px; color: var(--primary); font-weight:800; letter-spacing:6px; font-size:16px; }
.reviews-carousel__controls{ display:flex; justify-content:center; margin-top:20px; }
.reviews-carousel__dots{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.reviews-carousel__dots button{ width:8px; height:8px; border-radius:999px; border:0; background: var(--stroke); cursor:pointer; padding:0; transition: background .2s ease, transform .2s ease; }
.reviews-carousel__dots button[aria-current="true"]{ background: var(--primary); transform: scale(1.4); }

/* ====== FAQ ====== */
.mb-faq{ display:grid; gap:14px; margin-top:24px; }
.mb-faq-item{
  background: var(--surface);
  border:1px solid var(--stroke);
  border-radius: calc(var(--radius) + 8px);
  padding:18px 20px;
  transition: background-color .2s ease, border-color .2s ease, transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .2s ease;
}
.mb-faq-item:hover{
  background: var(--surface-2);
  border-color: color-mix(in oklab, var(--primary) 28%, transparent);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px -18px color-mix(in oklab, var(--foreground) 35%, transparent);
}
.mb-faq-item[open]{
  background: var(--surface-2);
  border-color: color-mix(in oklab, var(--primary) 22%, transparent);
}
.mb-faq-summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  font-weight:800; line-height:1.35;
  margin:-2px; padding:2px; border-radius:10px; outline:none;
}
.mb-faq-summary::-webkit-details-marker{ display:none; }
.mb-faq-summary:focus-visible{ outline:2px solid var(--primary); outline-offset:4px; }
.mb-faq-q{ transition: color .2s ease; }
.mb-faq-toggle{
  flex:0 0 auto; width:28px; height:28px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; font-size:20px; line-height:1; font-weight:700;
  color: var(--primary);
  background: color-mix(in oklab, var(--primary) 12%, transparent);
  border:1px solid color-mix(in oklab, var(--primary) 22%, transparent);
  transition: transform .25s cubic-bezier(.2,.7,.2,1), background-color .2s ease, border-color .2s ease;
}
.mb-faq-item[open] .mb-faq-toggle{ transform: rotate(45deg); }
.mb-faq-answer{ margin-top:12px; font-size:14px; color: var(--muted-fg); animation: mb-faq-fade .22s ease-out both; }
@keyframes mb-faq-fade{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }

/* ====== Footer ====== */
.mb-footer{
  background: var(--footer-bg); color: var(--footer-fg);
  border-top:1px solid var(--stroke-soft);
  padding: 40px 0 24px;
}
@media (min-width:768px){ .mb-footer{ padding-top:56px; } }
.mb-footer-grid{
  display:grid; gap:32px;
  grid-template-columns: 1fr;
  margin-bottom:32px;
}
@media (min-width:640px){ .mb-footer-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width:768px){ .mb-footer-grid{ grid-template-columns: 1.4fr 0.7fr 0.7fr; } }
.mb-footer-logo{ opacity:.78; transition: opacity .2s ease; margin-bottom:12px; display:inline-block; }
.mb-footer-logo:hover{ opacity:1; }
.mb-footer-text{ color: var(--footer-fg); font-size:14px; max-width:360px; }
.mb-footer-heading{ font-size:12px; text-transform:uppercase; letter-spacing:.14em; margin-bottom:12px; color: var(--primary); }
.mb-footer-links{ display:grid; gap:10px; font-size:14px; color: var(--footer-fg); }
.mb-footer-links a{
  position:relative; display:inline-block;
  color: var(--footer-fg); text-decoration:none;
  padding:3px 10px; margin-inline:-10px; border-radius:999px;
  background-color: transparent;
  transition: color .2s ease, background-color .25s ease, transform .12s ease;
}
.mb-footer-links a:hover{ color: var(--footer-link-hover); background-color: var(--footer-link-bg-hover); }
.mb-footer-links a:active{ color: var(--footer-link-active); transform: translateY(1px); }
.mb-footer-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.mb-footer-badge{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px; border-radius:12px;
  font-size:12px; font-weight:800;
  background: var(--footer-badge-bg); color: var(--footer-fg);
  border:1px solid var(--footer-badge-border);
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .12s ease;
}
.mb-footer-badge:hover{
  background: var(--footer-badge-bg-hover);
  border-color: var(--footer-badge-border-hover);
  color: var(--footer-link-hover);
}
.mb-footer-bottom{
  border-top:1px solid var(--footer-divider);
  padding-top:20px; text-align:center;
  font-size:12px; color: var(--footer-fg-soft);
}

/* ====== Mobile bottom bar ====== */
.mb-mobile-bar{
  position: fixed; left:0; right:0; bottom:0; z-index:60;
  display:flex; gap:12px; padding:12px;
  border-top:1px solid var(--stroke);
  background: color-mix(in srgb, var(--background) 96%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
}
@media (min-width:768px){ .mb-mobile-bar{ display:none; } }
.mb-mobile-bar > .mb-btn-primary,
.mb-mobile-bar > .mb-btn-secondary{
  flex:1; padding-top:14px; padding-bottom:14px; border-radius:18px; font-size:15px;
}

/* ====== Logo helpers ====== */
.mb-logo-img{ display:block; width:auto; max-width:100%; object-fit:contain; height:24px; }
@media (min-width:768px){ .mb-logo-img{ height:28px; } }
.mb-logo-img--footer{ height:22px; }

/* ====== Hide on small / large ====== */
.mb-hide-md{ display:initial; }
@media (min-width:768px){ .mb-hide-md{ display:none; } }
.mb-show-md{ display:none; }
@media (min-width:768px){ .mb-show-md{ display:initial; } }

/* ====== Download Modal ====== */
.mb-modal-root{ position: fixed; inset:0; z-index:9999; display:none; }
.mb-modal-root.is-open{ display:block; }
.mb-modal-backdrop{
  position: absolute; inset:0;
  background: oklch(0.1 0 0 / 0.55);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.mb-modal-card{
  position: relative; margin: 16px auto;
  width: calc(100vw - 20px);
  background:#fff; color:#171717;
  border-radius:22px; overflow:hidden;
  box-shadow: 0 30px 90px rgba(0,0,0,.28);
}
@media (min-width:768px){ .mb-modal-card{ margin: 40px auto; width: min(760px, calc(100vw - 32px)); } }
.mb-modal-close{
  position:absolute; top:14px; right:14px;
  width:44px; height:44px; border-radius:14px;
  border:0; background:#e5e5e5; color:#171717;
  font-size:24px; line-height:1; cursor:pointer;
  transition: transform .15s ease, background-color .15s ease;
}
.mb-modal-close:hover{ transform: translateY(-2px); background:#d4d4d4; }
.mb-modal-topbar{ height:62px; border-bottom:1px solid #e5e5e5; background:#fff; }
@media (min-width:768px){ .mb-modal-topbar{ height:66px; } }
.mb-modal-body{ padding:16px; }
@media (min-width:768px){ .mb-modal-body{ padding:16px 24px; } }
.mb-modal-app{
  display:flex; align-items:center; gap:14px; min-height:58px; margin-bottom:14px;
}
.mb-modal-icon{
  flex:0 0 auto;
  width:46px; height:46px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg,#facc15,#ca8a04);
  color:#000; font-weight:900; font-size:18px;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
@media (min-width:768px){ .mb-modal-icon{ width:52px; height:52px; border-radius:14px; } }
.mb-modal-icon--img{ background:#000; padding:0; object-fit:cover; overflow:hidden; }
.mb-modal-title{
  font-size:20px; font-weight:500; line-height:1.2; color:#737373;
}
@media (min-width:768px){ .mb-modal-title{ font-size:24px; } }
.mb-modal-progress{
  height:12px; width:100%; overflow:hidden;
  border-radius:999px; background:#e5e5e5; margin-top:4px;
}
.mb-modal-progress-fill{
  height:100%; border-radius:999px;
  background: linear-gradient(90deg,#f0b500 0%,#ffd84a 100%);
  width:1%; transition: width .2s linear;
}
.mb-modal-stats{
  margin-top:10px;
  display:grid; gap:6px;
  grid-template-columns:1fr;
  font-size:14px; color:#737373;
}
@media (min-width:768px){ .mb-modal-stats{ grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; } }
.mb-modal-stats strong{ color:#404040; font-weight:700; }
.mb-modal-link{ color:#525252; border-bottom:1px dashed rgba(0,0,0,.2); text-decoration:none; }
.mb-modal-link:hover{ color:#171717; border-color: rgba(0,0,0,.4); }
.mb-modal-help{ margin-top:36px; font-size:14px; color:#737373; line-height:1.4; }
@media (min-width:768px){ .mb-modal-help{ margin-top:72px; } }
.mb-modal-hint{ margin-top:8px; font-size:13px; color:#a3a3a3; }
body.mb-modal-open{ overflow:hidden; }
</style>

  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "MELBET — APK и страницы загрузки",
    "url": "/",
    "inLanguage": "ru"
  }
  </script>
  
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"Organization","name":"MELBET","url":"/","logo":"/logo-melbet-ru.webp"}
</script>

  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "MELBET",
    "url": "/",
    "logo": "/logo-melbet-ru.webp"
  }
  </script>
  
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "name": "Melbet APK",
    "description": "Официальное приложение Melbet в RUB на Андроид (APK) и iOS бесплатно.",
    "operatingSystem": "Android 5.0+",
    "applicationCategory": "GameApplication",
    "softwareVersion": "5.4.2",
    "fileSize": "73.2 MB",
    "downloadUrl": "/go-to-app/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "RUB",
      "availability": "https://schema.org/InStock"
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "4.8",
      "ratingCount": "79471",
      "bestRating": "5",
      "worstRating": "1"
    }
  }
  </script>

<script type="application/ld+json" id="ld-faq"></script>

  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "item": {
          "@type": "WebPage",
          "@id": "/",
          "name": "Melbet"
        }
      },
      {
        "@type": "ListItem",
        "position": 2,
        "item": {
          "@type": "WebPage",
          "@id": "/#download",
          "name": "Скачать"
        }
      },
      {
        "@type": "ListItem",
        "position": 3,
        "item": {
          "@type": "WebPage",
          "@id": "/#bonus",
          "name": "📲 Melbet APK"
        }
      }
    ]
  }
  </script>
    <link rel="canonical" href="https://melbet-skachat1.willcomfort.ru/" />
    <link rel="alternate" hreflang="x-default" href="https://willcomfort.ru/" />
    <link rel="alternate" hreflang="ru-RU" href="https://melbet-skachat1.willcomfort.ru/" />
</head>
<body>

<!-- ===== Lucide-style inline SVG icons (rendered via JS) ===== -->
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
  <defs>
    <!-- Lucide stroke defaults: width=24, viewBox 0 0 24 24, stroke=currentColor, strokeWidth=1.75, linecap=round, linejoin=round -->
    <symbol id="ic-sparkles" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"/>
      <path d="M20 3v4"/><path d="M22 5h-4"/><path d="M4 17v2"/><path d="M5 18H3"/>
    </symbol>
    <symbol id="ic-settings2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M20 7h-9"/><path d="M14 17H5"/>
      <circle cx="17" cy="17" r="3"/><circle cx="7" cy="7" r="3"/>
    </symbol>
    <symbol id="ic-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
      <polyline points="7 10 12 15 17 10"/>
      <line x1="12" y1="15" x2="12" y2="3"/>
    </symbol>
    <symbol id="ic-login" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4"/>
      <polyline points="10 17 15 12 10 7"/>
      <line x1="15" y1="12" x2="3" y2="12"/>
    </symbol>
    <symbol id="ic-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/>
      <path d="m9 12 2 2 4-4"/>
    </symbol>
    <symbol id="ic-radio" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M4.9 19.1C1 15.2 1 8.8 4.9 4.9"/>
      <path d="M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5"/>
      <circle cx="12" cy="12" r="2"/>
      <path d="M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5"/>
      <path d="M19.1 4.9C23 8.8 23 15.1 19.1 19"/>
    </symbol>
    <symbol id="ic-wallet" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M19 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
      <path d="M3 5v14a2 2 0 0 0 2 2h16v-5"/>
      <path d="M18 12a2 2 0 0 0 0 4h4v-4z"/>
    </symbol>
    <symbol id="ic-dices" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <rect width="12" height="12" x="2" y="10" rx="2" ry="2"/>
      <path d="m17.92 14 3.5-3.5a2.24 2.24 0 0 0 0-3l-5-4.92a2.24 2.24 0 0 0-3 0L10 6"/>
      <path d="M6 18h.01"/><path d="M10 14h.01"/><path d="M15 6h.01"/><path d="M18 9h.01"/>
    </symbol>
    <symbol id="ic-heart-pulse" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.29 1.51 4.04 3 5.5l7 7Z"/>
      <path d="M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27"/>
    </symbol>
    <symbol id="ic-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>
    </symbol>
    <symbol id="ic-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
      <circle cx="12" cy="12" r="4"/>
      <path d="M12 2v2"/><path d="M12 20v2"/>
      <path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/>
      <path d="M2 12h2"/><path d="M20 12h2"/>
      <path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>
    </symbol>
  </defs>
</svg>

<!-- ===== Header ===== -->
<header class="mb-app-header">
  <div class="mb-container mb-header-row">
    <a href="/" aria-label="Melbet" class="mb-logo-link">
      <img src="/logo-melbet-ru.webp" alt="Melbet" width="1024" height="177" class="mb-logo-img" />
    </a>
    <nav class="mb-nav" aria-label="Основная навигация">
      <a href="#download">Скачать</a>
      <a href="#install">Установка</a>
      <a href="#features">Преимущества</a>
      <a href="#payments">Платежи</a>
      <a href="#faq">FAQ</a>
    </nav>
    <div class="mb-header-actions">
      <button id="themeToggle" type="button" class="mb-btn-ghost" aria-label="Переключить тему" aria-pressed="true">
        <svg id="themeIcon" width="18" height="18"><use href="#ic-moon"/></svg>
        <span class="mb-theme-label" id="themeLabel">Тёмная</span>
      </button>
      <a href="/download" rel="nofollow" type="button" class="mb-btn-primary mb-pulse mb-btn-sm mb-header-cta">Скачать</a>
    </div>
  </div>
</header>

<main>
  <!-- ===== Hero ===== -->
  <section id="download" class="mb-hero">
    <div class="mb-container mb-hero-inner">
      <div class="mb-reveal">
        <div class="mb-eyebrow mb-hero-eyebrow">
          <svg width="18" height="18"><use href="#ic-sparkles"/></svg>
          <span>Официальная страница загрузки</span>
        </div>
        <h1 class="mb-h1 mb-hero-h1">Скачать приложение Melbet на телефон</h1>
        <p class="mb-lead mb-hero-lead">
          Android (APK) и iOS. Live-ставки, платежи, акции и казино — в одном приложении. Установка занимает несколько минут, а интерфейс полностью адаптирован под смартфон.
          <span style="color: var(--muted-2)">18+</span>
        </p>
        <div class="mb-hero-chips">
          <span class="mb-chip">SSL</span>
          <span class="mb-chip">Поддержка 24/7</span>
          <span class="mb-chip">Ответственная игра</span>
        </div>
		  <!-- ===== Hero ===== -->
        <div class="mb-hero-cta-row">
          <a class="mb-btn-primary "
             href="/download"
             rel="nofollow">
            <svg width="20" height="20" aria-hidden="true"><use href="#ic-download"/></svg>
            <span>Android (APK)</span>
          </a>
          <a href="/go-to-app/" rel="nofollow" class="mb-btn-secondary">iOS (App Store)</a>
        </div>
        <p class="mb-hero-note">
          Приложение Melbet подходит для ставок на спорт, live-режима, платёжных операций и запуска казино-игр со смартфона. Используйте только официальные источники загрузки и не передавайте свои данные третьим лицам. 18+
        </p>
		  <!-- ===== Hero ===== -->
      </div>
      <div class="mb-reveal mb-hero-visual" data-delay="120">
        <figure class="mb-phone">
          <img src="/apk-777.webp" alt="Превью интерфейса приложения Melbet" width="340" height="698" fetchpriority="high" decoding="async" />
        </figure>
      </div>
    </div>
  </section>

  <!-- ===== Install ===== -->
  <section id="install" class="mb-section">
    <div class="mb-container">
      <div class="mb-section-head">
        <div>
          <h2 class="mb-h2">Как установить приложение</h2>
          <div class="mb-accent-line"></div>
        </div>
        <a href="#faq" class="mb-section-link">Перейти к FAQ →</a>
      </div>
      <p class="mb-section-intro">
        Установка Melbet на Android и iPhone занимает всего несколько минут. Для Android чаще всего используется APK-файл, а на iOS установка выполняется через App Store. Ниже приведены основные шаги, которые помогут скачать, установить и запустить приложение без лишних сложностей. 
      </p>

      <div class="mb-grid mb-grid-3">
        <article class="mb-card mb-reveal">
          <div class="mb-card-row">
            <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-settings2"/></svg></span>
            <h3 class="mb-h3">1) Разрешите установку</h3>
          </div>
          <p style="color: var(--muted-fg)">Android: откройте Настройки → Безопасность и включите установку из неизвестных источников, если система запрашивает такое разрешение. Это стандартный шаг для установки APK-файла, скачанного вне Google Play.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="90">
          <div class="mb-card-row">
            <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-download"/></svg></span>
            <h3 class="mb-h3">2) Скачайте APK</h3>
          </div>
          <p style="color: var(--muted-fg)">Нажмите «Android (APK)» и дождитесь загрузки. Важно проверять, что файл скачан с официальной страницы и не был заменён сторонним источником, иначе установка может оказаться небезопасной.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="180">
          <div class="mb-card-row">
            <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-login"/></svg></span>
            <h3 class="mb-h3">3) Установите и войдите</h3>
          </div>
          <p style="color: var(--muted-fg)">Откройте файл, завершите установку и авторизуйтесь. Если аккаунта нет, зарегистрируйтесь прямо в приложении и настройте вход под своё устройство — это займёт пару минут.</p>
        </article>
      </div>

      <div class="mb-grid mb-grid-2">
        <article class="mb-card">
          <div class="mb-card-row">
            <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-download"/></svg></span>
            <h3 class="mb-h3">Установка на iPhone</h3>
          </div>
          <p style="color: var(--muted-fg)">Пользователям iOS обычно не требуется отдельная настройка безопасности. Достаточно перейти в App Store, найти приложение, подтвердить установку через Face ID, Touch ID или пароль Apple ID и дождаться завершения загрузки.</p>
          <ul class="mb-list" style="margin-top:12px;">
            <li>Откройте App Store.</li>
            <li>Найдите официальную версию.</li>
            <li>Нажмите «Установить» и подтвердите загрузку.</li>
            <li>Войдите в аккаунт или создайте новый.</li>
          </ul>
        </article>
        <article class="mb-card">
          <div class="mb-card-row">
            <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-settings2"/></svg></span>
            <h3 class="mb-h3">Обновление и запуск без ошибок</h3>
          </div>
          <p style="color: var(--muted-fg)">Чтобы приложение работало стабильно, используйте актуальную версию и следите за совместимостью операционной системы. На Android обновление обычно доступно через новую APK-сборку, а на iOS — через App Store.</p>
          <ul class="mb-list" style="margin-top:12px;">
            <li>Проверяйте свободную память на устройстве.</li>
            <li>Используйте последнюю доступную версию.</li>
            <li>Не устанавливайте APK из непроверенных источников.</li>
            <li>Если файл не открывается, скачайте повторно.</li>
          </ul>
        </article>
      </div>

      <div class="mb-card" style="margin-top:24px;">
        <div class="mb-card-row">
          <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-shield"/></svg></span>
          <h3 class="mb-h3">Безопасность и проверка</h3>
        </div>
        <ul class="mb-list">
          <li>Скачивайте приложение только с официальных страниц или зеркал, которые вы контролируете.</li>
          <li>Не передавайте коды из SMS, пароли и данные карты третьим лицам.</li>
          <li>Используйте сложный пароль и дополнительные методы защиты, если они доступны на вашем устройстве.</li>
          <li>При подозрении на ошибку установки удалите файл и скачайте новую версию заново.</li>
        </ul>
      </div>
    </div>
  </section>

  <!-- ===== Features ===== -->
  <section id="features" class="mb-section mb-section-muted">
    <div class="mb-container">
      <h2 class="mb-h2">Преимущества приложения</h2>
      <div class="mb-accent-line"></div>
      <p class="mb-section-intro">
        Приложение Melbet создавалось как полноценный мобильный инструмент, а не просто как упрощённая версия сайта. Оно помогает быстрее получать доступ к линии, live-разделу, платежам и казино, а также упрощает навигацию между основными разделами со смартфона.
      </p>
      <div class="mb-grid mb-grid-3">
        <article class="mb-card mb-reveal">
          <div class="mb-icon-circle" style="margin-bottom:16px;"><svg width="22" height="22"><use href="#ic-radio"/></svg></div>
          <h3 class="mb-h3">Live-ставки и линия</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Удобный просмотр событий, быстрые купоны и уведомления по матчам. Приложение помогает быстро переключаться между дисциплинами, открывать статистику и оформлять ставки в live-режиме без лишних действий.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="90">
          <div class="mb-icon-circle" style="margin-bottom:16px;"><svg width="22" height="22"><use href="#ic-wallet"/></svg></div>
          <h3 class="mb-h3">Платежи и вывод</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Пополнение и вывод на популярные способы. История операций находится в одном месте, а управление балансом и проверка статусов заявок доступны прямо из мобильного интерфейса.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="180">
          <div class="mb-icon-circle" style="margin-bottom:16px;"><svg width="22" height="22"><use href="#ic-dices"/></svg></div>
          <h3 class="mb-h3">Казино в приложении</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Слоты, настольные игры и live-форматы доступны на смартфоне 24/7. Каталог игр адаптирован под мобильный экран, поэтому переключаться между разделами и жанрами удобно даже при активном использовании.</p>
        </article>
      </div>

      <div class="mb-grid mb-grid-2">
        <article class="mb-card">
          <h3 class="mb-h3">Для чего подходит приложение</h3>
          <ul class="mb-list" style="margin-top:12px;">
            <li>Ставки на спорт: футбол, теннис, хоккей, киберспорт и другие дисциплины.</li>
            <li>Live-режим: быстрый доступ к событиям, коэффициентам и статистике.</li>
            <li>Казино: подбор игр по провайдерам, жанрам и формату запуска.</li>
            <li>Акции: бонусные предложения, фрибеты и другие промо-механики.</li>
          </ul>
        </article>
        <article class="mb-card">
          <h3 class="mb-h3">Скорость и удобство</h3>
          <ul class="mb-list" style="margin-top:12px;">
            <li>Оптимизировано под мобильные устройства и работу при слабом интернет-соединении.</li>
            <li>Быстрые кнопки перехода: линия, live, казино, профиль и платежи.</li>
            <li>Push-уведомления о ключевых событиях, если они включены в настройках.</li>
            <li>Удобный вход в аккаунт и сохранение предпочтений пользователя.</li>
          </ul>
        </article>
      </div>
    </div>
  </section>

  <!-- ===== Payments ===== -->
  <section id="payments" class="mb-section">
    <div class="mb-container">
      <div class="mb-section-head">
        <div>
          <h2 class="mb-h2">Пополнение счёта и вывод в приложении</h2>
          <div class="mb-accent-line"></div>
        </div>
        <a href="#faq" class="mb-section-link">Вопросы по платежам →</a>
      </div>
      <p class="mb-section-intro">
        Через приложение Melbet можно пополнять счёт, выбирать способ оплаты, отслеживать историю и отправлять заявки на вывод прямо со смартфона.
      </p>

      <div class="mb-grid mb-grid-3">
        <article class="mb-card mb-reveal">
          <div class="mb-card-row"><span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-wallet"/></svg></span><h3 class="mb-h3">Способы пополнения</h3></div>
          <p style="color: var(--muted-fg)">Банковские карты, СБП и СБП QR, P2P-переводы, электронные кошельки и мобильные способы оплаты.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="90">
          <div class="mb-card-row"><span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-login"/></svg></span><h3 class="mb-h3">Вывод средств</h3></div>
          <p style="color: var(--muted-fg)">Заявки оформляются через личный кабинет. Перед первым выводом возможна верификация.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="180">
          <div class="mb-card-row"><span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-shield"/></svg></span><h3 class="mb-h3">Что важно проверить</h3></div>
          <p style="color: var(--muted-fg)">Лимиты, статус аккаунта, доступность метода и корректность реквизитов.</p>
        </article>
      </div>

      <div class="mb-grid mb-grid-2" style="margin-top:24px;">
        <article class="mb-card mb-reveal">
          <div class="mb-card-row"><span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-wallet"/></svg></span><h3 class="mb-h3">Какие способы могут быть доступны</h3></div>
          <ul class="mb-list" style="margin-top:10px; color: var(--muted-fg)">
            <li>СБП и СБП QR для быстрого пополнения через банковское приложение.</li>
            <li>Банковские карты, включая популярные российские банки, если они доступны в платёжном разделе.</li>
            <li>P2P-переводы как альтернативный способ пополнения баланса.</li>
            <li>Электронные кошельки, например ЮMoney, Piastrix, MoneyGO, BybitPay и другие варианты при их доступности.</li>
            <li>Отдельные методы с низкими лимитами или рекомендованные способы, которые отображаются прямо в приложении.</li>
          </ul>
        </article>
        <article class="mb-card mb-reveal" data-delay="90">
          <div class="mb-card-row"><span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-settings2"/></svg></span><h3 class="mb-h3">Как проходит платёжный сценарий</h3></div>
          <ol class="mb-list" style="margin-top:10px; color: var(--muted-fg)">
            <li>Откройте личный кабинет или раздел платежей в приложении.</li>
            <li>Выберите пополнение или вывод средств.</li>
            <li>Укажите подходящий способ оплаты и сумму операции.</li>
            <li>Проверьте реквизиты и подтвердите действие.</li>
            <li>После обработки операция появится в истории транзакций.</li>
          </ol>
        </article>
      </div>

      <div class="mb-card" style="margin-top:24px;">
        <div class="mb-card-row">
          <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-settings2"/></svg></span>
          <h3 class="mb-h3">Способы оплаты — что важно знать</h3>
        </div>
        <div class="mb-table-wrap">
          <table class="mb-table min-760">
            <thead>
              <tr><th>Способ</th><th>Пополнение</th><th>Вывод</th><th>Что важно знать</th></tr>
            </thead>
            <tbody>
              <tr><td>СБП / СБП QR</td><td>Да</td><td>Зависит от условий</td><td>Удобен для быстрых платежей через банковское приложение.</td></tr>
              <tr><td>Банковские карты</td><td>Да</td><td>Может быть доступен</td><td>Проверьте лимиты и статус карты.</td></tr>
              <tr><td>P2P-переводы</td><td>Да</td><td>Зависит от метода</td><td>Следуйте инструкции внутри платёжного окна.</td></tr>
              <tr><td>ЮMoney / Piastrix / MoneyGO / BybitPay</td><td>Может быть доступно</td><td>Может быть доступно</td><td>Зависит от региона и набора способов.</td></tr>
              <tr><td>Пополнение мобильной связи</td><td>Может быть доступно</td><td>Обычно нет</td><td>Подходит не для всех сценариев.</td></tr>
            </tbody>
          </table>
        </div>
        <p class="mb-table-note">Конкретный список платёжных инструментов, лимиты, скорость обработки и возможность вывода на тот или иной способ могут меняться. Перед операцией всегда проверяйте актуальные условия внутри приложения.</p>
      </div>
    </div>
  </section>

  <!-- ===== What's available ===== -->
  <section class="mb-section">
    <div class="mb-container">
      <h2 class="mb-h2">Что доступно в приложении</h2>
      <div class="mb-accent-line"></div>
      <div class="mb-grid mb-grid-3">
        <article class="mb-card mb-reveal">
          <h3 class="mb-h3">Спортивный раздел</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">В приложении доступны прематч и live, быстрый переход между турнирами, поиск по дисциплинам и удобная работа с купоном. Это делает мобильную ставку более быстрой и понятной по сравнению с браузерной версией.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="90">
          <h3 class="mb-h3">Личный кабинет</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Пользователь может просматривать баланс, историю ставок, статусы транзакций, бонусные предложения и настройки профиля. Все ключевые действия собраны в одном месте и доступны в несколько касаний.</p>
        </article>
        <article class="mb-card mb-reveal" data-delay="180">
          <h3 class="mb-h3">Уведомления и безопасность</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Приложение поддерживает push-уведомления о важных событиях и позволяет использовать встроенные инструменты защиты устройства: код-пароль, отпечаток пальца или Face ID, если функция поддерживается смартфоном.</p>
        </article>
      </div>

      <div class="mb-card" style="margin-top:24px;">
        <div class="mb-card-row">
          <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-settings2"/></svg></span>
          <h3 class="mb-h3">Совместимость и способы установки</h3>
        </div>
        <div class="mb-table-wrap">
          <table class="mb-table">
            <thead><tr><th>Параметр</th><th>Android</th><th>iPhone / iOS</th></tr></thead>
            <tbody>
              <tr><td>Способ установки</td><td>APK-файл</td><td>App Store</td></tr>
              <tr><td>Обновление</td><td>Через новую версию APK</td><td>Через магазин приложений</td></tr>
              <tr><td>Минимальные требования</td><td>Android 5.0+</td><td>Актуальная версия iOS</td></tr>
              <tr><td>Что важно проверить</td><td>Память, разрешение на установку, источник файла</td><td>Совместимость устройства и доступность App Store</td></tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== App vs mobile site ===== -->
  <section class="mb-section mb-section-muted">
    <div class="mb-container">
      <h2 class="mb-h2">Приложение или мобильный сайт</h2>
      <div class="mb-accent-line"></div>
      <div class="mb-grid mb-grid-2">
        <article class="mb-card">
          <h3 class="mb-h3">Когда удобнее приложение</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Если вы регулярно пользуетесь Melbet со смартфона, приложение обычно оказывается удобнее: оно быстрее запускается, лучше адаптировано под мобильный экран, поддерживает push-уведомления и упрощает доступ к платежам, купону и аккаунту.</p>
        </article>
        <article class="mb-card">
          <h3 class="mb-h3">Когда подходит мобильный сайт</h3>
          <p style="margin-top:10px; color: var(--muted-fg)">Мобильный сайт подойдёт тем, кто не хочет устанавливать программу или предпочитает вход через браузер. Однако по скорости, удобству навигации и глубине мобильного взаимодействия приложение чаще выигрывает у браузерной версии.</p>
        </article>
      </div>
    </div>
  </section>

  <!-- ===== Reviews ===== -->
  <section class="mb-section mb-section-muted" itemscope itemtype="https://schema.org/Product">
    <meta itemprop="name" content="Melbet" />
    <div class="mb-container">
      <h2 class="mb-h2">Отзывы пользователей</h2>
      <div class="mb-accent-line"></div>
      <div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
        <meta itemprop="ratingValue" content="4.8" />
        <meta itemprop="ratingCount" content="79471" />
        <meta itemprop="reviewCount" content="79471" />
        <meta itemprop="bestRating" content="5" />
        <meta itemprop="worstRating" content="1" />
      </div>
      <div class="mb-review-head">
        <div class="mb-review-score">4.8</div>
        <div class="mb-review-stars" aria-label="Оценка 4.8 из 5">★★★★★</div>
        <div class="mb-review-count">на основе 79 471 отзывов</div>
      </div>
      <p class="mb-section-intro">Пользователи чаще всего отмечают удобство мобильной навигации, быстрый доступ к live-событиям, комфортную работу с платежами и то, что приложение ощущается практичнее, чем мобильный сайт при ежедневном использовании.</p>

      <div class="reviews-carousel mb-reveal" id="reviewsCarousel" role="region" aria-roledescription="карусель" aria-label="Отзывы пользователей Melbet">
        <div class="reviews-carousel__viewport" id="reviewsViewport">
          <div class="reviews-carousel__track" id="reviewsCarouselTrack" aria-live="polite" aria-atomic="false"></div>
        </div>
        <div class="reviews-carousel__controls">
          <div class="reviews-carousel__dots" id="reviewsDots" role="tablist" aria-label="Навигация по отзывам"></div>
        </div>
      </div>
    </div>
  </section>

  <!-- ===== FAQ ===== -->
  <section id="faq" class="mb-section">
    <div class="mb-container">
      <h2 class="mb-h2">FAQ</h2>
      <div class="mb-accent-line"></div>
      <div class="mb-faq" id="faqList"></div>
    </div>
  </section>

  <!-- ===== Responsible gaming ===== -->
  <section class="mb-section">
    <div class="mb-container">
      <div class="mb-card">
        <div class="mb-card-row">
          <span class="mb-icon-circle"><svg width="20" height="20"><use href="#ic-heart-pulse"/></svg></span>
          <h2 style="font-size:24px; font-weight:800;">Ответственная игра</h2>
        </div>
        <p style="font-size:14px; color: var(--muted-fg)">Азартные игры могут вызывать зависимость. Устанавливайте лимиты, делайте перерывы и играйте только на средства, которые готовы потерять. Если игра перестаёт быть развлечением, стоит сократить активность и воспользоваться доступными инструментами самоконтроля.</p>
        <div style="display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;">
          <span class="mb-chip">18+</span>
          <span class="mb-chip">Контроль лимитов</span>
          <span class="mb-chip">Перерывы</span>
        </div>
      </div>
    </div>
  </section>
</main>

<!-- ===== Footer ===== -->
<footer class="mb-footer">
  <div class="mb-container">
    <div class="mb-footer-grid">
      <div>
        <a href="/" class="mb-footer-logo"><img src="/logo-melbet-ru.webp" alt="Melbet" width="1024" height="177" class="mb-logo-img mb-logo-img--footer" /></a>
        <p class="mb-footer-text">Информация о мобильном приложении: установка, преимущества и ответы на вопросы. 18+</p>
      </div>
      <div>
        <h3 class="mb-footer-heading">Разделы</h3>
        <div class="mb-footer-links">
          <a href="#download">Скачать</a>
          <a href="#install">Установка</a>
          <a href="#features">Преимущества</a>
          <a href="#payments">Платежи</a>
          <a href="#faq">FAQ</a>
        </div>
      </div>
      <div>
        <h3 class="mb-footer-heading">Безопасность</h3>
        <div class="mb-footer-badges">
          <span class="mb-chip">18+</span>
          <span class="mb-footer-badge">SSL</span>
          <span class="mb-footer-badge">KYC/AML</span>
        </div>
      </div>
    </div>
    <div class="mb-footer-bottom">
      <p>© 2026 Melbet. Все права защищены. Играйте ответственно. 18+</p>
    </div>
  </div>
</footer>

<!-- ===== Mobile bottom bar ===== -->
<div class="mb-mobile-bar">
  <a class="mb-btn-primary"
     href="/go-to-app/"
     rel="nofollow">
    <svg width="18" height="18" aria-hidden="true"><use href="#ic-download"/></svg><span>APK</span>
  </a>
  <a class="mb-btn-secondary" href="/go-to-app/" rel="nofollow"><span>iOS</span></a>
</div>

<!-- ===== Download Modal ===== -->
<div class="mb-modal-root" id="dlModal" role="presentation" aria-hidden="true">
  <div class="mb-modal-backdrop" data-close></div>
  <div class="mb-modal-card" role="dialog" aria-modal="true" aria-labelledby="dl-title">
    <button type="button" class="mb-modal-close" aria-label="Закрыть окно загрузки" data-close>×</button>
    <div class="mb-modal-topbar"></div>
    <div class="mb-modal-body">
      <div class="mb-modal-app">
        <img id="dlIcon" class="mb-modal-icon mb-modal-icon--img" src="/ico-apk-melbet-ru.webp" alt="Иконка приложения Melbet" width="52" height="52" />
        <div id="dl-title" class="mb-modal-title">Загрузка...</div>
      </div>
      <div class="mb-modal-progress"><div id="dlFill" class="mb-modal-progress-fill"></div></div>
      <div class="mb-modal-stats">
        <div><span>Прогресс: </span><strong id="dlPercent">1%</strong></div>
        <div><span>Скорость: </span><strong id="dlSpeed">183.2 KB/s</strong></div>
        <div><span>Объём: </span><strong id="dlVolume">823.9 KB / 73.2 MB</strong></div>
      </div>
      <p class="mb-modal-help">Если загрузка не начинается, нажмите <a id="dlOpenLink" href="/melbet.apk" download="melbet.apk" class="mb-modal-link">«Открыть ссылку»</a></p>
      <p class="mb-modal-hint" id="dlHint">Подготовка файла для загрузки…</p>
    </div>
  </div>
</div>

<script>
(function(){
  /* ===== FAQ data + JSON-LD ===== */
  var FAQS = [
    ["Как обновить приложение?", "iOS: обновляйте через App Store. Android (APK): скачайте актуальную версию с этой страницы и установите поверх, если устройство это позволяет. Перед обновлением желательно убедиться, что на смартфоне достаточно памяти."],
    ["Почему APK не устанавливается?", "Проверьте свободную память, разрешение на установку из неизвестных источников и совместимость версии Android. Если файл повреждён или загрузился не до конца, скачайте его заново и попробуйте снова."],
    ["Это безопасно?", "Безопасность зависит от источника установки. Используйте только официальные страницы или проверенные зеркала, не передавайте свои данные третьим лицам и держите устройство защищённым с помощью пароля или биометрии."],
    ["Можно ли установить приложение на iPhone?", "Да, если версия для iOS доступна для вашего устройства и региона. Установка выполняется через App Store: достаточно найти приложение, подтвердить загрузку и войти в аккаунт после установки."],
    ["Чем приложение лучше мобильного сайта?", "Приложение быстрее запускается, удобнее адаптировано под смартфон, поддерживает push-уведомления и упрощает переходы между разделами. Браузерная версия подойдёт для разовых заходов, а приложение — для регулярного использования."],
    ["Сколько места нужно для установки?", "Точный размер может меняться от версии к версии, но рекомендуется иметь запас свободной памяти. Для Android также важно учитывать кэш и обновления, которые со временем занимают дополнительное место."],
    ["Можно ли использовать приложение для live-ставок?", "Да, приложение хорошо подходит для live-режима. Удобно отслеживать события в реальном времени, оперативно реагировать на изменения коэффициентов и управлять купоном с одного экрана."],
    ["Есть ли в приложении казино?", "Да, мобильная версия даёт доступ к слотам, настольным играм и live-форматам. Каталог игр адаптирован под мобильный экран, фильтры и поиск помогают быстро находить нужные слоты."],
    ["Что делать, если приложение не открывается после установки?", "Проверьте версию операционной системы, наличие свободной памяти и актуальность установленного файла. Если проблема сохраняется, удалите приложение, скачайте свежую версию и выполните установку повторно."],
    ["Как пополнить счёт через приложение?", "Откройте раздел платежей или личный кабинет, выберите пополнение, укажите способ оплаты и сумму, затем подтвердите операцию. После обработки платёж появится в истории транзакций."],
    ["Какие способы оплаты доступны?", "В зависимости от условий могут быть доступны банковские карты, СБП, СБП QR, P2P-переводы, электронные кошельки и отдельные мобильные способы оплаты. Актуальный список отображается внутри приложения."],
    ["Можно ли использовать СБП?", "Да, если этот способ доступен в платёжном разделе для вашего аккаунта. В отдельных случаях СБП или СБП QR используются как быстрый вариант пополнения через банковское приложение."],
    ["Как вывести деньги из приложения?", "Для вывода средств обычно нужно открыть личный кабинет, перейти в раздел выплат, выбрать доступный способ и подтвердить заявку. Скорость обработки зависит от выбранного метода и правил сервиса."],
    ["Нужна ли верификация для вывода?", "Перед первым выводом или при проверке безопасности система может запросить подтверждение личности. Поэтому лучше заранее убедиться, что данные аккаунта заполнены корректно."]
  ];

  var faqList = document.getElementById("faqList");
  var html = "";
  for (var i=0;i<FAQS.length;i++){
    var q = FAQS[i][0], a = FAQS[i][1];
    html += '<details class="mb-faq-item"><summary class="mb-faq-summary"><span class="mb-faq-q">'+escapeHtml(q)+'</span><span class="mb-faq-toggle" aria-hidden="true">+</span></summary><p class="mb-faq-answer">'+escapeHtml(a)+'</p></details>';
  }
  faqList.innerHTML = html;

  document.getElementById("ld-faq").textContent = JSON.stringify({
    "@context":"https://schema.org","@type":"FAQPage",
    mainEntity: FAQS.map(function(p){ return {"@type":"Question","name":p[0],"acceptedAnswer":{"@type":"Answer","text":p[1]}}; })
  });

  function escapeHtml(s){ return String(s).replace(/[&<>"']/g, function(c){ return ({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[c]; }); }

  /* ===== Theme toggle ===== */
  var btn = document.getElementById("themeToggle");
  var icon = document.getElementById("themeIcon");
  var label = document.getElementById("themeLabel");
  function syncTheme(){
    var dark = document.documentElement.classList.contains("dark");
    btn.setAttribute("aria-pressed", dark ? "true" : "false");
    icon.innerHTML = '<use href="#'+(dark?"ic-moon":"ic-sun")+'"/>';
    label.textContent = dark ? "Тёмная" : "Светлая";
    var meta = document.querySelector('meta[name="theme-color"]');
    if (meta) meta.setAttribute("content", dark ? "#141414" : "#f5f8f7");
  }
  syncTheme();
  btn.addEventListener("click", function(){
    var nextDark = !document.documentElement.classList.contains("dark");
    document.documentElement.classList.toggle("dark", nextDark);
    try{ localStorage.setItem("theme", nextDark ? "dark" : "light"); } catch(e){}
    syncTheme();
  });

  /* ===== Reveal observer ===== */
  var revealEls = document.querySelectorAll(".mb-reveal");
  revealEls.forEach(function(el){
    var d = el.getAttribute("data-delay");
    if (d) el.style.transitionDelay = d + "ms";
  });
  if ("IntersectionObserver" in window){
    var io = new IntersectionObserver(function(entries){
      entries.forEach(function(e){
        if (e.isIntersecting){ e.target.classList.add("is-visible"); io.unobserve(e.target); }
      });
    }, { threshold: 0.12, rootMargin: "0px 0px -40px 0px" });
    revealEls.forEach(function(el){
      var r = el.getBoundingClientRect();
      if (r.top < window.innerHeight - 40 && r.bottom > 0) el.classList.add("is-visible");
      else io.observe(el);
    });
  } else {
    revealEls.forEach(function(el){ el.classList.add("is-visible"); });
  }

  /* ===== Download modal (real fetch + progress, with fallback) ===== */
  var modal = document.getElementById("dlModal");
  var fill = document.getElementById("dlFill");
  var pctEl = document.getElementById("dlPercent");
  var spdEl = document.getElementById("dlSpeed");
  var volEl = document.getElementById("dlVolume");
  var titleEl = document.getElementById("dl-title");
  var hintEl = document.getElementById("dlHint");
  var openLinkEl = document.getElementById("dlOpenLink");
  var iconEl = document.getElementById("dlIcon");
  var activeObjectUrl = null, activeController = null, fakeTimer = null, autoCloseTimer = null, savedFocus = null;

  function fmtBytes(b){ if(!b||b<=0) return "0 KB"; var mb=b/1048576; return mb>=1?mb.toFixed(1)+" MB":(b/1024).toFixed(1)+" KB"; }
  function fmtSpeed(b){ if(!b||b<=0) return "0 KB/s"; var mb=b/1048576; return mb>=1?mb.toFixed(2)+" MB/s":(b/1024).toFixed(1)+" KB/s"; }
  function setProgress(p, loaded, total, speed){
    var sp = Math.max(1, Math.min(100, p||1));
    fill.style.width = sp + "%";
    pctEl.textContent = Math.round(sp) + "%";
    volEl.textContent = fmtBytes(loaded||0) + " / " + (total?fmtBytes(total):"—");
    spdEl.textContent = fmtSpeed(speed||0);
  }
  function openModal(){
    savedFocus = document.activeElement;
    modal.classList.add("is-open");
    modal.setAttribute("aria-hidden", "false");
    document.body.classList.add("mb-modal-open");
    var c = modal.querySelector(".mb-modal-close"); if (c) c.focus();
  }
  function cleanupTimers(){ if(fakeTimer){clearInterval(fakeTimer);fakeTimer=null;} if(autoCloseTimer){clearTimeout(autoCloseTimer);autoCloseTimer=null;} }
  function cleanupDl(){ if(activeController){try{activeController.abort();}catch(e){} activeController=null;} if(activeObjectUrl){try{URL.revokeObjectURL(activeObjectUrl);}catch(e){} activeObjectUrl=null;} }
  function closeModal(){
    cleanupTimers(); cleanupDl();
    modal.classList.remove("is-open");
    modal.setAttribute("aria-hidden","true");
    document.body.classList.remove("mb-modal-open");
    if (savedFocus && savedFocus.focus) savedFocus.focus();
  }
  function forceOpenLink(url){
    var a=document.createElement("a"); a.href=url; a.download="melbet.apk";
    document.body.appendChild(a); a.click(); a.remove();
  }
  function finishAndDownload(blob, fileName){
    activeObjectUrl = URL.createObjectURL(blob);
    titleEl.textContent = "Файл готов";
    hintEl.textContent = "Загрузка завершена. Если скачивание не началось, используйте ссылку ниже.";
    setProgress(100, blob.size, blob.size, 0);
    var a=document.createElement("a"); a.href=activeObjectUrl; a.download=fileName||"melbet.apk";
    document.body.appendChild(a); a.click(); a.remove();
    autoCloseTimer = setTimeout(closeModal, 1800);
  }
  function startFakeProgress(totalBytes, url){
    cleanupTimers();
    var loaded = Math.max(140*1024, totalBytes*0.01);
    var pct = Math.max(1, (loaded/totalBytes)*100);
    var speed = 183.2*1024;
    titleEl.textContent = "Загрузка...";
    hintEl.textContent = "Если браузер блокирует потоковую загрузку, используйте «Открыть ссылку».";
    setProgress(pct, loaded, totalBytes, speed);
    fakeTimer = setInterval(function(){
      loaded = Math.min(loaded + (140+Math.random()*420)*1024, totalBytes*0.92);
      speed = (160+Math.random()*260)*1024;
      setProgress((loaded/totalBytes)*100, loaded, totalBytes, speed);
    }, 450);
    setTimeout(function(){ forceOpenLink(url); }, 250);
  }
  async function startDownload(url, fileName, expectedMb, iconUrl){
    cleanupTimers(); cleanupDl();
    if (iconUrl && iconEl) iconEl.src = iconUrl;
    if (openLinkEl) openLinkEl.href = url;
    var fallbackTotal = (expectedMb||73.2)*1048576;
    titleEl.textContent = "Загрузка...";
    hintEl.textContent = "Подготовка файла для загрузки…";
    setProgress(1, 823.9*1024, fallbackTotal, 183.2*1024);
    openModal();
    try{
      activeController = new AbortController();
      var response = await fetch(url, { signal: activeController.signal, credentials:"same-origin" });
      if (!response.ok || !response.body) throw new Error("no stream");
      var contentLength = Number(response.headers.get("content-length")) || fallbackTotal;
      var reader = response.body.getReader();
      var chunks = [], received = 0;
      var startedAt = performance.now(), lastT = startedAt, lastB = 0;
      hintEl.textContent = "Скачивание файла началось…";
      while(true){
        var r = await reader.read();
        if (r.done) break;
        chunks.push(r.value); received += r.value.length;
        var now = performance.now(), dt = (now-lastT)/1000, speed = 0;
        if (dt >= 0.25){ speed = (received-lastB)/dt; lastT = now; lastB = received; }
        else { var td=(now-startedAt)/1000; speed = td>0?received/td:0; }
        setProgress(contentLength?(received/contentLength)*100:1, received, contentLength, speed);
      }
      finishAndDownload(new Blob(chunks), fileName);
    } catch(err){
      hintEl.textContent = "Не удалось показать реальный прогресс. Открываем прямую ссылку…";
      startFakeProgress(fallbackTotal, url);
    }
  }
  document.addEventListener("click", function(e){
    var closeT = e.target.closest("[data-close]");
    if (closeT){ e.preventDefault(); closeModal(); return; }
    var trigger = e.target.closest(".js-apk-download, .js-open-modal");
    if (!trigger) return;
    e.preventDefault();
    var url = trigger.getAttribute("data-download-url") || trigger.getAttribute("href") || "/melbet.apk";
    var fileName = trigger.getAttribute("data-file-name") || "melbet.apk";
    var fileSize = parseFloat(trigger.getAttribute("data-file-size") || "73.2");
    var icon = trigger.getAttribute("data-icon") || "/ico-apk-melbet-ru.webp";
    startDownload(url, fileName, fileSize, icon);
  });
  document.addEventListener("keydown", function(e){ if (e.key === "Escape" && modal.classList.contains("is-open")) closeModal(); });

  /* ===== Reviews carousel ===== */
  var REVIEWS = [
    {name:"VerifiedUser",city:"Курск",payout:"17 430 ₽",device:"Realme C67",account:"№620937814",status:"Стальной уровень",cashback:"5%",xp:"3 890 000 очков",text:"«Адекватные коэффициенты, линия широкая, а приложение с официального сайта поставилось без проблем. Пользуюсь каждый день, выводы проходят быстро и без лишних действий.»"},
    {name:"OfficeBetter",city:"Санкт-Петербург",payout:"41 570 ₽",device:"Lenovo ThinkPad T14",account:"№604198375",status:"Стальной уровень",cashback:"6%",xp:"7 810 000 очков",text:"«Очень удобное мобильное приложение: live открывается быстро, купон понятный, история операций под рукой. Для ставок со смартфона реально один из самых комфортных вариантов.»"},
    {name:"SpinControl",city:"Новосибирск",payout:"15 480 ₽",device:"Realme 11 Pro",account:"№283704196",status:"Бронзовый уровень",cashback:"6%",xp:"2 310 000 очков",text:"«Скачал приложение с официального сайта и сразу оценил скорость работы. Навигация удобная, ничего не лагает, а по выплатам у меня пока только положительный опыт.»"},
    {name:"FairPlay77",city:"Казань",payout:"22 905 ₽",device:"Xiaomi Redmi Note 12 Pro",account:"№519067244",status:"Золотой уровень",cashback:"7%",xp:"6 230 000 очков",text:"«Понравилось, что и сайт, и приложение работают стабильно. На футбол и хоккей линия хорошая, коэффициенты нормальные, а пополнение и вывод делаются буквально в пару касаний.»"},
    {name:"BetRunner",city:"Екатеринбург",payout:"19 860 ₽",device:"Samsung Galaxy A54",account:"№472186539",status:"Серебряный уровень",cashback:"5%",xp:"4 420 000 очков",text:"«Пользуюсь приложением давно, особенно нравится live-раздел и быстрый поиск матчей. Все понятно даже без долгого привыкания, а поддержка отвечает вменяемо и быстро.»"},
    {name:"LiveHunter",city:"Самара",payout:"28 340 ₽",device:"iPhone 13",account:"№381452907",status:"Платиновый уровень",cashback:"8%",xp:"8 040 000 очков",text:"«Для меня главный плюс — удобство мобильной версии. Скачал APK, установил за пару минут и сразу начал ставить. Приложение шустрое, результаты обновляются быстро.»"},
    {name:"FastCashRU",city:"Краснодар",payout:"36 120 ₽",device:"Poco X6 Pro",account:"№542710836",status:"Золотой уровень",cashback:"7%",xp:"6 980 000 очков",text:"«Официальное приложение реально удобнее мобильного сайта. Разделы расположены логично, коэффициенты видны сразу, а вывод денег ни разу не затягивался.»"},
    {name:"SportSignal",city:"Уфа",payout:"14 760 ₽",device:"Honor 90",account:"№715209384",status:"Серебряный уровень",cashback:"5%",xp:"3 640 000 очков",text:"«Ставлю в основном на футбол и баскетбол, приложение отлично подходит для live. Быстрый вход, понятный интерфейс, ничего не перегружено — пользоваться реально приятно.»"},
    {name:"GoalMaster",city:"Воронеж",payout:"26 540 ₽",device:"Samsung Galaxy S23 FE",account:"№193860547",status:"Золотой уровень",cashback:"7%",xp:"5 760 000 очков",text:"«Из того, что пробовал, у Melbet одно из самых аккуратных приложений. Все под рукой: линия, live, платежи, история. Для ежедневного использования очень удобно.»"},
    {name:"PrimeOdds",city:"Пермь",payout:"31 980 ₽",device:"Redmi Note 13",account:"№854390271",status:"Платиновый уровень",cashback:"8%",xp:"8 620 000 очков",text:"«Нравится, что после установки с официального сайта все сразу заработало без танцев с бубном. Приложение легкое, не тупит, а платежный раздел сделан максимально просто.»"},
    {name:"FlashStake",city:"Омск",payout:"18 260 ₽",device:"iPhone 14",account:"№267531948",status:"Серебряный уровень",cashback:"6%",xp:"4 090 000 очков",text:"«Удобная навигация, нормальные коэффициенты и быстрый расчет ставок. Особенно зашло, что можно быстро переключаться между матчами и не теряться в разделах.»"},
    {name:"KubanPlay",city:"Ростов-на-Дону",payout:"24 710 ₽",device:"Tecno Camon 20",account:"№648372105",status:"Стальной уровень",cashback:"6%",xp:"5 180 000 очков",text:"«Пользуюсь приложением на Android, все работает стабильно. Ставки принимаются быстро, интерфейс понятный, а с выводом денег у меня вопросов пока вообще не возникало.»"},
    {name:"IceLine",city:"Нижний Новгород",payout:"33 890 ₽",device:"Poco F5",account:"№506218437",status:"Золотой уровень",cashback:"7%",xp:"6 910 000 очков",text:"«Отличная версия для смартфона: уведомления, live, платежи — все в одном месте. Видно, что приложение сделано не для галочки, а реально под ежедневное использование.»"},
    {name:"VolgaWin",city:"Волгоград",payout:"16 940 ₽",device:"Honor X9b",account:"№734985216",status:"Бронзовый уровень",cashback:"5%",xp:"2 940 000 очков",text:"«Скачал приложение ради удобства, в итоге почти полностью перешел на него с браузера. По скорости запуска, работе купона и навигации мне подходит полностью.»"},
    {name:"ZenitStep",city:"Тюмень",payout:"27 650 ₽",device:"Vivo V29",account:"№418507263",status:"Стальной уровень",cashback:"6%",xp:"5 470 000 очков",text:"«Очень понравилось, как сделан интерфейс. Даже при большом количестве событий ничего не выглядит перегруженным. Установил с официального сайта, работает отлично.»"},
    {name:"TopExpress",city:"Иркутск",payout:"21 360 ₽",device:"OnePlus Nord 3",account:"№579124683",status:"Золотой уровень",cashback:"7%",xp:"5 920 000 очков",text:"«Плюс за быстрые выплаты и стабильную работу приложения. На телефоне пользоваться комфортно, особенно когда нужно быстро зайти в live и сделать ставку без лишних переходов.»"},
    {name:"ArenaPilot",city:"Ярославль",payout:"29 480 ₽",device:"Redmi Note 14",account:"№462907351",status:"Платиновый уровень",cashback:"8%",xp:"8 350 000 очков",text:"«Для новичка приложение оказалось очень понятным. Все разделы подписаны нормально, поиск удобный, а с первым выводом денег вообще никаких проблем не было.»"},
    {name:"QuickMatch",city:"Сочи",payout:"35 640 ₽",device:"Realme 12+",account:"№801245639",status:"Золотой уровень",cashback:"7%",xp:"6 540 000 очков",text:"«Мне зашло, что приложение быстро открывается даже на не самом новом смартфоне. Live удобный, статистика рядом, платежи работают корректно — в целом хороший опыт.»"},
    {name:"SafeBetter",city:"Хабаровск",payout:"23 790 ₽",device:"Galaxy A35",account:"№394157820",status:"Серебряный уровень",cashback:"6%",xp:"4 870 000 очков",text:"«У Melbet понравилось именно мобильное приложение: скачивание простое, установка быстрая, интерфейс аккуратный. Для ставок со смартфона реально удачный вариант.»"},
    {name:"ProTicket",city:"Тула",payout:"30 220 ₽",device:"iPhone 15",account:"№682540971",status:"Платиновый уровень",cashback:"8%",xp:"7 430 000 очков",text:"«Хорошее приложение для тех, кто ставит регулярно. Удобно следить за матчами, быстро пополнять счет и выводить деньги. Пока все работает стабильно и без неприятных сюрпризов.»"}
  ];
  var CASHBACK_SVG = '<svg viewBox="0 0 25 17" width="25" height="17" fill="currentColor" aria-hidden="true"><path d="M7.29 4.46h6.18L10.38.27Z M10.92 0 14 4.18 17.36 0Z M13.57 4.93H7.19l3.19 9.12Z M6.23 4.46 2.81.21 0 4.46Z M14.25 4.93l-3.44 9.83 9.91-9.83Z M14.53 4.46h6.23L18 .21Z M6.51 4.93H0l10 9.83Z M6.76 4.18 9.84 0H3.4Z"/></svg>';
  var XP_SVG = '<svg viewBox="0 0 15 15" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M6.67 5.34H6a5.31 5.31 0 0 0-2.84 1L.06.69a.47.47 0 0 1 0-.46A.49.49 0 0 1 .47 0h2.81a.49.49 0 0 1 .41.23l2.63 4.51ZM12.44.69 9.35 6.32a5.23 5.23 0 0 0-1.45-.74l-1.05-1.8 2-3.54A.46.46 0 0 1 9.22 0H12a.49.49 0 0 1 .41.23.47.47 0 0 1 .03.46ZM6.25 6.26a4.38 4.38 0 1 0 4.37 4.38 4.39 4.39 0 0 0-4.37-4.38Zm2.37 4.23-.85.87L8 12.6a.48.48 0 0 1-.2.46.5.5 0 0 1-.27.08.46.46 0 0 1-.22-.06l-1-.57-1 .57a.47.47 0 0 1-.5 0 .49.49 0 0 1-.19-.46l.2-1.24-.85-.87a.5.5 0 0 1-.2-.51.48.48 0 0 1 .38-.32l1.15-.16.52-1.11a.49.49 0 0 1 .85 0l.52 1.11 1.16.17a.48.48 0 0 1 .27.8Z"/></svg>';
  var track = document.getElementById("reviewsCarouselTrack");
  var dotsWrap = document.getElementById("reviewsDots");
  if (track){
    var rh = "";
    for (var ri=0; ri<REVIEWS.length; ri++){
      var r = REVIEWS[ri];
      rh += '<article class="review-slide" role="group" aria-roledescription="слайд" aria-label="Отзыв ' + (ri+1) + ' из ' + REVIEWS.length + '"><div class="card player-review-card"><div class="content">'
        + '<span class="name">'+escapeHtml(r.name)+'</span>'
        + '<span class="city">('+escapeHtml(r.city)+')</span>'
        + '<span class="designation">Последний вывод: '+escapeHtml(r.payout)+'</span>'
        + '<span class="device">Устройство: '+escapeHtml(r.device)+'</span>'
        + '<span class="account">Игровой счёт: '+escapeHtml(r.account)+'</span>'
        + '<span class="status">Статус: '+escapeHtml(r.status)+'</span>'
        + '<span class="cashback"><span class="cashback-icon" aria-hidden="true">'+CASHBACK_SVG+'</span>Cashback казино: '+escapeHtml(r.cashback)+'</span>'
        + '<span class="xp"><span class="xp-icon" aria-hidden="true">'+XP_SVG+'</span>Опыт: '+escapeHtml(r.xp)+'</span>'
        + '<span class="review-text">'+escapeHtml(r.text)+'</span>'
        + '<span class="rating" aria-label="Оценка 5 из 5">★★★★★</span>'
        + '</div></div></article>';
    }
    track.innerHTML = rh;

    function getPerView(){
      var w = window.innerWidth;
      if (w >= 1024) return 3;
      if (w >= 720) return 2;
      return 1;
    }
    var index = 0;
    function pages(){ return Math.max(1, REVIEWS.length - getPerView() + 1); }
    function render(){
      var per = getPerView();
      var maxIdx = Math.max(0, REVIEWS.length - per);
      if (index > maxIdx) index = maxIdx;
      var slideW = 100 / per;
      track.style.transform = "translateX(-" + (index * slideW) + "%)";
      dotsWrap.innerHTML = "";
      var p = pages();
      for (var i=0;i<p;i++){
        var b = document.createElement("button");
        b.type = "button";
        b.setAttribute("role", "tab");
        b.setAttribute("aria-label", "Перейти к группе отзывов " + (i+1) + " из " + p);
        b.setAttribute("aria-selected", i === index ? "true" : "false");
        b.tabIndex = i === index ? 0 : -1;
        if (i === index) b.setAttribute("aria-current", "true");
        (function(idx){ b.addEventListener("click", function(){ index = idx; render(); reset(); }); })(i);
        dotsWrap.appendChild(b);
      }
    }
    var auto = null;
    function reset(){
      if (auto) clearInterval(auto);
      auto = setInterval(function(){
        index = (index + 1) % pages();
        render();
      }, 5000);
    }
    render(); reset();
    window.addEventListener("resize", render);
  }


})();
</script>
</body>
</html>