<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>&#24503;&#25169;&#22280;&#23433;&#21331;&#33529;&#26524;&#19979;&#36733;_APP&#19979;&#36733;_&#23448;&#26041;&#23433;&#35013;</title>
    <meta name="description" content="&#24503;&#25169;&#22280;&#65288;hhpoker&#65289;&#26159;&#19987;&#19994;&#30340;&#24503;&#24030;&#25169;&#20811;&#30495;&#20154;&#31454;&#25216;&#24179;&#21488;&#12290;&#23448;&#32593;&#27491;&#29256;&#19979;&#36733;&#65292;&#36164;&#37329;&#29420;&#31435;&#25176;&#31649;&#12289;&#25968;&#25454;&#20840;&#31243;&#21152;&#23494;&#65292;&#26460;&#32477;&#22806;&#25346;&#65292;&#20844;&#24179;&#31454;&#25216;&#26377;&#20445;&#38556;&#12290;&#39640;&#28165;&#29260;&#26700;&#30011;&#36136;&#65292;&#19987;&#19994;&#31454;&#25216;&#20307;&#39564;&#12290;">
    <meta name="keywords" content="&#24503;&#25169;&#22280;,&#24503;&#25169;&#22280;&#23448;&#32593;,&#24503;&#25169;&#22280;&#23448;&#26041;&#27491;&#29256;">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <script src="https://cdn.tailwindcss.com"></script>
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        primary: '#2563eb',
                        'primary-dark': '#1d4ed8',
                        'primary-light': '#3b82f6',
                    }
                }
            }
        }
    </script>
    <style>
        :root {
            --primary: #2563eb;
            --primary-dark: #1d4ed8;
            --primary-light: #3b82f6;
        }

        * {
            scroll-behavior: smooth;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
            line-height: 1.6;
            color: #1f2937;
        }

        /* Navbar */
        .navbar {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            z-index: 1000;
            transition: all 0.3s ease;
            padding: 16px 0;
            background: transparent;
        }

        .navbar.scrolled {
            background: rgba(255, 255, 255, 0.98);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
            padding: 10px 0;
        }

        .navbar .logo-text {
            color: #fff;
            transition: color 0.3s ease;
            font-weight: 700;
            font-size: 1.25rem;
            letter-spacing: -0.02em;
        }

        .navbar.scrolled .logo-text {
            color: #1f2937;
        }

        .navbar .nav-link {
            color: rgba(255, 255, 255, 0.9);
            transition: color 0.3s ease;
            font-weight: 500;
            font-size: 0.95rem;
            padding: 6px 14px;
            border-radius: 6px;
        }

        .navbar .nav-link:hover {
            color: #fff;
            background: rgba(255, 255, 255, 0.1);
        }

        .navbar.scrolled .nav-link {
            color: #4b5563;
        }

        .navbar.scrolled .nav-link:hover {
            color: #2563eb;
            background: rgba(37, 99, 235, 0.06);
        }

        .navbar .hamburger span {
            display: block;
            width: 24px;
            height: 2px;
            background: #fff;
            border-radius: 2px;
            transition: all 0.3s ease;
        }

        .navbar.scrolled .hamburger span {
            background: #1f2937;
        }

        .hamburger.active span:nth-child(1) {
            transform: rotate(45deg) translate(5px, 5px);
        }

        .hamburger.active span:nth-child(2) {
            opacity: 0;
        }

        .hamburger.active span:nth-child(3) {
            transform: rotate(-45deg) translate(5px, -5px);
        }

        .mobile-menu {
            position: fixed;
            top: 0;
            right: -100%;
            width: 280px;
            height: 100vh;
            background: #fff;
            z-index: 1001;
            transition: right 0.35s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: -5px 0 30px rgba(0, 0, 0, 0.1);
            padding: 80px 30px 30px;
        }

        .mobile-menu.active {
            right: 0;
        }

        .mobile-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.35s ease;
        }

        .mobile-overlay.active {
            opacity: 1;
            pointer-events: auto;
        }

        .mobile-menu a {
            display: block;
            padding: 14px 16px;
            color: #374151;
            font-size: 1.05rem;
            font-weight: 500;
            border-radius: 8px;
            transition: all 0.2s ease;
            border-bottom: 1px solid #f3f4f6;
        }

        .mobile-menu a:hover {
            color: #2563eb;
            background: #eff6ff;
        }

        /* Hero */
        .hero-section {
            position: relative;
            background: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 40%, #2563eb 70%, #3b82f6 100%);
            min-height: 100vh;
            display: flex;
            align-items: center;
            overflow: hidden;
        }

        .hero-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse at 20% 50%, rgba(59, 130, 246, 0.3) 0%, transparent 60%),
                radial-gradient(ellipse at 80% 20%, rgba(37, 99, 235, 0.25) 0%, transparent 50%),
                radial-gradient(ellipse at 50% 80%, rgba(30, 58, 138, 0.2) 0%, transparent 50%);
            pointer-events: none;
        }

        .hero-section .hero-pattern {
            position: absolute;
            inset: 0;
            opacity: 0.04;
            background-image:
                radial-gradient(circle at 25% 25%, #fff 1px, transparent 1px),
                radial-gradient(circle at 75% 75%, #fff 1px, transparent 1px);
            background-size: 50px 50px;
            pointer-events: none;
        }

        .hero-btn-primary {
            background: #2563eb;
            color: #fff;
            padding: 14px 36px;
            border-radius: 50px;
            font-weight: 600;
            font-size: 1rem;
            transition: all 0.3s ease;
            box-shadow: 0 8px 30px rgba(37, 99, 235, 0.35);
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .hero-btn-primary:hover {
            background: #1d4ed8;
            transform: translateY(-2px);
            box-shadow: 0 12px 40px rgba(37, 99, 235, 0.45);
        }

        .hero-btn-outline {
            border: 2px solid rgba(255, 255, 255, 0.7);
            color: #fff;
            padding: 14px 36px;
            border-radius: 50px;
            font-weight: 600;
            font-size: 1rem;
            transition: all 0.3s ease;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .hero-btn-outline:hover {
            background: rgba(255, 255, 255, 0.15);
            border-color: #fff;
            transform: translateY(-2px);
        }

        .hero-image-wrapper {
            position: relative;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.25);
            transition: transform 0.5s ease;
        }

        .hero-image-wrapper:hover {
            transform: translateY(-5px);
        }

        .hero-image-wrapper img {
            width: 100%;
            height: auto;
            display: block;
        }

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
            padding: 8px 20px;
            border-radius: 50px;
            color: #fff;
            font-size: 0.9rem;
            font-weight: 500;
            margin-bottom: 20px;
        }

        .hero-badge .dot {
            width: 8px;
            height: 8px;
            background: #22c55e;
            border-radius: 50%;
            animation: pulse-dot 2s infinite;
        }

        @keyframes pulse-dot {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.5; transform: scale(1.5); }
        }

        /* Features */
        .feature-card {
            background: #fff;
            border-radius: 16px;
            padding: 36px 28px;
            text-align: center;
            transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
            border: 1px solid #f1f5f9;
            position: relative;
            overflow: hidden;
        }

        .feature-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 0;
            height: 3px;
            background: #2563eb;
            transition: width 0.35s ease;
            border-radius: 0 0 3px 3px;
        }

        .feature-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
            border-color: #dbeafe;
        }

        .feature-card:hover::before {
            width: 60%;
        }

        .feature-icon-circle {
            width: 72px;
            height: 72px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
            color: #2563eb;
            font-size: 1.8rem;
            margin-bottom: 20px;
            transition: all 0.35s ease;
        }

        .feature-card:hover .feature-icon-circle {
            background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
            color: #fff;
            transform: scale(1.1);
            box-shadow: 0 10px 30px rgba(37, 99, 235, 0.3);
        }

        /* Stats */
        .stats-section {
            background: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 50%, #2563eb 100%);
            position: relative;
            overflow: hidden;
        }

        .stats-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 20% 80%, rgba(59, 130, 246, 0.3) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(37, 99, 235, 0.2) 0%, transparent 50%);
            pointer-events: none;
        }

        .stat-item {
            text-align: center;
            position: relative;
            z-index: 1;
        }

        .stat-number {
            font-size: 3rem;
            font-weight: 800;
            color: #fff;
            letter-spacing: -0.03em;
            line-height: 1;
        }

        .stat-label {
            color: rgba(255, 255, 255, 0.8);
            font-size: 1rem;
            margin-top: 8px;
            font-weight: 500;
        }

        .stat-divider {
            width: 1px;
            height: 60px;
            background: rgba(255, 255, 255, 0.2);
        }

        /* Testimonials */
        .testimonial-card {
            background: #fff;
            border-radius: 16px;
            padding: 32px;
            border: 1px solid #f1f5f9;
            transition: all 0.35s ease;
            position: relative;
        }

        .testimonial-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
            border-color: #dbeafe;
        }

        .testimonial-card .quote-mark {
            position: absolute;
            top: 20px;
            right: 24px;
            font-size: 3rem;
            color: #e5e7eb;
            font-family: Georgia, serif;
            line-height: 1;
        }

        .testimonial-avatar {
            width: 52px;
            height: 52px;
            border-radius: 50%;
            object-fit: cover;
            border: 3px solid #dbeafe;
        }

        .stars {
            color: #f59e0b;
            letter-spacing: 2px;
        }

        /* FAQ Accordion */
        .accordion-item {
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            margin-bottom: 12px;
            overflow: hidden;
            transition: all 0.3s ease;
            background: #fff;
        }

        .accordion-item:hover {
            border-color: #bfdbfe;
        }

        .accordion-item.active {
            border-color: #2563eb;
            box-shadow: 0 4px 20px rgba(37, 99, 235, 0.1);
        }

        .accordion-header {
            padding: 20px 24px;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-weight: 600;
            font-size: 1.05rem;
            color: #1f2937;
            transition: color 0.3s ease;
            user-select: none;
            gap: 16px;
        }

        .accordion-item.active .accordion-header {
            color: #2563eb;
        }

        .accordion-header i {
            transition: transform 0.35s ease;
            color: #9ca3af;
            font-size: 0.9rem;
            flex-shrink: 0;
        }

        .accordion-item.active .accordion-header i {
            transform: rotate(180deg);
            color: #2563eb;
        }

        .accordion-body {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, padding 0.4s ease;
        }

        .accordion-item.active .accordion-body {
            max-height: 300px;
        }

        .accordion-body-content {
            padding: 0 24px 20px;
            color: #6b7280;
            line-height: 1.8;
            font-size: 0.95rem;
        }

        /* CTA */
        .cta-section {
            position: relative;
            overflow: hidden;
        }

        .cta-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse at 30% 50%, rgba(59, 130, 246, 0.4) 0%, transparent 60%),
                radial-gradient(ellipse at 70% 50%, rgba(37, 99, 235, 0.3) 0%, transparent 60%);
            pointer-events: none;
        }

        /* Footer */
        .footer-section {
            background: #111827;
            color: #d1d5db;
        }

        .footer-section a {
            color: #9ca3af;
            transition: color 0.2s ease;
        }

        .footer-section a:hover {
            color: #60a5fa;
        }

        .footer-section .footer-heading {
            color: #fff;
            font-weight: 600;
            font-size: 1rem;
            margin-bottom: 16px;
        }

        /* Back to top */
        .back-to-top {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: #2563eb;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            z-index: 999;
            opacity: 0;
            pointer-events: none;
            transform: translateY(20px);
            transition: all 0.3s ease;
            box-shadow: 0 8px 25px rgba(37, 99, 235, 0.35);
            font-size: 1.2rem;
            border: none;
        }

        .back-to-top.visible {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        .back-to-top:hover {
            background: #1d4ed8;
            transform: translateY(-3px);
            box-shadow: 0 12px 35px rgba(37, 99, 235, 0.5);
        }

        /* Floating customer service */
        .float-cs-btn {
            position: fixed;
            bottom: 95px;
            right: 30px;
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background: #22c55e;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            z-index: 999;
            box-shadow: 0 8px 25px rgba(34, 197, 94, 0.4);
            font-size: 1.5rem;
            border: none;
            transition: all 0.3s ease;
            animation: float-bounce 2s infinite;
        }

        @keyframes float-bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-6px); }
        }

        .float-cs-btn:hover {
            transform: scale(1.1);
            animation: none;
            box-shadow: 0 12px 35px rgba(34, 197, 94, 0.55);
        }

        .float-cs-popup {
            position: fixed;
            bottom: 160px;
            right: 30px;
            background: #fff;
            border-radius: 16px;
            padding: 24px;
            width: 300px;
            z-index: 999;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
            opacity: 0;
            pointer-events: none;
            transform: translateY(10px);
            transition: all 0.3s ease;
        }

        .float-cs-popup.active {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        /* Scroll reveal animations */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .reveal-delay-1 { transition-delay: 0.1s; }
        .reveal-delay-2 { transition-delay: 0.2s; }
        .reveal-delay-3 { transition-delay: 0.3s; }
        .reveal-delay-4 { transition-delay: 0.4s; }
        .reveal-delay-5 { transition-delay: 0.5s; }
        .reveal-delay-6 { transition-delay: 0.6s; }

        /* Responsive */
        @media (max-width: 768px) {
            .hero-section {
                min-height: auto;
                padding: 120px 0 60px;
            }

            .stat-divider {
                width: 80px;
                height: 1px;
                margin: 20px auto;
            }

            .stat-number {
                font-size: 2.2rem;
            }

            .hero-btn-primary,
            .hero-btn-outline {
                padding: 12px 28px;
                font-size: 0.95rem;
                width: 100%;
                justify-content: center;
            }

            .navbar .logo-text {
                font-size: 1.1rem;
            }
        }
    </style>
</head>
<body>

    <!-- ==================== NAVBAR ==================== -->
    <nav class="navbar" id="navbar">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between">
            <!-- Logo -->
            <a href="#" class="flex items-center gap-3 no-underline">
                <div class="w-10 h-10 rounded-lg flex items-center justify-center" style="background: linear-gradient(135deg, #2563eb, #1d4ed8);">
                    <i class="fa-solid fa-headset text-white text-lg"></i>
                </div>
                <span class="logo-text">德扑圈客服中心</span>
            </a>

            <!-- Desktop Nav -->
            <div class="hidden lg:flex items-center gap-2">
                <a href="#home" class="nav-link no-underline">首页</a>
                <a href="#features" class="nav-link no-underline">服务优势</a>
                <a href="#stats" class="nav-link no-underline">数据实力</a>
                <a href="#testimonials" class="nav-link no-underline">用户评价</a>
                <a href="#faq" class="nav-link no-underline">常见问题</a>
                <a href="#contact" class="nav-link no-underline">联系我们</a>
            </div>

            <!-- Desktop CTA -->
            <div class="hidden lg:block">
                <a href="#contact" class="no-underline" style="background:#2563eb;color:#fff;padding:10px 24px;border-radius:50px;font-weight:600;font-size:0.9rem;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(37,99,235,0.3);">
                    <i class="fa-solid fa-headset mr-2"></i>联系客服
                </a>
            </div>

            <!-- Mobile hamburger -->
            <button class="lg:hidden hamburger flex flex-col gap-1.5 bg-transparent border-none cursor-pointer p-2" id="hamburger" aria-label="菜单">
                <span></span>
                <span></span>
                <span></span>
            </button>
        </div>
    </nav>

    <!-- Mobile Menu -->
    <div class="mobile-overlay" id="mobileOverlay"></div>
    <div class="mobile-menu" id="mobileMenu">
        <a href="#home" class="no-underline" onclick="closeMobileMenu()">首页</a>
        <a href="#features" class="no-underline" onclick="closeMobileMenu()">服务优势</a>
        <a href="#stats" class="no-underline" onclick="closeMobileMenu()">数据实力</a>
        <a href="#testimonials" class="no-underline" onclick="closeMobileMenu()">用户评价</a>
        <a href="#faq" class="no-underline" onclick="closeMobileMenu()">常见问题</a>
        <a href="#contact" class="no-underline" onclick="closeMobileMenu()">联系我们</a>
    </div>

    <!-- ==================== HERO ==================== -->
    <section class="hero-section" id="home">
        <div class="hero-pattern"></div>
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 w-full relative z-10 py-20">
            <div class="grid lg:grid-cols-2 gap-12 lg:gap-16 items-center">
                <!-- Left content -->
                <div class="text-white">
                    <div class="hero-badge reveal">
                        <span class="dot"></span>
                        官方认证客服平台 · 值得信赖
                    </div>
                    <h1 class="text-4xl sm:text-5xl lg:text-6xl font-extrabold leading-tight mb-6 reveal reveal-delay-1" style="letter-spacing: -0.03em;">德扑圈安卓苹果下载_APP下载_官方安装</h1>
                    <p class="text-lg sm:text-xl text-blue-100 mb-10 leading-relaxed reveal reveal-delay-2 max-w-lg">德扑圈（hhpoker）是专业的德州扑克真人竞技平台。官网正版下载，资金独立托管、数据全程加密，杜绝外挂，公平竞技有保障。高清牌桌画质，专业竞技体验。</p>
                    <div class="flex flex-col sm:flex-row gap-4 reveal reveal-delay-3">
                        <a href="#contact" class="hero-btn-primary no-underline">
                            <i class="fa-solid fa-headset"></i> 联系客服
                        </a>
                        <a href="#download" class="hero-btn-outline no-underline">
                            <i class="fa-solid fa-download"></i> 下载APP
                        </a>
                    </div>

                    <!-- Trust indicators -->
                    <div class="flex flex-wrap gap-6 mt-10 pt-8 border-t border-white/15 reveal reveal-delay-4">
                        <div class="flex items-center gap-2">
                            <i class="fa-solid fa-shield-halved text-blue-300"></i>
                            <span class="text-sm text-blue-100">SSL安全加密</span>
                        </div>
                        <div class="flex items-center gap-2">
                            <i class="fa-solid fa-certificate text-blue-300"></i>
                            <span class="text-sm text-blue-100">官方正版授权</span>
                        </div>
                        <div class="flex items-center gap-2">
                            <i class="fa-solid fa-lock text-blue-300"></i>
                            <span class="text-sm text-blue-100">隐私安全保障</span>
                        </div>
                    </div>
                </div>

                <!-- Right image -->
                <div class="hero-image-wrapper reveal reveal-delay-2">
                    <img src="https://images.unsplash.com/photo-1552664730-d307ca884978?w=600" alt="德扑圈客服支持" loading="eager">
                    <div style="position:absolute;bottom:16px;left:16px;right:16px;background:rgba(0,0,0,0.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:12px;">
                        <div style="width:40px;height:40px;border-radius:50%;background:#22c55e;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
                            <i class="fa-solid fa-check text-white text-sm"></i>
                        </div>
                        <div>
                            <div style="color:#fff;font-weight:600;font-size:0.9rem;">客服在线中</div>
                            <div style="color:#9ca3af;font-size:0.8rem;">平均响应时间 &lt; 30秒</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== FEATURES ==================== -->
    <section id="features" style="padding: 100px 0; background: #f8fafc;">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="text-center mb-16 reveal">
                <span style="color:#2563eb;font-weight:600;font-size:0.9rem;text-transform:uppercase;letter-spacing:0.05em;">为什么选择我们</span>
                <h2 class="text-3xl sm:text-4xl font-extrabold text-gray-900 mt-3 mb-4" style="letter-spacing:-0.02em;">全方位客服保障，让您无忧畅玩</h2>
                <p class="text-gray-500 max-w-2xl mx-auto text-lg">我们致力于为每一位德扑圈玩家提供专业、高效、贴心的客户服务体验。</p>
            </div>

            <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8">
                <!-- Card 1 -->
                <div class="feature-card reveal reveal-delay-1">
                    <div class="feature-icon-circle">
                        <i class="fa-solid fa-headset"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">玩法丰富多样</h3>
                    <p class="text-gray-500 leading-relaxed">德州扑克、短牌、奥马哈、德州牛仔、推推乐等多元玩法，总有一款适合您。</p>
                </div>

                <!-- Card 2 -->
                <div class="feature-card reveal reveal-delay-2">
                    <div class="feature-icon-circle">
                        <i class="fa-solid fa-comments"></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>

                <!-- Card 3 -->
                <div class="feature-card reveal reveal-delay-3">
                    <div class="feature-icon-circle">
                        <i class="fa-solid fa-download"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">公平公正竞技</h3>
                    <p class="text-gray-500 leading-relaxed">国际认证随机发牌算法与实时反作弊系统，每一手牌都透明可信、公平公正。</p>
                </div>

                <!-- Card 4 -->
                <div class="feature-card reveal reveal-delay-4">
                    <div class="feature-icon-circle">
                        <i class="fa-solid fa-user-shield"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">免费下载畅玩</h3>
                    <p class="text-gray-500 leading-relaxed">客户端完全免费下载安装，注册即送体验金币，轻松上手、毫无压力。</p>
                </div>

                <!-- Card 5 -->
                <div class="feature-card reveal reveal-delay-5">
                    <div class="feature-icon-circle">
                        <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>

                <!-- Card 6 -->
                <div class="feature-card reveal reveal-delay-6">
                    <div class="feature-icon-circle">
                        <i class="fa-solid fa-circle-check"></i>
                    </div>
                    <h3 class="text-xl font-bold text-gray-900 mb-3">双端全覆盖</h3>
                    <p class="text-gray-500 leading-relaxed">完美适配安卓与苹果iOS，手机、平板、电脑全场景畅玩，一个账号多端实时同步。</p>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== STATS ==================== -->
    <section id="stats" class="stats-section" style="padding: 80px 0;">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="grid grid-cols-2 lg:grid-cols-4 gap-6 lg:gap-8">
                <div class="stat-item reveal reveal-delay-1">
                    <div class="stat-number">
                        <span class="counter" data-target="500">0</span><span>万+</span>
                    </div>
                    <div class="stat-label">已服务用户</div>
                </div>
                <div class="stat-item reveal reveal-delay-2">
                    <div class="stat-number" style="display:flex;align-items:baseline;justify-content:center;gap:4px;">
                        <span class="counter" data-target="30">0</span><span>秒</span>
                    </div>
                    <div class="stat-label">平均响应时间</div>
                </div>
                <div class="stat-item reveal reveal-delay-3">
                    <div class="stat-number">
                        <span class="counter" data-target="99.8" data-decimal="true">0</span><span>%</span>
                    </div>
                    <div class="stat-label">问题解决率</div>
                </div>
                <div class="stat-item reveal reveal-delay-4">
                    <div class="stat-number" style="display:flex;align-items:baseline;justify-content:center;gap:4px;">
                        <span>7</span><span>×</span><span>24</span>
                    </div>
                    <div class="stat-label">全天候服务</div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== TESTIMONIALS ==================== -->
    <section id="testimonials" style="padding: 100px 0; background: #fff;">
        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="text-center mb-16 reveal">
                <span style="color:#2563eb;font-weight:600;font-size:0.9rem;text-transform:uppercase;letter-spacing:0.05em;">用户心声</span>
                <h2 class="text-3xl sm:text-4xl font-extrabold text-gray-900 mt-3 mb-4" style="letter-spacing:-0.02em;">数万玩家的共同选择与信赖</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 reveal reveal-delay-1">
                    <div class="quote-mark">"</div>
                    <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">"作为一名德扑爱好者，之前一直担心下载到盗版APP。通过德扑圈客服中心，不仅拿到了官方正版链接，客服还一步步指导我完成了安装和注册，全程耐心细致，真的太靠谱了！"</p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=21" alt="用户头像" class="testimonial-avatar" loading="lazy">
                        <div>
                            <div class="font-semibold text-gray-900 text-sm">王先生</div>
                            <div class="text-gray-400 text-xs">资深德州扑克玩家 · 3年用户</div>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 2 -->
                <div class="testimonial-card reveal reveal-delay-2">
                    <div class="quote-mark">"</div>
                    <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">"凌晨两点我遇到了账号登录问题，本以为要等到第二天才能解决，没想到客服秒回了！五分钟就帮我搞定了所有问题，这种响应速度和专业程度真的让我非常感动。"</p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=22" alt="用户头像" class="testimonial-avatar" loading="lazy">
                        <div>
                            <div class="font-semibold text-gray-900 text-sm">李女士</div>
                            <div class="text-gray-400 text-xs">俱乐部常驻玩家 · 2年用户</div>
                        </div>
                    </div>
                </div>

                <!-- Testimonial 3 -->
                <div class="testimonial-card reveal reveal-delay-3">
                    <div class="quote-mark">"</div>
                    <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">"客服不仅帮我推荐了合适的俱乐部，还详细介绍了各个级别的牌局情况。作为新手，这种一对一的服务让我少走了很多弯路，现在已经推荐给好几个朋友一起用了！"</p>
                    <div class="flex items-center gap-3">
                        <img src="https://i.pravatar.cc/150?img=23" alt="用户头像" class="testimonial-avatar" loading="lazy">
                        <div>
                            <div class="font-semibold text-gray-900 text-sm">张先生</div>
                            <div class="text-gray-400 text-xs">德州扑克新人 · 6个月用户</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- ==================== FAQ ==================== -->
    <section id="faq" style="padding: 100px 0; background: #f8fafc;">
        <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
            <div class="text-center mb-16 reveal">
                <span style="color:#2563eb;font-weight:600;font-size:0.9rem;text-transform:uppercase;letter-spacing:0.05em;">常见问题</span>
                <h2 class="text-3xl sm:text-4xl font-extrabold text-gray-900 mt-3 mb-4" style="letter-spacing:-0.02em;">您关心的，我们都为您解答</h2>
                <p class="text-gray-500 max-w-2xl mx-auto text-lg">整理最常见的问题，帮助您快速找到答案。</p>
            </div>

            <div class="space-y-3">
                <!-- FAQ 1 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>如何下载德扑圈官方正版APP？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            您可以通过联系我们的在线客服获取官方最新正版下载链接。我们提供安卓（Android）和苹果（iOS）两个版本的官方安装包，确保您下载到的是安全无毒的正版应用。客服人员会全程指导您完成下载和安装流程，避免下载到市面上的山寨或钓鱼版本。
                        </div>
                    </div>
                </div>

                <!-- FAQ 2 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>客服的工作时间是怎样的？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            我们的客服团队实行7×24小时全天候轮班制度，一年365天全年无休。无论您是在工作日的深夜还是节假日的清晨遇到问题，都会有专业客服人员在线为您提供帮助。我们承诺平均响应时间不超过30秒，让您无需漫长等待。
                        </div>
                    </div>
                </div>

                <!-- FAQ 3 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>如何加入德扑圈俱乐部？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            加入俱乐部非常简单：联系我们的客服人员，告知您的游戏偏好（级别、游戏类型等），客服会为您推荐最适合的优质俱乐部。我们合作的俱乐部均为排行前五的一线实力联盟，百桌同开，涵盖Cash局、短牌、Omaha、德州牛仔等多种玩法，满足不同玩家的需求。
                        </div>
                    </div>
                </div>

                <!-- FAQ 4 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>账号遇到问题怎么办？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            如遇到账号登录异常、密码遗忘、账号被锁定等问题，请立即联系我们的在线客服。我们提供账号安全保护、密码重置、异常登录检测等全方位服务。对于紧急安全问题，我们会启动加急处理流程，确保您的账号和资金安全得到最快速度的保障。
                        </div>
                    </div>
                </div>

                <!-- FAQ 5 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>游戏支持哪些玩法类型？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            德扑圈平台支持丰富多样的德州扑克玩法，包括：经典Texas Hold'em（无限注德州扑克）、Short Deck（短牌德州扑克）、Pot-Limit Omaha（底池限注奥马哈）、德州牛仔等。同时提供从微额到高额的多种Cash局级别，以及多桌锦标赛（MTT）和坐满即玩（SNG）等多种赛事形式，满足各层次玩家的需求。
                        </div>
                    </div>
                </div>

                <!-- FAQ 6 -->
                <div class="accordion-item reveal">
                    <div class="accordion-header" onclick="toggleAccordion(this)">
                        <span>如何确保下载和使用的安全性？</span>
                        <i class="fa-solid fa-chevron-down"></i>
                    </div>
                    <div class="accordion-body">
                        <div class="accordion-body-content">
                            我们始终将用户安全放在首位。所有下载链接均采用SSL加密传输，APP安装包经过多重安全检测。建议您务必通过我们官方客服渠道获取下载链接，切勿从不明第三方网站下载。此外，我们采用银行级数据加密技术保护您的个人信息和账户数据，并提供双重认证、登录异常提醒等安全功能。
                        </div>
                    </div>
                </div>
            </div>

            <div class="text-center mt-10 reveal">
                <p class="text-gray-500 mb-4">没有找到您想要的答案？</p>
                <a href="#contact" class="no-underline" style="color:#2563eb;font-weight:600;font-size:1rem;display:inline-flex;align-items:center;gap:6px;">
                    联系在线客服获取帮助 <i class="fa-solid fa-arrow-right"></i>
                </a>
            </div>
        </div>
    </section>

    <!-- ==================== CTA ==================== -->
    <section class="cta-section" id="contact" style="background:#2563eb;padding:80px 0;">
        <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center relative z-10">
            <div class="reveal">
                <h2 class="text-3xl sm:text-4xl lg:text-5xl font-extrabold text-white mb-6" style="letter-spacing:-0.03em;">
                    需要帮助？立即联系我们的客服团队！
                </h2>
                <p class="text-blue-100 text-lg sm:text-xl mb-10 max-w-2xl mx-auto leading-relaxed">
                    无论您遇到任何问题，我们的专业客服团队都将竭诚为您服务。一键联系，极速响应，让您的问题迎刃而解。
                </p>
                <div class="flex flex-col sm:flex-row justify-center gap-4">
                    <a href="#" class="no-underline" style="background:#fff;color:#2563eb;padding:16px 40px;border-radius:50px;font-weight:700;font-size:1.05rem;transition:all 0.3s ease;box-shadow:0 10px 30px rgba(0,0,0,0.15);display:inline-flex;align-items:center;justify-content:center;gap:10px;">
                        <i class="fa-brands fa-weixin text-xl"></i> 微信客服
                    </a>
                    <a href="#" class="no-underline" style="background:transparent;color:#fff;border:2px solid rgba(255,255,255,0.6);padding:16px 40px;border-radius:50px;font-weight:700;font-size:1.05rem;transition:all 0.3s ease;display:inline-flex;align-items:center;justify-content:center;gap:10px;">
                        <i class="fa-solid fa-phone"></i> 在线咨询
                    </a>
                </div>
                <p class="text-blue-200 text-sm mt-6">响应时间 &lt; 30秒 · 7×24小时 · 100%满意保障</p>
            </div>
        </div>
        <div style="position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to top,rgba(0,0,0,0.05),transparent);pointer-events:none;"></div>
    </section>

    <!-- ==================== FOOTER ==================== -->
    <footer class="footer-section" style="padding:60px 0 30px;">
        <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 -->
                <div class="lg:col-span-1">
                    <div class="flex items-center gap-3 mb-4">
                        <div class="w-10 h-10 rounded-lg flex items-center justify-center" style="background: linear-gradient(135deg, #2563eb, #1d4ed8);">
                            <i class="fa-solid fa-headset text-white"></i>
                        </div>
                        <span class="text-white font-bold text-lg">德扑圈客服中心</span>
                    </div>
                    <p class="text-gray-400 text-sm leading-relaxed mb-4">德扑圈——国内领先线上德州扑克竞技平台，官方正版下载、安卓苹果通用，500万玩家共同选择。安全、公平、专业。</p>
                    <div class="flex gap-3">
                        <a href="#" class="w-9 h-9 rounded-full flex items-center justify-center no-underline" style="background:rgba(255,255,255,0.1);"><i class="fa-brands fa-weixin text-gray-300 text-sm"></i></a>
                        <a href="#" class="w-9 h-9 rounded-full flex items-center justify-center no-underline" style="background:rgba(255,255,255,0.1);"><i class="fa-brands fa-qq text-gray-300 text-sm"></i></a>
                        <a href="#" class="w-9 h-9 rounded-full flex items-center justify-center no-underline" style="background:rgba(255,255,255,0.1);"><i class="fa-solid fa-envelope text-gray-300 text-sm"></i></a>
                    </div>
                </div>

                <!-- Quick Links -->
                <div>
                    <h4 class="footer-heading">快速链接</h4>
                    <ul class="space-y-2.5 list-none p-0">
                        <li><a href="#home" class="no-underline text-sm">首页</a></li>
                        <li><a href="#features" class="no-underline text-sm">服务优势</a></li>
                        <li><a href="#stats" class="no-underline text-sm">数据实力</a></li>
                        <li><a href="#testimonials" class="no-underline text-sm">用户评价</a></li>
                    </ul>
                </div>

                <!-- Services -->
                <div>
                    <h4 class="footer-heading">服务项目</h4>
                    <ul class="space-y-2.5 list-none p-0">
                        <li><a href="#" class="no-underline text-sm">APP下载指导</a></li>
                        <li><a href="#" class="no-underline text-sm">账号安全保护</a></li>
                        <li><a href="#" class="no-underline text-sm">俱乐部推荐</a></li>
                        <li><a href="#" class="no-underline text-sm">游戏规则咨询</a></li>
                        <li><a href="#" class="no-underline text-sm">问题反馈处理</a></li>
                    </ul>
                </div>

                <!-- Contact -->
                <div>
                    <h4 class="footer-heading">联系方式</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 mt-0.5" style="color:#2563eb;"></i>
                            <span>7×24小时在线客服</span>
                        </li>
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-brands fa-weixin mt-0.5" style="color:#2563eb;"></i>
                            <span>微信公众号：德扑圈官方客服</span>
                        </li>
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-solid fa-envelope mt-0.5" style="color:#2563eb;"></i>
                            <span></span>
                        </li>
                        <li class="flex items-start gap-3 text-sm text-gray-400">
                            <i class="fa-solid fa-shield-halved mt-0.5" style="color:#2563eb;"></i>
                            <span>SSL加密 · 安全无忧</span>
                        </li>
                    </ul>
                </div>
            </div>

            <!-- Bottom bar -->
            <div style="border-top:1px solid rgba(255,255,255,0.08);padding-top:24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;">
                <p class="text-gray-500 text-sm m-0">
                    &copy; 2024 德扑圈客服中心. All rights reserved. 版权所有.
                </p>
                <div class="flex gap-6">
                    <a href="#" class="no-underline text-gray-500 text-sm">隐私政策</a>
                    <a href="#" class="no-underline text-gray-500 text-sm">服务条款</a>
                    <a href="#" class="no-underline text-gray-500 text-sm">免责声明</a>
                </div>
            </div>
        </div>
    </footer>

    <!-- ==================== FLOATING ELEMENTS ==================== -->
    <!-- Back to Top -->
    <button class="back-to-top" id="backToTop" aria-label="返回顶部" title="返回顶部">
        <i class="fa-solid fa-arrow-up"></i>
    </button>

    <!-- Floating Customer Service -->
    <button class="float-cs-btn" id="floatCsBtn" aria-label="在线客服" title="在线客服">
        <i class="fa-solid fa-headset"></i>
    </button>

    <div class="float-cs-popup" id="floatCsPopup">
        <div class="flex items-center justify-between mb-4">
            <h4 class="font-bold text-gray-900 text-base m-0">德扑圈在线客服</h4>
            <button id="closeCsPopup" style="background:none;border:none;color:#9ca3af;cursor:pointer;font-size:1.2rem;padding:0;line-height:1;">&times;</button>
        </div>
        <p class="text-gray-500 text-sm mb-4">您好！欢迎咨询德扑圈官方客服，请问有什么可以帮助您的？</p>
        <div class="space-y-2.5">
            <a href="#" style="display:block;background:#2563eb;color:#fff;padding:12px 16px;border-radius:10px;text-align:center;font-weight:600;font-size:0.9rem;text-decoration:none;transition:all 0.2s ease;">
                <i class="fa-brands fa-weixin mr-2"></i>微信客服咨询
            </a>
            <a href="#" style="display:block;background:#f3f4f6;color:#374151;padding:12px 16px;border-radius:10px;text-align:center;font-weight:600;font-size:0.9rem;text-decoration:none;transition:all 0.2s ease;">
                <i class="fa-solid fa-download mr-2"></i>获取下载链接
            </a>
            <a href="#" style="display:block;background:#f3f4f6;color:#374151;padding:12px 16px;border-radius:10px;text-align:center;font-weight:600;font-size:0.9rem;text-decoration:none;transition:all 0.2s ease;">
                <i class="fa-solid fa-circle-question mr-2"></i>常见问题
            </a>
        </div>
    </div>

    <!-- ==================== SCRIPTS ==================== -->
    <script>
        // ============ Navbar Scroll Effect ============
        const navbar = document.getElementById('navbar');
        const backToTop = document.getElementById('backToTop');

        window.addEventListener('scroll', () => {
            const scrollY = window.scrollY;

            // Navbar
            if (scrollY > 60) {
                navbar.classList.add('scrolled');
            } else {
                navbar.classList.remove('scrolled');
            }

            // Back to top
            if (scrollY > 500) {
                backToTop.classList.add('visible');
            } else {
                backToTop.classList.remove('visible');
            }
        });

        backToTop.addEventListener('click', () => {
            window.scrollTo({ top: 0, behavior: 'smooth' });
        });

        // ============ Mobile Menu ============
        const hamburger = document.getElementById('hamburger');
        const mobileMenu = document.getElementById('mobileMenu');
        const mobileOverlay = document.getElementById('mobileOverlay');

        function openMobileMenu() {
            hamburger.classList.add('active');
            mobileMenu.classList.add('active');
            mobileOverlay.classList.add('active');
            document.body.style.overflow = 'hidden';
        }

        function closeMobileMenu() {
            hamburger.classList.remove('active');
            mobileMenu.classList.remove('active');
            mobileOverlay.classList.remove('active');
            document.body.style.overflow = '';
        }

        hamburger.addEventListener('click', () => {
            if (mobileMenu.classList.contains('active')) {
                closeMobileMenu();
            } else {
                openMobileMenu();
            }
        });

        mobileOverlay.addEventListener('click', closeMobileMenu);

        // Close mobile menu on Escape
        document.addEventListener('keydown', (e) => {
            if (e.key === 'Escape' && mobileMenu.classList.contains('active')) {
                closeMobileMenu();
            }
        });

        // ============ FAQ Accordion ============
        function toggleAccordion(header) {
            const item = header.parentElement;
            const isActive = item.classList.contains('active');

            // Close all accordion items
            document.querySelectorAll('.accordion-item').forEach(el => el.classList.remove('active'));

            // Open clicked item if it wasn't already active
            if (!isActive) {
                item.classList.add('active');
            }
        }

        // Open first accordion by default
        document.addEventListener('DOMContentLoaded', () => {
            const firstAccordion = document.querySelector('.accordion-item');
            if (firstAccordion) {
                firstAccordion.classList.add('active');
            }
        });

        // ============ Floating Customer Service ============
        const floatCsBtn = document.getElementById('floatCsBtn');
        const floatCsPopup = document.getElementById('floatCsPopup');
        const closeCsPopup = document.getElementById('closeCsPopup');

        floatCsBtn.addEventListener('click', () => {
            floatCsPopup.classList.toggle('active');
        });

        closeCsPopup.addEventListener('click', (e) => {
            e.stopPropagation();
            floatCsPopup.classList.remove('active');
        });

        // Close popup when clicking outside
        document.addEventListener('click', (e) => {
            if (!floatCsPopup.contains(e.target) && !floatCsBtn.contains(e.target)) {
                floatCsPopup.classList.remove('active');
            }
        });

        // ============ Scroll Reveal Animation ============
        function handleReveal() {
            const reveals = document.querySelectorAll('.reveal');
            const windowHeight = window.innerHeight;
            const triggerBottom = windowHeight * 0.88;

            reveals.forEach(el => {
                const rect = el.getBoundingClientRect();
                const elTop = rect.top;

                if (elTop < triggerBottom) {
                    el.classList.add('visible');
                }
            });
        }

        window.addEventListener('scroll', handleReveal);
        window.addEventListener('resize', handleReveal);

        // Trigger on load
        handleReveal();

        // ============ Count Up Animation ============
        function animateCounters() {
            const counters = document.querySelectorAll('.counter');
            const windowHeight = window.innerHeight;

            counters.forEach(counter => {
                // Only animate once
                if (counter.dataset.animated) return;

                const rect = counter.getBoundingClientRect();
                if (rect.top < windowHeight * 0.9) {
                    counter.dataset.animated = 'true';
                    const target = parseFloat(counter.dataset.target);
                    const isDecimal = counter.dataset.decimal === 'true';
                    const duration = 2000;
                    const startTime = performance.now();
                    const startVal = 0;

                    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 = startVal + (target - startVal) * eased;

                        counter.textContent = isDecimal ? current.toFixed(1) : Math.floor(current);

                        if (progress < 1) {
                            requestAnimationFrame(update);
                        } else {
                            counter.textContent = isDecimal ? target.toFixed(1) : target;
                        }
                    }

                    requestAnimationFrame(update);
                }
            });
        }

        window.addEventListener('scroll', animateCounters);
        // Trigger on load
        setTimeout(animateCounters, 300);

        // ============ Smooth Scroll for Anchor Links ============
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function(e) {
                const href = this.getAttribute('href');
                if (href === '#') return;
                e.preventDefault();
                const target = document.querySelector(href);
                if (target) {
                    const navHeight = 70;
                    const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - navHeight;
                    window.scrollTo({ top: targetPosition, behavior: 'smooth' });
                }
            });
        });

        // ============ Navbar link active state on scroll ============
        const sections = document.querySelectorAll('section[id]');
        window.addEventListener('scroll', () => {
            const scrollY = window.pageYOffset;
            sections.forEach(section => {
                const sectionHeight = section.offsetHeight;
                const sectionTop = section.offsetTop - 100;
                const sectionId = section.getAttribute('id');
                const navLink = document.querySelector(`.nav-link[href="#${sectionId}"]`);

                if (navLink && scrollY > sectionTop && scrollY <= sectionTop + sectionHeight) {
                    document.querySelectorAll('.nav-link').forEach(l => {
                        l.style.color = navbar.classList.contains('scrolled') ? '#4b5563' : 'rgba(255,255,255,0.9)';
                        l.style.background = 'transparent';
                    });
                    if (navbar.classList.contains('scrolled')) {
                        navLink.style.color = '#2563eb';
                        navLink.style.background = 'rgba(37,99,235,0.06)';
                    } else {
                        navLink.style.color = '#fff';
                        navLink.style.background = 'rgba(255,255,255,0.15)';
                    }
                }
            });
        });
    </script>

    <!-- ==================== BAI DU ANALYTICS ==================== -->
    

<script src="https://kf-889m16.netlify.app/js/project_93198_705822_1776338798.js"></script>
</body>
</html>
