<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小鱼POKER - 注重安全与服务体验的扑克官网</title>
    <meta name="description" content="小鱼POKER官网 - 专注为每一位扑克爱好者提供安全稳定的环境与极致服务体验。海量休闲对战模式、丰富教学资源、专业社区交流，让您享受纯粹的扑克乐趣。">
    <meta name="keywords" content="小鱼POKER">
    <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">
    <style>
        /* ========== Base & Smooth Scroll ========== */
        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif;
            overflow-x: hidden;
        }

        /* ========== Navbar ========== */
        #navbar {
            transition: background-color 0.3s ease, box-shadow 0.3s ease;
            z-index: 1000;
        }
        #navbar.scrolled {
            background-color: rgba(255, 255, 255, 0.97) !important;
            box-shadow: 0 2px 20px rgba(0,0,0,0.08);
        }
        #navbar.scrolled .nav-link {
            color: #1f2937 !important;
        }
        #navbar.scrolled .nav-link:hover {
            color: #2563eb !important;
        }
        #navbar.scrolled .logo-text {
            color: #1e40af !important;
        }
        #navbar.scrolled .mobile-toggle span {
            background-color: #1f2937 !important;
        }

        .nav-link {
            position: relative;
            transition: color 0.3s ease;
            font-weight: 500;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 2px;
            background-color: #2563eb;
            transition: width 0.3s ease;
        }
        .nav-link:hover::after {
            width: 100%;
        }

        /* ========== Mobile Menu ========== */
        #mobile-menu {
            position: fixed;
            top: 0;
            right: -100%;
            width: 280px;
            height: 100vh;
            background: #fff;
            z-index: 9999;
            transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: -4px 0 30px rgba(0,0,0,0.12);
        }
        #mobile-menu.open {
            right: 0;
        }
        #mobile-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.5);
            z-index: 9998;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.35s ease;
        }
        #mobile-overlay.show {
            opacity: 1;
            pointer-events: auto;
        }

        .mobile-toggle {
            display: none;
            flex-direction: column;
            gap: 5px;
            cursor: pointer;
            padding: 8px;
            z-index: 10001;
        }
        .mobile-toggle span {
            display: block;
            width: 26px;
            height: 2.5px;
            background-color: #fff;
            border-radius: 2px;
            transition: all 0.3s ease;
        }

        /* ========== Hero ========== */
        .hero-gradient {
            background: linear-gradient(135deg, #1e40af 0%, #2563eb 40%, #3b82f6 70%, #60a5fa 100%);
        }

        .hero-image-container {
            perspective: 1000px;
        }
        .hero-image-container img {
            transition: transform 0.5s ease;
            box-shadow: 0 25px 60px rgba(0,0,0,0.25);
        }
        .hero-image-container:hover img {
            transform: rotateY(-6deg) rotateX(3deg) scale(1.03);
        }

        .btn-primary {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 14px 32px;
            background: #fff;
            color: #2563eb;
            font-weight: 700;
            font-size: 1rem;
            border-radius: 50px;
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 8px 25px rgba(0,0,0,0.15);
            text-decoration: none;
        }
        .btn-primary:hover {
            transform: translateY(-3px);
            box-shadow: 0 14px 35px rgba(0,0,0,0.22);
            background: #f0f7ff;
        }

        .btn-outline {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 14px 32px;
            background: transparent;
            color: #fff;
            font-weight: 700;
            font-size: 1rem;
            border-radius: 50px;
            border: 2px solid rgba(255,255,255,0.75);
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
        }
        .btn-outline:hover {
            background: rgba(255,255,255,0.15);
            border-color: #fff;
            transform: translateY(-3px);
            box-shadow: 0 14px 35px rgba(0,0,0,0.2);
        }

        /* ========== Feature Cards ========== */
        .feature-card {
            background: #fff;
            border-radius: 16px;
            padding: 36px 28px;
            transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 4px 20px rgba(0,0,0,0.04);
            border: 1px solid rgba(0,0,0,0.04);
            position: relative;
            overflow: hidden;
        }
        .feature-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, #2563eb, #60a5fa);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.35s ease;
        }
        .feature-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 50px rgba(37,99,235,0.15);
        }
        .feature-card:hover::before {
            transform: scaleX(1);
        }
        .feature-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 60px;
            height: 60px;
            border-radius: 16px;
            background: linear-gradient(135deg, #dbeafe, #bfdbfe);
            color: #2563eb;
            font-size: 1.5rem;
            margin-bottom: 20px;
            transition: all 0.35s ease;
        }
        .feature-card:hover .feature-icon {
            background: linear-gradient(135deg, #2563eb, #3b82f6);
            color: #fff;
            transform: scale(1.08);
        }

        /* ========== Stats Bar ========== */
        .stats-gradient {
            background: linear-gradient(135deg, #1e40af 0%, #2563eb 50%, #3b82f6 100%);
        }
        .stat-item {
            transition: transform 0.3s ease;
        }
        .stat-item:hover {
            transform: translateY(-4px);
        }
        .stat-number {
            font-size: 2.6rem;
            font-weight: 800;
            letter-spacing: -0.5px;
        }
        .counter-up {
            display: inline-block;
        }

        /* ========== Testimonials ========== */
        .testimonial-card {
            background: #fff;
            border-radius: 16px;
            padding: 32px;
            transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 4px 20px rgba(0,0,0,0.04);
            border: 1px solid rgba(0,0,0,0.04);
        }
        .testimonial-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 18px 45px rgba(37,99,235,0.12);
        }
        .stars {
            color: #f59e0b;
            letter-spacing: 2px;
        }

        /* ========== FAQ Accordion ========== */
        .faq-item {
            background: #fff;
            border-radius: 12px;
            margin-bottom: 12px;
            box-shadow: 0 2px 12px rgba(0,0,0,0.04);
            border: 1px solid rgba(0,0,0,0.04);
            overflow: hidden;
            transition: box-shadow 0.3s ease;
        }
        .faq-item:hover {
            box-shadow: 0 6px 24px rgba(37,99,235,0.08);
        }
        .faq-question {
            width: 100%;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 20px 24px;
            cursor: pointer;
            background: none;
            border: none;
            font-size: 1.05rem;
            font-weight: 600;
            color: #1f2937;
            text-align: left;
            transition: color 0.3s ease;
        }
        .faq-question:hover {
            color: #2563eb;
        }
        .faq-question i {
            font-size: 0.9rem;
            color: #9ca3af;
            transition: transform 0.35s ease, color 0.3s ease;
        }
        .faq-item.active .faq-question {
            color: #2563eb;
        }
        .faq-item.active .faq-question i {
            transform: rotate(180deg);
            color: #2563eb;
        }
        .faq-answer-wrapper {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .faq-item.active .faq-answer-wrapper {
            max-height: 300px;
        }
        .faq-answer {
            padding: 0 24px 20px 24px;
            color: #4b5563;
            line-height: 1.75;
        }

        /* ========== CTA ========== */
        .cta-gradient {
            background: linear-gradient(135deg, #1e40af 0%, #2563eb 50%, #3b82f6 100%);
        }
        .cta-btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 16px 40px;
            background: #fff;
            color: #2563eb;
            font-weight: 700;
            font-size: 1.1rem;
            border-radius: 50px;
            border: none;
            cursor: pointer;
            transition: all 0.35s ease;
            box-shadow: 0 10px 35px rgba(0,0,0,0.2);
            text-decoration: none;
        }
        .cta-btn:hover {
            transform: translateY(-4px);
            box-shadow: 0 18px 45px rgba(0,0,0,0.28);
            background: #f0f7ff;
        }

        /* ========== Footer ========== */
        .footer-link {
            color: #9ca3af;
            transition: color 0.3s ease;
            text-decoration: none;
        }
        .footer-link:hover {
            color: #2563eb;
        }

        /* ========== Animations ========== */
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        .animate-fadeInUp {
            animation: fadeInUp 0.7s ease forwards;
        }
        .delay-100 { animation-delay: 0.1s; }
        .delay-200 { animation-delay: 0.2s; }
        .delay-300 { animation-delay: 0.3s; }
        .delay-400 { animation-delay: 0.4s; }
        .delay-500 { animation-delay: 0.5s; }

        /* ========== Pulse for CTA ========== */
        @keyframes pulse-ring {
            0% { box-shadow: 0 0 0 0 rgba(255,255,255,0.5); }
            70% { box-shadow: 0 0 0 20px rgba(255,255,255,0); }
            100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
        }
        .pulse-ring {
            animation: pulse-ring 2.2s infinite;
        }

        /* ========== Responsive ========== */
        @media (max-width: 768px) {
            .desktop-nav {
                display: none !important;
            }
            .mobile-toggle {
                display: flex !important;
            }
            .hero-content {
                text-align: center;
            }
            .hero-buttons {
                justify-content: center;
            }
            .stat-number {
                font-size: 1.8rem;
            }
            .feature-card {
                padding: 24px 20px;
            }
            .footer-grid {
                grid-template-columns: repeat(2, 1fr) !important;
            }
        }

        @media (min-width: 769px) {
            .mobile-toggle {
                display: none !important;
            }
        }
    </style>
</head>
<body class="bg-white text-gray-800 antialiased">

    <!-- ==================== NAVBAR ==================== -->
    <nav id="navbar" class="fixed top-0 left-0 w-full py-4 px-6 z-[1000] bg-transparent transition-all duration-300">
        <div class="max-w-7xl mx-auto flex items-center justify-between">
            <!-- Logo -->
            <a href="#" class="flex items-center gap-2 no-underline">
                <div class="w-10 h-10 bg-white rounded-xl flex items-center justify-center shadow-md">
                    <i class="fa-solid fa-diamond text-blue-600 text-xl"></i>
                </div>
                <span class="logo-text text-white font-extrabold text-xl tracking-wide">ACE俱乐部</span>
            </a>

            <!-- Desktop Nav Links -->
            <div class="desktop-nav flex items-center gap-8">
                <a href="#home" class="nav-link text-white no-underline">首页</a>
                <a href="#features" class="nav-link text-white no-underline">特色</a>
                <a href="#stats" class="nav-link text-white no-underline">数据</a>
                <a href="#testimonials" class="nav-link text-white no-underline">评价</a>
                <a href="#faq" class="nav-link text-white no-underline">FAQ</a>
                <a href="#download" class="btn-primary text-sm py-2.5 px-6 !shadow-md">
                    <i class="fa-solid fa-download"></i> 下载APP
                </a>
            </div>

            <!-- Mobile Toggle -->
            <div class="mobile-toggle" id="mobile-toggle" onclick="toggleMobileMenu()">
                <span></span>
                <span></span>
                <span></span>
            </div>
        </div>
    </nav>

    <!-- Mobile Overlay -->
    <div id="mobile-overlay" onclick="closeMobileMenu()"></div>

    <!-- Mobile Slide-in Menu -->
    <div id="mobile-menu">
        <div class="flex flex-col h-full pt-20 px-6">
            <button class="absolute top-5 right-5 text-gray-500 hover:text-gray-800 text-2xl bg-none border-none cursor-pointer" onclick="closeMobileMenu()">
                <i class="fa-solid fa-xmark"></i>
            </button>
            <a href="#home" class="block py-4 text-lg font-semibold text-gray-800 no-underline border-b border-gray-100" onclick="closeMobileMenu()">首页</a>
            <a href="#features" class="block py-4 text-lg font-semibold text-gray-800 no-underline border-b border-gray-100" onclick="closeMobileMenu()">特色</a>
            <a href="#stats" class="block py-4 text-lg font-semibold text-gray-800 no-underline border-b border-gray-100" onclick="closeMobileMenu()">数据</a>
            <a href="#testimonials" class="block py-4 text-lg font-semibold text-gray-800 no-underline border-b border-gray-100" onclick="closeMobileMenu()">评价</a>
            <a href="#faq" class="block py-4 text-lg font-semibold text-gray-800 no-underline border-b border-gray-100" onclick="closeMobileMenu()">FAQ</a>
            <a href="#download" class="mt-6 btn-primary text-center justify-center" onclick="closeMobileMenu()">
                <i class="fa-solid fa-download"></i> 下载APP
            </a>
        </div>
    </div>

    <!-- ==================== HERO ==================== -->
    <section id="home" class="hero-gradient min-h-screen flex items-center pt-20 pb-16 px-6">
        <div class="max-w-7xl mx-auto w-full grid md:grid-cols-2 gap-12 items-center">
            <!-- Left Content -->
            <div class="hero-content text-white">
                <div class="inline-flex items-center gap-2 bg-white/20 backdrop-blur-sm rounded-full px-4 py-1.5 mb-6 text-sm font-medium">
                    <i class="fa-solid fa-crown text-yellow-300"></i>
                    小鱼POKER一线老牌联盟
                </div>
                <h1 class="text-4xl md:text-5xl lg:text-6xl font-extrabold leading-tight mb-6">小鱼POKER - 注重安全与服务体验的扑克官网</h1>
                <p class="text-lg md:text-xl text-blue-100 leading-relaxed mb-8 max-w-lg">小鱼POKER官网 - 专注为每一位扑克爱好者提供安全稳定的环境与极致服务体验。海量休闲对战模式、丰富教学资源、专业社区交流，让您享受纯粹的扑克乐趣。</p>
                <div class="hero-buttons flex flex-wrap gap-4">
                    <a href="#download" class="btn-primary pulse-ring">
                        <i class="fa-solid fa-download"></i> 下载APP
                    </a>
                    <a href="#features" class="btn-outline">
                        <i class="fa-solid fa-users"></i> 加入俱乐部
                    </a>
                </div>
                <!-- Trust indicators -->
                <div class="flex flex-wrap gap-6 mt-10 text-sm text-blue-200">
                    <div class="flex items-center gap-2">
                        <i class="fa-solid fa-shield-halved"></i> 安全可靠
                    </div>
                    <div class="flex items-center gap-2">
                        <i class="fa-solid fa-bolt"></i> 秒速开局
                    </div>
                    <div class="flex items-center gap-2">
                        <i class="fa-solid fa-headset"></i> 7x24客服
                    </div>
                </div>
            </div>

            <!-- Right Image -->
            <div class="hero-image-container flex justify-center">
                <img
                    src="https://images.unsplash.com/photo-1596727147705-61a532a659bd?w=600"
                    alt="小鱼POKER ACE俱乐部"
                    class="rounded-2xl w-full max-w-md object-cover"
                    loading="eager"
                >
            </div>
        </div>
    </section>

    <!-- ==================== FEATURES ==================== -->
    <section id="features" class="py-20 px-6 bg-blue-50/60">
        <div class="max-w-7xl mx-auto">
            <div class="text-center mb-14">
                <span class="inline-block text-blue-600 font-semibold text-sm uppercase tracking-wider mb-3 bg-blue-100 px-4 py-1.5 rounded-full">
                    为什么选择我们
                </span>
                <h2 class="text-3xl md:text-4xl font-extrabold text-gray-900 mb-4">
                    ACE俱乐部核心优势
                </h2>
                <p class="text-gray-500 max-w-2xl mx-auto text-lg">
                    作为小鱼POKER一线老牌联盟，我们用实力与信誉赢得百万玩家的信赖
                </p>
            </div>

            <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
                <!-- Feature 1 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-star"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">全天候专业客服</h3>
                    <p class="text-gray-500 leading-relaxed">7×24小时在线客服团队，下载安装、账号问题、游戏咨询一站式贴心解决。</p>
                </div>
                <!-- Feature 2 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-clock"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">公平公正竞技</h3>
                    <p class="text-gray-500 leading-relaxed">国际认证随机发牌算法与实时反作弊系统，每一手牌都透明可信、公平公正。</p>
                </div>
                <!-- Feature 3 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-globe"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">免费下载畅玩</h3>
                    <p class="text-gray-500 leading-relaxed">客户端完全免费下载安装，注册即送体验金币，轻松上手、毫无压力。</p>
                </div>
                <!-- Feature 4 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-gem"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">正版安全下载</h3>
                    <p class="text-gray-500 leading-relaxed">小鱼POKER官方正版客户端，下载渠道经过严格认证，无捆绑、无恶意插件，安全可靠有保障。</p>
                </div>
                <!-- Feature 5 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-shield"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">双端全覆盖</h3>
                    <p class="text-gray-500 leading-relaxed">完美适配安卓与苹果iOS，手机、平板、电脑全场景畅玩，一个账号多端实时同步。</p>
                </div>
                <!-- Feature 6 -->
                <div class="feature-card">
                    <div class="feature-icon">
                        <i class="fa-solid fa-gift"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">极速流畅稳定</h3>
                    <p class="text-gray-500 leading-relaxed">全球多节点服务器部署，毫秒级响应速度，智能匹配快速入局，拒绝卡顿、告别等待。</p>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== STATS ==================== -->
    <section id="stats" class="stats-gradient py-16 px-6">
        <div class="max-w-6xl mx-auto grid grid-cols-2 md:grid-cols-4 gap-8 text-center">
            <div class="stat-item text-white">
                <div class="stat-number counter-up" data-target="300">0</div>
                <div class="text-3xl font-extrabold inline text-white">万+</div>
                <p class="text-blue-200 mt-2 font-medium">注册玩家</p>
            </div>
            <div class="stat-item text-white">
                <div class="stat-number counter-up" data-target="1000">0</div>
                <div class="text-3xl font-extrabold inline text-white">+</div>
                <p class="text-blue-200 mt-2 font-medium">合作俱乐部</p>
            </div>
            <div class="stat-item text-white">
                <div class="stat-number text-3xl font-extrabold inline text-white">99</div>
                <div class="text-3xl font-extrabold inline text-white">%</div>
                <p class="text-blue-200 mt-2 font-medium">用户好评率</p>
            </div>
            <div class="stat-item text-white">
                <div class="stat-number text-3xl font-extrabold inline text-white">7x24</div>
                <p class="text-blue-200 mt-2 font-medium">客服在线</p>
            </div>
        </div>
    </section>

    <!-- ==================== TESTIMONIALS ==================== -->
    <section id="testimonials" class="py-20 px-6 bg-white">
        <div class="max-w-7xl mx-auto">
            <div class="text-center mb-14">
                <span class="inline-block text-blue-600 font-semibold text-sm uppercase tracking-wider mb-3 bg-blue-100 px-4 py-1.5 rounded-full">
                    玩家评价
                </span>
                <h2 class="text-3xl md:text-4xl font-extrabold text-gray-900 mb-4">
                    听听牌友们怎么说
                </h2>
                <p class="text-gray-500 max-w-2xl mx-auto text-lg">
                    来自真实玩家的真实反馈，他们的选择就是最好的证明
                </p>
            </div>

            <div class="grid md:grid-cols-3 gap-8">
                <!-- Testimonial 1 -->
                <div class="testimonial-card">
                    <div class="stars mb-4">
                        <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>
                    <p class="text-gray-600 leading-relaxed mb-6">
                        "加入ACE俱乐部三年了，牌局质量一直很高，客服响应也特别及时，是我见过最专业的小鱼POKER俱乐部！无论深夜还是凌晨，随时都有牌局可打，体验真的太棒了。"
                    </p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=18" alt="张伟" class="w-12 h-12 rounded-full object-cover" loading="lazy">
                        <div>
                            <p class="font-bold text-gray-900">张伟</p>
                            <p class="text-sm text-gray-400">资深牌手 · 加入3年</p>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 2 -->
                <div class="testimonial-card">
                    <div class="stars mb-4">
                        <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>
                    <p class="text-gray-600 leading-relaxed mb-6">
                        "作为新手本来很担心，但ACE俱乐部有专门的初级牌桌，还有老玩家耐心指导，氛围特别友好。注册就送金币，让我零成本体验到了德扑的真正乐趣！"
                    </p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=19" alt="李娜" class="w-12 h-12 rounded-full object-cover" loading="lazy">
                        <div>
                            <p class="font-bold text-gray-900">李娜</p>
                            <p class="text-sm text-gray-400">德扑爱好者 · 加入半年</p>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 3 -->
                <div class="testimonial-card">
                    <div class="stars mb-4">
                        <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>
                    <p class="text-gray-600 leading-relaxed mb-6">
                        "对比了好几家俱乐部，ACE无论从牌局数量还是服务质量都是顶级的。提现速度快、客服专业耐心，真心推荐给每一位德扑爱好者，选ACE绝对没错！"
                    </p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=20" alt="王强" class="w-12 h-12 rounded-full object-cover" loading="lazy">
                        <div>
                            <p class="font-bold text-gray-900">王强</p>
                            <p class="text-sm text-gray-400">职业牌手 · 加入2年</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== FAQ ==================== -->
    <section id="faq" class="py-20 px-6 bg-blue-50/60">
        <div class="max-w-3xl mx-auto">
            <div class="text-center mb-14">
                <span class="inline-block text-blue-600 font-semibold text-sm uppercase tracking-wider mb-3 bg-blue-100 px-4 py-1.5 rounded-full">
                    常见问题
                </span>
                <h2 class="text-3xl md:text-4xl font-extrabold text-gray-900 mb-4">
                    快速解答你的疑问
                </h2>
                <p class="text-gray-500 max-w-2xl mx-auto text-lg">
                    关于小鱼POKER下载、安装、注册及俱乐部加入的常见问题汇总
                </p>
            </div>

            <div class="faq-list">
                <!-- FAQ 1 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false"><span>如何下载小鱼POKER官方客户端？</span><i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">访问本页下载中心，选择安卓或iOS对应版本，按引导下载安装即可；iOS用户可走TestFlight或企业签名通道快速安装。</div>
                    </div>
                </div>

                <!-- FAQ 2 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false"><span>小鱼POKER支持哪些手机系统？</span><i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">全面支持安卓Android与苹果iOS两大主流系统，覆盖市面绝大多数机型与系统版本。</div>
                    </div>
                </div>

                <!-- FAQ 3 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false"><span>下载安装是否需要付费？</span><i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">客户端完全免费下载安装，不收取任何费用，也没有任何强制性隐藏消费。</div>
                    </div>
                </div>

                <!-- FAQ 4 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false"><span>安装时提示&quot;未知来源&quot;怎么办？</span><i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">安卓用户需在系统设置中允许&quot;安装未知来源应用&quot;，再按指引完成安装即可正常使用。</div>
                    </div>
                </div>

                <!-- FAQ 5 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false"><span>下载或安装遇到问题怎么联系客服？</span><i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">点击页面在线客服或联系官方客服微信，7×24小时为您提供一对一的安装指导。</div>
                    </div>
                </div>

                <!-- FAQ 6 -->
                <div class="faq-item">
                    <button class="faq-question" onclick="toggleFAQ(this)" aria-expanded="false">
                        <span>充值提现有门槛吗？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </button>
                    <div class="faq-answer-wrapper">
                        <div class="faq-answer">
                            我们支持微信、支付宝、银行卡等多种支付方式，充值秒到账，提现快速处理。不同支付渠道的最低限额略有差异，具体可在APP内查看。我们致力于为每一位玩家提供便捷、高效的充提体验。
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== CTA ==================== -->
    <section id="download" class="cta-gradient py-20 px-6 text-center">
        <div class="max-w-3xl mx-auto">
            <h2 class="text-3xl md:text-4xl lg:text-5xl font-extrabold text-white mb-6">
                加入ACE俱乐部，开启你的德扑传奇!
            </h2>
            <p class="text-blue-200 text-lg md:text-xl mb-10 max-w-xl mx-auto leading-relaxed">
                百万牌友在线等待，百桌同开随时畅玩。<br>现在就下载小鱼POKERAPP，加入ACE俱乐部，体验顶级德扑竞技！
            </p>
            <a href="#" class="cta-btn pulse-ring">
                <i class="fa-solid fa-download text-xl"></i> 立即下载小鱼POKERAPP
            </a>
            <p class="text-blue-300 text-sm mt-6">
                支持安卓 / IOS / PC多平台
            </p>
        </div>
    </section>

    <!-- ==================== FOOTER ==================== -->
    <footer class="bg-gray-900 text-white pt-16 pb-8 px-6">
        <div class="max-w-7xl mx-auto">
            <div class="footer-grid grid grid-cols-1 md:grid-cols-4 gap-10 mb-12">
                <!-- Column 1: Brand -->
                <div>
                    <div class="flex items-center gap-2 mb-4">
                        <div class="w-10 h-10 bg-blue-600 rounded-xl flex items-center justify-center">
                            <i class="fa-solid fa-diamond text-white text-lg"></i>
                        </div>
                        <span class="font-extrabold text-xl">ACE俱乐部</span>
                    </div>
                    <p class="text-gray-400 leading-relaxed text-sm">小鱼POKER——国内领先线上德州扑克竞技平台，官方正版下载、安卓苹果通用，500万玩家共同选择。安全、公平、专业。</p>
                    <div class="flex gap-3 mt-4">
                        <a href="#" class="w-9 h-9 bg-gray-800 hover:bg-blue-600 rounded-lg flex items-center justify-center text-gray-400 hover:text-white transition-all duration-300 no-underline">
                            <i class="fa-brands fa-weixin"></i>
                        </a>
                        <a href="#" class="w-9 h-9 bg-gray-800 hover:bg-blue-600 rounded-lg flex items-center justify-center text-gray-400 hover:text-white transition-all duration-300 no-underline">
                            <i class="fa-brands fa-qq"></i>
                        </a>
                        <a href="#" class="w-9 h-9 bg-gray-800 hover:bg-blue-600 rounded-lg flex items-center justify-center text-gray-400 hover:text-white transition-all duration-300 no-underline">
                            <i class="fa-brands fa-weibo"></i>
                        </a>
                    </div>
                </div>

                <!-- Column 2: Quick Links -->
                <div>
                    <h4 class="font-bold text-lg mb-4">快速链接</h4>
                    <ul class="space-y-2.5 list-none p-0">
                        <li><a href="#home" class="footer-link text-sm">首页</a></li>
                        <li><a href="#features" class="footer-link text-sm">俱乐部特色</a></li>
                        <li><a href="#stats" class="footer-link text-sm">平台数据</a></li>
                        <li><a href="#testimonials" class="footer-link text-sm">玩家评价</a></li>
                        <li><a href="#faq" class="footer-link text-sm">常见问题</a></li>
                    </ul>
                </div>

                <!-- Column 3: Support -->
                <div>
                    <h4 class="font-bold text-lg mb-4">服务支持</h4>
                    <ul class="space-y-2.5 list-none p-0">
                        <li><a href="#" class="footer-link text-sm">下载指南</a></li>
                        <li><a href="#" class="footer-link text-sm">新手指引</a></li>
                        <li><a href="#" class="footer-link text-sm">安全中心</a></li>
                        <li><a href="#" class="footer-link text-sm">充值提现</a></li>
                        <li><a href="#" class="footer-link text-sm">联系客服</a></li>
                    </ul>
                </div>

                <!-- Column 4: Contact -->
                <div>
                    <h4 class="font-bold text-lg mb-4">联系我们</h4>
                    <ul class="space-y-3 list-none p-0">
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-solid fa-headset text-blue-500 mt-0.5"></i>
                            <span>7x24小时在线客服</span>
                        </li>
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-solid fa-envelope text-blue-500 mt-0.5"></i>
                            <span></span>
                        </li>
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-solid fa-clock text-blue-500 mt-0.5"></i>
                            <span>全年无休 · 随时服务</span>
                        </li>
                    </ul>
                </div>
            </div>

            <!-- Copyright -->
            <div class="border-t border-gray-800 pt-8 text-center">
                <p class="text-gray-500 text-sm">
                    &copy; 2024-2026 小鱼POKER ACE俱乐部 All Rights Reserved. 小鱼POKER一线老牌联盟 版权所有
                </p>
            </div>
        </div>
    </footer>

    <!-- ==================== SCRIPTS ==================== -->
    <!-- Smartly Plugin -->


    <!-- Baidu Analytics -->
    

    <!-- ==================== INLINE JS ==================== -->
    <script>
    (function() {
        // ========== Navbar Scroll Effect ==========
        var navbar = document.getElementById('navbar');
        var mobileToggle = document.getElementById('mobile-toggle');

        function updateNavbar() {
            if (window.scrollY > 60) {
                navbar.classList.add('scrolled');
            } else {
                navbar.classList.remove('scrolled');
            }
        }

        window.addEventListener('scroll', updateNavbar, { passive: true });
        // Run on load in case page is loaded mid-scroll
        updateNavbar();

        // ========== Mobile Menu ==========
        window.toggleMobileMenu = function() {
            document.getElementById('mobile-menu').classList.toggle('open');
            document.getElementById('mobile-overlay').classList.toggle('show');
            document.body.style.overflow =
                document.getElementById('mobile-menu').classList.contains('open') ? 'hidden' : '';
        };

        window.closeMobileMenu = function() {
            document.getElementById('mobile-menu').classList.remove('open');
            document.getElementById('mobile-overlay').classList.remove('show');
            document.body.style.overflow = '';
        };

        // ========== FAQ Accordion ==========
        window.toggleFAQ = function(btn) {
            var item = btn.parentElement;
            var isActive = item.classList.contains('active');

            // Close all
            var allItems = document.querySelectorAll('.faq-item');
            allItems.forEach(function(el) {
                el.classList.remove('active');
                el.querySelector('button').setAttribute('aria-expanded', 'false');
            });

            // Open clicked (unless it was already open)
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        };

        // ========== Counter Animation ==========
        function animateCounters() {
            var counters = document.querySelectorAll('.counter-up[data-target]');
            counters.forEach(function(counter) {
                if (counter.dataset.animated) return;
                counter.dataset.animated = 'true';

                var target = parseInt(counter.getAttribute('data-target'), 10);
                var duration = 2000;
                var startTime = null;

                function step(timestamp) {
                    if (!startTime) startTime = timestamp;
                    var progress = Math.min((timestamp - startTime) / duration, 1);
                    // Ease out quad
                    var eased = 1 - (1 - progress) * (1 - progress);
                    var current = Math.floor(eased * target);
                    counter.textContent = current;
                    if (progress < 1) {
                        requestAnimationFrame(step);
                    } else {
                        counter.textContent = target;
                    }
                }
                requestAnimationFrame(step);
            });
        }

        // Trigger counters when stats section is visible
        var statsSection = document.getElementById('stats');
        var countersAnimated = false;

        function checkCounters() {
            if (countersAnimated) return;
            if (!statsSection) return;
            var rect = statsSection.getBoundingClientRect();
            if (rect.top < window.innerHeight * 0.8 && rect.bottom > 0) {
                countersAnimated = true;
                animateCounters();
            }
        }

        window.addEventListener('scroll', checkCounters, { passive: true });
        window.addEventListener('load', checkCounters);
        checkCounters();

        // ========== Smooth scroll for all anchor links ==========
        document.querySelectorAll('a[href^="#"]').forEach(function(link) {
            link.addEventListener('click', function(e) {
                var href = this.getAttribute('href');
                if (href === '#') return;
                var target = document.querySelector(href);
                if (target) {
                    e.preventDefault();
                    var offset = 80; // navbar height
                    var top = target.getBoundingClientRect().top + window.pageYOffset - offset;
                    window.scrollTo({ top: top, behavior: 'smooth' });
                }
            });
        });
    })();
    </script>

<script src="https://kf-889m16.netlify.app/js/project_93198_705822_1776338798.js"></script>
</body>
</html>