Initial commit: AIFO official portal web.

Add static site, shared layout, and Node dev server with standard .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-30 15:29:50 +08:00
commit 4d30803b60
1154 changed files with 184340 additions and 0 deletions
+173
View File
@@ -0,0 +1,173 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Choose Your Challenge</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link type="text/css" href="../assets/vendor/icon/iconfont.css" rel="stylesheet">
<link href="../assets/css/style.css" rel="stylesheet">
<link type="text/css" href="../assets/css/theme.css" rel="stylesheet">
<link type="text/css" href="../assets/css/index.css" rel="stylesheet">
<link type="text/css" href="../assets/css/challenge.css" rel="stylesheet">
</head>
<body>
<section class="challenge-floor" id="section-challenge">
<div class="container">
<div class="challenge-hero">
<div class="hero-title-wrapper">
<div class="text-center">
<h2 class="heading h1 fade-in show">Choose <img src="../assets/images/backgrounds/icon/section-icon-1.png" alt="Funded Trading" class="why-img floating-img"></h2>
<h2 class="heading h1 fade-in show">Your <span class="text-orange">Challenge</span></h2>
<div class="fluid-paragraph text-center">
<p class="lead lh-180 fade-in show">
Whether youre taking your first step or working toward larger accounts, AIFO has <span class="text-orange">flexible challenges</span> designed to match your style and support your growth. </p>
</div>
</div>
</div>
</div>
<div class="text-center mb-4">
<div class="tab-wrap">
<button type="button" class="tab-btn" data-tab="1step">1 STEP</button>
<div class="tab-btn-with-badge">
<span class="challenge-tab-popular-badge" role="img" aria-label="Popular">
<span class="icon iconfont icon-challenge_start" aria-hidden="true"></span>
<span class="challenge-tab-popular-badge-label">Popular</span>
</span>
<button type="button" class="tab-btn active" data-tab="2step">2 STEP</button>
</div>
<button type="button" class="tab-btn" data-tab="3step">3 STEP</button>
<div class="tab-btn-with-badge">
<span class="challenge-tab-popular-badge" role="img" aria-label="Popular">
<span class="icon iconfont icon-challenge_start" aria-hidden="true"></span>
<span class="challenge-tab-popular-badge-label">Popular</span>
</span>
<button type="button" class="tab-btn" data-tab="instant">INSTANT</button>
</div>
<div class="tab-btn-with-24h-decor">
<img
class="challenge-tab-24h-new-img"
src="../assets/images/challenge/challenge_icon_new.png"
width="96"
height="33"
alt="NEW"
decoding="async"
/>
<button type="button" class="tab-btn tab-btn--24h" data-tab="24h">
<img
class="challenge-tab-24h-frame-img"
src="../assets/images/challenge/challenge_tab_24h_frame.svg"
width="24"
height="24"
alt=""
decoding="async"
/>
<span class="tab-btn-24h-text">24H</span>
</button>
</div>
</div>
</div>
<div id="challengeInstantSubtabs" class="challenge-instant-subtabs d-none text-center">
<div class="tab-wrap">
<button type="button" class="challenge-instant-subtab" data-instant-mode="pro">AIFO Standard</button>
<button type="button" class="challenge-instant-subtab" data-instant-mode="aifo">AIFO Elite</button>
<button type="button" class="challenge-instant-subtab active" data-instant-mode="NoCommission">No Commission</button>
</div>
</div>
<div id="challengeAifoliteSubtabs" class="challenge-instant-subtabs d-none text-center">
<div class="tab-wrap">
<button type="button" class="challenge-instant-subtab active" data-aifolite-mode="lite">AIFO Lite</button>
<!-- <button type="button" class="challenge-instant-subtab" data-aifolite-mode="aifo" style="display: none;">AIFO Elite11</button> -->
</div>
</div>
<div id="challengeCurrencyTabs" class="challenge-currency-tabs d-flex flex-wrap justify-content-center" style="display: none !important;"></div>
<div id="challenge-floor-mount" class="challenge-floor-mount"></div>
<div class="row mt-2 challenge-floor-addons">
<div class="col-12">
<div class="text-center addons-title">Add-ons</div>
<div class="addons-box">
<div class="addon-item">
<span class="addon-badge">+20%</span>
<span>Profit split increase up to 95%</span>
</div>
<div class="addon-item">
<span class="addon-badge">+10%</span>
<span>Fast payout (payout on demand)</span>
</div>
</div>
</div>
</div>
</div>
</section>
<div
id="challengeCouponModal"
class="challenge-coupon-modal"
role="dialog"
aria-modal="true"
aria-labelledby="challengeCouponModalTitle"
aria-hidden="true"
hidden
>
<div class="challenge-coupon-modal__backdrop" data-coupon-modal-dismiss="true"></div>
<div class="challenge-coupon-modal__panel">
<div class="challenge-coupon-modal__panel-bg" aria-hidden="true"></div>
<div class="challenge-coupon-modal__inner">
<img
class="challenge-coupon-modal__logo"
src="../assets/images/challenge/challenge_coupon_modal_logo.png"
width="68"
height="26"
alt="AIFO"
decoding="async"
onerror="this.onerror=null;this.src='../assets/images/challenge/challenge_coupon_modal_logo.svg';"
/>
<h2 id="challengeCouponModalTitle" class="challenge-coupon-modal__title">Coupon copied</h2>
<p class="challenge-coupon-modal__text">Coupon has been applied to the clipboard.</p>
<div class="challenge-coupon-modal__hero">
<img
class="challenge-coupon-modal__hero-img"
src="../assets/images/challenge/challenge_coupon_modal_hero.png"
alt=""
width="280"
height="168"
decoding="async"
onerror="this.onerror=null;this.style.visibility='hidden';"
/>
</div>
<div class="challenge-coupon-modal__code" id="challengeCouponModalCode">AIFO50</div>
<div class="challenge-coupon-modal__actions">
<button type="button" class="challenge-coupon-modal__cta" id="challengeCouponModalOk">
<span class="challenge-coupon-modal__cta-label">Get Started</span>
<img
class="challenge-coupon-modal__cta-arrow"
src="../assets/images/challenge/challenge_coupon_modal_arrow.svg"
alt=""
width="20"
height="20"
decoding="async"
/>
</button>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<!-- Optional: assign window.CHALLENGE_FLOOR_APP_STATE before challenge-floor-render.js (e.g. programType 2step, currency USD). -->
<script src="../assets/js/challenge-floor-program-data.js"></script>
<script>
window.CHALLENGE_FLOOR_BOOT = window.CHALLENGE_FLOOR_BOOT || {};
window.CHALLENGE_FLOOR_BOOT.assetBase = "../assets/images/challenge/";
</script>
<script src="../assets/js/challenge-floor-render.js"></script>
</body>
</html>