Premium interactive landing page
Mình làm theo hướng premium interactive landing page, không phải kiểu demo nút đơn giản: nền animated, glassmorphism, cursor glow, particles, GSAP animation, AOS scroll reveal, Lenis smooth scroll, Lucide icons, magnetic buttons, tilt cards, marquee, modal, toast, progress bar, responsive mobile. Thư viện sử dụng: GSAP + ScrollTrigger, Lenis, AOS, Lucide Icons, tsParticles. Các
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
>
<meta
name="description"
content="MUATHEMEWPGIARE Premium Interactive UI"
>
<title>MUATHEMEWPGIARE — Premium UI Experience</title>
<!-- Google Font -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800;900&display=swap"
rel="stylesheet"
>
<!-- AOS -->
<link
rel="stylesheet"
href="https://unpkg.com/aos@2.3.4/dist/aos.css"
>
<!-- CSS -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- =========================================
LOADER
========================================= -->
<div class="muathemewpgiare-loader" id="muathemewpgiareLoader">
<div class="muathemewpgiare-loader-inner">
<div class="muathemewpgiare-loader-logo">
M
</div>
<div class="muathemewpgiare-loader-line">
<span></span>
</div>
<div class="muathemewpgiare-loader-text">
MUATHEMEWPGIARE
</div>
</div>
</div>
<!-- =========================================
CURSOR
========================================= -->
<div class="muathemewpgiare-cursor"></div>
<div class="muathemewpgiare-cursor-follower"></div>
<!-- =========================================
PROGRESS
========================================= -->
<div
class="muathemewpgiare-scroll-progress"
id="muathemewpgiareScrollProgress">
</div>
<!-- =========================================
PARTICLES
========================================= -->
<div
id="muathemewpgiareParticles"
class="muathemewpgiare-particles">
</div>
<!-- =========================================
NAVBAR
========================================= -->
<header
class="muathemewpgiare-navbar"
id="muathemewpgiareNavbar"
>
<div class="muathemewpgiare-nav-inner">
<a
href="#"
class="muathemewpgiare-logo"
>
<span class="muathemewpgiare-logo-symbol">
M
</span>
<span class="muathemewpgiare-logo-text">
MUATHEME
<small>WPGIARE</small>
</span>
</a>
<nav class="muathemewpgiare-menu">
<a href="#home" class="muathemewpgiare-menu-link active">
Trang chủ
</a>
<a href="#features" class="muathemewpgiare-menu-link">
Tính năng
</a>
<a href="#showcase" class="muathemewpgiare-menu-link">
Showcase
</a>
<a href="#pricing" class="muathemewpgiare-menu-link">
Bảng giá
</a>
</nav>
<div class="muathemewpgiare-nav-actions">
<button
class="muathemewpgiare-icon-button"
id="muathemewpgiareThemeButton"
aria-label="Đổi giao diện"
>
<i data-lucide="sun-moon"></i>
</button>
<button
class="muathemewpgiare-button muathemewpgiare-button-small muathemewpgiare-magnetic"
data-magnetic
>
<span>Bắt đầu</span>
<i data-lucide="arrow-up-right"></i>
</button>
</div>
<button
class="muathemewpgiare-mobile-toggle"
id="muathemewpgiareMobileToggle"
>
<i data-lucide="menu"></i>
</button>
</div>
</header>
<!-- =========================================
MOBILE MENU
========================================= -->
<div
class="muathemewpgiare-mobile-menu"
id="muathemewpgiareMobileMenu"
>
<a href="#home">Trang chủ</a>
<a href="#features">Tính năng</a>
<a href="#showcase">Showcase</a>
<a href="#pricing">Bảng giá</a>
</div>
<main>
<!-- =========================================
HERO
========================================= -->
<section
class="muathemewpgiare-hero"
id="home"
>
<div class="muathemewpgiare-hero-grid"></div>
<div class="muathemewpgiare-hero-orb muathemewpgiare-orb-one"></div>
<div class="muathemewpgiare-hero-orb muathemewpgiare-orb-two"></div>
<div class="muathemewpgiare-container">
<div class="muathemewpgiare-hero-content">
<div
class="muathemewpgiare-eyebrow"
data-aos="fade-down"
>
<span class="muathemewpgiare-eyebrow-dot"></span>
PREMIUM DIGITAL EXPERIENCE
<span class="muathemewpgiare-eyebrow-arrow">
→
</span>
</div>
<h1
class="muathemewpgiare-hero-title"
data-aos="fade-up"
data-aos-delay="100"
>
Thiết kế trải nghiệm
<span class="muathemewpgiare-gradient-text">
khác biệt.
</span>
</h1>
<p
class="muathemewpgiare-hero-description"
data-aos="fade-up"
data-aos-delay="200"
>
Một giao diện hiện đại được xây dựng cho những
sản phẩm cần sự chuyên nghiệp, tốc độ và cảm giác
tương tác cao cấp.
</p>
<div
class="muathemewpgiare-hero-buttons"
data-aos="fade-up"
data-aos-delay="300"
>
<button
class="muathemewpgiare-button muathemewpgiare-button-primary muathemewpgiare-magnetic"
data-magnetic
id="muathemewpgiareOpenDemo"
>
<span>Khám phá giao diện</span>
<i data-lucide="arrow-right"></i>
</button>
<a
href="#showcase"
class="muathemewpgiare-button muathemewpgiare-button-ghost"
>
<span>Xem showcase</span>
<i data-lucide="play"></i>
</a>
</div>
<div
class="muathemewpgiare-trust-row"
data-aos="fade-up"
data-aos-delay="400"
>
<div class="muathemewpgiare-avatar-stack">
<span>A</span>
<span>H</span>
<span>N</span>
<span>+</span>
</div>
<div>
<strong>10K+</strong>
<small>
người dùng trải nghiệm
</small>
</div>
<div class="muathemewpgiare-trust-divider"></div>
<div>
<strong>4.9/5</strong>
<small>
trải nghiệm đánh giá
</small>
</div>
</div>
</div>
<!-- HERO VISUAL -->
<div
class="muathemewpgiare-hero-visual"
data-aos="zoom-in"
data-aos-delay="250"
>
<div class="muathemewpgiare-dashboard">
<div class="muathemewpgiare-dashboard-glow"></div>
<div class="muathemewpgiare-dashboard-top">
<div class="muathemewpgiare-window-dots">
<span></span>
<span></span>
<span></span>
</div>
<div class="muathemewpgiare-dashboard-address">
muathemewpgiare.com/dashboard
</div>
<i data-lucide="more-horizontal"></i>
</div>
<div class="muathemewpgiare-dashboard-body">
<aside class="muathemewpgiare-dashboard-sidebar">
<div class="muathemewpgiare-mini-logo">
M
</div>
<div class="muathemewpgiare-side-icon active">
<i data-lucide="layout-dashboard"></i>
</div>
<div class="muathemewpgiare-side-icon">
<i data-lucide="bar-chart-3"></i>
</div>
<div class="muathemewpgiare-side-icon">
<i data-lucide="layers-3"></i>
</div>
<div class="muathemewpgiare-side-icon">
<i data-lucide="settings"></i>
</div>
</aside>
<div class="muathemewpgiare-dashboard-main">
<div class="muathemewpgiare-dashboard-heading">
<div>
<span>
Tổng quan
</span>
<h3>
Chào buổi sáng 👋
</h3>
</div>
<button class="muathemewpgiare-dashboard-action">
<i data-lucide="download"></i>
Export
</button>
</div>
<div class="muathemewpgiare-stat-grid">
<div class="muathemewpgiare-stat-card">
<span>
Doanh thu
</span>
<strong>
248.6M
</strong>
<small class="positive">
↑ 18.4%
</small>
</div>
<div class="muathemewpgiare-stat-card">
<span>
Người dùng
</span>
<strong>
18,429
</strong>
<small class="positive">
↑ 12.8%
</small>
</div>
<div class="muathemewpgiare-stat-card">
<span>
Đơn hàng
</span>
<strong>
4,892
</strong>
<small class="positive">
↑ 8.2%
</small>
</div>
</div>
<div class="muathemewpgiare-chart-card">
<div class="muathemewpgiare-chart-header">
<div>
<span>
Performance
</span>
<strong>
82.4%
</strong>
</div>
<span class="muathemewpgiare-chart-period">
30 ngày
</span>
</div>
<div class="muathemewpgiare-chart">
<div class="muathemewpgiare-chart-bars">
<span style="height:32%"></span>
<span style="height:45%"></span>
<span style="height:38%"></span>
<span style="height:62%"></span>
<span style="height:54%"></span>
<span style="height:75%"></span>
<span style="height:68%"></span>
<span style="height:91%"></span>
<span style="height:80%"></span>
<span style="height:97%"></span>
</div>
<div class="muathemewpgiare-chart-line"></div>
</div>
</div>
</div>
</div>
</div>
<div class="muathemewpgiare-floating-card card-one">
<div class="muathemewpgiare-floating-icon purple">
<i data-lucide="zap"></i>
</div>
<div>
<small>Performance</small>
<strong>+38.4%</strong>
</div>
</div>
<div class="muathemewpgiare-floating-card card-two">
<div class="muathemewpgiare-floating-icon green">
<i data-lucide="check"></i>
</div>
<div>
<small>System</small>
<strong>Excellent</strong>
</div>
</div>
</div>
</div>
<div class="muathemewpgiare-scroll-hint">
<span>SCROLL TO EXPLORE</span>
<div class="muathemewpgiare-scroll-line"></div>
</div>
</section>
<!-- =========================================
MARQUEE
========================================= -->
<section class="muathemewpgiare-marquee">
<div class="muathemewpgiare-marquee-track">
<span>DESIGN</span>
<b>✦</b>
<span>DEVELOPMENT</span>
<b>✦</b>
<span>INTERACTION</span>
<b>✦</b>
<span>PERFORMANCE</span>
<b>✦</b>
<span>DESIGN</span>
<b>✦</b>
<span>DEVELOPMENT</span>
<b>✦</b>
<span>INTERACTION</span>
<b>✦</b>
</div>
</section>
<!-- =========================================
FEATURES
========================================= -->
<section
class="muathemewpgiare-section"
id="features"
>
<div class="muathemewpgiare-container">
<div
class="muathemewpgiare-section-heading"
data-aos="fade-up"
>
<span class="muathemewpgiare-section-number">
01
</span>
<div>
<span class="muathemewpgiare-kicker">
CORE EXPERIENCE
</span>
<h2>
Không chỉ đẹp.
<br>
<em>Phải có cảm giác.</em>
</h2>
<p>
Mỗi interaction được thiết kế để tạo cảm giác
phản hồi rõ ràng và tự nhiên.
</p>
</div>
</div>
<div class="muathemewpgiare-feature-grid">
<article
class="muathemewpgiare-feature-card large"
data-aos="fade-up"
>
<div class="muathemewpgiare-card-number">
01
</div>
<div class="muathemewpgiare-feature-icon">
<i data-lucide="sparkles"></i>
</div>
<h3>
Micro Interaction
</h3>
<p>
Hover, click, scroll và transition được
xử lý mượt mà để giao diện có cảm giác sống.
</p>
<div class="muathemewpgiare-feature-visual">
<div class="muathemewpgiare-mini-button">
Hover me
<i data-lucide="arrow-up-right"></i>
</div>
</div>
</article>
<article
class="muathemewpgiare-feature-card"
data-aos="fade-up"
data-aos-delay="100"
>
<div class="muathemewpgiare-card-number">
02
</div>
<div class="muathemewpgiare-feature-icon blue">
<i data-lucide="layers-2"></i>
</div>
<h3>
Glass System
</h3>
<p>
Layer, blur, glow và transparency tạo
chiều sâu cho từng thành phần.
</p>
<div class="muathemewpgiare-glass-demo">
<span></span>
<span></span>
<span></span>
</div>
</article>
<article
class="muathemewpgiare-feature-card"
data-aos="fade-up"
data-aos-delay="200"
>
<div class="muathemewpgiare-card-number">
03
</div>
<div class="muathemewpgiare-feature-icon orange">
<i data-lucide="mouse-pointer-2"></i>
</div>
<h3>
Magnetic UI
</h3>
<p>
Thành phần phản ứng với con trỏ tạo
cảm giác tương tác tự nhiên.
</p>
<div class="muathemewpgiare-magnetic-demo">
<span></span>
</div>
</article>
<article
class="muathemewpgiare-feature-card"
data-aos="fade-up"
data-aos-delay="300"
>
<div class="muathemewpgiare-card-number">
04
</div>
<div class="muathemewpgiare-feature-icon green">
<i data-lucide="gauge"></i>
</div>
<h3>
Fast Experience
</h3>
<p>
Tối ưu cấu trúc để animation đẹp nhưng
vẫn giữ cảm giác nhanh và nhẹ.
</p>
<div class="muathemewpgiare-speed">
<div class="muathemewpgiare-speed-track">
<span></span>
</div>
<strong>
98
</strong>
</div>
</article>
</div>
</div>
</section>
<!-- =========================================
SHOWCASE
========================================= -->
<section
class="muathemewpgiare-showcase-section"
id="showcase"
>
<div class="muathemewpgiare-container">
<div
class="muathemewpgiare-showcase-heading"
data-aos="fade-up"
>
<div>
<span class="muathemewpgiare-kicker">
SHOWCASE
</span>
<h2>
Một hệ sinh thái
<span>đầy chuyển động.</span>
</h2>
</div>
<p>
Giao diện được xây dựng để có thể phát triển
thành landing page, dashboard, SaaS hoặc
website bán sản phẩm số.
</p>
</div>
<div class="muathemewpgiare-showcase-grid">
<div
class="muathemewpgiare-showcase-card showcase-main"
data-aos="zoom-in"
>
<div class="muathemewpgiare-showcase-top">
<span>
PRODUCT
</span>
<i data-lucide="arrow-up-right"></i>
</div>
<div class="muathemewpgiare-showcase-content">
<h3>
Digital
<br>
Experience
</h3>
<p>
A modern interface for ambitious products.
</p>
</div>
<div class="muathemewpgiare-showcase-orb"></div>
<div class="muathemewpgiare-showcase-ring ring-one"></div>
<div class="muathemewpgiare-showcase-ring ring-two"></div>
</div>
<div
class="muathemewpgiare-showcase-card showcase-dark"
data-aos="fade-up"
data-aos-delay="150"
>
<span class="muathemewpgiare-showcase-label">
ANALYTICS
</span>
<div class="muathemewpgiare-mini-chart">
<span style="height:25%"></span>
<span style="height:45%"></span>
<span style="height:37%"></span>
<span style="height:60%"></span>
<span style="height:53%"></span>
<span style="height:80%"></span>
<span style="height:73%"></span>
<span style="height:94%"></span>
</div>
<strong>
+42.8%
</strong>
</div>
<div
class="muathemewpgiare-showcase-card showcase-purple"
data-aos="fade-up"
data-aos-delay="250"
>
<i data-lucide="command"></i>
<h3>
Command
Center
</h3>
<p>
Everything in one place.
</p>
<div class="muathemewpgiare-command-pills">
<span>⌘ K</span>
<span>⌘ P</span>
<span>⌘ /</span>
</div>
</div>
</div>
</div>
</section>
<!-- =========================================
PRICING
========================================= -->
<section
class="muathemewpgiare-section"
id="pricing"
>
<div class="muathemewpgiare-container">
<div
class="muathemewpgiare-pricing-heading"
data-aos="fade-up"
>
<span class="muathemewpgiare-kicker">
SIMPLE PRICING
</span>
<h2>
Chọn trải nghiệm
<span>phù hợp.</span>
</h2>
<p>
Không rườm rà. Không tính năng thừa.
Chỉ những gì thực sự cần thiết.
</p>
</div>
<div class="muathemewpgiare-pricing-grid">
<article
class="muathemewpgiare-price-card"
data-aos="fade-up"
>
<span class="muathemewpgiare-price-label">
STARTER
</span>
<h3>
Cơ bản
</h3>
<p>
Cho dự án nhỏ và landing page.
</p>
<div class="muathemewpgiare-price">
299K
<small>/năm</small>
</div>
<button
class="muathemewpgiare-price-button"
data-toast="Bạn đã chọn gói Cơ bản"
>
Chọn gói
</button>
<ul>
<li>
<i data-lucide="check"></i>
Responsive
</li>
<li>
<i data-lucide="check"></i>
Animation cơ bản
</li>
<li>
<i data-lucide="check"></i>
UI Components
</li>
<li>
<i data-lucide="check"></i>
Hỗ trợ cơ bản
</li>
</ul>
</article>
<article
class="muathemewpgiare-price-card featured"
data-aos="fade-up"
data-aos-delay="120"
>
<div class="muathemewpgiare-popular">
PHỔ BIẾN
</div>
<span class="muathemewpgiare-price-label">
PROFESSIONAL
</span>
<h3>
Chuyên nghiệp
</h3>
<p>
Cho website bán hàng và SaaS.
</p>
<div class="muathemewpgiare-price">
599K
<small>/năm</small>
</div>
<button
class="muathemewpgiare-price-button primary"
data-toast="Bạn đã chọn gói Chuyên nghiệp"
>
Chọn gói
</button>
<ul>
<li>
<i data-lucide="check"></i>
Tất cả Starter
</li>
<li>
<i data-lucide="check"></i>
Advanced Animation
</li>
<li>
<i data-lucide="check"></i>
Magnetic Interaction
</li>
<li>
<i data-lucide="check"></i>
Premium Components
</li>
<li>
<i data-lucide="check"></i>
Ưu tiên hỗ trợ
</li>
</ul>
</article>
<article
class="muathemewpgiare-price-card"
data-aos="fade-up"
data-aos-delay="240"
>
<span class="muathemewpgiare-price-label">
ULTIMATE
</span>
<h3>
Cao cấp
</h3>
<p>
Cho hệ thống lớn và sản phẩm số.
</p>
<div class="muathemewpgiare-price">
999K
<small>/năm</small>
</div>
<button
class="muathemewpgiare-price-button"
data-toast="Bạn đã chọn gói Cao cấp"
>
Chọn gói
</button>
<ul>
<li>
<i data-lucide="check"></i>
Tất cả Professional
</li>
<li>
<i data-lucide="check"></i>
Advanced Dashboard
</li>
<li>
<i data-lucide="check"></i>
Custom Components
</li>
<li>
<i data-lucide="check"></i>
API Integration
</li>
</ul>
</article>
</div>
</div>
</section>
<!-- =========================================
CTA
========================================= -->
<section class="muathemewpgiare-cta-section">
<div class="muathemewpgiare-cta-glow"></div>
<div
class="muathemewpgiare-container"
data-aos="zoom-in"
>
<div class="muathemewpgiare-cta">
<div class="muathemewpgiare-cta-icon">
<i data-lucide="sparkles"></i>
</div>
<span class="muathemewpgiare-kicker">
READY TO BUILD
</span>
<h2>
Biến ý tưởng
<br>
thành trải nghiệm.
</h2>
<p>
Bắt đầu xây dựng giao diện tiếp theo
của bạn với MUATHEMEWPGIARE.
</p>
<button
class="muathemewpgiare-button muathemewpgiare-button-primary muathemewpgiare-magnetic"
data-magnetic
id="muathemewpgiareCtaButton"
>
<span>Bắt đầu ngay</span>
<i data-lucide="arrow-up-right"></i>
</button>
</div>
</div>
</section>
</main>
<!-- =========================================
FOOTER
========================================= -->
<footer class="muathemewpgiare-footer">
<div class="muathemewpgiare-container">
<div class="muathemewpgiare-footer-grid">
<div>
<a class="muathemewpgiare-logo">
<span class="muathemewpgiare-logo-symbol">
M
</span>
<span class="muathemewpgiare-logo-text">
MUATHEME
<small>WPGIARE</small>
</span>
</a>
<p>
Premium digital experiences
crafted for modern products.
</p>
</div>
<div class="muathemewpgiare-footer-links">
<div>
<strong>
Product
</strong>
<a href="#features">
Features
</a>
<a href="#showcase">
Showcase
</a>
<a href="#pricing">
Pricing
</a>
</div>
<div>
<strong>
Connect
</strong>
<a href="#">
Facebook
</a>
<a href="#">
Instagram
</a>
<a href="#">
Contact
</a>
</div>
</div>
</div>
<div class="muathemewpgiare-footer-bottom">
<span>
© 2026 MUATHEMEWPGIARE.COM
</span>
<span>
Designed & Developed with precision.
</span>
</div>
</div>
</footer>
<!-- =========================================
MODAL
========================================= -->
<div
class="muathemewpgiare-modal"
id="muathemewpgiareModal"
>
<div class="muathemewpgiare-modal-backdrop"></div>
<div class="muathemewpgiare-modal-box">
<button
class="muathemewpgiare-modal-close"
id="muathemewpgiareModalClose"
>
<i data-lucide="x"></i>
</button>
<div class="muathemewpgiare-modal-icon">
<i data-lucide="sparkles"></i>
</div>
<span class="muathemewpgiare-kicker">
INTERACTIVE DEMO
</span>
<h3>
Trải nghiệm giao diện
</h3>
<p>
Đây là lớp tương tác demo.
Bạn có thể thay thế khu vực này bằng
form đăng ký, sản phẩm, checkout,
chatbot hoặc bất kỳ chức năng nào.
</p>
<button
class="muathemewpgiare-button muathemewpgiare-button-primary"
id="muathemewpgiareModalAction"
>
Tiếp tục
<i data-lucide="arrow-right"></i>
</button>
</div>
</div>
<!-- =========================================
TOAST
========================================= -->
<div
class="muathemewpgiare-toast"
id="muathemewpgiareToast"
>
<div class="muathemewpgiare-toast-icon">
<i data-lucide="check"></i>
</div>
<div>
<strong>
Thành công
</strong>
<span id="muathemewpgiareToastText">
Đã thực hiện thao tác.
</span>
</div>
</div>
<!-- =========================================
LIBRARIES
========================================= -->
<!-- GSAP -->
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.7/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.7/dist/ScrollTrigger.min.js"></script>
<!-- Lenis -->
<script src="https://cdn.jsdelivr.net/npm/lenis@1.1.20/dist/lenis.min.js"></script>
<!-- AOS -->
<script src="https://unpkg.com/aos@2.3.4/dist/aos.js"></script>
<!-- Lucide -->
<script src="https://unpkg.com/lucide@latest"></script>
<!-- tsParticles -->
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/engine@3.8.1/tsparticles.engine.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/basic@3.8.1/tsparticles.basic.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/interaction-particles-collisions@3.8.1/tsparticles.interaction.particles.collisions.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/interaction-particles-links@3.8.1/tsparticles.interaction.particles.links.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/move-base@3.8.1/tsparticles.move.base.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/shape-circle@3.8.1/tsparticles.shape.circle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/updater-opacity@3.8.1/tsparticles.updater.opacity.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/updater-out-of-canvas@3.8.1/tsparticles.updater.out-of-canvas.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/updater-size@3.8.1/tsparticles.updater.size.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/move-parallax@3.8.1/tsparticles.move.parallax.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tsparticles/interaction-external-trail@3.8.1/tsparticles.interaction.external.trail.min.js"></script>
<!-- MAIN JS -->
<script src="script.js"></script>
</body>
</html>:root {
--muathemewpgiare-bg: #050507;
--muathemewpgiare-bg-2: #08080d;
--muathemewpgiare-card: rgba(255,255,255,.045);
--muathemewpgiare-card-strong: rgba(255,255,255,.075);
--muathemewpgiare-white: #ffffff;
--muathemewpgiare-text: #f5f5f7;
--muathemewpgiare-muted: #92929e;
--muathemewpgiare-purple: #8b5cf6;
--muathemewpgiare-purple-2: #6366f1;
--muathemewpgiare-blue: #38bdf8;
--muathemewpgiare-green: #34d399;
--muathemewpgiare-orange: #fb923c;
--muathemewpgiare-border: rgba(255,255,255,.09);
--muathemewpgiare-radius: 24px;
--muathemewpgiare-font:
"Be Vietnam Pro",
Inter,
system-ui,
sans-serif;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: auto;
}
body {
min-height: 100vh;
overflow-x: hidden;
color: var(--muathemewpgiare-text);
background:
radial-gradient(
circle at 50% -20%,
rgba(124,58,237,.17),
transparent 38%
),
var(--muathemewpgiare-bg);
font-family: var(--muathemewpgiare-font);
-webkit-font-smoothing: antialiased;
}
body.light {
--muathemewpgiare-bg: #f6f6fa;
--muathemewpgiare-bg-2: #ffffff;
--muathemewpgiare-card: rgba(0,0,0,.035);
--muathemewpgiare-card-strong: rgba(0,0,0,.07);
--muathemewpgiare-text: #15151b;
--muathemewpgiare-muted: #666672;
--muathemewpgiare-border: rgba(0,0,0,.09);
}
button,
a {
font-family: inherit;
}
button {
border: 0;
}
a {
color: inherit;
text-decoration: none;
}
::selection {
color: white;
background: var(--muathemewpgiare-purple);
}
/* =========================================
LOADER
========================================= */
.muathemewpgiare-loader {
position: fixed;
inset: 0;
z-index: 99999;
display: grid;
place-items: center;
background: #050507;
}
.muathemewpgiare-loader-inner {
width: 260px;
text-align: center;
}
.muathemewpgiare-loader-logo {
width: 64px;
height: 64px;
margin: 0 auto 25px;
display: grid;
place-items: center;
border: 1px solid rgba(255,255,255,.2);
border-radius: 20px;
color: white;
font-size: 25px;
font-weight: 900;
background:
linear-gradient(
135deg,
#8b5cf6,
#4f46e5
);
box-shadow:
0 0 60px rgba(139,92,246,.45);
}
.muathemewpgiare-loader-line {
height: 2px;
overflow: hidden;
background: rgba(255,255,255,.1);
}
.muathemewpgiare-loader-line span {
display: block;
width: 0;
height: 100%;
background: white;
}
.muathemewpgiare-loader-text {
margin-top: 13px;
color: #73737d;
font-size: 9px;
font-weight: 800;
letter-spacing: .3em;
}
/* =========================================
CURSOR
========================================= */
.muathemewpgiare-cursor,
.muathemewpgiare-cursor-follower {
position: fixed;
top: 0;
left: 0;
z-index: 9998;
pointer-events: none;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.muathemewpgiare-cursor {
width: 7px;
height: 7px;
background: white;
mix-blend-mode: difference;
}
.muathemewpgiare-cursor-follower {
width: 35px;
height: 35px;
border: 1px solid rgba(255,255,255,.4);
transition:
width .3s ease,
height .3s ease,
border-color .3s ease;
}
.muathemewpgiare-cursor-follower.hover {
width: 60px;
height: 60px;
border-color: rgba(167,139,250,.8);
}
/* =========================================
PROGRESS
========================================= */
.muathemewpgiare-scroll-progress {
position: fixed;
top: 0;
left: 0;
z-index: 9999;
width: 0;
height: 3px;
background:
linear-gradient(
90deg,
#7c3aed,
#38bdf8
);
box-shadow:
0 0 20px rgba(139,92,246,.8);
}
/* =========================================
PARTICLES
========================================= */
.muathemewpgiare-particles {
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
opacity: .45;
}
/* =========================================
CONTAINER
========================================= */
.muathemewpgiare-container {
width: min(1180px, calc(100% - 40px));
margin: 0 auto;
}
/* =========================================
NAV
========================================= */
.muathemewpgiare-navbar {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
width: 100%;
transition:
background .35s ease,
backdrop-filter .35s ease,
border-color .35s ease;
}
.muathemewpgiare-navbar.scrolled {
background: rgba(5,5,7,.72);
border-bottom: 1px solid var(--muathemewpgiare-border);
backdrop-filter: blur(24px);
}
.muathemewpgiare-nav-inner {
width: min(1240px, calc(100% - 40px));
height: 80px;
margin: auto;
display: flex;
align-items: center;
justify-content: space-between;
}
.muathemewpgiare-logo {
display: flex;
align-items: center;
gap: 10px;
}
.muathemewpgiare-logo-symbol {
width: 38px;
height: 38px;
display: grid;
place-items: center;
border: 1px solid rgba(255,255,255,.15);
border-radius: 12px;
background:
linear-gradient(
135deg,
#8b5cf6,
#4f46e5
);
color: white;
font-size: 15px;
font-weight: 900;
box-shadow:
0 8px 25px rgba(124,58,237,.3);
}
.muathemewpgiare-logo-text {
font-size: 12px;
font-weight: 900;
letter-spacing: .08em;
}
.muathemewpgiare-logo-text small {
display: block;
margin-top: 1px;
color: #8b5cf6;
font-size: 7px;
letter-spacing: .27em;
}
.muathemewpgiare-menu {
display: flex;
align-items: center;
gap: 36px;
}
.muathemewpgiare-menu-link {
position: relative;
color: var(--muathemewpgiare-muted);
font-size: 12px;
font-weight: 600;
transition:
color .25s ease;
}
.muathemewpgiare-menu-link::after {
content: "";
position: absolute;
left: 0;
bottom: -9px;
width: 0;
height: 2px;
border-radius: 10px;
background: var(--muathemewpgiare-purple);
transition:
width .3s ease;
}
.muathemewpgiare-menu-link:hover,
.muathemewpgiare-menu-link.active {
color: var(--muathemewpgiare-text);
}
.muathemewpgiare-menu-link:hover::after,
.muathemewpgiare-menu-link.active::after {
width: 100%;
}
.muathemewpgiare-nav-actions {
display: flex;
align-items: center;
gap: 10px;
}
.muathemewpgiare-icon-button {
width: 40px;
height: 40px;
display: grid;
place-items: center;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 12px;
color: var(--muathemewpgiare-text);
background: var(--muathemewpgiare-card);
cursor: pointer;
transition:
transform .3s ease,
background .3s ease;
}
.muathemewpgiare-icon-button:hover {
transform: rotate(15deg) scale(1.05);
background: var(--muathemewpgiare-card-strong);
}
.muathemewpgiare-button {
min-height: 52px;
padding: 0 23px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 11px;
border-radius: 15px;
color: white;
font-size: 12px;
font-weight: 800;
cursor: pointer;
transition:
transform .35s cubic-bezier(.2,.8,.2,1),
box-shadow .35s ease,
border-color .35s ease;
}
.muathemewpgiare-button svg {
width: 17px;
}
.muathemewpgiare-button-small {
min-height: 40px;
padding: 0 16px;
font-size: 11px;
background:
rgba(255,255,255,.07);
border: 1px solid var(--muathemewpgiare-border);
}
.muathemewpgiare-button-primary {
position: relative;
overflow: hidden;
background:
linear-gradient(
135deg,
#8b5cf6,
#6366f1
);
box-shadow:
0 12px 35px rgba(124,58,237,.27);
}
.muathemewpgiare-button-primary::before {
content: "";
position: absolute;
top: -100%;
left: -50%;
width: 35%;
height: 300%;
transform: rotate(25deg);
background:
linear-gradient(
90deg,
transparent,
rgba(255,255,255,.35),
transparent
);
transition:
left .7s ease;
}
.muathemewpgiare-button-primary:hover::before {
left: 120%;
}
.muathemewpgiare-button-primary:hover {
box-shadow:
0 20px 50px rgba(124,58,237,.42);
}
.muathemewpgiare-button-ghost {
border: 1px solid var(--muathemewpgiare-border);
color: var(--muathemewpgiare-text);
background:
rgba(255,255,255,.025);
}
.muathemewpgiare-button-ghost:hover {
background:
rgba(255,255,255,.07);
transform: translateY(-3px);
}
.muathemewpgiare-mobile-toggle {
display: none;
width: 42px;
height: 42px;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 12px;
color: white;
background: var(--muathemewpgiare-card);
}
/* =========================================
HERO
========================================= */
.muathemewpgiare-hero {
position: relative;
min-height: 100vh;
padding:
150px 0
100px;
overflow: hidden;
display: flex;
align-items: center;
}
.muathemewpgiare-hero-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(
rgba(255,255,255,.035) 1px,
transparent 1px
),
linear-gradient(
90deg,
rgba(255,255,255,.035) 1px,
transparent 1px
);
background-size:
70px 70px;
mask-image:
radial-gradient(
ellipse at center,
black 10%,
transparent 72%
);
opacity: .45;
}
.muathemewpgiare-hero-orb {
position: absolute;
border-radius: 50%;
filter: blur(90px);
pointer-events: none;
}
.muathemewpgiare-orb-one {
width: 500px;
height: 500px;
top: -200px;
left: -100px;
background:
rgba(124,58,237,.17);
}
.muathemewpgiare-orb-two {
width: 450px;
height: 450px;
right: -180px;
bottom: -100px;
background:
rgba(37,99,235,.12);
}
.muathemewpgiare-hero .muathemewpgiare-container {
position: relative;
z-index: 2;
display: grid;
grid-template-columns: .9fr 1.1fr;
align-items: center;
gap: 70px;
}
.muathemewpgiare-hero-content {
max-width: 650px;
}
.muathemewpgiare-eyebrow {
width: max-content;
display: flex;
align-items: center;
gap: 9px;
padding: 8px 12px;
border: 1px solid rgba(139,92,246,.24);
border-radius: 999px;
color: #c4b5fd;
font-size: 9px;
font-weight: 800;
letter-spacing: .18em;
background:
rgba(124,58,237,.07);
}
.muathemewpgiare-eyebrow-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #a78bfa;
box-shadow:
0 0 12px #a78bfa;
animation:
muathemewpgiarePulse 2s infinite;
}
@keyframes muathemewpgiarePulse {
50% {
transform: scale(1.6);
opacity: .5;
}
}
.muathemewpgiare-eyebrow-arrow {
color: #7c3aed;
}
.muathemewpgiare-hero-title {
margin-top: 30px;
font-size:
clamp(
54px,
6.4vw,
90px
);
line-height: .99;
letter-spacing: -.065em;
font-weight: 900;
}
.muathemewpgiare-gradient-text {
display: block;
background:
linear-gradient(
100deg,
#ffffff,
#a78bfa,
#60a5fa,
#ffffff
);
background-size: 300% auto;
color: transparent;
background-clip: text;
animation:
muathemewpgiareGradient 6s linear infinite;
}
@keyframes muathemewpgiareGradient {
to {
background-position: 300% center;
}
}
.muathemewpgiare-hero-description {
max-width: 590px;
margin-top: 28px;
color: var(--muathemewpgiare-muted);
font-size: 16px;
line-height: 1.9;
}
.muathemewpgiare-hero-buttons {
margin-top: 35px;
display: flex;
gap: 12px;
}
.muathemewpgiare-trust-row {
margin-top: 40px;
display: flex;
align-items: center;
gap: 15px;
color: var(--muathemewpgiare-muted);
font-size: 10px;
}
.muathemewpgiare-trust-row strong {
display: block;
color: var(--muathemewpgiare-text);
font-size: 13px;
}
.muathemewpgiare-trust-row small {
font-size: 9px;
}
.muathemewpgiare-avatar-stack {
display: flex;
}
.muathemewpgiare-avatar-stack span {
width: 31px;
height: 31px;
margin-left: -7px;
display: grid;
place-items: center;
border: 2px solid var(--muathemewpgiare-bg);
border-radius: 50%;
color: white;
background:
linear-gradient(
135deg,
#8b5cf6,
#2563eb
);
font-size: 8px;
font-weight: 800;
}
.muathemewpgiare-avatar-stack span:first-child {
margin-left: 0;
}
.muathemewpgiare-trust-divider {
width: 1px;
height: 25px;
background: var(--muathemewpgiare-border);
}
/* =========================================
HERO DASHBOARD
========================================= */
.muathemewpgiare-hero-visual {
position: relative;
perspective: 1400px;
}
.muathemewpgiare-dashboard {
position: relative;
overflow: hidden;
border: 1px solid rgba(255,255,255,.12);
border-radius: 25px;
background:
rgba(13,13,20,.78);
box-shadow:
0 50px 120px rgba(0,0,0,.5),
0 0 90px rgba(124,58,237,.1);
transform:
perspective(1400px)
rotateY(-5deg)
rotateX(3deg);
}
.muathemewpgiare-dashboard-glow {
position: absolute;
top: -50%;
right: -20%;
width: 400px;
height: 400px;
border-radius: 50%;
background:
rgba(124,58,237,.15);
filter: blur(70px);
}
.muathemewpgiare-dashboard-top {
height: 48px;
padding: 0 18px;
display: flex;
align-items: center;
gap: 15px;
border-bottom: 1px solid rgba(255,255,255,.07);
}
.muathemewpgiare-window-dots {
display: flex;
gap: 5px;
}
.muathemewpgiare-window-dots span {
width: 6px;
height: 6px;
border-radius: 50%;
background: #52525b;
}
.muathemewpgiare-dashboard-address {
flex: 1;
padding: 6px 13px;
border-radius: 7px;
color: #71717a;
background: rgba(255,255,255,.035);
font-size: 8px;
}
.muathemewpgiare-dashboard-top svg {
width: 15px;
color: #71717a;
}
.muathemewpgiare-dashboard-body {
display: flex;
min-height: 400px;
}
.muathemewpgiare-dashboard-sidebar {
width: 58px;
padding: 17px 10px;
display: flex;
align-items: center;
flex-direction: column;
gap: 18px;
border-right: 1px solid rgba(255,255,255,.06);
}
.muathemewpgiare-mini-logo {
width: 27px;
height: 27px;
display: grid;
place-items: center;
margin-bottom: 10px;
border-radius: 8px;
color: white;
background:
linear-gradient(
135deg,
#8b5cf6,
#4f46e5
);
font-size: 10px;
font-weight: 900;
}
.muathemewpgiare-side-icon {
width: 30px;
height: 30px;
display: grid;
place-items: center;
border-radius: 9px;
color: #62626e;
transition: .3s ease;
}
.muathemewpgiare-side-icon.active,
.muathemewpgiare-side-icon:hover {
color: white;
background:
rgba(139,92,246,.15);
}
.muathemewpgiare-side-icon svg {
width: 14px;
}
.muathemewpgiare-dashboard-main {
flex: 1;
padding: 27px;
}
.muathemewpgiare-dashboard-heading {
display: flex;
justify-content: space-between;
align-items: center;
}
.muathemewpgiare-dashboard-heading span {
color: #777783;
font-size: 8px;
}
.muathemewpgiare-dashboard-heading h3 {
margin-top: 4px;
font-size: 17px;
letter-spacing: -.04em;
}
.muathemewpgiare-dashboard-action {
display: flex;
align-items: center;
gap: 5px;
padding: 7px 10px;
border: 1px solid rgba(255,255,255,.08);
border-radius: 7px;
color: #aaaab5;
background: rgba(255,255,255,.035);
font-size: 8px;
}
.muathemewpgiare-dashboard-action svg {
width: 11px;
}
.muathemewpgiare-stat-grid {
margin-top: 22px;
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 10px;
}
.muathemewpgiare-stat-card {
padding: 14px;
border: 1px solid rgba(255,255,255,.07);
border-radius: 12px;
background:
rgba(255,255,255,.025);
}
.muathemewpgiare-stat-card span {
display: block;
color: #71717a;
font-size: 7px;
}
.muathemewpgiare-stat-card strong {
display: block;
margin-top: 7px;
font-size: 16px;
}
.muathemewpgiare-stat-card small {
display: block;
margin-top: 5px;
font-size: 7px;
}
.positive {
color: #34d399;
}
.muathemewpgiare-chart-card {
margin-top: 10px;
padding: 18px;
border: 1px solid rgba(255,255,255,.07);
border-radius: 13px;
background:
rgba(255,255,255,.02);
}
.muathemewpgiare-chart-header {
display: flex;
justify-content: space-between;
}
.muathemewpgiare-chart-header span {
display: block;
color: #71717a;
font-size: 7px;
}
.muathemewpgiare-chart-header strong {
display: block;
margin-top: 5px;
font-size: 16px;
}
.muathemewpgiare-chart-period {
align-self: flex-start;
padding: 5px 7px;
border-radius: 5px;
background: rgba(255,255,255,.04);
}
.muathemewpgiare-chart {
position: relative;
height: 145px;
margin-top: 17px;
}
.muathemewpgiare-chart::before {
content: "";
position: absolute;
inset: 0;
background:
repeating-linear-gradient(
to bottom,
rgba(255,255,255,.05) 0,
rgba(255,255,255,.05) 1px,
transparent 1px,
transparent 35px
);
}
.muathemewpgiare-chart-bars {
position: absolute;
inset: 0;
display: flex;
align-items: end;
justify-content: space-around;
gap: 5px;
}
.muathemewpgiare-chart-bars span {
width: 5%;
border-radius: 5px 5px 2px 2px;
background:
linear-gradient(
to top,
rgba(124,58,237,.2),
#8b5cf6
);
box-shadow:
0 0 15px rgba(124,58,237,.2);
animation:
muathemewpgiareBars 2s ease-in-out infinite alternate;
}
.muathemewpgiare-chart-bars span:nth-child(even) {
animation-delay: .3s;
}
@keyframes muathemewpgiareBars {
from {
transform: scaleY(.85);
}
to {
transform: scaleY(1);
}
}
.muathemewpgiare-floating-card {
position: absolute;
display: flex;
align-items: center;
gap: 10px;
padding: 11px 14px;
border: 1px solid rgba(255,255,255,.1);
border-radius: 13px;
background:
rgba(15,15,22,.82);
backdrop-filter: blur(18px);
box-shadow:
0 15px 40px rgba(0,0,0,.35);
animation:
muathemewpgiareFloat 5s ease-in-out infinite;
}
.muathemewpgiare-floating-card.card-one {
top: 18%;
right: -35px;
}
.muathemewpgiare-floating-card.card-two {
bottom: 13%;
left: -35px;
animation-delay: -2s;
}
.muathemewpgiare-floating-icon {
width: 30px;
height: 30px;
display: grid;
place-items: center;
border-radius: 9px;
}
.muathemewpgiare-floating-icon.purple {
color: #c4b5fd;
background: rgba(139,92,246,.15);
}
.muathemewpgiare-floating-icon.green {
color: #6ee7b7;
background: rgba(52,211,153,.12);
}
.muathemewpgiare-floating-icon svg {
width: 14px;
}
.muathemewpgiare-floating-card small {
display: block;
color: #73737d;
font-size: 7px;
}
.muathemewpgiare-floating-card strong {
display: block;
margin-top: 2px;
font-size: 10px;
}
@keyframes muathemewpgiareFloat {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-12px);
}
}
/* =========================================
SCROLL HINT
========================================= */
.muathemewpgiare-scroll-hint {
position: absolute;
bottom: 25px;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
color: #62626c;
font-size: 7px;
letter-spacing: .25em;
}
.muathemewpgiare-scroll-line {
width: 1px;
height: 35px;
background:
linear-gradient(
to bottom,
#8b5cf6,
transparent
);
animation:
muathemewpgiareScrollLine 1.5s infinite;
}
@keyframes muathemewpgiareScrollLine {
50% {
transform: translateY(8px);
opacity: .4;
}
}
/* =========================================
MARQUEE
========================================= */
.muathemewpgiare-marquee {
overflow: hidden;
padding: 27px 0;
border-top: 1px solid var(--muathemewpgiare-border);
border-bottom: 1px solid var(--muathemewpgiare-border);
background:
rgba(255,255,255,.018);
}
.muathemewpgiare-marquee-track {
width: max-content;
display: flex;
align-items: center;
gap: 35px;
color: #595963;
font-size: 11px;
font-weight: 900;
letter-spacing: .18em;
animation:
muathemewpgiareMarquee 25s linear infinite;
}
.muathemewpgiare-marquee-track b {
color: #8b5cf6;
}
@keyframes muathemewpgiareMarquee {
to {
transform: translateX(-50%);
}
}
/* =========================================
SECTION
========================================= */
.muathemewpgiare-section {
padding: 150px 0;
}
.muathemewpgiare-section-heading {
display: grid;
grid-template-columns: 100px 1fr;
gap: 30px;
margin-bottom: 65px;
}
.muathemewpgiare-section-number {
padding-top: 10px;
color: #7c3aed;
font-family: monospace;
font-size: 12px;
}
.muathemewpgiare-kicker {
color: #8b5cf6;
font-size: 9px;
font-weight: 900;
letter-spacing: .22em;
}
.muathemewpgiare-section-heading h2 {
max-width: 700px;
margin-top: 15px;
font-size: clamp(38px, 5vw, 66px);
line-height: 1.02;
letter-spacing: -.06em;
}
.muathemewpgiare-section-heading h2 em {
color: #858590;
font-style: normal;
}
.muathemewpgiare-section-heading p {
max-width: 520px;
margin-top: 20px;
color: var(--muathemewpgiare-muted);
font-size: 14px;
line-height: 1.8;
}
/* =========================================
FEATURES
========================================= */
.muathemewpgiare-feature-grid {
display: grid;
grid-template-columns:
1.3fr
1fr
1fr;
gap: 16px;
}
.muathemewpgiare-feature-card {
position: relative;
min-height: 370px;
padding: 30px;
overflow: hidden;
border: 1px solid var(--muathemewpgiare-border);
border-radius: var(--muathemewpgiare-radius);
background:
linear-gradient(
145deg,
rgba(255,255,255,.055),
rgba(255,255,255,.018)
);
transition:
transform .5s cubic-bezier(.2,.8,.2,1),
border-color .4s ease;
}
.muathemewpgiare-feature-card:hover {
transform: translateY(-8px);
border-color:
rgba(139,92,246,.35);
}
.muathemewpgiare-feature-card.large {
grid-row: span 2;
min-height: 756px;
}
.muathemewpgiare-card-number {
position: absolute;
top: 25px;
right: 28px;
color: #4d4d57;
font-family: monospace;
font-size: 10px;
}
.muathemewpgiare-feature-icon {
width: 48px;
height: 48px;
display: grid;
place-items: center;
margin-bottom: 50px;
border: 1px solid rgba(139,92,246,.2);
border-radius: 14px;
color: #c4b5fd;
background:
rgba(139,92,246,.1);
}
.muathemewpgiare-feature-icon.blue {
color: #7dd3fc;
background: rgba(56,189,248,.08);
}
.muathemewpgiare-feature-icon.orange {
color: #fdba74;
background: rgba(251,146,60,.08);
}
.muathemewpgiare-feature-icon.green {
color: #6ee7b7;
background: rgba(52,211,153,.08);
}
.muathemewpgiare-feature-icon svg {
width: 20px;
}
.muathemewpgiare-feature-card h3 {
font-size: 22px;
letter-spacing: -.035em;
}
.muathemewpgiare-feature-card p {
max-width: 400px;
margin-top: 13px;
color: var(--muathemewpgiare-muted);
font-size: 12px;
line-height: 1.8;
}
/* FEATURE VISUAL */
.muathemewpgiare-feature-visual {
position: absolute;
left: 30px;
right: 30px;
bottom: 30px;
height: 220px;
display: grid;
place-items: center;
border: 1px solid rgba(255,255,255,.06);
border-radius: 20px;
background:
radial-gradient(
circle,
rgba(124,58,237,.14),
transparent 60%
);
}
.muathemewpgiare-mini-button {
display: flex;
align-items: center;
gap: 15px;
padding: 15px 20px;
border: 1px solid rgba(255,255,255,.12);
border-radius: 13px;
color: white;
background:
rgba(255,255,255,.07);
box-shadow:
0 20px 50px rgba(0,0,0,.3);
transition: .35s ease;
}
.muathemewpgiare-mini-button:hover {
transform:
translateY(-5px)
scale(1.04);
background:
rgba(139,92,246,.2);
box-shadow:
0 25px 60px rgba(124,58,237,.25);
}
.muathemewpgiare-mini-button svg {
width: 15px;
}
/* GLASS DEMO */
.muathemewpgiare-glass-demo {
position: absolute;
left: 30px;
right: 30px;
bottom: 30px;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
border-radius: 18px;
background:
linear-gradient(
135deg,
rgba(56,189,248,.09),
rgba(124,58,237,.1)
);
}
.muathemewpgiare-glass-demo span {
width: 70px;
height: 70px;
border: 1px solid rgba(255,255,255,.16);
border-radius: 18px;
background:
rgba(255,255,255,.06);
backdrop-filter: blur(12px);
transform:
rotate(
calc(var(--i, 0) * 8deg)
);
}
.muathemewpgiare-glass-demo span:nth-child(2) {
transform:
translateY(-14px)
scale(1.15);
}
/* MAGNETIC */
.muathemewpgiare-magnetic-demo {
position: absolute;
left: 30px;
right: 30px;
bottom: 30px;
height: 120px;
display: grid;
place-items: center;
border-radius: 18px;
background:
radial-gradient(
circle,
rgba(251,146,60,.12),
transparent 65%
);
}
.muathemewpgiare-magnetic-demo span {
width: 50px;
height: 50px;
border-radius: 50%;
background:
linear-gradient(
135deg,
#fb923c,
#f97316
);
box-shadow:
0 0 45px rgba(251,146,60,.45);
animation:
muathemewpgiareMagnetDemo 3s ease-in-out infinite;
}
@keyframes muathemewpgiareMagnetDemo {
0%,
100% {
transform: translate(-35px, 0);
}
50% {
transform: translate(35px, 0);
}
}
/* SPEED */
.muathemewpgiare-speed {
position: absolute;
left: 30px;
right: 30px;
bottom: 30px;
}
.muathemewpgiare-speed-track {
height: 5px;
overflow: hidden;
border-radius: 10px;
background: rgba(255,255,255,.07);
}
.muathemewpgiare-speed-track span {
display: block;
width: 98%;
height: 100%;
border-radius: inherit;
background:
linear-gradient(
90deg,
#10b981,
#34d399
);
box-shadow:
0 0 15px rgba(52,211,153,.5);
}
.muathemewpgiare-speed strong {
display: block;
margin-top: 15px;
color: #6ee7b7;
font-size: 30px;
}
/* =========================================
SHOWCASE
========================================= */
.muathemewpgiare-showcase-section {
padding: 130px 0;
background:
linear-gradient(
180deg,
transparent,
rgba(124,58,237,.035),
transparent
);
}
.muathemewpgiare-showcase-heading {
display: flex;
justify-content: space-between;
align-items: end;
gap: 50px;
margin-bottom: 55px;
}
.muathemewpgiare-showcase-heading h2 {
margin-top: 15px;
font-size: clamp(40px, 5vw, 67px);
line-height: 1;
letter-spacing: -.065em;
}
.muathemewpgiare-showcase-heading h2 span {
display: block;
color: #73737d;
}
.muathemewpgiare-showcase-heading p {
max-width: 360px;
color: var(--muathemewpgiare-muted);
font-size: 12px;
line-height: 1.8;
}
.muathemewpgiare-showcase-grid {
display: grid;
grid-template-columns:
1.4fr
.8fr
.8fr;
grid-template-rows: 430px;
gap: 16px;
}
.muathemewpgiare-showcase-card {
position: relative;
overflow: hidden;
padding: 30px;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 26px;
}
.showcase-main {
background:
radial-gradient(
circle at 50% 60%,
rgba(124,58,237,.32),
transparent 45%
),
#111019;
}
.muathemewpgiare-showcase-top {
display: flex;
justify-content: space-between;
color: #7c7c88;
font-size: 8px;
font-weight: 800;
letter-spacing: .18em;
}
.muathemewpgiare-showcase-top svg {
width: 18px;
}
.muathemewpgiare-showcase-content {
position: absolute;
left: 30px;
bottom: 35px;
z-index: 3;
}
.muathemewpgiare-showcase-content h3 {
font-size: 43px;
line-height: .94;
letter-spacing: -.055em;
}
.muathemewpgiare-showcase-content p {
margin-top: 17px;
color: #858590;
font-size: 10px;
}
.muathemewpgiare-showcase-orb {
position: absolute;
width: 210px;
height: 210px;
top: 80px;
right: 90px;
border-radius: 50%;
background:
radial-gradient(
circle at 35% 30%,
#c4b5fd,
#7c3aed 35%,
#1e1b4b 70%,
transparent 71%
);
filter:
drop-shadow(
0 0 60px rgba(139,92,246,.55)
);
animation:
muathemewpgiareOrb 5s ease-in-out infinite;
}
@keyframes muathemewpgiareOrb {
50% {
transform:
translateY(-20px)
scale(1.08);
}
}
.muathemewpgiare-showcase-ring {
position: absolute;
border: 1px solid rgba(196,181,253,.25);
border-radius: 50%;
transform:
rotateX(65deg)
rotateY(15deg);
animation:
muathemewpgiareRing 8s linear infinite;
}
.ring-one {
width: 380px;
height: 150px;
top: 100px;
right: 10px;
}
.ring-two {
width: 430px;
height: 180px;
top: 85px;
right: -15px;
animation-direction: reverse;
}
@keyframes muathemewpgiareRing {
to {
transform:
rotateX(65deg)
rotateY(15deg)
rotateZ(360deg);
}
}
.showcase-dark {
background:
linear-gradient(
145deg,
#13131a,
#08080c
);
}
.muathemewpgiare-showcase-label {
color: #71717a;
font-size: 8px;
font-weight: 800;
letter-spacing: .18em;
}
.muathemewpgiare-mini-chart {
height: 190px;
margin-top: 35px;
display: flex;
align-items: end;
gap: 9px;
}
.muathemewpgiare-mini-chart span {
flex: 1;
border-radius: 5px 5px 0 0;
background:
linear-gradient(
to top,
rgba(124,58,237,.15),
#8b5cf6
);
}
.showcase-dark strong {
position: absolute;
bottom: 30px;
font-size: 30px;
letter-spacing: -.05em;
}
.showcase-purple {
background:
linear-gradient(
145deg,
#3b1f75,
#1e1640
);
}
.showcase-purple > svg {
width: 30px;
margin-top: 30px;
color: #ddd6fe;
}
.showcase-purple h3 {
margin-top: 80px;
font-size: 27px;
line-height: 1;
letter-spacing: -.05em;
}
.showcase-purple p {
margin-top: 15px;
color: #b8acd7;
font-size: 10px;
}
.muathemewpgiare-command-pills {
position: absolute;
left: 30px;
bottom: 30px;
display: flex;
gap: 7px;
}
.muathemewpgiare-command-pills span {
padding: 7px 9px;
border: 1px solid rgba(255,255,255,.15);
border-radius: 7px;
color: #d8b4fe;
background:
rgba(255,255,255,.07);
font-family: monospace;
font-size: 8px;
}
/* =========================================
PRICING
========================================= */
.muathemewpgiare-pricing-heading {
text-align: center;
}
.muathemewpgiare-pricing-heading h2 {
margin-top: 17px;
font-size: clamp(40px, 5vw, 65px);
letter-spacing: -.06em;
}
.muathemewpgiare-pricing-heading h2 span {
color: #8b5cf6;
}
.muathemewpgiare-pricing-heading p {
max-width: 500px;
margin: 20px auto 0;
color: var(--muathemewpgiare-muted);
font-size: 12px;
}
.muathemewpgiare-pricing-grid {
margin-top: 60px;
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 16px;
}
.muathemewpgiare-price-card {
position: relative;
padding: 34px;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 24px;
background:
linear-gradient(
145deg,
rgba(255,255,255,.05),
rgba(255,255,255,.018)
);
transition:
transform .4s ease,
border-color .4s ease;
}
.muathemewpgiare-price-card:hover {
transform: translateY(-8px);
border-color:
rgba(139,92,246,.35);
}
.muathemewpgiare-price-card.featured {
border-color:
rgba(139,92,246,.45);
background:
linear-gradient(
145deg,
rgba(124,58,237,.13),
rgba(255,255,255,.025)
);
box-shadow:
0 30px 80px rgba(124,58,237,.1);
}
.muathemewpgiare-popular {
position: absolute;
top: 20px;
right: 20px;
padding: 6px 9px;
border-radius: 6px;
color: #ddd6fe;
background:
rgba(139,92,246,.15);
font-size: 7px;
font-weight: 900;
letter-spacing: .12em;
}
.muathemewpgiare-price-label {
color: #8b5cf6;
font-size: 8px;
font-weight: 900;
letter-spacing: .2em;
}
.muathemewpgiare-price-card h3 {
margin-top: 13px;
font-size: 23px;
}
.muathemewpgiare-price-card > p {
margin-top: 8px;
color: var(--muathemewpgiare-muted);
font-size: 10px;
}
.muathemewpgiare-price {
margin-top: 30px;
font-size: 39px;
font-weight: 900;
letter-spacing: -.06em;
}
.muathemewpgiare-price small {
color: #6f6f79;
font-size: 9px;
letter-spacing: 0;
}
.muathemewpgiare-price-button {
width: 100%;
height: 48px;
margin-top: 25px;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 11px;
color: var(--muathemewpgiare-text);
background:
rgba(255,255,255,.04);
font-size: 11px;
font-weight: 800;
cursor: pointer;
transition: .3s ease;
}
.muathemewpgiare-price-button:hover {
background:
rgba(255,255,255,.09);
transform: translateY(-2px);
}
.muathemewpgiare-price-button.primary {
border-color: transparent;
background:
linear-gradient(
135deg,
#8b5cf6,
#6366f1
);
box-shadow:
0 12px 30px rgba(124,58,237,.25);
}
.muathemewpgiare-price-card ul {
margin-top: 30px;
display: grid;
gap: 14px;
list-style: none;
}
.muathemewpgiare-price-card li {
display: flex;
align-items: center;
gap: 9px;
color: #92929d;
font-size: 10px;
}
.muathemewpgiare-price-card li svg {
width: 14px;
color: #8b5cf6;
}
/* =========================================
CTA
========================================= */
.muathemewpgiare-cta-section {
position: relative;
padding: 80px 0 150px;
overflow: hidden;
}
.muathemewpgiare-cta-glow {
position: absolute;
left: 50%;
bottom: 0;
width: 600px;
height: 350px;
transform: translateX(-50%);
border-radius: 50%;
background:
rgba(124,58,237,.13);
filter: blur(90px);
}
.muathemewpgiare-cta {
position: relative;
padding:
100px 30px;
overflow: hidden;
border: 1px solid rgba(139,92,246,.2);
border-radius: 30px;
text-align: center;
background:
radial-gradient(
circle at 50% 100%,
rgba(124,58,237,.18),
transparent 55%
),
rgba(255,255,255,.025);
}
.muathemewpgiare-cta-icon {
width: 55px;
height: 55px;
margin: 0 auto 25px;
display: grid;
place-items: center;
border: 1px solid rgba(139,92,246,.3);
border-radius: 16px;
color: #c4b5fd;
background:
rgba(139,92,246,.1);
box-shadow:
0 0 50px rgba(139,92,246,.2);
}
.muathemewpgiare-cta-icon svg {
width: 22px;
}
.muathemewpgiare-cta h2 {
margin-top: 18px;
font-size: clamp(43px, 6vw, 75px);
line-height: .98;
letter-spacing: -.065em;
}
.muathemewpgiare-cta p {
max-width: 500px;
margin: 22px auto 30px;
color: var(--muathemewpgiare-muted);
font-size: 12px;
line-height: 1.8;
}
/* =========================================
FOOTER
========================================= */
.muathemewpgiare-footer {
padding: 80px 0 25px;
border-top: 1px solid var(--muathemewpgiare-border);
}
.muathemewpgiare-footer-grid {
display: grid;
grid-template-columns: 1fr .6fr;
}
.muathemewpgiare-footer-grid > div:first-child p {
max-width: 280px;
margin-top: 20px;
color: var(--muathemewpgiare-muted);
font-size: 11px;
line-height: 1.8;
}
.muathemewpgiare-footer-links {
display: flex;
justify-content: flex-end;
gap: 100px;
}
.muathemewpgiare-footer-links div {
display: flex;
flex-direction: column;
gap: 12px;
}
.muathemewpgiare-footer-links strong {
margin-bottom: 5px;
font-size: 10px;
}
.muathemewpgiare-footer-links a {
color: #70707a;
font-size: 10px;
transition: color .25s ease;
}
.muathemewpgiare-footer-links a:hover {
color: white;
}
.muathemewpgiare-footer-bottom {
margin-top: 70px;
padding-top: 20px;
display: flex;
justify-content: space-between;
border-top: 1px solid var(--muathemewpgiare-border);
color: #55555f;
font-size: 8px;
}
/* =========================================
MODAL
========================================= */
.muathemewpgiare-modal {
position: fixed;
inset: 0;
z-index: 10000;
display: none;
align-items: center;
justify-content: center;
padding: 20px;
}
.muathemewpgiare-modal.active {
display: flex;
}
.muathemewpgiare-modal-backdrop {
position: absolute;
inset: 0;
background:
rgba(0,0,0,.75);
backdrop-filter: blur(15px);
}
.muathemewpgiare-modal-box {
position: relative;
z-index: 2;
width: min(480px,100%);
padding: 40px;
border: 1px solid rgba(255,255,255,.12);
border-radius: 25px;
background:
#101016;
box-shadow:
0 50px 100px rgba(0,0,0,.6);
transform: translateY(20px) scale(.95);
opacity: 0;
transition:
.4s cubic-bezier(.2,.8,.2,1);
}
.muathemewpgiare-modal.active .muathemewpgiare-modal-box {
transform: translateY(0) scale(1);
opacity: 1;
}
.muathemewpgiare-modal-close {
position: absolute;
top: 17px;
right: 17px;
width: 35px;
height: 35px;
display: grid;
place-items: center;
border-radius: 10px;
color: #aaa;
background:
rgba(255,255,255,.05);
cursor: pointer;
}
.muathemewpgiare-modal-icon {
width: 50px;
height: 50px;
margin-bottom: 25px;
display: grid;
place-items: center;
border-radius: 15px;
color: #c4b5fd;
background:
rgba(139,92,246,.12);
}
.muathemewpgiare-modal-icon svg {
width: 21px;
}
.muathemewpgiare-modal-box h3 {
margin-top: 15px;
font-size: 27px;
letter-spacing: -.04em;
}
.muathemewpgiare-modal-box p {
margin: 15px 0 25px;
color: var(--muathemewpgiare-muted);
font-size: 12px;
line-height: 1.8;
}
/* =========================================
TOAST
========================================= */
.muathemewpgiare-toast {
position: fixed;
right: 25px;
bottom: 25px;
z-index: 11000;
min-width: 260px;
padding: 13px;
display: flex;
align-items: center;
gap: 11px;
border: 1px solid rgba(255,255,255,.1);
border-radius: 15px;
background:
rgba(18,18,25,.9);
backdrop-filter: blur(20px);
box-shadow:
0 20px 60px rgba(0,0,0,.4);
transform:
translateY(120px);
opacity: 0;
transition:
.45s cubic-bezier(.2,.8,.2,1);
}
.muathemewpgiare-toast.show {
transform: translateY(0);
opacity: 1;
}
.muathemewpgiare-toast-icon {
width: 32px;
height: 32px;
display: grid;
place-items: center;
border-radius: 10px;
color: #6ee7b7;
background:
rgba(52,211,153,.1);
}
.muathemewpgiare-toast-icon svg {
width: 15px;
}
.muathemewpgiare-toast strong,
.muathemewpgiare-toast span {
display: block;
}
.muathemewpgiare-toast strong {
font-size: 10px;
}
.muathemewpgiare-toast span {
margin-top: 2px;
color: #777783;
font-size: 8px;
}
/* =========================================
MOBILE
========================================= */
@media (max-width: 1050px) {
.muathemewpgiare-menu {
display: none;
}
.muathemewpgiare-nav-actions {
margin-left: auto;
margin-right: 10px;
}
.muathemewpgiare-mobile-toggle {
display: grid;
place-items: center;
}
.muathemewpgiare-hero .muathemewpgiare-container {
grid-template-columns: 1fr;
}
.muathemewpgiare-hero-content {
max-width: 800px;
}
.muathemewpgiare-hero-visual {
max-width: 850px;
}
.muathemewpgiare-feature-grid {
grid-template-columns: repeat(2,1fr);
}
.muathemewpgiare-feature-card.large {
grid-row: auto;
min-height: 500px;
}
.muathemewpgiare-showcase-grid {
grid-template-columns: 1fr 1fr;
}
.showcase-main {
grid-column: span 2;
}
.muathemewpgiare-pricing-grid {
grid-template-columns: 1fr;
}
.muathemewpgiare-price-card {
max-width: 550px;
width: 100%;
margin: auto;
}
}
@media (max-width: 700px) {
.muathemewpgiare-container {
width: min(100% - 28px,1180px);
}
.muathemewpgiare-nav-inner {
width: calc(100% - 28px);
}
.muathemewpgiare-logo-text {
font-size: 10px;
}
.muathemewpgiare-nav-actions {
display: none;
}
.muathemewpgiare-mobile-menu {
position: fixed;
top: 80px;
left: 14px;
right: 14px;
z-index: 999;
padding: 20px;
display: flex;
flex-direction: column;
gap: 5px;
border: 1px solid var(--muathemewpgiare-border);
border-radius: 18px;
background:
rgba(12,12,17,.92);
backdrop-filter: blur(25px);
transform: translateY(-20px);
opacity: 0;
visibility: hidden;
transition: .3s ease;
}
.muathemewpgiare-mobile-menu.active {
transform: translateY(0);
opacity: 1;
visibility: visible;
}
.muathemewpgiare-mobile-menu a {
padding: 14px;
border-radius: 10px;
color: #aaa;
font-size: 12px;
}
.muathemewpgiare-mobile-menu a:hover {
background: rgba(255,255,255,.05);
color: white;
}
.muathemewpgiare-hero {
padding-top: 130px;
}
.muathemewpgiare-hero-title {
font-size: 52px;
}
.muathemewpgiare-hero-description {
font-size: 13px;
}
.muathemewpgiare-hero-buttons {
flex-direction: column;
}
.muathemewpgiare-button {
width: 100%;
}
.muathemewpgiare-trust-row {
flex-wrap: wrap;
}
.muathemewpgiare-dashboard {
transform: none;
}
.muathemewpgiare-dashboard-body {
min-height: 350px;
}
.muathemewpgiare-dashboard-sidebar {
display: none;
}
.muathemewpgiare-dashboard-main {
padding: 17px;
}
.muathemewpgiare-stat-grid {
grid-template-columns: 1fr;
}
.muathemewpgiare-stat-card:nth-child(3) {
display: none;
}
.muathemewpgiare-floating-card {
display: none;
}
.muathemewpgiare-section {
padding: 90px 0;
}
.muathemewpgiare-section-heading {
display: block;
}
.muathemewpgiare-section-number {
display: block;
margin-bottom: 20px;
}
.muathemewpgiare-feature-grid {
grid-template-columns: 1fr;
}
.muathemewpgiare-feature-card,
.muathemewpgiare-feature-card.large {
min-height: 400px;
}
.muathemewpgiare-showcase-heading {
display: block;
}
.muathemewpgiare-showcase-heading p {
margin-top: 20px;
}
.muathemewpgiare-showcase-grid {
grid-template-columns: 1fr;
grid-template-rows: auto;
}
.showcase-main {
grid-column: auto;
min-height: 430px;
}
.showcase-dark,
.showcase-purple {
min-height: 300px;
}
.muathemewpgiare-showcase-orb {
right: 20px;
}
.muathemewpgiare-footer-grid {
grid-template-columns: 1fr;
}
.muathemewpgiare-footer-links {
justify-content: flex-start;
margin-top: 50px;
gap: 60px;
}
.muathemewpgiare-footer-bottom {
flex-direction: column;
gap: 10px;
}
.muathemewpgiare-cursor,
.muathemewpgiare-cursor-follower {
display: none;
}
.muathemewpgiare-scroll-hint {
display: none;
}
.muathemewpgiare-cta {
padding: 70px 20px;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
scroll-behavior: auto !important;
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
}
}"use strict";
/*
* =========================================================
* MUATHEMEWPGIARE PREMIUM INTERACTION ENGINE
* Author: muathemewpgiare.com
* =========================================================
*/
/* =========================================================
GLOBAL
========================================================= */
const $ = (selector, parent = document) =>
parent.querySelector(selector);
const $$ = (selector, parent = document) =>
[...parent.querySelectorAll(selector)];
/* =========================================================
LOADER
========================================================= */
window.addEventListener("load", () => {
const loader = $("#muathemewpgiareLoader");
const line = $(".muathemewpgiare-loader-line span");
if (line) {
gsap.to(line, {
width: "100%",
duration: 1.1,
ease: "power3.inOut"
});
}
setTimeout(() => {
gsap.to(loader, {
opacity: 0,
duration: .7,
ease: "power2.out",
onComplete: () => {
loader.remove();
}
});
}, 1200);
});
/* =========================================================
LUCIDE
========================================================= */
if (window.lucide) {
lucide.createIcons();
}
/* =========================================================
AOS
========================================================= */
if (window.AOS) {
AOS.init({
duration: 850,
easing: "ease-out-cubic",
once: true,
offset: 70
});
}
/* =========================================================
LENIS SMOOTH SCROLL
========================================================= */
let muathemewpgiareLenis = null;
if (window.Lenis) {
muathemewpgiareLenis = new Lenis({
duration: 1.15,
smoothWheel: true,
wheelMultiplier: .9,
touchMultiplier: 1.1
});
function muathemewpgiareLenisFrame(time) {
muathemewpgiareLenis.raf(time);
requestAnimationFrame(
muathemewpgiareLenisFrame
);
}
requestAnimationFrame(
muathemewpgiareLenisFrame
);
}
/* =========================================================
GSAP
========================================================= */
if (window.gsap) {
gsap.registerPlugin(ScrollTrigger);
/* HERO INTRO */
gsap.from(
".muathemewpgiare-dashboard",
{
opacity: 0,
y: 70,
rotateY: -12,
duration: 1.5,
delay: .5,
ease: "power4.out"
}
);
/* FLOATING CARDS */
gsap.to(
".muathemewpgiare-floating-card.card-one",
{
y: -10,
duration: 2.8,
repeat: -1,
yoyo: true,
ease: "sine.inOut"
}
);
gsap.to(
".muathemewpgiare-floating-card.card-two",
{
y: 12,
duration: 3.4,
repeat: -1,
yoyo: true,
ease: "sine.inOut"
}
);
/* PARALLAX ORBS */
gsap.to(
".muathemewpgiare-orb-one",
{
x: 100,
y: 80,
scrollTrigger: {
trigger: ".muathemewpgiare-hero",
start: "top top",
end: "bottom top",
scrub: 1
}
}
);
gsap.to(
".muathemewpgiare-orb-two",
{
x: -100,
y: -70,
scrollTrigger: {
trigger: ".muathemewpgiare-hero",
start: "top top",
end: "bottom top",
scrub: 1
}
}
);
/* SHOWCASE PARALLAX */
gsap.utils.toArray(
".muathemewpgiare-showcase-orb"
).forEach((orb) => {
gsap.to(orb, {
y: -40,
scrollTrigger: {
trigger: orb,
start: "top bottom",
end: "bottom top",
scrub: 1.5
}
});
});
}
/* =========================================================
NAVBAR SCROLL
========================================================= */
const navbar =
$("#muathemewpgiareNavbar");
function muathemewpgiareNavbarUpdate() {
if (window.scrollY > 30) {
navbar?.classList.add("scrolled");
} else {
navbar?.classList.remove("scrolled");
}
}
window.addEventListener(
"scroll",
muathemewpgiareNavbarUpdate,
{ passive: true }
);
/* =========================================================
SCROLL PROGRESS
========================================================= */
const progress =
$("#muathemewpgiareScrollProgress");
function muathemewpgiareProgress() {
const scrollTop =
window.scrollY;
const documentHeight =
document.documentElement.scrollHeight -
window.innerHeight;
const percentage =
documentHeight > 0
? (scrollTop / documentHeight) * 100
: 0;
if (progress) {
progress.style.width =
`${percentage}%`;
}
}
window.addEventListener(
"scroll",
muathemewpgiareProgress,
{ passive: true }
);
/* =========================================================
CUSTOM CURSOR
========================================================= */
const cursor =
$(".muathemewpgiare-cursor");
const follower =
$(".muathemewpgiare-cursor-follower");
if (
cursor &&
follower &&
window.matchMedia("(pointer:fine)").matches
) {
let cursorX = 0;
let cursorY = 0;
let followerX = 0;
let followerY = 0;
window.addEventListener(
"mousemove",
(event) => {
cursorX = event.clientX;
cursorY = event.clientY;
gsap.to(cursor, {
x: cursorX,
y: cursorY,
duration: .08,
overwrite: true
});
}
);
function muathemewpgiareCursorLoop() {
followerX +=
(cursorX - followerX) * .12;
followerY +=
(cursorY - followerY) * .12;
gsap.set(follower, {
x: followerX,
y: followerY
});
requestAnimationFrame(
muathemewpgiareCursorLoop
);
}
muathemewpgiareCursorLoop();
$$(
"a, button, .muathemewpgiare-feature-card"
).forEach((element) => {
element.addEventListener(
"mouseenter",
() => {
follower.classList.add("hover");
}
);
element.addEventListener(
"mouseleave",
() => {
follower.classList.remove("hover");
}
);
});
}
/* =========================================================
MAGNETIC BUTTON
========================================================= */
$$("[data-magnetic]").forEach((button) => {
let frame = null;
button.addEventListener(
"mousemove",
(event) => {
if (
!window.matchMedia(
"(pointer:fine)"
).matches
) {
return;
}
const rect =
button.getBoundingClientRect();
const x =
event.clientX -
rect.left -
rect.width / 2;
const y =
event.clientY -
rect.top -
rect.height / 2;
cancelAnimationFrame(frame);
frame =
requestAnimationFrame(() => {
gsap.to(button, {
x: x * .16,
y: y * .16,
duration: .35,
ease: "power3.out",
overwrite: true
});
});
}
);
button.addEventListener(
"mouseleave",
() => {
gsap.to(button, {
x: 0,
y: 0,
duration: .55,
ease: "elastic.out(1,.4)"
});
}
);
});
/* =========================================================
FEATURE CARD TILT
========================================================= */
$$(".muathemewpgiare-feature-card").forEach(
(card) => {
card.addEventListener(
"mousemove",
(event) => {
if (
!window.matchMedia(
"(pointer:fine)"
).matches
) {
return;
}
const rect =
card.getBoundingClientRect();
const x =
event.clientX -
rect.left;
const y =
event.clientY -
rect.top;
const rotateY =
((x / rect.width) - .5) * 4;
const rotateX =
((y / rect.height) - .5) * -4;
gsap.to(card, {
rotateX,
rotateY,
transformPerspective: 900,
duration: .4,
ease: "power2.out",
overwrite: true
});
}
);
card.addEventListener(
"mouseleave",
() => {
gsap.to(card, {
rotateX: 0,
rotateY: 0,
duration: .7,
ease: "elastic.out(1,.5)"
});
}
);
}
);
/* =========================================================
MOBILE MENU
========================================================= */
const mobileToggle =
$("#muathemewpgiareMobileToggle");
const mobileMenu =
$("#muathemewpgiareMobileMenu");
mobileToggle?.addEventListener(
"click",
() => {
mobileMenu?.classList.toggle(
"active"
);
}
);
$$(
".muathemewpgiare-mobile-menu a"
).forEach((link) => {
link.addEventListener(
"click",
() => {
mobileMenu?.classList.remove(
"active"
);
}
);
});
/* =========================================================
MODAL
========================================================= */
const modal =
$("#muathemewpgiareModal");
const openDemo =
$("#muathemewpgiareOpenDemo");
const ctaButton =
$("#muathemewpgiareCtaButton");
const closeModal =
$("#muathemewpgiareModalClose");
const modalAction =
$("#muathemewpgiareModalAction");
function muathemewpgiareOpenModal() {
modal?.classList.add("active");
document.body.style.overflow =
"hidden";
}
function muathemewpgiareCloseModal() {
modal?.classList.remove("active");
document.body.style.overflow =
"";
}
openDemo?.addEventListener(
"click",
muathemewpgiareOpenModal
);
ctaButton?.addEventListener(
"click",
muathemewpgiareOpenModal
);
closeModal?.addEventListener(
"click",
muathemewpgiareCloseModal
);
modalAction?.addEventListener(
"click",
() => {
muathemewpgiareCloseModal();
muathemewpgiareShowToast(
"Đã sẵn sàng để bắt đầu."
);
}
);
$(".muathemewpgiare-modal-backdrop")
?.addEventListener(
"click",
muathemewpgiareCloseModal
);
document.addEventListener(
"keydown",
(event) => {
if (event.key === "Escape") {
muathemewpgiareCloseModal();
}
}
);
/* =========================================================
TOAST
========================================================= */
const toast =
$("#muathemewpgiareToast");
const toastText =
$("#muathemewpgiareToastText");
let toastTimer = null;
function muathemewpgiareShowToast(
message
) {
if (!toast) {
return;
}
if (toastText) {
toastText.textContent =
message;
}
toast.classList.add("show");
clearTimeout(toastTimer);
toastTimer =
setTimeout(() => {
toast.classList.remove(
"show"
);
}, 2800);
}
$$("[data-toast]").forEach(
(button) => {
button.addEventListener(
"click",
() => {
muathemewpgiareShowToast(
button.dataset.toast
);
}
);
}
);
/* =========================================================
THEME
========================================================= */
const themeButton =
$("#muathemewpgiareThemeButton");
themeButton?.addEventListener(
"click",
() => {
document.body.classList.toggle(
"light"
);
localStorage.setItem(
"muathemewpgiare-theme",
document.body.classList.contains(
"light"
)
? "light"
: "dark"
);
muathemewpgiareShowToast(
document.body.classList.contains(
"light"
)
? "Đã chuyển sang Light Mode"
: "Đã chuyển sang Dark Mode"
);
}
);
const savedTheme =
localStorage.getItem(
"muathemewpgiare-theme"
);
if (savedTheme === "light") {
document.body.classList.add("light");
}
/* =========================================================
ACTIVE NAVIGATION
========================================================= */
const sections =
$$("section[id]");
const menuLinks =
$$(".muathemewpgiare-menu-link");
const observer =
new IntersectionObserver(
(entries) => {
entries.forEach(
(entry) => {
if (!entry.isIntersecting) {
return;
}
const id =
entry.target.id;
menuLinks.forEach(
(link) => {
link.classList.toggle(
"active",
link.getAttribute(
"href"
) === `#${id}`
);
}
);
}
);
},
{
rootMargin:
"-35% 0px -55% 0px"
}
);
sections.forEach(
(section) => {
observer.observe(section);
}
);
/* =========================================================
SMOOTH ANCHOR
========================================================= */
$$("a[href^='#']").forEach(
(link) => {
link.addEventListener(
"click",
(event) => {
const targetId =
link.getAttribute("href");
if (
!targetId ||
targetId === "#"
) {
return;
}
const target =
$(targetId);
if (!target) {
return;
}
event.preventDefault();
if (muathemewpgiareLenis) {
muathemewpgiareLenis.scrollTo(
target,
{
offset: -70
}
);
} else {
target.scrollIntoView({
behavior: "smooth"
});
}
}
);
}
);
/* =========================================================
PARTICLES
========================================================= */
async function muathemewpgiareInitParticles() {
if (
!window.tsParticles ||
!window.tsParticles.load
) {
return;
}
try {
await tsParticles.load({
id:
"muathemewpgiareParticles",
options: {
fullScreen: {
enable: false
},
fpsLimit: 60,
particles: {
number: {
value: 35,
density: {
enable: true,
area: 1100
}
},
color: {
value: [
"#8b5cf6",
"#6366f1",
"#38bdf8"
]
},
opacity: {
value: .25
},
size: {
value: {
min: 1,
max: 2.5
}
},
links: {
enable: true,
distance: 130,
opacity: .08,
width: 1
},
move: {
enable: true,
speed: .35,
direction: "none",
outModes: {
default: "out"
}
}
}
}
});
} catch (error) {
console.warn(
"MUATHEMEWPGIARE particles unavailable:",
error
);
}
}
muathemewpgiareInitParticles();
/* =========================================================
BUTTON PRESS MICRO EFFECT
========================================================= */
$$(".muathemewpgiare-button").forEach(
(button) => {
button.addEventListener(
"pointerdown",
() => {
gsap.to(button, {
scale: .96,
duration: .12,
overwrite: true
});
}
);
button.addEventListener(
"pointerup",
() => {
gsap.to(button, {
scale: 1,
duration: .45,
ease: "elastic.out(1,.4)"
});
}
);
}
);
/* =========================================================
DASHBOARD MOUSE PARALLAX
========================================================= */
const dashboard =
$(".muathemewpgiare-dashboard");
if (
dashboard &&
window.matchMedia("(pointer:fine)").matches
) {
dashboard.addEventListener(
"mousemove",
(event) => {
const rect =
dashboard.getBoundingClientRect();
const x =
(event.clientX - rect.left) /
rect.width -
.5;
const y =
(event.clientY - rect.top) /
rect.height -
.5;
gsap.to(dashboard, {
rotateY:
-5 + x * 7,
rotateX:
3 - y * 7,
duration: .6,
ease: "power2.out",
overwrite: true
});
}
);
dashboard.addEventListener(
"mouseleave",
() => {
gsap.to(dashboard, {
rotateY: -5,
rotateX: 3,
duration: 1,
ease: "elastic.out(1,.5)"
});
}
);
}
/* =========================================================
RESIZE
========================================================= */
window.addEventListener(
"resize",
() => {
if (
window.innerWidth > 1050
) {
mobileMenu?.classList.remove(
"active"
);
}
}
);
/* =========================================================
READY
========================================================= */
console.log(
"%c MUATHEMEWPGIARE.COM ",
"background:#7c3aed;color:#fff;padding:8px 12px;border-radius:6px;font-weight:800;"
);
console.log(
"%c Premium UI Experience initialized.",
"color:#a78bfa;font-weight:700;"
);
Ctrl1 HTML
Ctrl2 CSS
Ctrl3 JS
Ctrl↵ Reload