{"id":273,"date":"2026-06-17T23:13:06","date_gmt":"2026-06-17T20:13:06","guid":{"rendered":"https:\/\/dotanoobhelp.ru\/?page_id=273"},"modified":"2026-06-30T22:58:47","modified_gmt":"2026-06-30T19:58:47","slug":"glavnaya","status":"publish","type":"page","link":"https:\/\/dotanoobhelp.ru\/?page_id=273","title":{"rendered":"\u0433\u043b\u0430\u0432\u043d\u0430\u044f"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"273\" class=\"elementor elementor-273\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-61ae51a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"61ae51a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a5297c6\" data-id=\"a5297c6\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-88aeaa0 elementor-widget elementor-widget-html\" data-id=\"88aeaa0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"ru\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>DOTA NOOB HELP \u2014 \u0413\u043b\u0430\u0432\u043d\u0430\u044f<\/title>\r\n<style>\r\n\/* === \u0411\u0410\u0417\u041e\u0412\u042b\u0415 \u0421\u0422\u0418\u041b\u0418 \u0421\u0410\u0419\u0422\u0410 === *\/\r\n.dota-pro-container {\r\n  --bg-pure: #0a0a0a !important;\r\n  --text-white: #ffffff !important;\r\n  --text-gray: #999999 !important;\r\n  background-color: var(--bg-pure);\r\n  color: var(--text-white);\r\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\r\n  min-height: 100vh;\r\n  width: 100% !important;\r\n  box-sizing: border-box;\r\n  overflow-x: hidden;\r\n  position: relative;\r\n  margin: 0 !important;  \r\n  padding: 0 !important;\r\n}\r\n.dota-pro-container * { box-sizing: border-box; margin: 0; padding: 0; }\r\n.pulse-text { animation: textBreath 4s ease-in-out infinite alternate; }\r\n@keyframes textBreath { 0% { opacity: 0.85; filter: brightness(0.9); } 100% { opacity: 1; filter: brightness(1.15); } }\r\n.reveal-animation { opacity: 0; transform: translateY(30px); animation: appleReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; }\r\n@keyframes appleReveal { to { opacity: 1; transform: translateY(0); } }\r\n.css-space-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; z-index: 0; }\r\n.star-layer { position: absolute; top: 0; left: 0; width: 200%; height: 200%; }\r\n.layer-small { background-image: radial-gradient(white 1px, transparent 0); background-size: 100px 100px; opacity: 0.4; animation: spaceFly 40s linear infinite; }\r\n.layer-medium { background-image: radial-gradient(white 2px, transparent 0); background-size: 250px 250px; opacity: 0.6; animation: spaceFly 70s linear infinite; }\r\n@keyframes spaceFly { from { transform: translate(0, 0); } to { transform: translate(-50%, -50%); } }\r\n.shooting-stars { position: absolute; width: 100%; height: 100%; }\r\n.star-fall { position: absolute; top: -10%; width: 4px; height: 4px; background: #fff; border-radius: 50%; box-shadow: 0 0 0 4px rgba(255,255,255,0.1), 0 0 20px rgba(255,255,255,1); animation: fall 5s linear infinite; opacity: 0; }\r\n.star-fall::before { content: ''; position: absolute; top: 50%; transform: translateY(-50%); width: 200px; height: 2px; background: linear-gradient(90deg, #fff, transparent); right: 0; }\r\n@keyframes fall { 0% { transform: translate(0, 0) rotate(45deg); opacity: 1; } 20% { transform: translate(-200px, 200px) rotate(45deg); opacity: 0; } 100% { opacity: 0; } }\r\n\r\n\/* === \u041d\u0410\u0412\u0418\u0413\u0410\u0426\u0418\u042f === *\/\r\n.dnh-navbar { position: sticky; top: 0; z-index: 100; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(20px); border-bottom: 1px solid rgba(255, 255, 255, 0.12); height: 70px; }\r\n.nav-content { max-width: 1200px; height: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; }\r\n\r\n.dnh-logo-link {\r\n  text-decoration: none;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  gap: 0;\r\n  cursor: pointer;\r\n  transition: opacity 0.3s ease;\r\n}\r\n.dnh-logo-link:hover { opacity: 0.8; }\r\n.floating-logo { \r\n  font-weight: 700; font-size: 16px; letter-spacing: 2px; \r\n  animation: logoFloat 5s ease-in-out infinite; \r\n  color: #fff; white-space: nowrap; \r\n}\r\n@keyframes logoFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }\r\n\r\n\/* === AI \u041a\u041d\u041e\u041f\u041a\u0410 === *\/\r\n.ai-nav-trigger {\r\n  display: inline-flex; align-items: center; gap: 10px;\r\n  background: #ffffff;\r\n  border: 1px solid rgba(255, 255, 255, 0.9);\r\n  color: #000000;\r\n  padding: 10px 20px; border-radius: 30px;\r\n  font-size: 13px; font-weight: 700;\r\n  cursor: pointer; transition: all 0.3s ease;\r\n  white-space: nowrap; letter-spacing: 0.5px;\r\n  position: relative; z-index: 102;\r\n  text-transform: uppercase;\r\n  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);\r\n  animation: aiBtnPulse 2.2s infinite;\r\n}\r\n@keyframes aiBtnPulse {\r\n  0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.6), 0 0 15px rgba(255, 255, 255, 0.3); }\r\n  50% { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0), 0 0 25px rgba(255, 255, 255, 0.5); }\r\n  100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0), 0 0 15px rgba(255, 255, 255, 0.3); }\r\n}\r\n.ai-nav-trigger:hover {\r\n  background: #000000;\r\n  color: #ffffff;\r\n  border-color: #ffffff;\r\n  transform: scale(1.05);\r\n  box-shadow: 0 0 30px rgba(255, 255, 255, 0.5);\r\n}\r\n.ai-nav-trigger.active {\r\n  background: #000000;\r\n  color: #ffffff;\r\n  border-color: #ffffff;\r\n  animation: none;\r\n  box-shadow: 0 0 25px rgba(255, 255, 255, 0.4);\r\n}\r\n.ai-nav-trigger svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }\r\n\r\n\/* === \u0413\u0415\u0420\u041e\u0419 \u0418 \u041a\u0410\u0420\u0422\u041e\u0427\u041a\u0418 === *\/\r\n.dnh-hero { padding: 120px 24px 60px; text-align: center; position: relative; z-index: 2; }\r\n.hero-content { max-width: 800px; margin: 0 auto; }\r\n.hero-badge { display: inline-block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 3px; color: var(--text-gray); margin-bottom: 20px; border: 1px solid rgba(255,255,255,0.1); padding: 6px 16px; border-radius: 20px; }\r\n.hero-title { font-size: clamp(36px, 6vw, 72px); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; margin-bottom: 24px; background: linear-gradient(to bottom, #fff, #aaa); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }\r\n.hero-subtitle { font-size: clamp(16px, 2vw, 20px); line-height: 1.6; color: var(--text-gray); margin: 0 auto 50px; max-width: 600px; }\r\n.cta-wrapper { display: flex; flex-direction: column; align-items: center; gap: 16px; justify-content: center; }\r\n.dnh-main-btn { display: inline-flex; align-items: center; gap: 12px; background: #ffffff; color: #000; padding: 18px 40px; border-radius: 50px; font-size: 16px; font-weight: 600; text-decoration: none; transition: all 0.3s ease; cursor: pointer; border: none; }\r\n.dnh-main-btn:hover { transform: scale(1.05); box-shadow: 0 0 30px rgba(255,255,255,0.3); }\r\n.secondary-btn { display: inline-flex; align-items: center; gap: 12px; background: rgba(255, 255, 255, 0.08); color: #fff; padding: 18px 40px; border-radius: 50px; font-size: 16px; font-weight: 600; text-decoration: none; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.15); cursor: pointer; }\r\n.secondary-btn:hover { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.3); transform: scale(1.05); }\r\n.btn-arrow { transition: transform 0.3s; }\r\n.dnh-main-btn:hover .btn-arrow, .secondary-btn:hover .btn-arrow { transform: translateX(5px); }\r\n.section-divider { display: flex; align-items: center; justify-content: center; gap: 30px; max-width: 1200px; margin: 40px auto 60px; padding: 0 24px; position: relative; z-index: 2; opacity: 0; animation: fadeInDivider 1s ease-out 0.8s forwards; }\r\n.supplement-divider { margin-top: 20px; animation-delay: 1.2s; }\r\n@keyframes fadeInDivider { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }\r\n.divider-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent); max-width: 200px; }\r\n.divider-title { font-size: clamp(18px, 3vw, 26px); font-weight: 300; color: rgba(255, 255, 255, 0.6); letter-spacing: 4px; text-transform: uppercase; white-space: nowrap; text-align: center; }\r\n.dota-accent { font-weight: 800; color: #ffffff !important; letter-spacing: 6px; position: relative; -webkit-text-fill-color: #ffffff !important; background: none !important; }\r\n.dota-accent::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent); }\r\n.dnh-new-cards-section { max-width: 1200px; margin: 0 auto; padding: 0 24px 40px; position: relative; z-index: 2; }\r\n.new-cards-grid { display: grid; gap: 25px; }\r\n.main-path-grid { grid-template-columns: repeat(3, 1fr); }\r\n.supplement-grid { grid-template-columns: repeat(3, 1fr); }\r\n.minimal-card { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; padding: 40px 35px; text-decoration: none; transition: all 0.4s ease; position: relative; overflow: hidden; display: block; z-index: 2; }\r\n.minimal-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); transform: scaleX(0); transition: transform 0.5s; }\r\n.minimal-card:hover::before { transform: scaleX(1); }\r\n.minimal-card:hover { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); transform: translateY(-5px); box-shadow: 0 15px 40px rgba(0,0,0,0.5); }\r\n.card-number { font-size: 48px; font-weight: 900; color: rgba(255, 255, 255, 0.08); margin-bottom: 20px; line-height: 1; transition: color 0.4s; }\r\n.minimal-card:hover .card-number { color: rgba(255, 255, 255, 0.15); }\r\n.card-title { font-size: 24px; font-weight: 700; color: #fff; margin-bottom: 12px; letter-spacing: 0.5px; }\r\n.card-desc { font-size: 15px; color: #888; line-height: 1.5; margin-bottom: 25px; }\r\n.card-arrow { font-size: 24px; color: rgba(255, 255, 255, 0.3); transition: all 0.3s; display: inline-block; }\r\n.minimal-card:hover .card-arrow { color: #fff; transform: translateX(8px); }\r\n.dnh-footer { text-align: center; padding: 30px; color: #444; font-size: 13px; border-top: 1px solid rgba(255,255,255,0.05); position: relative; z-index: 2; margin-top: 40px; }\r\n\r\n@media (max-width: 900px) {\r\n  .hero-title { font-size: 40px; }\r\n  .main-path-grid, .supplement-grid { grid-template-columns: repeat(2, 1fr); }\r\n}\r\n\r\n@media (max-width: 600px) {\r\n  .main-path-grid, .supplement-grid { grid-template-columns: 1fr; }\r\n  .dnh-hero { padding-top: 80px; padding-bottom: 40px; }\r\n  .dnh-main-btn, .secondary-btn { width: 100%; justify-content: center; padding: 16px 30px; }\r\n  .ai-nav-trigger { padding: 8px 14px; font-size: 11px; gap: 6px; }\r\n  .ai-nav-trigger svg { width: 14px; height: 14px; }\r\n  .floating-logo { font-size: 13px; letter-spacing: 1px; }\r\n}\r\n\r\n\/* ========================================== *\/\r\n\/* \ud83d\udee1\ufe0f AI \u0427\u0410\u0422                                  *\/\r\n\/* ========================================== *\/\r\n.ai-chat-panel {\r\n    position: fixed;\r\n    width: 440px;\r\n    max-width: calc(100vw - 24px);\r\n    height: 620px;\r\n    max-height: calc(100vh - 90px);\r\n    background: rgba(0, 0, 0, 0.75);\r\n    backdrop-filter: blur(20px);\r\n    border: 1px solid rgba(255, 255, 255, 0.15);\r\n    border-radius: 18px;\r\n    z-index: 101;\r\n    display: flex; flex-direction: column;\r\n    box-shadow: 0 20px 60px rgba(0,0,0,0.8), 0 0 40px rgba(255,255,255,0.05);\r\n    opacity: 0;\r\n    visibility: hidden;\r\n    transform-origin: top right;\r\n    transform: scale(0.85) translateY(-20px);\r\n    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);\r\n    pointer-events: none;\r\n    overflow: hidden;\r\n}\r\n.ai-chat-panel.active {\r\n    opacity: 1;\r\n    visibility: visible;\r\n    transform: scale(1) translateY(0);\r\n    pointer-events: all;\r\n}\r\n.ai-chat-panel::before {\r\n    content: '';\r\n    position: absolute;\r\n    top: -6px; right: 24px;\r\n    width: 12px; height: 12px;\r\n    background: rgba(0, 0, 0, 0.75);\r\n    border-left: 1px solid rgba(255, 255, 255, 0.15);\r\n    border-top: 1px solid rgba(255, 255, 255, 0.15);\r\n    transform: rotate(45deg);\r\n    z-index: 1;\r\n}\r\n\r\n.ai-stars-bg {\r\n    position: absolute;\r\n    top: 0; left: 0;\r\n    width: 100%; height: 100%;\r\n    pointer-events: none;\r\n    z-index: 0;\r\n    overflow: hidden;\r\n}\r\n.ai-star {\r\n    position: absolute;\r\n    background: #ffffff;\r\n    border-radius: 50%;\r\n    opacity: 0;\r\n    animation: aiStarFloat linear infinite;\r\n}\r\n@keyframes aiStarFloat {\r\n    0% { transform: translateY(100%) translateX(0); opacity: 0; }\r\n    10% { opacity: 0.5; }\r\n    90% { opacity: 0.5; }\r\n    100% { transform: translateY(-100%) translateX(30px); opacity: 0; }\r\n}\r\n\r\n.ai-welcome-screen {\r\n    position: absolute;\r\n    top: 0; left: 0;\r\n    width: 100%; height: 100%;\r\n    background: rgba(0, 0, 0, 0.92);\r\n    backdrop-filter: blur(25px);\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    z-index: 5;\r\n    opacity: 0;\r\n    animation: aiWelcomeIn 0.6s ease-out 0.3s forwards;\r\n}\r\n@keyframes aiWelcomeIn { from { opacity: 0; } to { opacity: 1; } }\r\n.ai-welcome-screen.fade-out { animation: aiWelcomeOut 1.2s ease-in-out forwards; }\r\n@keyframes aiWelcomeOut {\r\n    0% { opacity: 1; backdrop-filter: blur(25px); }\r\n    100% { opacity: 0; backdrop-filter: blur(0px); }\r\n}\r\n.ai-welcome-content {\r\n    text-align: center;\r\n    opacity: 0;\r\n    transform: translateY(20px);\r\n    animation: aiWelcomeContentIn 0.8s ease-out 0.5s forwards;\r\n}\r\n@keyframes aiWelcomeContentIn {\r\n    from { opacity: 0; transform: translateY(20px); }\r\n    to { opacity: 1; transform: translateY(0); }\r\n}\r\n.ai-welcome-screen.fade-out .ai-welcome-content { animation: aiWelcomeContentOut 0.9s ease-in forwards; }\r\n@keyframes aiWelcomeContentOut {\r\n    from { opacity: 1; transform: translateY(0); }\r\n    to { opacity: 0; transform: translateY(-30px); }\r\n}\r\n.ai-welcome-star {\r\n    width: 36px;\r\n    height: 36px;\r\n    background: #ffffff;\r\n    clip-path: polygon(50% 0%, 65% 35%, 100% 50%, 65% 65%, 50% 100%, 35% 65%, 0% 50%, 35% 35%);\r\n    margin: 0 auto 20px;\r\n    animation: aiWelcomeStarPulse 1.8s infinite;\r\n}\r\n@keyframes aiWelcomeStarPulse {\r\n    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.85; }\r\n    50% { transform: scale(1.15) rotate(180deg); opacity: 1; }\r\n}\r\n.ai-welcome-title {\r\n    font-size: 22px;\r\n    font-weight: 900;\r\n    letter-spacing: 2px;\r\n    text-transform: uppercase;\r\n    color: rgba(255, 255, 255, 0.95);\r\n    margin-bottom: 12px;\r\n    line-height: 1.3;\r\n}\r\n.ai-welcome-divider {\r\n    width: 50px;\r\n    height: 1px;\r\n    background: rgba(255, 255, 255, 0.25);\r\n    margin: 16px auto;\r\n}\r\n.ai-welcome-subtitle {\r\n    font-size: 11px;\r\n    color: rgba(255, 255, 255, 0.5);\r\n    letter-spacing: 2px;\r\n    text-transform: uppercase;\r\n}\r\n\r\n.ai-header {\r\n    padding: 16px 20px;\r\n    background: rgba(0, 0, 0, 0.4);\r\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\r\n    border-radius: 18px 18px 0 0;\r\n    display: flex; justify-content: space-between; align-items: center;\r\n    position: relative; z-index: 2;\r\n    backdrop-filter: blur(10px);\r\n}\r\n.ai-header-info { display: flex; align-items: center; gap: 12px; }\r\n.ai-header-icon {\r\n    width: 36px; height: 36px;\r\n    background: #ffffff;\r\n    border-radius: 50%;\r\n    display: flex; align-items: center; justify-content: center;\r\n    animation: aiIconPulse 2.5s infinite;\r\n}\r\n@keyframes aiIconPulse {\r\n    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); }\r\n    50% { box-shadow: 0 0 0 8px rgba(255, 255, 255, 0); }\r\n}\r\n.ai-header-icon svg { width: 18px; height: 18px; fill: #000000; }\r\n.ai-header-text h3 { font-size: 13px; font-weight: 800; color: #fff; margin: 0; letter-spacing: 1.5px; text-transform: uppercase; }\r\n.ai-header-text p { font-size: 10px; color: rgba(255, 255, 255, 0.5); margin: 2px 0 0; letter-spacing: 0.5px; }\r\n\r\n.ai-header-actions { display: flex; gap: 8px; align-items: center; }\r\n\r\n.ai-clear-btn, .ai-close-btn {\r\n    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.15);\r\n    width: 32px; height: 32px; border-radius: 50%;\r\n    color: #fff; font-size: 16px; cursor: pointer;\r\n    display: flex; align-items: center; justify-content: center;\r\n    transition: all 0.3s;\r\n}\r\n.ai-clear-btn { font-size: 14px; }\r\n.ai-clear-btn:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.4); }\r\n.ai-close-btn:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.4); }\r\n\r\n.ai-messages {\r\n    flex: 1; overflow-y: auto; padding: 18px;\r\n    display: flex; flex-direction: column; gap: 12px;\r\n    background: transparent;\r\n    position: relative;\r\n    z-index: 2;\r\n}\r\n.ai-messages::-webkit-scrollbar { width: 4px; }\r\n.ai-messages::-webkit-scrollbar-track { background: transparent; }\r\n.ai-messages::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 2px; }\r\n\r\n.ai-welcome-chat {\r\n    background: rgba(255, 255, 255, 0.04);\r\n    border: 1px solid rgba(255, 255, 255, 0.12);\r\n    color: rgba(255, 255, 255, 0.75);\r\n    align-self: center;\r\n    max-width: 92%;\r\n    text-align: center;\r\n    padding: 18px;\r\n    border-radius: 12px;\r\n    animation: aiWelcomeChatIn 0.6s ease-out;\r\n}\r\n@keyframes aiWelcomeChatIn {\r\n    from { opacity: 0; transform: translateY(15px) scale(0.95); }\r\n    to { opacity: 1; transform: translateY(0) scale(1); }\r\n}\r\n.ai-welcome-chat-title {\r\n    font-size: 12px;\r\n    font-weight: 700;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1.5px;\r\n    margin-bottom: 10px;\r\n    color: rgba(255, 255, 255, 0.9);\r\n}\r\n.ai-welcome-chat-text {\r\n    font-size: 12px;\r\n    line-height: 1.7;\r\n    color: rgba(255, 255, 255, 0.65);\r\n}\r\n.ai-welcome-chat-divider {\r\n    width: 35px;\r\n    height: 1px;\r\n    background: rgba(255, 255, 255, 0.2);\r\n    margin: 10px auto;\r\n}\r\n\r\n.ai-msg {\r\n    max-width: 85%; padding: 12px 16px;\r\n    border-radius: 12px; font-size: 13px; line-height: 1.6;\r\n    animation: aiMsgSlideIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);\r\n    word-wrap: break-word;\r\n}\r\n@keyframes aiMsgSlideIn { from { opacity: 0; transform: translateY(10px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } }\r\n.ai-msg.bot {\r\n    background: rgba(255, 255, 255, 0.05);\r\n    border: 1px solid rgba(255, 255, 255, 0.1);\r\n    align-self: flex-start;\r\n    border-bottom-left-radius: 3px;\r\n    color: #ffffff;\r\n}\r\n.ai-msg.user {\r\n    background: rgba(255, 255, 255, 0.92);\r\n    border: 1px solid rgba(255, 255, 255, 0.9);\r\n    align-self: flex-end;\r\n    border-bottom-right-radius: 3px;\r\n    color: #000000;\r\n    font-weight: 500;\r\n}\r\n.ai-msg strong { color: #ffffff; }\r\n.ai-msg.bot strong { color: #ffffff; text-shadow: 0 0 8px rgba(255,255,255,0.3); }\r\n.ai-msg ul, .ai-msg ol { padding-left: 20px; margin: 8px 0; }\r\n.ai-msg li { margin-bottom: 4px; }\r\n.ai-msg code {\r\n    background: rgba(0, 0, 0, 0.5);\r\n    padding: 2px 6px;\r\n    border-radius: 3px;\r\n    font-family: 'Courier New', monospace;\r\n    border: 1px solid rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n.ai-status {\r\n    font-size: 9px;\r\n    color: rgba(255, 255, 255, 0.4);\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    margin-bottom: 6px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n}\r\n.ai-badge {\r\n    display: inline-block;\r\n    padding: 2px 6px;\r\n    border-radius: 3px;\r\n    font-size: 8px;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    margin-left: 6px;\r\n    background: rgba(255, 255, 255, 0.08);\r\n    color: rgba(255, 255, 255, 0.5);\r\n    border: 1px solid rgba(255, 255, 255, 0.1);\r\n}\r\n.ai-typing { display: inline-flex; gap: 3px; }\r\n.ai-typing span {\r\n    width: 4px; height: 4px; background: #ffffff; border-radius: 50%;\r\n    animation: aiTypingBounce 1.4s infinite;\r\n}\r\n.ai-typing span:nth-child(2) { animation-delay: 0.2s; }\r\n.ai-typing span:nth-child(3) { animation-delay: 0.4s; }\r\n@keyframes aiTypingBounce { 0%,60%,100% { transform: translateY(0); opacity: 0.3; } 30% { transform: translateY(-5px); opacity: 1; } }\r\n\r\n@keyframes aiBlink { 0%, 50% { opacity: 1; } 51%, 100% { opacity: 0; } }\r\n.ai-cursor {\r\n    display: inline-block;\r\n    width: 6px;\r\n    height: 13px;\r\n    background: #ffffff;\r\n    margin-left: 2px;\r\n    animation: aiBlink 0.8s infinite;\r\n    vertical-align: middle;\r\n}\r\n\r\n.ai-input-area {\r\n    padding: 14px;\r\n    background: rgba(0, 0, 0, 0.4);\r\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\r\n    border-radius: 0 0 18px 18px;\r\n    display: flex; gap: 8px; align-items: center;\r\n    backdrop-filter: blur(10px);\r\n    position: relative;\r\n    z-index: 2;\r\n}\r\n.ai-input {\r\n    flex: 1; background: rgba(255,255,255,0.05);\r\n    border: 1px solid rgba(255,255,255,0.12);\r\n    border-radius: 22px; padding: 11px 18px;\r\n    color: #fff; outline: none; font-size: 13px;\r\n    font-family: inherit; transition: all 0.3s;\r\n}\r\n.ai-input:focus { border-color: rgba(255,255,255,0.35); background: rgba(255,255,255,0.08); }\r\n.ai-input::placeholder { color: rgba(255,255,255,0.3); }\r\n\r\n.ai-stop-btn, .ai-send-btn {\r\n    width: 40px; height: 40px; border-radius: 50%;\r\n    border: 1px solid rgba(255, 255, 255, 0.15);\r\n    cursor: pointer;\r\n    display: flex; align-items: center; justify-content: center;\r\n    transition: all 0.3s; flex-shrink: 0;\r\n    font-weight: 700;\r\n}\r\n.ai-stop-btn {\r\n    background: #0a0a0a;\r\n    color: #ffffff;\r\n    font-size: 10px;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.5px;\r\n}\r\n.ai-send-btn {\r\n    background: #ffffff;\r\n    color: #000000;\r\n    font-size: 18px;\r\n}\r\n.ai-stop-btn:hover { background: #1a1a1a; border-color: rgba(255,255,255,0.4); }\r\n.ai-send-btn:hover { background: #e0e0e0; transform: scale(1.05); }\r\n.ai-send-btn:active { transform: scale(0.95); }\r\n.ai-stop-btn:disabled, .ai-send-btn:disabled {\r\n    background: #050505;\r\n    color: #333;\r\n    border-color: rgba(255,255,255,0.05);\r\n    cursor: not-allowed;\r\n    transform: none;\r\n}\r\n\r\n@media (max-width: 600px) {\r\n    .ai-chat-panel {\r\n        width: calc(100vw - 16px);\r\n        height: calc(100vh - 80px);\r\n        max-height: calc(100vh - 80px);\r\n        border-radius: 14px;\r\n    }\r\n    .ai-chat-panel::before { display: none; }\r\n    .ai-header { border-radius: 14px 14px 0 0; }\r\n    .ai-input-area { border-radius: 0 0 14px 14px; }\r\n    .ai-welcome-title { font-size: 18px; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"dota-pro-container\">\r\n  \r\n  <div class=\"css-space-background\">\r\n    <div class=\"star-layer layer-small\"><\/div>\r\n    <div class=\"star-layer layer-medium\"><\/div>\r\n    <div class=\"shooting-stars\">\r\n      <div class=\"star-fall\" style=\"left: 10%; animation-delay: 0s;\"><\/div>\r\n      <div class=\"star-fall\" style=\"left: 30%; animation-delay: 2s;\"><\/div>\r\n      <div class=\"star-fall\" style=\"left: 50%; animation-delay: 4s;\"><\/div>\r\n      <div class=\"star-fall\" style=\"left: 70%; animation-delay: 1.5s;\"><\/div>\r\n      <div class=\"star-fall\" style=\"left: 90%; animation-delay: 3s;\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  \r\n  <nav class=\"dnh-navbar\">\r\n    <div class=\"nav-content\">\r\n      <a href=\"https:\/\/dotanoobhelp.ru\/\" class=\"dnh-logo-link\">\r\n        <div class=\"floating-logo pulse-text\">\u2726 DOTA NOOB HELP<\/div>\r\n      <\/a>\r\n      <button class=\"ai-nav-trigger\" id=\"aiOpenBtn\">\r\n        <svg viewBox=\"0 0 24 24\"><path d=\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"\/><\/svg>\r\n        <span>AI \u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a<\/span>\r\n      <\/button>\r\n    <\/div>\r\n  <\/nav>\r\n\r\n  <section class=\"dnh-hero\">\r\n    <div class=\"hero-content reveal-animation\">\r\n      <span class=\"hero-badge pulse-text\">\u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435<\/span>\r\n      <h1 class=\"hero-title pulse-text\">\u0422\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a <br>\u0438\u0437 \u0440\u0435\u043a\u0440\u0443\u0442\u043e\u0432 \u0432 \u0442\u0438\u0442\u0430\u043d\u044b.<\/h1>\r\n      <p class=\"hero-subtitle pulse-text\">\u0423\u043b\u044c\u0442\u0438\u043c\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u044b \u043c\u0430\u043a\u0440\u043e-\u0438\u0433\u0440\u044b \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u043f\u0430\u0442\u0447\u0435\u0439. \u0411\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u043b\u043e\u0432. \u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u0442\u044b\u0439 \u0441\u043a\u0438\u043b\u043b.<\/p>\r\n      \r\n      <div class=\"cta-wrapper\">\r\n        <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=348\" class=\"dnh-main-btn pulse-text\">\r\n          <span>\u0423\u0437\u043d\u0430\u0439 \u043e \u0432\u0441\u0435\u0445 \u0433\u0435\u0440\u043e\u044f\u0445<\/span>\r\n          <svg class=\"btn-arrow\" width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M6 3L11 8L6 13\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\r\n        <\/a>\r\n        <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=492\" class=\"secondary-btn pulse-text\">\r\n          <span>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0433\u0435\u0440\u043e\u0435\u0432<\/span>\r\n          <svg class=\"btn-arrow\" width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M6 3L11 8L6 13\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <div class=\"section-divider\">\r\n    <div class=\"divider-line\"><\/div>\r\n    <h2 class=\"divider-title pulse-text\">\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0443\u0442\u044c \u0432 <span class=\"dota-accent\">Dota 2<\/span><\/h2>\r\n    <div class=\"divider-line\"><\/div>\r\n  <\/div>\r\n\r\n  <section class=\"dnh-new-cards-section\">\r\n    <div class=\"new-cards-grid main-path-grid\">      \r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=318\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">01<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u041c\u0430\u043a\u0440\u043e\u043c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442<\/h3>\r\n        <p class=\"card-desc pulse-text\">\u041a\u0430\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f, \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u044b\u0448\u043a\u0438 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=324\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">02<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u0412\u0430\u0440\u0434\u0438\u043d\u0433<\/h3>\r\n        <p class=\"card-desc pulse-text\">\u0413\u0434\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0440\u0434\u044b, \u043a\u0430\u043a \u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0440\u0430\u0433\u0430 \u0438 \u043d\u0435 \u0443\u043c\u0438\u0440\u0430\u0442\u044c \u0432 \u0442\u0435\u043c\u043d\u043e\u0442\u0435.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=329\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">03<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u041a\u043e\u043d\u0442\u0440-\u043f\u0438\u043a\u0438<\/h3>\r\n        <p class=\"card-desc pulse-text\">\u041a\u043e\u0433\u043e \u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0432\u0440\u0430\u0433\u043e\u0432 \u0438 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f \u043a\u043e\u043d\u0442\u0440-\u043f\u0438\u043a\u043e\u0432.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <div class=\"section-divider supplement-divider\">\r\n    <div class=\"divider-line\"><\/div>\r\n    <h2 class=\"divider-title pulse-text\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0438 <span class=\"dota-accent\">Dota 2<\/span><\/h2>\r\n    <div class=\"divider-line\"><\/div>\r\n  <\/div>\r\n\r\n  <section class=\"dnh-new-cards-section\">\r\n    <div class=\"new-cards-grid supplement-grid\">      \r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=448\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">04<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u041c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0433\u0435\u0440\u043e\u044f<\/h3>\r\n        <p class=\"card-desc pulse-text\">Last hit, deny, \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0430\u0442\u0430\u043a \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=453\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">05<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u041f\u0440\u0435\u0434\u043c\u0435\u0442\u044b \u0438 \u0441\u0431\u043e\u0440\u043a\u0430<\/h3>\r\n        <p class=\"card-desc pulse-text\">\u0427\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443. \u0410\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u0434 \u0438\u0433\u0440\u0443.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n      <a href=\"https:\/\/dotanoobhelp.ru\/?page_id=458\" class=\"minimal-card\">\r\n        <div class=\"card-number pulse-text\">06<\/div>        \r\n        <h3 class=\"card-title pulse-text\">\u041a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0438\u0433\u0440\u0430<\/h3>\r\n        <p class=\"card-desc pulse-text\">\u041a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f, \u0442\u0430\u0439\u043c\u0438\u043d\u0433\u0438 \u0434\u0440\u0430\u043a \u0438 \u0440\u043e\u043b\u044c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435.<\/p>\r\n        <div class=\"card-arrow\">\u2192<\/div>\r\n      <\/a>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <footer class=\"dnh-footer\">\r\n    <p class=\"pulse-text\">\u00a9 2024 DOTA NOOB HELP. \u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b.<\/p>\r\n  <\/footer>\r\n\r\n  <div class=\"ai-chat-panel\" id=\"aiChatPanel\">\r\n    <div class=\"ai-stars-bg\" id=\"aiStarsBg\"><\/div>\r\n    \r\n    <div class=\"ai-welcome-screen\" id=\"aiWelcomeScreen\">\r\n      <div class=\"ai-welcome-content\">\r\n        <div class=\"ai-welcome-star\"><\/div>\r\n        <div class=\"ai-welcome-title\">\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c<br>\u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0443<br>\u043f\u043e Dota 2<\/div>\r\n        <div class=\"ai-welcome-divider\"><\/div>\r\n        <div class=\"ai-welcome-subtitle\">Dota Noob Help<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ai-header\">\r\n      <div class=\"ai-header-info\">\r\n        <div class=\"ai-header-icon\">\r\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 2L9.5 8.5 2 9l6 5-2 8 6-4 6 4-2-8 6-5-7.5-.5z\"\/><\/svg>\r\n        <\/div>\r\n        <div class=\"ai-header-text\">\r\n          <h3>\u2726 DOTA NOOB HELP<\/h3>\r\n          <p>AI Support \u2022 \u041e\u043d\u043b\u0430\u0439\u043d<\/p>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"ai-header-actions\">\r\n        <button class=\"ai-clear-btn\" id=\"aiClearBtn\" title=\"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e\">\ud83d\uddd1<\/button>\r\n        <button class=\"ai-close-btn\" id=\"aiCloseBtn\" title=\"\u0417\u0430\u043a\u0440\u044b\u0442\u044c\">\u00d7<\/button>\r\n      <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"ai-messages\" id=\"aiMessages\">\r\n      <div class=\"ai-welcome-chat\">\r\n        <div class=\"ai-welcome-chat-title\">\u2728 \u0427\u0435\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u043e\u0447\u044c<\/div>\r\n        <div class=\"ai-welcome-chat-text\">\r\n          \u0417\u0434\u0435\u0441\u044c \u0442\u044b \u043d\u0430\u0439\u0434\u0451\u0448\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u0433\u0435\u0440\u043e\u044f Dota 2<br>\r\n          \u0423\u0437\u043d\u0430\u0435\u0448\u044c \u0442\u0430\u043a\u0442\u0438\u043a\u0438, \u0431\u0438\u043b\u0434\u044b \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u044b \u0438\u0433\u0440\u044b<br>\r\n          \u0410 \u0435\u0449\u0451 \u043c\u043e\u0436\u0435\u0448\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e\r\n        <\/div>\r\n        <div class=\"ai-welcome-chat-divider\"><\/div>\r\n        <div class=\"ai-welcome-chat-text\" style=\"font-size: 10px; opacity: 0.5;\">\r\n          \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0438 \u0441\u0432\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0438\u0436\u0435\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"ai-input-area\">\r\n      <input type=\"text\" class=\"ai-input\" id=\"aiInput\" placeholder=\"\u041d\u0430\u043f\u0438\u0448\u0438 \u0432\u043e\u043f\u0440\u043e\u0441...\" autocomplete=\"off\">\r\n      <button class=\"ai-stop-btn\" id=\"aiStopBtn\" disabled>\u0421\u0442\u043e\u043f<\/button>\r\n      <button class=\"ai-send-btn\" id=\"aiSendBtn\">\u2191<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n\/\/ ==========================================\r\n\/\/ \ud83d\udee1\ufe0f \u041b\u041e\u0413\u0418\u041a\u0410 \u041e\u0422\u041a\u0420\u042b\u0422\u0418\u042f\/\u0417\u0410\u041a\u0420\u042b\u0422\u0418\u042f \u0427\u0410\u0422\u0410\r\n\/\/ ==========================================\r\nconst aiOpenBtn = document.getElementById('aiOpenBtn');\r\nconst aiClose = document.getElementById('aiCloseBtn');\r\nconst aiClear = document.getElementById('aiClearBtn');\r\nconst aiPanel = document.getElementById('aiChatPanel');\r\nconst aiInput = document.getElementById('aiInput');\r\nconst aiStopBtn = document.getElementById('aiStopBtn');\r\nconst aiSendBtn = document.getElementById('aiSendBtn');\r\nconst aiMessages = document.getElementById('aiMessages');\r\nconst aiWelcomeScreen = document.getElementById('aiWelcomeScreen');\r\n\r\nconst aiStarsBg = document.getElementById('aiStarsBg');\r\nfor (let i = 0; i < 35; i++) {\r\n    const star = document.createElement('div');\r\n    star.className = 'ai-star';\r\n    const size = Math.random() * 2 + 1;\r\n    star.style.width = size + 'px';\r\n    star.style.height = size + 'px';\r\n    star.style.left = Math.random() * 100 + '%';\r\n    star.style.animationDuration = (Math.random() * 12 + 10) + 's';\r\n    star.style.animationDelay = Math.random() * 10 + 's';\r\n    aiStarsBg.appendChild(star);\r\n}\r\n\r\nlet welcomeShown = false;\r\n\r\nfunction positionChat() {\r\n    const btnRect = aiOpenBtn.getBoundingClientRect();\r\n    const panelWidth = Math.min(440, window.innerWidth - 24);\r\n    let top = btnRect.bottom + 12;\r\n    let right = window.innerWidth - btnRect.right;\r\n    if (window.innerWidth - right - panelWidth < 16) { right = 16; }\r\n    const maxPanelHeight = window.innerHeight - top - 16;\r\n    aiPanel.style.maxHeight = Math.min(620, maxPanelHeight) + 'px';\r\n    aiPanel.style.top = top + 'px';\r\n    aiPanel.style.right = right + 'px';\r\n    aiPanel.style.left = 'auto';\r\n}\r\n\r\nfunction toggleChat(show) {\r\n    if (show) {\r\n        positionChat();\r\n        aiPanel.classList.add('active');\r\n        aiOpenBtn.classList.add('active');\r\n        setTimeout(() => aiInput.focus(), 400);\r\n        \r\n        if (!welcomeShown) {\r\n            aiWelcomeScreen.style.display = 'flex';\r\n            aiWelcomeScreen.classList.remove('fade-out');\r\n            setTimeout(() => {\r\n                aiWelcomeScreen.classList.add('fade-out');\r\n                setTimeout(() => { aiWelcomeScreen.style.display = 'none'; }, 1200);\r\n            }, 2800);\r\n            welcomeShown = true;\r\n        }\r\n    } else {\r\n        aiPanel.classList.remove('active');\r\n        aiOpenBtn.classList.remove('active');\r\n    }\r\n}\r\n\r\naiOpenBtn.addEventListener('click', () => {\r\n    toggleChat(!aiPanel.classList.contains('active'));\r\n});\r\naiClose.addEventListener('click', () => toggleChat(false));\r\nwindow.addEventListener('resize', () => {\r\n    if (aiPanel.classList.contains('active')) positionChat();\r\n});\r\ndocument.addEventListener('keydown', (e) => {\r\n    if (e.key === 'Escape' && aiPanel.classList.contains('active')) toggleChat(false);\r\n});\r\ndocument.addEventListener('click', (e) => {\r\n    if (aiPanel.classList.contains('active') && \r\n        !aiPanel.contains(e.target) && \r\n        !aiOpenBtn.contains(e.target)) {\r\n        toggleChat(false);\r\n    }\r\n});\r\n\r\n\/\/ ==========================================\r\n\/\/ \ud83d\udcbe \u0421\u041e\u0425\u0420\u0410\u041d\u0415\u041d\u0418\u0415 \u0418\u0421\u0422\u041e\u0420\u0418\u0418 \u0412 localStorage\r\n\/\/ ==========================================\r\nconst STORAGE_KEY = 'dnh_ai_chat_history';\r\n\r\nfunction saveHistory() {\r\n    try {\r\n        \/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e user\/assistant \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f API (\u0431\u0435\u0437 system)\r\n        const apiHistory = conversationHistory.filter(m => m.role !== 'system');\r\n        \/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c HTML-\u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\r\n        const displayHistory = [];\r\n        const msgs = aiMessages.querySelectorAll('.ai-msg');\r\n        msgs.forEach(msg => {\r\n            displayHistory.push({\r\n                role: msg.classList.contains('user') ? 'user' : 'bot',\r\n                html: msg.innerHTML\r\n            });\r\n        });\r\n        localStorage.setItem(STORAGE_KEY, JSON.stringify({\r\n            api: apiHistory,\r\n            display: displayHistory\r\n        }));\r\n    } catch (e) {\r\n        console.warn('\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e:', e);\r\n    }\r\n}\r\n\r\nfunction loadHistory() {\r\n    try {\r\n        const data = localStorage.getItem(STORAGE_KEY);\r\n        if (!data) return false;\r\n        const parsed = JSON.parse(data);\r\n        if (!parsed.api || !parsed.display) return false;\r\n        \r\n        \/\/ \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c API-\u0438\u0441\u0442\u043e\u0440\u0438\u044e\r\n        conversationHistory = [\r\n            { role: 'system', content: '\u0422\u044b \u2014 AI-\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a Dota Noob Help. \u041e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0411\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u043a\u0440\u0430\u0442\u043e\u043a \u0438 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u0415\u0441\u043b\u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u043e Dota 2 \u2014 \u0434\u0430\u0432\u0430\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u043d\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430 \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.' },\r\n            ...parsed.api\r\n        ];\r\n        \r\n        \/\/ \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\r\n        \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\r\n        const welcomeChat = aiMessages.querySelector('.ai-welcome-chat');\r\n        if (welcomeChat) welcomeChat.remove();\r\n        \r\n        parsed.display.forEach(msg => {\r\n            const div = document.createElement('div');\r\n            div.className = `ai-msg ${msg.role}`;\r\n            div.innerHTML = msg.html;\r\n            \/\/ \u0423\u0431\u0438\u0440\u0430\u0435\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\r\n            div.style.animation = 'none';\r\n            aiMessages.appendChild(div);\r\n        });\r\n        \r\n        return parsed.display.length > 0;\r\n    } catch (e) {\r\n        console.warn('\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e:', e);\r\n        return false;\r\n    }\r\n}\r\n\r\nfunction clearHistory() {\r\n    if (!confirm('\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0447\u0430\u0442\u0430?')) return;\r\n    localStorage.removeItem(STORAGE_KEY);\r\n    conversationHistory = [\r\n        { role: 'system', content: '\u0422\u044b \u2014 AI-\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a Dota Noob Help. \u041e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0411\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u043a\u0440\u0430\u0442\u043e\u043a \u0438 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u0415\u0441\u043b\u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u043e Dota 2 \u2014 \u0434\u0430\u0432\u0430\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u043d\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430 \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.' }\r\n    ];\r\n    \/\/ \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e\r\n    const msgs = aiMessages.querySelectorAll('.ai-msg');\r\n    msgs.forEach(m => m.remove());\r\n    \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442\r\n    if (!aiMessages.querySelector('.ai-welcome-chat')) {\r\n        const welcome = document.createElement('div');\r\n        welcome.className = 'ai-welcome-chat';\r\n        welcome.innerHTML = `\r\n            <div class=\"ai-welcome-chat-title\">\u2728 \u0427\u0435\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u043e\u0447\u044c<\/div>\r\n            <div class=\"ai-welcome-chat-text\">\r\n              \u0417\u0434\u0435\u0441\u044c \u0442\u044b \u043d\u0430\u0439\u0434\u0451\u0448\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u0433\u0435\u0440\u043e\u044f Dota 2<br>\r\n              \u0423\u0437\u043d\u0430\u0435\u0448\u044c \u0442\u0430\u043a\u0442\u0438\u043a\u0438, \u0431\u0438\u043b\u0434\u044b \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0438 \u0441\u0435\u043a\u0440\u0435\u0442\u044b \u0438\u0433\u0440\u044b<br>\r\n              \u0410 \u0435\u0449\u0451 \u043c\u043e\u0436\u0435\u0448\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e\r\n            <\/div>\r\n            <div class=\"ai-welcome-chat-divider\"><\/div>\r\n            <div class=\"ai-welcome-chat-text\" style=\"font-size: 10px; opacity: 0.5;\">\r\n              \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0438 \u0441\u0432\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0438\u0436\u0435\r\n            <\/div>\r\n        `;\r\n        aiMessages.appendChild(welcome);\r\n    }\r\n}\r\n\r\naiClear.addEventListener('click', clearHistory);\r\n\r\n\/\/ ==========================================\r\n\/\/ \ud83e\udde0 \u041b\u041e\u0413\u0418\u041a\u0410 \u041d\u0410\u0428\u0415\u0419 \u041d\u0415\u0419\u0420\u041e\u041d\u041a\u0418\r\n\/\/ ==========================================\r\nlet currentController = null;\r\nlet currentAiDiv = null;\r\nlet autoScroll = true;\r\nlet isStreaming = false;\r\n\r\nlet conversationHistory = [\r\n    { role: 'system', content: '\u0422\u044b \u2014 AI-\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a Dota Noob Help. \u041e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u0411\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u043a\u0440\u0430\u0442\u043e\u043a \u0438 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u0415\u0441\u043b\u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u043e Dota 2 \u2014 \u0434\u0430\u0432\u0430\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043c\u043d\u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430 \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0439 \u043d\u0430 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.' }\r\n];\r\n\r\nconst chatResponses = {\r\n    \"\u043f\u0440\u0438\u0432\u0435\u0442\": [\"\u041f\u0440\u0438\u0432\u0435\u0442! \u0427\u0435\u043c \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c?\", \"\u0417\u0434\u0430\u0440\u043e\u0432\u0430! \u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e?\", \"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e!\"],\r\n    \"\u043a\u0430\u043a \u0434\u0435\u043b\u0430\": [\"\u0412\u0441\u0451 \u043e\u0442\u043b\u0438\u0447\u043d\u043e! \u0413\u043e\u0442\u043e\u0432 \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c.\", \"\u0421\u0443\u043f\u0435\u0440! \u0410 \u0443 \u0442\u0435\u0431\u044f?\", \"\u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0441\u043f\u0430\u0441\u0438\u0431\u043e!\"],\r\n    \"\u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0448\u044c\": [\"\u0416\u0434\u0443 \u0442\u0432\u043e\u0438\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432!\", \"\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.\", \"\u0413\u043e\u0442\u043e\u0432\u043b\u044e \u043e\u0442\u0432\u0435\u0442\u044b.\"],\r\n    \"\u043f\u043e\u043c\u043e\u0433\u0438\": [\"\u041a\u043e\u043d\u0435\u0447\u043d\u043e! \u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e?\", \"\u0411\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439!\", \"\u042f \u0437\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e.\"],\r\n    \"\u0441\u043f\u0430\u0441\u0438\u0431\u043e\": [\"\u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430!\", \"\u041d\u0435 \u0437\u0430 \u0447\u0442\u043e!\", \"\u0420\u0430\u0434 \u043f\u043e\u043c\u043e\u0447\u044c!\"],\r\n    \"\u043f\u043e\u043a\u0430\": [\"\u0414\u043e \u0441\u0432\u044f\u0437\u0438!\", \"\u0423\u0434\u0430\u0447\u0438!\", \"\u0417\u0430\u0445\u043e\u0434\u0438 \u0435\u0449\u0451!\"]\r\n};\r\n\r\nfunction detectQueryType(text) {\r\n    const lower = text.toLowerCase().trim();\r\n    if (lower.length <= 30) {\r\n        for (let key in chatResponses) {\r\n            if (lower === key || lower.includes(key)) {\r\n                return { type: 'chat', answer: chatResponses[key][Math.floor(Math.random() * chatResponses[key].length)] };\r\n            }\r\n        }\r\n    }\r\n    return { type: 'web' };\r\n}\r\n\r\nfunction formatMessage(text) {\r\n    let html = text.replace(\/&\/g, '&amp;').replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;');\r\n    html = html.replace(\/\\*\\*(.+?)\\*\\*\/g, '<strong>$1<\/strong>');\r\n    html = html.replace(\/^\u2022 (.+)$\/gm, '<li>$1<\/li>');\r\n    html = html.replace(\/(<li>.*<\\\/li>\\n?)+\/g, '<ul>$&<\/ul>');\r\n    html = html.replace(\/\\n\/g, '<br>');\r\n    return html;\r\n}\r\n\r\n\/\/ \u0423\u041c\u041d\u0410\u042f \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430: \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0438\u0437\u0443\r\nfunction checkAutoScroll() {\r\n    const threshold = 80;\r\n    const isAtBottom = aiMessages.scrollHeight - aiMessages.scrollTop - aiMessages.clientHeight < threshold;\r\n    autoScroll = isAtBottom;\r\n}\r\n\r\nfunction smoothScroll() {\r\n    if (!autoScroll) return;\r\n    aiMessages.scrollTop = aiMessages.scrollHeight;\r\n}\r\n\r\n\/\/ \u0421\u043b\u0443\u0448\u0430\u0435\u043c \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0443 \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c, \u0445\u043e\u0447\u0435\u0442 \u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0432\u0435\u0440\u0445\r\naiMessages.addEventListener('scroll', () => {\r\n    checkAutoScroll();\r\n});\r\n\r\nasync function streamResponse(aiDiv, text) {\r\n    currentController = new AbortController();\r\n    currentAiDiv = aiDiv;\r\n    isStreaming = true;\r\n    autoScroll = true; \/\/ \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0440\u0438\u043c\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u043d\u0438\u0437\r\n\r\n    conversationHistory.push({ role: 'user', content: text });\r\n    if (conversationHistory.length > 11) {\r\n        conversationHistory = [conversationHistory[0], ...conversationHistory.slice(-10)];\r\n    }\r\n\r\n    const response = await fetch('https:\/\/text.pollinations.ai\/openai', {\r\n        method: 'POST',\r\n        headers: { 'Content-Type': 'application\/json' },\r\n        body: JSON.stringify({\r\n            model: 'openai',\r\n            stream: true,\r\n            messages: conversationHistory,\r\n            private: true,\r\n            web: true\r\n        }),\r\n        signal: currentController.signal\r\n    });\r\n\r\n    if (!response.ok) throw new Error('Error');\r\n\r\n    const reader = response.body.getReader();\r\n    const decoder = new TextDecoder();\r\n    let buffer = '';\r\n    let fullText = '';\r\n\r\n    try {\r\n        while (true) {\r\n            const { done, value } = await reader.read();\r\n            if (done) break;\r\n\r\n            buffer += decoder.decode(value, { stream: true });\r\n            const lines = buffer.split('\\n');\r\n            buffer = lines.pop() || '';\r\n\r\n            for (const line of lines) {\r\n                if (!line.startsWith('data: ')) continue;\r\n                const data = line.slice(6).trim();\r\n                \r\n                if (data === '[DONE]') {\r\n                    aiDiv.innerHTML = `<div class=\"ai-status\">Dota Noob Help <span class=\"ai-badge\">Online<\/span><\/div>${formatMessage(fullText)}`;\r\n                    conversationHistory.push({ role: 'assistant', content: fullText });\r\n                    saveHistory();\r\n                    currentAiDiv = null;\r\n                    isStreaming = false;\r\n                    return;\r\n                }\r\n\r\n                try {\r\n                    const json = JSON.parse(data);\r\n                    const delta = json.choices?.[0]?.delta?.content || '';\r\n                    if (delta) {\r\n                        fullText += delta;\r\n                        aiDiv.innerHTML = `<div class=\"ai-status\">Dota Noob Help <span class=\"ai-badge\">Online<\/span><\/div>${formatMessage(fullText)}<span class=\"ai-cursor\"><\/span>`;\r\n                        \/\/ \u041f\u0440\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u0422\u041e\u041b\u042c\u041a\u041e \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0443\u0448\u0451\u043b \u0432\u0432\u0435\u0440\u0445\r\n                        if (autoScroll) {\r\n                            aiMessages.scrollTop = aiMessages.scrollHeight;\r\n                        }\r\n                    }\r\n                } catch (e) { }\r\n            }\r\n        }\r\n\r\n        if (fullText) {\r\n            aiDiv.innerHTML = `<div class=\"ai-status\">Dota Noob Help <span class=\"ai-badge\">Online<\/span><\/div>${formatMessage(fullText)}`;\r\n            conversationHistory.push({ role: 'assistant', content: fullText });\r\n            saveHistory();\r\n        }\r\n    } catch (e) {\r\n        throw e;\r\n    } finally {\r\n        currentAiDiv = null;\r\n        isStreaming = false;\r\n    }\r\n}\r\n\r\nfunction stopGeneration() {\r\n    if (currentController) {\r\n        currentController.abort();\r\n        currentController = null;\r\n        \r\n        if (currentAiDiv) {\r\n            const currentContent = currentAiDiv.innerHTML;\r\n            if (currentContent.includes('<span class=\"ai-cursor\"><\/span>')) {\r\n                currentAiDiv.innerHTML = currentContent.replace(\/<span class=\"ai-cursor\"><\\\/span>$\/, '');\r\n            }\r\n        }\r\n        \r\n        currentAiDiv = null;\r\n        isStreaming = false;\r\n        aiStopBtn.disabled = true;\r\n        aiSendBtn.disabled = false;\r\n        saveHistory();\r\n    }\r\n}\r\n\r\nasync function sendMessage() {\r\n    const text = aiInput.value.trim();\r\n    if (!text) return;\r\n\r\n    aiSendBtn.disabled = true;\r\n    aiStopBtn.disabled = false;\r\n    autoScroll = true;\r\n\r\n    \/\/ \u0423\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435\r\n    const welcomeChat = aiMessages.querySelector('.ai-welcome-chat');\r\n    if (welcomeChat) welcomeChat.remove();\r\n\r\n    const userDiv = document.createElement('div');\r\n    userDiv.className = 'ai-msg user';\r\n    userDiv.textContent = text;\r\n    aiMessages.appendChild(userDiv);\r\n\r\n    aiInput.value = '';\r\n    aiMessages.scrollTop = aiMessages.scrollHeight;\r\n\r\n    const aiDiv = document.createElement('div');\r\n    aiDiv.className = 'ai-msg bot';\r\n    aiDiv.innerHTML = '<div class=\"ai-status\">Dota Noob Help <span class=\"ai-typing\"><span><\/span><span><\/span><span><\/span><\/span><\/div>';\r\n    aiMessages.appendChild(aiDiv);\r\n    aiMessages.scrollTop = aiMessages.scrollHeight;\r\n\r\n    const query = detectQueryType(text);\r\n\r\n    try {\r\n        if (query.type === 'chat') {\r\n            setTimeout(() => {\r\n                aiDiv.innerHTML = `<div class=\"ai-status\">Dota Noob Help <span class=\"ai-badge\">Chat<\/span><\/div>${query.answer}`;\r\n                aiSendBtn.disabled = false;\r\n                aiStopBtn.disabled = true;\r\n                saveHistory();\r\n            }, 300);\r\n        } else {\r\n            await streamResponse(aiDiv, text);\r\n            aiSendBtn.disabled = false;\r\n            aiStopBtn.disabled = true;\r\n        }\r\n    } catch (error) {\r\n        if (error.name !== 'AbortError') {\r\n            aiDiv.innerHTML = '<div class=\"ai-status\">Dota Noob Help<\/div>\u041e\u0448\u0438\u0431\u043a\u0430. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 \u0435\u0449\u0451 \u0440\u0430\u0437.';\r\n        }\r\n        aiSendBtn.disabled = false;\r\n        aiStopBtn.disabled = true;\r\n        saveHistory();\r\n    }\r\n}\r\n\r\naiSendBtn.addEventListener('click', sendMessage);\r\naiStopBtn.addEventListener('click', stopGeneration);\r\naiInput.addEventListener('keypress', (e) => { if (e.key === 'Enter') sendMessage(); });\r\n\r\n\/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435\r\nloadHistory();\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DOTA NOOB HELP \u2014 \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u2726 DOTA NOOB HELP AI \u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0422\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a \u0438\u0437 \u0440\u0435\u043a\u0440\u0443\u0442\u043e\u0432 \u0432 \u0442\u0438\u0442\u0430\u043d\u044b. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-273","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\" \/>\n<meta property=\"og:description\" content=\"DOTA NOOB HELP \u2014 \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u2726 DOTA NOOB HELP AI \u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0422\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a \u0438\u0437 \u0440\u0435\u043a\u0440\u0443\u0442\u043e\u0432 \u0432 \u0442\u0438\u0442\u0430\u043d\u044b. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dotanoobhelp.ru\/?page_id=273\" \/>\n<meta property=\"og:site_name\" content=\"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-30T19:58:47+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data1\" content=\"21 \u043c\u0438\u043d\u0443\u0442\u0430\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/?page_id=273\",\"url\":\"https:\\\/\\\/dotanoobhelp.ru\\\/?page_id=273\",\"name\":\"\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#website\"},\"datePublished\":\"2026-06-17T20:13:06+00:00\",\"dateModified\":\"2026-06-30T19:58:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/?page_id=273#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dotanoobhelp.ru\\\/?page_id=273\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/?page_id=273#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/dotanoobhelp.ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0433\u043b\u0430\u0432\u043d\u0430\u044f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#website\",\"url\":\"https:\\\/\\\/dotanoobhelp.ru\\\/\",\"name\":\"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dotanoobhelp.ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#organization\",\"name\":\"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\",\"url\":\"https:\\\/\\\/dotanoobhelp.ru\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dotanoobhelp.ru\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/588349.png\",\"contentUrl\":\"https:\\\/\\\/dotanoobhelp.ru\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/588349.png\",\"width\":512,\"height\":512,\"caption\":\"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2\"},\"image\":{\"@id\":\"https:\\\/\\\/dotanoobhelp.ru\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"ru_RU","og_type":"article","og_title":"\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","og_description":"DOTA NOOB HELP \u2014 \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u2726 DOTA NOOB HELP AI \u041f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0422\u0432\u043e\u0439 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a \u0438\u0437 \u0440\u0435\u043a\u0440\u0443\u0442\u043e\u0432 \u0432 \u0442\u0438\u0442\u0430\u043d\u044b. [&hellip;]","og_url":"https:\/\/dotanoobhelp.ru\/?page_id=273","og_site_name":"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","article_modified_time":"2026-06-30T19:58:47+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"21 \u043c\u0438\u043d\u0443\u0442\u0430"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dotanoobhelp.ru\/?page_id=273","url":"https:\/\/dotanoobhelp.ru\/?page_id=273","name":"\u0433\u043b\u0430\u0432\u043d\u0430\u044f - \u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","isPartOf":{"@id":"https:\/\/dotanoobhelp.ru\/#website"},"datePublished":"2026-06-17T20:13:06+00:00","dateModified":"2026-06-30T19:58:47+00:00","breadcrumb":{"@id":"https:\/\/dotanoobhelp.ru\/?page_id=273#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dotanoobhelp.ru\/?page_id=273"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dotanoobhelp.ru\/?page_id=273#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/dotanoobhelp.ru\/"},{"@type":"ListItem","position":2,"name":"\u0433\u043b\u0430\u0432\u043d\u0430\u044f"}]},{"@type":"WebSite","@id":"https:\/\/dotanoobhelp.ru\/#website","url":"https:\/\/dotanoobhelp.ru\/","name":"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","description":"","publisher":{"@id":"https:\/\/dotanoobhelp.ru\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dotanoobhelp.ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":"Organization","@id":"https:\/\/dotanoobhelp.ru\/#organization","name":"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2","url":"https:\/\/dotanoobhelp.ru\/","logo":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/dotanoobhelp.ru\/#\/schema\/logo\/image\/","url":"https:\/\/dotanoobhelp.ru\/wp-content\/uploads\/2026\/04\/588349.png","contentUrl":"https:\/\/dotanoobhelp.ru\/wp-content\/uploads\/2026\/04\/588349.png","width":512,"height":512,"caption":"\u0413\u0410\u0419\u0414\u042b \u0414\u041e\u0422\u0410 2"},"image":{"@id":"https:\/\/dotanoobhelp.ru\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/pages\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=273"}],"version-history":[{"count":158,"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/pages\/273\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=\/wp\/v2\/pages\/273\/revisions\/775"}],"wp:attachment":[{"href":"https:\/\/dotanoobhelp.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}