Help
RSS
API
Feed
Maltego
Contact
Domain > astrumpro.ru
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-09-12
31.31.196.232
(
ClassC
)
2019-09-24
194.58.56.103
(
ClassC
)
2026-02-19
185.154.20.52
(
ClassC
)
Port 80
HTTP/1.1 200 OKServer: nginx/1.26.3Date: Thu, 19 Feb 2026 19:58:18 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveX-Powered-By: PHP/8.2.30Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidatePragma: no-cacheSet-Cookie: PHPSESSIDgqvglmcm6mkngj79ft8kbinnvj; path/ !DOCTYPE html>html langru>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1> title>Astrum — Интеллектуальный торговый робот/title> link hrefhttps://fonts.googleapis.com/css2?familySpline+Sans:wght@300;400;500;600;700;800;900&displayswap relstylesheet> style> :root{ --bg:#0b1220; --bg2:#070c17; --border: rgba(148,163,184,.14); --border2: rgba(148,163,184,.22); --text:#e5e7eb; --muted:#9aa4b2; --blue:#2962ff; --blue2:#1f4fe6; --green:#00c853; --red:#ef5350; --shadow: 0 18px 60px rgba(0,0,0,.50); --shadow2: 0 10px 30px rgba(0,0,0,.35); --r16:16px; --r20:20px; } *{margin:0; padding:0; box-sizing:border-box;} html,body{height:100%} body{ font-family:Spline Sans, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; color:var(--text); background: radial-gradient(1200px 700px at 18% 10%, rgba(41,98,255,.18), transparent 55%), radial-gradient(900px 600px at 82% 18%, rgba(0,200,83,.10), transparent 55%), radial-gradient(900px 700px at 50% 90%, rgba(148,163,184,.08), transparent 55%), linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%); line-height:1.55; overflow-x:hidden; } body:before{ content:; position:fixed; inset:0; pointer-events:none; background-image:url(data:image/svg+xml,%3Csvg xmlnshttp://www.w3.org/2000/svg width160 height160%3E%3Cfilter idn%3E%3CfeTurbulence typefractalNoise baseFrequency.8 numOctaves3 stitchTilesstitch/%3E%3C/filter%3E%3Crect width160 height160 filterurl(%23n) opacity.18/%3E%3C/svg%3E); opacity:.07; mix-blend-mode:overlay; z-index:-1; } /* VIDEO BACKGROUND */ .bg-video{ position:fixed; inset:0; z-index:-6; width:100%; height:100%; object-fit:cover; object-position:center 0%; opacity:.28; filter: saturate(1.05) contrast(1.05) brightness(.85); pointer-events:none; background: #0b1220; } .bg-video-overlay{ position:fixed; inset:0; z-index:-5; pointer-events:none; background: radial-gradient(900px 520px at 20% 15%, rgba(41,98,255,.22), transparent 60%), radial-gradient(900px 520px at 80% 20%, rgba(0,200,83,.12), transparent 60%), linear-gradient(180deg, rgba(11,18,32,.78) 0%, rgba(7,12,23,.92) 85%); } /* STARS BACKGROUND */ #stars{ position:fixed; inset:0; z-index:-4; pointer-events:none; } .star{ position:absolute; background:#fff; border-radius:50%; opacity:.7; animation:twinkle 5s infinite alternate; filter: drop-shadow(0 0 6px rgba(255,255,255,.25)); } @keyframes twinkle{ 0%{opacity:.20; transform: scale(.92)} 100%{opacity:.82; transform: scale(1.18)} } .shooting-star{ position:fixed; z-index:-3; width:2px; height:2px; border-radius:50%; background:#fff; box-shadow: 0 0 14px rgba(255,255,255,.9); opacity:0; pointer-events:none; animation:shoot 7s linear infinite; } .shooting-star:after{ content:; position:absolute; top:50%; left:50%; width:180px; height:2px; transform: translate(-2px,-50%) rotate(0deg); transform-origin:left center; background: linear-gradient(90deg, rgba(255,255,255,.85), rgba(255,255,255,0)); } @keyframes shoot{ 0%{ transform: translate(0,0) rotate(45deg); opacity:0; } 8%{ opacity:1; } 100%{ transform: translate(560px,560px) rotate(45deg); opacity:0; } } a{color:inherit} .container{max-width:1200px; margin:0 auto; padding:0 20px;} /* NAV */ .nav{ position:sticky; top:0; z-index:50; backdrop-filter: blur(14px); background: rgba(11,18,32,.72); border-bottom:1px solid var(--border); } .nav-inner{ height:64px; display:flex; align-items:center; justify-content:space-between; gap:14px; } .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:900; letter-spacing:-.4px; white-space:nowrap; } .brand-badge{ width:28px; height:28px; border-radius:8px; background: linear-gradient(135deg, var(--blue), #57b5ff); box-shadow: 0 10px 30px rgba(41,98,255,.30); flex:0 0 auto; } .brand-name{font-size:1.05rem;} .nav-links{ display:flex; align-items:center; gap:18px; color:var(--muted); font-weight:700; font-size:.95rem; } .nav-links a{ text-decoration:none; padding:8px 10px; border-radius:10px; transition: .2s ease; } .nav-links a:hover{ background: rgba(148,163,184,.08); color:var(--text); } .nav-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap;} /* BUTTONS */ .btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 14px; border-radius:12px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--text); text-decoration:none; cursor:pointer; font-weight:900; transition:.2s ease; user-select:none; white-space:nowrap; } .btn:hover{transform: translateY(-1px); border-color:var(--border2); background: rgba(148,163,184,.10);} .btn:active{transform: translateY(0px) scale(.99);} .btn-primary{ border-color: rgba(41,98,255,.40); background: linear-gradient(180deg, rgba(41,98,255,.95), rgba(31,79,230,.95)); box-shadow: 0 18px 40px rgba(41,98,255,.22); } .btn-primary:hover{ background: linear-gradient(180deg, rgba(41,98,255,1), rgba(31,79,230,1)); box-shadow: 0 22px 55px rgba(41,98,255,.28); } /* HERO */ .hero{ min-height: calc(100vh - 64px); display:flex; align-items:center; padding: 28px 0 40px; } .hero-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:24px; align-items:stretch; } @keyframes floatGlow { 0%{transform: translate(-2%, -2%) scale(1); opacity:.55;} 50%{transform: translate(3%, 2%) scale(1.06); opacity:.72;} 100%{transform: translate(-2%, -2%) scale(1); opacity:.55;} } @keyframes breathe { 0%{transform: translateY(0); } 50%{transform: translateY(-2px); } 100%{transform: translateY(0); } } .hero-card{ background: linear-gradient(180deg, rgba(15,23,42,.78), rgba(15,23,42,.58)); border:1px solid var(--border); border-radius: var(--r20); box-shadow: var(--shadow2); padding:28px; position:relative; overflow:hidden; animation: breathe 6s ease-in-out infinite; } .hero-card:before{ content:; position:absolute; inset:-30%; background: radial-gradient(520px 260px at 28% 22%, rgba(41,98,255,.30), transparent 60%), radial-gradient(420px 240px at 75% 55%, rgba(0,200,83,.12), transparent 55%); filter: blur(8px); animation: floatGlow 10s ease-in-out infinite; pointer-events:none; } .hero-card:after{ content:; position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.05), transparent 35%); pointer-events:none; } .hero-card > *{position:relative; z-index:1;} .kicker{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--muted); font-weight:800; font-size:.85rem; } .title{ margin-top:14px; font-size:2.55rem; line-height:1.08; font-weight:900; letter-spacing:-1px; } .title .accent{ background: linear-gradient(90deg, #ffffff, #bcd3ff 55%, #7fb1ff); -webkit-background-clip:text; background-clip:text; color:transparent; } .subtitle{ margin-top:12px; color: var(--muted); font-size:1.05rem; max-width: 56ch; } .hero-actions{ margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; } /* Right widget */ .widget{ background: linear-gradient(180deg, rgba(17,27,51,.70), rgba(15,23,42,.55)); border:1px solid var(--border); border-radius: var(--r20); box-shadow: var(--shadow2); padding:18px; display:flex; flex-direction:column; gap:12px; overflow:hidden; position:relative; transition:.2s ease; } .widget:hover{ border-color: var(--border2); box-shadow: var(--shadow); transform: translateY(-1px); } .widget:before{ content:; position:absolute; inset:-35%; background: radial-gradient(520px 240px at 22% 20%, rgba(41,98,255,.18), transparent 60%), radial-gradient(520px 260px at 78% 70%, rgba(148,163,184,.08), transparent 55%); filter: blur(10px); animation: floatGlow 12s ease-in-out infinite; pointer-events:none; } .widget > *{position:relative; z-index:1;} .widget-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; } .widget-title{font-weight:900; letter-spacing:-.4px; font-size:1.05rem;} .pill-mini{ font-size:.78rem; color: var(--muted); border:1px solid var(--border); background: rgba(148,163,184,.06); border-radius:999px; padding:6px 10px; font-weight:900; display:inline-flex; align-items:center; gap:8px; } /* TIMEFRAME SWITCH */ .tf{ display:flex; gap:6px; border:1px solid var(--border); background: rgba(148,163,184,.06); border-radius: 999px; padding:4px; height: fit-content; } .tf button{ border:0; cursor:pointer; font-weight:900; color: var(--muted); background: transparent; padding:7px 10px; border-radius: 999px; transition: .18s ease; font-size:.82rem; } .tf button:hover{color:var(--text);} .tf button.active{ color: var(--text); background: rgba(41,98,255,.18); box-shadow: 0 8px 22px rgba(41,98,255,.12); } /* SLIDER */ .tv-wrap{position:relative;} .tv-slider{ position:relative; height:210px; border-radius:16px; overflow:hidden; border:1px solid var(--border); background: rgba(148,163,184,.04); touch-action: pan-y; } .tv-slide{ position:absolute; inset:0; opacity:0; pointer-events:none; transform: translateY(6px) scale(.996); filter: blur(7px); transition: opacity .55s ease, transform .55s ease, filter .55s ease; } .tv-slide.active{ opacity:1; pointer-events:auto; transform: translateY(0) scale(1); filter: blur(0); } .tv-slide-label{ position:absolute; top:10px; left:10px; z-index:3; font-size:.82rem; font-weight:900; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background: rgba(11,18,32,.65); backdrop-filter: blur(10px); color: var(--text); } .tv-slide .tradingview-widget-container{height:100%;} .tv-slide .tradingview-widget-container__widget{height:100%;} .tradingview-widget-copyright{display:none;} .tv-arrow{ position:absolute; top:50%; transform: translateY(-50%); width:42px; height:42px; border-radius:14px; border:1px solid var(--border); background: rgba(11,18,32,.55); backdrop-filter: blur(10px); color: rgba(229,231,235,.85); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.18s ease; z-index:4; padding:0; } .tv-arrow:hover{ border-color: var(--border2); color: var(--text); transform: translateY(-50%) scale(1.03); } .tv-arrow:active{transform: translateY(-50%) scale(.99);} .tv-arrow.prev{left:10px;} .tv-arrow.next{right:10px;} .tv-dots{ display:flex; gap:6px; justify-content:center; margin-top:8px; } .tv-dot{ width:7px; height:7px; border-radius:999px; background: rgba(148,163,184,.28); border:1px solid rgba(148,163,184,.20); cursor:pointer; transition:.18s ease; } .tv-dot:hover{transform: scale(1.18); background: rgba(148,163,184,.40);} .tv-dot.active{ background: rgba(41,98,255,.85); border-color: rgba(41,98,255,.45); } .stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; } .stat{ padding:12px; border-radius:16px; border:1px solid var(--border); background: rgba(148,163,184,.06); } .stat .k{color:var(--muted); font-size:.82rem; font-weight:800} .stat .v{margin-top:4px; font-size:1.1rem; font-weight:900} /* SECTIONS */ .section{padding:44px 0;} .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; } .section-title{ font-size:1.55rem; font-weight:900; letter-spacing:-.6px; } .section-desc{ color:var(--muted); max-width:70ch; font-weight:700; font-size:.95rem; } .grid{ display:grid; grid-template-columns: repeat(12, 1fr); gap:14px; } .card{ grid-column: span 4; background: rgba(15,23,42,.72); border:1px solid var(--border); border-radius: var(--r16); padding:18px; box-shadow: var(--shadow2); transition:.2s ease; min-height: 150px; opacity:0; transform: translateY(12px); } .card.visible{opacity:1; transform: translateY(0);} .card:hover{ transform: translateY(-2px); border-color: var(--border2); box-shadow: var(--shadow); } .card-icon{ width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); background: rgba(41,98,255,.12); margin-bottom:12px; font-size:18px; } .card h3{ font-size:1.05rem; font-weight:900; letter-spacing:-.3px; margin-bottom:8px; } .card p{color:var(--muted); font-weight:700; font-size:.95rem} /* FAQ */ .faq{ display:grid; grid-template-columns: repeat(12, 1fr); gap:14px; } .faq-item{ grid-column: span 6; background: rgba(15,23,42,.65); border:1px solid var(--border); border-radius: var(--r16); padding:16px 18px; transition:.2s ease; opacity:0; transform: translateY(12px); } .faq-item.visible{opacity:1; transform: translateY(0);} .faq-item:hover{border-color:var(--border2); box-shadow: var(--shadow2);} .faq-item h3{ font-size:1rem; font-weight:900; margin-bottom:8px; letter-spacing:-.2px; } .faq-item p{color:var(--muted); font-weight:700; font-size:.95rem} /* TOAST */ .toast-container { position:fixed; top:18px; right:18px; z-index:10000; display:flex; flex-direction:column; gap:10px; } .toast{ padding:12px 14px; border-radius:14px; background: rgba(15,23,42,.92); border:1px solid var(--border); box-shadow: var(--shadow2); color: var(--text); font-weight:900; min-width:280px; animation: slideIn .25s ease; display:flex; align-items:flex-start; gap:10px; } .toast.success { border-left:4px solid var(--green); } .toast.error { border-left:4px solid var(--red); } @keyframes slideIn{from{transform:translateX(14px); opacity:0}to{transform:translateX(0); opacity:1}} /* MODAL */ .modal{ display:none; position:fixed; inset:0; background: rgba(3,6,14,.70); backdrop-filter: blur(10px); justify-content:center; align-items:center; z-index:1000; opacity:0; transition:opacity .2s ease; padding: 18px; } .modal.open{display:flex !important; opacity:1 !important;} .modal-content{ width: 100%; max-width: 440px; border-radius: 22px; border:1px solid var(--border); background: rgba(15,23,42,.92); box-shadow: var(--shadow); padding: 16px; position:relative; max-height: min(92vh, 720px); overflow:auto; overscroll-behavior: contain; } .modal-content::-webkit-scrollbar{width:10px;} .modal-content::-webkit-scrollbar-track{background: rgba(148,163,184,.04); border-radius: 999px;} .modal-content::-webkit-scrollbar-thumb{background: rgba(148,163,184,.22); border-radius: 999px; border:2px solid rgba(15,23,42,.92);} .modal-content::-webkit-scrollbar-thumb:hover{background: rgba(148,163,184,.30);} .close{ position:absolute; top:12px; right:12px; width:40px; height:40px; border-radius:14px; border:1px solid var(--border); background: rgba(148,163,184,.06); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.2s ease; color: rgba(229,231,235,.75); z-index:5; padding:0; } .close:hover{ color: var(--text); border-color: var(--border2); transform: translateY(-1px); } .close:active{ transform: translateY(0); } .tabs{ display:flex; gap:8px; padding:6px; border-radius:16px; border:1px solid var(--border); background: rgba(148,163,184,.06); margin: 10px 0 12px; } .tab{ flex:1; padding:12px 12px; border-radius:14px; border:1px solid transparent; background: transparent; color: var(--muted); font-weight:900; cursor:pointer; transition:.2s ease; } .tab.active{ background: rgba(41,98,255,.18); color: var(--text); border-color: rgba(41,98,255,.35); box-shadow: 0 18px 40px rgba(41,98,255,.12); } .modal-title{ text-align:center; margin:10px 0 14px; font-weight:900; font-size:1.55rem; letter-spacing:-.7px; background: linear-gradient(90deg, #ffffff, #bcd3ff 55%, #7fb1ff); -webkit-background-clip:text; background-clip:text; color:transparent; } input, button.modal-btn{ width:100%; padding:12px 12px; margin:8px 0; border-radius: 14px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--text); font-size: 1rem; font-weight:900; outline:none; transition:.2s ease; } input:focus{ border-color: rgba(41,98,255,.45); box-shadow:0 0 0 4px rgba(41,98,255,.14); } button.modal-btn{ border-color: rgba(41,98,255,.40); background: linear-gradient(180deg, rgba(41,98,255,.95), rgba(31,79,230,.95)); cursor:pointer; font-weight:900; margin-top:10px; padding:14px 12px; border-radius: 16px; } button.modal-btn:hover{transform: translateY(-1px);} button.modal-btn:active{transform: translateY(0);} .account-note{ display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:14px; border:1px dashed rgba(255, 184, 107, .35); background: rgba(255, 184, 107, .08); color:#ffcc8a; font-weight:900; font-size:.86rem; margin-top:-4px; margin-bottom:6px; } .account-note .lock{ width:22px; height:22px; border-radius:10px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255, 184, 107, .25); background: rgba(255, 184, 107, .10); } footer{ border-top:1px solid rgba(148,163,184,.12); margin-top: 18px; padding: 22px 0; text-align:center; color: var(--muted); font-weight:700; font-size:.92rem; } @media (max-width: 980px){ .hero-grid{grid-template-columns:1fr;} .card{grid-column: span 6;} } @media (max-width: 640px){ .nav-links{display:none;} .title{font-size:2.05rem;} .card{grid-column: span 12;} .faq-item{grid-column: span 12;} .widget-head{flex-wrap:wrap} } /style>/head>body>!-- VIDEO -->video idbgVideo classbg-video autoplay muted loop playsinline webkit-playsinline preloadauto> source srcassets/hero.mov typevideo/mp4>/video>div classbg-video-overlay aria-hiddentrue>/div>div idstars aria-hiddentrue>/div>div classshooting-star styleleft:12%; top:16%; animation-delay:0.6s;>/div>div classshooting-star styleleft:42%; top:8%; animation-delay:2.2s;>/div>div classshooting-star styleleft:74%; top:18%; animation-delay:4.1s;>/div>div classtoast-container idtoast-container>/div>!-- NAV -->div classnav> div classcontainer> div classnav-inner> a classbrand href#> span classbrand-badge>/span> span classbrand-name>Astrum/span> /a> div classnav-links> a href#start>Старт/a> a href#features>Преимущества/a> a href#faq>FAQ/a> /div> div classnav-actions> a href# idopen-btn classbtn btn-primary>Войти/a> button classbtn idperfToggle typebutton titleРежим производительности>⚡ Экономия/button> /div> /div> /div>/div>!-- HERO -->section classhero idstart> div classcontainer> div classhero-grid> div classhero-card> div classkicker>⚡ AI-Trading • Автоматизация • Контроль/div> div classtitle>span classaccent>Интеллектуальная/span> торговая система/div> div classsubtitle> Минималистичный интерфейс в стиле Trading UI, быстрый старт и понятная логика. Регистрация за минуту — запуск в один клик. /div> div classhero-actions> a href# idopen-btn-2 classbtn btn-primary>Создать аккаунт / Войти/a> a href#features classbtn>Преимущества/a> /div> /div> div classwidget aria-labelСводка> div classwidget-head> div> div classwidget-title>Сводка/div> div stylemargin-top:6px; display:flex; gap:8px; align-items:center;> div classpill-mini idcurrent-symbol-pill>BTCUSD/div> div classpill-mini idcurrent-range-pill>1D/div> /div> /div> div classtf idtf> button typebutton classactive data-range1D>1D/button> button typebutton data-range5D>1W/button> button typebutton data-range1M>1M/button> button typebutton data-range6M>6M/button> /div> /div> div classtv-wrap> div classtv-slider idtv-slider aria-labelСлайдер графиков>/div> button classtv-arrow prev idtv-prev typebutton aria-labelПредыдущий график> svg width20 height20 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM15 18L9 12L15 6 strokecurrentColor stroke-width2.6 stroke-linecapround stroke-linejoinround/> /svg> /button> button classtv-arrow next idtv-next typebutton aria-labelСледующий график> svg width20 height20 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM9 18L15 12L9 6 strokecurrentColor stroke-width2.6 stroke-linecapround stroke-linejoinround/> /svg> /button> /div> div classtv-dots idtv-dots aria-hiddentrue>/div> div classstats> div classstat> div classk>Подключение/div> div classv>API • Auto/div> /div> div classstat> div classk>Риски/div> div classv>Контроль/div> /div> /div> /div> /div> /div>/section>!-- FEATURES -->section classsection idfeatures> div classcontainer> div classsection-head> div> div classsection-title>Преимущества Astrum/div> div classsection-desc>Автоматизация лицензии, адаптивная логика и быстрый старт — в аккуратном интерфейсе./div> /div> /div> div classgrid> div classcard> div classcard-icon>🔑/div> h3>Авто-синхронизация/h3> p>Лицензия активируется через API — без ручных ключей и лишних действий./p> /div> div classcard> div classcard-icon>🧠/div> h3>Адаптивный ИИ/h3> p>Система анализирует рынок и подстраивает поведение под текущие условия./p> /div> div classcard> div classcard-icon>🚀/div> h3>Простота и скорость/h3> p>Установка и запуск — быстро. Поддержка 24/7./p> /div> /div> /div>/section>!-- FAQ -->section classsection idfaq> div classcontainer> div classsection-head> div> div classsection-title>FAQ/div> div classsection-desc>Короткие ответы на частые вопросы./div> /div> /div> div classfaq> div classfaq-item> h3>Как начать?/h3> p>Зарегистрируйтесь, активируйте тариф и запустите робота./p> /div> div classfaq-item> h3>Где Telegram ID?/h3> p>Telegram привязывается в кабинете через кнопку “Привязать”./p> /div> div classfaq-item> h3>Какие рынки?/h3> p>Крипто/форекс/CFD — в зависимости от брокера./p> /div> div classfaq-item> h3>Безопасность?/h3> p>Лицензия проверяется по аккаунту и серверу, всё автоматизировано./p> /div> /div> /div>/section>div idmodal classmodal roledialog aria-modaltrue aria-labelВход и регистрация> div classmodal-content> button classclose idclose-btn typebutton aria-labelЗакрыть> svg width18 height18 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM18 6L6 18 strokecurrentColor stroke-width2.6 stroke-linecapround/> path dM6 6L18 18 strokecurrentColor stroke-width2.6 stroke-linecapround/> /svg> /button> div classtabs> button classtab active idtab-login onclickshowLogin();return false;>Вход/button> button classtab idtab-register onclickshowRegister();return false;>Регистрация/button> /div> div idlogin-form> h2 classmodal-title>Вход/h2> input typetext idlogin placeholderЛогин или email autocompleteusername> input typepassword idpass placeholderПароль autocompletecurrent-password> button classmodal-btn onclicklogin()>Войти/button> !-- ✅ Забыли пароль --> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> a hrefindex.php?forgot1 stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Забыли пароль? /a> /p> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> Нет аккаунта? a href# onclickshowRegister();return false; stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Зарегистрироваться /a> /p> /div> div idregister-form styledisplay:none;> h2 classmodal-title>Регистрация/h2> input typetext idreg-login placeholderЛогин autocompleteusername> input typeemail idreg-email placeholderEmail autocompleteemail> input typetext idreg-account placeholderНомер счёта (только цифры) inputmodenumeric> div classaccount-note> span classlock>🔒/span> Номер счёта фиксируется после регистрации /div> input typepassword idreg-pass placeholderПароль (мин. 6 символов) autocompletenew-password> button classmodal-btn onclickregister()>Создать аккаунт/button> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> Уже есть аккаунт? a href# onclickshowLogin();return false; stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Войти /a> /p> /div> /div>/div>footer> © 2026 Astrum. Все права защищены./footer>script> // STARS + REVEAL document.addEventListener(DOMContentLoaded, () > { const stars document.getElementById(stars); if (stars) { const isMobile window.matchMedia((max-width: 768px)).matches; const reduceMotion window.matchMedia((prefers-reduced-motion: reduce)).matches; const count (reduceMotion ? 0 : (isMobile ? 80 : 220)); const frag document.createDocumentFragment(); for (let i 0; i count; i++) { const s document.createElement(div); s.className star; const size Math.random() * (isMobile ? 1.8 : 2.2) + 0.6; s.style.width size + px; s.style.height size + px; s.style.left (Math.random() * 100) + %; s.style.top (Math.random() * 100) + %; s.style.opacity (Math.random() * 0.55 + 0.18).toFixed(2); if (!isMobile) { s.style.animationDelay (Math.random() * 6) + s; s.style.animationDuration (Math.random() * 4 + 3) + s; } else { s.style.animation none; } frag.appendChild(s); } stars.appendChild(frag); } const observer new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting) entry.target.classList.add(visible); }); }, { threshold: 0.12 }); document.querySelectorAll(.card, .faq-item).forEach(el > observer.observe(el)); }); // TOASTS function showToast(message, type success) { const container document.getElementById(toast-container); const toast document.createElement(div); toast.className `toast ${type success ? success : error}`; toast.innerHTML `div>${type success ? ✅ : ❌}/div>div>${message}/div>`; container.appendChild(toast); setTimeout(() > toast.remove(), 4000); } // API async function api(action, data {}) { const fd new FormData(); fd.append(action, action); Object.entries(data).forEach((k, v) > fd.append(k, v)); const res await fetch(, { method: POST, body: fd }); const json await res.json(); if (!res.ok) throw new Error(json.error || Ошибка); return json; } async function logout(){ try{ await api(logout); location.reload(); }catch(e){ showToast(e.message, error); } } // MARKET SLIDER (function initMarketSlider(){ const slider document.getElementById(tv-slider); const dotsWrap document.getElementById(tv-dots); const tfWrap document.getElementById(tf); const prevBtn document.getElementById(tv-prev); const nextBtn document.getElementById(tv-next); if (!slider || !dotsWrap || !tfWrap) return; const pillSymbol document.getElementById(current-symbol-pill); const pillRange document.getElementById(current-range-pill); const items { label: BTCUSD, symbol: BITSTAMP:BTCUSD }, { label: ETHUSD, symbol: BITSTAMP:ETHUSD }, { label: SOLUSDT, symbol: BINANCE:SOLUSDT }, { label: GOLD (XAUUSD), symbol: OANDA:XAUUSD }, { label: USDRUB, symbol: FX_IDC:USDRUB }, { label: EURUSD, symbol: FX:EURUSD } ; let range 1D; let idx 0; let timer null; let touchX null; function tvConfig(symbol, dateRange){ return { symbol, width: 100%, height: 100%, locale: ru, dateRange, colorTheme: dark, isTransparent: true, autosize: true, noTimeScale: true }; } function ensureWidget(i){ const slides Array.from(slider.querySelectorAll(.tv-slide)); const slide slidesi; if (!slide) return; const key itemsi.symbol + | + range; if (slide.dataset.loaded 1 && slide.dataset.loadedKey key) return; // Clear previous widget content const container slide.querySelector(.tradingview-widget-container); if (!container) return; const widgetHost container.querySelector(.tradingview-widget-container__widget); if (widgetHost) widgetHost.innerHTML ; // Remove old scripts inside container Array.from(container.querySelectorAll(script)).forEach(s > s.remove()); const script document.createElement(script); script.type text/javascript; script.src https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js; script.async true; script.text JSON.stringify(tvConfig(itemsi.symbol, range)); container.appendChild(script); slide.dataset.loaded 1; slide.dataset.loadedKey key; // Hide skeleton a bit later (widget renders async) const sk container.querySelector(.tv-skeleton); if (sk) setTimeout(() > { sk.style.displaynone; }, 900); }function buildSlides(){ slider.innerHTML ; dotsWrap.innerHTML items.map(() > `span classtv-dot>/span>`).join(); const dots Array.from(dotsWrap.querySelectorAll(.tv-dot)); items.forEach((it, i) > { const slide document.createElement(div); slide.className tv-slide + (i idx ? active : ); slide.dataset.loaded 0; slide.dataset.loadedKey ; slide.innerHTML ` div classtv-slide-label>${it.label}/div> div classtradingview-widget-container> div classtradingview-widget-container__widget styleheight:100%;>/div> div classtv-skeleton styleposition:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(154,164,178,.9);font-weight:900;>Загрузка графика…/div> /div> `; slider.appendChild(slide); }); dots.forEach((d, i) > { d.classList.toggle(active, i idx); d.addEventListener(click, () > { show(i); start(); }); }); if (pillSymbol) pillSymbol.textContent itemsidx.label; if (pillRange) pillRange.textContent range; // Load only active (and prefetch next) to reduce main-thread load on mobile ensureWidget(idx); if (window.innerWidth > 769) ensureWidget((idx + 1) % items.length); } function show(i){ const slides Array.from(slider.querySelectorAll(.tv-slide)); const dots Array.from(dotsWrap.querySelectorAll(.tv-dot)); if (!slides.length) return; slidesidx.classList.remove(active); dotsidx?.classList.remove(active); idx (i + slides.length) % slides.length; slidesidx.classList.add(active); dotsidx?.classList.add(active); if (pillSymbol) pillSymbol.textContent itemsidx.label; if (pillRange) pillRange.textContent range; // Lazy-load active widget, and prefetch next on desktop ensureWidget(idx); if (window.innerWidth > 769) ensureWidget((idx + 1) % slides.length); } function next(){ show(idx + 1); } function prev(){ show(idx - 1); } function start(){ stop(); timer setInterval(next, 5000); } function stop(){ if (timer) clearInterval(timer); timer null; } slider.addEventListener(mouseenter, stop); slider.addEventListener(mouseleave, start); if (prevBtn) prevBtn.addEventListener(click, () > { prev(); start(); }); if (nextBtn) nextBtn.addEventListener(click, () > { next(); start(); }); slider.addEventListener(touchstart, (e) > { touchX e.touches?.0?.clientX ?? null; }, { passive:true }); slider.addEventListener(touchend, (e) > { if (touchX null) return; const endX e.changedTouches?.0?.clientX ?? null; if (endX null) return; const dx endX - touchX; touchX null; if (Math.abs(dx) 45) return; if (dx > 0) prev(); else next(); start(); }); tfWrap.querySelectorAll(buttondata-range).forEach(btn > { btn.addEventListener(click, () > { const newRange btn.getAttribute(data-range); if (!newRange || newRange range) return; tfWrap.querySelectorAll(button).forEach(b > b.classList.remove(active)); btn.classList.add(active); range newRange; buildSlides(); // ensure active loads with new range ensureWidget(idx); start();}); }); buildSlides(); start(); })(); // MODAL function showLogin() { document.getElementById(login-form).style.display block; document.getElementById(register-form).style.display none; document.getElementById(tab-login).classList.add(active); document.getElementById(tab-register).classList.remove(active); setTimeout(() > document.getElementById(login)?.focus(), 50); } function showRegister() { document.getElementById(login-form).style.display none; document.getElementById(register-form).style.display block; document.getElementById(tab-register).classList.add(active); document.getElementById(tab-login).classList.remove(active); setTimeout(() > document.getElementById(reg-login)?.focus(), 50); } function openModal(defaultToRegister false){ const modal document.getElementById(modal); if (!modal) return; modal.classList.add(open); document.body.style.overflow hidden; defaultToRegister ? showRegister() : showLogin(); } function closeModal(){ const modal document.getElementById(modal); if (!modal) return; modal.classList.remove(open); document.body.style.overflow ; } const openBtn document.getElementById(open-btn); if (openBtn) openBtn.onclick (e) > { e.preventDefault(); openModal(false); }; const openBtn2 document.getElementById(open-btn-2); if (openBtn2) openBtn2.onclick (e) > { e.preventDefault(); openModal(true); }; const closeBtn document.getElementById(close-btn); if (closeBtn) closeBtn.onclick () > closeModal(); window.addEventListener(click, (e) > { if (e.target && e.target.id modal) closeModal(); }); window.addEventListener(keydown, (e) > { if (e.key Escape) closeModal(); }); async function register() { try { const d await api(register, { login: document.getElementById(reg-login).value.trim(), email: document.getElementById(reg-email).value.trim(), account_number: document.getElementById(reg-account).value.trim(), password: document.getElementById(reg-pass).value }); showToast(Аккаунт создан! Проверьте почту для подтверждения., success); setTimeout(() > { window.location.href d.redirect || cabinet.php; }, 700); } catch (e) { showToast(e.message || Ошибка, error); } } async function login() { try { const d await api(login, { login: document.getElementById(login).value.trim(), password: document.getElementById(pass).value }); showToast(Вход выполнен! Перенаправляю…, success); setTimeout(() > { window.location.href d.redirect || cabinet.php; }, 450); } catch (e) { showToast(e.message || Ошибка входа, error); } }/script>!-- ✅ VIDEO PLAY SAFE (no aggressive polling) -->script>(function(){ const v document.getElementById(bgVideo); if (!v) return; function isFastMode(){ try { return document.body.classList.contains(fast-mode) || localStorage.getItem(astrum_fast) 1; } catch(e){ return false; } } const playSafe () > { if (isFastMode()) return; v.play().catch(()>{}); }; v.muted true; v.loop true; v.playsInline true; // play when possible v.addEventListener(canplay, playSafe, { once:true }); // resume after tab visibility document.addEventListener(visibilitychange, () > { if (!document.hidden) playSafe(); }); // allow user gesture to enable playback window.addEventListener(pointerdown, playSafe, { once:true }); // if ended unexpectedly v.addEventListener(ended, () > { v.currentTime 0; playSafe(); });})();/script>/body>/html>
Port 443
HTTP/1.1 200 OKServer: nginx/1.26.3Date: Thu, 19 Feb 2026 19:58:19 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveX-Powered-By: PHP/8.2.30Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidatePragma: no-cacheSet-Cookie: PHPSESSIDejfrvql3etj8cnuoaak3vteaiq; path/ !DOCTYPE html>html langru>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1> title>Astrum — Интеллектуальный торговый робот/title> link hrefhttps://fonts.googleapis.com/css2?familySpline+Sans:wght@300;400;500;600;700;800;900&displayswap relstylesheet> style> :root{ --bg:#0b1220; --bg2:#070c17; --border: rgba(148,163,184,.14); --border2: rgba(148,163,184,.22); --text:#e5e7eb; --muted:#9aa4b2; --blue:#2962ff; --blue2:#1f4fe6; --green:#00c853; --red:#ef5350; --shadow: 0 18px 60px rgba(0,0,0,.50); --shadow2: 0 10px 30px rgba(0,0,0,.35); --r16:16px; --r20:20px; } *{margin:0; padding:0; box-sizing:border-box;} html,body{height:100%} body{ font-family:Spline Sans, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; color:var(--text); background: radial-gradient(1200px 700px at 18% 10%, rgba(41,98,255,.18), transparent 55%), radial-gradient(900px 600px at 82% 18%, rgba(0,200,83,.10), transparent 55%), radial-gradient(900px 700px at 50% 90%, rgba(148,163,184,.08), transparent 55%), linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%); line-height:1.55; overflow-x:hidden; } body:before{ content:; position:fixed; inset:0; pointer-events:none; background-image:url(data:image/svg+xml,%3Csvg xmlnshttp://www.w3.org/2000/svg width160 height160%3E%3Cfilter idn%3E%3CfeTurbulence typefractalNoise baseFrequency.8 numOctaves3 stitchTilesstitch/%3E%3C/filter%3E%3Crect width160 height160 filterurl(%23n) opacity.18/%3E%3C/svg%3E); opacity:.07; mix-blend-mode:overlay; z-index:-1; } /* VIDEO BACKGROUND */ .bg-video{ position:fixed; inset:0; z-index:-6; width:100%; height:100%; object-fit:cover; object-position:center 0%; opacity:.28; filter: saturate(1.05) contrast(1.05) brightness(.85); pointer-events:none; background: #0b1220; } .bg-video-overlay{ position:fixed; inset:0; z-index:-5; pointer-events:none; background: radial-gradient(900px 520px at 20% 15%, rgba(41,98,255,.22), transparent 60%), radial-gradient(900px 520px at 80% 20%, rgba(0,200,83,.12), transparent 60%), linear-gradient(180deg, rgba(11,18,32,.78) 0%, rgba(7,12,23,.92) 85%); } /* STARS BACKGROUND */ #stars{ position:fixed; inset:0; z-index:-4; pointer-events:none; } .star{ position:absolute; background:#fff; border-radius:50%; opacity:.7; animation:twinkle 5s infinite alternate; filter: drop-shadow(0 0 6px rgba(255,255,255,.25)); } @keyframes twinkle{ 0%{opacity:.20; transform: scale(.92)} 100%{opacity:.82; transform: scale(1.18)} } .shooting-star{ position:fixed; z-index:-3; width:2px; height:2px; border-radius:50%; background:#fff; box-shadow: 0 0 14px rgba(255,255,255,.9); opacity:0; pointer-events:none; animation:shoot 7s linear infinite; } .shooting-star:after{ content:; position:absolute; top:50%; left:50%; width:180px; height:2px; transform: translate(-2px,-50%) rotate(0deg); transform-origin:left center; background: linear-gradient(90deg, rgba(255,255,255,.85), rgba(255,255,255,0)); } @keyframes shoot{ 0%{ transform: translate(0,0) rotate(45deg); opacity:0; } 8%{ opacity:1; } 100%{ transform: translate(560px,560px) rotate(45deg); opacity:0; } } a{color:inherit} .container{max-width:1200px; margin:0 auto; padding:0 20px;} /* NAV */ .nav{ position:sticky; top:0; z-index:50; backdrop-filter: blur(14px); background: rgba(11,18,32,.72); border-bottom:1px solid var(--border); } .nav-inner{ height:64px; display:flex; align-items:center; justify-content:space-between; gap:14px; } .brand{ display:flex; align-items:center; gap:10px; text-decoration:none; font-weight:900; letter-spacing:-.4px; white-space:nowrap; } .brand-badge{ width:28px; height:28px; border-radius:8px; background: linear-gradient(135deg, var(--blue), #57b5ff); box-shadow: 0 10px 30px rgba(41,98,255,.30); flex:0 0 auto; } .brand-name{font-size:1.05rem;} .nav-links{ display:flex; align-items:center; gap:18px; color:var(--muted); font-weight:700; font-size:.95rem; } .nav-links a{ text-decoration:none; padding:8px 10px; border-radius:10px; transition: .2s ease; } .nav-links a:hover{ background: rgba(148,163,184,.08); color:var(--text); } .nav-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap;} /* BUTTONS */ .btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 14px; border-radius:12px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--text); text-decoration:none; cursor:pointer; font-weight:900; transition:.2s ease; user-select:none; white-space:nowrap; } .btn:hover{transform: translateY(-1px); border-color:var(--border2); background: rgba(148,163,184,.10);} .btn:active{transform: translateY(0px) scale(.99);} .btn-primary{ border-color: rgba(41,98,255,.40); background: linear-gradient(180deg, rgba(41,98,255,.95), rgba(31,79,230,.95)); box-shadow: 0 18px 40px rgba(41,98,255,.22); } .btn-primary:hover{ background: linear-gradient(180deg, rgba(41,98,255,1), rgba(31,79,230,1)); box-shadow: 0 22px 55px rgba(41,98,255,.28); } /* HERO */ .hero{ min-height: calc(100vh - 64px); display:flex; align-items:center; padding: 28px 0 40px; } .hero-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:24px; align-items:stretch; } @keyframes floatGlow { 0%{transform: translate(-2%, -2%) scale(1); opacity:.55;} 50%{transform: translate(3%, 2%) scale(1.06); opacity:.72;} 100%{transform: translate(-2%, -2%) scale(1); opacity:.55;} } @keyframes breathe { 0%{transform: translateY(0); } 50%{transform: translateY(-2px); } 100%{transform: translateY(0); } } .hero-card{ background: linear-gradient(180deg, rgba(15,23,42,.78), rgba(15,23,42,.58)); border:1px solid var(--border); border-radius: var(--r20); box-shadow: var(--shadow2); padding:28px; position:relative; overflow:hidden; animation: breathe 6s ease-in-out infinite; } .hero-card:before{ content:; position:absolute; inset:-30%; background: radial-gradient(520px 260px at 28% 22%, rgba(41,98,255,.30), transparent 60%), radial-gradient(420px 240px at 75% 55%, rgba(0,200,83,.12), transparent 55%); filter: blur(8px); animation: floatGlow 10s ease-in-out infinite; pointer-events:none; } .hero-card:after{ content:; position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.05), transparent 35%); pointer-events:none; } .hero-card > *{position:relative; z-index:1;} .kicker{ display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--muted); font-weight:800; font-size:.85rem; } .title{ margin-top:14px; font-size:2.55rem; line-height:1.08; font-weight:900; letter-spacing:-1px; } .title .accent{ background: linear-gradient(90deg, #ffffff, #bcd3ff 55%, #7fb1ff); -webkit-background-clip:text; background-clip:text; color:transparent; } .subtitle{ margin-top:12px; color: var(--muted); font-size:1.05rem; max-width: 56ch; } .hero-actions{ margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; } /* Right widget */ .widget{ background: linear-gradient(180deg, rgba(17,27,51,.70), rgba(15,23,42,.55)); border:1px solid var(--border); border-radius: var(--r20); box-shadow: var(--shadow2); padding:18px; display:flex; flex-direction:column; gap:12px; overflow:hidden; position:relative; transition:.2s ease; } .widget:hover{ border-color: var(--border2); box-shadow: var(--shadow); transform: translateY(-1px); } .widget:before{ content:; position:absolute; inset:-35%; background: radial-gradient(520px 240px at 22% 20%, rgba(41,98,255,.18), transparent 60%), radial-gradient(520px 260px at 78% 70%, rgba(148,163,184,.08), transparent 55%); filter: blur(10px); animation: floatGlow 12s ease-in-out infinite; pointer-events:none; } .widget > *{position:relative; z-index:1;} .widget-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; } .widget-title{font-weight:900; letter-spacing:-.4px; font-size:1.05rem;} .pill-mini{ font-size:.78rem; color: var(--muted); border:1px solid var(--border); background: rgba(148,163,184,.06); border-radius:999px; padding:6px 10px; font-weight:900; display:inline-flex; align-items:center; gap:8px; } /* TIMEFRAME SWITCH */ .tf{ display:flex; gap:6px; border:1px solid var(--border); background: rgba(148,163,184,.06); border-radius: 999px; padding:4px; height: fit-content; } .tf button{ border:0; cursor:pointer; font-weight:900; color: var(--muted); background: transparent; padding:7px 10px; border-radius: 999px; transition: .18s ease; font-size:.82rem; } .tf button:hover{color:var(--text);} .tf button.active{ color: var(--text); background: rgba(41,98,255,.18); box-shadow: 0 8px 22px rgba(41,98,255,.12); } /* SLIDER */ .tv-wrap{position:relative;} .tv-slider{ position:relative; height:210px; border-radius:16px; overflow:hidden; border:1px solid var(--border); background: rgba(148,163,184,.04); touch-action: pan-y; } .tv-slide{ position:absolute; inset:0; opacity:0; pointer-events:none; transform: translateY(6px) scale(.996); filter: blur(7px); transition: opacity .55s ease, transform .55s ease, filter .55s ease; } .tv-slide.active{ opacity:1; pointer-events:auto; transform: translateY(0) scale(1); filter: blur(0); } .tv-slide-label{ position:absolute; top:10px; left:10px; z-index:3; font-size:.82rem; font-weight:900; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background: rgba(11,18,32,.65); backdrop-filter: blur(10px); color: var(--text); } .tv-slide .tradingview-widget-container{height:100%;} .tv-slide .tradingview-widget-container__widget{height:100%;} .tradingview-widget-copyright{display:none;} .tv-arrow{ position:absolute; top:50%; transform: translateY(-50%); width:42px; height:42px; border-radius:14px; border:1px solid var(--border); background: rgba(11,18,32,.55); backdrop-filter: blur(10px); color: rgba(229,231,235,.85); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.18s ease; z-index:4; padding:0; } .tv-arrow:hover{ border-color: var(--border2); color: var(--text); transform: translateY(-50%) scale(1.03); } .tv-arrow:active{transform: translateY(-50%) scale(.99);} .tv-arrow.prev{left:10px;} .tv-arrow.next{right:10px;} .tv-dots{ display:flex; gap:6px; justify-content:center; margin-top:8px; } .tv-dot{ width:7px; height:7px; border-radius:999px; background: rgba(148,163,184,.28); border:1px solid rgba(148,163,184,.20); cursor:pointer; transition:.18s ease; } .tv-dot:hover{transform: scale(1.18); background: rgba(148,163,184,.40);} .tv-dot.active{ background: rgba(41,98,255,.85); border-color: rgba(41,98,255,.45); } .stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; } .stat{ padding:12px; border-radius:16px; border:1px solid var(--border); background: rgba(148,163,184,.06); } .stat .k{color:var(--muted); font-size:.82rem; font-weight:800} .stat .v{margin-top:4px; font-size:1.1rem; font-weight:900} /* SECTIONS */ .section{padding:44px 0;} .section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; } .section-title{ font-size:1.55rem; font-weight:900; letter-spacing:-.6px; } .section-desc{ color:var(--muted); max-width:70ch; font-weight:700; font-size:.95rem; } .grid{ display:grid; grid-template-columns: repeat(12, 1fr); gap:14px; } .card{ grid-column: span 4; background: rgba(15,23,42,.72); border:1px solid var(--border); border-radius: var(--r16); padding:18px; box-shadow: var(--shadow2); transition:.2s ease; min-height: 150px; opacity:0; transform: translateY(12px); } .card.visible{opacity:1; transform: translateY(0);} .card:hover{ transform: translateY(-2px); border-color: var(--border2); box-shadow: var(--shadow); } .card-icon{ width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); background: rgba(41,98,255,.12); margin-bottom:12px; font-size:18px; } .card h3{ font-size:1.05rem; font-weight:900; letter-spacing:-.3px; margin-bottom:8px; } .card p{color:var(--muted); font-weight:700; font-size:.95rem} /* FAQ */ .faq{ display:grid; grid-template-columns: repeat(12, 1fr); gap:14px; } .faq-item{ grid-column: span 6; background: rgba(15,23,42,.65); border:1px solid var(--border); border-radius: var(--r16); padding:16px 18px; transition:.2s ease; opacity:0; transform: translateY(12px); } .faq-item.visible{opacity:1; transform: translateY(0);} .faq-item:hover{border-color:var(--border2); box-shadow: var(--shadow2);} .faq-item h3{ font-size:1rem; font-weight:900; margin-bottom:8px; letter-spacing:-.2px; } .faq-item p{color:var(--muted); font-weight:700; font-size:.95rem} /* TOAST */ .toast-container { position:fixed; top:18px; right:18px; z-index:10000; display:flex; flex-direction:column; gap:10px; } .toast{ padding:12px 14px; border-radius:14px; background: rgba(15,23,42,.92); border:1px solid var(--border); box-shadow: var(--shadow2); color: var(--text); font-weight:900; min-width:280px; animation: slideIn .25s ease; display:flex; align-items:flex-start; gap:10px; } .toast.success { border-left:4px solid var(--green); } .toast.error { border-left:4px solid var(--red); } @keyframes slideIn{from{transform:translateX(14px); opacity:0}to{transform:translateX(0); opacity:1}} /* MODAL */ .modal{ display:none; position:fixed; inset:0; background: rgba(3,6,14,.70); backdrop-filter: blur(10px); justify-content:center; align-items:center; z-index:1000; opacity:0; transition:opacity .2s ease; padding: 18px; } .modal.open{display:flex !important; opacity:1 !important;} .modal-content{ width: 100%; max-width: 440px; border-radius: 22px; border:1px solid var(--border); background: rgba(15,23,42,.92); box-shadow: var(--shadow); padding: 16px; position:relative; max-height: min(92vh, 720px); overflow:auto; overscroll-behavior: contain; } .modal-content::-webkit-scrollbar{width:10px;} .modal-content::-webkit-scrollbar-track{background: rgba(148,163,184,.04); border-radius: 999px;} .modal-content::-webkit-scrollbar-thumb{background: rgba(148,163,184,.22); border-radius: 999px; border:2px solid rgba(15,23,42,.92);} .modal-content::-webkit-scrollbar-thumb:hover{background: rgba(148,163,184,.30);} .close{ position:absolute; top:12px; right:12px; width:40px; height:40px; border-radius:14px; border:1px solid var(--border); background: rgba(148,163,184,.06); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.2s ease; color: rgba(229,231,235,.75); z-index:5; padding:0; } .close:hover{ color: var(--text); border-color: var(--border2); transform: translateY(-1px); } .close:active{ transform: translateY(0); } .tabs{ display:flex; gap:8px; padding:6px; border-radius:16px; border:1px solid var(--border); background: rgba(148,163,184,.06); margin: 10px 0 12px; } .tab{ flex:1; padding:12px 12px; border-radius:14px; border:1px solid transparent; background: transparent; color: var(--muted); font-weight:900; cursor:pointer; transition:.2s ease; } .tab.active{ background: rgba(41,98,255,.18); color: var(--text); border-color: rgba(41,98,255,.35); box-shadow: 0 18px 40px rgba(41,98,255,.12); } .modal-title{ text-align:center; margin:10px 0 14px; font-weight:900; font-size:1.55rem; letter-spacing:-.7px; background: linear-gradient(90deg, #ffffff, #bcd3ff 55%, #7fb1ff); -webkit-background-clip:text; background-clip:text; color:transparent; } input, button.modal-btn{ width:100%; padding:12px 12px; margin:8px 0; border-radius: 14px; border:1px solid var(--border); background: rgba(148,163,184,.06); color:var(--text); font-size: 1rem; font-weight:900; outline:none; transition:.2s ease; } input:focus{ border-color: rgba(41,98,255,.45); box-shadow:0 0 0 4px rgba(41,98,255,.14); } button.modal-btn{ border-color: rgba(41,98,255,.40); background: linear-gradient(180deg, rgba(41,98,255,.95), rgba(31,79,230,.95)); cursor:pointer; font-weight:900; margin-top:10px; padding:14px 12px; border-radius: 16px; } button.modal-btn:hover{transform: translateY(-1px);} button.modal-btn:active{transform: translateY(0);} .account-note{ display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:14px; border:1px dashed rgba(255, 184, 107, .35); background: rgba(255, 184, 107, .08); color:#ffcc8a; font-weight:900; font-size:.86rem; margin-top:-4px; margin-bottom:6px; } .account-note .lock{ width:22px; height:22px; border-radius:10px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255, 184, 107, .25); background: rgba(255, 184, 107, .10); } footer{ border-top:1px solid rgba(148,163,184,.12); margin-top: 18px; padding: 22px 0; text-align:center; color: var(--muted); font-weight:700; font-size:.92rem; } @media (max-width: 980px){ .hero-grid{grid-template-columns:1fr;} .card{grid-column: span 6;} } @media (max-width: 640px){ .nav-links{display:none;} .title{font-size:2.05rem;} .card{grid-column: span 12;} .faq-item{grid-column: span 12;} .widget-head{flex-wrap:wrap} } /style>/head>body>!-- VIDEO -->video idbgVideo classbg-video autoplay muted loop playsinline webkit-playsinline preloadauto> source srcassets/hero.mov typevideo/mp4>/video>div classbg-video-overlay aria-hiddentrue>/div>div idstars aria-hiddentrue>/div>div classshooting-star styleleft:12%; top:16%; animation-delay:0.6s;>/div>div classshooting-star styleleft:42%; top:8%; animation-delay:2.2s;>/div>div classshooting-star styleleft:74%; top:18%; animation-delay:4.1s;>/div>div classtoast-container idtoast-container>/div>!-- NAV -->div classnav> div classcontainer> div classnav-inner> a classbrand href#> span classbrand-badge>/span> span classbrand-name>Astrum/span> /a> div classnav-links> a href#start>Старт/a> a href#features>Преимущества/a> a href#faq>FAQ/a> /div> div classnav-actions> a href# idopen-btn classbtn btn-primary>Войти/a> button classbtn idperfToggle typebutton titleРежим производительности>⚡ Экономия/button> /div> /div> /div>/div>!-- HERO -->section classhero idstart> div classcontainer> div classhero-grid> div classhero-card> div classkicker>⚡ AI-Trading • Автоматизация • Контроль/div> div classtitle>span classaccent>Интеллектуальная/span> торговая система/div> div classsubtitle> Минималистичный интерфейс в стиле Trading UI, быстрый старт и понятная логика. Регистрация за минуту — запуск в один клик. /div> div classhero-actions> a href# idopen-btn-2 classbtn btn-primary>Создать аккаунт / Войти/a> a href#features classbtn>Преимущества/a> /div> /div> div classwidget aria-labelСводка> div classwidget-head> div> div classwidget-title>Сводка/div> div stylemargin-top:6px; display:flex; gap:8px; align-items:center;> div classpill-mini idcurrent-symbol-pill>BTCUSD/div> div classpill-mini idcurrent-range-pill>1D/div> /div> /div> div classtf idtf> button typebutton classactive data-range1D>1D/button> button typebutton data-range5D>1W/button> button typebutton data-range1M>1M/button> button typebutton data-range6M>6M/button> /div> /div> div classtv-wrap> div classtv-slider idtv-slider aria-labelСлайдер графиков>/div> button classtv-arrow prev idtv-prev typebutton aria-labelПредыдущий график> svg width20 height20 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM15 18L9 12L15 6 strokecurrentColor stroke-width2.6 stroke-linecapround stroke-linejoinround/> /svg> /button> button classtv-arrow next idtv-next typebutton aria-labelСледующий график> svg width20 height20 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM9 18L15 12L9 6 strokecurrentColor stroke-width2.6 stroke-linecapround stroke-linejoinround/> /svg> /button> /div> div classtv-dots idtv-dots aria-hiddentrue>/div> div classstats> div classstat> div classk>Подключение/div> div classv>API • Auto/div> /div> div classstat> div classk>Риски/div> div classv>Контроль/div> /div> /div> /div> /div> /div>/section>!-- FEATURES -->section classsection idfeatures> div classcontainer> div classsection-head> div> div classsection-title>Преимущества Astrum/div> div classsection-desc>Автоматизация лицензии, адаптивная логика и быстрый старт — в аккуратном интерфейсе./div> /div> /div> div classgrid> div classcard> div classcard-icon>🔑/div> h3>Авто-синхронизация/h3> p>Лицензия активируется через API — без ручных ключей и лишних действий./p> /div> div classcard> div classcard-icon>🧠/div> h3>Адаптивный ИИ/h3> p>Система анализирует рынок и подстраивает поведение под текущие условия./p> /div> div classcard> div classcard-icon>🚀/div> h3>Простота и скорость/h3> p>Установка и запуск — быстро. Поддержка 24/7./p> /div> /div> /div>/section>!-- FAQ -->section classsection idfaq> div classcontainer> div classsection-head> div> div classsection-title>FAQ/div> div classsection-desc>Короткие ответы на частые вопросы./div> /div> /div> div classfaq> div classfaq-item> h3>Как начать?/h3> p>Зарегистрируйтесь, активируйте тариф и запустите робота./p> /div> div classfaq-item> h3>Где Telegram ID?/h3> p>Telegram привязывается в кабинете через кнопку “Привязать”./p> /div> div classfaq-item> h3>Какие рынки?/h3> p>Крипто/форекс/CFD — в зависимости от брокера./p> /div> div classfaq-item> h3>Безопасность?/h3> p>Лицензия проверяется по аккаунту и серверу, всё автоматизировано./p> /div> /div> /div>/section>div idmodal classmodal roledialog aria-modaltrue aria-labelВход и регистрация> div classmodal-content> button classclose idclose-btn typebutton aria-labelЗакрыть> svg width18 height18 viewBox0 0 24 24 fillnone aria-hiddentrue> path dM18 6L6 18 strokecurrentColor stroke-width2.6 stroke-linecapround/> path dM6 6L18 18 strokecurrentColor stroke-width2.6 stroke-linecapround/> /svg> /button> div classtabs> button classtab active idtab-login onclickshowLogin();return false;>Вход/button> button classtab idtab-register onclickshowRegister();return false;>Регистрация/button> /div> div idlogin-form> h2 classmodal-title>Вход/h2> input typetext idlogin placeholderЛогин или email autocompleteusername> input typepassword idpass placeholderПароль autocompletecurrent-password> button classmodal-btn onclicklogin()>Войти/button> !-- ✅ Забыли пароль --> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> a hrefindex.php?forgot1 stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Забыли пароль? /a> /p> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> Нет аккаунта? a href# onclickshowRegister();return false; stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Зарегистрироваться /a> /p> /div> div idregister-form styledisplay:none;> h2 classmodal-title>Регистрация/h2> input typetext idreg-login placeholderЛогин autocompleteusername> input typeemail idreg-email placeholderEmail autocompleteemail> input typetext idreg-account placeholderНомер счёта (только цифры) inputmodenumeric> div classaccount-note> span classlock>🔒/span> Номер счёта фиксируется после регистрации /div> input typepassword idreg-pass placeholderПароль (мин. 6 символов) autocompletenew-password> button classmodal-btn onclickregister()>Создать аккаунт/button> p styletext-align:center;margin-top:10px;font-size:0.92rem;color:var(--muted);font-weight:800;> Уже есть аккаунт? a href# onclickshowLogin();return false; stylecolor:#bcd3ff;text-decoration:none;border-bottom:1px dashed rgba(188,211,255,.45);padding-bottom:1px;> Войти /a> /p> /div> /div>/div>footer> © 2026 Astrum. Все права защищены./footer>script> // STARS + REVEAL document.addEventListener(DOMContentLoaded, () > { const stars document.getElementById(stars); if (stars) { const isMobile window.matchMedia((max-width: 768px)).matches; const reduceMotion window.matchMedia((prefers-reduced-motion: reduce)).matches; const count (reduceMotion ? 0 : (isMobile ? 80 : 220)); const frag document.createDocumentFragment(); for (let i 0; i count; i++) { const s document.createElement(div); s.className star; const size Math.random() * (isMobile ? 1.8 : 2.2) + 0.6; s.style.width size + px; s.style.height size + px; s.style.left (Math.random() * 100) + %; s.style.top (Math.random() * 100) + %; s.style.opacity (Math.random() * 0.55 + 0.18).toFixed(2); if (!isMobile) { s.style.animationDelay (Math.random() * 6) + s; s.style.animationDuration (Math.random() * 4 + 3) + s; } else { s.style.animation none; } frag.appendChild(s); } stars.appendChild(frag); } const observer new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting) entry.target.classList.add(visible); }); }, { threshold: 0.12 }); document.querySelectorAll(.card, .faq-item).forEach(el > observer.observe(el)); }); // TOASTS function showToast(message, type success) { const container document.getElementById(toast-container); const toast document.createElement(div); toast.className `toast ${type success ? success : error}`; toast.innerHTML `div>${type success ? ✅ : ❌}/div>div>${message}/div>`; container.appendChild(toast); setTimeout(() > toast.remove(), 4000); } // API async function api(action, data {}) { const fd new FormData(); fd.append(action, action); Object.entries(data).forEach((k, v) > fd.append(k, v)); const res await fetch(, { method: POST, body: fd }); const json await res.json(); if (!res.ok) throw new Error(json.error || Ошибка); return json; } async function logout(){ try{ await api(logout); location.reload(); }catch(e){ showToast(e.message, error); } } // MARKET SLIDER (function initMarketSlider(){ const slider document.getElementById(tv-slider); const dotsWrap document.getElementById(tv-dots); const tfWrap document.getElementById(tf); const prevBtn document.getElementById(tv-prev); const nextBtn document.getElementById(tv-next); if (!slider || !dotsWrap || !tfWrap) return; const pillSymbol document.getElementById(current-symbol-pill); const pillRange document.getElementById(current-range-pill); const items { label: BTCUSD, symbol: BITSTAMP:BTCUSD }, { label: ETHUSD, symbol: BITSTAMP:ETHUSD }, { label: SOLUSDT, symbol: BINANCE:SOLUSDT }, { label: GOLD (XAUUSD), symbol: OANDA:XAUUSD }, { label: USDRUB, symbol: FX_IDC:USDRUB }, { label: EURUSD, symbol: FX:EURUSD } ; let range 1D; let idx 0; let timer null; let touchX null; function tvConfig(symbol, dateRange){ return { symbol, width: 100%, height: 100%, locale: ru, dateRange, colorTheme: dark, isTransparent: true, autosize: true, noTimeScale: true }; } function ensureWidget(i){ const slides Array.from(slider.querySelectorAll(.tv-slide)); const slide slidesi; if (!slide) return; const key itemsi.symbol + | + range; if (slide.dataset.loaded 1 && slide.dataset.loadedKey key) return; // Clear previous widget content const container slide.querySelector(.tradingview-widget-container); if (!container) return; const widgetHost container.querySelector(.tradingview-widget-container__widget); if (widgetHost) widgetHost.innerHTML ; // Remove old scripts inside container Array.from(container.querySelectorAll(script)).forEach(s > s.remove()); const script document.createElement(script); script.type text/javascript; script.src https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js; script.async true; script.text JSON.stringify(tvConfig(itemsi.symbol, range)); container.appendChild(script); slide.dataset.loaded 1; slide.dataset.loadedKey key; // Hide skeleton a bit later (widget renders async) const sk container.querySelector(.tv-skeleton); if (sk) setTimeout(() > { sk.style.displaynone; }, 900); }function buildSlides(){ slider.innerHTML ; dotsWrap.innerHTML items.map(() > `span classtv-dot>/span>`).join(); const dots Array.from(dotsWrap.querySelectorAll(.tv-dot)); items.forEach((it, i) > { const slide document.createElement(div); slide.className tv-slide + (i idx ? active : ); slide.dataset.loaded 0; slide.dataset.loadedKey ; slide.innerHTML ` div classtv-slide-label>${it.label}/div> div classtradingview-widget-container> div classtradingview-widget-container__widget styleheight:100%;>/div> div classtv-skeleton styleposition:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(154,164,178,.9);font-weight:900;>Загрузка графика…/div> /div> `; slider.appendChild(slide); }); dots.forEach((d, i) > { d.classList.toggle(active, i idx); d.addEventListener(click, () > { show(i); start(); }); }); if (pillSymbol) pillSymbol.textContent itemsidx.label; if (pillRange) pillRange.textContent range; // Load only active (and prefetch next) to reduce main-thread load on mobile ensureWidget(idx); if (window.innerWidth > 769) ensureWidget((idx + 1) % items.length); } function show(i){ const slides Array.from(slider.querySelectorAll(.tv-slide)); const dots Array.from(dotsWrap.querySelectorAll(.tv-dot)); if (!slides.length) return; slidesidx.classList.remove(active); dotsidx?.classList.remove(active); idx (i + slides.length) % slides.length; slidesidx.classList.add(active); dotsidx?.classList.add(active); if (pillSymbol) pillSymbol.textContent itemsidx.label; if (pillRange) pillRange.textContent range; // Lazy-load active widget, and prefetch next on desktop ensureWidget(idx); if (window.innerWidth > 769) ensureWidget((idx + 1) % slides.length); } function next(){ show(idx + 1); } function prev(){ show(idx - 1); } function start(){ stop(); timer setInterval(next, 5000); } function stop(){ if (timer) clearInterval(timer); timer null; } slider.addEventListener(mouseenter, stop); slider.addEventListener(mouseleave, start); if (prevBtn) prevBtn.addEventListener(click, () > { prev(); start(); }); if (nextBtn) nextBtn.addEventListener(click, () > { next(); start(); }); slider.addEventListener(touchstart, (e) > { touchX e.touches?.0?.clientX ?? null; }, { passive:true }); slider.addEventListener(touchend, (e) > { if (touchX null) return; const endX e.changedTouches?.0?.clientX ?? null; if (endX null) return; const dx endX - touchX; touchX null; if (Math.abs(dx) 45) return; if (dx > 0) prev(); else next(); start(); }); tfWrap.querySelectorAll(buttondata-range).forEach(btn > { btn.addEventListener(click, () > { const newRange btn.getAttribute(data-range); if (!newRange || newRange range) return; tfWrap.querySelectorAll(button).forEach(b > b.classList.remove(active)); btn.classList.add(active); range newRange; buildSlides(); // ensure active loads with new range ensureWidget(idx); start();}); }); buildSlides(); start(); })(); // MODAL function showLogin() { document.getElementById(login-form).style.display block; document.getElementById(register-form).style.display none; document.getElementById(tab-login).classList.add(active); document.getElementById(tab-register).classList.remove(active); setTimeout(() > document.getElementById(login)?.focus(), 50); } function showRegister() { document.getElementById(login-form).style.display none; document.getElementById(register-form).style.display block; document.getElementById(tab-register).classList.add(active); document.getElementById(tab-login).classList.remove(active); setTimeout(() > document.getElementById(reg-login)?.focus(), 50); } function openModal(defaultToRegister false){ const modal document.getElementById(modal); if (!modal) return; modal.classList.add(open); document.body.style.overflow hidden; defaultToRegister ? showRegister() : showLogin(); } function closeModal(){ const modal document.getElementById(modal); if (!modal) return; modal.classList.remove(open); document.body.style.overflow ; } const openBtn document.getElementById(open-btn); if (openBtn) openBtn.onclick (e) > { e.preventDefault(); openModal(false); }; const openBtn2 document.getElementById(open-btn-2); if (openBtn2) openBtn2.onclick (e) > { e.preventDefault(); openModal(true); }; const closeBtn document.getElementById(close-btn); if (closeBtn) closeBtn.onclick () > closeModal(); window.addEventListener(click, (e) > { if (e.target && e.target.id modal) closeModal(); }); window.addEventListener(keydown, (e) > { if (e.key Escape) closeModal(); }); async function register() { try { const d await api(register, { login: document.getElementById(reg-login).value.trim(), email: document.getElementById(reg-email).value.trim(), account_number: document.getElementById(reg-account).value.trim(), password: document.getElementById(reg-pass).value }); showToast(Аккаунт создан! Проверьте почту для подтверждения., success); setTimeout(() > { window.location.href d.redirect || cabinet.php; }, 700); } catch (e) { showToast(e.message || Ошибка, error); } } async function login() { try { const d await api(login, { login: document.getElementById(login).value.trim(), password: document.getElementById(pass).value }); showToast(Вход выполнен! Перенаправляю…, success); setTimeout(() > { window.location.href d.redirect || cabinet.php; }, 450); } catch (e) { showToast(e.message || Ошибка входа, error); } }/script>!-- ✅ VIDEO PLAY SAFE (no aggressive polling) -->script>(function(){ const v document.getElementById(bgVideo); if (!v) return; function isFastMode(){ try { return document.body.classList.contains(fast-mode) || localStorage.getItem(astrum_fast) 1; } catch(e){ return false; } } const playSafe () > { if (isFastMode()) return; v.play().catch(()>{}); }; v.muted true; v.loop true; v.playsInline true; // play when possible v.addEventListener(canplay, playSafe, { once:true }); // resume after tab visibility document.addEventListener(visibilitychange, () > { if (!document.hidden) playSafe(); }); // allow user gesture to enable playback window.addEventListener(pointerdown, playSafe, { once:true }); // if ended unexpectedly v.addEventListener(ended, () > { v.currentTime 0; playSafe(); });})();/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]