(() => { const pricingData = { 'Basic plan': { amount: '14.99', unit: '/month' }, 'Premium plan': { amount: '24.99', unit: '/lifetime' }, 'Pro plan': { amount: '14.99', unit: '/month' } }; const faqData = { 'Which windows versions are supported?': 'Windows 10 2004 → 22H2 and Windows 11 21H2 → 25H2. This means all versions of Windows 10 and 11 are supported by our program.', 'Which motherboards are supported?': 'Our program has a comprehensive database, and all motherboards are supported. The only issue is Valorant for Asus motherboards, which are not supported.', 'Is the change temporary or permanent?': 'This is a permanent solution. Restarting or reinstalling Windows will not restore previous serial numbers, and new PC serials cannot be detected or suddenly flagged after spoofing.', 'What is your refund policy?': 'Digital products are considered final sale by default. However, we offer refunds if the software does not function properly on your computer and all support options have been exhausted.', 'Can I try it for free?': 'We do not provide tests of any kind. We have a long-standing reputation. Check our thread on epvp for reviews and feedback from our clients.' }; const root = document.documentElement; root.classList.add('static-html'); const getStoredTheme = () => { try { const value = localStorage.getItem('theme'); return value === 'dark' || value === 'light' ? value : 'light'; } catch (error) { return 'light'; } }; const applyTheme = (theme) => { root.classList.remove('light', 'dark'); root.classList.add(theme); root.style.colorScheme = theme; try { localStorage.setItem('theme', theme); } catch (error) {} }; applyTheme(getStoredTheme()); const getThemeButtons = () => { return Array.from(document.querySelectorAll('button')).filter((button) => { const label = button.querySelector('.sr-only')?.textContent?.trim(); return label === 'Toggle theme' || button.hasAttribute('data-mobile-theme-toggle'); }); }; const setupThemeToggle = () => { getThemeButtons().forEach((button) => { button.addEventListener('click', () => { applyTheme(root.classList.contains('dark') ? 'light' : 'dark'); }); }); }; const setupNavbarCollapse = () => { const homeSection = document.querySelector('#home'); const navbar = document.querySelector('[data-navbar-glass]'); if (!homeSection || !navbar) return; let ticking = false; const updateNavbarState = () => { ticking = false; const homeBottom = homeSection.getBoundingClientRect().bottom; const collapseOffset = 88; navbar.dataset.navbarCollapsed = homeBottom <= collapseOffset ? 'true' : 'false'; }; const requestUpdate = () => { if (ticking) return; ticking = true; requestAnimationFrame(updateNavbarState); }; requestUpdate(); window.addEventListener('scroll', requestUpdate, { passive: true }); window.addEventListener('resize', requestUpdate); }; const setupFeatureTrigger = () => { const button = document.querySelector('button[data-slot="navigation-menu-trigger"]'); if (!button) return; button.addEventListener('click', () => { const target = document.querySelector('#features'); if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }); }; const setupMobileMenu = () => { const overlay = document.querySelector('[data-mobile-menu]'); const openButton = document.querySelector('button[data-slot="sheet-trigger"]'); const closeButton = overlay?.querySelector('[data-mobile-menu-close]'); if (!overlay || !openButton || !closeButton) return; const setOpen = (isOpen) => { overlay.hidden = !isOpen; overlay.classList.toggle('is-open', isOpen); document.body.classList.toggle('menu-open', isOpen); openButton.setAttribute('aria-expanded', String(isOpen)); openButton.setAttribute('data-state', isOpen ? 'open' : 'closed'); }; openButton.addEventListener('click', () => setOpen(!overlay.classList.contains('is-open'))); closeButton.addEventListener('click', () => setOpen(false)); overlay.addEventListener('click', (event) => { if (event.target === overlay) setOpen(false); }); overlay.querySelectorAll('a').forEach((link) => link.addEventListener('click', () => setOpen(false))); window.addEventListener('keydown', (event) => { if (event.key === 'Escape') setOpen(false); }); }; const setupPricing = () => { const section = document.querySelector('#pricing'); if (!section) return; const buttons = Array.from(section.querySelectorAll('[role="tab"]')); const cards = Array.from(section.querySelectorAll('[data-slot="card"]')); const applyMode = (mode) => { buttons.forEach((button) => { const active = button.id.includes(mode); button.setAttribute('aria-selected', String(active)); button.setAttribute('data-state', active ? 'active' : 'inactive'); button.tabIndex = active ? 0 : -1; }); cards.forEach((card) => { const title = card.querySelector('h3')?.textContent?.trim(); const amount = card.querySelector('.tabular-nums'); const currency = amount?.parentElement; const priceRow = currency?.parentElement; const pricing = title ? pricingData[title] : null; if (!title || !amount || !pricing || !priceRow || !currency) return; const unit = Array.from(priceRow.children).find( (node) => node instanceof HTMLElement && node.tagName === 'SPAN' && node !== currency ); amount.textContent = pricing.amount; if (unit) unit.textContent = pricing.unit; }); }; buttons.forEach((button) => { button.addEventListener('click', () => applyMode(button.id.includes('monthly') ? 'monthly' : 'yearly')); }); applyMode('yearly'); }; const setupAccountingHardwareMarquee = () => { const heading = Array.from(document.querySelectorAll('h3')).find((node) => { return node.textContent?.trim() === 'Accounting of every transaction.'; }); const card = heading?.closest('[data-slot="card"]'); const marquee = card?.querySelector('[style*="--marquee-duration"]'); const rows = marquee ? Array.from(marquee.querySelectorAll('.animate-marquee-horizontal')) : []; if (!rows.length) return; const items = [ { label: 'MSI', value: 'F74EV19_CT139D7V', state: 'Unspoofed', tone: 'destructive', iconType: 'biosBlue' }, { label: 'DISK', value: 'WDC-WCC6Y6EN617N', state: 'Spoofed', tone: 'success', iconType: 'diskOrange' }, { label: 'GIGABYTE', value: 'Default string', state: 'Unspoofed', tone: 'destructive', iconType: 'biosBrown' }, { label: 'Battleye', value: 'HWID Clean', state: 'Spoofed', tone: 'success', iconType: 'battleyeYellow' }, { label: 'Easy AntiCheat', value: 'Serial Clean', state: 'Spoofed', tone: 'success', iconType: 'eacBlue' }, { label: 'Vanguard', value: 'TPM Mismatch', state: 'Unspoofed', tone: 'destructive', iconType: 'vanguardRed' }, { label: 'BIOS', value: 'AMI-A8F0X1-77D', state: 'Spoofed', tone: 'success', iconType: 'biosBlue' } ]; const toneClassMap = { destructive: { container: 'bg-destructive/20 text-destructive', text: 'text-destructive' }, success: { container: 'bg-green-600/20 text-green-600 dark:bg-green-400/20 dark:text-green-400', text: 'text-green-600 dark:text-green-400' } }; const iconMap = { biosBlue: { container: 'bg-sky-500/20 text-sky-600 dark:bg-sky-400/20 dark:text-sky-400', svg: '' }, biosBrown: { container: 'bg-amber-700/20 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400', svg: '' }, diskOrange: { container: 'bg-orange-500/20 text-orange-600 dark:bg-orange-400/20 dark:text-orange-400', svg: '' }, eacBlue: { container: 'bg-blue-500/20 text-blue-600 dark:bg-blue-400/20 dark:text-blue-400', svg: '' }, battleyeYellow: { container: 'bg-yellow-400/25 text-yellow-600 dark:bg-yellow-300/20 dark:text-yellow-300', svg: '' }, vanguardRed: { container: 'bg-red-500/20 text-red-600 dark:bg-red-400/20 dark:text-red-400', svg: '' } }; const createIcon = (item) => { const wrapper = document.createElement('span'); const icon = iconMap[item.iconType] || iconMap.biosBlue; wrapper.className = `grid size-9.5 place-content-center rounded-full ${icon.container}`; wrapper.innerHTML = icon.svg; return wrapper; }; const createItem = (item) => { const entry = document.createElement('div'); entry.className = `flex h-14 items-center gap-3 rounded-full px-3.5 py-2 ${item.tone === 'success' ? 'border border-primary/40' : 'bg-card text-card-foreground'}`; const info = document.createElement('div'); info.className = 'grid'; const label = document.createElement('span'); label.className = 'text-muted-foreground text-xs'; label.textContent = item.label; const valueRow = document.createElement('div'); valueRow.className = 'flex items-center gap-1'; const value = document.createElement('span'); value.className = 'max-w-[11.5rem] truncate font-mono text-sm font-medium'; value.textContent = item.value; const state = document.createElement('span'); state.className = `text-xs ${toneClassMap[item.tone].text}`; state.textContent = item.state; valueRow.append(value, state); info.append(label, valueRow); entry.append(createIcon(item), info); return entry; }; rows.forEach((row) => { row.replaceChildren(...items.map(createItem)); }); }; const setupFaq = () => { const items = Array.from(document.querySelectorAll('[data-slot="accordion-item"]')); if (!items.length) return; const contentClassName = '[&_a]:hover:text-foreground h-(--radix-accordion-content-height) pt-0 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4 text-muted-foreground px-5 pb-4 text-base leading-relaxed'; const setItemState = (item, isOpen) => { const heading = item.querySelector('h3'); const trigger = item.querySelector('[data-slot="accordion-trigger"]'); const content = item.querySelector('[data-slot="accordion-content"]'); if (!trigger || !content) return; item.setAttribute('data-state', isOpen ? 'open' : 'closed'); heading?.setAttribute('data-state', isOpen ? 'open' : 'closed'); trigger.setAttribute('data-state', isOpen ? 'open' : 'closed'); trigger.setAttribute('aria-expanded', String(isOpen)); content.setAttribute('data-state', isOpen ? 'open' : 'closed'); if (isOpen) { content.hidden = false; content.style.maxHeight = content.scrollHeight + 'px'; } else { content.style.maxHeight = '0px'; content.hidden = true; } }; items.forEach((item) => { const trigger = item.querySelector('[data-slot="accordion-trigger"]'); const content = item.querySelector('[data-slot="accordion-content"]'); if (!trigger || !content) return; const question = trigger.childNodes[0]?.textContent?.trim() || trigger.textContent.trim(); if (!content.firstElementChild) { const answer = document.createElement('div'); answer.className = contentClassName; answer.textContent = faqData[question] || ''; content.appendChild(answer); } if (content.getAttribute('data-state') === 'open') { content.hidden = false; content.style.maxHeight = content.scrollHeight + 'px'; } else { content.hidden = true; content.style.maxHeight = '0px'; } trigger.addEventListener('click', () => { const shouldOpen = trigger.getAttribute('data-state') !== 'open'; items.forEach((entry) => setItemState(entry, false)); if (shouldOpen) setItemState(item, true); }); }); const accordion = document.querySelector('[data-faq-accordion]'); if (accordion) { const grid = document.querySelector('[data-faq-grid]'); const computeFixedHeight = () => { const openStates = items.map((item) => item.getAttribute('data-state') === 'open'); accordion.style.height = ''; accordion.style.minHeight = ''; accordion.style.overflowY = ''; accordion.style.scrollbarGutter = ''; if (grid) { grid.style.height = ''; grid.style.minHeight = ''; } let maxHeight = 0; items.forEach((item) => setItemState(item, false)); items.forEach((item) => { items.forEach((entry) => setItemState(entry, false)); setItemState(item, true); maxHeight = Math.max(maxHeight, accordion.scrollHeight); }); const targetHeight = Math.ceil(maxHeight); accordion.style.minHeight = targetHeight + 'px'; accordion.style.height = targetHeight + 'px'; if (grid) { grid.style.minHeight = targetHeight + 'px'; grid.style.height = targetHeight + 'px'; } items.forEach((item, index) => setItemState(item, openStates[index])); }; computeFixedHeight(); window.setTimeout(() => computeFixedHeight(), 600); if (accordion.dataset.faqMinHeightBound !== 'true') { accordion.dataset.faqMinHeightBound = 'true'; let resizeTimer = 0; window.addEventListener('resize', () => { window.clearTimeout(resizeTimer); resizeTimer = window.setTimeout(() => computeFixedHeight(), 120); }); } } }; const revealStaticElement = (element) => { if (element.dataset.staticRevealed === 'true') return; element.dataset.staticRevealed = 'true'; element.setAttribute('data-static-animated', 'true'); element.style.transition = 'opacity 700ms cubic-bezier(0.22, 1, 0.36, 1), transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 700ms cubic-bezier(0.22, 1, 0.36, 1), width 520ms cubic-bezier(0.22, 1, 0.36, 1)'; let targetWidth = ''; if (element.style.width === '0px') { const previousWidth = element.style.width; const previousTransition = element.style.transition; element.style.transition = 'none'; element.style.width = ''; targetWidth = getComputedStyle(element).width; element.style.width = previousWidth; element.style.transition = previousTransition; } requestAnimationFrame(() => { element.style.opacity = ''; element.style.transform = ''; element.style.filter = ''; if (targetWidth) { element.style.width = targetWidth; window.setTimeout(() => { if (element.dataset.staticRevealed === 'true') element.style.width = ''; }, 540); } }); }; const setupHeroFloatReveal = () => { const cards = Array.from(document.querySelectorAll('[data-hero-float]')); if (!cards.length) return; cards.forEach((card, index) => { if (card.dataset.staticRevealed === 'true') return; card.dataset.staticRevealed = 'true'; card.setAttribute('data-static-animated', 'true'); card.style.transition = 'opacity 4000ms cubic-bezier(0.22, 1, 0.36, 1)'; window.setTimeout(() => { requestAnimationFrame(() => { card.style.opacity = '1'; }); }, 640 + index * 120); }); }; const setupHeroBadgeRotator = () => { const badge = document.querySelector('[data-hero-badge]'); const dot = badge?.querySelector('[data-hero-badge-dot]'); const text = badge?.querySelector('[data-hero-badge-text]'); if (!badge || !dot || !text) return; const items = [ { label: '1,500+ happy clients', dotClass: 'bg-yellow-500' }, { label: 'Every motherboard supported!', dotClass: 'bg-primary' }, { label: 'Unbanned within 10 minutes', dotClass: 'bg-red-500' }, { label: 'Over 30.000 spoofs with an 95,64% success-rate.', dotClass: 'bg-green-600' } ]; const createCharacters = (label) => { const fragment = document.createDocumentFragment(); Array.from(label).forEach((character) => { const node = document.createElement('span'); const isSpace = character === ' '; node.className = isSpace ? 'inline-block overflow-hidden w-[0.25em]' : 'inline-block overflow-hidden'; node.textContent = isSpace ? '' : character; node.style.opacity = '0'; node.style.filter = 'blur(10px)'; node.style.width = '0px'; fragment.appendChild(node); }); text.replaceChildren(fragment); return Array.from(text.children); }; const applyItem = (item) => { dot.className = 'size-2.5 rounded-xs ' + item.dotClass; return createCharacters(item.label); }; const animateIn = (item) => { const characters = applyItem(item); text.style.width = ''; text.style.marginLeft = '0.5rem'; text.style.opacity = '1'; text.style.filter = 'none'; characters.forEach((character, index) => { window.setTimeout(() => revealStaticElement(character), 140 + index * 45); }); }; text.style.transition = 'opacity 420ms cubic-bezier(0.22, 1, 0.36, 1), filter 420ms cubic-bezier(0.22, 1, 0.36, 1), width 980ms cubic-bezier(0.16, 1, 0.3, 1), margin-left 980ms cubic-bezier(0.16, 1, 0.3, 1)'; dot.style.transition = 'background-color 420ms cubic-bezier(0.22, 1, 0.36, 1)'; applyItem(items[0]); if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || items.length < 2) return; let index = 0; const cycle = () => { window.setTimeout(() => { text.style.width = getComputedStyle(text).width; requestAnimationFrame(() => { text.style.opacity = '0'; text.style.filter = 'blur(10px)'; text.style.width = '0px'; text.style.marginLeft = '0px'; }); window.setTimeout(() => { index = (index + 1) % items.length; animateIn(items[index]); cycle(); }, 500); }, 2900); }; cycle(); }; const setupEntranceAnimations = () => { const elements = Array.from(document.querySelectorAll('[style]')).filter((element) => { if (element.closest('#quote')) return false; if (element.hasAttribute('data-hero-float')) return false; const style = element.style; return style.opacity === '0' || style.width === '0px' || (style.filter && style.filter !== 'none') || (style.transform && style.transform !== 'none'); }); const initial = []; const observed = []; elements.forEach((element) => { const rect = element.getBoundingClientRect(); if (rect.top < window.innerHeight * 0.88) initial.push(element); else observed.push(element); }); initial.forEach((element, index) => window.setTimeout(() => revealStaticElement(element), index * 35)); const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { revealStaticElement(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.12, rootMargin: '0px 0px -8% 0px' }); observed.forEach((element) => observer.observe(element)); }; const setupQuoteReveal = () => { const section = document.querySelector('#quote'); if (!section) return; const words = Array.from(section.querySelectorAll('span[style*="opacity:0"]')).filter((word) => { return word.textContent && word.textContent.trim().length > 0; }); if (!words.length) return; words.forEach((word) => { word.style.transition = 'opacity 220ms linear'; word.style.willChange = 'opacity'; }); let ticking = false; const clamp = (value, min, max) => Math.min(Math.max(value, min), max); const easeOut = (value) => 1 - Math.pow(1 - value, 3); const update = () => { ticking = false; const rect = section.getBoundingClientRect(); const start = window.innerHeight * 0.72; const travel = Math.max(section.offsetHeight + window.innerHeight * 0.6, window.innerHeight * 1.35); const progress = clamp((start - rect.top) / travel, 0, 1); const segment = 1 / words.length; const overlap = segment * 1.65; words.forEach((word, index) => { const localStart = Math.max(index * segment - segment * 0.2, 0); const local = clamp((progress - localStart) / overlap, 0, 1); word.style.opacity = easeOut(local).toFixed(3); }); }; const requestUpdate = () => { if (!ticking) { ticking = true; requestAnimationFrame(update); } }; requestUpdate(); window.addEventListener('scroll', requestUpdate, { passive: true }); window.addEventListener('resize', requestUpdate); }; window.addEventListener('DOMContentLoaded', () => { setupThemeToggle(); setupNavbarCollapse(); setupFeatureTrigger(); setupMobileMenu(); setupPricing(); setupAccountingHardwareMarquee(); setupFaq(); setupHeroBadgeRotator(); setupHeroFloatReveal(); setupEntranceAnimations(); setupQuoteReveal(); }); })();