<!DOCTYPE html>
<html class="notranslate" lang="id-ID" translate="no">

<head>
  <meta charset="utf-8" />
  <meta content="IE=edge" http-equiv="X-UA-Compatible" />
  <meta content="width=device-width,initial-scale=1,viewport-fit=cover" name="viewport" />
  <title>
    MAHJONG138 | Link Login Explorasi Game Online Terpercaya 2026
  </title>
  <meta
    content="MAHJONG138 adalah link login resmi untuk eksplorasi game online terpercaya 2026. Akses cepat, aman, dan nikmati berbagai permainan premium dengan winrate tinggi setiap hari."
    name="description" />
  <meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="robots" />
  <meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="googlebot" />
  <meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="bingbot" />
  <meta content="MAHJONG138" name="author" />
  <meta content="MAHJONG138" name="publisher" />
  <meta content="MAHJONG138" name="application-name" />
  <meta content="#ffffff" name="theme-color" />
  <meta content="light" name="color-scheme" />
  <meta content="strict-origin-when-cross-origin" name="referrer" />
  <meta content="telephone=no" name="format-detection" />
  <meta content="yes" name="mobile-web-app-capable" />
  <meta content="yes" name="apple-mobile-web-app-capable" />
  <meta content="default" name="apple-mobile-web-app-status-bar-style" />
  <meta content="MAHJONG138" name="apple-mobile-web-app-title" />
  <link href="https://mahjong138bold.com/" rel="canonical" />
  <link href="https://mobile.sitemahjong.im/" rel="amphtml" />
  <link href="https://mobile.sitemahjong.im/" hreflang="id-ID" rel="alternate" />
  <link href="https://mobile.sitemahjong.im/" hreflang="id" rel="alternate" />
  <link href="https://mobile.sitemahjong.im/" hreflang="x-default" rel="alternate" />
  <link href="https://mobile.sitemahjong.im/" media="only screen and (max-width: 640px)" rel="alternate" />
  <link href="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" rel="icon" sizes="any" />
  <link href="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" rel="icon" sizes="32x32"
    type="image/png" />
  <link href="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" rel="icon" sizes="192x192"
    type="image/png" />
  <link href="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" rel="apple-touch-icon" sizes="180x180" />
  <link href="https://mahjong138bold.com/site.webmanifest" rel="manifest" />
  <meta content="website" property="og:type" />
  <meta content="https://mahjong138bold.com/" property="og:url" />
  <meta content="MAHJONG138 | Link Login Explorasi Game Online Terpercaya 2026" property="og:title" />
  <meta content="Video, Shorts, panduan, update, dan konten terbaru MAHJONG138 dalam tampilan modern dan responsif."
    property="og:description" />
  <meta content="MAHJONG138" property="og:site_name" />
  <meta content="id_ID" property="og:locale" />
  <meta content="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" property="og:image" />
  <meta content="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" property="og:image:secure_url" />
  <meta content="image/webp" property="og:image:type" />
  <meta content="1200" property="og:image:width" />
  <meta content="630" property="og:image:height" />
  <meta content="MAHJONG138" property="og:image:alt" />
  <meta content="summary_large_image" name="twitter:card" />
  <meta content="MAHJONG138 | Link Login Explorasi Game Online Terpercaya 2026" name="twitter:title" />
  <meta content="Video, Shorts, panduan, update, dan konten terbaru MAHJONG138." name="twitter:description" />
  <meta content="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" name="twitter:image" />
  <meta content="MAHJONG138" name="twitter:image:alt" />
  <link href="https://fonts.googleapis.com" rel="preconnect" />
  <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect" />
  <link href="//fonts.googleapis.com" rel="dns-prefetch" />
  <link href="//fonts.gstatic.com" rel="dns-prefetch" />
  <link as="image" fetchpriority="high" href="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" rel="preload" />
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&amp;display=swap" rel="stylesheet" />
  <script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://mahjong138bold.com/#organization",
      "name": "MAHJONG138",
      "url": "https://mahjong138bold.com/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://cdn-proxy.globalcontentcloud.com/361/logo/logo.png"
      },
      "image": "https://i.postimg.cc/QM5bc5h9/situsmj138.webp"
    },
    {
      "@type": "WebSite",
      "@id": "https://mahjong138bold.com/#website",
      "url": "https://mahjong138bold.com/",
      "name": "MAHJONG138",
      "publisher": {
        "@id": "https://mahjong138bold.com/#organization"
      },
      "inLanguage": "id-ID"
    },
    {
      "@type": [
        "WebPage",
        "CollectionPage"
      ],
      "@id": "https://mahjong138bold.com/#webpage",
      "url": "https://mahjong138bold.com/",
      "name": "MAHJONG138 | Informasi, Update & Konten Terbaru",
      "isPartOf": {
        "@id": "https://mahjong138bold.com/#website"
      },
      "about": {
        "@id": "https://mahjong138bold.com/#organization"
      },
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://i.postimg.cc/QM5bc5h9/situsmj138.webp"
      },
      "breadcrumb": {
        "@id": "https://mahjong138bold.com/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://mahjong138bold.com/#content-list"
      },
      "inLanguage": "id-ID"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://mahjong138bold.com/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Beranda",
          "item": "https://mahjong138bold.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Video Hub",
          "item": "https://mahjong138bold.com/#latest"
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://mahjong138bold.com/#content-list",
      "name": "Daftar konten MAHJONG138",
      "numberOfItems": 20,
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #01"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #02"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #03"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #04"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #05"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #06"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #07"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #08"
        },
        {
          "@type": "ListItem",
          "position": 9,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #09"
        },
        {
          "@type": "ListItem",
          "position": 10,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #10"
        },
        {
          "@type": "ListItem",
          "position": 11,
          "url": "https://mahjong138bold.com//",
          "name": "Konten MAHJONG138 #11"
        },
        {
          "@type": "ListItem",
          "position": 12,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #12"
        },
        {
          "@type": "ListItem",
          "position": 13,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #13"
        },
        {
          "@type": "ListItem",
          "position": 14,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #14"
        },
        {
          "@type": "ListItem",
          "position": 15,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #15"
        },
        {
          "@type": "ListItem",
          "position": 16,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #16"
        },
        {
          "@type": "ListItem",
          "position": 17,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #17"
        },
        {
          "@type": "ListItem",
          "position": 18,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #18"
        },
        {
          "@type": "ListItem",
          "position": 19,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #19"
        },
        {
          "@type": "ListItem",
          "position": 20,
          "url": "https://mahjong138bold.com/",
          "name": "Konten MAHJONG138 #20"
        }
      ]
    },
    {
      "@type": "SoftwareApplication",
      "@id": "https://mahjong138bold.com/#app",
      "name": "MAHJONG138",
      "operatingSystem": "Android",
      "applicationCategory": "EntertainmentApplication",
      "downloadUrl": "https://mobile.sitemahjong.im/",
      "url": "https://mahjong138bold.com/#download",
      "publisher": {
        "@id": "https://mahjong138bold.com/#organization"
      }
    },
    {
      "@type": "FAQPage",
      "@id": "https://mahjong138bold.com/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Apa itu MAHJONG138?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "MAHJONG138 adalah video hub responsif yang menyajikan video, Shorts, panduan, update, dan informasi dalam satu antarmuka."
          }
        },
        {
          "@type": "Question",
          "name": "Bagaimana cara membuka versi cepat MAHJONG138?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Versi alternatif MAHJONG138 tersedia melalui URL AMP resmi di https://mobile.sitemahjong.im/."
          }
        },
        {
          "@type": "Question",
          "name": "Bagaimana cara mengunduh aplikasi MAHJONG138?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "APK resmi MAHJONG138 dapat diunduh melalui tombol Download yang mengarah ke https://mobile.sitemahjong.im/"
          }
        }
      ]
    }
  ]
}
</script>
  <style>
    :root {
      --bg: #fff;
      --text: #0f0f0f;
      --muted: #606060;
      --line: #e5e5e5;
      --soft: #f2f2f2;
      --accent: #ff0033;
      --sidebar: 176px;
      --top: 56px;
      --topic: 48px;
      --feed-gap: 16px;
      --start: 230px
    }

    * {
      box-sizing: border-box
    }

    html {
      font-size: 10px;
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;
      text-size-adjust: 100%
    }

    html.notranslate,
    .notranslate {
      -webkit-translate: none;
      translate: none
    }

    body {
      margin: 0;
      background: var(--bg);
      color: var(--text);
      font-family: Roboto, "Noto Sans", "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Arial, sans-serif;
      font-size: 1.4rem;
      line-height: 1.4;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility
    }

    body.no-scroll {
      overflow: hidden
    }

    a {
      color: inherit;
      text-decoration: none
    }

    button,
    input {
      font: inherit;
      color: inherit
    }

    button {
      cursor: pointer
    }

    img,
    svg,
    picture,
    video {
      display: block;
      max-width: 100%
    }

    img {
      height: auto
    }

    .hidden {
      display: none !important
    }

    .skip-link {
      position: fixed;
      z-index: 9999;
      top: -60px;
      left: 12px;
      padding: 10px 14px;
      border-radius: 8px;
      background: #111;
      color: #fff
    }

    .skip-link:focus {
      top: 10px
    }

    .masthead {
      position: fixed;
      z-index: 120;
      inset: 0 0 auto;
      height: var(--top);
      display: grid;
      grid-template-columns: var(--start) minmax(280px, 1fr) auto;
      align-items: center;
      gap: 16px;
      padding: 0 16px;
      background: #fff
    }

    .masthead.scrolled {
      box-shadow: 0 1px 0 var(--line)
    }

    .masthead__start,
    .masthead__center,
    .masthead__end {
      display: flex;
      align-items: center;
      min-width: 0
    }

    .masthead__start {
      gap: 12px
    }

    .masthead__center {
      justify-content: center
    }

    .masthead__end {
      justify-content: flex-end;
      gap: 12px
    }

    .icon-btn {
      width: 40px;
      height: 40px;
      border: 0;
      border-radius: 50%;
      padding: 0;
      background: transparent;
      display: grid;
      place-items: center
    }

    .icon-btn:hover {
      background: var(--soft)
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 7px;
      white-space: nowrap
    }

    .brand img {
      width: 30px;
      height: 20px;
      object-fit: contain
    }

    .brand__text {
      font-size: 2rem;
      font-weight: 700;
      line-height: 1;
      letter-spacing: -.65px
    }

    .brand__small {
      align-self: flex-start;
      margin-top: 4px;
      font-size: .8rem;
      color: #777
    }

    .search {
      width: min(100%, 720px);
      height: 40px;
      display: flex;
      align-items: center
    }

    .search__box {
      height: 40px;
      display: flex;
      align-items: center;
      flex: 1;
      min-width: 0;
      border: 1px solid #c6c6c6;
      border-radius: 20px 0 0 20px;
      overflow: hidden;
      background: #fff
    }

    .search__box:focus-within {
      border-color: #1c62b9
    }

    .search__box svg {
      display: none;
      margin-left: 14px
    }

    .search__box:focus-within svg {
      display: block
    }

    .search input {
      width: 100%;
      height: 38px;
      min-width: 0;
      border: 0;
      outline: 0;
      padding: 0 14px;
      background: transparent;
      font-size: 1.6rem
    }

    .search__clear {
      display: none;
      height: 36px;
      border: 0;
      background: transparent;
      padding: 0 12px;
      font-size: 2.4rem
    }

    .search__clear.show {
      display: block
    }

    .search__submit {
      width: 64px;
      height: 40px;
      flex: 0 0 64px;
      border: 1px solid #c6c6c6;
      border-left: 0;
      border-radius: 0 20px 20px 0;
      background: #f8f8f8;
      display: grid;
      place-items: center
    }

    .voice {
      width: 40px;
      height: 40px;
      margin-left: 12px;
      border: 0;
      border-radius: 50%;
      background: #f2f2f2;
      display: grid;
      place-items: center
    }

    .create-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 36px;
      padding: 0 14px;
      border-radius: 18px;
      background: #f2f2f2;
      font-weight: 500
    }

    .avatar {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: #3f51b5;
      color: #fff;
      font-weight: 700
    }

    .layout {
      padding-top: var(--top)
    }

    .sidebar {
      position: fixed;
      z-index: 100;
      top: var(--top);
      bottom: 0;
      left: 0;
      width: var(--sidebar);
      padding: 8px;
      overflow: auto;
      background: #fff
    }

    .nav-item {
      height: 40px;
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 0 12px;
      border-radius: 10px;
      font-size: 1.2rem;
      white-space: nowrap
    }

    .nav-item:hover,
    .nav-item.active {
      background: #f2f2f2
    }

    .nav-item.active {
      font-weight: 500
    }

    .nav-item .ico {
      width: 20px;
      text-align: center;
      font-size: 1.8rem
    }

    .nav-title {
      padding: 7px 12px;
      font-size: 1.4rem;
      font-weight: 500
    }

    .divider {
      height: 1px;
      margin: 10px 0;
      background: #d9d9d9
    }

    .nav-download:after {
      content: "APK";
      margin-left: auto;
      padding: 2px 5px;
      border-radius: 4px;
      background: #eee;
      color: #606060;
      font-size: .9rem;
      font-weight: 700
    }

    .sidebar-footer {
      padding: 8px 10px 20px;
      color: #606060;
      font-size: 1.1rem;
      line-height: 1.4
    }

    .sidebar-footer a {
      margin-right: 5px;
      font-weight: 500
    }

    .topicbar {
      position: fixed;
      z-index: 110;
      top: var(--top);
      left: var(--sidebar);
      right: 0;
      height: var(--topic);
      display: flex;
      align-items: center;
      padding: 0 14px;
      background: #fff;
      border-bottom: 1px solid #f1f1f1;
      overflow: hidden
    }

    .chips {
      display: flex;
      gap: 8px;
      width: 100%;
      overflow-x: auto;
      scrollbar-width: none
    }

    .chips::-webkit-scrollbar {
      display: none
    }

    .chip {
      height: 32px;
      flex: 0 0 auto;
      padding: 0 12px;
      border: 0;
      border-radius: 8px;
      background: #f2f2f2;
      font-size: 1.2rem;
      font-weight: 500
    }

    .chip.active {
      background: #0f0f0f;
      color: #fff
    }

    .content {
      width: calc(100% - var(--sidebar));
      margin-left: var(--sidebar);
      padding: calc(var(--topic) + var(--feed-gap)) 14px 48px
    }

    .video-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      column-gap: 14px;
      row-gap: 28px
    }

    .video-card {
      min-width: 0;
      content-visibility: auto;
      contain-intrinsic-size: 420px
    }

    .thumb {
      position: relative;
      display: block;
      aspect-ratio: 16/9;
      border-radius: 8px;
      overflow: hidden;
      background: #ddd
    }

    .thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .duration {
      position: absolute;
      right: 4px;
      bottom: 4px;
      padding: 2px 4px;
      border-radius: 3px;
      background: rgba(0, 0, 0, .82);
      color: #fff;
      font-size: 1rem
    }

    .meta {
      display: grid;
      grid-template-columns: 36px minmax(0, 1fr) 20px;
      gap: 9px;
      margin-top: 9px
    }

    .channel-logo {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      object-fit: cover
    }

    .meta h2 {
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      margin: 0 0 4px;
      font-size: 1.3rem;
      font-weight: 500;
      line-height: 1.35
    }

    .meta p {
      margin: 1px 0;
      color: #606060;
      font-size: 1.1rem
    }

    .meta-menu {
      border: 0;
      background: transparent;
      font-size: 1.8rem
    }

    .badge:after {
      content: "✓";
      margin-left: 3px;
      font-size: .9rem
    }

    .feed-heading {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      padding: 0 !important;
      margin: -1px !important;
      overflow: hidden !important;
      clip: rect(0, 0, 0, 0) !important;
      white-space: nowrap !important;
      border: 0 !important
    }

    .shorts-section {
      margin-top: 38px;
      content-visibility: auto;
      contain-intrinsic-size: 700px
    }

    .section-title {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 14px
    }

    .section-title img {
      width: 28px;
      height: 28px
    }

    .section-title h2 {
      margin: 0;
      font-size: 2rem
    }

    .shorts-grid {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 12px
    }

    .short-card {
      min-width: 0
    }

    .short-thumb {
      display: block;
      aspect-ratio: 9/16;
      border-radius: 8px;
      overflow: hidden;
      background: #ddd
    }

    .short-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .short-meta {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 20px;
      gap: 4px;
      margin-top: 8px
    }

    .short-meta h3 {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      margin: 0;
      font-size: 1.25rem;
      font-weight: 500
    }

    .short-meta p {
      margin: 3px 0 0;
      color: #606060;
      font-size: 1.1rem
    }

    .short-menu {
      border: 0;
      background: transparent;
      font-size: 1.8rem
    }

    .info-panel {
      margin: 50px 0 20px;
      padding: 28px;
      border: 1px solid var(--line);
      border-radius: 14px
    }

    .info-panel h1 {
      margin: 0 0 12px;
      font-size: 2.6rem
    }

    .info-panel h2 {
      margin: 26px 0 10px;
      font-size: 2rem
    }

    .info-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin-top: 20px
    }

    .info-card {
      padding: 16px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #f8f8f8
    }

    .info-card h3 {
      margin: 0 0 7px
    }

    .cta-row {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 20px
    }

    .btn {
      min-height: 38px;
      display: inline-flex;
      align-items: center;
      padding: 0 18px;
      border-radius: 999px;
      font-weight: 600
    }

    .btn-dark {
      background: #111;
      color: #fff
    }

    .btn-red {
      background: #ff0033;
      color: #fff
    }

    .apk-download {
      background: #0f0f0f;
      color: #fff
    }

    .overlay {
      position: fixed;
      z-index: 95;
      inset: var(--top) 0 0;
      background: rgba(0, 0, 0, .35);
      display: none
    }

    .overlay.show {
      display: block
    }

    .toast {
      position: fixed;
      z-index: 200;
      left: 50%;
      bottom: 24px;
      transform: translate(-50%, 120px);
      padding: 11px 15px;
      border-radius: 5px;
      background: #212121;
      color: #fff;
      opacity: 0;
      transition: .22s
    }

    .toast.show {
      transform: translate(-50%, 0);
      opacity: 1
    }

    footer {
      padding: 22px 0;
      border-top: 1px solid var(--line);
      color: #606060;
      font-size: 1.2rem
    }

    @media(max-width:1350px) {
      .video-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr))
      }

      .shorts-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr))
      }
    }

    @media(max-width:1050px) {
      :root {
        --sidebar: 72px;
        --start: 72px
      }

      .masthead {
        grid-template-columns: 72px minmax(220px, 1fr) auto;
        padding: 0 8px
      }

      .brand__text,
      .brand__small {
        display: none
      }

      .topicbar {
        left: 72px
      }

      .sidebar {
        padding: 8px 4px
      }

      .nav-item {
        height: 64px;
        justify-content: center;
        flex-direction: column;
        gap: 3px;
        padding: 4px;
        font-size: 1rem
      }

      .nav-title,
      .divider,
      .sidebar .extra,
      .sidebar-footer,
      .nav-download:after {
        display: none
      }

      .content {
        width: calc(100% - 72px);
        margin-left: 72px;
        padding: calc(var(--topic) + var(--feed-gap)) 14px 40px
      }

      .video-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
      }

      .shorts-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr))
      }

      .create-btn,
      .voice {
        display: none
      }

      .info-grid {
        grid-template-columns: 1fr
      }
    }

    @media(max-width:640px) {
      :root {
        --sidebar: 0px;
        --top: 54px;
        --topic: 44px;
        --start: auto
      }

      .masthead {
        grid-template-columns: 40px minmax(0, 1fr) 32px;
        height: 54px;
        padding: 0 6px
      }

      .brand {
        display: none
      }

      .masthead__end .icon-btn,
      .create-btn,
      .voice {
        display: none
      }

      .search,
      .search__box,
      .search__submit {
        height: 38px
      }

      .search__submit {
        width: 46px;
        flex-basis: 46px
      }

      .search input {
        height: 36px;
        padding: 0 10px;
        font-size: 1.4rem
      }

      .topicbar {
        top: 54px;
        left: 0;
        height: 44px;
        padding: 0 8px
      }

      .sidebar {
        top: 54px;
        z-index: 105;
        width: 240px;
        transform: translateX(-102%);
        transition: .2s;
        box-shadow: 4px 0 18px rgba(0, 0, 0, .08)
      }

      .sidebar.open {
        transform: translateX(0)
      }

      .sidebar .nav-item {
        height: 40px;
        justify-content: flex-start;
        flex-direction: row;
        gap: 20px;
        padding: 0 12px;
        font-size: 1.2rem
      }

      .sidebar .extra {
        display: flex
      }

      .sidebar .divider,
      .sidebar .nav-title,
      .sidebar .sidebar-footer {
        display: block
      }

      .sidebar .nav-download:after {
        display: inline-block
      }

      .content {
        width: 100%;
        margin-left: 0;
        padding: calc(var(--topic) + 10px) 8px 32px
      }

      .video-grid {
        grid-template-columns: 1fr
      }

      .shorts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
      }

      .info-panel {
        padding: 20px 16px
      }
    }

    @media(prefers-reduced-motion:reduce) {

      *,
      *:before,
      *:after {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important
      }
    }

    .video-grid,
    .shorts-section,
    .info-panel {
      scroll-margin-top: calc(var(--top) + var(--topic) + 12px)
    }

    #latest {
      scroll-margin-top: calc(var(--top) + var(--topic) + 12px)
    }

    .avatar-link {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      overflow: hidden;
      display: block;
      flex: 0 0 auto
    }

    .avatar-link img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .channel-link {
      width: 36px;
      height: 36px;
      border-radius: 50%;
      overflow: hidden;
      display: block
    }

    .video-title-link,
    .short-title-link {
      display: block;
      color: inherit
    }

    .faq-section {
      margin-top: 30px
    }

    .faq-section h2 {
      margin: 0 0 12px;
      font-size: 2rem
    }

    .faq-section details {
      border-top: 1px solid var(--line);
      padding: 14px 0
    }

    .faq-section details:last-child {
      border-bottom: 1px solid var(--line)
    }

    .faq-section summary {
      cursor: pointer;
      font-weight: 500;
      font-size: 1.4rem
    }

    .faq-section details p {
      margin: 8px 0 0;
      color: var(--muted);
      line-height: 1.65
    }
  </style>
</head>

<body>
  <a class="skip-link" href="#main-content">
    Lewati ke konten utama
  </a>
  <header class="masthead" id="topbar">
    <div class="masthead__start">
      <button aria-controls="sidebar" aria-expanded="false" aria-label="Buka menu" class="icon-btn" id="menuBtn"
        type="button">
        ☰
      </button>
      <a class="brand notranslate" href="https://mahjong138bold.com/" title="Beranda MAHJONG138" translate="no">
        <svg width="30" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <path fill="#FF0000"
            d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.016 3.016 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.016 3.016 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814z" />
          <path fill="#FFFFFF" d="M9.545 15.568 15.818 12 9.545 8.432z" />
        </svg>

        <span class="brand__text">
          MAHJONG138
        </span>

        <span class="brand__small">
          ID
        </span>
      </a>
    </div>
    <div class="masthead__center">
      <form class="search" id="searchForm" role="search">
        <div class="search__box">
          <svg aria-hidden="true" height="18" viewbox="0 0 24 24" width="18">
            <circle cx="11" cy="11" fill="none" r="7" stroke="currentColor" stroke-width="2">
            </circle>
            <path d="m16.5 16.5 4 4" stroke="currentColor" stroke-width="2">
            </path>
          </svg>
          <input aria-label="Telusuri MAHJONG138" autocomplete="off" enterkeyhint="search" id="searchInput"
            placeholder="Telusuri MAHJONG138" type="search" />
          <button aria-label="Hapus pencarian" class="search__clear" id="clearSearch" type="button">
            ×
          </button>
        </div>
        <button aria-label="Cari" class="search__submit" type="submit">
          ⌕
        </button>
        <button aria-label="Pencarian suara" class="voice" id="voiceBtn" type="button">
          🎙
        </button>
      </form>
    </div>
    <div class="masthead__end">
      <a class="create-btn" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        Kunjungi MAHJONG138
      </a>
      <button aria-label="Notifikasi" class="icon-btn" id="notifBtn" type="button">
        ♧
      </button>
      <a aria-label="Kunjungi MAHJONG138" class="avatar avatar-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <img alt="MAHJONG138 profile" decoding="async" height="32"
          src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="32" />
      </a>
    </div>
  </header>
  <div class="layout">
    <aside aria-label="Navigasi utama" class="sidebar" id="sidebar">
      <a class="nav-item active" href="https://mahjong138bold.com/">
        <span class="ico">
          ⌂
        </span>
        <b>
          Beranda
        </b>
      </a>
      <a class="nav-item" href="#shorts">
        <span class="ico">
          ◈
        </span>
        <b>
          Shorts
        </b>
      </a>
      <a class="nav-item" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <span class="ico">
          ▣
        </span>
        <b>
          Subscription
        </b>
      </a>
      <div class="divider">
      </div>
      <div class="nav-title">
        Anda ›
      </div>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ↺
        </span>
        <b>
          Histori
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ☷
        </span>
        <b>
          Playlist
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ◷
        </span>
        <b>
          Tonton nanti
        </b>
      </a>
      <a class="nav-item extra" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <span class="ico">
          ♡
        </span>
        <b>
          Video disukai
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ▻
        </span>
        <b>
          Video Anda
        </b>
      </a>
      <a class="nav-item extra nav-download" download="MAHJONG138.apk" href="https://mobile.sitemahjong.im/">
        <span class="ico">
          ↓
        </span>
        <b>
          Download
        </b>
      </a>
      <div class="divider">
      </div>
      <div class="nav-title">
        Lainnya dari MAHJONG138
      </div>
      <a class="nav-item extra" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <span class="ico">
          ▶
        </span>
        <b>
          MAHJONG138 Premium
        </b>
      </a>
      <a class="nav-item extra" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <span class="ico">
          ♫
        </span>
        <b>
          MAHJONG138 Music
        </b>
      </a>
      <a class="nav-item extra" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
        <span class="ico">
          ▰
        </span>
        <b>
          MAHJONG138 Kids
        </b>
      </a>
      <div class="divider">
      </div>
      <div class="nav-title">
        Eksplorasi
      </div>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ♫
        </span>
        <b>
          Musik
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ◇
        </span>
        <b>
          Game
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          🏆
        </span>
        <b>
          Olahraga
        </b>
      </a>
      <a class="nav-item extra" href="#latest">
        <span class="ico">
          ⌄
        </span>
        <b>
          Tampilkan lebih banyak
        </b>
      </a>
      <div class="divider">
      </div>
      <a class="nav-item extra" href="#info">
        <span class="ico">
          ⚑
        </span>
        <b>
          Histori laporan
        </b>
      </a>
      <div class="sidebar-footer">
        <a href="#info">
          Tentang
        </a>
        <a href="#info">
          Pers
        </a>
        <a href="#info">
          Hak cipta
        </a>
        <a href="#info">
          Hubungi kami
        </a>
        <a href="#info">
          Kreator
        </a>
        <a href="#info">
          Developer
        </a>
        <br />
        <br />
        <a href="#info">
          Persyaratan
        </a>
        <a href="#info">
          Privasi
        </a>
        <br />
        <br />
        © 2026 MAHJONG138
      </div>
    </aside>
    <div class="overlay" id="overlay">
    </div>
    <div class="topicbar">
      <nav aria-label="Filter kategori" class="chips">
        <button class="chip active" data-filter="all" type="button">
          Semua
        </button>
        <button class="chip" data-filter="game" type="button">
          Game
        </button>
        <button class="chip" data-filter="live" type="button">
          Live
        </button>
        <button class="chip" data-filter="music" type="button">
          Musik
        </button>
        <button class="chip" data-filter="podcast" type="button">
          Podcast
        </button>
        <button class="chip" data-filter="mix" type="button">
          Mix
        </button>
        <button class="chip" data-filter="animation" type="button">
          Animasi
        </button>
        <button class="chip" data-filter="food" type="button">
          Memasak
        </button>
        <button class="chip" data-filter="pet" type="button">
          Hewan peliharaan
        </button>
        <button class="chip" data-filter="action" type="button">
          Game petualangan aksi
        </button>
        <button class="chip" data-filter="latest" type="button">
          Baru diupload
        </button>
      </nav>
    </div>
    <main class="content" id="main-content">
      <section aria-labelledby="latest-heading">
        <h1 class="feed-heading" id="latest-heading">
          Video terbaru MAHJONG138
        </h1>
        <div class="video-grid" id="latest">
          <article class="video-card" data-cat="update latest mix">
            <a aria-label="MAHJONG138 Update Hari Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
              <img alt="MAHJONG138 Update Hari Ini" decoding="async" fetchpriority="high" height="720" loading="eager"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                5:24
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    MAHJONG138 Update Hari Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  128 rb x ditonton • 2 jam lalu
                </p>
              </div>
              <button aria-label="Menu untuk MAHJONG138 Update Hari Ini" class="meta-menu" type="button">
                ⋮
              </button>
            </div>

          </article>
          <article class="video-card" data-cat="guide action latest">
            <a aria-label="Panduan Lengkap Mengenal Fitur MAHJONG138" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Panduan Lengkap Mengenal Fitur MAHJONG138" decoding="async" height="720" loading="eager"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                8:11
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Panduan Lengkap Mengenal Fitur MAHJONG138
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  94 rb x ditonton • 5 jam lalu
                </p>
              </div>
              <button aria-label="Menu untuk Panduan Lengkap Mengenal Fitur MAHJONG138" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="news podcast latest">
            <a aria-label="Berita dan Informasi MAHJONG138 yang Perlu Diketahui" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Berita dan Informasi MAHJONG138 yang Perlu Diketahui" decoding="async" height="720"
                loading="eager" src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                6:42
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Berita dan Informasi MAHJONG138 yang Perlu Diketahui
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  77 rb x ditonton • 1 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Berita dan Informasi MAHJONG138 yang Perlu Diketahui" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="community mix latest">
            <a aria-label="Konten Pilihan Komunitas MAHJONG138 Minggu Ini" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Konten Pilihan Komunitas MAHJONG138 Minggu Ini" decoding="async" height="720" loading="eager"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                12:08
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Konten Pilihan Komunitas MAHJONG138 Minggu Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  61 rb x ditonton • 1 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Konten Pilihan Komunitas MAHJONG138 Minggu Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="tips guide latest">
            <a aria-label="Tips Mengakses MAHJONG138 Lebih Cepat di Mobile" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Tips Mengakses MAHJONG138 Lebih Cepat di Mobile" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                4:19
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Tips Mengakses MAHJONG138 Lebih Cepat di Mobile
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  52 rb x ditonton • 2 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Tips Mengakses MAHJONG138 Lebih Cepat di Mobile" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="update news">
            <a aria-label="Ringkasan Pembaruan Sistem MAHJONG138" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Ringkasan Pembaruan Sistem MAHJONG138" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                9:31
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Ringkasan Pembaruan Sistem MAHJONG138
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  49 rb x ditonton • 2 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Ringkasan Pembaruan Sistem MAHJONG138" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="guide action">
            <a aria-label="Panduan Tampilan Mobile MAHJONG138" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Panduan Tampilan Mobile MAHJONG138" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                7:55
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Panduan Tampilan Mobile MAHJONG138
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  38 rb x ditonton • 3 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Panduan Tampilan Mobile MAHJONG138" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="popular community mix">
            <a aria-label="Konten MAHJONG138 Paling Populer Bulan Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Konten MAHJONG138 Paling Populer Bulan Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                10:12
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Konten MAHJONG138 Paling Populer Bulan Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  210 rb x ditonton • 4 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Konten MAHJONG138 Paling Populer Bulan Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="game popular">
            <a aria-label="Highlight Game dan Momen Terbaik Hari Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Highlight Game dan Momen Terbaik Hari Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                14:36
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Highlight Game dan Momen Terbaik Hari Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  83 rb x ditonton • 5 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Highlight Game dan Momen Terbaik Hari Ini" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="music mix">
            <a aria-label="Music Session Pilihan MAHJONG138 Minggu Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Music Session Pilihan MAHJONG138 Minggu Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                35:20
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Music Session Pilihan MAHJONG138 Minggu Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  113 rb x ditonton • 5 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Music Session Pilihan MAHJONG138 Minggu Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="food latest">
            <a aria-label="Resep Favorit dan Inspirasi Masakan Hari Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Resep Favorit dan Inspirasi Masakan Hari Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                18:02
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Resep Favorit dan Inspirasi Masakan Hari Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  62 rb x ditonton • 6 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Resep Favorit dan Inspirasi Masakan Hari Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="pet popular">
            <a aria-label="Kompilasi Hewan Lucu Pilihan MAHJONG138" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Kompilasi Hewan Lucu Pilihan MAHJONG138" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                11:43
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Kompilasi Hewan Lucu Pilihan MAHJONG138
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  101 rb x ditonton • 6 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Kompilasi Hewan Lucu Pilihan MAHJONG138" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="animation latest">
            <a aria-label="Cerita Animasi Pilihan MAHJONG138" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Cerita Animasi Pilihan MAHJONG138" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                13:15
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Cerita Animasi Pilihan MAHJONG138
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  72 rb x ditonton • 1 minggu lalu
                </p>
              </div>
              <button aria-label="Menu untuk Cerita Animasi Pilihan MAHJONG138" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="podcast">
            <a aria-label="Podcast Talk: Cerita, Tren dan Perspektif Baru" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Podcast Talk: Cerita, Tren dan Perspektif Baru" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                1:02:44
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Podcast Talk: Cerita, Tren dan Perspektif Baru
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  44 rb x ditonton • 1 minggu lalu
                </p>
              </div>
              <button aria-label="Menu untuk Podcast Talk: Cerita, Tren dan Perspektif Baru" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="live latest">
            <a aria-label="MAHJONG138 Live: Update dan Obrolan Langsung" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="MAHJONG138 Live: Update dan Obrolan Langsung" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                LIVE
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    MAHJONG138 Live: Update dan Obrolan Langsung
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  3,8 rb sedang menonton
                </p>
              </div>
              <button aria-label="Menu untuk MAHJONG138 Live: Update dan Obrolan Langsung" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="mix popular">
            <a aria-label="Daily Mix MAHJONG138: Pilihan Konten Hari Ini" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Daily Mix MAHJONG138: Pilihan Konten Hari Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                42:17
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Daily Mix MAHJONG138: Pilihan Konten Hari Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  132 rb x ditonton • 1 minggu lalu
                </p>
              </div>
              <button aria-label="Menu untuk Daily Mix MAHJONG138: Pilihan Konten Hari Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="action game">
            <a aria-label="Adventure Story: Perjalanan dan Tantangan Baru" class="thumb" href="https://mobile.sitemahjong.im/"
              rel="noopener" target="_blank">
              <img alt="Adventure Story: Perjalanan dan Tantangan Baru" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                25:40
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Adventure Story: Perjalanan dan Tantangan Baru
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  88 rb x ditonton • 8 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Adventure Story: Perjalanan dan Tantangan Baru" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="latest update">
            <a aria-label="Tech Update dan Tren Digital Terbaru" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Tech Update dan Tren Digital Terbaru" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                16:09
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Tech Update dan Tren Digital Terbaru
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  57 rb x ditonton • 9 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Tech Update dan Tren Digital Terbaru" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="music latest">
            <a aria-label="Top Music Playlist MAHJONG138 Terbaru" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Top Music Playlist MAHJONG138 Terbaru" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                56:33
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Top Music Playlist MAHJONG138 Terbaru
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  169 rb x ditonton • 10 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Top Music Playlist MAHJONG138 Terbaru" class="meta-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="video-card" data-cat="latest popular">
            <a aria-label="Weekly Picks: Konten Rekomendasi Minggu Ini" class="thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Weekly Picks: Konten Rekomendasi Minggu Ini" decoding="async" height="720" loading="lazy"
                src="https://i.postimg.cc/QM5bc5h9/situsmj138.webp" width="1280" />
              <span class="duration">
                22:51
              </span>
            </a>
            <div class="meta">
              <a class="channel-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                <img alt="MAHJONG138 channel avatar" class="channel-logo" decoding="async" height="36" loading="lazy"
                  src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="36" />
              </a>
              <div>
                <a class="video-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h2>
                    Weekly Picks: Konten Rekomendasi Minggu Ini
                  </h2>
                </a>
                <p class="badge">
                  MAHJONG138 Official
                </p>
                <p>
                  93 rb x ditonton • 11 hari lalu
                </p>
              </div>
              <button aria-label="Menu untuk Weekly Picks: Konten Rekomendasi Minggu Ini" class="meta-menu"
                type="button">
                ⋮
              </button>
            </div>
          </article>
        </div>
      </section>
      <section aria-labelledby="shorts-heading" class="shorts-section" id="shorts">
        <div class="section-title">
          <img alt="" decoding="async" height="28" loading="lazy"
            src="https://cdn-proxy.globalcontentcloud.com/361/logo/favicon.ico" width="28" />
          <h2 id="shorts-heading">
            Shorts
          </h2>
        </div>
        <div class="shorts-grid">
          <article class="short-card">
            <a aria-label="Top 5 Momen Jepe Minggu Ini" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Top 5 Momen Jepe Minggu Ini" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/DwCZ5Yy7/idnpoker.jpg" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Top 5 Momen Jepe Minggu Ini
                  </h3>
                </a>
                <p>
                  2,7 jt x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Top 5 Momen Jepe Minggu Ini" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="short-card">
            <a aria-label="Game Viral Yang Wajib Kamu Lihat" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Game Viral Yang Wajib Kamu Lihat" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/tJHC7KDY/idnslot.jpg" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Game Viral Yang Wajib Kamu Lihat
                  </h3>
                </a>
                <p>
                  1,8 jt x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Game Viral Yang Wajib Kamu Lihat" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="short-card">
            <a aria-label="Fakta Unik IDN Live Jarang Diketahui" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Fakta Unik IDN Live Jarang Diketahui" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/rp3p2046/idnlive.jpg" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Fakta Unik IDN Live Jarang Diketahui
                  </h3>
                </a>
                <p>
                  1,4 jt x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Fakta Unik IDN Live Jarang Diketahui" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="short-card">
            <a aria-label="Challenge Seru dalam 60 Detik" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Challenge Seru dalam 60 Detik" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/cJND9T9S/mahjongways.jpg" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Challenge Seru dalam 60 Detik
                  </h3>
                </a>
                <p>
                  1,2 jt x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Challenge Seru dalam 60 Detik" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="short-card">
            <a aria-label="Kompilasi Momen Pilihan Terbaik" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Kompilasi Momen Pilihan Terbaik" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/W35X4Vs8/mahjongways2.jpg" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Kompilasi Momen Pilihan Terbaik
                  </h3>
                </a>
                <p>
                  3,8 jt x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Kompilasi Momen Pilihan Terbaik" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
          <article class="short-card">
            <a aria-label="Shorts Trending Hari Ini Petir x500" class="short-thumb" href="https://mobile.sitemahjong.im/" rel="noopener"
              target="_blank">
              <img alt="Shorts Trending Hari Ini Petir x500" decoding="async" height="1280" loading="lazy"
                src="https://i.postimg.cc/8PYWz5MJ/x500.webp" width="720" />
            </a>
            <div class="short-meta">
              <div>
                <a class="short-title-link" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
                  <h3>
                    Shorts Trending Hari Ini Petir x500
                  </h3>
                </a>
                <p>
                  980 rb x ditonton
                </p>
              </div>
              <button aria-label="Menu untuk Shorts Trending Hari Ini Petir x500" class="short-menu" type="button">
                ⋮
              </button>
            </div>
          </article>
        </div>
      </section>
      <section aria-labelledby="info-title" class="info-panel" id="info">
        <h2 id="info-title">
          Tentang MAHJONG138 Video Hub
        </h2>
        <p>
          MAHJONG138 Video Hub merupakan tempat berbagi informasi seputar game online yang sedang viral,
          serta dapat diakses melalui tablet, dan perangkat mobile.
        </p>
        <section aria-labelledby="features-title">
          <h2 id="features-title">
            Fitur MAHJONG138 Video Hub
          </h2>
          <div class="info-grid">
            <article class="info-card">
              <h3>
                Video &amp; Shorts
              </h3>
              <p>
                Video yang disajikan sangat relevan dan terbukti nyata.
                loading untuk konten di bawah fold.
              </p>
            </article>
            <article class="info-card">
              <h3>
                Responsive
              </h3>
              <p>
                Pengguna dapat mengakses kapanpun dan dimanapun tanpa kendala sama sekali.
              </p>
            </article>
            <article class="info-card">
              <h3>
                SEO Forbidden
              </h3>
              <p>
                Selamat menikmati game online terbaik dan terpercaya yang mudah diakses
                serta dengan sistem keamanan yang tinggi.
              </p>
            </article>
          </div>
        </section>
        <section aria-labelledby="download-title" id="download">
          <h2 id="download-title">
            Download Aplikasi Resmi
          </h2>
          <p>
            Gunakan tombol berikut untuk mengunduh APK resmi MAHJONG138.
          </p>
          <div class="cta-row">
            <a class="btn btn-dark" href="https://mobile.sitemahjong.im/" rel="noopener" target="_blank">
              Lihat Video
            </a>
            <a class="btn btn-red" href="#shorts">
              Lihat Shorts
            </a>
            <a class="btn apk-download" download="MAHJONG138.apk" href="https://mobile.sitemahjong.im/">
              ↓ Download APK
            </a>
          </div>
        </section>
        <section aria-labelledby="faq-title" class="faq-section" id="faq">
          <h2 id="faq-title">
            FAQ MAHJONG138
          </h2>
          <details>
            <summary>
              Apa itu MAHJONG138?
            </summary>
            <p>
              MAHJONG138 adalah video hub responsif yang menyajikan video, Shorts, panduan, update, dan informasi dalam
              satu antarmuka.
            </p>
          </details>
          <details>
            <summary>
              Bagaimana cara membuka versi cepat MAHJONG138?
            </summary>
            <p>
              Versi alternatif MAHJONG138 tersedia melalui URL AMP resmi di https://mobile.sitemahjong.im/.
            </p>
          </details>
          <details>
            <summary>
              Bagaimana cara mengunduh aplikasi MAHJONG138?
            </summary>
            <p>
              APK resmi MAHJONG138 dapat diunduh melalui tombol Download yang mengarah ke
              https://mobile.sitemahjong.im/
            </p>
          </details>
        </section>
      </section>
      <footer>
        © 2026 MAHJONG138. Hak Cipta Dilindungi. All Right Reserved.
      </footer>
    </main>
  </div>
  <div aria-live="polite" class="toast" id="toast" role="status">
    Fitur aktif
  </div>
  <script>(() => { "use strict"; const $ = (s, p = document) => p.querySelector(s), $$ = (s, p = document) => [...p.querySelectorAll(s)], menuBtn = $("#menuBtn"), sidebar = $("#sidebar"), overlay = $("#overlay"), searchForm = $("#searchForm"), searchInput = $("#searchInput"), clearSearch = $("#clearSearch"), voiceBtn = $("#voiceBtn"), notifBtn = $("#notifBtn"), toast = $("#toast"), topbar = $("#topbar"), chips = $$(".chip"), cards = $$(".video-card"); let activeFilter = "all", toastTimer; const showToast = m => { toast.textContent = m; toast.classList.add("show"); clearTimeout(toastTimer); toastTimer = setTimeout(() => toast.classList.remove("show"), 1800) }, openMenu = () => { if (innerWidth <= 640) { sidebar.classList.add("open"); overlay.classList.add("show"); document.body.classList.add("no-scroll"); menuBtn.setAttribute("aria-expanded", "true") } }, closeMenu = () => { sidebar.classList.remove("open"); overlay.classList.remove("show"); document.body.classList.remove("no-scroll"); menuBtn.setAttribute("aria-expanded", "false") }, filterCards = () => { const q = searchInput.value.trim().toLowerCase(); cards.forEach(c => { const cats = (c.dataset.cat || "").split(/\s+/), text = c.textContent.toLowerCase(), okFilter = activeFilter === "all" || cats.includes(activeFilter), okSearch = !q || text.includes(q); c.classList.toggle("hidden", !(okFilter && okSearch)) }) }; menuBtn?.addEventListener("click", () => innerWidth <= 640 ? (sidebar.classList.contains("open") ? closeMenu() : openMenu()) : showToast("Navigasi siap digunakan")); overlay?.addEventListener("click", closeMenu); chips.forEach(c => c.addEventListener("click", () => { chips.forEach(x => x.classList.remove("active")); c.classList.add("active"); activeFilter = c.dataset.filter || "all"; filterCards() })); searchInput?.addEventListener("input", () => { clearSearch.classList.toggle("show", searchInput.value.length > 0); filterCards() }); clearSearch?.addEventListener("click", () => { searchInput.value = ""; clearSearch.classList.remove("show"); searchInput.focus(); filterCards() }); searchForm?.addEventListener("submit", e => { e.preventDefault(); filterCards() }); voiceBtn?.addEventListener("click", () => { const SR = window.SpeechRecognition || window.webkitSpeechRecognition; if (!SR) return showToast("Pencarian suara tidak didukung browser ini"); const r = new SR; r.lang = "id-ID"; r.onresult = e => { searchInput.value = e.results[0][0].transcript; clearSearch.classList.add("show"); filterCards() }; r.start() }); notifBtn?.addEventListener("click", () => showToast("Tidak ada notifikasi baru")); $$(".meta-menu,.short-menu").forEach(b => b.addEventListener("click", e => { e.preventDefault(); showToast("Menu konten") })); addEventListener("scroll", () => topbar.classList.toggle("scrolled", scrollY > 4), { passive: true }); addEventListener("resize", () => { innerWidth > 640 && closeMenu() }); document.addEventListener("keydown", e => { e.key === "Escape" && closeMenu(); e.key === "/" && document.activeElement !== searchInput && (e.preventDefault(), searchInput.focus()) }) })();</script>
  <noscript>
    <div style="padding:14px;text-align:center;font-family:Arial,sans-serif">
      Aktifkan JavaScript untuk menggunakan pencarian, filter kategori, dan navigasi interaktif.
    </div>
  </noscript>
</body>

</html>