Initial commit: 428th website
This commit is contained in:
commit
827d088edf
20 changed files with 4885 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
.tools/
|
||||||
|
*.zip
|
||||||
|
.DS_Store
|
||||||
30
app.js
Normal file
30
app.js
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
initLangSwitch();
|
||||||
|
initTheme();
|
||||||
|
|
||||||
|
function syncTaglineFit(){
|
||||||
|
const heroBrandInner = document.getElementById('heroBrandInner');
|
||||||
|
const logo = heroBrandInner?.querySelector('.logo');
|
||||||
|
const tagline = heroBrandInner?.querySelector('.tagline');
|
||||||
|
if (!logo || !tagline) return;
|
||||||
|
|
||||||
|
document.documentElement.style.setProperty('--hero-tagline-fit', '1');
|
||||||
|
const logoW = logo.getBoundingClientRect().width;
|
||||||
|
const taglineW = tagline.scrollWidth;
|
||||||
|
const fit = taglineW > 0 ? Math.min(1, logoW / taglineW) : 1;
|
||||||
|
document.documentElement.style.setProperty('--hero-tagline-fit', fit.toFixed(4));
|
||||||
|
}
|
||||||
|
|
||||||
|
initHeroScroll({
|
||||||
|
section: document.querySelector('.hero'),
|
||||||
|
stage: document.querySelector('.hero-stage'),
|
||||||
|
brand: document.querySelector('.hero-brand'),
|
||||||
|
brandInner: document.getElementById('heroBrandInner'),
|
||||||
|
mobileAnimClass: 'hero--mobile-anim',
|
||||||
|
scrollDrivenClass: 'hero--scroll-driven',
|
||||||
|
brandScaleAnimation: 'hero-brand-scale',
|
||||||
|
syncFit: syncTaglineFit,
|
||||||
|
subtractRunwayOnMobile: false
|
||||||
|
});
|
||||||
|
|
||||||
|
initReveal();
|
||||||
|
initContactForm();
|
||||||
467
common.js
Normal file
467
common.js
Normal file
|
|
@ -0,0 +1,467 @@
|
||||||
|
// ---------- SHARED UTILITIES ----------
|
||||||
|
function readCssPx(name, fallback, el = document.documentElement){
|
||||||
|
const value = getComputedStyle(el).getPropertyValue(name).trim();
|
||||||
|
const parsed = parseFloat(value);
|
||||||
|
return Number.isFinite(parsed) ? parsed : fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
||||||
|
|
||||||
|
// ---------- ЯЗЫК (переключатель = ссылки на статические URL) ----------
|
||||||
|
function initLangSwitch(){
|
||||||
|
const root = document.getElementById('langSwitch');
|
||||||
|
if (!root) return;
|
||||||
|
|
||||||
|
root.querySelectorAll('a[data-set-lang]').forEach(link => {
|
||||||
|
link.addEventListener('click', () => {
|
||||||
|
const lang = link.getAttribute('data-set-lang');
|
||||||
|
if (lang === 'ru' || lang === 'en' || lang === 'ua') {
|
||||||
|
localStorage.setItem('lang', lang);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- ТЕМА ----------
|
||||||
|
function getSystemTheme(){
|
||||||
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveTheme(){
|
||||||
|
const saved = localStorage.getItem('theme');
|
||||||
|
if (saved === 'light' || saved === 'dark') return saved;
|
||||||
|
return getSystemTheme();
|
||||||
|
}
|
||||||
|
|
||||||
|
function applyTheme(theme){
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
function initTheme(){
|
||||||
|
const themeToggle = document.getElementById('themeToggle');
|
||||||
|
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
|
||||||
|
applyTheme(resolveTheme());
|
||||||
|
|
||||||
|
themeToggle.addEventListener('click', () => {
|
||||||
|
const current = document.documentElement.getAttribute('data-theme');
|
||||||
|
const next = current === 'light' ? 'dark' : 'light';
|
||||||
|
applyTheme(next);
|
||||||
|
localStorage.setItem('theme', next);
|
||||||
|
});
|
||||||
|
|
||||||
|
const onSystemChange = () => {
|
||||||
|
if (localStorage.getItem('theme')) return;
|
||||||
|
applyTheme(getSystemTheme());
|
||||||
|
};
|
||||||
|
if (typeof media.addEventListener === 'function') {
|
||||||
|
media.addEventListener('change', onSystemChange);
|
||||||
|
} else if (typeof media.addListener === 'function') {
|
||||||
|
media.addListener(onSystemChange);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- HERO LOGO SCROLL ANIMATION ----------
|
||||||
|
function initHeroScroll(config){
|
||||||
|
const {
|
||||||
|
section,
|
||||||
|
stage,
|
||||||
|
brand,
|
||||||
|
brandInner,
|
||||||
|
mobileAnimClass,
|
||||||
|
scrollDrivenClass,
|
||||||
|
brandScaleAnimation,
|
||||||
|
syncFit,
|
||||||
|
brandGapFromSection = false,
|
||||||
|
clampMobileScale = null,
|
||||||
|
clearSectionVars = null,
|
||||||
|
setMobileScaleVar = false,
|
||||||
|
subtractRunwayOnMobile = true
|
||||||
|
} = config;
|
||||||
|
|
||||||
|
const siteHeader = document.querySelector('.site-header');
|
||||||
|
const mainNav = document.querySelector('.main-nav');
|
||||||
|
|
||||||
|
let cachedBaseHeight = 0;
|
||||||
|
let cachedBrandGap = 32;
|
||||||
|
let cachedMaxScale = 1.9;
|
||||||
|
let cachedMaxBrandHeight = 0;
|
||||||
|
let cachedMinBrandHeight = 0;
|
||||||
|
let cachedNavHeight = 0;
|
||||||
|
let heroRunway = 0;
|
||||||
|
let heroStartY = 0;
|
||||||
|
let heroResizeTimer = 0;
|
||||||
|
let heroIsMobile = false;
|
||||||
|
let heroUseScrollTimeline = false;
|
||||||
|
let lastHeroScrollStep = -1;
|
||||||
|
let postHeroLift = null;
|
||||||
|
|
||||||
|
const heroRoot = document.documentElement;
|
||||||
|
|
||||||
|
function clearHeroAnimationVars(){
|
||||||
|
heroRoot.style.removeProperty('--hero-scale');
|
||||||
|
heroRoot.style.removeProperty('--hero-brand-height');
|
||||||
|
heroRoot.style.removeProperty('--hero-stage-height');
|
||||||
|
heroRoot.style.removeProperty('--hero-brand-max-h');
|
||||||
|
heroRoot.style.removeProperty('--hero-brand-min-h');
|
||||||
|
heroRoot.style.removeProperty('--hero-nav-shift');
|
||||||
|
heroRoot.style.removeProperty('--hero-nav-shift-max');
|
||||||
|
heroRoot.style.removeProperty('--hero-scroll-start');
|
||||||
|
heroRoot.style.removeProperty('--hero-scroll-end');
|
||||||
|
if (brandInner){
|
||||||
|
brandInner.style.removeProperty('animation-range');
|
||||||
|
brandInner.style.removeProperty('animation-timeline');
|
||||||
|
brandInner.style.removeProperty('animation');
|
||||||
|
}
|
||||||
|
if (mainNav){
|
||||||
|
mainNav.style.removeProperty('animation-range');
|
||||||
|
mainNav.style.removeProperty('animation-timeline');
|
||||||
|
mainNav.style.removeProperty('animation');
|
||||||
|
mainNav.style.removeProperty('transform');
|
||||||
|
}
|
||||||
|
if (postHeroLift){
|
||||||
|
postHeroLift.style.removeProperty('animation-range');
|
||||||
|
postHeroLift.style.removeProperty('animation-timeline');
|
||||||
|
postHeroLift.style.removeProperty('animation');
|
||||||
|
postHeroLift.style.removeProperty('transform');
|
||||||
|
delete postHeroLift.dataset.heroLiftExited;
|
||||||
|
}
|
||||||
|
if (clearSectionVars) clearSectionVars(section);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ensurePostHeroLift(){
|
||||||
|
if (postHeroLift?.isConnected) return postHeroLift;
|
||||||
|
postHeroLift = section?.parentElement?.querySelector(':scope > .post-hero-lift') || null;
|
||||||
|
return postHeroLift;
|
||||||
|
}
|
||||||
|
|
||||||
|
function applyHeroScrollAnimations(range){
|
||||||
|
brandInner.style.animation = `${brandScaleAnimation} ease-out both`;
|
||||||
|
brandInner.style.animationTimeline = 'scroll(root block)';
|
||||||
|
brandInner.style.animationRange = range;
|
||||||
|
mainNav.style.animation = 'hero-nav-lift ease-out both';
|
||||||
|
mainNav.style.animationTimeline = 'scroll(root block)';
|
||||||
|
mainNav.style.animationRange = range;
|
||||||
|
ensurePostHeroLift();
|
||||||
|
if (postHeroLift){
|
||||||
|
postHeroLift.style.animation = 'hero-content-lift ease-out both';
|
||||||
|
postHeroLift.style.animationTimeline = 'scroll(root block)';
|
||||||
|
postHeroLift.style.animationRange = range;
|
||||||
|
postHeroLift.style.removeProperty('transform');
|
||||||
|
delete postHeroLift.dataset.heroLiftExited;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setHeroMobileMode(enabled){
|
||||||
|
if (!section) return;
|
||||||
|
section.classList.toggle(mobileAnimClass, enabled);
|
||||||
|
section.classList.toggle(scrollDrivenClass, enabled && heroUseScrollTimeline);
|
||||||
|
if (enabled) ensurePostHeroLift();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroScrollRunwayMultiplier(){
|
||||||
|
return readCssPx('--hero-scroll-runway-multiplier', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroEffectiveRunway(){
|
||||||
|
return heroRunway * getHeroScrollRunwayMultiplier();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroAnimationRange(){
|
||||||
|
return `${heroStartY}px ${heroStartY + getHeroEffectiveRunway()}px`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function easeOutCubic(t){
|
||||||
|
return 1 - (1 - t) ** 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroScrollProgress(){
|
||||||
|
return Math.min(Math.max(window.scrollY - heroStartY, 0), getHeroEffectiveRunway());
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateHeroContentLift(){
|
||||||
|
if (!heroIsMobile || prefersReducedMotion || !section){
|
||||||
|
if (postHeroLift) postHeroLift.style.removeProperty('transform');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ensurePostHeroLift();
|
||||||
|
if (!postHeroLift) return;
|
||||||
|
|
||||||
|
if (heroUseScrollTimeline){
|
||||||
|
const exited = section.getBoundingClientRect().bottom <= 0;
|
||||||
|
if (exited){
|
||||||
|
if (postHeroLift.dataset.heroLiftExited !== '1'){
|
||||||
|
postHeroLift.style.animation = 'none';
|
||||||
|
postHeroLift.style.transform = 'translate3d(0, 0, 0)';
|
||||||
|
postHeroLift.dataset.heroLiftExited = '1';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (postHeroLift.dataset.heroLiftExited === '1'){
|
||||||
|
delete postHeroLift.dataset.heroLiftExited;
|
||||||
|
const range = getHeroAnimationRange();
|
||||||
|
postHeroLift.style.animation = 'hero-content-lift ease-out both';
|
||||||
|
postHeroLift.style.animationTimeline = 'scroll(root block)';
|
||||||
|
postHeroLift.style.animationRange = range;
|
||||||
|
postHeroLift.style.removeProperty('transform');
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (section.getBoundingClientRect().bottom <= 0){
|
||||||
|
postHeroLift.style.transform = 'translate3d(0, 0, 0)';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const navShift = getComputedStyle(heroRoot).getPropertyValue('--hero-nav-shift').trim() || '0px';
|
||||||
|
postHeroLift.style.transform = `translate3d(0, ${navShift}, 0)`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isHeroMobileViewport(){
|
||||||
|
return window.innerWidth < 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroMaxScale(){
|
||||||
|
const mobile = window.innerWidth < 600;
|
||||||
|
const scope = section || document.documentElement;
|
||||||
|
return readCssPx(mobile ? '--hero-max-scale-mobile' : '--hero-max-scale', mobile ? 1.6 : 2.2, scope);
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncSiteHeaderHeight(){
|
||||||
|
if (!siteHeader) return;
|
||||||
|
const height = siteHeader.getBoundingClientRect().height;
|
||||||
|
document.documentElement.style.setProperty('--site-header-height', `${Math.ceil(height)}px`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroBrandHeight(scale){
|
||||||
|
return cachedBaseHeight * scale + cachedBrandGap;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHeroStickyTop(){
|
||||||
|
return readCssPx('--site-header-height', 57) + readCssPx('--hero-stage-offset', 80);
|
||||||
|
}
|
||||||
|
|
||||||
|
function measureHero(){
|
||||||
|
syncSiteHeaderHeight();
|
||||||
|
heroIsMobile = isHeroMobileViewport();
|
||||||
|
lastHeroScrollStep = -1;
|
||||||
|
|
||||||
|
if (!brandInner || !brand || !section || !stage || prefersReducedMotion){
|
||||||
|
heroUseScrollTimeline = false;
|
||||||
|
setHeroMobileMode(false);
|
||||||
|
clearHeroAnimationVars();
|
||||||
|
syncFit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const gapScope = brandGapFromSection ? section : document.documentElement;
|
||||||
|
cachedBrandGap = readCssPx('--hero-brand-gap', 32, gapScope);
|
||||||
|
cachedMaxScale = getHeroMaxScale();
|
||||||
|
clearHeroAnimationVars();
|
||||||
|
brandInner.style.removeProperty('transform');
|
||||||
|
|
||||||
|
syncFit();
|
||||||
|
cachedBaseHeight = brandInner.offsetHeight;
|
||||||
|
if (heroIsMobile){
|
||||||
|
if (clampMobileScale){
|
||||||
|
cachedMaxScale = clampMobileScale(cachedMaxScale, brand, brandInner, section);
|
||||||
|
}
|
||||||
|
cachedMaxBrandHeight = getHeroBrandHeight(cachedMaxScale);
|
||||||
|
cachedMinBrandHeight = getHeroBrandHeight(1);
|
||||||
|
} else {
|
||||||
|
cachedMaxBrandHeight = getHeroBrandHeight(1);
|
||||||
|
cachedMinBrandHeight = getHeroBrandHeight(1 / cachedMaxScale);
|
||||||
|
}
|
||||||
|
cachedNavHeight = mainNav ? mainNav.offsetHeight : 0;
|
||||||
|
heroRunway = Math.max(cachedMaxBrandHeight - cachedMinBrandHeight, 0);
|
||||||
|
heroStartY = stage.getBoundingClientRect().top + window.scrollY - getHeroStickyTop();
|
||||||
|
|
||||||
|
heroUseScrollTimeline = heroIsMobile
|
||||||
|
&& typeof CSS !== 'undefined'
|
||||||
|
&& CSS.supports('animation-timeline', 'scroll()');
|
||||||
|
|
||||||
|
if (heroIsMobile){
|
||||||
|
setHeroMobileMode(true);
|
||||||
|
if (setMobileScaleVar){
|
||||||
|
section.style.setProperty('--hero-max-scale-mobile', cachedMaxScale.toFixed(4));
|
||||||
|
}
|
||||||
|
heroRoot.style.setProperty('--hero-brand-max-h', `${cachedMaxBrandHeight}px`);
|
||||||
|
heroRoot.style.setProperty('--hero-brand-min-h', `${cachedMinBrandHeight}px`);
|
||||||
|
heroRoot.style.setProperty('--hero-brand-height', `${cachedMaxBrandHeight}px`);
|
||||||
|
heroRoot.style.setProperty('--hero-stage-height', `${cachedMaxBrandHeight + cachedNavHeight}px`);
|
||||||
|
heroRoot.style.setProperty('--hero-nav-shift-max', `${-(cachedMaxBrandHeight - cachedMinBrandHeight)}px`);
|
||||||
|
if (heroUseScrollTimeline){
|
||||||
|
applyHeroScrollAnimations(getHeroAnimationRange());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setHeroMobileMode(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateHeroBrand();
|
||||||
|
updateHeroContentLift();
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateHeroBrand(){
|
||||||
|
if (!brandInner || !brand || !stage || prefersReducedMotion || cachedBaseHeight <= 0) return;
|
||||||
|
if (heroUseScrollTimeline) return;
|
||||||
|
|
||||||
|
const scrolled = getHeroScrollProgress();
|
||||||
|
const effectiveRunway = getHeroEffectiveRunway();
|
||||||
|
const linearProgress = effectiveRunway > 0 ? scrolled / effectiveRunway : 1;
|
||||||
|
const progress = easeOutCubic(Math.min(linearProgress, 1));
|
||||||
|
|
||||||
|
if (heroIsMobile){
|
||||||
|
const scale = cachedMaxScale - progress * (cachedMaxScale - 1);
|
||||||
|
const brandHeight = cachedBaseHeight * scale + cachedBrandGap;
|
||||||
|
const navShift = cachedMaxBrandHeight - brandHeight;
|
||||||
|
|
||||||
|
heroRoot.style.setProperty('--hero-scale', scale.toFixed(4));
|
||||||
|
heroRoot.style.setProperty('--hero-nav-shift', `${-navShift}px`);
|
||||||
|
updateHeroContentLift();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scrolled === lastHeroScrollStep) return;
|
||||||
|
lastHeroScrollStep = scrolled;
|
||||||
|
|
||||||
|
const brandHeight = cachedMaxBrandHeight - progress * (cachedMaxBrandHeight - cachedMinBrandHeight);
|
||||||
|
const scale = (brandHeight - cachedBrandGap) / cachedBaseHeight;
|
||||||
|
|
||||||
|
heroRoot.style.setProperty('--hero-scale', scale.toFixed(4));
|
||||||
|
heroRoot.style.setProperty('--hero-brand-height', `${brandHeight}px`);
|
||||||
|
heroRoot.style.setProperty('--hero-stage-height', `${brandHeight + cachedNavHeight}px`);
|
||||||
|
}
|
||||||
|
|
||||||
|
let heroScrollRaf = 0;
|
||||||
|
let heroLastScrollY = -1;
|
||||||
|
|
||||||
|
function runHeroScrollFrame(){
|
||||||
|
heroScrollRaf = 0;
|
||||||
|
const scrollY = window.scrollY;
|
||||||
|
|
||||||
|
if (heroIsMobile) updateHeroContentLift();
|
||||||
|
if (!heroUseScrollTimeline) updateHeroBrand();
|
||||||
|
|
||||||
|
if (scrollY !== heroLastScrollY){
|
||||||
|
heroLastScrollY = scrollY;
|
||||||
|
scheduleHeroScrollFrame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function scheduleHeroScrollFrame(){
|
||||||
|
if (heroScrollRaf) return;
|
||||||
|
heroScrollRaf = requestAnimationFrame(runHeroScrollFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onHeroScroll(){
|
||||||
|
scheduleHeroScrollFrame();
|
||||||
|
}
|
||||||
|
|
||||||
|
function initHeroAnimation(){
|
||||||
|
measureHero();
|
||||||
|
}
|
||||||
|
|
||||||
|
function scheduleHeroMeasure(){
|
||||||
|
clearTimeout(heroResizeTimer);
|
||||||
|
heroResizeTimer = setTimeout(initHeroAnimation, 120);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNavScrollOffset(){
|
||||||
|
return readCssPx('--site-header-height', 57) + 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSectionScrollInset(target){
|
||||||
|
const paddingTop = parseFloat(getComputedStyle(target).paddingTop);
|
||||||
|
return Number.isFinite(paddingTop) ? paddingTop : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollToSection(target){
|
||||||
|
const offset = getNavScrollOffset();
|
||||||
|
let top = target.getBoundingClientRect().top + window.scrollY - offset + getSectionScrollInset(target);
|
||||||
|
const belowHero = section
|
||||||
|
&& (section.compareDocumentPosition(target) & Node.DOCUMENT_POSITION_FOLLOWING);
|
||||||
|
const canSubtractRunway = subtractRunwayOnMobile || !heroIsMobile;
|
||||||
|
if (belowHero && heroRunway > 0 && canSubtractRunway && window.scrollY < heroStartY + heroRunway){
|
||||||
|
top -= heroRunway;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.scrollTo({
|
||||||
|
top: Math.max(top, 0),
|
||||||
|
behavior: prefersReducedMotion ? 'auto' : 'smooth'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('scroll', onHeroScroll, { passive: true });
|
||||||
|
window.addEventListener('resize', scheduleHeroMeasure);
|
||||||
|
window.addEventListener('load', initHeroAnimation);
|
||||||
|
|
||||||
|
if (brandInner && window.ResizeObserver){
|
||||||
|
const heroResizeObserver = new ResizeObserver(scheduleHeroMeasure);
|
||||||
|
heroResizeObserver.observe(brandInner);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (siteHeader && window.ResizeObserver){
|
||||||
|
const headerResizeObserver = new ResizeObserver(scheduleHeroMeasure);
|
||||||
|
headerResizeObserver.observe(siteHeader);
|
||||||
|
}
|
||||||
|
|
||||||
|
initHeroAnimation();
|
||||||
|
|
||||||
|
document.querySelectorAll('.main-nav a[href^="#"]').forEach(link => {
|
||||||
|
link.addEventListener('click', e => {
|
||||||
|
const target = document.querySelector(link.getAttribute('href'));
|
||||||
|
if (!target) return;
|
||||||
|
|
||||||
|
e.preventDefault();
|
||||||
|
scrollToSection(target);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- REVEAL ON SCROLL ----------
|
||||||
|
function initReveal(){
|
||||||
|
const observer = new IntersectionObserver((entries) => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
if (entry.isIntersecting){
|
||||||
|
entry.target.classList.add('visible');
|
||||||
|
observer.unobserve(entry.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, { threshold: 0.15 });
|
||||||
|
|
||||||
|
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------- МОДАЛКА + ФОРМА ----------
|
||||||
|
function initContactForm(){
|
||||||
|
const modal = document.getElementById('contactModal');
|
||||||
|
document.getElementById('openContactForm').addEventListener('click', () => modal.classList.add('open'));
|
||||||
|
document.getElementById('closeContactForm').addEventListener('click', () => modal.classList.remove('open'));
|
||||||
|
modal.addEventListener('click', e => { if (e.target === modal) modal.classList.remove('open'); });
|
||||||
|
|
||||||
|
const form = document.getElementById('contactForm');
|
||||||
|
const status = document.getElementById('formStatus');
|
||||||
|
|
||||||
|
form.addEventListener('submit', async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
status.textContent = form.dataset.statusLoading || '...';
|
||||||
|
|
||||||
|
const data = Object.fromEntries(new FormData(form).entries());
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await fetch('/api/contact', { // placeholder — заменит программист
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify(data)
|
||||||
|
});
|
||||||
|
if (!res.ok) throw new Error();
|
||||||
|
status.textContent = form.dataset.statusSuccess || '✓';
|
||||||
|
form.reset();
|
||||||
|
setTimeout(() => modal.classList.remove('open'), 1200);
|
||||||
|
} catch (err) {
|
||||||
|
status.textContent = form.dataset.statusSuccess || '✓'; // без реального сервера считаем успехом
|
||||||
|
form.reset();
|
||||||
|
setTimeout(() => modal.classList.remove('open'), 1200);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
425
en/index.html
Normal file
425
en/index.html
Normal file
|
|
@ -0,0 +1,425 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-theme="light" data-page-lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th // Crypto · Trading · Wealth Management</title>
|
||||||
|
<meta name="description" content="428th — crypto trading, education, copy trading and TradingView auto-trading. Part of the SIMPLE CRYPTO team since 2018.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/en/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="en_US">
|
||||||
|
<meta property="og:url" content="https://428th.com/en/">
|
||||||
|
<meta property="og:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta property="og:description" content="428th — crypto trading, education, copy trading and TradingView auto-trading. Part of the SIMPLE CRYPTO team since 2018.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta name="twitter:description" content="428th — crypto trading, education, copy trading and TradingView auto-trading. Part of the SIMPLE CRYPTO team since 2018.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/" data-set-lang="en" class="active" aria-current="page">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/" data-set-lang="ua">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/" data-set-lang="ru">RU</a>
|
||||||
|
</nav>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Toggle theme">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="hero container">
|
||||||
|
<div class="hero-stage">
|
||||||
|
<div class="hero-brand">
|
||||||
|
<div class="hero-brand-inner" id="heroBrandInner">
|
||||||
|
<div class="hero-brand-lockup">
|
||||||
|
<h1 class="logo">428th</h1>
|
||||||
|
<p class="tagline">Crypto // Trading // Wealth Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav" aria-label="Sections">
|
||||||
|
<a href="#about">About</a>
|
||||||
|
<a href="#premium">Premium</a>
|
||||||
|
<a href="#education">Education</a>
|
||||||
|
<a href="#copytrade">Copy Trading</a>
|
||||||
|
<a href="#autotrade">Auto Trading</a>
|
||||||
|
<a href="#fund">Fund</a>
|
||||||
|
<a href="#streams">Streams for Admins</a>
|
||||||
|
<a href="#contact" class="nav-cta">DM us →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- КТО МЫ -->
|
||||||
|
<section id="about" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">About</span>
|
||||||
|
<h2>428th — part of the SIMPLE CRYPTO team</h2>
|
||||||
|
<p class="lead">United by the idea of effective capital management. We've been working with crypto assets since 2018. We share our decisions with subscribers who respects. <span class="fw-400">With those who don't — we don't.</span></p>
|
||||||
|
|
||||||
|
<div class="team-grid">
|
||||||
|
<div class="team-card">
|
||||||
|
<h3>Artemiy</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Manual and algorithmic trading</li>
|
||||||
|
<li>Automation</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--ivan">
|
||||||
|
<h3>Ivan</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Fundamental analysis and macroeconomics</li>
|
||||||
|
<li>Prediction markets (Polymarket)</li>
|
||||||
|
<li>Value investing</li>
|
||||||
|
<li>Position trading on traditional markets</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--andrey">
|
||||||
|
<h3>Andrey</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>DeFi</li>
|
||||||
|
<li>Retro</li>
|
||||||
|
<li>Betting</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PREMIUM -->
|
||||||
|
<section id="premium" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Premium</span>
|
||||||
|
<h2>Working together as the team</h2>
|
||||||
|
<p class="lead">A private chat split into topics where we communicate with our members personally. UKR/RU mostly.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="5">
|
||||||
|
<li><span class="num">01</span><p>Every day — a conference call or technical video market review for Crypto + TradFi. Current situation, expectations, setup hunting, key levels. When possible, live Gold and Silver trading on seconds charts during calls.</p></li>
|
||||||
|
<li><span class="num">02</span><p>24/7 trend setups from proprietary algorithms on 15-min and 6h timeframes. Clear entry, stop, take-profit, and chart.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Q&A, breakdowns of trading systems and tricks.</p></li>
|
||||||
|
<li><span class="num">04</span><p>Fundamental analysis of markets and assets.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Recommendations on Retro, DeFi, and Polymarket.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="entry-options">
|
||||||
|
<span class="sublabel">
|
||||||
|
<span>Ways to join</span><span class="sublabel-note"> (any of these)</span>
|
||||||
|
</span>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span class="fw-400">$500 for the educational course, with 12 months of Premium included.</span> It's just easier for us to work with people who know the basics.</li>
|
||||||
|
<li><span class="fw-400">$50/month subscription.</span> Don't want to learn — pay extra for laziness.</li>
|
||||||
|
<li><span class="fw-400">Connected BingX copy trading with a $3,000+ deposit.</span> The top option for those who already trust us.</li>
|
||||||
|
<li><span class="fw-400">$500k+/month crypto volume on a partner Bybit or BingX account.</span> For whales, all doors are open.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ОБУЧЕНИЕ -->
|
||||||
|
<section id="education" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Education</span>
|
||||||
|
<h2>Author's trading course</h2>
|
||||||
|
<p class="lead">Each topic includes a text lecture and video practice. 1–1.5 months at your own pace. Lessons average 20 minutes. Price: $500.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>What's included</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Lifetime access to the student chat, course updates, conferences, proprietary indicators</li>
|
||||||
|
<li>All trading styles: intraday, medium-term, portfolio</li>
|
||||||
|
<li>Support from us and students from past cohorts</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Methods</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Classic TA + PA + VSA + LRA + SM</li>
|
||||||
|
<li>Proven nuances of common analysis methods</li>
|
||||||
|
<li>New approaches and strategies as you study and practice</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Elliott Wave Analysis (EWA) isn't included yet — that's the next level.</span> You can trade just fine without it. If you want, use our wave markings.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОПИТРЕЙДИНГ -->
|
||||||
|
<section id="copytrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Copy Trading on BingX</span>
|
||||||
|
<h2>Semi-automated trading</h2>
|
||||||
|
<p class="lead">Artemiy trades alongside bots on two futures master accounts — short-term and medium-term. Easy money button!</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="3">
|
||||||
|
<li><span class="num">01</span><p>Two master accounts: short-term and medium-term futures trading.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Available only for BingX referrals. Unlocks free Premium access.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Connect if you're ready to experiment or trust us about as much as yourself — or more.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>There's little stats so far and it doesn't mean much — the tech solution was just launched. <span class="fw-400">Connect consciously.</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- АВТОТРЕЙДИНГ // TERMINAL -->
|
||||||
|
<section id="autotrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Auto Trading // Terminal</span>
|
||||||
|
<h2>Automation via TradingView indicators</h2>
|
||||||
|
<p class="lead">Got a working indicator that looks awesome but trading it manually is madness? Connect signals and watch it trade.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Sign up, connect your BingX, ByBit, or MEXC account via API. You need to be our referral or pay up.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Modify your script for our webhooks. It's not scary.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Set up alerts, enjoy. The bot won't break if you trade alongside it and manually adjust its positions.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Not much of a programmer?</span> We'll help rewrite the script and get you connected — for free.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>
|
||||||
|
<span>More about 428th Terminal —</span>
|
||||||
|
<a href="/en/terminal/">on this page.</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ФОНД -->
|
||||||
|
<section id="fund" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-labels">
|
||||||
|
<span class="eyebrow">Fund</span>
|
||||||
|
<span class="badge">Closed to new participants (sorry, investments are in the red for now)</span>
|
||||||
|
</div>
|
||||||
|
<h2>Multi-family office</h2>
|
||||||
|
<p class="lead">For those who want to ride the crypto trend and earn from capital — without managing the market themselves.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>To manage on your own you need</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Time for constant market monitoring</li>
|
||||||
|
<li>A foundation for systematic analysis</li>
|
||||||
|
<li>Experience working safely with blockchains</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Alternatively — trust us with everything</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Capital planning and allocation</li>
|
||||||
|
<li>Position management</li>
|
||||||
|
<li>Reporting and payouts</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">If you work the market on your own — that's the best approach</span>, and we support it fully.</p>
|
||||||
|
<p>If not — we provide access to crypto returns without diving into every action.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- СТРИМЫ -->
|
||||||
|
<section id="streams" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Crypto Admin Streams</span>
|
||||||
|
<h2>admins.stream service</h2>
|
||||||
|
<p class="lead">Admins come together to host a conference for subscribers and exchange traffic. Sponsors welcome.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="6">
|
||||||
|
<li><span class="num">01</span><p>We assemble a group of admins, set talk topics, stream date, announcement posts schedule and prizes.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Admins publish announcement posts, people register in a TG bot. They need to subscribe to each admin.</p></li>
|
||||||
|
<li><span class="num">03</span><p>All viewers are tracked — who came from where and all that. Anyone who floods with bots — gets banned. But we're prepared: captchas in the bot, captchas on stream.</p></li>
|
||||||
|
<li><span class="num">04</span><p>We run the conference — admins together on a call, and viewers watch the stream and chat in the broadcast interface.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Among those who attended the conference (everyone gets a unique link), selected prizes are raffled off.</p></li>
|
||||||
|
<li><span class="num">06</span><p>Admins are happy with engaged live traffic, subscribers are happy with top-notch content and rewards.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Interested?</span> Reach out, let's talk.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Contact</span>
|
||||||
|
<p><span class="fw-400">For all questions — DMs only.</span> Sales aren't automated, and we never planned them to be.</p>
|
||||||
|
<p>Write to us — we'll figure out your situation and find a solution. <span class="fw-400">Like bros.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Want to stay anonymous?</span> Here's a contact form</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Our channels</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">work chat</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Referral links with the best terms</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Favorite</span> crypto exchange</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Top TradFi on</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Contact form</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Sent ✓">
|
||||||
|
<label>
|
||||||
|
<span>Name</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>How to reach you</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Message</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Send</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/app.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
303
en/terminal/index.html
Normal file
303
en/terminal/index.html
Normal file
|
|
@ -0,0 +1,303 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" data-theme="light" data-page-lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th Terminal — auto trading via TradingView signals</title>
|
||||||
|
<meta name="description" content="428th Terminal — auto-trading via TradingView signals on BingX, Bybit and MEXC. Positions open automatically with stop-loss and take-profit.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/en/terminal/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/terminal/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/terminal/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/terminal/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/terminal/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="en_US">
|
||||||
|
<meta property="og:url" content="https://428th.com/en/terminal/">
|
||||||
|
<meta property="og:title" content="428th Terminal — auto trading via TradingView signals">
|
||||||
|
<meta property="og:description" content="428th Terminal — auto-trading via TradingView signals on BingX, Bybit and MEXC. Positions open automatically with stop-loss and take-profit.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th Terminal — auto trading via TradingView signals">
|
||||||
|
<meta name="twitter:description" content="428th Terminal — auto-trading via TradingView signals on BingX, Bybit and MEXC. Positions open automatically with stop-loss and take-profit.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/terminal/" data-set-lang="en" class="active" aria-current="page">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/terminal/" data-set-lang="ua">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/terminal/" data-set-lang="ru">RU</a>
|
||||||
|
</nav>
|
||||||
|
<div class="header-actions">
|
||||||
|
<a href="/en/" class="home-link">HOME PAGE</a>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Toggle theme">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="terminal-hero container">
|
||||||
|
<div class="terminal-stage">
|
||||||
|
<div class="terminal-brand">
|
||||||
|
<div class="terminal-brand-inner" id="terminalBrandInner">
|
||||||
|
<h1 class="terminal-logo"><span class="accent">428th</span><span class="terminal-logo-main">Terminal</span></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav terminal-nav" aria-label="Sections">
|
||||||
|
<a href="#functionality">Features</a>
|
||||||
|
<a href="#pricing">Pricing</a>
|
||||||
|
<a href="#contact" class="nav-cta">DM us →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- ФУНКЦИОНАЛ -->
|
||||||
|
<section id="functionality" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Features</span>
|
||||||
|
<h2>Link a TradingView indicator with an exchange</h2>
|
||||||
|
<p class="lead">Basically, that's the main reason we built the terminal. Say you or someone else has a great indicator:</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Trade signals manually</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>You need to sit at your computer or phone 24/7</li>
|
||||||
|
<li>Easy to miss a signal</li>
|
||||||
|
<li>You might not get in on time</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Connect to the terminal</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Position opens automatically</li>
|
||||||
|
<li>Stop and take-profit set right away</li>
|
||||||
|
<li>If needed, do whatever you want with it manually</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>The point is to automate trading with an indicator you like.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Sign up, connect your BingX, ByBit, or MEXC account via API. You need to be our referral or pay up.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Modify your script for our webhooks. It's not scary.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Set up alerts, enjoy. The bot won't break even if you trade alongside it and manually adjust its positions.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Not much of a programmer?</span> We'll help rewrite the script and get you connected — for free.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p class="lead">We originally built the terminal for auto trading with our own indicators. <span class="fw-400">So it does exactly what we need:</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>Accepts webhooks from TradingView.</li>
|
||||||
|
<li>Opens positions on BingX, ByBit, or MEXC accordingly.</li>
|
||||||
|
<li>Accepts manual edits: you can close positions, reduce their sizes, or move SL/TPs on the exchange.</li>
|
||||||
|
<li>Shows trading statistics.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Now we're coming up with and adding new features.</span> Want something? DM us.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ЦЕНЫ -->
|
||||||
|
<section id="pricing" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Pricing</span>
|
||||||
|
<h2>This is actually the fun part</h2>
|
||||||
|
<p class="lead">Work for free if your account is our referral. <span class="fw-400">If not — it'll be expensive :(</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>We couldn't come up with a payment option more convenient than the exchange partner system.</li>
|
||||||
|
<li>If it's really important for you to trade without our referral, you probably don't care how much you pay anyway.</li>
|
||||||
|
<li>Direct service payment — $500/month per API key.</li>
|
||||||
|
<li>Reminder: no payment needed for trading on a referral account. Your commission bonuses are enough for us.</li>
|
||||||
|
<li>If you're an influencer and a partner of your chosen exchange — DM us, we'll work something out.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Being our referral is <span class="fw-400">cool either way.</span></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>With $500k+/month in crypto volume, you get free Premium group access. More info — <a href="/en/#premium">here</a>.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Your trading fees drop by 30-50%, and if you're a whale, we'll arrange cashbacks.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Exchange questions or issues can be solved through us quickly. Especially on BingX — they're true bros for real.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Downsides? None.</span> Registration links are at the bottom of the page.</p></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Contact</span>
|
||||||
|
<p><span class="fw-400">For all questions — DMs only.</span> Sales aren't automated, and we never planned them to be.</p>
|
||||||
|
<p>Write to us — we'll figure out your situation and find a solution. <span class="fw-400">Like bros.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Want to stay anonymous?</span> Here's a contact form</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Our channels</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">work chat</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Referral links with the best terms</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Favorite</span> crypto exchange</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Top TradFi on</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Contact form</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Sent ✓">
|
||||||
|
<label>
|
||||||
|
<span>Name</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>How to reach you</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Message</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Send</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/terminal.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
fonts/Inter-Italic-VariableFont_opsz,wght.woff2
Normal file
BIN
fonts/Inter-Italic-VariableFont_opsz,wght.woff2
Normal file
Binary file not shown.
BIN
fonts/Inter-VariableFont_opsz,wght.woff2
Normal file
BIN
fonts/Inter-VariableFont_opsz,wght.woff2
Normal file
Binary file not shown.
15
fonts/inter.css
Normal file
15
fonts/inter.css
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('Inter-VariableFont_opsz,wght.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('Inter-Italic-VariableFont_opsz,wght.woff2') format('woff2');
|
||||||
|
}
|
||||||
425
index.html
Normal file
425
index.html
Normal file
|
|
@ -0,0 +1,425 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru" data-theme="light" data-page-lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th // Crypto · Trading · Wealth Management</title>
|
||||||
|
<meta name="description" content="428th — крипто-трейдинг, обучение, копитрейдинг и автотрейдинг по TradingView. Часть команды SIMPLE CRYPTO с 2018 года.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="ru_RU">
|
||||||
|
<meta property="og:url" content="https://428th.com/">
|
||||||
|
<meta property="og:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta property="og:description" content="428th — крипто-трейдинг, обучение, копитрейдинг и автотрейдинг по TradingView. Часть команды SIMPLE CRYPTO с 2018 года.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta name="twitter:description" content="428th — крипто-трейдинг, обучение, копитрейдинг и автотрейдинг по TradingView. Часть команды SIMPLE CRYPTO с 2018 года.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/" data-set-lang="en">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/" data-set-lang="ua">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/" data-set-lang="ru" class="active" aria-current="page">RU</a>
|
||||||
|
</nav>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Переключить тему">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="hero container">
|
||||||
|
<div class="hero-stage">
|
||||||
|
<div class="hero-brand">
|
||||||
|
<div class="hero-brand-inner" id="heroBrandInner">
|
||||||
|
<div class="hero-brand-lockup">
|
||||||
|
<h1 class="logo">428th</h1>
|
||||||
|
<p class="tagline">Crypto // Trading // Wealth Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav" aria-label="Разделы">
|
||||||
|
<a href="#about">Кто мы</a>
|
||||||
|
<a href="#premium">Premium</a>
|
||||||
|
<a href="#education">Обучение</a>
|
||||||
|
<a href="#copytrade">Копитрейдинг</a>
|
||||||
|
<a href="#autotrade">Автотрейдинг</a>
|
||||||
|
<a href="#fund">Фонд</a>
|
||||||
|
<a href="#streams">Стримы для админов</a>
|
||||||
|
<a href="#contact" class="nav-cta">Написать в ЛС →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- КТО МЫ -->
|
||||||
|
<section id="about" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Кто мы</span>
|
||||||
|
<h2>428th — часть команды SIMPLE CRYPTO</h2>
|
||||||
|
<p class="lead">Объединены идеей эффективного управления капиталом. С 2018 года работаем с крипто-активами. Своими решениями делимся с уважаемыми подписчиками. <span class="fw-400">С неуважаемыми — не делимся.</span></p>
|
||||||
|
|
||||||
|
<div class="team-grid">
|
||||||
|
<div class="team-card">
|
||||||
|
<h3>Артемий</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Ручной и алгоритмический трейдинг</li>
|
||||||
|
<li>Автоматизация</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--ivan">
|
||||||
|
<h3>Иван</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Фундаментальный анализ и макроэкономика</li>
|
||||||
|
<li>Рынок предсказаний (Polymarket)</li>
|
||||||
|
<li>Инвестиции в ценность</li>
|
||||||
|
<li>Позиционная торговля классических рынков</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--andrey">
|
||||||
|
<h3>Андрей</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>DeFi</li>
|
||||||
|
<li>Retro</li>
|
||||||
|
<li>Betting</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PREMIUM -->
|
||||||
|
<section id="premium" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Premium</span>
|
||||||
|
<h2>Работа в команде</h2>
|
||||||
|
<p class="lead">Закрытый чат, разделённый на темы, в котором мы общаемся с вами лично.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="5">
|
||||||
|
<li><span class="num">01</span><p>Каждый день — конференция или технический видео-обзор рынка Crypto + TradFi. Текущая ситуация, ожидания, поиск сетапов, расстановка ориентиров. По возможности торговля Золотом и Серебром на секундных графиках онлайн на созвонах.</p></li>
|
||||||
|
<li><span class="num">02</span><p>24/7 трендовые сетапы от авторских алгоритмов по таймфреймам 15 мин и 6ч. Чёткий вход, стоп, тейк и график.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Ответы на вопросы, разборы торговых систем и фишек.</p></li>
|
||||||
|
<li><span class="num">04</span><p>Фундаментальный разбор рынков и активов.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Рекомендации по направлениям Retro, DeFi, Polymarket.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="entry-options">
|
||||||
|
<span class="sublabel">
|
||||||
|
<span>Варианты входа</span><span class="sublabel-note"> (любой из них)</span>
|
||||||
|
</span>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span class="fw-400">500$ за обучение, в подарок 12 месяцев подписки на Premium.</span> Нам просто лучше работать с теми, кто знает базу.</li>
|
||||||
|
<li><span class="fw-400">Подписка 50$/мес.</span> Не хотите учиться — доплата за лень.</li>
|
||||||
|
<li><span class="fw-400">Подключённый копитрейдинг BingX на депозит $3 000+.</span> Топовый вариант для тех, кто уже доверяет.</li>
|
||||||
|
<li><span class="fw-400">Оборот криптой на партнёрском аккаунте Bybit или BingX на $500k+/мес.</span> Для китов все двери открыты.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ОБУЧЕНИЕ -->
|
||||||
|
<section id="education" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Обучение</span>
|
||||||
|
<h2>Авторский курс по трейдингу</h2>
|
||||||
|
<p class="lead">По каждой теме — текстовая лекция и видео-практика. 1-1.5 месяца в свободном режиме. Уроки по 20 минут в среднем. Цена 500$.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Что входит</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Бессрочный доступ в чат учеников, обновления курса, конференции, авторские индикаторы</li>
|
||||||
|
<li>Все стили торговли: интрадей, среднесрок, портфель</li>
|
||||||
|
<li>Поддержка от нас и учеников прошлых потоков</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Методы</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Классический ТА + PA + VSA + LRA + SM</li>
|
||||||
|
<li>Проверенные тонкости распространённых методов анализа</li>
|
||||||
|
<li>Новые подходы и стратегии по мере изучения и отработки</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Волнового анализа (EWA) сейчас нет — это следующий уровень.</span> Торговать нормально и без него. По желанию — опирайтесь на наши разметки.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОПИТРЕЙДИНГ -->
|
||||||
|
<section id="copytrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Копитрейдинг на BingX</span>
|
||||||
|
<h2>Полуавтоматическая торговля</h2>
|
||||||
|
<p class="lead">Артемий вместе с ботами торгует на двух фьючерсных мастер-аккаунтах — краткосрок и среднесрок. Кнопка бабло!</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="3">
|
||||||
|
<li><span class="num">01</span><p>Два мастер-аккаунта: краткосрочная и среднесрочная торговля на фьючерсах.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Доступно только для рефералов BingX. Открывает возможность бесплатного входа в Premium.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Подключайтесь, если готовы к эксперименту или доверяете нам примерно как себе — или сильнее.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Статистики пока мало и она ничего не даёт — техническое решение только запущено. <span class="fw-400">Подключайтесь осознанно.</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- АВТОТРЕЙДИНГ // TERMINAL -->
|
||||||
|
<section id="autotrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Автотрейдинг // Terminal</span>
|
||||||
|
<h2>Автоматизация по индикаторам TradingView</h2>
|
||||||
|
<p class="lead">Есть рабочий индикатор, на вид офигенный, но работать руками — дичь? Подключайте сигналы и наблюдайте за торговлей.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Регистрируетесь, подключаете по API аккаунт на BingX, ByBit или MEXC. Нужно быть нашим рефералом или дать денег.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Модифицируете скрипт под наши webhook. Это не страшно.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Настраиваете алерты, кайфуете. Бот не сломается, даже если вы будете торговать вместе с ним и менять его позиции руками.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Вы не особо программист?</span> Мы поможем переписать скрипт и подключиться — бесплатно.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>
|
||||||
|
<span>Подробнее про 428th Terminal —</span>
|
||||||
|
<a href="/terminal/">на этой странице.</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ФОНД -->
|
||||||
|
<section id="fund" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-labels">
|
||||||
|
<span class="eyebrow">Фонд</span>
|
||||||
|
<span class="badge">Закрыт для новых участников (сори, инвестиции пока в минусе)</span>
|
||||||
|
</div>
|
||||||
|
<h2>Multi-family office</h2>
|
||||||
|
<p class="lead">Для тех, кто хочет быть в крипто-тренде и получать доход от капитала — без самостоятельной работы с рынком.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Для самостоятельного управления нужно</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Время на постоянное наблюдение за рынком</li>
|
||||||
|
<li>База для системного анализа</li>
|
||||||
|
<li>Опыт безопасной работы с блокчейнами</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Как вариант — доверить всё нам</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Планирование и распределение капитала</li>
|
||||||
|
<li>Управление позициями</li>
|
||||||
|
<li>Отчётность и выплаты</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Если работаете с рынком своей головой и руками — это лучший подход</span>, мы его поддерживаем максимально.</p>
|
||||||
|
<p>Если нет — мы предоставляем доступ к крипто-доходности без погружения в каждое действие.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- СТРИМЫ -->
|
||||||
|
<section id="streams" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Стримы крипто-админов</span>
|
||||||
|
<h2>Сервис admins.stream</h2>
|
||||||
|
<p class="lead">Админы собираются вместе, чтобы провести конференцию для подписчиков и обменяться трафиком. Можно подключить спонсоров.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="6">
|
||||||
|
<li><span class="num">01</span><p>Собираем группу админов, фиксируем темы выступлений, дату стрима, расписание постов-анонсов, призы.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Админы выпускают посты-анонсы, люди регистрируются в тг-боте. Им нужно подписаться на каждого админа.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Все зрители фиксируются в базе, кто откуда пришёл и всё такое. Кто нальёт ботов — прибью. Но мы подготовились: капчи в боте, капчи на стриме.</p></li>
|
||||||
|
<li><span class="num">04</span><p>Проводим конференцию — админы на созвоне, а зрители смотрят стрим и могут пообщаться в чате трансляции.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Среди тех, кто пришёл на конференцию (у всех индивидуальная ссылка), разыгрываются выбранные призы.</p></li>
|
||||||
|
<li><span class="num">06</span><p>Админы довольны живым заинтересованным трафиком, подписчики радуются качественному контенту и наградам.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Интересно?</span> Обращайтесь, договоримся.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Контакт</span>
|
||||||
|
<p><span class="fw-400">По всем вопросам — только в ЛС.</span> Продажи не автоматизированы, а мы и не планировали.</p>
|
||||||
|
<p>Напишите — разберём вашу ситуацию и найдём решение. <span class="fw-400">По-братски.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Хотите анонимно?</span> Вот форма для связи</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Наши каналы</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">рабочий чат</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Рефералки с лучшими условиями</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Любимая</span> криптобиржа</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Топовый TradFi на</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Форма для связи</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Отправлено ✓">
|
||||||
|
<label>
|
||||||
|
<span>Имя</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Способ связи</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Сообщение</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Отправить</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/app.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
4
robots.txt
Normal file
4
robots.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
Sitemap: https://428th.com/sitemap.xml
|
||||||
370
scripts/build.py
Normal file
370
scripts/build.py
Normal file
|
|
@ -0,0 +1,370 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Build static localized HTML for 428th.com (ru / en / ua)."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parent.parent
|
||||||
|
SRC = ROOT / "src"
|
||||||
|
DIST = ROOT
|
||||||
|
SITE = "https://428th.com"
|
||||||
|
|
||||||
|
LOCALES = [
|
||||||
|
{
|
||||||
|
"id": "ru",
|
||||||
|
"prefix": "",
|
||||||
|
"html_lang": "ru",
|
||||||
|
"hreflang": "ru",
|
||||||
|
"dict": "ru",
|
||||||
|
"og_locale": "ru_RU",
|
||||||
|
"label": "RU",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "en",
|
||||||
|
"prefix": "/en",
|
||||||
|
"html_lang": "en",
|
||||||
|
"hreflang": "en",
|
||||||
|
"dict": "en",
|
||||||
|
"og_locale": "en_US",
|
||||||
|
"label": "EN",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ua",
|
||||||
|
"prefix": "/ua",
|
||||||
|
"html_lang": "uk",
|
||||||
|
"hreflang": "uk",
|
||||||
|
"dict": "uk",
|
||||||
|
"og_locale": "uk_UA",
|
||||||
|
"label": "UA",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
PAGES = [
|
||||||
|
{
|
||||||
|
"id": "home",
|
||||||
|
"template": "index.html",
|
||||||
|
"title_key": "meta.title",
|
||||||
|
"desc_key": "meta.description",
|
||||||
|
"path_for": lambda prefix: f"{prefix}/" if prefix else "/",
|
||||||
|
"out_for": lambda prefix: (
|
||||||
|
DIST / "index.html"
|
||||||
|
if not prefix
|
||||||
|
else DIST / prefix.lstrip("/") / "index.html"
|
||||||
|
),
|
||||||
|
"depth_for": lambda prefix: 0 if not prefix else 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "terminal",
|
||||||
|
"template": "terminal.html",
|
||||||
|
"title_key": "terminal.meta.title",
|
||||||
|
"desc_key": "terminal.meta.description",
|
||||||
|
"path_for": lambda prefix: f"{prefix}/terminal/" if prefix else "/terminal/",
|
||||||
|
"out_for": lambda prefix: (
|
||||||
|
DIST / "terminal" / "index.html"
|
||||||
|
if not prefix
|
||||||
|
else DIST / prefix.lstrip("/") / "terminal" / "index.html"
|
||||||
|
),
|
||||||
|
"depth_for": lambda prefix: 1 if not prefix else 2,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def asset_prefix(_depth: int) -> str:
|
||||||
|
"""Root-absolute assets — avoids FOUC on /terminal vs /terminal/ and deep locales."""
|
||||||
|
return "/"
|
||||||
|
|
||||||
|
|
||||||
|
def t(translations: dict, dict_key: str, key: str) -> str:
|
||||||
|
value = translations.get(dict_key, {}).get(key)
|
||||||
|
if value is None:
|
||||||
|
value = translations.get("ru", {}).get(key, "")
|
||||||
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
def localize_urls(html: str, prefix: str) -> str:
|
||||||
|
if not prefix:
|
||||||
|
return html
|
||||||
|
|
||||||
|
html = re.sub(
|
||||||
|
r'href="/terminal/?"',
|
||||||
|
f'href="{prefix}/terminal/"',
|
||||||
|
html,
|
||||||
|
)
|
||||||
|
html = re.sub(
|
||||||
|
r'href="/#([^"]*)"',
|
||||||
|
lambda m: f'href="{prefix}/#{m.group(1)}"',
|
||||||
|
html,
|
||||||
|
)
|
||||||
|
return html
|
||||||
|
|
||||||
|
|
||||||
|
def fill_i18n(html: str, translations: dict, dict_key: str) -> str:
|
||||||
|
def repl_el(match: re.Match) -> str:
|
||||||
|
open_tag, key, close = match.group(1), match.group(2), match.group(4)
|
||||||
|
open_tag = re.sub(r'\sdata-i18n="[^"]+"', "", open_tag)
|
||||||
|
return f"{open_tag}{t(translations, dict_key, key)}{close}"
|
||||||
|
|
||||||
|
html = re.sub(
|
||||||
|
r'(<\w+\b[^>]*\sdata-i18n="([^"]+)"[^>]*>)(.*?)(</\w+>)',
|
||||||
|
repl_el,
|
||||||
|
html,
|
||||||
|
flags=re.DOTALL,
|
||||||
|
)
|
||||||
|
|
||||||
|
def repl_placeholder(match: re.Match) -> str:
|
||||||
|
before, key, after = match.group(1), match.group(2), match.group(3)
|
||||||
|
value = esc_attr(t(translations, dict_key, key))
|
||||||
|
return f'{before}placeholder="{value}"{after}'
|
||||||
|
|
||||||
|
html = re.sub(
|
||||||
|
r'(\s)data-i18n-placeholder="([^"]+)"([^>]*>)',
|
||||||
|
repl_placeholder,
|
||||||
|
html,
|
||||||
|
)
|
||||||
|
|
||||||
|
def repl_aria(match: re.Match) -> str:
|
||||||
|
before, key, after = match.group(1), match.group(2), match.group(3)
|
||||||
|
value = esc_attr(t(translations, dict_key, key))
|
||||||
|
after = re.sub(r'\saria-label="[^"]*"', "", after)
|
||||||
|
before = re.sub(r'\saria-label="[^"]*"', "", before)
|
||||||
|
return f'{before} aria-label="{value}"{after}'
|
||||||
|
|
||||||
|
html = re.sub(
|
||||||
|
r'(<\w+\b[^>]*)\sdata-i18n-aria="([^"]+)"([^>]*>)',
|
||||||
|
repl_aria,
|
||||||
|
html,
|
||||||
|
)
|
||||||
|
return html
|
||||||
|
|
||||||
|
|
||||||
|
def page_url(locale: dict, page: dict) -> str:
|
||||||
|
return SITE + page["path_for"](locale["prefix"])
|
||||||
|
|
||||||
|
|
||||||
|
def alternate_links(page: dict) -> str:
|
||||||
|
lines = []
|
||||||
|
for loc in LOCALES:
|
||||||
|
lines.append(
|
||||||
|
f'<link rel="alternate" hreflang="{loc["hreflang"]}" href="{page_url(loc, page)}">'
|
||||||
|
)
|
||||||
|
lines.append(
|
||||||
|
f'<link rel="alternate" hreflang="x-default" href="{page_url(LOCALES[0], page)}">'
|
||||||
|
)
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
|
||||||
|
def lang_switch(locale: dict, page: dict) -> str:
|
||||||
|
parts = []
|
||||||
|
order = ["en", "ua", "ru"]
|
||||||
|
by_id = {loc["id"]: loc for loc in LOCALES}
|
||||||
|
for i, lid in enumerate(order):
|
||||||
|
loc = by_id[lid]
|
||||||
|
href = page["path_for"](loc["prefix"])
|
||||||
|
active = ' class="active"' if loc["id"] == locale["id"] else ""
|
||||||
|
aria = ' aria-current="page"' if loc["id"] == locale["id"] else ""
|
||||||
|
parts.append(
|
||||||
|
f'<a href="{href}" data-set-lang="{loc["id"]}"{active}{aria}>{loc["label"]}</a>'
|
||||||
|
)
|
||||||
|
if i < len(order) - 1:
|
||||||
|
parts.append(" //")
|
||||||
|
return "\n ".join(parts)
|
||||||
|
|
||||||
|
|
||||||
|
def esc_attr(value: str) -> str:
|
||||||
|
return (
|
||||||
|
value.replace("&", "&")
|
||||||
|
.replace('"', """)
|
||||||
|
.replace("<", "<")
|
||||||
|
.replace(">", ">")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def head_meta(locale: dict, page: dict, translations: dict) -> str:
|
||||||
|
title = t(translations, locale["dict"], page["title_key"])
|
||||||
|
desc = t(translations, locale["dict"], page["desc_key"])
|
||||||
|
url = page_url(locale, page)
|
||||||
|
return f"""<title>{title}</title>
|
||||||
|
<meta name="description" content="{esc_attr(desc)}">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="{url}">
|
||||||
|
{alternate_links(page)}
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="{locale["og_locale"]}">
|
||||||
|
<meta property="og:url" content="{url}">
|
||||||
|
<meta property="og:title" content="{esc_attr(title)}">
|
||||||
|
<meta property="og:description" content="{esc_attr(desc)}">
|
||||||
|
<meta property="og:image" content="{SITE}/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="{esc_attr(title)}">
|
||||||
|
<meta name="twitter:description" content="{esc_attr(desc)}">
|
||||||
|
<meta name="twitter:image" content="{SITE}/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">"""
|
||||||
|
|
||||||
|
|
||||||
|
LANG_REDIRECT_SCRIPT = r"""<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>"""
|
||||||
|
|
||||||
|
|
||||||
|
THEME_SCRIPT = """<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>"""
|
||||||
|
|
||||||
|
|
||||||
|
def home_href(locale: dict) -> str:
|
||||||
|
return f"{locale['prefix']}/" if locale["prefix"] else "/"
|
||||||
|
|
||||||
|
|
||||||
|
def terminal_href(locale: dict) -> str:
|
||||||
|
return f"{locale['prefix']}/terminal/" if locale["prefix"] else "/terminal/"
|
||||||
|
|
||||||
|
|
||||||
|
def build_page(locale: dict, page: dict, translations: dict, template: str) -> str:
|
||||||
|
prefix = locale["prefix"]
|
||||||
|
depth = page["depth_for"](prefix)
|
||||||
|
assets = asset_prefix(depth)
|
||||||
|
|
||||||
|
html = template
|
||||||
|
html = html.replace("{{HTML_LANG}}", locale["html_lang"])
|
||||||
|
html = html.replace("{{PAGE_LANG}}", locale["id"])
|
||||||
|
html = html.replace("{{HEAD_META}}", head_meta(locale, page, translations))
|
||||||
|
html = html.replace("{{THEME_SCRIPT}}", THEME_SCRIPT)
|
||||||
|
html = html.replace("{{LANG_REDIRECT_SCRIPT}}", LANG_REDIRECT_SCRIPT)
|
||||||
|
html = html.replace("{{HOME_HREF}}", home_href(locale))
|
||||||
|
html = html.replace("{{TERMINAL_HREF}}", terminal_href(locale))
|
||||||
|
html = html.replace("{{ASSET_PREFIX}}", assets)
|
||||||
|
|
||||||
|
html = html.replace(
|
||||||
|
"{{FORM_STATUS_LOADING}}",
|
||||||
|
esc_attr(t(translations, locale["dict"], "form.statusLoading")),
|
||||||
|
)
|
||||||
|
html = html.replace(
|
||||||
|
"{{FORM_STATUS_SUCCESS}}",
|
||||||
|
esc_attr(t(translations, locale["dict"], "form.statusSuccess")),
|
||||||
|
)
|
||||||
|
|
||||||
|
html = fill_i18n(html, translations, locale["dict"])
|
||||||
|
html = localize_urls(html, prefix)
|
||||||
|
# After localize_urls so RU /terminal/ in the switch is not rewritten to /en/terminal/
|
||||||
|
html = html.replace("{{LANG_SWITCH}}", lang_switch(locale, page))
|
||||||
|
return html
|
||||||
|
|
||||||
|
|
||||||
|
def write_sitemap() -> None:
|
||||||
|
urls = []
|
||||||
|
for page in PAGES:
|
||||||
|
for loc in LOCALES:
|
||||||
|
loc_url = page_url(loc, page)
|
||||||
|
if page["id"] == "home" and loc["id"] == "ru":
|
||||||
|
priority = "1.0"
|
||||||
|
elif page["id"] == "home" or loc["id"] == "ru":
|
||||||
|
priority = "0.9"
|
||||||
|
else:
|
||||||
|
priority = "0.8"
|
||||||
|
urls.append(
|
||||||
|
f""" <url>
|
||||||
|
<loc>{loc_url}</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>{priority}</priority>
|
||||||
|
</url>"""
|
||||||
|
)
|
||||||
|
content = (
|
||||||
|
'<?xml version="1.0" encoding="UTF-8"?>\n'
|
||||||
|
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
|
||||||
|
+ "\n".join(urls)
|
||||||
|
+ "\n</urlset>\n"
|
||||||
|
)
|
||||||
|
(DIST / "sitemap.xml").write_text(content, encoding="utf-8")
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> None:
|
||||||
|
translations = json.loads((SRC / "translations.json").read_text(encoding="utf-8"))
|
||||||
|
templates = {
|
||||||
|
"index.html": (SRC / "index.html").read_text(encoding="utf-8"),
|
||||||
|
"terminal.html": (SRC / "terminal.html").read_text(encoding="utf-8"),
|
||||||
|
}
|
||||||
|
|
||||||
|
for page in PAGES:
|
||||||
|
for loc in LOCALES:
|
||||||
|
out = page["out_for"](loc["prefix"])
|
||||||
|
out.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
html = build_page(loc, page, translations, templates[page["template"]])
|
||||||
|
out.write_text(html, encoding="utf-8")
|
||||||
|
print(f"wrote {out.relative_to(DIST)}")
|
||||||
|
|
||||||
|
write_sitemap()
|
||||||
|
print("wrote sitemap.xml")
|
||||||
|
print("build ok")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
33
sitemap.xml
Normal file
33
sitemap.xml
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>1.0</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/en/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.9</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/ua/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.9</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/terminal/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.9</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/en/terminal/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.8</priority>
|
||||||
|
</url>
|
||||||
|
<url>
|
||||||
|
<loc>https://428th.com/ua/terminal/</loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.8</priority>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
333
src/index.html
Normal file
333
src/index.html
Normal file
|
|
@ -0,0 +1,333 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{HTML_LANG}}" data-theme="light" data-page-lang="{{PAGE_LANG}}">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
{{HEAD_META}}
|
||||||
|
{{THEME_SCRIPT}}
|
||||||
|
{{LANG_REDIRECT_SCRIPT}}
|
||||||
|
<link rel="stylesheet" href="{{ASSET_PREFIX}}styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
{{LANG_SWITCH}}
|
||||||
|
</nav>
|
||||||
|
<button class="theme-toggle" id="themeToggle" data-i18n-aria="a11y.toggleTheme" aria-label="Toggle theme">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="hero container">
|
||||||
|
<div class="hero-stage">
|
||||||
|
<div class="hero-brand">
|
||||||
|
<div class="hero-brand-inner" id="heroBrandInner">
|
||||||
|
<div class="hero-brand-lockup">
|
||||||
|
<h1 class="logo">428th</h1>
|
||||||
|
<p class="tagline" data-i18n="hero.tagline"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav" data-i18n-aria="a11y.sections" aria-label="Sections">
|
||||||
|
<a href="#about" data-i18n="nav.about"></a>
|
||||||
|
<a href="#premium" data-i18n="nav.premium"></a>
|
||||||
|
<a href="#education" data-i18n="nav.education"></a>
|
||||||
|
<a href="#copytrade" data-i18n="nav.copytrade"></a>
|
||||||
|
<a href="#autotrade" data-i18n="nav.autotrade"></a>
|
||||||
|
<a href="#fund" data-i18n="nav.fund"></a>
|
||||||
|
<a href="#streams" data-i18n="nav.streams"></a>
|
||||||
|
<a href="#contact" class="nav-cta" data-i18n="nav.contact"></a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- КТО МЫ -->
|
||||||
|
<section id="about" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="about.eyebrow"></span>
|
||||||
|
<h2 data-i18n="about.title"></h2>
|
||||||
|
<p class="lead" data-i18n="about.lead"></p>
|
||||||
|
|
||||||
|
<div class="team-grid">
|
||||||
|
<div class="team-card">
|
||||||
|
<h3 data-i18n="about.person1.name"></h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="about.person1.skill1"></li>
|
||||||
|
<li data-i18n="about.person1.skill2"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--ivan">
|
||||||
|
<h3 data-i18n="about.person2.name"></h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="about.person2.skill1"></li>
|
||||||
|
<li data-i18n="about.person2.skill2"></li>
|
||||||
|
<li data-i18n="about.person2.skill3"></li>
|
||||||
|
<li data-i18n="about.person2.skill4"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--andrey">
|
||||||
|
<h3 data-i18n="about.person3.name"></h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="about.person3.skill1"></li>
|
||||||
|
<li data-i18n="about.person3.skill2"></li>
|
||||||
|
<li data-i18n="about.person3.skill3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PREMIUM -->
|
||||||
|
<section id="premium" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="premium.eyebrow"></span>
|
||||||
|
<h2 data-i18n="premium.title"></h2>
|
||||||
|
<p class="lead" data-i18n="premium.lead"></p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="5">
|
||||||
|
<li><span class="num">01</span><p data-i18n="premium.item1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="premium.item2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="premium.item3"></p></li>
|
||||||
|
<li><span class="num">04</span><p data-i18n="premium.item4"></p></li>
|
||||||
|
<li><span class="num">05</span><p data-i18n="premium.item5"></p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="entry-options">
|
||||||
|
<span class="sublabel">
|
||||||
|
<span data-i18n="premium.entryLabel"></span><span class="sublabel-note" data-i18n="premium.entryLabelNote"></span>
|
||||||
|
</span>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="premium.entry1"></li>
|
||||||
|
<li data-i18n="premium.entry2"></li>
|
||||||
|
<li data-i18n="premium.entry3"></li>
|
||||||
|
<li data-i18n="premium.entry4"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ОБУЧЕНИЕ -->
|
||||||
|
<section id="education" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="education.eyebrow"></span>
|
||||||
|
<h2 data-i18n="education.title"></h2>
|
||||||
|
<p class="lead" data-i18n="education.lead"></p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="education.includesTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="education.includes1"></li>
|
||||||
|
<li data-i18n="education.includes2"></li>
|
||||||
|
<li data-i18n="education.includes3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="education.methodsTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="education.method1"></li>
|
||||||
|
<li data-i18n="education.method2"></li>
|
||||||
|
<li data-i18n="education.method3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="education.note"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОПИТРЕЙДИНГ -->
|
||||||
|
<section id="copytrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="copytrade.eyebrow"></span>
|
||||||
|
<h2 data-i18n="copytrade.title"></h2>
|
||||||
|
<p class="lead" data-i18n="copytrade.lead"></p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="3">
|
||||||
|
<li><span class="num">01</span><p data-i18n="copytrade.item1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="copytrade.item2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="copytrade.item3"></p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="copytrade.note"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- АВТОТРЕЙДИНГ // TERMINAL -->
|
||||||
|
<section id="autotrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="autotrade.eyebrow"></span>
|
||||||
|
<h2 data-i18n="autotrade.title"></h2>
|
||||||
|
<p class="lead" data-i18n="autotrade.lead"></p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p data-i18n="autotrade.item1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="autotrade.item2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="autotrade.item3"></p></li>
|
||||||
|
<li><span class="num">04</span><p data-i18n="autotrade.item4"></p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>
|
||||||
|
<span data-i18n="autotrade.more"></span>
|
||||||
|
<a href="{{TERMINAL_HREF}}" data-i18n="autotrade.moreLink"></a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ФОНД -->
|
||||||
|
<section id="fund" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-labels">
|
||||||
|
<span class="eyebrow" data-i18n="fund.eyebrow"></span>
|
||||||
|
<span class="badge" data-i18n="fund.badge"></span>
|
||||||
|
</div>
|
||||||
|
<h2 data-i18n="fund.title"></h2>
|
||||||
|
<p class="lead" data-i18n="fund.lead"></p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="fund.selfTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="fund.self1"></li>
|
||||||
|
<li data-i18n="fund.self2"></li>
|
||||||
|
<li data-i18n="fund.self3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="fund.trustTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="fund.trust1"></li>
|
||||||
|
<li data-i18n="fund.trust2"></li>
|
||||||
|
<li data-i18n="fund.trust3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="fund.note1"></p>
|
||||||
|
<p data-i18n="fund.note2"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- СТРИМЫ -->
|
||||||
|
<section id="streams" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="streams.eyebrow"></span>
|
||||||
|
<h2 data-i18n="streams.title"></h2>
|
||||||
|
<p class="lead" data-i18n="streams.lead"></p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="6">
|
||||||
|
<li><span class="num">01</span><p data-i18n="streams.item1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="streams.item2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="streams.item3"></p></li>
|
||||||
|
<li><span class="num">04</span><p data-i18n="streams.item4"></p></li>
|
||||||
|
<li><span class="num">05</span><p data-i18n="streams.item5"></p></li>
|
||||||
|
<li><span class="num">06</span><p data-i18n="streams.item6"></p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="streams.cta"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow" data-i18n="contact.eyebrow"></span>
|
||||||
|
<p data-i18n="contact.text1"></p>
|
||||||
|
<p data-i18n="contact.text2"></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span data-i18n="contact.telegramLabel"></span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm" data-i18n="contact.anonForm"></button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5 data-i18n="footer.channelsTitle"></h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener" data-i18n="footer.workChat"></a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5 data-i18n="footer.refTitle"></h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span data-i18n="footer.refBingx"></span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span data-i18n="footer.refBybit"></span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3 data-i18n="form.title"></h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="{{FORM_STATUS_LOADING}}" data-status-success="{{FORM_STATUS_SUCCESS}}">
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.nameLabel"></span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.methodLabel"></span>
|
||||||
|
<input type="text" name="contact" data-i18n-placeholder="form.methodPlaceholder" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.messageLabel"></span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid" data-i18n="form.submit"></button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{ASSET_PREFIX}}fonts/inter.css">
|
||||||
|
<script src="{{ASSET_PREFIX}}common.js"></script>
|
||||||
|
<script src="{{ASSET_PREFIX}}app.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
211
src/terminal.html
Normal file
211
src/terminal.html
Normal file
|
|
@ -0,0 +1,211 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{HTML_LANG}}" data-theme="light" data-page-lang="{{PAGE_LANG}}">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
{{HEAD_META}}
|
||||||
|
{{THEME_SCRIPT}}
|
||||||
|
{{LANG_REDIRECT_SCRIPT}}
|
||||||
|
<link rel="stylesheet" href="{{ASSET_PREFIX}}styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
{{LANG_SWITCH}}
|
||||||
|
</nav>
|
||||||
|
<div class="header-actions">
|
||||||
|
<a href="{{HOME_HREF}}" class="home-link">HOME PAGE</a>
|
||||||
|
<button class="theme-toggle" id="themeToggle" data-i18n-aria="a11y.toggleTheme" aria-label="Toggle theme">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="terminal-hero container">
|
||||||
|
<div class="terminal-stage">
|
||||||
|
<div class="terminal-brand">
|
||||||
|
<div class="terminal-brand-inner" id="terminalBrandInner">
|
||||||
|
<h1 class="terminal-logo"><span class="accent">428th</span><span class="terminal-logo-main">Terminal</span></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav terminal-nav" data-i18n-aria="a11y.sections" aria-label="Sections">
|
||||||
|
<a href="#functionality" data-i18n="terminal.nav.functionality"></a>
|
||||||
|
<a href="#pricing" data-i18n="terminal.nav.pricing"></a>
|
||||||
|
<a href="#contact" class="nav-cta" data-i18n="nav.contact"></a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- ФУНКЦИОНАЛ -->
|
||||||
|
<section id="functionality" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="terminal.func.eyebrow"></span>
|
||||||
|
<h2 data-i18n="terminal.func.title"></h2>
|
||||||
|
<p class="lead" data-i18n="terminal.func.lead"></p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="terminal.func.manualTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="terminal.func.manual1"></li>
|
||||||
|
<li data-i18n="terminal.func.manual2"></li>
|
||||||
|
<li data-i18n="terminal.func.manual3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4 data-i18n="terminal.func.terminalTitle"></h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li data-i18n="terminal.func.terminal1"></li>
|
||||||
|
<li data-i18n="terminal.func.terminal2"></li>
|
||||||
|
<li data-i18n="terminal.func.terminal3"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="terminal.func.note1"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p data-i18n="terminal.func.step1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="terminal.func.step2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="terminal.func.step3"></p></li>
|
||||||
|
<li><span class="num">04</span><p data-i18n="terminal.func.step4"></p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p class="lead" data-i18n="terminal.func.lead2"></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li data-i18n="terminal.func.feature1"></li>
|
||||||
|
<li data-i18n="terminal.func.feature2"></li>
|
||||||
|
<li data-i18n="terminal.func.feature3"></li>
|
||||||
|
<li data-i18n="terminal.func.feature4"></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="terminal.func.note2"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ЦЕНЫ -->
|
||||||
|
<section id="pricing" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow" data-i18n="terminal.price.eyebrow"></span>
|
||||||
|
<h2 data-i18n="terminal.price.title"></h2>
|
||||||
|
<p class="lead" data-i18n="terminal.price.lead"></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li data-i18n="terminal.price.item1"></li>
|
||||||
|
<li data-i18n="terminal.price.item2"></li>
|
||||||
|
<li data-i18n="terminal.price.item3"></li>
|
||||||
|
<li data-i18n="terminal.price.item4"></li>
|
||||||
|
<li data-i18n="terminal.price.item5"></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p data-i18n="terminal.price.note"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p data-i18n="terminal.price.step1"></p></li>
|
||||||
|
<li><span class="num">02</span><p data-i18n="terminal.price.step2"></p></li>
|
||||||
|
<li><span class="num">03</span><p data-i18n="terminal.price.step3"></p></li>
|
||||||
|
<li><span class="num">04</span><p data-i18n="terminal.price.step4"></p></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow" data-i18n="contact.eyebrow"></span>
|
||||||
|
<p data-i18n="contact.text1"></p>
|
||||||
|
<p data-i18n="contact.text2"></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span data-i18n="contact.telegramLabel"></span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm" data-i18n="contact.anonForm"></button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5 data-i18n="footer.channelsTitle"></h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener" data-i18n="footer.workChat"></a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5 data-i18n="footer.refTitle"></h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span data-i18n="footer.refBingx"></span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span data-i18n="footer.refBybit"></span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3 data-i18n="form.title"></h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="{{FORM_STATUS_LOADING}}" data-status-success="{{FORM_STATUS_SUCCESS}}">
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.nameLabel"></span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.methodLabel"></span>
|
||||||
|
<input type="text" name="contact" data-i18n-placeholder="form.methodPlaceholder" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span data-i18n="form.messageLabel"></span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid" data-i18n="form.submit"></button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{ASSET_PREFIX}}fonts/inter.css">
|
||||||
|
<script src="{{ASSET_PREFIX}}common.js"></script>
|
||||||
|
<script src="{{ASSET_PREFIX}}terminal.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
461
src/translations.json
Normal file
461
src/translations.json
Normal file
|
|
@ -0,0 +1,461 @@
|
||||||
|
{
|
||||||
|
"ru": {
|
||||||
|
"meta.title": "428th // Crypto · Trading · Wealth Management",
|
||||||
|
"meta.description": "428th — крипто-трейдинг, обучение, копитрейдинг и автотрейдинг по TradingView. Часть команды SIMPLE CRYPTO с 2018 года.",
|
||||||
|
"hero.tagline": "Crypto // Trading // Wealth Management",
|
||||||
|
"nav.about": "Кто мы",
|
||||||
|
"nav.premium": "Premium",
|
||||||
|
"nav.education": "Обучение",
|
||||||
|
"nav.copytrade": "Копитрейдинг",
|
||||||
|
"nav.autotrade": "Автотрейдинг",
|
||||||
|
"nav.fund": "Фонд",
|
||||||
|
"nav.streams": "Стримы для админов",
|
||||||
|
"nav.contact": "Написать в ЛС →",
|
||||||
|
"about.eyebrow": "Кто мы",
|
||||||
|
"about.title": "428th — часть команды SIMPLE CRYPTO",
|
||||||
|
"about.lead": "Объединены идеей эффективного управления капиталом. С 2018 года работаем с крипто-активами. Своими решениями делимся с уважаемыми подписчиками. <span class=\"fw-400\">С неуважаемыми — не делимся.</span>",
|
||||||
|
"about.person1.name": "Артемий",
|
||||||
|
"about.person1.skill1": "Ручной и алгоритмический трейдинг",
|
||||||
|
"about.person1.skill2": "Автоматизация",
|
||||||
|
"about.person2.name": "Иван",
|
||||||
|
"about.person2.skill1": "Фундаментальный анализ и макроэкономика",
|
||||||
|
"about.person2.skill2": "Рынок предсказаний (Polymarket)",
|
||||||
|
"about.person2.skill3": "Инвестиции в ценность",
|
||||||
|
"about.person2.skill4": "Позиционная торговля классических рынков",
|
||||||
|
"about.person3.name": "Андрей",
|
||||||
|
"about.person3.skill1": "DeFi",
|
||||||
|
"about.person3.skill2": "Retro",
|
||||||
|
"about.person3.skill3": "Betting",
|
||||||
|
"premium.eyebrow": "Premium",
|
||||||
|
"premium.title": "Работа в команде",
|
||||||
|
"premium.lead": "Закрытый чат, разделённый на темы, в котором мы общаемся с вами лично.",
|
||||||
|
"premium.item1": "Каждый день — конференция или технический видео-обзор рынка Crypto + TradFi. Текущая ситуация, ожидания, поиск сетапов, расстановка ориентиров. По возможности торговля Золотом и Серебром на секундных графиках онлайн на созвонах.",
|
||||||
|
"premium.item2": "24/7 трендовые сетапы от авторских алгоритмов по таймфреймам 15 мин и 6ч. Чёткий вход, стоп, тейк и график.",
|
||||||
|
"premium.item3": "Ответы на вопросы, разборы торговых систем и фишек.",
|
||||||
|
"premium.item4": "Фундаментальный разбор рынков и активов.",
|
||||||
|
"premium.item5": "Рекомендации по направлениям Retro, DeFi, Polymarket.",
|
||||||
|
"premium.entryLabel": "Варианты входа",
|
||||||
|
"premium.entryLabelNote": " (любой из них)",
|
||||||
|
"premium.entry1": "<span class=\"fw-400\">500$ за обучение, в подарок 12 месяцев подписки на Premium.</span> Нам просто лучше работать с теми, кто знает базу.",
|
||||||
|
"premium.entry2": "<span class=\"fw-400\">Подписка 50$/мес.</span> Не хотите учиться — доплата за лень.",
|
||||||
|
"premium.entry3": "<span class=\"fw-400\">Подключённый копитрейдинг BingX на депозит $3 000+.</span> Топовый вариант для тех, кто уже доверяет.",
|
||||||
|
"premium.entry4": "<span class=\"fw-400\">Оборот криптой на партнёрском аккаунте Bybit или BingX на $500k+/мес.</span> Для китов все двери открыты.",
|
||||||
|
"education.eyebrow": "Обучение",
|
||||||
|
"education.title": "Авторский курс по трейдингу",
|
||||||
|
"education.lead": "По каждой теме — текстовая лекция и видео-практика. 1-1.5 месяца в свободном режиме. Уроки по 20 минут в среднем. Цена 500$.",
|
||||||
|
"education.includesTitle": "Что входит",
|
||||||
|
"education.includes1": "Бессрочный доступ в чат учеников, обновления курса, конференции, авторские индикаторы",
|
||||||
|
"education.includes2": "Все стили торговли: интрадей, среднесрок, портфель",
|
||||||
|
"education.includes3": "Поддержка от нас и учеников прошлых потоков",
|
||||||
|
"education.methodsTitle": "Методы",
|
||||||
|
"education.method1": "Классический ТА + PA + VSA + LRA + SM",
|
||||||
|
"education.method2": "Проверенные тонкости распространённых методов анализа",
|
||||||
|
"education.method3": "Новые подходы и стратегии по мере изучения и отработки",
|
||||||
|
"education.note": "<span class=\"fw-400\">Волнового анализа (EWA) сейчас нет — это следующий уровень.</span> Торговать нормально и без него. По желанию — опирайтесь на наши разметки.",
|
||||||
|
"copytrade.eyebrow": "Копитрейдинг на BingX",
|
||||||
|
"copytrade.title": "Полуавтоматическая торговля",
|
||||||
|
"copytrade.lead": "Артемий вместе с ботами торгует на двух фьючерсных мастер-аккаунтах — краткосрок и среднесрок. Кнопка бабло!",
|
||||||
|
"copytrade.item1": "Два мастер-аккаунта: краткосрочная и среднесрочная торговля на фьючерсах.",
|
||||||
|
"copytrade.item2": "Доступно только для рефералов BingX. Открывает возможность бесплатного входа в Premium.",
|
||||||
|
"copytrade.item3": "Подключайтесь, если готовы к эксперименту или доверяете нам примерно как себе — или сильнее.",
|
||||||
|
"copytrade.note": "Статистики пока мало и она ничего не даёт — техническое решение только запущено. <span class=\"fw-400\">Подключайтесь осознанно.</span>",
|
||||||
|
"autotrade.eyebrow": "Автотрейдинг // Terminal",
|
||||||
|
"autotrade.title": "Автоматизация по индикаторам TradingView",
|
||||||
|
"autotrade.lead": "Есть рабочий индикатор, на вид офигенный, но работать руками — дичь? Подключайте сигналы и наблюдайте за торговлей.",
|
||||||
|
"autotrade.item1": "Регистрируетесь, подключаете по API аккаунт на BingX, ByBit или MEXC. Нужно быть нашим рефералом или дать денег.",
|
||||||
|
"autotrade.item2": "Модифицируете скрипт под наши webhook. Это не страшно.",
|
||||||
|
"autotrade.item3": "Настраиваете алерты, кайфуете. Бот не сломается, даже если вы будете торговать вместе с ним и менять его позиции руками.",
|
||||||
|
"autotrade.item4": "<span class=\"fw-400\">Вы не особо программист?</span> Мы поможем переписать скрипт и подключиться — бесплатно.",
|
||||||
|
"autotrade.more": "Подробнее про 428th Terminal —",
|
||||||
|
"autotrade.moreLink": "на этой странице.",
|
||||||
|
"fund.eyebrow": "Фонд",
|
||||||
|
"fund.badge": "Закрыт для новых участников (сори, инвестиции пока в минусе)",
|
||||||
|
"fund.title": "Multi-family office",
|
||||||
|
"fund.lead": "Для тех, кто хочет быть в крипто-тренде и получать доход от капитала — без самостоятельной работы с рынком.",
|
||||||
|
"fund.selfTitle": "Для самостоятельного управления нужно",
|
||||||
|
"fund.self1": "Время на постоянное наблюдение за рынком",
|
||||||
|
"fund.self2": "База для системного анализа",
|
||||||
|
"fund.self3": "Опыт безопасной работы с блокчейнами",
|
||||||
|
"fund.trustTitle": "Как вариант — доверить всё нам",
|
||||||
|
"fund.trust1": "Планирование и распределение капитала",
|
||||||
|
"fund.trust2": "Управление позициями",
|
||||||
|
"fund.trust3": "Отчётность и выплаты",
|
||||||
|
"fund.note1": "<span class=\"fw-400\">Если работаете с рынком своей головой и руками — это лучший подход</span>, мы его поддерживаем максимально.",
|
||||||
|
"fund.note2": "Если нет — мы предоставляем доступ к крипто-доходности без погружения в каждое действие.",
|
||||||
|
"streams.eyebrow": "Стримы крипто-админов",
|
||||||
|
"streams.title": "Сервис admins.stream",
|
||||||
|
"streams.lead": "Админы собираются вместе, чтобы провести конференцию для подписчиков и обменяться трафиком. Можно подключить спонсоров.",
|
||||||
|
"streams.item1": "Собираем группу админов, фиксируем темы выступлений, дату стрима, расписание постов-анонсов, призы.",
|
||||||
|
"streams.item2": "Админы выпускают посты-анонсы, люди регистрируются в тг-боте. Им нужно подписаться на каждого админа.",
|
||||||
|
"streams.item3": "Все зрители фиксируются в базе, кто откуда пришёл и всё такое. Кто нальёт ботов — прибью. Но мы подготовились: капчи в боте, капчи на стриме.",
|
||||||
|
"streams.item4": "Проводим конференцию — админы на созвоне, а зрители смотрят стрим и могут пообщаться в чате трансляции.",
|
||||||
|
"streams.item5": "Среди тех, кто пришёл на конференцию (у всех индивидуальная ссылка), разыгрываются выбранные призы.",
|
||||||
|
"streams.item6": "Админы довольны живым заинтересованным трафиком, подписчики радуются качественному контенту и наградам.",
|
||||||
|
"streams.cta": "<span class=\"fw-400\">Интересно?</span> Обращайтесь, договоримся.",
|
||||||
|
"contact.eyebrow": "Контакт",
|
||||||
|
"contact.text1": "<span class=\"fw-400\">По всем вопросам — только в ЛС.</span> Продажи не автоматизированы, а мы и не планировали.",
|
||||||
|
"contact.text2": "Напишите — разберём вашу ситуацию и найдём решение. <span class=\"fw-400\">По-братски.</span>",
|
||||||
|
"contact.telegramLabel": "Telegram @artemium",
|
||||||
|
"contact.anonForm": "<span class=\"fw-400\">Хотите анонимно?</span> Вот форма для связи",
|
||||||
|
"footer.channelsTitle": "Наши каналы",
|
||||||
|
"footer.workChat": "рабочий чат",
|
||||||
|
"footer.refTitle": "Рефералки с лучшими условиями",
|
||||||
|
"footer.refBingx": "<span class=\"fw-400\">Любимая</span> криптобиржа",
|
||||||
|
"footer.refBybit": "Топовый TradFi на",
|
||||||
|
"form.title": "Форма для связи",
|
||||||
|
"form.nameLabel": "Имя",
|
||||||
|
"form.methodLabel": "Способ связи",
|
||||||
|
"form.methodPlaceholder": "Telegram @username, Email, WhatsApp...",
|
||||||
|
"form.messageLabel": "Сообщение",
|
||||||
|
"form.submit": "Отправить",
|
||||||
|
"form.statusLoading": "...",
|
||||||
|
"form.statusSuccess": "Отправлено ✓",
|
||||||
|
"a11y.toggleTheme": "Переключить тему",
|
||||||
|
"a11y.sections": "Разделы",
|
||||||
|
"terminal.meta.title": "428th Terminal — автотрейдинг по TradingView сигналам",
|
||||||
|
"terminal.meta.description": "428th Terminal — автотрейдинг по сигналам TradingView на BingX, Bybit и MEXC. Автоматическое открытие позиций со стопом и тейком.",
|
||||||
|
"terminal.nav.functionality": "Функционал",
|
||||||
|
"terminal.nav.pricing": "Цены",
|
||||||
|
"terminal.func.eyebrow": "Функционал",
|
||||||
|
"terminal.func.title": "Связать TradingView индикатор с биржей",
|
||||||
|
"terminal.func.lead": "В общем, это главное, для чего мы сделали терминал. Предположим, у вас или у кого-то есть крутой индикатор:",
|
||||||
|
"terminal.func.manualTitle": "Торговать по сигналам руками",
|
||||||
|
"terminal.func.manual1": "Надо сидеть 24/7 у компа или телефона",
|
||||||
|
"terminal.func.manual2": "Легко пропустить сигнал",
|
||||||
|
"terminal.func.manual3": "Можно не успеть войти",
|
||||||
|
"terminal.func.terminalTitle": "Подключить к терминалу",
|
||||||
|
"terminal.func.terminal1": "Позиция откроется автоматически",
|
||||||
|
"terminal.func.terminal2": "Сразу поставит стоп и тейк",
|
||||||
|
"terminal.func.terminal3": "Если нужно, делайте с ней руками что угодно",
|
||||||
|
"terminal.func.note1": "Смысл в том, чтобы автоматизировать торговлю по индикатору, который вам нравится.",
|
||||||
|
"terminal.func.step1": "Регистрируетесь, подключаете по API аккаунт на BingX, ByBit или MEXC. Нужно быть нашим рефералом или дать денег.",
|
||||||
|
"terminal.func.step2": "Модифицируете скрипт под наши Webhook. Это не страшно.",
|
||||||
|
"terminal.func.step3": "Настраиваете алерты, кайфуете. Бот не сломается, даже если вы будете торговать вместе с ним и менять его позиции руками.",
|
||||||
|
"terminal.func.step4": "<span class=\"fw-400\">Вы не особо программист?</span> Мы поможем переписать скрипт и подключиться — бесплатно.",
|
||||||
|
"terminal.func.lead2": "Изначально мы делали терминал для автотрейдинга по своим индикаторам. <span class=\"fw-400\">Поэтому он делает ровно то, что нам нужно:</span>",
|
||||||
|
"terminal.func.feature1": "Принимает Webhook c TradingView.",
|
||||||
|
"terminal.func.feature2": "Реализует на его основе позицию на BingX, ByBit или MEXC.",
|
||||||
|
"terminal.func.feature3": "Принимает ручные правки: на бирже позицию можно закрыть, сократить, подвинуть стоп или тейк.",
|
||||||
|
"terminal.func.feature4": "Показывает торговую статистику.",
|
||||||
|
"terminal.func.note2": "<span class=\"fw-400\">Теперь мы придумываем и добавляем новые функции.</span> Если что-то хотите — напишите в лс.",
|
||||||
|
"terminal.price.eyebrow": "Цены",
|
||||||
|
"terminal.price.title": "Это самое смешное",
|
||||||
|
"terminal.price.lead": "Работайте бесплатно, если ваш аккаунт — наш реферал. <span class=\"fw-400\">Если нет — будет дорого :(</span>",
|
||||||
|
"terminal.price.item1": "Мы не смогли придумать вариант оплаты, который удобнее, чем биржевая партнерская система.",
|
||||||
|
"terminal.price.item2": "Если вам очень важно торговать без нашей рефералки, значит вам и так пофиг сколько платить.",
|
||||||
|
"terminal.price.item3": "Цена за прямую оплату сервиса — $500 в месяц за каждый API ключ.",
|
||||||
|
"terminal.price.item4": "Напомним, за торговлю на реферальном аккаунте платить не нужно. Нам хватит бонусов от ваших комиссий.",
|
||||||
|
"terminal.price.item5": "А если вы инфлюенсер и партнер выбранной для работы биржи — напишите в лс, договоримся.",
|
||||||
|
"terminal.price.note": "Быть нашим рефералом — <span class=\"fw-400\">круто в любом случае.</span>",
|
||||||
|
"terminal.price.step1": "При обороте криптой $500k+ в месяц вы станете участником Premium группы бесплатно. Больше инфы — <a href=\"/#premium\">здесь</a>.",
|
||||||
|
"terminal.price.step2": "Ваша комиссия за торговлю станет ниже на 30-50%, а если вы вообще кит, то договоримся на кешбеки.",
|
||||||
|
"terminal.price.step3": "Ваши вопросы или проблемы с биржей можно решить через нас и быстро. Особенно на BingX, там братья вообще.",
|
||||||
|
"terminal.price.step4": "<span class=\"fw-400\">Минусы? Их нет.</span> А ссылки для регистрации — внизу страницы."
|
||||||
|
},
|
||||||
|
"uk": {
|
||||||
|
"meta.title": "428th // Crypto · Trading · Wealth Management",
|
||||||
|
"meta.description": "428th — крипто-трейдинг, навчання, копітрейдинг і автотрейдинг за TradingView. Частина команди SIMPLE CRYPTO з 2018 року.",
|
||||||
|
"hero.tagline": "Crypto // Trading // Wealth Management",
|
||||||
|
"nav.about": "Хто ми",
|
||||||
|
"nav.premium": "Premium",
|
||||||
|
"nav.education": "Навчання",
|
||||||
|
"nav.copytrade": "Копітрейдинг",
|
||||||
|
"nav.autotrade": "Автотрейдинг",
|
||||||
|
"nav.fund": "Фонд",
|
||||||
|
"nav.streams": "Стріми для адмінів",
|
||||||
|
"nav.contact": "Написати в ЛС →",
|
||||||
|
"about.eyebrow": "Хто ми",
|
||||||
|
"about.title": "428th — частина команди SIMPLE CRYPTO",
|
||||||
|
"about.lead": "Об'єднані ідеєю ефективного управління капіталом. З 2018 року працюємо з крипто-активами. Своїми рішеннями ділимося з шанобливими підписниками. <span class=\"fw-400\">З нешанобливими — не ділимося.</span>",
|
||||||
|
"about.person1.name": "Артемій",
|
||||||
|
"about.person1.skill1": "Ручний та алгоритмічний трейдинг",
|
||||||
|
"about.person1.skill2": "Автоматизація",
|
||||||
|
"about.person2.name": "Іван",
|
||||||
|
"about.person2.skill1": "Фундаментальний аналіз і макроекономіка",
|
||||||
|
"about.person2.skill2": "Ринок передбачень (Polymarket)",
|
||||||
|
"about.person2.skill3": "Інвестиції в цінність",
|
||||||
|
"about.person2.skill4": "Позиційна торгівля класичних ринків",
|
||||||
|
"about.person3.name": "Андрій",
|
||||||
|
"about.person3.skill1": "DeFi",
|
||||||
|
"about.person3.skill2": "Retro",
|
||||||
|
"about.person3.skill3": "Betting",
|
||||||
|
"premium.eyebrow": "Premium",
|
||||||
|
"premium.title": "Робота в команді",
|
||||||
|
"premium.lead": "Закритий чат, розділений на теми, в якому ми спілкуємося з вами особисто. Але в основному російською, такі вже виросли.",
|
||||||
|
"premium.item1": "Щодня — конференція або технічний відео-огляд ринку Crypto + TradFi. Поточна ситуація, очікування, пошук сетапів, розстановка орієнтирів. За можливості торгівля Золотом і Сріблом на секундних графіках онлайн на дзвінках.",
|
||||||
|
"premium.item2": "24/7 трендові сетапи від авторських алгоритмів за таймфреймами 15 хв і 6 год. Чіткий вхід, стоп, тейк і графік.",
|
||||||
|
"premium.item3": "Відповіді на питання, розбори торгових систем і фішок.",
|
||||||
|
"premium.item4": "Фундаментальний розбір ринків і активів.",
|
||||||
|
"premium.item5": "Рекомендації щодо напрямків Retro, DeFi, Polymarket.",
|
||||||
|
"premium.entryLabel": "Варіанти входу",
|
||||||
|
"premium.entryLabelNote": " (будь-який з них)",
|
||||||
|
"premium.entry1": "<span class=\"fw-400\">500$ за навчання, у подарунок 12 місяців підписки на Premium.</span> Нам просто краще працювати з тими, хто знає базу.",
|
||||||
|
"premium.entry2": "<span class=\"fw-400\">Підписка 50$/міс.</span> Не хочете вчитися — доплата за лінь.",
|
||||||
|
"premium.entry3": "<span class=\"fw-400\">Підключений копітрейдинг BingX на депозит $3 000+.</span> Топовий варіант для тих, хто вже довіряє.",
|
||||||
|
"premium.entry4": "<span class=\"fw-400\">Оборот криптою на партнерському акаунті Bybit або BingX на $500k+/міс.</span> Для китів усі двері відкриті.",
|
||||||
|
"education.eyebrow": "Навчання",
|
||||||
|
"education.title": "Авторський курс з трейдингу",
|
||||||
|
"education.lead": "За кожною темою — текстова лекція і відео-практика. 1–1,5 місяці у вільному режимі. Уроки по 20 хвилин в середньому. Ціна 500$.",
|
||||||
|
"education.includesTitle": "Що входить",
|
||||||
|
"education.includes1": "Безстроковий доступ у чат учнів, оновлення курсу, конференції, авторські індикатори",
|
||||||
|
"education.includes2": "Усі стилі торгівлі: інтрадей, середньострок, портфель",
|
||||||
|
"education.includes3": "Підтримка від нас і учнів минулих потоків",
|
||||||
|
"education.methodsTitle": "Методи",
|
||||||
|
"education.method1": "Класичний ТА + PA + VSA + LRA + SM",
|
||||||
|
"education.method2": "Перевірені тонкощі поширених методів аналізу",
|
||||||
|
"education.method3": "Нові підходи і стратегії в міру вивчення та відпрацювання",
|
||||||
|
"education.note": "<span class=\"fw-400\">Теорії хвиль Елліота (EWA) зараз немає — це наступний рівень.</span> Торгувати нормально можна і без нього. За бажанням — спирайтеся на наші розмітки.",
|
||||||
|
"copytrade.eyebrow": "Копітрейдинг на BingX",
|
||||||
|
"copytrade.title": "Напівавтоматична торгівля",
|
||||||
|
"copytrade.lead": "Артемій разом із ботами торгує на двох ф'ючерсних мастер-акаунтах — короткострок і середньострок. Кнопка бабло!",
|
||||||
|
"copytrade.item1": "Два мастер-акаунти: короткострокова і середньострокова торгівля на ф'ючерсах.",
|
||||||
|
"copytrade.item2": "Доступно лише для рефералів BingX. Відкриває можливість безкоштовного входу в Premium.",
|
||||||
|
"copytrade.item3": "Підключайтеся, якщо готові до експерименту або довіряєте нам приблизно як собі — або сильніше.",
|
||||||
|
"copytrade.note": "Статистики поки мало і вона нічого не дає — технічне рішення лише нещодавно почало працювати. <span class=\"fw-400\">Підключайтеся усвідомлено.</span>",
|
||||||
|
"autotrade.eyebrow": "Автотрейдинг // Terminal",
|
||||||
|
"autotrade.title": "Автоматизація за індикаторами TradingView",
|
||||||
|
"autotrade.lead": "Є робочий індикатор, на вигляд офігенний, але працювати руками — дич? Підключайте сигнали і спостерігайте за торгівлею.",
|
||||||
|
"autotrade.item1": "Реєструєтеся, підключаєте по API акаунт на BingX, ByBit або MEXC. Потрібно бути нашим рефералом або дати гроші.",
|
||||||
|
"autotrade.item2": "Модифікуєте скрипт під наші webhook. Це не страшно.",
|
||||||
|
"autotrade.item3": "Налаштовуєте алерти, кайфуєте. Бот не зламається, навіть якщо ви будете торгувати разом із ним і змінювати його позиції руками.",
|
||||||
|
"autotrade.item4": "<span class=\"fw-400\">Ви не особливо програміст?</span> Ми допоможемо переписати скрипт і підключитися — безкоштовно.",
|
||||||
|
"autotrade.more": "Детальніше про 428th Terminal —",
|
||||||
|
"autotrade.moreLink": "на цій сторінці.",
|
||||||
|
"fund.eyebrow": "Фонд",
|
||||||
|
"fund.badge": "Закритий для нових учасників (сорі, інвестиції поки в мінусі)",
|
||||||
|
"fund.title": "Multi-family office",
|
||||||
|
"fund.lead": "Для тих, хто хоче бути в крипто-тренді і отримувати дохід від капіталу — без самостійної роботи з ринком.",
|
||||||
|
"fund.selfTitle": "Для самостійного управління потрібно",
|
||||||
|
"fund.self1": "Час на постійне спостереження за ринком",
|
||||||
|
"fund.self2": "База для системного аналізу",
|
||||||
|
"fund.self3": "Досвід безпечної роботи з блокчейнами",
|
||||||
|
"fund.trustTitle": "Як варіант — довірити все нам",
|
||||||
|
"fund.trust1": "Планування і розподіл капіталу",
|
||||||
|
"fund.trust2": "Управління позиціями",
|
||||||
|
"fund.trust3": "Звітність і виплати",
|
||||||
|
"fund.note1": "<span class=\"fw-400\">Якщо працюєте з ринком своєю головою і руками — це найкращий підхід</span>, ми його підтримуємо максимально.",
|
||||||
|
"fund.note2": "Якщо ні — ми надаємо доступ до крипто-доходності без занурення в кожну дію.",
|
||||||
|
"streams.eyebrow": "Стріми крипто-адмінів",
|
||||||
|
"streams.title": "Сервіс admins.stream",
|
||||||
|
"streams.lead": "Адміни збираються разом, щоб провести конференцію для підписників і обмінятися трафіком. Можна підключити спонсорів.",
|
||||||
|
"streams.item1": "Збираємо групу адмінів, фіксуємо теми виступів, дату стріму, розклад постів-анонсів, призи.",
|
||||||
|
"streams.item2": "Адміни випускають пости-анонси, люди реєструються в тг-боті. Їм потрібно підписатися на кожного адміна.",
|
||||||
|
"streams.item3": "Усі глядачі фіксуються в базі, хто звідки прийшов і все таке. Хто нальє ботів — приб'ю. Але ми підготувалися: капчі в боті, капчі на стрімі.",
|
||||||
|
"streams.item4": "Проводимо конференцію — адміни на дзвінку, а глядачі дивляться стрім і можуть поспілкуватися в чаті трансляції.",
|
||||||
|
"streams.item5": "Серед тих, хто прийшов на конференцію (у всіх індивідуальне посилання), розігруються обрані призи.",
|
||||||
|
"streams.item6": "Адміни задоволені живим зацікавленим трафіком, підписники радіють якісному контенту і нагородам.",
|
||||||
|
"streams.cta": "<span class=\"fw-400\">Цікаво?</span> Звертайтеся, домовимося.",
|
||||||
|
"contact.eyebrow": "Контакт",
|
||||||
|
"contact.text1": "<span class=\"fw-400\">З усіх питань — лише в ЛС.</span> Продажі не автоматизовані, а ми й не планували.",
|
||||||
|
"contact.text2": "Напишіть — розберемо вашу ситуацію і знайдемо рішення. <span class=\"fw-400\">По-братськи.</span>",
|
||||||
|
"contact.telegramLabel": "Telegram @artemium",
|
||||||
|
"contact.anonForm": "<span class=\"fw-400\">Хочете анонімно?</span> Ось форма для зв'язку",
|
||||||
|
"footer.channelsTitle": "Наші канали",
|
||||||
|
"footer.workChat": "робочий чат",
|
||||||
|
"footer.refTitle": "Рефералки з найкращими умовами",
|
||||||
|
"footer.refBingx": "<span class=\"fw-400\">Улюблена</span> криптобіржа",
|
||||||
|
"footer.refBybit": "Топовий TradFi на",
|
||||||
|
"form.title": "Форма для зв'язку",
|
||||||
|
"form.nameLabel": "Ім'я",
|
||||||
|
"form.methodLabel": "Спосіб зв'язку",
|
||||||
|
"form.methodPlaceholder": "Telegram @username, Email, WhatsApp...",
|
||||||
|
"form.messageLabel": "Повідомлення",
|
||||||
|
"form.submit": "Надіслати",
|
||||||
|
"form.statusLoading": "...",
|
||||||
|
"form.statusSuccess": "Надіслано ✓",
|
||||||
|
"a11y.toggleTheme": "Перемкнути тему",
|
||||||
|
"a11y.sections": "Розділи",
|
||||||
|
"terminal.meta.title": "428th Terminal — автотрейдинг за сигналами TradingView",
|
||||||
|
"terminal.meta.description": "428th Terminal — автотрейдинг за сигналами TradingView на BingX, Bybit і MEXC. Автоматичне відкриття позицій зі стопом і тейком.",
|
||||||
|
"terminal.nav.functionality": "Функціонал",
|
||||||
|
"terminal.nav.pricing": "Ціни",
|
||||||
|
"terminal.func.eyebrow": "Функціонал",
|
||||||
|
"terminal.func.title": "Зв'язати індикатор TradingView з біржею",
|
||||||
|
"terminal.func.lead": "Загалом, це головне, для чого ми зробили термінал. Припустимо, у вас або в когось є крутий індикатор:",
|
||||||
|
"terminal.func.manualTitle": "Торгувати за сигналами руками",
|
||||||
|
"terminal.func.manual1": "Треба сидіти 24/7 біля компа або телефона",
|
||||||
|
"terminal.func.manual2": "Легко пропустити сигнал",
|
||||||
|
"terminal.func.manual3": "Можна не встигнути увійти",
|
||||||
|
"terminal.func.terminalTitle": "Підключити до терміналу",
|
||||||
|
"terminal.func.terminal1": "Позиція відкриється автоматично",
|
||||||
|
"terminal.func.terminal2": "Одразу поставить стоп і тейк",
|
||||||
|
"terminal.func.terminal3": "Якщо треба, робіть з нею руками що завгодно",
|
||||||
|
"terminal.func.note1": "Сенс у тому, щоб автоматизувати торгівлю за індикатором, який вам подобається.",
|
||||||
|
"terminal.func.step1": "Реєструєтеся, підключаєте по API акаунт на BingX, ByBit або MEXC. Потрібно бути нашим рефералом або дати грошей.",
|
||||||
|
"terminal.func.step2": "Модифікуєте скрипт під наші Webhook. Це не страшно.",
|
||||||
|
"terminal.func.step3": "Налаштовуєте алерти, кайфуєте. Бот не зламається, навіть якщо ви будете торгувати разом із ним і змінювати його позиції руками.",
|
||||||
|
"terminal.func.step4": "<span class=\"fw-400\">Ви не те щоб програміст?</span> Ми допоможемо переписати скрипт і підключитися — безкоштовно.",
|
||||||
|
"terminal.func.lead2": "Спочатку ми робили термінал для автотрейдингу за своїми індикаторами. <span class=\"fw-400\">Тому він робить рівно те, що нам потрібно:</span>",
|
||||||
|
"terminal.func.feature1": "Приймає Webhook з TradingView.",
|
||||||
|
"terminal.func.feature2": "Реалізує на його основі позицію на BingX, ByBit або MEXC.",
|
||||||
|
"terminal.func.feature3": "Приймає ручні правки: на біржі позицію можна закрити, скоротити, посунути стоп або тейк.",
|
||||||
|
"terminal.func.feature4": "Показує торгову статистику.",
|
||||||
|
"terminal.func.note2": "<span class=\"fw-400\">Тепер ми придумуємо і додаємо нові функції.</span> Якщо щось хочете — напишіть в лс.",
|
||||||
|
"terminal.price.eyebrow": "Ціни",
|
||||||
|
"terminal.price.title": "Це смішне",
|
||||||
|
"terminal.price.lead": "Працюйте безкоштовно, якщо ваш акаунт — наш реферал. <span class=\"fw-400\">Якщо ні — буде дорого :(</span>",
|
||||||
|
"terminal.price.item1": "Ми не змогли придумати варіант оплати, який зручніший за біржову партнерську систему.",
|
||||||
|
"terminal.price.item2": "Якщо вам дуже важливо торгувати без нашої рефералки, значить вам і так байдуже скільки платити.",
|
||||||
|
"terminal.price.item3": "Ціна за пряму оплату сервісу — $500 на місяць за кожен API ключ.",
|
||||||
|
"terminal.price.item4": "Нагадаємо, за торгівлю на реферальному акаунті платити не потрібно. Нам вистачить бонусів від ваших комісій.",
|
||||||
|
"terminal.price.item5": "А якщо ви інфлюенсер і партнер обраної для роботи біржі — напишіть в лс, домовимося.",
|
||||||
|
"terminal.price.note": "Бути нашим рефералом — <span class=\"fw-400\">круто в будь-якому випадку.</span>",
|
||||||
|
"terminal.price.step1": "При обороті криптою $500k+ на місяць ви станете учасником Premium групи безкоштовно. Більше інфи — <a href=\"/#premium\">тут</a>.",
|
||||||
|
"terminal.price.step2": "Ваша комісія за торгівлю стане нижчою на 30-50%, а якщо ви взагалі кит, то домовимося ще й на кешбеки.",
|
||||||
|
"terminal.price.step3": "Ваші питання або проблеми з біржею можна вирішити через нас і швидко. Особливо на BingX, там братани взагалі.",
|
||||||
|
"terminal.price.step4": "<span class=\"fw-400\">Мінуси? Їх немає.</span> А посилання для реєстрації — внизу сторінки."
|
||||||
|
},
|
||||||
|
"en": {
|
||||||
|
"meta.title": "428th // Crypto · Trading · Wealth Management",
|
||||||
|
"meta.description": "428th — crypto trading, education, copy trading and TradingView auto-trading. Part of the SIMPLE CRYPTO team since 2018.",
|
||||||
|
"hero.tagline": "Crypto // Trading // Wealth Management",
|
||||||
|
"nav.about": "About",
|
||||||
|
"nav.premium": "Premium",
|
||||||
|
"nav.education": "Education",
|
||||||
|
"nav.copytrade": "Copy Trading",
|
||||||
|
"nav.autotrade": "Auto Trading",
|
||||||
|
"nav.fund": "Fund",
|
||||||
|
"nav.streams": "Streams for Admins",
|
||||||
|
"nav.contact": "DM us →",
|
||||||
|
"about.eyebrow": "About",
|
||||||
|
"about.title": "428th — part of the SIMPLE CRYPTO team",
|
||||||
|
"about.lead": "United by the idea of effective capital management. We've been working with crypto assets since 2018. We share our decisions with subscribers who respects. <span class=\"fw-400\">With those who don't — we don't.</span>",
|
||||||
|
"about.person1.name": "Artemiy",
|
||||||
|
"about.person1.skill1": "Manual and algorithmic trading",
|
||||||
|
"about.person1.skill2": "Automation",
|
||||||
|
"about.person2.name": "Ivan",
|
||||||
|
"about.person2.skill1": "Fundamental analysis and macroeconomics",
|
||||||
|
"about.person2.skill2": "Prediction markets (Polymarket)",
|
||||||
|
"about.person2.skill3": "Value investing",
|
||||||
|
"about.person2.skill4": "Position trading on traditional markets",
|
||||||
|
"about.person3.name": "Andrey",
|
||||||
|
"about.person3.skill1": "DeFi",
|
||||||
|
"about.person3.skill2": "Retro",
|
||||||
|
"about.person3.skill3": "Betting",
|
||||||
|
"premium.eyebrow": "Premium",
|
||||||
|
"premium.title": "Working together as the team",
|
||||||
|
"premium.lead": "A private chat split into topics where we communicate with our members personally. UKR/RU mostly.",
|
||||||
|
"premium.item1": "Every day — a conference call or technical video market review for Crypto + TradFi. Current situation, expectations, setup hunting, key levels. When possible, live Gold and Silver trading on seconds charts during calls.",
|
||||||
|
"premium.item2": "24/7 trend setups from proprietary algorithms on 15-min and 6h timeframes. Clear entry, stop, take-profit, and chart.",
|
||||||
|
"premium.item3": "Q&A, breakdowns of trading systems and tricks.",
|
||||||
|
"premium.item4": "Fundamental analysis of markets and assets.",
|
||||||
|
"premium.item5": "Recommendations on Retro, DeFi, and Polymarket.",
|
||||||
|
"premium.entryLabel": "Ways to join",
|
||||||
|
"premium.entryLabelNote": " (any of these)",
|
||||||
|
"premium.entry1": "<span class=\"fw-400\">$500 for the educational course, with 12 months of Premium included.</span> It's just easier for us to work with people who know the basics.",
|
||||||
|
"premium.entry2": "<span class=\"fw-400\">$50/month subscription.</span> Don't want to learn — pay extra for laziness.",
|
||||||
|
"premium.entry3": "<span class=\"fw-400\">Connected BingX copy trading with a $3,000+ deposit.</span> The top option for those who already trust us.",
|
||||||
|
"premium.entry4": "<span class=\"fw-400\">$500k+/month crypto volume on a partner Bybit or BingX account.</span> For whales, all doors are open.",
|
||||||
|
"education.eyebrow": "Education",
|
||||||
|
"education.title": "Author's trading course",
|
||||||
|
"education.lead": "Each topic includes a text lecture and video practice. 1–1.5 months at your own pace. Lessons average 20 minutes. Price: $500.",
|
||||||
|
"education.includesTitle": "What's included",
|
||||||
|
"education.includes1": "Lifetime access to the student chat, course updates, conferences, proprietary indicators",
|
||||||
|
"education.includes2": "All trading styles: intraday, medium-term, portfolio",
|
||||||
|
"education.includes3": "Support from us and students from past cohorts",
|
||||||
|
"education.methodsTitle": "Methods",
|
||||||
|
"education.method1": "Classic TA + PA + VSA + LRA + SM",
|
||||||
|
"education.method2": "Proven nuances of common analysis methods",
|
||||||
|
"education.method3": "New approaches and strategies as you study and practice",
|
||||||
|
"education.note": "<span class=\"fw-400\">Elliott Wave Analysis (EWA) isn't included yet — that's the next level.</span> You can trade just fine without it. If you want, use our wave markings.",
|
||||||
|
"copytrade.eyebrow": "Copy Trading on BingX",
|
||||||
|
"copytrade.title": "Semi-automated trading",
|
||||||
|
"copytrade.lead": "Artemiy trades alongside bots on two futures master accounts — short-term and medium-term. Easy money button!",
|
||||||
|
"copytrade.item1": "Two master accounts: short-term and medium-term futures trading.",
|
||||||
|
"copytrade.item2": "Available only for BingX referrals. Unlocks free Premium access.",
|
||||||
|
"copytrade.item3": "Connect if you're ready to experiment or trust us about as much as yourself — or more.",
|
||||||
|
"copytrade.note": "There's little stats so far and it doesn't mean much — the tech solution was just launched. <span class=\"fw-400\">Connect consciously.</span>",
|
||||||
|
"autotrade.eyebrow": "Auto Trading // Terminal",
|
||||||
|
"autotrade.title": "Automation via TradingView indicators",
|
||||||
|
"autotrade.lead": "Got a working indicator that looks awesome but trading it manually is madness? Connect signals and watch it trade.",
|
||||||
|
"autotrade.item1": "Sign up, connect your BingX, ByBit, or MEXC account via API. You need to be our referral or pay up.",
|
||||||
|
"autotrade.item2": "Modify your script for our webhooks. It's not scary.",
|
||||||
|
"autotrade.item3": "Set up alerts, enjoy. The bot won't break if you trade alongside it and manually adjust its positions.",
|
||||||
|
"autotrade.item4": "<span class=\"fw-400\">Not much of a programmer?</span> We'll help rewrite the script and get you connected — for free.",
|
||||||
|
"autotrade.more": "More about 428th Terminal —",
|
||||||
|
"autotrade.moreLink": "on this page.",
|
||||||
|
"fund.eyebrow": "Fund",
|
||||||
|
"fund.badge": "Closed to new participants (sorry, investments are in the red for now)",
|
||||||
|
"fund.title": "Multi-family office",
|
||||||
|
"fund.lead": "For those who want to ride the crypto trend and earn from capital — without managing the market themselves.",
|
||||||
|
"fund.selfTitle": "To manage on your own you need",
|
||||||
|
"fund.self1": "Time for constant market monitoring",
|
||||||
|
"fund.self2": "A foundation for systematic analysis",
|
||||||
|
"fund.self3": "Experience working safely with blockchains",
|
||||||
|
"fund.trustTitle": "Alternatively — trust us with everything",
|
||||||
|
"fund.trust1": "Capital planning and allocation",
|
||||||
|
"fund.trust2": "Position management",
|
||||||
|
"fund.trust3": "Reporting and payouts",
|
||||||
|
"fund.note1": "<span class=\"fw-400\">If you work the market on your own — that's the best approach</span>, and we support it fully.",
|
||||||
|
"fund.note2": "If not — we provide access to crypto returns without diving into every action.",
|
||||||
|
"streams.eyebrow": "Crypto Admin Streams",
|
||||||
|
"streams.title": "admins.stream service",
|
||||||
|
"streams.lead": "Admins come together to host a conference for subscribers and exchange traffic. Sponsors welcome.",
|
||||||
|
"streams.item1": "We assemble a group of admins, set talk topics, stream date, announcement posts schedule and prizes.",
|
||||||
|
"streams.item2": "Admins publish announcement posts, people register in a TG bot. They need to subscribe to each admin.",
|
||||||
|
"streams.item3": "All viewers are tracked — who came from where and all that. Anyone who floods with bots — gets banned. But we're prepared: captchas in the bot, captchas on stream.",
|
||||||
|
"streams.item4": "We run the conference — admins together on a call, and viewers watch the stream and chat in the broadcast interface.",
|
||||||
|
"streams.item5": "Among those who attended the conference (everyone gets a unique link), selected prizes are raffled off.",
|
||||||
|
"streams.item6": "Admins are happy with engaged live traffic, subscribers are happy with top-notch content and rewards.",
|
||||||
|
"streams.cta": "<span class=\"fw-400\">Interested?</span> Reach out, let's talk.",
|
||||||
|
"contact.eyebrow": "Contact",
|
||||||
|
"contact.text1": "<span class=\"fw-400\">For all questions — DMs only.</span> Sales aren't automated, and we never planned them to be.",
|
||||||
|
"contact.text2": "Write to us — we'll figure out your situation and find a solution. <span class=\"fw-400\">Like bros.</span>",
|
||||||
|
"contact.telegramLabel": "Telegram @artemium",
|
||||||
|
"contact.anonForm": "<span class=\"fw-400\">Want to stay anonymous?</span> Here's a contact form",
|
||||||
|
"footer.channelsTitle": "Our channels",
|
||||||
|
"footer.workChat": "work chat",
|
||||||
|
"footer.refTitle": "Referral links with the best terms",
|
||||||
|
"footer.refBingx": "<span class=\"fw-400\">Favorite</span> crypto exchange",
|
||||||
|
"footer.refBybit": "Top TradFi on",
|
||||||
|
"form.title": "Contact form",
|
||||||
|
"form.nameLabel": "Name",
|
||||||
|
"form.methodLabel": "How to reach you",
|
||||||
|
"form.methodPlaceholder": "Telegram @username, Email, WhatsApp...",
|
||||||
|
"form.messageLabel": "Message",
|
||||||
|
"form.submit": "Send",
|
||||||
|
"form.statusLoading": "...",
|
||||||
|
"form.statusSuccess": "Sent ✓",
|
||||||
|
"a11y.toggleTheme": "Toggle theme",
|
||||||
|
"a11y.sections": "Sections",
|
||||||
|
"terminal.meta.title": "428th Terminal — auto trading via TradingView signals",
|
||||||
|
"terminal.meta.description": "428th Terminal — auto-trading via TradingView signals on BingX, Bybit and MEXC. Positions open automatically with stop-loss and take-profit.",
|
||||||
|
"terminal.nav.functionality": "Features",
|
||||||
|
"terminal.nav.pricing": "Pricing",
|
||||||
|
"terminal.func.eyebrow": "Features",
|
||||||
|
"terminal.func.title": "Link a TradingView indicator with an exchange",
|
||||||
|
"terminal.func.lead": "Basically, that's the main reason we built the terminal. Say you or someone else has a great indicator:",
|
||||||
|
"terminal.func.manualTitle": "Trade signals manually",
|
||||||
|
"terminal.func.manual1": "You need to sit at your computer or phone 24/7",
|
||||||
|
"terminal.func.manual2": "Easy to miss a signal",
|
||||||
|
"terminal.func.manual3": "You might not get in on time",
|
||||||
|
"terminal.func.terminalTitle": "Connect to the terminal",
|
||||||
|
"terminal.func.terminal1": "Position opens automatically",
|
||||||
|
"terminal.func.terminal2": "Stop and take-profit set right away",
|
||||||
|
"terminal.func.terminal3": "If needed, do whatever you want with it manually",
|
||||||
|
"terminal.func.note1": "The point is to automate trading with an indicator you like.",
|
||||||
|
"terminal.func.step1": "Sign up, connect your BingX, ByBit, or MEXC account via API. You need to be our referral or pay up.",
|
||||||
|
"terminal.func.step2": "Modify your script for our webhooks. It's not scary.",
|
||||||
|
"terminal.func.step3": "Set up alerts, enjoy. The bot won't break even if you trade alongside it and manually adjust its positions.",
|
||||||
|
"terminal.func.step4": "<span class=\"fw-400\">Not much of a programmer?</span> We'll help rewrite the script and get you connected — for free.",
|
||||||
|
"terminal.func.lead2": "We originally built the terminal for auto trading with our own indicators. <span class=\"fw-400\">So it does exactly what we need:</span>",
|
||||||
|
"terminal.func.feature1": "Accepts webhooks from TradingView.",
|
||||||
|
"terminal.func.feature2": "Opens positions on BingX, ByBit, or MEXC accordingly.",
|
||||||
|
"terminal.func.feature3": "Accepts manual edits: you can close positions, reduce their sizes, or move SL/TPs on the exchange.",
|
||||||
|
"terminal.func.feature4": "Shows trading statistics.",
|
||||||
|
"terminal.func.note2": "<span class=\"fw-400\">Now we're coming up with and adding new features.</span> Want something? DM us.",
|
||||||
|
"terminal.price.eyebrow": "Pricing",
|
||||||
|
"terminal.price.title": "This is actually the fun part",
|
||||||
|
"terminal.price.lead": "Work for free if your account is our referral. <span class=\"fw-400\">If not — it'll be expensive :(</span>",
|
||||||
|
"terminal.price.item1": "We couldn't come up with a payment option more convenient than the exchange partner system.",
|
||||||
|
"terminal.price.item2": "If it's really important for you to trade without our referral, you probably don't care how much you pay anyway.",
|
||||||
|
"terminal.price.item3": "Direct service payment — $500/month per API key.",
|
||||||
|
"terminal.price.item4": "Reminder: no payment needed for trading on a referral account. Your commission bonuses are enough for us.",
|
||||||
|
"terminal.price.item5": "If you're an influencer and a partner of your chosen exchange — DM us, we'll work something out.",
|
||||||
|
"terminal.price.note": "Being our referral is <span class=\"fw-400\">cool either way.</span>",
|
||||||
|
"terminal.price.step1": "With $500k+/month in crypto volume, you get free Premium group access. More info — <a href=\"/#premium\">here</a>.",
|
||||||
|
"terminal.price.step2": "Your trading fees drop by 30-50%, and if you're a whale, we'll arrange cashbacks.",
|
||||||
|
"terminal.price.step3": "Exchange questions or issues can be solved through us quickly. Especially on BingX — they're true bros for real.",
|
||||||
|
"terminal.price.step4": "<span class=\"fw-400\">Downsides? None.</span> Registration links are at the bottom of the page."
|
||||||
|
}
|
||||||
|
}
|
||||||
726
styles.css
Normal file
726
styles.css
Normal file
|
|
@ -0,0 +1,726 @@
|
||||||
|
:root{
|
||||||
|
--bg:#FAFAFA;
|
||||||
|
--accent:#C4622A;
|
||||||
|
--heading:#1F1F1D;
|
||||||
|
--logo:#000000;
|
||||||
|
--text:#5A5A56;
|
||||||
|
--border: rgba(31,31,29,0.14);
|
||||||
|
--card-bg:#F0F0EE;
|
||||||
|
--transition: 0.35s ease;
|
||||||
|
|
||||||
|
/* Hero animation tuning — see comments in .hero block below */
|
||||||
|
--hero-logo-size: clamp(64px, 12vw, 140px);
|
||||||
|
--hero-tagline-ratio: calc(15 / 140);
|
||||||
|
--hero-tagline-fit: 1;
|
||||||
|
--hero-max-scale: 2.2;
|
||||||
|
--hero-max-scale-mobile: 1.6;
|
||||||
|
--hero-active-scale: var(--hero-max-scale);
|
||||||
|
--hero-scroll-runway-multiplier: 12;
|
||||||
|
--hero-brand-gap: 48px;
|
||||||
|
--hero-stage-offset: 28px;
|
||||||
|
--hero-bottom-gap: 80px;
|
||||||
|
--site-header-height: 57px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="dark"]{
|
||||||
|
--bg:#141412;
|
||||||
|
--accent:#C4622A;
|
||||||
|
--heading:#F2F1EE;
|
||||||
|
--logo:#FFFFFF;
|
||||||
|
--text:#B4B2AC;
|
||||||
|
--border: rgba(255,255,255,0.14);
|
||||||
|
--card-bg: rgba(255,255,255,0.04);
|
||||||
|
}
|
||||||
|
|
||||||
|
*{box-sizing:border-box;}
|
||||||
|
html,body{margin:0;padding:0;}
|
||||||
|
|
||||||
|
body{
|
||||||
|
font-family:'Inter', -apple-system, sans-serif;
|
||||||
|
font-size:16px;
|
||||||
|
font-weight:300;
|
||||||
|
line-height:1.6;
|
||||||
|
background:var(--bg);
|
||||||
|
color:var(--text);
|
||||||
|
-webkit-font-smoothing:antialiased;
|
||||||
|
-moz-osx-font-smoothing:grayscale;
|
||||||
|
transition: background var(--transition), color var(--transition);
|
||||||
|
overflow-x:hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 1120px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 24px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,h3,h5{
|
||||||
|
color:var(--heading);
|
||||||
|
font-weight:600;
|
||||||
|
margin:0 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2{
|
||||||
|
color:var(--heading);
|
||||||
|
font-size:clamp(36px, 5vw, 56px);
|
||||||
|
font-weight:200;
|
||||||
|
line-height:1.18;
|
||||||
|
letter-spacing:-0.005em;
|
||||||
|
margin:0 0 28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4{
|
||||||
|
color:var(--text);
|
||||||
|
font-weight:400;
|
||||||
|
margin:0 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{color:var(--accent); text-decoration:none; transition:opacity var(--transition);}
|
||||||
|
a:hover{opacity:0.7;}
|
||||||
|
|
||||||
|
.fw-400{font-weight:400;}
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
.site-header{
|
||||||
|
position:sticky; top:0; z-index:50;
|
||||||
|
background:var(--bg);
|
||||||
|
border-bottom:1px solid var(--border);
|
||||||
|
transition: background var(--transition);
|
||||||
|
}
|
||||||
|
.header-inner{
|
||||||
|
display:flex; justify-content:space-between; align-items:center;
|
||||||
|
padding-top:16px;
|
||||||
|
padding-bottom:16px;
|
||||||
|
}
|
||||||
|
.lang-switch{font-size:13px; letter-spacing:0.05em; display:flex; align-items:center; gap:6px; line-height:1; transform:translateY(1px);}
|
||||||
|
.lang-switch a{
|
||||||
|
background:none; border:none; cursor:pointer; padding:0; margin:0;
|
||||||
|
color:var(--text); font-family:inherit; font-size:13px; font-weight:inherit;
|
||||||
|
line-height:1; display:inline-flex; align-items:center;
|
||||||
|
text-decoration:none;
|
||||||
|
transition: color var(--transition);
|
||||||
|
}
|
||||||
|
.lang-switch a.active{color:var(--accent); font-weight:500;}
|
||||||
|
|
||||||
|
.header-actions{
|
||||||
|
display:flex; align-items:center; gap:28px; line-height:1;
|
||||||
|
}
|
||||||
|
.home-link{
|
||||||
|
font-size:13px; letter-spacing:0.05em; line-height:1;
|
||||||
|
color:var(--text); text-decoration:none;
|
||||||
|
font-family:inherit; font-weight:400;
|
||||||
|
display:inline-flex; align-items:center;
|
||||||
|
transform:translateY(1px);
|
||||||
|
transition: color var(--transition);
|
||||||
|
}
|
||||||
|
.home-link:hover{color:var(--accent);}
|
||||||
|
|
||||||
|
.theme-toggle{
|
||||||
|
background:none; border:none; cursor:pointer; padding:0; margin:0;
|
||||||
|
color:var(--heading); display:inline-flex; align-items:center;
|
||||||
|
line-height:1;
|
||||||
|
}
|
||||||
|
.theme-toggle svg{fill:none; stroke:currentColor; stroke-width:1.5; display:block;}
|
||||||
|
[data-theme="light"] .icon-moon,
|
||||||
|
[data-theme="dark"] .icon-sun{display:none;}
|
||||||
|
|
||||||
|
/* Hero
|
||||||
|
Size: --hero-logo-size, --hero-active-scale (max render → scale down on scroll)
|
||||||
|
Motion: --hero-scroll-runway-multiplier — во сколько раз дольше скроллить (1 = как было)
|
||||||
|
Spacing: --hero-brand-gap — отступ под логотипом
|
||||||
|
--hero-stage-offset — отступ hero-stage от site-header
|
||||||
|
--hero-bottom-gap — отступ hero до следующей секции
|
||||||
|
Sticky: --site-header-height — высота шапки (JS) */
|
||||||
|
.hero{
|
||||||
|
--hero-max-scale:1.95;
|
||||||
|
--hero-active-scale:var(--hero-max-scale);
|
||||||
|
--hero-logo-size:clamp(60px, 11vw, 128px);
|
||||||
|
position:relative;
|
||||||
|
padding-top:var(--hero-stage-offset);
|
||||||
|
padding-bottom:var(--hero-bottom-gap);
|
||||||
|
text-align:left;
|
||||||
|
}
|
||||||
|
.hero-stage{
|
||||||
|
position:sticky;
|
||||||
|
top:calc(var(--site-header-height) + var(--hero-stage-offset));
|
||||||
|
z-index:1;
|
||||||
|
contain:layout style;
|
||||||
|
height:var(--hero-stage-height, auto);
|
||||||
|
}
|
||||||
|
.hero-brand{
|
||||||
|
position:relative;
|
||||||
|
left:0;
|
||||||
|
padding-bottom:var(--hero-brand-gap);
|
||||||
|
overflow:hidden;
|
||||||
|
contain:layout style;
|
||||||
|
height:var(--hero-brand-height, auto);
|
||||||
|
}
|
||||||
|
.hero-brand-inner{
|
||||||
|
position:absolute;
|
||||||
|
left:0;
|
||||||
|
top:0;
|
||||||
|
transform-origin:left top;
|
||||||
|
transform:translate3d(0, 0, 0) scale(var(--hero-scale, 1));
|
||||||
|
will-change:transform;
|
||||||
|
backface-visibility:hidden;
|
||||||
|
-webkit-backface-visibility:hidden;
|
||||||
|
}
|
||||||
|
.hero-brand-lockup{
|
||||||
|
display:inline-grid;
|
||||||
|
grid-template-columns:max-content;
|
||||||
|
}
|
||||||
|
.logo{
|
||||||
|
font-size:var(--hero-logo-size);
|
||||||
|
font-weight:600;
|
||||||
|
color:var(--logo);
|
||||||
|
letter-spacing:-0.03em;
|
||||||
|
line-height:0.9;
|
||||||
|
margin-bottom:8px;
|
||||||
|
}
|
||||||
|
.tagline{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-tagline-ratio) * var(--hero-tagline-fit, 1));
|
||||||
|
letter-spacing:0.08em;
|
||||||
|
text-transform:uppercase;
|
||||||
|
color:var(--text);
|
||||||
|
margin:0;
|
||||||
|
white-space:nowrap;
|
||||||
|
width:0;
|
||||||
|
min-width:100%;
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: no-preference){
|
||||||
|
.hero-brand-inner .logo{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-active-scale));
|
||||||
|
margin-bottom:calc(8px * var(--hero-active-scale));
|
||||||
|
}
|
||||||
|
.hero-brand-inner .tagline{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-tagline-ratio) * var(--hero-active-scale) * var(--hero-tagline-fit, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: no-preference) and (max-width:600px){
|
||||||
|
.hero-brand-inner .logo{
|
||||||
|
font-size:var(--hero-logo-size);
|
||||||
|
margin-bottom:8px;
|
||||||
|
}
|
||||||
|
.hero-brand-inner .tagline{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-tagline-ratio) * var(--hero-tagline-fit, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.main-nav{
|
||||||
|
--nav-divider-inset:0;
|
||||||
|
display:grid;
|
||||||
|
grid-template-columns:repeat(4, 1fr);
|
||||||
|
gap:0;
|
||||||
|
width:100%;
|
||||||
|
border:1px solid var(--border);
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
.main-nav a{
|
||||||
|
position:relative;
|
||||||
|
display:flex;
|
||||||
|
align-items:center;
|
||||||
|
justify-content:center;
|
||||||
|
min-height:48px;
|
||||||
|
padding:1px 12px 0;
|
||||||
|
font-size:15px;
|
||||||
|
line-height:1;
|
||||||
|
color:var(--text);
|
||||||
|
letter-spacing:0.03em;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.main-nav a:not(:nth-child(4n))::after{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
right:0;
|
||||||
|
width:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
.main-nav a:nth-child(-n+4):not(:nth-child(4n))::after{
|
||||||
|
top:var(--nav-divider-inset);
|
||||||
|
bottom:0;
|
||||||
|
}
|
||||||
|
.main-nav a:nth-child(n+5):not(:nth-child(4n))::after{
|
||||||
|
top:0;
|
||||||
|
bottom:var(--nav-divider-inset);
|
||||||
|
}
|
||||||
|
.main-nav a:nth-child(-n+4)::before{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
bottom:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
height:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
.main-nav .nav-cta{color:var(--accent);}
|
||||||
|
|
||||||
|
/* Sections */
|
||||||
|
.section{
|
||||||
|
--section-padding-y:80px;
|
||||||
|
padding:var(--section-padding-y) 0;
|
||||||
|
border-top:1px solid var(--border);
|
||||||
|
scroll-margin-top:calc(var(--site-header-height) + 24px + var(--section-padding-y));
|
||||||
|
}
|
||||||
|
.eyebrow{
|
||||||
|
display:inline-block; font-size:17px; font-weight:400;
|
||||||
|
letter-spacing:0.1em;
|
||||||
|
color:var(--accent); text-transform:uppercase;
|
||||||
|
vertical-align:middle; margin-bottom:16px;
|
||||||
|
}
|
||||||
|
.section-labels{
|
||||||
|
display:flex; align-items:center; flex-wrap:wrap;
|
||||||
|
gap:12px; margin-bottom:16px;
|
||||||
|
}
|
||||||
|
.section-labels .eyebrow{margin-bottom:0;}
|
||||||
|
.section-labels .badge{margin-left:0;}
|
||||||
|
.badge{
|
||||||
|
display:inline-block; vertical-align:middle;
|
||||||
|
margin-left:12px; padding:4px 10px;
|
||||||
|
font-size:12px; border:1px solid var(--border); border-radius:4px;
|
||||||
|
color:var(--text);
|
||||||
|
}
|
||||||
|
.lead{
|
||||||
|
width:100%;
|
||||||
|
max-width:none;
|
||||||
|
margin-bottom:40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.numbered-list{list-style:none; margin:0 0 32px; padding:0;}
|
||||||
|
.numbered-list li{
|
||||||
|
display:grid;
|
||||||
|
grid-template-columns:28px 20px 1px 20px minmax(0, 1fr);
|
||||||
|
align-items:center;
|
||||||
|
padding:20px 0;
|
||||||
|
border-top:1px solid var(--border);
|
||||||
|
}
|
||||||
|
.numbered-list li::before{
|
||||||
|
content:'';
|
||||||
|
grid-column:3;
|
||||||
|
grid-row:1;
|
||||||
|
width:1px;
|
||||||
|
background:var(--border);
|
||||||
|
align-self:stretch;
|
||||||
|
}
|
||||||
|
.numbered-list li:first-child{border-top:none;}
|
||||||
|
.num{
|
||||||
|
grid-column:1;
|
||||||
|
display:flex;
|
||||||
|
align-items:center;
|
||||||
|
justify-content:center;
|
||||||
|
color:var(--accent);
|
||||||
|
font-weight:500;
|
||||||
|
}
|
||||||
|
.numbered-list p{grid-column:5; margin:0; line-height:1.7;}
|
||||||
|
|
||||||
|
.dash-list{list-style:none; padding:0; margin:0;}
|
||||||
|
.dash-list--block{margin-bottom:32px;}
|
||||||
|
.dash-list li{
|
||||||
|
position:relative; padding-left:28px; margin-bottom:14px;
|
||||||
|
}
|
||||||
|
.dash-list li::before{
|
||||||
|
content:"—"; position:absolute; left:0; color:var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:32px;}
|
||||||
|
.two-col h4{
|
||||||
|
font-size:15px; font-weight:600; color:var(--text);
|
||||||
|
line-height:1.3; margin-bottom:16px;
|
||||||
|
text-transform:uppercase; letter-spacing:0.05em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.note-box{
|
||||||
|
background:var(--card-bg);
|
||||||
|
border-left:2px solid var(--accent);
|
||||||
|
padding:24px 28px;
|
||||||
|
}
|
||||||
|
.note-box:not(:last-child){margin-bottom:32px;}
|
||||||
|
.note-box p{margin:0 0 8px; line-height:1.6;}
|
||||||
|
.note-box p:last-child{margin:0;}
|
||||||
|
|
||||||
|
.numbered-list + .lead{margin-top:40px;}
|
||||||
|
|
||||||
|
.team-grid{
|
||||||
|
display:grid;
|
||||||
|
grid-template-columns:minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 0.72fr);
|
||||||
|
gap:0;
|
||||||
|
width:100%;
|
||||||
|
margin-top:32px;
|
||||||
|
}
|
||||||
|
.team-card{
|
||||||
|
text-align:left;
|
||||||
|
padding:0 32px;
|
||||||
|
border-right:1px solid var(--border);
|
||||||
|
}
|
||||||
|
.team-card:first-child{padding-left:0;}
|
||||||
|
.team-card--ivan{padding-left:40px; padding-right:40px;}
|
||||||
|
.team-card--andrey{
|
||||||
|
padding-left:24px;
|
||||||
|
padding-right:0;
|
||||||
|
border-right:none;
|
||||||
|
}
|
||||||
|
.team-card:last-child{
|
||||||
|
border-right:none;
|
||||||
|
padding-right:0;
|
||||||
|
}
|
||||||
|
.team-card h3{font-size:16px; line-height:1.2; margin-bottom:16px;}
|
||||||
|
.team-card ul{list-style:none; padding:0; margin:0;}
|
||||||
|
.team-card li{margin-bottom:6px; color:var(--text);}
|
||||||
|
|
||||||
|
.entry-options{margin-top:8px;}
|
||||||
|
.sublabel{
|
||||||
|
font-size:13px; text-transform:uppercase;
|
||||||
|
letter-spacing:0.05em; color:var(--text);
|
||||||
|
font-weight:600; display:block; margin-bottom:16px;
|
||||||
|
}
|
||||||
|
.sublabel-note{color:#9A9A94; font-weight:600;}
|
||||||
|
|
||||||
|
.more-link{font-size:inherit;}
|
||||||
|
|
||||||
|
.contact-section{text-align:center;}
|
||||||
|
.contact-section .eyebrow{margin-bottom:36px;}
|
||||||
|
.center{
|
||||||
|
display:flex; flex-direction:column; align-items:center;
|
||||||
|
gap:0;
|
||||||
|
}
|
||||||
|
.contact-section .center > p:first-of-type{margin:0 0 16px;}
|
||||||
|
.contact-section .center > p:nth-of-type(2){margin:0 0 36px;}
|
||||||
|
.btn-outline{
|
||||||
|
border:1px solid var(--accent); color:var(--accent);
|
||||||
|
padding:12px 28px; border-radius:4px; font-size:14px; font-weight:400;
|
||||||
|
margin-bottom:28px;
|
||||||
|
transition: background var(--transition), color var(--transition);
|
||||||
|
}
|
||||||
|
.btn-outline:hover{background:var(--accent); color:#fff; opacity:1;}
|
||||||
|
.link-underline{
|
||||||
|
background:none; border:none; cursor:pointer;
|
||||||
|
color:var(--text); text-decoration:underline; font-family:inherit; font-size:13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
.site-footer{
|
||||||
|
border-top:1px solid var(--border);
|
||||||
|
padding:48px 0 24px;
|
||||||
|
font-size:13px;
|
||||||
|
}
|
||||||
|
.site-footer h5{
|
||||||
|
font-size:12px; text-transform:uppercase;
|
||||||
|
letter-spacing:0.05em; color:var(--text);
|
||||||
|
}
|
||||||
|
.site-footer .dash-list{margin-top:8px;}
|
||||||
|
.footer-bottom{
|
||||||
|
display:flex; justify-content:space-between; align-items:center;
|
||||||
|
margin-top:40px; padding-top:24px;
|
||||||
|
border-top:1px solid var(--border);
|
||||||
|
font-size:12px; color:var(--text);
|
||||||
|
}
|
||||||
|
.footer-wolf{
|
||||||
|
font-size:1.5em;
|
||||||
|
line-height:1;
|
||||||
|
opacity:1;
|
||||||
|
}
|
||||||
|
.footer-copy{opacity:0.7;}
|
||||||
|
|
||||||
|
/* Modal */
|
||||||
|
.modal-overlay{
|
||||||
|
position:fixed; inset:0; background:rgba(0,0,0,0.5);
|
||||||
|
display:flex; align-items:center; justify-content:center;
|
||||||
|
opacity:0; visibility:hidden; transition: opacity var(--transition);
|
||||||
|
z-index:100;
|
||||||
|
}
|
||||||
|
.modal-overlay.open{opacity:1; visibility:visible;}
|
||||||
|
.modal-box{
|
||||||
|
background:var(--bg); border-radius:8px; padding:32px;
|
||||||
|
max-width:420px; width:90%; position:relative;
|
||||||
|
transform:translateY(20px); transition:transform var(--transition);
|
||||||
|
}
|
||||||
|
.modal-overlay.open .modal-box{transform:translateY(0);}
|
||||||
|
.modal-close{
|
||||||
|
position:absolute; top:12px; right:16px; background:none; border:none;
|
||||||
|
font-size:22px; cursor:pointer; color:var(--text);
|
||||||
|
}
|
||||||
|
#contactForm label{display:block; margin-bottom:20px; font-size:13px; color:var(--text);}
|
||||||
|
#contactForm input, #contactForm textarea{
|
||||||
|
width:100%; margin-top:6px; padding:10px; border:1px solid var(--border);
|
||||||
|
border-radius:4px; background:transparent; color:var(--heading); font-family:inherit;
|
||||||
|
font-size:14px; font-weight:400;
|
||||||
|
}
|
||||||
|
.btn-solid{
|
||||||
|
background:var(--accent); color:#fff; border:none;
|
||||||
|
padding:12px 24px; border-radius:6px; cursor:pointer; width:100%;
|
||||||
|
}
|
||||||
|
.form-status{font-size:13px; margin-top:12px; min-height:16px;}
|
||||||
|
|
||||||
|
/* Reveal animation */
|
||||||
|
.reveal{opacity:0; transform:translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease;}
|
||||||
|
.reveal.visible{opacity:1; transform:translateY(0);}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: reduce){
|
||||||
|
.hero-stage,
|
||||||
|
.terminal-stage{position:static; height:auto !important;}
|
||||||
|
.hero-brand,
|
||||||
|
.terminal-brand{height:auto !important;}
|
||||||
|
.hero-brand-inner,
|
||||||
|
.terminal-brand-inner{position:static; transform:none !important; will-change:auto; animation:none !important;}
|
||||||
|
.hero--mobile-anim .main-nav,
|
||||||
|
.terminal--mobile-anim .main-nav{transform:none !important; animation:none !important;}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile: compositor-only hero animation (no height changes while scrolling) */
|
||||||
|
@media (max-width:600px){
|
||||||
|
.hero--mobile-anim .hero-stage,
|
||||||
|
.hero--mobile-anim .hero-brand{
|
||||||
|
contain:none;
|
||||||
|
}
|
||||||
|
.hero--mobile-anim .main-nav{
|
||||||
|
transform:translate3d(0, var(--hero-nav-shift, 0), 0);
|
||||||
|
will-change:transform;
|
||||||
|
backface-visibility:hidden;
|
||||||
|
-webkit-backface-visibility:hidden;
|
||||||
|
}
|
||||||
|
.post-hero-lift{
|
||||||
|
will-change:transform;
|
||||||
|
backface-visibility:hidden;
|
||||||
|
-webkit-backface-visibility:hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width:600px){
|
||||||
|
.terminal--mobile-anim .terminal-stage,
|
||||||
|
.terminal--mobile-anim .terminal-brand{
|
||||||
|
contain:none;
|
||||||
|
}
|
||||||
|
.terminal--mobile-anim .main-nav{
|
||||||
|
transform:translate3d(0, var(--hero-nav-shift, 0), 0);
|
||||||
|
will-change:transform;
|
||||||
|
backface-visibility:hidden;
|
||||||
|
-webkit-backface-visibility:hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (animation-timeline: scroll(root)){
|
||||||
|
@media (prefers-reduced-motion: no-preference) and (max-width:600px){
|
||||||
|
.hero--scroll-driven .hero-brand-inner{
|
||||||
|
will-change:transform;
|
||||||
|
}
|
||||||
|
.hero--scroll-driven .main-nav{
|
||||||
|
will-change:transform;
|
||||||
|
}
|
||||||
|
.hero--scroll-driven + .post-hero-lift{
|
||||||
|
will-change:transform;
|
||||||
|
}
|
||||||
|
.terminal--scroll-driven .terminal-brand-inner,
|
||||||
|
.terminal--scroll-driven .main-nav{
|
||||||
|
will-change:transform;
|
||||||
|
}
|
||||||
|
.terminal--scroll-driven + .post-hero-lift{
|
||||||
|
will-change:transform;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes hero-brand-scale{
|
||||||
|
from{transform:translate3d(0, 0, 0) scale(var(--hero-max-scale-mobile));}
|
||||||
|
to{transform:translate3d(0, 0, 0) scale(1);}
|
||||||
|
}
|
||||||
|
@keyframes terminal-brand-scale{
|
||||||
|
from{transform:translate3d(-50%, 0, 0) scale(var(--hero-max-scale-mobile));}
|
||||||
|
to{transform:translate3d(-50%, 0, 0) scale(1);}
|
||||||
|
}
|
||||||
|
@keyframes hero-nav-lift{
|
||||||
|
from{transform:translate3d(0, 0, 0);}
|
||||||
|
to{transform:translate3d(0, var(--hero-nav-shift-max), 0);}
|
||||||
|
}
|
||||||
|
@keyframes hero-content-lift{
|
||||||
|
from{transform:translate3d(0, 0, 0);}
|
||||||
|
to{transform:translate3d(0, var(--hero-nav-shift-max), 0);}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Terminal landing page — hero + 3-col nav */
|
||||||
|
.terminal-hero{
|
||||||
|
--hero-max-scale:2.55;
|
||||||
|
--hero-active-scale:var(--hero-max-scale);
|
||||||
|
--hero-logo-size:clamp(72px, 13.5vw, 158px);
|
||||||
|
--hero-terminal-overflow:1.14;
|
||||||
|
--hero-brand-gap:var(--hero-bottom-gap);
|
||||||
|
position:relative;
|
||||||
|
padding-top:var(--hero-stage-offset);
|
||||||
|
padding-bottom:var(--hero-bottom-gap);
|
||||||
|
text-align:center;
|
||||||
|
overflow:visible;
|
||||||
|
}
|
||||||
|
.terminal-stage{
|
||||||
|
position:sticky;
|
||||||
|
top:calc(var(--site-header-height) + var(--hero-stage-offset));
|
||||||
|
z-index:1;
|
||||||
|
contain:layout style;
|
||||||
|
height:var(--hero-stage-height, auto);
|
||||||
|
}
|
||||||
|
.terminal-brand{
|
||||||
|
position:relative;
|
||||||
|
padding-bottom:var(--hero-brand-gap);
|
||||||
|
overflow:visible;
|
||||||
|
contain:layout style;
|
||||||
|
height:var(--hero-brand-height, auto);
|
||||||
|
}
|
||||||
|
.terminal-brand-inner{
|
||||||
|
position:absolute;
|
||||||
|
left:50%;
|
||||||
|
top:0;
|
||||||
|
transform-origin:center top;
|
||||||
|
transform:translate3d(-50%, 0, 0) scale(var(--hero-scale, 1));
|
||||||
|
will-change:transform;
|
||||||
|
backface-visibility:hidden;
|
||||||
|
-webkit-backface-visibility:hidden;
|
||||||
|
}
|
||||||
|
.terminal-logo{
|
||||||
|
display:inline-flex;
|
||||||
|
align-items:baseline;
|
||||||
|
gap:0.06em;
|
||||||
|
font-size:var(--hero-logo-size);
|
||||||
|
font-weight:600;
|
||||||
|
letter-spacing:-0.03em;
|
||||||
|
line-height:0.9;
|
||||||
|
color:var(--logo);
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
.terminal-logo .accent{
|
||||||
|
color:var(--accent);
|
||||||
|
font-size:0.62em;
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: no-preference){
|
||||||
|
.terminal-brand-inner .terminal-logo{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-active-scale) * var(--hero-terminal-fit, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (prefers-reduced-motion: no-preference) and (max-width:600px){
|
||||||
|
.terminal-brand-inner .terminal-logo{
|
||||||
|
font-size:calc(var(--hero-logo-size) * var(--hero-terminal-fit, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.terminal-nav{
|
||||||
|
grid-template-columns:repeat(3, 1fr);
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
.main-nav.terminal-nav a::before{content:none;}
|
||||||
|
.terminal-nav a:last-child::after{content:none;}
|
||||||
|
.terminal-nav a:not(:last-child)::after{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
right:0;
|
||||||
|
top:var(--nav-divider-inset);
|
||||||
|
bottom:var(--nav-divider-inset);
|
||||||
|
width:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
@media (max-width:600px){
|
||||||
|
.terminal-nav{
|
||||||
|
grid-template-columns:1fr;
|
||||||
|
}
|
||||||
|
.terminal-nav a:not(:last-child)::after{content:none;}
|
||||||
|
.terminal-nav a:not(:last-child)::before{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
bottom:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
height:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
.terminal-nav a{border-bottom:none;}
|
||||||
|
.terminal-nav a:last-child{border-bottom:none;}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive */
|
||||||
|
@media (max-width:900px){
|
||||||
|
.section{--section-padding-y:64px;}
|
||||||
|
.main-nav{grid-template-columns:repeat(2, 1fr);}
|
||||||
|
.terminal-nav{grid-template-columns:repeat(3, 1fr);}
|
||||||
|
.main-nav:not(.terminal-nav) a:not(:nth-child(4n))::after,
|
||||||
|
.main-nav:not(.terminal-nav) a:nth-child(-n+4)::before{content:none;}
|
||||||
|
.main-nav:not(.terminal-nav) a:not(:nth-child(2n))::after{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
right:0;
|
||||||
|
width:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
.main-nav:not(.terminal-nav) a:nth-child(-n+2):not(:nth-child(2n))::after{
|
||||||
|
top:var(--nav-divider-inset);
|
||||||
|
bottom:0;
|
||||||
|
}
|
||||||
|
.main-nav:not(.terminal-nav) a:nth-child(n+3):nth-child(-n+6):not(:nth-child(2n))::after{
|
||||||
|
top:0;
|
||||||
|
bottom:0;
|
||||||
|
}
|
||||||
|
.main-nav:not(.terminal-nav) a:nth-child(n+7):not(:nth-child(2n))::after{
|
||||||
|
top:0;
|
||||||
|
bottom:var(--nav-divider-inset);
|
||||||
|
}
|
||||||
|
.main-nav:not(.terminal-nav) a:nth-child(-n+6)::before{
|
||||||
|
content:'';
|
||||||
|
position:absolute;
|
||||||
|
bottom:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
height:1px;
|
||||||
|
background:var(--border);
|
||||||
|
}
|
||||||
|
.team-grid{
|
||||||
|
grid-template-columns:1fr;
|
||||||
|
gap:24px;
|
||||||
|
}
|
||||||
|
.team-card,
|
||||||
|
.team-card--ivan,
|
||||||
|
.team-card--andrey{
|
||||||
|
padding:0 0 24px;
|
||||||
|
text-align:left;
|
||||||
|
border-right:none;
|
||||||
|
border-bottom:1px solid var(--border);
|
||||||
|
}
|
||||||
|
.team-card:last-child,
|
||||||
|
.team-card--andrey{
|
||||||
|
padding-bottom:0;
|
||||||
|
border-bottom:none;
|
||||||
|
}
|
||||||
|
.two-col{grid-template-columns:1fr;}
|
||||||
|
}
|
||||||
|
@media (max-width:600px){
|
||||||
|
.header-inner{
|
||||||
|
padding-top:12px;
|
||||||
|
padding-bottom:12px;
|
||||||
|
}
|
||||||
|
.hero{
|
||||||
|
padding-top:var(--hero-stage-offset);
|
||||||
|
padding-bottom:var(--hero-bottom-gap);
|
||||||
|
}
|
||||||
|
.terminal-hero{
|
||||||
|
--hero-terminal-overflow:1;
|
||||||
|
}
|
||||||
|
:root{
|
||||||
|
--site-header-height: 49px;
|
||||||
|
--hero-logo-size: clamp(72px, 18vw, 120px);
|
||||||
|
--hero-brand-gap: 24px;
|
||||||
|
--hero-bottom-gap: 24px;
|
||||||
|
--hero-max-scale-mobile: 2;
|
||||||
|
--hero-active-scale: 1;
|
||||||
|
}
|
||||||
|
.section{--section-padding-y:48px;}
|
||||||
|
.main-nav:not(.terminal-nav){
|
||||||
|
grid-template-columns:repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
.main-nav:not(.terminal-nav) a{
|
||||||
|
min-height:44px;
|
||||||
|
padding:1px 8px 0;
|
||||||
|
font-size:14px;
|
||||||
|
}
|
||||||
|
.terminal-nav{
|
||||||
|
grid-template-columns:1fr;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
.terminal-nav a{
|
||||||
|
min-height:44px;
|
||||||
|
padding:1px 8px 0;
|
||||||
|
font-size:14px;
|
||||||
|
}
|
||||||
|
h2{font-size:clamp(28px, 8vw, 40px);}
|
||||||
|
}
|
||||||
48
terminal.js
Normal file
48
terminal.js
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
initLangSwitch();
|
||||||
|
initTheme();
|
||||||
|
|
||||||
|
const terminalHero = document.querySelector('.terminal-hero');
|
||||||
|
const terminalBrand = document.querySelector('.terminal-brand');
|
||||||
|
const terminalBrandInner = document.getElementById('terminalBrandInner');
|
||||||
|
|
||||||
|
function syncTerminalLogoFit(){
|
||||||
|
const logo = terminalBrandInner?.querySelector('.terminal-logo');
|
||||||
|
if (!logo || !terminalBrand) return;
|
||||||
|
|
||||||
|
document.documentElement.style.setProperty('--hero-terminal-fit', '1');
|
||||||
|
const brandWidth = terminalBrand.clientWidth;
|
||||||
|
const logoW = terminalBrandInner.offsetWidth;
|
||||||
|
const overflow = readCssPx('--hero-terminal-overflow', 1, terminalHero);
|
||||||
|
const targetWidth = brandWidth * overflow;
|
||||||
|
const fit = logoW > 0 ? targetWidth / logoW : 1;
|
||||||
|
document.documentElement.style.setProperty('--hero-terminal-fit', fit.toFixed(4));
|
||||||
|
}
|
||||||
|
|
||||||
|
initHeroScroll({
|
||||||
|
section: terminalHero,
|
||||||
|
stage: document.querySelector('.terminal-stage'),
|
||||||
|
brand: terminalBrand,
|
||||||
|
brandInner: terminalBrandInner,
|
||||||
|
mobileAnimClass: 'terminal--mobile-anim',
|
||||||
|
scrollDrivenClass: 'terminal--scroll-driven',
|
||||||
|
brandScaleAnimation: 'terminal-brand-scale',
|
||||||
|
syncFit: syncTerminalLogoFit,
|
||||||
|
brandGapFromSection: true,
|
||||||
|
setMobileScaleVar: true,
|
||||||
|
subtractRunwayOnMobile: true,
|
||||||
|
clearSectionVars(section){
|
||||||
|
if (section) section.style.removeProperty('--hero-max-scale-mobile');
|
||||||
|
},
|
||||||
|
clampMobileScale(maxScale, brand, brandInner, section){
|
||||||
|
const brandWidth = brand.clientWidth;
|
||||||
|
const unscaledWidth = brandInner.offsetWidth;
|
||||||
|
const overflow = readCssPx('--hero-terminal-overflow', 1, section);
|
||||||
|
if (brandWidth > 0 && unscaledWidth > 0){
|
||||||
|
return Math.min(maxScale, (brandWidth * overflow) / unscaledWidth);
|
||||||
|
}
|
||||||
|
return maxScale;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
initReveal();
|
||||||
|
initContactForm();
|
||||||
303
terminal/index.html
Normal file
303
terminal/index.html
Normal file
|
|
@ -0,0 +1,303 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru" data-theme="light" data-page-lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th Terminal — автотрейдинг по TradingView сигналам</title>
|
||||||
|
<meta name="description" content="428th Terminal — автотрейдинг по сигналам TradingView на BingX, Bybit и MEXC. Автоматическое открытие позиций со стопом и тейком.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/terminal/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/terminal/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/terminal/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/terminal/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/terminal/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="ru_RU">
|
||||||
|
<meta property="og:url" content="https://428th.com/terminal/">
|
||||||
|
<meta property="og:title" content="428th Terminal — автотрейдинг по TradingView сигналам">
|
||||||
|
<meta property="og:description" content="428th Terminal — автотрейдинг по сигналам TradingView на BingX, Bybit и MEXC. Автоматическое открытие позиций со стопом и тейком.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th Terminal — автотрейдинг по TradingView сигналам">
|
||||||
|
<meta name="twitter:description" content="428th Terminal — автотрейдинг по сигналам TradingView на BingX, Bybit и MEXC. Автоматическое открытие позиций со стопом и тейком.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/terminal/" data-set-lang="en">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/terminal/" data-set-lang="ua">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/terminal/" data-set-lang="ru" class="active" aria-current="page">RU</a>
|
||||||
|
</nav>
|
||||||
|
<div class="header-actions">
|
||||||
|
<a href="/" class="home-link">HOME PAGE</a>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Переключить тему">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="terminal-hero container">
|
||||||
|
<div class="terminal-stage">
|
||||||
|
<div class="terminal-brand">
|
||||||
|
<div class="terminal-brand-inner" id="terminalBrandInner">
|
||||||
|
<h1 class="terminal-logo"><span class="accent">428th</span><span class="terminal-logo-main">Terminal</span></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav terminal-nav" aria-label="Разделы">
|
||||||
|
<a href="#functionality">Функционал</a>
|
||||||
|
<a href="#pricing">Цены</a>
|
||||||
|
<a href="#contact" class="nav-cta">Написать в ЛС →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- ФУНКЦИОНАЛ -->
|
||||||
|
<section id="functionality" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Функционал</span>
|
||||||
|
<h2>Связать TradingView индикатор с биржей</h2>
|
||||||
|
<p class="lead">В общем, это главное, для чего мы сделали терминал. Предположим, у вас или у кого-то есть крутой индикатор:</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Торговать по сигналам руками</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Надо сидеть 24/7 у компа или телефона</li>
|
||||||
|
<li>Легко пропустить сигнал</li>
|
||||||
|
<li>Можно не успеть войти</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Подключить к терминалу</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Позиция откроется автоматически</li>
|
||||||
|
<li>Сразу поставит стоп и тейк</li>
|
||||||
|
<li>Если нужно, делайте с ней руками что угодно</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Смысл в том, чтобы автоматизировать торговлю по индикатору, который вам нравится.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Регистрируетесь, подключаете по API аккаунт на BingX, ByBit или MEXC. Нужно быть нашим рефералом или дать денег.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Модифицируете скрипт под наши Webhook. Это не страшно.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Настраиваете алерты, кайфуете. Бот не сломается, даже если вы будете торговать вместе с ним и менять его позиции руками.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Вы не особо программист?</span> Мы поможем переписать скрипт и подключиться — бесплатно.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p class="lead">Изначально мы делали терминал для автотрейдинга по своим индикаторам. <span class="fw-400">Поэтому он делает ровно то, что нам нужно:</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>Принимает Webhook c TradingView.</li>
|
||||||
|
<li>Реализует на его основе позицию на BingX, ByBit или MEXC.</li>
|
||||||
|
<li>Принимает ручные правки: на бирже позицию можно закрыть, сократить, подвинуть стоп или тейк.</li>
|
||||||
|
<li>Показывает торговую статистику.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Теперь мы придумываем и добавляем новые функции.</span> Если что-то хотите — напишите в лс.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ЦЕНЫ -->
|
||||||
|
<section id="pricing" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Цены</span>
|
||||||
|
<h2>Это самое смешное</h2>
|
||||||
|
<p class="lead">Работайте бесплатно, если ваш аккаунт — наш реферал. <span class="fw-400">Если нет — будет дорого :(</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>Мы не смогли придумать вариант оплаты, который удобнее, чем биржевая партнерская система.</li>
|
||||||
|
<li>Если вам очень важно торговать без нашей рефералки, значит вам и так пофиг сколько платить.</li>
|
||||||
|
<li>Цена за прямую оплату сервиса — $500 в месяц за каждый API ключ.</li>
|
||||||
|
<li>Напомним, за торговлю на реферальном аккаунте платить не нужно. Нам хватит бонусов от ваших комиссий.</li>
|
||||||
|
<li>А если вы инфлюенсер и партнер выбранной для работы биржи — напишите в лс, договоримся.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Быть нашим рефералом — <span class="fw-400">круто в любом случае.</span></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>При обороте криптой $500k+ в месяц вы станете участником Premium группы бесплатно. Больше инфы — <a href="/#premium">здесь</a>.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Ваша комиссия за торговлю станет ниже на 30-50%, а если вы вообще кит, то договоримся на кешбеки.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Ваши вопросы или проблемы с биржей можно решить через нас и быстро. Особенно на BingX, там братья вообще.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Минусы? Их нет.</span> А ссылки для регистрации — внизу страницы.</p></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Контакт</span>
|
||||||
|
<p><span class="fw-400">По всем вопросам — только в ЛС.</span> Продажи не автоматизированы, а мы и не планировали.</p>
|
||||||
|
<p>Напишите — разберём вашу ситуацию и найдём решение. <span class="fw-400">По-братски.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Хотите анонимно?</span> Вот форма для связи</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Наши каналы</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">рабочий чат</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Рефералки с лучшими условиями</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Любимая</span> криптобиржа</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Топовый TradFi на</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Форма для связи</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Отправлено ✓">
|
||||||
|
<label>
|
||||||
|
<span>Имя</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Способ связи</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Сообщение</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Отправить</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/terminal.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
425
ua/index.html
Normal file
425
ua/index.html
Normal file
|
|
@ -0,0 +1,425 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="uk" data-theme="light" data-page-lang="ua">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th // Crypto · Trading · Wealth Management</title>
|
||||||
|
<meta name="description" content="428th — крипто-трейдинг, навчання, копітрейдинг і автотрейдинг за TradingView. Частина команди SIMPLE CRYPTO з 2018 року.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/ua/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="uk_UA">
|
||||||
|
<meta property="og:url" content="https://428th.com/ua/">
|
||||||
|
<meta property="og:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta property="og:description" content="428th — крипто-трейдинг, навчання, копітрейдинг і автотрейдинг за TradingView. Частина команди SIMPLE CRYPTO з 2018 року.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th // Crypto · Trading · Wealth Management">
|
||||||
|
<meta name="twitter:description" content="428th — крипто-трейдинг, навчання, копітрейдинг і автотрейдинг за TradingView. Частина команди SIMPLE CRYPTO з 2018 року.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/" data-set-lang="en">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/" data-set-lang="ua" class="active" aria-current="page">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/" data-set-lang="ru">RU</a>
|
||||||
|
</nav>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Перемкнути тему">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="hero container">
|
||||||
|
<div class="hero-stage">
|
||||||
|
<div class="hero-brand">
|
||||||
|
<div class="hero-brand-inner" id="heroBrandInner">
|
||||||
|
<div class="hero-brand-lockup">
|
||||||
|
<h1 class="logo">428th</h1>
|
||||||
|
<p class="tagline">Crypto // Trading // Wealth Management</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav" aria-label="Розділи">
|
||||||
|
<a href="#about">Хто ми</a>
|
||||||
|
<a href="#premium">Premium</a>
|
||||||
|
<a href="#education">Навчання</a>
|
||||||
|
<a href="#copytrade">Копітрейдинг</a>
|
||||||
|
<a href="#autotrade">Автотрейдинг</a>
|
||||||
|
<a href="#fund">Фонд</a>
|
||||||
|
<a href="#streams">Стріми для адмінів</a>
|
||||||
|
<a href="#contact" class="nav-cta">Написати в ЛС →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- КТО МЫ -->
|
||||||
|
<section id="about" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Хто ми</span>
|
||||||
|
<h2>428th — частина команди SIMPLE CRYPTO</h2>
|
||||||
|
<p class="lead">Об'єднані ідеєю ефективного управління капіталом. З 2018 року працюємо з крипто-активами. Своїми рішеннями ділимося з шанобливими підписниками. <span class="fw-400">З нешанобливими — не ділимося.</span></p>
|
||||||
|
|
||||||
|
<div class="team-grid">
|
||||||
|
<div class="team-card">
|
||||||
|
<h3>Артемій</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Ручний та алгоритмічний трейдинг</li>
|
||||||
|
<li>Автоматизація</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--ivan">
|
||||||
|
<h3>Іван</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Фундаментальний аналіз і макроекономіка</li>
|
||||||
|
<li>Ринок передбачень (Polymarket)</li>
|
||||||
|
<li>Інвестиції в цінність</li>
|
||||||
|
<li>Позиційна торгівля класичних ринків</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="team-card team-card--andrey">
|
||||||
|
<h3>Андрій</h3>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>DeFi</li>
|
||||||
|
<li>Retro</li>
|
||||||
|
<li>Betting</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- PREMIUM -->
|
||||||
|
<section id="premium" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Premium</span>
|
||||||
|
<h2>Робота в команді</h2>
|
||||||
|
<p class="lead">Закритий чат, розділений на теми, в якому ми спілкуємося з вами особисто. Але в основному російською, такі вже виросли.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="5">
|
||||||
|
<li><span class="num">01</span><p>Щодня — конференція або технічний відео-огляд ринку Crypto + TradFi. Поточна ситуація, очікування, пошук сетапів, розстановка орієнтирів. За можливості торгівля Золотом і Сріблом на секундних графіках онлайн на дзвінках.</p></li>
|
||||||
|
<li><span class="num">02</span><p>24/7 трендові сетапи від авторських алгоритмів за таймфреймами 15 хв і 6 год. Чіткий вхід, стоп, тейк і графік.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Відповіді на питання, розбори торгових систем і фішок.</p></li>
|
||||||
|
<li><span class="num">04</span><p>Фундаментальний розбір ринків і активів.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Рекомендації щодо напрямків Retro, DeFi, Polymarket.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="entry-options">
|
||||||
|
<span class="sublabel">
|
||||||
|
<span>Варіанти входу</span><span class="sublabel-note"> (будь-який з них)</span>
|
||||||
|
</span>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span class="fw-400">500$ за навчання, у подарунок 12 місяців підписки на Premium.</span> Нам просто краще працювати з тими, хто знає базу.</li>
|
||||||
|
<li><span class="fw-400">Підписка 50$/міс.</span> Не хочете вчитися — доплата за лінь.</li>
|
||||||
|
<li><span class="fw-400">Підключений копітрейдинг BingX на депозит $3 000+.</span> Топовий варіант для тих, хто вже довіряє.</li>
|
||||||
|
<li><span class="fw-400">Оборот криптою на партнерському акаунті Bybit або BingX на $500k+/міс.</span> Для китів усі двері відкриті.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ОБУЧЕНИЕ -->
|
||||||
|
<section id="education" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Навчання</span>
|
||||||
|
<h2>Авторський курс з трейдингу</h2>
|
||||||
|
<p class="lead">За кожною темою — текстова лекція і відео-практика. 1–1,5 місяці у вільному режимі. Уроки по 20 хвилин в середньому. Ціна 500$.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Що входить</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Безстроковий доступ у чат учнів, оновлення курсу, конференції, авторські індикатори</li>
|
||||||
|
<li>Усі стилі торгівлі: інтрадей, середньострок, портфель</li>
|
||||||
|
<li>Підтримка від нас і учнів минулих потоків</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Методи</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Класичний ТА + PA + VSA + LRA + SM</li>
|
||||||
|
<li>Перевірені тонкощі поширених методів аналізу</li>
|
||||||
|
<li>Нові підходи і стратегії в міру вивчення та відпрацювання</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Теорії хвиль Елліота (EWA) зараз немає — це наступний рівень.</span> Торгувати нормально можна і без нього. За бажанням — спирайтеся на наші розмітки.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОПИТРЕЙДИНГ -->
|
||||||
|
<section id="copytrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Копітрейдинг на BingX</span>
|
||||||
|
<h2>Напівавтоматична торгівля</h2>
|
||||||
|
<p class="lead">Артемій разом із ботами торгує на двох ф'ючерсних мастер-акаунтах — короткострок і середньострок. Кнопка бабло!</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="3">
|
||||||
|
<li><span class="num">01</span><p>Два мастер-акаунти: короткострокова і середньострокова торгівля на ф'ючерсах.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Доступно лише для рефералів BingX. Відкриває можливість безкоштовного входу в Premium.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Підключайтеся, якщо готові до експерименту або довіряєте нам приблизно як собі — або сильніше.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Статистики поки мало і вона нічого не дає — технічне рішення лише нещодавно почало працювати. <span class="fw-400">Підключайтеся усвідомлено.</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- АВТОТРЕЙДИНГ // TERMINAL -->
|
||||||
|
<section id="autotrade" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Автотрейдинг // Terminal</span>
|
||||||
|
<h2>Автоматизація за індикаторами TradingView</h2>
|
||||||
|
<p class="lead">Є робочий індикатор, на вигляд офігенний, але працювати руками — дич? Підключайте сигнали і спостерігайте за торгівлею.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Реєструєтеся, підключаєте по API акаунт на BingX, ByBit або MEXC. Потрібно бути нашим рефералом або дати гроші.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Модифікуєте скрипт під наші webhook. Це не страшно.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Налаштовуєте алерти, кайфуєте. Бот не зламається, навіть якщо ви будете торгувати разом із ним і змінювати його позиції руками.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Ви не особливо програміст?</span> Ми допоможемо переписати скрипт і підключитися — безкоштовно.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>
|
||||||
|
<span>Детальніше про 428th Terminal —</span>
|
||||||
|
<a href="/ua/terminal/">на цій сторінці.</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ФОНД -->
|
||||||
|
<section id="fund" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-labels">
|
||||||
|
<span class="eyebrow">Фонд</span>
|
||||||
|
<span class="badge">Закритий для нових учасників (сорі, інвестиції поки в мінусі)</span>
|
||||||
|
</div>
|
||||||
|
<h2>Multi-family office</h2>
|
||||||
|
<p class="lead">Для тих, хто хоче бути в крипто-тренді і отримувати дохід від капіталу — без самостійної роботи з ринком.</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Для самостійного управління потрібно</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Час на постійне спостереження за ринком</li>
|
||||||
|
<li>База для системного аналізу</li>
|
||||||
|
<li>Досвід безпечної роботи з блокчейнами</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Як варіант — довірити все нам</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Планування і розподіл капіталу</li>
|
||||||
|
<li>Управління позиціями</li>
|
||||||
|
<li>Звітність і виплати</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Якщо працюєте з ринком своєю головою і руками — це найкращий підхід</span>, ми його підтримуємо максимально.</p>
|
||||||
|
<p>Якщо ні — ми надаємо доступ до крипто-доходності без занурення в кожну дію.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- СТРИМЫ -->
|
||||||
|
<section id="streams" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Стріми крипто-адмінів</span>
|
||||||
|
<h2>Сервіс admins.stream</h2>
|
||||||
|
<p class="lead">Адміни збираються разом, щоб провести конференцію для підписників і обмінятися трафіком. Можна підключити спонсорів.</p>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="6">
|
||||||
|
<li><span class="num">01</span><p>Збираємо групу адмінів, фіксуємо теми виступів, дату стріму, розклад постів-анонсів, призи.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Адміни випускають пости-анонси, люди реєструються в тг-боті. Їм потрібно підписатися на кожного адміна.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Усі глядачі фіксуються в базі, хто звідки прийшов і все таке. Хто нальє ботів — приб'ю. Але ми підготувалися: капчі в боті, капчі на стрімі.</p></li>
|
||||||
|
<li><span class="num">04</span><p>Проводимо конференцію — адміни на дзвінку, а глядачі дивляться стрім і можуть поспілкуватися в чаті трансляції.</p></li>
|
||||||
|
<li><span class="num">05</span><p>Серед тих, хто прийшов на конференцію (у всіх індивідуальне посилання), розігруються обрані призи.</p></li>
|
||||||
|
<li><span class="num">06</span><p>Адміни задоволені живим зацікавленим трафіком, підписники радіють якісному контенту і нагородам.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Цікаво?</span> Звертайтеся, домовимося.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Контакт</span>
|
||||||
|
<p><span class="fw-400">З усіх питань — лише в ЛС.</span> Продажі не автоматизовані, а ми й не планували.</p>
|
||||||
|
<p>Напишіть — розберемо вашу ситуацію і знайдемо рішення. <span class="fw-400">По-братськи.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Хочете анонімно?</span> Ось форма для зв'язку</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Наші канали</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">робочий чат</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Рефералки з найкращими умовами</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Улюблена</span> криптобіржа</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Топовий TradFi на</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Форма для зв'язку</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Надіслано ✓">
|
||||||
|
<label>
|
||||||
|
<span>Ім'я</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Спосіб зв'язку</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Повідомлення</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Надіслати</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/app.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
303
ua/terminal/index.html
Normal file
303
ua/terminal/index.html
Normal file
|
|
@ -0,0 +1,303 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="uk" data-theme="light" data-page-lang="ua">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>428th Terminal — автотрейдинг за сигналами TradingView</title>
|
||||||
|
<meta name="description" content="428th Terminal — автотрейдинг за сигналами TradingView на BingX, Bybit і MEXC. Автоматичне відкриття позицій зі стопом і тейком.">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<link rel="canonical" href="https://428th.com/ua/terminal/">
|
||||||
|
<link rel="alternate" hreflang="ru" href="https://428th.com/terminal/">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://428th.com/en/terminal/">
|
||||||
|
<link rel="alternate" hreflang="uk" href="https://428th.com/ua/terminal/">
|
||||||
|
<link rel="alternate" hreflang="x-default" href="https://428th.com/terminal/">
|
||||||
|
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
<meta property="og:site_name" content="428th">
|
||||||
|
<meta property="og:locale" content="uk_UA">
|
||||||
|
<meta property="og:url" content="https://428th.com/ua/terminal/">
|
||||||
|
<meta property="og:title" content="428th Terminal — автотрейдинг за сигналами TradingView">
|
||||||
|
<meta property="og:description" content="428th Terminal — автотрейдинг за сигналами TradingView на BingX, Bybit і MEXC. Автоматичне відкриття позицій зі стопом і тейком.">
|
||||||
|
<meta property="og:image" content="https://428th.com/og.png">
|
||||||
|
<meta property="og:image:width" content="1200">
|
||||||
|
<meta property="og:image:height" content="630">
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="428th Terminal — автотрейдинг за сигналами TradingView">
|
||||||
|
<meta name="twitter:description" content="428th Terminal — автотрейдинг за сигналами TradingView на BingX, Bybit і MEXC. Автоматичне відкриття позицій зі стопом і тейком.">
|
||||||
|
<meta name="twitter:image" content="https://428th.com/og.png">
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#C4622A">
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var saved = localStorage.getItem('theme');
|
||||||
|
var theme = (saved === 'light' || saved === 'dark')
|
||||||
|
? saved
|
||||||
|
: (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
||||||
|
document.documentElement.setAttribute('data-theme', theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var pageLang = document.documentElement.getAttribute('data-page-lang');
|
||||||
|
var saved = localStorage.getItem('lang');
|
||||||
|
if (saved === 'uk') { saved = 'ua'; localStorage.setItem('lang', 'ua'); }
|
||||||
|
|
||||||
|
function normalizePath(path) {
|
||||||
|
if (!path || path === '/') return '/';
|
||||||
|
return path.replace(/\/+$/, '') || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pathFor(lang) {
|
||||||
|
var path = location.pathname || '/';
|
||||||
|
var rest = path.replace(/^\/(en|ua)(?=\/|$)/, '') || '/';
|
||||||
|
if (rest === '/index.html') rest = '/';
|
||||||
|
rest = normalizePath(rest);
|
||||||
|
|
||||||
|
if (lang === 'ru') {
|
||||||
|
if (rest === '/') return '/';
|
||||||
|
if (rest === '/terminal') return '/terminal/';
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
if (rest === '/') return '/' + lang + '/';
|
||||||
|
if (rest === '/terminal') return '/' + lang + '/terminal/';
|
||||||
|
return '/' + lang + rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function needsRedirect(target) {
|
||||||
|
return normalizePath(location.pathname) !== normalizePath(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saved === 'ru' || saved === 'en' || saved === 'ua') {
|
||||||
|
if (saved !== pageLang) {
|
||||||
|
var target = pathFor(saved);
|
||||||
|
if (needsRedirect(target)) location.replace(target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageLang !== 'ru') {
|
||||||
|
localStorage.setItem('lang', pageLang);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var browser = String(navigator.language || '').slice(0, 2).toLowerCase();
|
||||||
|
var preferred = 'ru';
|
||||||
|
if (browser === 'en') preferred = 'en';
|
||||||
|
else if (browser === 'uk' || browser === 'ua') preferred = 'ua';
|
||||||
|
|
||||||
|
if (preferred !== 'ru') {
|
||||||
|
var preferredTarget = pathFor(preferred);
|
||||||
|
if (needsRedirect(preferredTarget)) location.replace(preferredTarget);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('lang', 'ru');
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<link rel="stylesheet" href="/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container header-inner">
|
||||||
|
<nav class="lang-switch" id="langSwitch" aria-label="Language">
|
||||||
|
<a href="/en/terminal/" data-set-lang="en">EN</a>
|
||||||
|
//
|
||||||
|
<a href="/ua/terminal/" data-set-lang="ua" class="active" aria-current="page">UA</a>
|
||||||
|
//
|
||||||
|
<a href="/terminal/" data-set-lang="ru">RU</a>
|
||||||
|
</nav>
|
||||||
|
<div class="header-actions">
|
||||||
|
<a href="/ua/" class="home-link">HOME PAGE</a>
|
||||||
|
<button class="theme-toggle" id="themeToggle" aria-label="Перемкнути тему">
|
||||||
|
<svg class="icon-sun" viewBox="0 0 24 24" width="20" height="20"><circle cx="12" cy="12" r="5"></circle><g stroke-width="2"><line x1="12" y1="1" x2="12" y2="4"></line><line x1="12" y1="20" x2="12" y2="23"></line><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"></line><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"></line><line x1="1" y1="12" x2="4" y2="12"></line><line x1="20" y1="12" x2="23" y2="12"></line><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"></line><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"></line></g></svg>
|
||||||
|
<svg class="icon-moon" viewBox="0 0 24 24" width="20" height="20"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<section class="terminal-hero container">
|
||||||
|
<div class="terminal-stage">
|
||||||
|
<div class="terminal-brand">
|
||||||
|
<div class="terminal-brand-inner" id="terminalBrandInner">
|
||||||
|
<h1 class="terminal-logo"><span class="accent">428th</span><span class="terminal-logo-main">Terminal</span></h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="main-nav terminal-nav" aria-label="Розділи">
|
||||||
|
<a href="#functionality">Функціонал</a>
|
||||||
|
<a href="#pricing">Ціни</a>
|
||||||
|
<a href="#contact" class="nav-cta">Написати в ЛС →</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="post-hero-lift">
|
||||||
|
|
||||||
|
<!-- ФУНКЦИОНАЛ -->
|
||||||
|
<section id="functionality" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Функціонал</span>
|
||||||
|
<h2>Зв'язати індикатор TradingView з біржею</h2>
|
||||||
|
<p class="lead">Загалом, це головне, для чого ми зробили термінал. Припустимо, у вас або в когось є крутий індикатор:</p>
|
||||||
|
|
||||||
|
<div class="two-col">
|
||||||
|
<div>
|
||||||
|
<h4>Торгувати за сигналами руками</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Треба сидіти 24/7 біля компа або телефона</li>
|
||||||
|
<li>Легко пропустити сигнал</li>
|
||||||
|
<li>Можна не встигнути увійти</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Підключити до терміналу</h4>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Позиція відкриється автоматично</li>
|
||||||
|
<li>Одразу поставить стоп і тейк</li>
|
||||||
|
<li>Якщо треба, робіть з нею руками що завгодно</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Сенс у тому, щоб автоматизувати торгівлю за індикатором, який вам подобається.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>Реєструєтеся, підключаєте по API акаунт на BingX, ByBit або MEXC. Потрібно бути нашим рефералом або дати грошей.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Модифікуєте скрипт під наші Webhook. Це не страшно.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Налаштовуєте алерти, кайфуєте. Бот не зламається, навіть якщо ви будете торгувати разом із ним і змінювати його позиції руками.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Ви не те щоб програміст?</span> Ми допоможемо переписати скрипт і підключитися — безкоштовно.</p></li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p class="lead">Спочатку ми робили термінал для автотрейдингу за своїми індикаторами. <span class="fw-400">Тому він робить рівно те, що нам потрібно:</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>Приймає Webhook з TradingView.</li>
|
||||||
|
<li>Реалізує на його основі позицію на BingX, ByBit або MEXC.</li>
|
||||||
|
<li>Приймає ручні правки: на біржі позицію можна закрити, скоротити, посунути стоп або тейк.</li>
|
||||||
|
<li>Показує торгову статистику.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p><span class="fw-400">Тепер ми придумуємо і додаємо нові функції.</span> Якщо щось хочете — напишіть в лс.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ЦЕНЫ -->
|
||||||
|
<section id="pricing" class="section reveal">
|
||||||
|
<div class="container">
|
||||||
|
<span class="eyebrow">Ціни</span>
|
||||||
|
<h2>Це смішне</h2>
|
||||||
|
<p class="lead">Працюйте безкоштовно, якщо ваш акаунт — наш реферал. <span class="fw-400">Якщо ні — буде дорого :(</span></p>
|
||||||
|
|
||||||
|
<ul class="dash-list dash-list--block">
|
||||||
|
<li>Ми не змогли придумати варіант оплати, який зручніший за біржову партнерську систему.</li>
|
||||||
|
<li>Якщо вам дуже важливо торгувати без нашої рефералки, значить вам і так байдуже скільки платити.</li>
|
||||||
|
<li>Ціна за пряму оплату сервісу — $500 на місяць за кожен API ключ.</li>
|
||||||
|
<li>Нагадаємо, за торгівлю на реферальному акаунті платити не потрібно. Нам вистачить бонусів від ваших комісій.</li>
|
||||||
|
<li>А якщо ви інфлюенсер і партнер обраної для роботи біржі — напишіть в лс, домовимося.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="note-box">
|
||||||
|
<p>Бути нашим рефералом — <span class="fw-400">круто в будь-якому випадку.</span></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ol class="numbered-list" data-count="4">
|
||||||
|
<li><span class="num">01</span><p>При обороті криптою $500k+ на місяць ви станете учасником Premium групи безкоштовно. Більше інфи — <a href="/ua/#premium">тут</a>.</p></li>
|
||||||
|
<li><span class="num">02</span><p>Ваша комісія за торгівлю стане нижчою на 30-50%, а якщо ви взагалі кит, то домовимося ще й на кешбеки.</p></li>
|
||||||
|
<li><span class="num">03</span><p>Ваші питання або проблеми з біржею можна вирішити через нас і швидко. Особливо на BingX, там братани взагалі.</p></li>
|
||||||
|
<li><span class="num">04</span><p><span class="fw-400">Мінуси? Їх немає.</span> А посилання для реєстрації — внизу сторінки.</p></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- КОНТАКТ -->
|
||||||
|
<section id="contact" class="section reveal contact-section">
|
||||||
|
<div class="container center">
|
||||||
|
<span class="eyebrow">Контакт</span>
|
||||||
|
<p><span class="fw-400">З усіх питань — лише в ЛС.</span> Продажі не автоматизовані, а ми й не планували.</p>
|
||||||
|
<p>Напишіть — розберемо вашу ситуацію і знайдемо рішення. <span class="fw-400">По-братськи.</span></p>
|
||||||
|
|
||||||
|
<a class="btn-outline" href="https://t.me/artemium" target="_blank" rel="noopener">
|
||||||
|
<span>Telegram @artemium</span> →
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="link-underline" id="openContactForm"><span class="fw-400">Хочете анонімно?</span> Ось форма для зв'язку</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- ССЫЛКИ / FOOTER -->
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="container two-col">
|
||||||
|
<div>
|
||||||
|
<h5>Наші канали</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li>Telegram: <a href="https://t.me/+QIZFJDaZjrliMDI6" target="_blank" rel="noopener">@a428th</a> + <a href="https://t.me/+cJfqh9ZTHswwMThi" target="_blank" rel="noopener">робочий чат</a></li>
|
||||||
|
<li>YouTube: <a href="https://www.youtube.com/channel/UCdAD0ER3neqgjhCsgetY1bw" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
<li>X (Twitter): <a href="#" target="_blank" rel="noopener">428th // Crypto</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Рефералки з найкращими умовами</h5>
|
||||||
|
<ul class="dash-list">
|
||||||
|
<li><span><span class="fw-400">Улюблена</span> криптобіржа</span> <a href="https://bingxdao.com/partner/artemium/" target="_blank" rel="noopener">BingX</a></li>
|
||||||
|
<li><span>Топовий TradFi на</span> <a href="https://partner.bybit.com/b/ARTEMIUM" target="_blank" rel="noopener">ByBit</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="https://www.binance.com/register?ref=ARTEMIUM" target="_blank" rel="noopener">Binance</a>,
|
||||||
|
<a href="https://partner.bitget.com/bg/artemium" target="_blank" rel="noopener">BitGet</a>,
|
||||||
|
<a href="https://promote.mexc.com/b/artemium" target="_blank" rel="noopener">MEXC</a>,
|
||||||
|
<a href="#" target="_blank" rel="noopener">OKX</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container footer-bottom">
|
||||||
|
<span class="footer-wolf">🐺</span>
|
||||||
|
<span class="footer-copy">© 2026 // 428th.com</span>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<!-- Модалка формы связи -->
|
||||||
|
<div class="modal-overlay" id="contactModal">
|
||||||
|
<div class="modal-box">
|
||||||
|
<button class="modal-close" id="closeContactForm">×</button>
|
||||||
|
<h3>Форма для зв'язку</h3>
|
||||||
|
|
||||||
|
<form id="contactForm" data-status-loading="..." data-status-success="Надіслано ✓">
|
||||||
|
<label>
|
||||||
|
<span>Ім'я</span>
|
||||||
|
<input type="text" name="name" required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Спосіб зв'язку</span>
|
||||||
|
<input type="text" name="contact" placeholder="Telegram @username, Email, WhatsApp..." required="">
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<span>Повідомлення</span>
|
||||||
|
<textarea name="message" rows="4" required=""></textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="btn-solid">Надіслати</button>
|
||||||
|
<p class="form-status" id="formStatus"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/fonts/inter.css">
|
||||||
|
<script src="/common.js"></script>
|
||||||
|
<script src="/terminal.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Add table
Reference in a new issue