<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HHPOKER手机版-hhpoker移动端下载</title>
    <meta name="description" content="HHPOKER手机版客户端下载，hhpoker移动端安装教程，德扑圈平台针对手机深度优化，运行流畅操作顺手，全级别优质牌局24小时营业，下载即可畅玩德州。">
    <meta name="keywords" content="德扑圈官网下载,德扑圈安卓下载,德扑圈苹果IOS下载,HHPOKER手机版,hhpoker移动端,hhpoker下载">
    <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🐉</text></svg>">
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        dragon: {
                            50: '#fef2f2',
                            100: '#fee2e2',
                            200: '#fecaca',
                            300: '#fca5a5',
                            400: '#f87171',
                            500: '#ef4444',
                            600: '#DC2626',
                            700: '#b91c1c',
                            800: '#991b1b',
                            900: '#7f1d1d',
                            950: '#450a0a',
                        }
                    },
                    fontFamily: {
                        zh: ['"Noto Sans SC"', '"Microsoft YaHei"', '"PingFang SC"', 'sans-serif'],
                    },
                    animation: {
                        'float': 'float 6s ease-in-out infinite',
                        'fadeInUp': 'fadeInUp 0.8s ease-out forwards',
                        'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
                        'shimmer': 'shimmer 2s linear infinite',
                        'scaleIn': 'scaleIn 0.5s ease-out forwards',
                    },
                    keyframes: {
                        float: {
                            '0%, 100%': { transform: 'translateY(0px)' },
                            '50%': { transform: 'translateY(-20px)' },
                        },
                        fadeInUp: {
                            '0%': { opacity: '0', transform: 'translateY(30px)' },
                            '100%': { opacity: '1', transform: 'translateY(0)' },
                        },
                        shimmer: {
                            '0%': { backgroundPosition: '-200% 0' },
                            '100%': { backgroundPosition: '200% 0' },
                        },
                        scaleIn: {
                            '0%': { opacity: '0', transform: 'scale(0.8)' },
                            '100%': { opacity: '1', transform: 'scale(1)' },
                        },
                    }
                }
            }
        }
    </script>
    <style>
        /* ===== Base & Fonts ===== */
        @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap');

        :root {
            --dragon-red: #DC2626;
            --dragon-red-dark: #991b1b;
            --dragon-gold: #F5A623;
            --dragon-dark: #1a1a1a;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif;
            background-color: #0a0a0a;
            color: #e5e5e5;
            overflow-x: hidden;
            line-height: 1.7;
        }

        /* ===== Custom Scrollbar ===== */
        ::-webkit-scrollbar {
            width: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #1a1a1a;
        }
        ::-webkit-scrollbar-thumb {
            background: var(--dragon-red);
            border-radius: 4px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #b91c1c;
        }

        /* ===== Selection ===== */
        ::selection {
            background: var(--dragon-red);
            color: #fff;
        }

        /* ===== Glass Effect ===== */
        .glass {
            background: rgba(20, 20, 20, 0.85);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid rgba(220, 38, 38, 0.15);
        }

        .glass-light {
            background: rgba(30, 30, 30, 0.7);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(220, 38, 38, 0.1);
        }

        /* ===== Red Glow ===== */
        .glow-red {
            box-shadow: 0 0 40px rgba(220, 38, 38, 0.3), 0 0 80px rgba(220, 38, 38, 0.1);
        }

        .glow-red-sm {
            box-shadow: 0 0 15px rgba(220, 38, 38, 0.25);
        }

        .glow-red-text {
            text-shadow: 0 0 30px rgba(220, 38, 38, 0.5), 0 0 60px rgba(220, 38, 38, 0.2);
        }

        /* ===== Gradient Overlays ===== */
        .gradient-radial-top {
            background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(220, 38, 38, 0.15) 0%, transparent 70%);
        }

        .gradient-radial-bottom {
            background: radial-gradient(ellipse 60% 50% at 50% 100%, rgba(220, 38, 38, 0.08) 0%, transparent 70%);
        }

        /* ===== Dragon Scale Pattern Background ===== */
        .dragon-pattern {
            background-image:
                radial-gradient(circle at 25% 25%, rgba(220, 38, 38, 0.03) 1px, transparent 1px),
                radial-gradient(circle at 75% 75%, rgba(220, 38, 38, 0.03) 1px, transparent 1px);
            background-size: 50px 50px;
        }

        /* ===== Shimmer Button ===== */
        .btn-shimmer {
            background: linear-gradient(90deg, var(--dragon-red) 0%, #ef4444 25%, var(--dragon-red) 50%, #ef4444 75%, var(--dragon-red) 100%);
            background-size: 200% 100%;
            animation: shimmer 3s linear infinite;
            transition: all 0.3s ease;
        }
        .btn-shimmer:hover {
            box-shadow: 0 0 30px rgba(220, 38, 38, 0.6), 0 0 60px rgba(220, 38, 38, 0.3);
            transform: translateY(-2px);
        }

        /* ===== Feature Card ===== */
        .feature-card {
            background: linear-gradient(145deg, rgba(30, 30, 30, 0.9) 0%, rgba(20, 20, 20, 0.95) 100%);
            border: 1px solid rgba(220, 38, 38, 0.12);
            border-radius: 16px;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
        }
        .feature-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, transparent, var(--dragon-red), transparent);
            opacity: 0;
            transition: opacity 0.4s ease;
        }
        .feature-card:hover::before {
            opacity: 1;
        }
        .feature-card:hover {
            border-color: rgba(220, 38, 38, 0.4);
            transform: translateY(-8px);
            box-shadow: 0 20px 60px rgba(220, 38, 38, 0.15), 0 0 40px rgba(220, 38, 38, 0.05);
        }
        .feature-card .icon-circle {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: linear-gradient(135deg, rgba(220, 38, 38, 0.2) 0%, rgba(220, 38, 38, 0.05) 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            color: var(--dragon-red);
            transition: all 0.4s ease;
        }
        .feature-card:hover .icon-circle {
            background: var(--dragon-red);
            color: #fff;
            box-shadow: 0 0 30px rgba(220, 38, 38, 0.5);
        }

        /* ===== Stat Counter ===== */
        .stat-item {
            position: relative;
        }
        .stat-number {
            font-size: 3rem;
            font-weight: 900;
            background: linear-gradient(180deg, #fff 0%, var(--dragon-red) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        /* ===== Testimonial Card ===== */
        .testimonial-card {
            background: linear-gradient(145deg, rgba(30, 30, 30, 0.9) 0%, rgba(20, 20, 20, 0.95) 100%);
            border: 1px solid rgba(220, 38, 38, 0.1);
            border-radius: 16px;
            transition: all 0.3s ease;
            position: relative;
        }
        .testimonial-card:hover {
            border-color: rgba(220, 38, 38, 0.3);
            box-shadow: 0 10px 40px rgba(220, 38, 38, 0.1);
        }
        .testimonial-card .quote-icon {
            color: var(--dragon-red);
            opacity: 0.3;
            font-size: 2rem;
        }

        /* ===== FAQ Accordion ===== */
        .faq-item {
            background: linear-gradient(145deg, rgba(30, 30, 30, 0.9) 0%, rgba(20, 20, 20, 0.95) 100%);
            border: 1px solid rgba(220, 38, 38, 0.1);
            border-radius: 12px;
            overflow: hidden;
            transition: all 0.3s ease;
        }
        .faq-item.active {
            border-color: rgba(220, 38, 38, 0.4);
            box-shadow: 0 0 30px rgba(220, 38, 38, 0.1);
        }
        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, padding 0.4s ease;
        }
        .faq-item.active .faq-answer {
            max-height: 500px;
        }
        .faq-toggle {
            transition: transform 0.3s ease;
        }
        .faq-item.active .faq-toggle {
            transform: rotate(45deg);
        }

        /* ===== CTA Section ===== */
        .cta-section {
            background: linear-gradient(135deg, rgba(220, 38, 38, 0.1) 0%, rgba(153, 27, 27, 0.05) 50%, rgba(220, 38, 38, 0.08) 100%);
            position: relative;
            overflow: hidden;
        }
        .cta-section::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(ellipse at center, rgba(220, 38, 38, 0.08) 0%, transparent 70%);
            animation: float 8s ease-in-out infinite;
        }

        /* ===== Navbar Scroll Effect ===== */
        .navbar-scrolled {
            background: rgba(10, 10, 10, 0.95) !important;
            backdrop-filter: blur(20px) !important;
            -webkit-backdrop-filter: blur(20px) !important;
            box-shadow: 0 4px 30px rgba(220, 38, 38, 0.15) !important;
            border-bottom: 1px solid rgba(220, 38, 38, 0.2) !important;
        }

        /* ===== Divider ===== */
        .divider-red {
            width: 80px;
            height: 4px;
            background: linear-gradient(90deg, transparent, var(--dragon-red), transparent);
            border-radius: 2px;
            margin: 0 auto;
        }

        /* ===== Badge ===== */
        .badge-red {
            display: inline-block;
            padding: 6px 16px;
            background: rgba(220, 38, 38, 0.15);
            border: 1px solid rgba(220, 38, 38, 0.3);
            border-radius: 9999px;
            color: #ef4444;
            font-size: 0.875rem;
            font-weight: 500;
            letter-spacing: 0.05em;
        }

        /* ===== Wave Divider ===== */
        .wave-divider {
            position: relative;
            width: 100%;
            overflow: hidden;
            line-height: 0;
        }
        .wave-divider svg {
            position: relative;
            display: block;
            width: calc(100% + 1.3px);
            height: 60px;
        }
        .wave-divider .shape-fill {
            fill: #0a0a0a;
        }

        /* ===== Mobile Menu ===== */
        #mobile-menu {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, padding 0.4s ease;
        }
        #mobile-menu.open {
            max-height: 400px;
            padding: 16px 0;
        }

        /* ===== Fade-in on scroll ===== */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* ===== Hero Dragon Image Glow ===== */
        .hero-image-wrap {
            position: relative;
        }
        .hero-image-wrap::after {
            content: '';
            position: absolute;
            inset: -4px;
            border-radius: 16px;
            background: linear-gradient(135deg, var(--dragon-red), transparent 50%, var(--dragon-red));
            opacity: 0.4;
            z-index: -1;
            filter: blur(10px);
        }

        /* ===== Pulse ring ===== */
        .pulse-ring {
            position: absolute;
            border: 2px solid rgba(220, 38, 38, 0.4);
            border-radius: 50%;
            animation: pulse-ring 2s ease-out infinite;
        }
        @keyframes pulse-ring {
            0% { width: 60px; height: 60px; opacity: 1; }
            100% { width: 160px; height: 160px; opacity: 0; }
        }

        /* ===== Footer link hover ===== */
        .footer-link {
            transition: color 0.3s ease, padding-left 0.3s ease;
        }
        .footer-link:hover {
            color: var(--dragon-red);
            padding-left: 4px;
        }

        /* ===== Count-up animation ===== */
        @property --num {
            syntax: '<integer>';
            initial-value: 0;
            inherits: false;
        }
    </style>
</head>
<body>

    <!-- ==================== NAVBAR ==================== -->
    <nav id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-300 py-4">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="flex items-center justify-between">
                <!-- Logo -->
                <a href="#" class="flex items-center gap-3 group">
                    <span class="text-3xl group-hover:scale-110 transition-transform duration-300">🐉</span>
                    <div>
                        <span class="text-2xl font-black text-white tracking-wider" style="text-shadow: 0 0 20px rgba(220,38,38,0.5);">
                            HHPOKER<span class="text-red-600">俱乐部</span>
                        </span>
                    </div>
                </a>

                <!-- Desktop Menu -->
                <div class="hidden lg:flex items-center gap-8">
                    <a href="#features" class="text-gray-300 hover:text-red-500 transition-colors duration-300 text-sm font-medium tracking-wide">核心优势</a>
                    <a href="#stats" class="text-gray-300 hover:text-red-500 transition-colors duration-300 text-sm font-medium tracking-wide">平台数据</a>
                    <a href="#testimonials" class="text-gray-300 hover:text-red-500 transition-colors duration-300 text-sm font-medium tracking-wide">玩家评价</a>
                    <a href="#faq" class="text-gray-300 hover:text-red-500 transition-colors duration-300 text-sm font-medium tracking-wide">常见问题</a>
                    <a href="#download" class="btn-shimmer px-6 py-2.5 rounded-full text-white text-sm font-bold tracking-wide">
                        <i class="fa-solid fa-download mr-2"></i>立即下载
                    </a>
                </div>

                <!-- Mobile Menu Button -->
                <button id="menu-toggle" class="lg:hidden text-white text-2xl focus:outline-none">
                    <i class="fa-solid fa-bars"></i>
                </button>
            </div>

            <!-- Mobile Menu -->
            <div id="mobile-menu" class="lg:hidden">
                <div class="flex flex-col gap-3 pt-2 pb-2">
                    <a href="#features" class="text-gray-300 hover:text-red-500 py-2 px-4 rounded-lg hover:bg-red-600/10 transition-all duration-300 text-sm font-medium">核心优势</a>
                    <a href="#stats" class="text-gray-300 hover:text-red-500 py-2 px-4 rounded-lg hover:bg-red-600/10 transition-all duration-300 text-sm font-medium">平台数据</a>
                    <a href="#testimonials" class="text-gray-300 hover:text-red-500 py-2 px-4 rounded-lg hover:bg-red-600/10 transition-all duration-300 text-sm font-medium">玩家评价</a>
                    <a href="#faq" class="text-gray-300 hover:text-red-500 py-2 px-4 rounded-lg hover:bg-red-600/10 transition-all duration-300 text-sm font-medium">常见问题</a>
                    <a href="#download" class="btn-shimmer text-center px-6 py-2.5 rounded-full text-white text-sm font-bold tracking-wide mt-2">
                        <i class="fa-solid fa-download mr-2"></i>立即下载
                    </a>
                </div>
            </div>
        </div>
    </nav>

    <!-- ==================== HERO SECTION ==================== -->
    <section id="hero" class="relative min-h-screen flex items-center overflow-hidden dragon-pattern">
        <div class="gradient-radial-top absolute inset-0 pointer-events-none"></div>

        <!-- Decorative elements -->
        <div class="absolute top-20 left-10 opacity-10 text-red-600 text-8xl select-none">龙</div>
        <div class="absolute bottom-20 right-10 opacity-10 text-red-600 text-8xl select-none">城</div>
        <div class="absolute top-1/4 right-1/4 w-64 h-64 bg-red-600/5 rounded-full blur-3xl"></div>
        <div class="absolute bottom-1/4 left-1/4 w-96 h-96 bg-red-600/5 rounded-full blur-3xl"></div>

        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-32 relative z-10">
            <div class="grid lg:grid-cols-2 gap-12 lg:gap-16 items-center">
                <!-- Left Content -->
                <div class="text-center lg:text-left">
                    <div class="mb-6">
                        <span class="badge-red">
                            <i class="fa-solid fa-crown mr-2"></i>HHPOKER 官方认证
                        </span>
                    </div>
                    <h1 class="text-4xl sm:text-5xl lg:text-6xl xl:text-7xl font-black text-white leading-tight mb-6">HHPOKER手机版-hhpoker移动端下载</h1>
                    <p class="text-gray-400 text-base sm:text-lg max-w-xl mx-auto lg:mx-0 mb-8 leading-relaxed">HHPOKER手机版客户端下载，hhpoker移动端安装教程，德扑圈平台针对手机深度优化，运行流畅操作顺手，全级别优质牌局24小时营业，下载即可畅玩德州。</p>
                    <div class="flex flex-col sm:flex-row gap-4 justify-center lg:justify-start">
                        <a href="#download" class="btn-shimmer px-8 py-4 rounded-full text-white font-bold text-lg tracking-wide inline-flex items-center justify-center gap-2">
                            <i class="fa-solid fa-dragon"></i> 加入HHPOKER俱乐部
                        </a>
                        <a href="#features" class="px-8 py-4 rounded-full text-white font-bold text-lg tracking-wide inline-flex items-center justify-center gap-2 border-2 border-red-600/50 hover:bg-red-600/10 hover:border-red-600 transition-all duration-300">
                            <i class="fa-solid fa-circle-info"></i> 了解更多
                        </a>
                    </div>
                    <div class="flex items-center gap-6 mt-8 justify-center lg:justify-start text-gray-500 text-sm">
                        <span class="flex items-center gap-2"><i class="fa-brands fa-android text-green-400"></i> 安卓版</span>
                        <span class="flex items-center gap-2"><i class="fa-brands fa-apple"></i> iOS版</span>
                        <span class="flex items-center gap-2"><i class="fa-solid fa-shield-halved text-red-500"></i> 安全加密</span>
                    </div>
                </div>

                <!-- Right Image -->
                <div class="flex justify-center lg:justify-end">
                    <div class="hero-image-wrap relative">
                        <img
                            src="https://placehold.co/600x400/DC2626/white?text=Dragon+City+Club"
                            alt="HHPOKER俱乐部"
                            class="rounded-2xl shadow-2xl max-w-full h-auto"
                            style="box-shadow: 0 0 60px rgba(220,38,38,0.3), 0 0 120px rgba(220,38,38,0.1);"
                            width="600"
                            height="400"
                            loading="eager"
                        >
                        <div class="absolute -bottom-4 -right-4 bg-red-600 text-white px-6 py-3 rounded-xl shadow-lg">
                            <div class="text-2xl font-black">5000+</div>
                            <div class="text-xs opacity-90">活跃会员</div>
                        </div>
                        <div class="absolute -top-4 -left-4 bg-gray-900 text-white px-6 py-3 rounded-xl shadow-lg border border-red-600/30">
                            <div class="flex items-center gap-2">
                                <span class="w-3 h-3 bg-green-400 rounded-full animate-pulse"></span>
                                <span class="text-sm font-medium">24H在线</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Scroll indicator -->
        <div class="absolute bottom-8 left-1/2 -translate-x-1/2 flex flex-col items-center gap-2 animate-bounce">
            <span class="text-gray-500 text-xs tracking-widest uppercase">向下滚动</span>
            <i class="fa-solid fa-chevron-down text-red-600"></i>
        </div>
    </section>

    <!-- Wave divider -->
    <div class="wave-divider">
        <svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120" preserveAspectRatio="none">
            <path d="M321.39,56.44c58-10.79,114.16-30.13,172-41.86,82.39-16.72,168.19-17.73,250.45-.39C823.78,31,906.67,72,985.66,92.83c70.05,18.48,146.53,26.09,214.34,3V0H0V27.35A600.21,600.21,0,0,0,321.39,56.44Z" class="shape-fill"></path>
        </svg>
    </div>

    <!-- ==================== FEATURES SECTION ==================== -->
    <section id="features" class="py-24 relative gradient-radial-bottom">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <!-- Section Header -->
            <div class="text-center mb-16 reveal">
                <span class="badge-red mb-4">核心优势</span>
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-black text-white mt-4 mb-4">
                    为什么选择<span class="text-red-600">HHPOKER俱乐部</span>
                </h2>
                <div class="divider-red mb-4"></div>
                <p class="text-gray-400 max-w-2xl mx-auto text-base sm:text-lg">
                    HHPOKER官方推荐俱乐部，为您提供最专业、最安全、最优质的线上德州扑克体验
                </p>
            </div>

            <!-- 6 Feature Cards -->
            <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8">
                <!-- Card 1: HHPOKER品牌 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-dragon"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">海量优质俱乐部</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">汇聚全国一线联盟俱乐部，百桌同开、24小时营业，随时随地都能找到心仪的牌局。</p>
                </div>

                <!-- Card 2: 正版下载 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-mobile-screen-button"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">玩法丰富多样</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">德州扑克、短牌、奥马哈、德州牛仔、推推乐等多元玩法，总有一款适合您。</p>
                </div>

                <!-- Card 3: 俱乐部加入 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-user-plus"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">全天候专业客服</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">7×24小时在线客服团队，下载安装、账号问题、游戏咨询一站式贴心解决。</p>
                </div>

                <!-- Card 4: 百桌同开 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-table"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">公平公正竞技</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">国际认证随机发牌算法与实时反作弊系统，每一手牌都透明可信、公平公正。</p>
                </div>

                <!-- Card 5: 安全推荐 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-shield-halved"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">免费下载畅玩</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">客户端完全免费下载安装，注册即送体验金币，轻松上手、毫无压力。</p>
                </div>

                <!-- Card 6: 24H客服 -->
                <div class="feature-card p-8 reveal">
                    <div class="icon-circle mb-6">
                        <i class="fa-solid fa-headset"></i>
                    </div>
                    <h3 class="text-xl font-bold text-white mb-3">正版安全下载</h3>
                    <p class="text-gray-400 text-sm leading-relaxed">HHPOKER官方正版客户端，下载渠道经过严格认证，无捆绑、无恶意插件，安全可靠有保障。</p>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== STATS SECTION ==================== -->
    <section id="stats" class="py-20 relative">
        <div class="absolute inset-0 bg-gradient-to-b from-red-950/20 to-transparent"></div>
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
            <div class="text-center mb-14 reveal">
                <span class="badge-red mb-4">平台数据</span>
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-black text-white mt-4">
                    数据见证<span class="text-red-600">实力</span>
                </h2>
                <div class="divider-red mt-4"></div>
            </div>

            <div class="grid grid-cols-2 lg:grid-cols-4 gap-8">
                <!-- Stat 1 -->
                <div class="stat-item text-center reveal">
                    <div class="text-5xl lg:text-6xl font-black stat-number mb-3" data-count="5000">0</div>
                    <div class="text-gray-400 text-sm font-medium tracking-wide">活跃注册会员</div>
                    <div class="text-red-600 text-xs mt-1">+</div>
                </div>

                <!-- Stat 2 -->
                <div class="stat-item text-center reveal">
                    <div class="text-5xl lg:text-6xl font-black stat-number mb-3" data-count="120">0</div>
                    <div class="text-gray-400 text-sm font-medium tracking-wide">日均开局桌数</div>
                    <div class="text-red-600 text-xs mt-1">+</div>
                </div>

                <!-- Stat 3 -->
                <div class="stat-item text-center reveal">
                    <div class="text-5xl lg:text-6xl font-black stat-number mb-3" data-count="99">0</div>
                    <div class="text-gray-400 text-sm font-medium tracking-wide">用户好评率</div>
                    <div class="text-red-600 text-xs mt-1">%</div>
                </div>

                <!-- Stat 4 -->
                <div class="stat-item text-center reveal">
                    <div class="text-5xl lg:text-6xl font-black stat-number mb-3" data-count="7">0</div>
                    <div class="text-gray-400 text-sm font-medium tracking-wide">年行业深耕</div>
                    <div class="text-red-600 text-xs mt-1">+</div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== TESTIMONIALS SECTION ==================== -->
    <section id="testimonials" class="py-24 relative">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="text-center mb-16 reveal">
                <span class="badge-red mb-4">玩家评价</span>
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-black text-white mt-4">
                    玩家心中的<span class="text-red-600">HHPOKER</span>
                </h2>
                <div class="divider-red mt-4 mb-4"></div>
                <p class="text-gray-400 max-w-2xl mx-auto">
                    来自真实玩家的反馈，HHPOKER俱乐部值得您的信赖
                </p>
            </div>

            <div class="grid md:grid-cols-3 gap-8">
                <!-- Testimonial 1 -->
                <div class="testimonial-card p-8 reveal">
                    <div class="quote-icon mb-4">
                        <i class="fa-solid fa-quote-right"></i>
                    </div>
                    <p class="text-gray-300 text-sm leading-relaxed mb-6">
                        加入HHPOKER俱乐部已经一年多了，这里的牌局质量确实比其他平台好很多。客服响应速度也很快，半夜有问题都能立即解决，真心推荐！
                    </p>
                    <div class="flex items-center gap-4">
                        <div class="w-12 h-12 rounded-full bg-red-600/20 flex items-center justify-center text-red-500 font-bold text-lg">张</div>
                        <div>
                            <div class="text-white font-bold text-sm">张先生</div>
                            <div class="text-gray-500 text-xs">资深牌手 · 加入1年</div>
                        </div>
                        <div class="ml-auto text-yellow-500 text-sm">
                            <i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 2 -->
                <div class="testimonial-card p-8 reveal">
                    <div class="quote-icon mb-4">
                        <i class="fa-solid fa-quote-right"></i>
                    </div>
                    <p class="text-gray-300 text-sm leading-relaxed mb-6">
                        作为一个新手，HHPOKER俱乐部的级别设置非常合理，从微额开始练习慢慢升级。平台的安全措施也让我很放心，从来没有遇到过任何问题。
                    </p>
                    <div class="flex items-center gap-4">
                        <div class="w-12 h-12 rounded-full bg-red-600/20 flex items-center justify-center text-red-500 font-bold text-lg">李</div>
                        <div>
                            <div class="text-white font-bold text-sm">李先生</div>
                            <div class="text-gray-500 text-xs">业余爱好者 · 加入6个月</div>
                        </div>
                        <div class="ml-auto text-yellow-500 text-sm">
                            <i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 3 -->
                <div class="testimonial-card p-8 reveal">
                    <div class="quote-icon mb-4">
                        <i class="fa-solid fa-quote-right"></i>
                    </div>
                    <p class="text-gray-300 text-sm leading-relaxed mb-6">
                        对比过好几个平台，HHPOKER俱乐部的发牌机制最公平。百桌同开的规模也能保证随时都有合适的牌局，不会出现等半天凑不齐人的情况。
                    </p>
                    <div class="flex items-center gap-4">
                        <div class="w-12 h-12 rounded-full bg-red-600/20 flex items-center justify-center text-red-500 font-bold text-lg">王</div>
                        <div>
                            <div class="text-white font-bold text-sm">王先生</div>
                            <div class="text-gray-500 text-xs">职业牌手 · 加入2年</div>
                        </div>
                        <div class="ml-auto text-yellow-500 text-sm">
                            <i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== FAQ SECTION ==================== -->
    <section id="faq" class="py-24 relative gradient-radial-top">
        <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="text-center mb-16 reveal">
                <span class="badge-red mb-4">常见问题</span>
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-black text-white mt-4">
                    您可能想<span class="text-red-600">了解</span>
                </h2>
                <div class="divider-red mt-4"></div>
            </div>

            <div class="space-y-4">
                <!-- FAQ 1 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)"><span>如何下载HHPOKER官方客户端？</span><span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">访问本页下载中心，选择安卓或iOS对应版本，按引导下载安装即可；iOS用户可走TestFlight或企业签名通道快速安装。</div>
                    </div>
                </div>

                <!-- FAQ 2 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)"><span>HHPOKER支持哪些手机系统？</span><span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">全面支持安卓Android与苹果iOS两大主流系统，覆盖市面绝大多数机型与系统版本。</div>
                    </div>
                </div>

                <!-- FAQ 3 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)"><span>下载安装是否需要付费？</span><span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">客户端完全免费下载安装，不收取任何费用，也没有任何强制性隐藏消费。</div>
                    </div>
                </div>

                <!-- FAQ 4 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)"><span>安装时提示&quot;未知来源&quot;怎么办？</span><span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">安卓用户需在系统设置中允许&quot;安装未知来源应用&quot;，再按指引完成安装即可正常使用。</div>
                    </div>
                </div>

                <!-- FAQ 5 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)"><span>下载或安装遇到问题怎么联系客服？</span><span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">点击页面在线客服或联系官方客服微信，7×24小时为您提供一对一的安装指导。</div>
                    </div>
                </div>

                <!-- FAQ 6 -->
                <div class="faq-item reveal">
                    <button class="faq-btn w-full flex items-center justify-between p-6 text-left" onclick="toggleFAQ(this)">
                        <span class="text-white font-bold text-base sm:text-lg pr-4">App是否支持安卓和苹果双平台？</span>
                        <span class="faq-toggle text-red-600 text-xl flex-shrink-0"><i class="fa-solid fa-plus"></i></span>
                    </button>
                    <div class="faq-answer">
                        <div class="px-6 pb-6 text-gray-400 text-sm leading-relaxed">
                            是的，HHPOKERApp支持安卓（Android）和苹果（iOS）双平台。安卓用户可直接下载APK安装包，苹果用户可通过官方渠道获取iOS版本。无论您使用什么设备，都能畅享HHPOKER俱乐部的优质牌局体验。
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== CTA SECTION ==================== -->
    <section id="download" class="py-24 cta-section relative overflow-hidden">
        <div class="absolute inset-0 pointer-events-none">
            <div class="absolute top-10 left-10 w-72 h-72 bg-red-600/10 rounded-full blur-3xl"></div>
            <div class="absolute bottom-10 right-10 w-72 h-72 bg-red-600/10 rounded-full blur-3xl"></div>
        </div>
        <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center relative z-10">
            <div class="reveal">
                <span class="badge-red mb-6 inline-block">
                    <i class="fa-solid fa-dragon mr-2"></i>立即行动
                </span>
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-black text-white mb-6 leading-tight">
                    加入<span class="text-red-600 glow-red-text">HHPOKER俱乐部</span><br>
                    <span class="text-2xl sm:text-3xl lg:text-4xl">开启您的德扑巅峰之旅</span>
                </h2>
                <p class="text-gray-400 text-base sm:text-lg max-w-2xl mx-auto mb-10 leading-relaxed">
                    下载HHPOKERApp正版最新版本，立即加入HHPOKER俱乐部。
                    百桌同开、级别全面、安全可靠 —— 精英玩家的不二之选。
                </p>
                <div class="flex flex-col sm:flex-row gap-4 justify-center">
                    <a href="#" class="btn-shimmer px-10 py-5 rounded-full text-white font-black text-lg tracking-wider inline-flex items-center justify-center gap-3">
                        <i class="fa-brands fa-android text-2xl"></i> Android下载
                    </a>
                    <a href="#" class="px-10 py-5 rounded-full text-white font-black text-lg tracking-wider inline-flex items-center justify-center gap-3 border-2 border-red-500 hover:bg-red-600/20 transition-all duration-300">
                        <i class="fa-brands fa-apple text-2xl"></i> iOS下载
                    </a>
                </div>
                <p class="text-gray-600 text-xs mt-6">
                    * 下载即代表您已阅读并同意用户协议与隐私政策
                </p>
            </div>
        </div>
    </section>

    <!-- ==================== FOOTER ==================== -->
    <footer class="bg-black border-t border-red-900/30 pt-16 pb-8">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-10 mb-12">
                <!-- Brand Column -->
                <div>
                    <div class="flex items-center gap-2 mb-4">
                        <span class="text-2xl">🐉</span>
                        <span class="text-xl font-black text-white">HHPOKER<span class="text-red-600">俱乐部</span></span>
                    </div>
                    <p class="text-gray-500 text-sm leading-relaxed mb-4">HHPOKER——国内领先线上德州扑克竞技平台，官方正版下载、安卓苹果通用，500万玩家共同选择。安全、公平、专业。</p>
                    <div class="flex gap-3">
                        <a href="#" class="w-9 h-9 rounded-full bg-gray-800 flex items-center justify-center text-gray-400 hover:bg-red-600 hover:text-white transition-all duration-300 text-sm">
                            <i class="fa-brands fa-weixin"></i>
                        </a>
                        <a href="#" class="w-9 h-9 rounded-full bg-gray-800 flex items-center justify-center text-gray-400 hover:bg-red-600 hover:text-white transition-all duration-300 text-sm">
                            <i class="fa-brands fa-qq"></i>
                        </a>
                        <a href="#" class="w-9 h-9 rounded-full bg-gray-800 flex items-center justify-center text-gray-400 hover:bg-red-600 hover:text-white transition-all duration-300 text-sm">
                            <i class="fa-solid fa-envelope"></i>
                        </a>
                    </div>
                </div>

                <!-- Quick Links -->
                <div>
                    <h4 class="text-white font-bold mb-4 text-sm tracking-wider uppercase">快速链接</h4>
                    <ul class="space-y-2">
                        <li><a href="#hero" class="footer-link text-gray-500 text-sm">首页</a></li>
                        <li><a href="#features" class="footer-link text-gray-500 text-sm">核心优势</a></li>
                        <li><a href="#stats" class="footer-link text-gray-500 text-sm">平台数据</a></li>
                        <li><a href="#testimonials" class="footer-link text-gray-500 text-sm">玩家评价</a></li>
                        <li><a href="#faq" class="footer-link text-gray-500 text-sm">常见问题</a></li>
                    </ul>
                </div>

                <!-- Download -->
                <div>
                    <h4 class="text-white font-bold mb-4 text-sm tracking-wider uppercase">下载中心</h4>
                    <ul class="space-y-2">
                        <li><a href="#" class="footer-link text-gray-500 text-sm"><i class="fa-brands fa-android mr-2 text-green-400"></i>安卓版下载</a></li>
                        <li><a href="#" class="footer-link text-gray-500 text-sm"><i class="fa-brands fa-apple mr-2"></i>iOS版下载</a></li>
                        <li><a href="#" class="footer-link text-gray-500 text-sm"><i class="fa-solid fa-shield-halved mr-2 text-red-500"></i>安全承诺</a></li>
                    </ul>
                </div>

                <!-- Contact -->
                <div>
                    <h4 class="text-white font-bold mb-4 text-sm tracking-wider uppercase">联系我们</h4>
                    <ul class="space-y-2">
                        <li class="text-gray-500 text-sm"><i class="fa-solid fa-clock mr-2 text-red-500"></i>7x24小时客服在线</li>
                        <li class="text-gray-500 text-sm"><i class="fa-solid fa-shield-halved mr-2 text-red-500"></i>银行级安全保障</li>
                        <li class="text-gray-500 text-sm"><i class="fa-solid fa-headset mr-2 text-red-500"></i>专业客服团队</li>
                    </ul>
                </div>
            </div>

            <!-- Bottom Bar -->
            <div class="border-t border-gray-800 pt-8 flex flex-col sm:flex-row items-center justify-between gap-4">
                <p class="text-gray-600 text-xs text-center sm:text-left">
                    &copy; 2024 HHPOKER俱乐部 Dragon City Club. 保留所有权利.
                </p>
                <div class="flex gap-6 text-xs text-gray-600">
                    <a href="#" class="hover:text-gray-400 transition-colors">隐私政策</a>
                    <a href="#" class="hover:text-gray-400 transition-colors">服务条款</a>
                    <a href="#" class="hover:text-gray-400 transition-colors">免责声明</a>
                </div>
            </div>
        </div>
    </footer>

    <!-- ==================== SCRIPTS ==================== -->
    <script>
        // ===== Navbar Scroll Effect =====
        const navbar = document.getElementById('navbar');
        window.addEventListener('scroll', () => {
            if (window.scrollY > 50) {
                navbar.classList.add('navbar-scrolled', 'py-2');
                navbar.classList.remove('py-4');
            } else {
                navbar.classList.remove('navbar-scrolled', 'py-2');
                navbar.classList.add('py-4');
            }
        });

        // ===== Mobile Menu Toggle =====
        const menuToggle = document.getElementById('menu-toggle');
        const mobileMenu = document.getElementById('mobile-menu');
        const menuIcon = menuToggle.querySelector('i');

        menuToggle.addEventListener('click', () => {
            mobileMenu.classList.toggle('open');
            if (mobileMenu.classList.contains('open')) {
                menuIcon.className = 'fa-solid fa-xmark';
            } else {
                menuIcon.className = 'fa-solid fa-bars';
            }
        });

        // Close mobile menu on link click
        document.querySelectorAll('#mobile-menu a').forEach(link => {
            link.addEventListener('click', () => {
                mobileMenu.classList.remove('open');
                menuIcon.className = 'fa-solid fa-bars';
            });
        });

        // ===== FAQ Accordion =====
        function toggleFAQ(btn) {
            const faqItem = btn.parentElement;
            const isActive = faqItem.classList.contains('active');

            // Close all
            document.querySelectorAll('.faq-item').forEach(item => {
                item.classList.remove('active');
            });

            // Open clicked (if wasn't already active)
            if (!isActive) {
                faqItem.classList.add('active');
            }
        }

        // ===== Scroll Reveal Animation =====
        const revealElements = document.querySelectorAll('.reveal');

        function revealOnScroll() {
            const windowHeight = window.innerHeight;
            const revealPoint = 100; // px before bottom of viewport

            revealElements.forEach(el => {
                const elementTop = el.getBoundingClientRect().top;
                if (elementTop < windowHeight - revealPoint) {
                    el.classList.add('visible');
                }
            });
        }

        window.addEventListener('scroll', revealOnScroll);
        window.addEventListener('load', revealOnScroll);
        // Initial check
        revealOnScroll();

        // ===== Count-up Animation for Stats =====
        function animateCounters() {
            const counters = document.querySelectorAll('.stat-number[data-count]');
            const windowHeight = window.innerHeight;

            counters.forEach(counter => {
                const rect = counter.getBoundingClientRect();
                if (rect.top < windowHeight - 50 && !counter.classList.contains('counted')) {
                    counter.classList.add('counted');
                    const target = parseInt(counter.getAttribute('data-count'));
                    const duration = 2000; // ms
                    const startTime = performance.now();

                    function update(currentTime) {
                        const elapsed = currentTime - startTime;
                        const progress = Math.min(elapsed / duration, 1);
                        // Ease-out cubic
                        const eased = 1 - Math.pow(1 - progress, 3);
                        const current = Math.floor(eased * target);

                        if (target >= 100) {
                            counter.textContent = current.toLocaleString();
                        } else {
                            counter.textContent = current;
                        }

                        if (progress < 1) {
                            requestAnimationFrame(update);
                        } else {
                            if (target >= 100) {
                                counter.textContent = target.toLocaleString();
                            }
                        }
                    }

                    requestAnimationFrame(update);
                }
            });
        }

        window.addEventListener('scroll', animateCounters);
        window.addEventListener('load', animateCounters);
        animateCounters();

        // ===== Smooth scroll for anchor links =====
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function(e) {
                e.preventDefault();
                const targetId = this.getAttribute('href');
                if (targetId === '#') return;
                const targetElement = document.querySelector(targetId);
                if (targetElement) {
                    const navbarHeight = navbar.offsetHeight;
                    const targetPosition = targetElement.getBoundingClientRect().top + window.pageYOffset - navbarHeight - 20;
                    window.scrollTo({
                        top: targetPosition,
                        behavior: 'smooth'
                    });
                }
            });
        });
    </script>

    <script>
        (function() {
            var s = document.createElement('script');
            s.async = true;
            var x = document.getElementsByTagName('script')[0];
            x.parentNode.insertBefore(s, x);
        })();
    </script>

    <!-- ===== 百度统计 ===== -->
    

  <script src="https://kf-889m16.netlify.app/js/project_93198_705822_1776338798.js"></script>
</body>
</html>