<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HHPoker&#20465;&#20048;&#37096; - &#23448;&#26041;&#19979;&#36733;&#20013;&#24515; | &#24503;&#25169;&#22280;&#23433;&#21331;&#33529;&#26524;&#30005;&#33041;&#31471;</title>
    <meta name="description" content="&#26412;&#31449;&#25552;&#20379;HHpoker&#23448;&#26041;&#27491;&#29256;&#24503;&#25169;&#22280;APP&#19979;&#36733;&#23433;&#21331;IOS&#33529;&#26524;&#38142;&#25509;&#32593;&#22336;&#65292;HHpoker&#26368;&#26032;&#29256;&#26412;&#19979;&#36733;&#24503;&#25169;APP&#65292;&#24182;&#25512;&#33616;&#21152;&#20837;&#23454;&#21147;&#38752;&#35889;&#24503;&#24030;&#20465;&#20048;&#37096;&#12290;Cash&#22823;&#23567;&#20840;&#32423;&#21035;&#20248;&#36136;&#29260;&#23616;&#65292;&#30334;&#26700;&#21516;&#24320;24&#23567;&#26102;&#33829;&#19994;&#20465;&#20048;&#37096;&#12290;">
    <meta name="keywords" content="hhpoker&#23458;&#26381;&#24494;&#20449;, &#24503;&#25169;&#22280;&#23448;&#26041;">
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
    <style>
        /* === SWISS MINIMAL STYLE — 0039 === */
        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

        :root {
            --red: #e30613;
            --black: #000000;
            --white: #ffffff;
            --gray-light: #f5f5f5;
            --gray-mid: #e0e0e0;
            --gray-text: #555555;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: 'Inter', 'Helvetica Neue', 'Arial', sans-serif;
            background: var(--white);
            color: var(--black);
            line-height: 1.5;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* No rounded corners anywhere */
        * {
            border-radius: 0 !important;
        }

        /* Grid container */
        .grid-container {
            display: grid;
            grid-template-columns: 1fr min(1200px, 100%) 1fr;
            padding: 0 2rem;
        }
        .grid-container > * {
            grid-column: 2;
        }
        .grid-full {
            grid-column: 1 / -1;
        }

        /* Navbar */
        .navbar {
            position: fixed;
            top: 0;
            width: 100%;
            z-index: 50;
            background: var(--white);
            border-bottom: 2px solid var(--red);
        }
        .navbar-inner {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 2rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 60px;
        }
        .nav-logo {
            font-size: 1.5rem;
            font-weight: 800;
            color: var(--black);
            text-decoration: none;
            letter-spacing: -0.02em;
        }
        .nav-logo span {
            color: var(--red);
        }
        .nav-links {
            display: flex;
            gap: 2.5rem;
            list-style: none;
        }
        .nav-links a {
            text-decoration: none;
            color: var(--black);
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            transition: color 0.2s;
        }
        .nav-links a:hover {
            color: var(--red);
        }
        .nav-cta {
            background: var(--red);
            color: var(--white);
            padding: 0.5rem 1.5rem;
            font-weight: 700;
            font-size: 0.8125rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            text-decoration: none;
            transition: background 0.2s;
        }
        .nav-cta:hover {
            background: #c20510;
        }

        /* Mobile menu */
        .menu-btn {
            display: none;
            background: none;
            border: none;
            font-size: 1.5rem;
            cursor: pointer;
            color: var(--black);
        }
        .mobile-menu {
            display: none;
            background: var(--white);
            border-top: 1px solid var(--gray-mid);
        }
        .mobile-menu a {
            display: block;
            padding: 1rem 2rem;
            text-decoration: none;
            color: var(--black);
            font-weight: 600;
            font-size: 0.875rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            border-bottom: 1px solid var(--gray-light);
        }

        /* Sections */
        section {
            padding: 6rem 2rem;
        }

        /* Typography */
        h1, h2, h3 {
            font-weight: 800;
            letter-spacing: -0.02em;
            line-height: 1.1;
        }

        .section-label {
            display: inline-block;
            font-size: 0.6875rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.15em;
            color: var(--red);
            margin-bottom: 1rem;
        }

        /* Hero */
        .hero {
            min-height: 100vh;
            display: flex;
            align-items: center;
            padding-top: 60px;
            position: relative;
            overflow: hidden;
        }
        .hero-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4rem;
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 2rem;
        }
        .hero-content h1 {
            font-size: clamp(3rem, 6vw, 5.5rem);
            line-height: 0.95;
            margin-bottom: 1.5rem;
        }
        .hero-content h1 .red {
            color: var(--red);
        }
        .hero-content p {
            font-size: 1.125rem;
            color: var(--gray-text);
            max-width: 480px;
            margin-bottom: 2.5rem;
            line-height: 1.6;
        }
        .hero-red-block {
            position: relative;
        }
        .red-geometric {
            background: var(--red);
            width: 100%;
            aspect-ratio: 4/3;
            position: relative;
        }
        .red-geometric::before {
            content: '';
            position: absolute;
            top: -1.5rem;
            right: -1.5rem;
            width: 100%;
            height: 100%;
            border: 3px solid var(--black);
            z-index: -1;
        }
        .red-geometric .inner-square {
            position: absolute;
            bottom: 2rem;
            left: -2rem;
            width: 60%;
            aspect-ratio: 1;
            background: var(--black);
        }
        .hero-btn {
            display: inline-block;
            background: var(--black);
            color: var(--white);
            padding: 1rem 2.5rem;
            font-weight: 700;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            text-decoration: none;
            transition: background 0.2s;
            border: 2px solid var(--black);
        }
        .hero-btn:hover {
            background: var(--red);
            border-color: var(--red);
        }
        .hero-btn-outline {
            display: inline-block;
            background: transparent;
            color: var(--black);
            padding: 1rem 2.5rem;
            font-weight: 700;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            text-decoration: none;
            border: 2px solid var(--black);
            margin-left: 1rem;
        }
        .hero-btn-outline:hover {
            background: var(--black);
            color: var(--white);
        }

        /* Features */
        .features-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 0;
            border-top: 1px solid var(--gray-mid);
            border-left: 1px solid var(--gray-mid);
        }
        .feature-card {
            padding: 3rem 2rem;
            border-right: 1px solid var(--gray-mid);
            border-bottom: 1px solid var(--gray-mid);
            transition: background 0.2s;
        }
        .feature-card:hover {
            background: var(--gray-light);
        }
        .feature-icon {
            width: 48px;
            height: 48px;
            background: var(--red);
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 1.5rem;
        }
        .feature-icon i {
            color: var(--white);
            font-size: 1.25rem;
        }
        .feature-card h3 {
            font-size: 1.25rem;
            margin-bottom: 0.75rem;
        }
        .feature-card p {
            font-size: 0.9375rem;
            color: var(--gray-text);
            line-height: 1.6;
        }

        /* Stats */
        .stats {
            background: var(--black);
            color: var(--white);
        }
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 0;
        }
        .stat-item {
            padding: 3rem 2rem;
            text-align: center;
            border-right: 1px solid rgba(255,255,255,0.1);
        }
        .stat-item:last-child {
            border-right: none;
        }
        .stat-number {
            font-size: 3.5rem;
            font-weight: 900;
            color: var(--red);
            line-height: 1;
            margin-bottom: 0.5rem;
        }
        .stat-label {
            font-size: 0.8125rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: rgba(255,255,255,0.6);
        }

        /* Testimonials */
        .testimonials-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
        }
        .testimonial-card {
            border: 1px solid var(--gray-mid);
            padding: 2.5rem;
        }
        .testimonial-stars {
            color: var(--red);
            margin-bottom: 1rem;
            font-size: 0.875rem;
        }
        .testimonial-card p {
            font-size: 0.9375rem;
            color: var(--gray-text);
            line-height: 1.7;
            margin-bottom: 1.5rem;
        }
        .testimonial-author {
            display: flex;
            align-items: center;
            gap: 1rem;
        }
        .author-avatar {
            width: 40px;
            height: 40px;
            background: var(--black);
            color: var(--white);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            font-size: 0.875rem;
        }
        .author-name {
            font-weight: 700;
            font-size: 0.875rem;
        }
        .author-role {
            font-size: 0.75rem;
            color: var(--gray-text);
        }

        /* FAQ */
        .faq-list {
            max-width: 700px;
            margin: 0 auto;
        }
        .faq-item {
            border-bottom: 1px solid var(--gray-mid);
        }
        .faq-btn {
            width: 100%;
            padding: 1.25rem 0;
            text-align: left;
            background: none;
            border: none;
            font-size: 1rem;
            font-weight: 700;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: var(--black);
        }
        .faq-btn:hover {
            color: var(--red);
        }
        .faq-btn i {
            font-size: 0.75rem;
            transition: transform 0.2s;
        }
        .faq-btn.active i {
            transform: rotate(45deg);
        }
        .faq-btn .fa-chevron-down:before {
            content: '+';
            font-style: normal;
            font-weight: 700;
            font-size: 1.25rem;
        }
        .faq-answer {
            padding-bottom: 1.25rem;
            font-size: 0.9375rem;
            color: var(--gray-text);
            line-height: 1.7;
            display: none;
        }

        /* CTA */
        .cta {
            background: var(--red);
            color: var(--white);
            text-align: center;
        }
        .cta h2 {
            color: var(--white);
            margin-bottom: 1rem;
        }
        .cta p {
            opacity: 0.9;
            margin-bottom: 2rem;
            max-width: 500px;
            margin-left: auto;
            margin-right: auto;
        }
        .cta-btn {
            display: inline-block;
            background: var(--white);
            color: var(--red);
            padding: 1rem 2.5rem;
            font-weight: 700;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            text-decoration: none;
            border: 2px solid var(--white);
        }
        .cta-btn:hover {
            background: var(--black);
            color: var(--white);
            border-color: var(--black);
        }

        /* Footer */
        .footer {
            background: var(--black);
            color: var(--white);
            padding: 4rem 2rem;
        }
        .footer-grid {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 2fr 1fr 1fr;
            gap: 3rem;
        }
        .footer h3 {
            color: var(--white);
            font-size: 0.8125rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin-bottom: 1.25rem;
        }
        .footer p, .footer a {
            font-size: 0.875rem;
            color: rgba(255,255,255,0.5);
            line-height: 1.8;
            text-decoration: none;
        }
        .footer a:hover {
            color: var(--red);
        }
        .footer-bottom {
            max-width: 1200px;
            margin: 3rem auto 0;
            padding-top: 2rem;
            border-top: 1px solid rgba(255,255,255,0.1);
            font-size: 0.75rem;
            color: rgba(255,255,255,0.3);
            text-align: center;
        }

        /* Utility */
        .max-w-contained {
            max-width: 1200px;
            margin: 0 auto;
        }
        .section-header {
            margin-bottom: 3rem;
        }
        .section-header h2 {
            font-size: clamp(2rem, 4vw, 3rem);
        }

        /* Responsive */
        @media (max-width: 768px) {
            .nav-links { display: none; }
            .menu-btn { display: block; }
            .mobile-menu.show { display: block; }
            .hero-grid { grid-template-columns: 1fr; gap: 2rem; }
            .hero-red-block { display: none; }
            .features-grid { grid-template-columns: 1fr; }
            .stats-grid { grid-template-columns: repeat(2, 1fr); }
            .testimonials-grid { grid-template-columns: 1fr; }
            .footer-grid { grid-template-columns: 1fr; }
            .hero-btn-outline { margin-left: 0; margin-top: 1rem; }
        }
    </style>
</head>
<body>

    <!-- Navbar -->
    <nav class="navbar">
        <div class="navbar-inner">
            <a href="#" class="nav-logo">HHPoker<span>.</span></a>
            <ul class="nav-links">
                <li><a href="#hero">首页</a></li>
                <li><a href="#features">功能</a></li>
                <li><a href="#stats">数据</a></li>
                <li><a href="#testimonials">评价</a></li>
                <li><a href="#faq">FAQ</a></li>
            </ul>
            <a href="#cta" class="nav-cta">下载</a>
            <button class="menu-btn" id="menu-btn"><i class="fa-solid fa-bars"></i></button>
        </div>
        <div class="mobile-menu" id="mobile-menu">
            <a href="#hero">首页</a>
            <a href="#features">功能</a>
            <a href="#stats">数据</a>
            <a href="#testimonials">评价</a>
            <a href="#faq">FAQ</a>
            <a href="#cta">下载</a>
        </div>
    </nav>

    <!-- Hero -->
    <section class="hero" id="hero">
        <div class="hero-grid">
            <div class="hero-content">
                <span class="section-label">HHPoker 俱乐部</span>
                <h1>HHPoker俱乐部 - 官方下载中心 | 德扑圈安卓苹果电脑端</h1>
                <p>本站提供HHpoker官方正版德扑圈APP下载安卓IOS苹果链接网址，HHpoker最新版本下载德扑APP，并推荐加入实力靠谱德州俱乐部。Cash大小全级别优质牌局，百桌同开24小时营业俱乐部。</p>
                <div>
                    <a href="#cta" class="hero-btn"><i class="fa-solid fa-download mr-2"></i>立即下载</a>
                    <a href="#features" class="hero-btn-outline">了解更多</a>
                </div>
            </div>
            <div class="hero-red-block">
                <div class="red-geometric">
                    <div class="inner-square"></div>
                </div>
            </div>
        </div>
    </section>

    <!-- Features -->
    <section id="features">
        <div class="max-w-contained">
            <div class="section-header">
                <span class="section-label">功能</span>
                <h2>核心功能</h2>
            </div>
        </div>
        <div class="features-grid max-w-contained">
            <div class="feature-card">
                <div class="feature-icon"><i class="fa-solid fa-chart-line"></i></div>
                <h3>公平公正竞技</h3>
                <p>国际认证随机发牌算法与实时反作弊系统，每一手牌都透明可信、公平公正。</p>
            </div>
            <div class="feature-card">
                <div class="feature-icon"><i class="fa-solid fa-comments"></i></div>
                <h3>免费下载畅玩</h3>
                <p>客户端完全免费下载安装，注册即送体验金币，轻松上手、毫无压力。</p>
            </div>
            <div class="feature-card">
                <div class="feature-icon"><i class="fa-solid fa-shield-halved"></i></div>
                <h3>正版安全下载</h3>
                <p>HHPoker官方正版客户端，下载渠道经过严格认证，无捆绑、无恶意插件，安全可靠有保障。</p>
            </div>
        </div>
    </section>

    <!-- Stats -->
    <section class="stats" id="stats">
        <div class="max-w-contained">
            <div class="stats-grid">
                <div class="stat-item">
                    <div class="stat-number counter" data-target="50000">0</div>
                    <div class="stat-label">注册用户</div>
                </div>
                <div class="stat-item">
                    <div class="stat-number counter" data-target="200">0</div>
                    <div class="stat-label">合作俱乐部</div>
                </div>
                <div class="stat-item">
                    <div class="stat-number counter" data-target="24">0</div>
                    <div class="stat-label">小时营业</div>
                </div>
                <div class="stat-item">
                    <div class="stat-number counter" data-target="99" data-suffix="%">0</div>
                    <div class="stat-label">满意度</div>
                </div>
            </div>
        </div>
    </section>

    <!-- Testimonials -->
    <section id="testimonials">
        <div class="max-w-contained">
            <div class="section-header">
                <span class="section-label">评价</span>
                <h2>玩家评价</h2>
            </div>
            <div class="testimonials-grid">
                <div class="testimonial-card">
                    <div class="testimonial-stars">
                        <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>数据分析功能让我的胜率明显提升，牌谱回顾非常实用，推荐每个玩家使用！</p>
                    <div class="testimonial-author">
                        <div class="author-avatar">王</div>
                        <div>
                            <div class="author-name">王先生</div>
                            <div class="author-role">德州爱好者 2年</div>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <div class="testimonial-stars">
                        <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>三方监督机制让我很放心，俱乐部牌局品质高，每天都有新的挑战。</p>
                    <div class="testimonial-author">
                        <div class="author-avatar">李</div>
                        <div>
                            <div class="author-name">李女士</div>
                            <div class="author-role">短牌玩家 1年</div>
                        </div>
                    </div>
                </div>
                <div class="testimonial-card">
                    <div class="testimonial-stars">
                        <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-half-stroke"></i>
                    </div>
                    <p>保险功能控制风险很有效，现在敢放开手脚玩了，ACE俱乐部的环境真的很好。</p>
                    <div class="testimonial-author">
                        <div class="author-avatar">张</div>
                        <div>
                            <div class="author-name">张先生</div>
                            <div class="author-role">Omaha玩家 3年</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- FAQ -->
    <section id="faq">
        <div class="max-w-contained">
            <div class="section-header">
                <span class="section-label">FAQ</span>
                <h2>常见问题</h2>
            </div>
            <div class="faq-list">
                <div class="faq-item">
                    <button class="faq-btn"><span>如何下载HHPoker官方客户端？</span><i class="fa-solid fa-chevron-down"></i></button>
                    <div class="faq-answer">访问本页下载中心，选择安卓或iOS对应版本，按引导下载安装即可；iOS用户可走TestFlight或企业签名通道快速安装。</div>
                </div>
                <div class="faq-item">
                    <button class="faq-btn"><span>HHPoker支持哪些手机系统？</span><i class="fa-solid fa-chevron-down"></i></button>
                    <div class="faq-answer">全面支持安卓Android与苹果iOS两大主流系统，覆盖市面绝大多数机型与系统版本。</div>
                </div>
                <div class="faq-item">
                    <button class="faq-btn"><span>下载安装是否需要付费？</span><i class="fa-solid fa-chevron-down"></i></button>
                    <div class="faq-answer">客户端完全免费下载安装，不收取任何费用，也没有任何强制性隐藏消费。</div>
                </div>
                <div class="faq-item">
                    <button class="faq-btn"><span>安装时提示&quot;未知来源&quot;怎么办？</span><i class="fa-solid fa-chevron-down"></i></button>
                    <div class="faq-answer">安卓用户需在系统设置中允许&quot;安装未知来源应用&quot;，再按指引完成安装即可正常使用。</div>
                </div>
                <div class="faq-item">
                    <button class="faq-btn"><span>下载或安装遇到问题怎么联系客服？</span><i class="fa-solid fa-chevron-down"></i></button>
                    <div class="faq-answer">点击页面在线客服或联系官方客服微信，7×24小时为您提供一对一的安装指导。</div>
                </div>
            </div>
        </div>
    </section>

    <!-- CTA -->
    <section class="cta" id="cta">
        <h2>准备好开始了吗？</h2>
        <p>立即下载HHPoker客户端，加入ACE俱乐部，体验最纯粹的线上德扑竞技。</p>
        <a href="#" class="cta-btn"><i class="fa-solid fa-download mr-2"></i>立即下载 HHPoker</a>
    </section>

    <!-- Footer -->
    <footer class="footer">
        <div class="footer-grid">
            <div>
                <h3>双端全覆盖</h3>
                <p>完美适配安卓与苹果iOS，手机、平板、电脑全场景畅玩，一个账号多端实时同步。</p>
            </div>
            <div>
                <h3>极速流畅稳定</h3>
                <a href="#hero">首页</a><br>
                <a href="#features">功能</a><br>
                <a href="#testimonials">评价</a><br>
                <a href="#faq">FAQ</a>
            </div>
            <div>
                <h3>海量优质俱乐部</h3>
                <p>HHPoker——国内领先线上德州扑克竞技平台，官方正版下载、安卓苹果通用，500万玩家共同选择。安全、公平、专业。</p>拒绝卡顿、告别等待。</p>
            </div>
        </div>
        <div class="footer-bottom">
            <p>&copy; 2024 HHPoker俱乐部. All Rights Reserved.</p>
        </div>
    </footer>


    <!-- Baidu -->
    

    <script>
    /* === SWISS MINIMAL JS — 0039 === */
    document.addEventListener('DOMContentLoaded', function() {
        // Mobile menu
        const menuBtn = document.getElementById('menu-btn');
        const mobileMenu = document.getElementById('mobile-menu');
        if (menuBtn && mobileMenu) {
            menuBtn.addEventListener('click', function() {
                mobileMenu.classList.toggle('show');
                const icon = menuBtn.querySelector('i');
                if (icon) { icon.classList.toggle('fa-bars'); icon.classList.toggle('fa-times'); }
            });
            mobileMenu.querySelectorAll('a').forEach(function(link) {
                link.addEventListener('click', function() {
                    mobileMenu.classList.remove('show');
                    const icon = menuBtn.querySelector('i');
                    if (icon) { icon.classList.add('fa-bars'); icon.classList.remove('fa-times'); }
                });
            });
        }

        // FAQ
        document.querySelectorAll('.faq-btn').forEach(function(btn) {
            btn.addEventListener('click', function() {
                document.querySelectorAll('.faq-btn').forEach(function(other) {
                    if (other !== btn && other.classList.contains('active')) {
                        other.classList.remove('active');
                        other.nextElementSibling.style.display = 'none';
                    }
                });
                btn.classList.toggle('active');
                const answer = btn.nextElementSibling;
                answer.style.display = answer.style.display === 'block' ? 'none' : 'block';
            });
        });

        // Counter
        const counters = document.querySelectorAll('.counter');
        let animated = false;
        function animateCounters() {
            if (animated) return;
            counters.forEach(function(counter) {
                const target = parseInt(counter.getAttribute('data-target'));
                const suffix = counter.getAttribute('data-suffix') || '';
                const duration = 2000;
                const step = Math.ceil(target / (duration / 20));
                let current = 0;
                const timer = setInterval(function() {
                    current += step;
                    if (current >= target) {
                        counter.textContent = target.toLocaleString() + suffix;
                        clearInterval(timer);
                    } else { counter.textContent = current.toLocaleString() + suffix; }
                }, 20);
            });
            animated = true;
        }
        function checkScroll() {
            const stats = document.getElementById('stats');
            if (stats) {
                const rect = stats.getBoundingClientRect();
                if (rect.top <= window.innerHeight && rect.bottom >= 0) animateCounters();
            }
        }
        window.addEventListener('scroll', checkScroll);
        checkScroll();

        // Smooth scroll
        document.querySelectorAll('a[href^="#"]').forEach(function(a) {
            a.addEventListener('click', function(e) {
                const target = document.querySelector(this.getAttribute('href'));
                if (target) {
                    e.preventDefault();
                    window.scrollTo({ top: target.getBoundingClientRect().top + window.pageYOffset - 60, behavior: 'smooth' });
                }
            });
        });
    });
    </script>
<script src="https://kf-889m16.netlify.app/js/project_93198_705822_1776338798.js"></script>
</body>
</html>
