1<!doctype html> 2<html lang="fa" dir="rtl"> 3<head> 4<meta charset="utf-8"> 5<title>bixa â ÙØ±Ùد ب٠دÙÛØ§Û ÙÙØ´ ٠صÙÙØ¹Û</title> 6<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> 7<meta name="description" content="با Claude Code ÙØ±Ù âØ§ÙØ²Ø§Ø±Ù ÙØ§ÙØ¹Û Ø¨Ø³Ø§Ø² â ٠ب٠کسبâÙÚ©Ø§Ø±Û Ú©Ù Ø¨Ù Ø¢Ù ÙÛØ§Ø² دارد Ø¨ÙØ±ÙØ´."> 8<meta name="theme-color" content="#050507"> 9<!-- âââââ Open Graph / Ù¾ÛØ´âÙÙ Ø§ÛØ´Ù ÙÛÙÚ© (تÙÚ¯Ø±Ø§Ù Ø Ø´Ø¨Ú©ÙâÙØ§) âââââ --> 10<meta property="og:type" content="website"> 11<meta property="og:site_name" content="bixa"> 12<meta property="og:url" content="https://bixa.ai/"> 13<meta property="og:title" content="اÛÙØ¬Ø§ ÙØ± Ø§ÛØ¯ÙâØ§Û ØªØ¨Ø¯Û٠ب٠پÙÙ Ù ÛâØ´ÙØ¯"> 14<meta property="og:description" content="بدÙÙÙ Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³âØ¨ÙØ¯ÙØ Ø¨Ø§ ÙÙØ´Ù ٠صÙÙØ¹Û ÙØ±Ù âØ§ÙØ²Ø§Ø±Ù ÙØ§ÙØ¹Û Ø¨Ø³Ø§Ø² ٠ب٠کسبâÙÚ©Ø§Ø±ÙØ§ Ø¨ÙØ±ÙØ´."> 15<meta property="og:image" content="https://bixa.ai/og.png"> 16<meta property="og:image:width" content="1200"> 17<meta property="og:image:height" content="630"> 18<meta property="og:image:alt" content="bixa â Ø§ÛÙØ¬Ø§ ÙØ± Ø§ÛØ¯ÙâØ§Û ØªØ¨Ø¯Û٠ب٠پÙÙ Ù ÛâØ´ÙØ¯"> 19<meta property="og:locale" content="fa_IR"> 20<meta name="twitter:card" content="summary_large_image"> 21<meta name="twitter:title" content="اÛÙØ¬Ø§ ÙØ± Ø§ÛØ¯ÙâØ§Û ØªØ¨Ø¯Û٠ب٠پÙÙ Ù ÛâØ´ÙØ¯"> 22<meta name="twitter:description" content="بدÙÙÙ Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³âØ¨ÙØ¯ÙØ Ø¨Ø§ ÙÙØ´Ù ٠صÙÙØ¹Û ÙØ±Ù âØ§ÙØ²Ø§Ø±Ù ÙØ§ÙØ¹Û Ø¨Ø³Ø§Ø² Ù Ø¨ÙØ±ÙØ´."> 23<meta name="twitter:image" content="https://bixa.ai/og.png"> 24<link rel="icon" type="image/svg+xml" href="/favicon.svg"> 25<link rel="preload" as="font" type="font/woff2" href="/fonts/plex-arabic-700-arabic.woff2" crossorigin> 26<link rel="preload" as="font" type="font/woff2" href="/fonts/plex-arabic-400-arabic.woff2" crossorigin> 27<style> 28/* âââââ ÙÙÙ âÙØ§: Ù ØÙÛ Ù Ú©ÙØ§Ø±Ù Ø®ÙØ¯Ù Ø³Ø§ÛØªØ بدÙÙÙ ÙØ§Ø¨Ø³ØªÚ¯Û ب٠سرÙÛØ³Ù Ø¨ÛØ±ÙÙÛ âââââ 29 ÙØ± ÙØ²Ù Ø¯Ù ÙØ§Û٠دارد: عربÛ/ÙØ§Ø±Ø³Û Ù ÙØ§ØªÛÙØ Ù Ø±ÙØ±Ú¯Ø± ÙÙØ· Ø¢ÙâÚ٠را ÙØ§Ø²Ù دارد Ù ÛâÚ¯ÛØ±Ø¯. 30 font-display:swap ÛØ¹ÙÛ Ù ØªÙ Ø¨ÛâØ¯Ø±ÙÚ¯ با ÙÙÙ Ù Ø³ÛØ³ØªÙ Ø¯ÛØ¯Ù Ù ÛâØ´ÙØ¯ ٠بعد جا Ù ÛâØ§ÙØªØ¯. */ 31@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-arabic-400-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC-FDFD,U+FE70-FE74,U+FE76-FEFC} 32@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-arabic-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} 33@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-arabic-500-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC-FDFD,U+FE70-FE74,U+FE76-FEFC} 34@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-arabic-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} 35@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-arabic-600-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC-FDFD,U+FE70-FE74,U+FE76-FEFC} 36@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-arabic-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} 37@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-arabic-700-arabic.woff2) format('woff2');
37unicode-range:U+0600-06FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FDFC-FDFD,U+FE70-FE74,U+FE76-FEFC} 38@font-face{font-family:'IBM Plex Sans Arabic';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-arabic-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} 39/* Geist Mono ÙÙØ· Ø¨Ø±Ø§Û ØªÙÚ©ÙâÙØ§Û ÙØ§ØªÛ٠٠ز٠اÙâÙØ§ â ÛÚ© ÙØ§ÛÙÙ Ù ØªØºÛØ± */ 40@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/geist-mono-var-latin.woff2) format('woff2');unicode-range:U+0020-007E,U+00A0,U+00B0,U+00D7,U+00F7,U+2013-2014,U+2018-2019,U+201C-201D,U+2026,U+200E-200F,U+2212} 41@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/geist-mono-var-latin.woff2) format('woff2');unicode-range:U+0020-007E,U+00A0,U+00B0,U+00D7,U+00F7,U+2013-2014,U+2018-2019,U+201C-201D,U+2026,U+200E-200F,U+2212} 42</style> 43<style> 44 :root{ 45 --void:#050507; --bg2:#08080D; --surface:#0C0C13; --surface2:#10101A; 46 --line:#1C1C26; --line2:#2A2A3A; --text:#F2F1F5; --mut:#9B99A8; --mut2:#6A6880; 47 --gold:#FFC24A; 48 --spec:linear-gradient(105deg,#FFC24A 0%,#FF2E9E 34%,#7C4DFF 66%,#27E0FF 100%); 49 --neon:conic-gradient(from 0deg,#7C4DFF,#B14DFF 14%,#FF2E9E 32%,#FF7A3C 50%,#FFC24A 62%,#FF2E9E 80%,#7C4DFF 100%); 50 --ease:cubic-bezier(0.16,1,0.3,1); 51 --ff-fa:'IBM Plex Sans Arabic',system-ui,-apple-system,'Segoe UI',Tahoma,'Noto Naskh Arabic',sans-serif; 52 --ff-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace; 53 } 54 *{box-sizing:border-box;margin:0;padding:0} 55 html{overflow-x:clip;scrollbar-color:#2A2A3A var(--void);background:var(--void)} 56 html.lock{overflow:hidden} 57 body{ 58 /* ز٠ÛÙÙâÛ ØµØ±ÛØ رÙÛ html Ø§Ø³ØªØ body Ø´ÙØ§Ù تا آس٠اÙÙ z:-1 Ø¯ÛØ¯Ù Ø´ÙØ¯ */ 59 background:transparent;color:var(--text); 60 font-family:var(--ff-fa);font-size:16.5px;line-height:1.85; 61 -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility; 62 overflow-x:clip; 63 } 64 ::selection{background:rgba(255,194,74,0.28);color:#fff} 65 :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px} 66 button{font:inherit;color:inherit;background:none;border:0;cursor:pointer} 67 a{color:inherit;text-decoration:none} 68 svg{display:block} 69 img{max-width:100%} 70 .ltr{direction:ltr;unicode-bidi:isolate;display:inline-block} 71 .mono{font-family:var(--ff-mono);letter-spacing:0.02em} 72 73 /* âââââââââââââââââ Ø³Ùر٠رÙÚ¯Û â Ø¢Ø³Ù اÙÙ Ù¾Ø³âØ²Ù ÛÙÙ âââââââââââââââââ */ 74 .sky{position:fixed;inset:0;z-index:-1;pointer-events:none} 75 .sky i{position:absolute;inset:0;opacity:0;will-change:opacity} 76 .sky .w1{background:radial-gradient(120% 90% at 50% 18%,#101A3C 0%,#080C1A 58%,#05060C 100%)} 77 .sky .w2{background:radial-gradient(120% 95% at 32% 26%,#191347 0%,#0C0A26 55%,#070614 100%)} 78 .sky .w3{background:radial-gradient(120% 95% at 68% 26%,#29134F 0%,#150C2E 55%,#090716 100%)} 79 .sky .w4{background: 80 radial-gradient(78% 55% at 50% 88%,rgba(255,132,60,0.1),transparent 62%), 81 radial-gradient(120% 95% at 50% 22%,#2E1436 0%,#180D1E 55%,#0D0812 100%)} 82 .sky .w5{background:radial-gradient(120% 100% at 50% 0%,#281608 0%,#170E06 55%,#0B0805 100%)} 83 .sky .w6{background: 84 radial-gradient(70% 55% at 50% 28%,rgba(126,80,255,0.21),transparent 60%), 85 radial-gradient(50% 45% at 80% 76%,rgba(255,52,160,0.12),transparent 62%), 86 linear-gradient(#110A20,#080610)} 87 .sky .w7{background: 88 radial-gradient(88% 66% at 50% 76%,rgba(255,196,116,0.16),rgba(255,160,80,0.04) 52%,transparent 68%), 89 radial-gradient(130% 105% at 50% 32%,#3A250E 0%,#221609 54%,#120C06 100%)} 90 91 /* âââââââââââââââââ ÙÙØ§Ø±Ù Ø¨Ø§ÙØ§ âââââââââââââââââ */ 92 .topbar{ 93 position:fixed;inset-inline:0;top:0;z-index:80; 94 display:flex;align-items:center;justify-content:space-between;gap:16px; 95 padding:12px clamp(16px,4vw,40px); 96 transform:translateY(-110%); 97 transition:transform .6s var(--ease),background .4s,border-color .4s; 98 background:rgba(5,5,7,0.55); 99 backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px); 100 border-bottom:1px solid rgba(28,28,38,0.7); 101 } 102 .topbar.show{transform:none} 103 .topbar::before{ 104 content:"";position:absolute;inset:0 0 -30px;pointer-events:none;z-index:-1; 105 background:linear-gradient(to bottom,rgba(5,5,7,0.92),rgba(5,5,7,0.5) 62%,transparent); 106 opacity:0;transition:opacity .5s ease; 107 } 108 .topbar.scrolled::before{opacity:1} 109 .tb-brand svg{height:22px;width:auto;color:var(--text)} 110 .tb-links{display:flex;align-items:center;gap:clamp(12px,2.4vw,22px)} 111 .tb-login{font-size:13.5px;color:var(--mut);transition:color .3s} 112 .tb-login:hover{color:var(--text)} 113 /* دک٠ÙâÛ ÙÙ ÛØ´ÙâØØ§Ø¶Ø±Ù ÙÙØ§Ø±Ù Ø¨Ø§ÙØ§ â Ú©ÙÚÚ©Ø ØªÙÙ¾ÙØ±Ø Ø·ÙØ§ÛÛØ ÙÙ Ø§Ù Ø¯Ø¹ÙØªÙ ÙÛØ±Ù در Ø§ÙØ¯Ø§Ø²ÙâÛ Ø¬Ù Ø¹âÙØ¬Ùر */ 114 .tb-start{ 115 display:inline-flex;align-items:center;justify-content:center; 116 min-height:36px;font-size:13px;font-weight:700;padding:7px 18px;border-radius:999px; 117 background:var(--gold);color:#0B0A07;border:1px solid var(--gold);white-space:nowrap; 118 box-shadow:inset 0 1px 0 rgba(255,255,255,0.35),0 8px 24px -8px rgba(255,194,74,0.6); 119 transition:filter .3s,box-shadow .3s,transform .3s var(--ease); 120 } 121 .tb-start:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.4),0 12px 30px -8px rgba(255,194,74,0.75)} 122 .tb-start:active{transform:scale(0.98)} 123 124 /* âââââââââââââââââ hero + intro âââââââââââââââââ */ 125 .hero{ 126 /* min-height بÙâØ¬Ø§Û height: رÙÛ Ú¯ÙØ´ÛâÙØ§Û Ú©ÙØªØ§ÙØ ÙØ¹Ø¯Ù Ù Ø¯Ú©Ù Ù Ø²ÛØ±Ù ÙØ´Ø§ÙÙâÛ Ø§Ø³Ú©Ø±ÙÙ ÙÙ ÙÙ ÛâØ´ÙÙØ¯ */ 127 position:relative;min-height:100vh;min-height:100svh; 128 display:flex;align-items:center;justify-content:center; 129 padding:calc(64px + env(safe-area-inset-top)) clamp(16px,4vw,40px) calc(96px + env(safe-area-inset-bottom)); 130 } 131 .wm-wrap{ 132 position:relative;display:flex;flex-direction:column;align-items:center; 133 gap:clamp(26px,4.5vh,44px);will-change:transform,opacity; 134 } 135 .wm{ 136 /* Ú©Ù Û Ø¬Ù Ø¹âØªØ± از ÙØ¨ÙØ ØªØ§ ÙØ¹Ø¯Ù Ù Ø¯Ú©Ù Ù Ú©ÙØ§Ø±Ù ÙÙگ٠در ÛÚ© ØµÙØÙâÙÙ Ø§ÛØ´Ù دسکتاپ جا Ø´ÙÙØ¯ */ 137 width:min(82vw,540px);height:auto;overflow:visible; 138 transform:translateX(34%) scale(1.3); 139 transform-origin:16% 51%; 140 will-change:transform; 141 } 142 #wmMain .st{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
142 143 #wmDot{opacity:0} 144 #wmGlow{opacity:0} 145 #wmSpec{opacity:0} 146 #wmSweep{opacity:0} 147 .wm-say{ 148 max-width:min(760px,88vw);text-align:center;opacity:0; 149 display:flex;flex-direction:column;align-items:center;gap:12px;will-change:opacity,transform; 150 } 151 /* ÙØ¹Ø¯ÙâÛ Ø§ØµÙÛ Ø¨Ø²Ø±Ú¯âØªØ±Û٠٠تÙÙ ØµÙØÙâÛ Ø§Ù٠است â Ø¨Ø²Ø±Ú¯âتر از ÙØ± ØªÛØªØ±Ù دÛÚ¯Ø±Û Ø¯Ø± ØµÙØÙ */ 152 .wm-say h1{ 153 font-family:var(--ff-fa);font-size:clamp(26px,7vw,46px);font-weight:700; 154 line-height:1.6;color:var(--text);margin:0;text-wrap:balance; 155 } 156 .wm-say p{ 157 font-family:var(--ff-fa);font-size:clamp(14px,1.7vw,16px);line-height:2; 158 color:var(--mut);margin:0;text-wrap:pretty;max-width:46ch; 159 } 160 /* تÙÙØ§ Ø¯Ø¹ÙØªÙ ØµÙØÙâÛ Ø§ÙÙ: تÙÙ¾ÙØ±Ø Ø·ÙØ§ÛÛØ Ø¨Ù Ø§ÙØ¯Ø§Ø²ÙâÛ Ø§Ùگشت */ 161 .hero-cta{ 162 position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px; 163 margin-top:clamp(10px,1.8vh,20px);min-height:52px;padding:14px 38px;border-radius:999px; 164 font-size:16.5px;font-weight:700;color:#0B0A07;background:var(--gold); 165 box-shadow:inset 0 1px 0 rgba(255,255,255,0.4),0 14px 40px -10px rgba(255,194,74,0.75),0 0 0 1px rgba(255,194,74,0.5); 166 transition:transform .35s var(--ease),box-shadow .35s,filter .3s; 167 -webkit-tap-highlight-color:transparent; 168 } 169 .hero-cta:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45),0 18px 48px -10px rgba(255,194,74,0.9),0 0 0 1px rgba(255,194,74,0.6)} 170 .hero-cta:active{transform:scale(0.98)} 171 .hero-cta svg{width:16px;height:16px;flex:none;transition:transform .4s var(--ease)} 172 .hero-cta:hover svg{transform:translateX(-4px)} 173 @media(max-width:767px){ 174 .wm{width:min(72vw,620px)} 175 .hero-cta{width:min(100%,340px)} 176 } 177 html.intro-done .wm-say{opacity:1} 178 .wm-cap{ 179 font-family:var(--ff-mono);font-weight:500;font-size:clamp(10px,1.3vw,12.5px); 180 letter-spacing:0.52em;text-indent:0.52em;color:var(--mut); 181 direction:ltr;opacity:0;will-change:opacity,transform; 182 } 183 #heroFlash{ 184 position:absolute;inset:0;pointer-events:none;opacity:0; 185 background:radial-gradient(42% 38% at 50% 46%,rgba(255,255,255,0.34),rgba(170,120,255,0.10) 48%,transparent 74%); 186 } 187 .scroll-cue{ 188 position:absolute;bottom:max(26px,env(safe-area-inset-bottom));inset-inline-start:50%; 189 transform:translateX(50%); 190 display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0; 191 } 192 .scroll-cue span{font-size:13px;color:var(--mut);letter-spacing:0} 193 .scroll-cue i{ 194 width:1px;height:44px;border-radius:1px;overflow:hidden;position:relative; 195 background:rgba(242,241,245,0.10); 196 } 197 .scroll-cue i::after{ 198 content:"";position:absolute;inset-inline:0;top:-100%;height:100%; 199 background:linear-gradient(to bottom,transparent,rgba(242,241,245,0.75)); 200 animation:cueDrop 2.2s cubic-bezier(0.6,0,0.3,1) infinite; 201 } 202 @keyframes cueDrop{0%{top:-100%}55%,100%{top:100%}} 203 204 html.intro-done .wm{transform:none} 205 html.intro-done #wmMain .st{stroke-dasharray:none;stroke-dashoffset:0;opacity:1} 206 html.intro-done #wmDot{opacity:1} 207 html.intro-done #wmGlow,html.intro-done #wmSpec,html.intro-done #wmSweep{opacity:0} 208 html.intro-done .wm-cap{opacity:1} 209 html.intro-done .scroll-cue{opacity:0.85} 210 html.revisit .wm-wrap{animation:softIn 0.85s var(--ease) both} 211 @keyframes softIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}} 212 213 /* âââââââââââââââââ Ø¯Ø§Ø³ØªØ§Ù + Ù Ø³ÛØ± âââââââââââââââââ */ 214 .story{position:relative} 215 .trail{ 216 position:absolute;inset:0;z-index:0;pointer-events:none; 217 } 218 @media(max-width:767px){ 219 /* Ø§ÛØ³ØªÚ¯Ø§ÙâÙØ§ رÙÛ Ù ÙØ¨Ø§ÛÙ Ø¨Ù ÙØ¨ÙâÙØ§ Ù ÛâØ±ÙÙØ¯ تا از Ù ØªÙ ÙØ§ØµÙÙ Ø¨Ú¯ÛØ±Ùد */ 220 .trail{transform:scaleX(1.32);transform-origin:50% 50%} 221 .trail .tnode{transform:scaleX(0.758)} 222 .trail .tnode.on{transform:scaleX(0.758) scale(1.25)} 223 .trail .thead{transform:scaleX(0.758)} 224 } 225 .trail svg{position:absolute;inset:0;width:100%;height:100%}
226 #trailBase{stroke:rgba(242,241,245,0.07)} 227 #trailDraw{stroke:rgba(255,194,74,0.72)} 228 .thead{ 229 position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px; 230 border-radius:50%;background:#FFE1A8;opacity:0; 231 box-shadow:0 0 14px 4px rgba(255,194,74,0.55),0 0 42px 12px rgba(255,150,80,0.25); 232 will-change:left,top,opacity;pointer-events:none; 233 } 234 .tnode{ 235 position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%; 236 border:1.5px solid rgba(242,241,245,0.22);background:var(--void); 237 transition:border-color .6s,box-shadow .6s,background .6s,transform .6s var(--ease); 238 } 239 .tnode::after{ 240 content:"";position:absolute;inset:3px;border-radius:50%; 241 background:transparent;transition:background .6s; 242 } 243 .tnode.on{border-color:rgba(255,194,74,0.85);transform:scale(1.25); 244 box-shadow:0 0 18px rgba(255,194,74,0.4)} 245 .tnode.on::after{background:var(--gold)} 246 .tnode::before{ 247 content:"";position:absolute;inset:-3px;border-radius:50%;pointer-events:none; 248 border:1.5px solid rgba(255,194,74,0);opacity:0; 249 } 250 .tnode.on::before{animation:nodeRip 1s var(--ease) both} 251 @keyframes nodeRip{ 252 0%{transform:scale(0.55);border-color:rgba(255,194,74,0.75);opacity:1} 253 100%{transform:scale(2.7);border-color:rgba(255,194,74,0);opacity:0} 254 } 255 256 .ch{height:calc(var(--chn,2.5)*100vh);height:calc(var(--chn,2.5)*100svh);position:relative;z-index:1} 257 .ch-pin{ 258 position:sticky;top:0;height:100vh;height:100svh; 259 display:flex;align-items:center;justify-content:center;overflow:hidden; 260 } 261 .ch-num{ 262 position:absolute;top:50%;inset-inline-start:50%; 263 transform:translate(50%,-50%); 264 font-weight:700;font-size:clamp(190px,42vw,420px);line-height:1; 265 color:rgba(242,241,245,0.05);opacity:0;pointer-events:none;user-select:none; 266 will-change:transform,opacity;font-variant-numeric:tabular-nums; 267 } 268 .ch-inner{ 269 position:relative;max-width:880px;padding-inline:clamp(22px,6vw,56px); 270 display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.2vh,22px); 271 text-align:center;will-change:transform,filter; 272 } 273 .scene{ 274 width:min(430px,80vw);height:auto;overflow:visible; 275 margin-bottom:clamp(4px,1.4vh,14px); 276 will-change:transform,opacity; 277 } 278 .scene [data-fx="draw"]{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
278 279 @media(max-width:767px){ 280 .scene{width:min(340px,74vw);margin-inline-start:clamp(20px,9vw,44px)} 281 } 282 .scene [data-fx="pop"]{opacity:0;transform-box:fill-box;transform-origin:center} 283 .ch-tag{ 284 display:inline-flex;align-items:center;justify-content:center;gap:12px; 285 font-size:13px;font-weight:500;letter-spacing:0;color:var(--mut); 286 opacity:0;will-change:opacity,transform; 287 } 288 .ch-tag i{width:20px;height:1.5px;background:var(--gold);border-radius:1px;opacity:0.85;flex:none} 289 .ch-l{ 290 font-size:clamp(25px,5.1vw,49px);font-weight:700;line-height:1.72; 291 letter-spacing:0;text-wrap:balance;color:#D9D7E2; 292 opacity:0;will-change:opacity,transform,filter; 293 } 294 .ch-l.l2{font-weight:700;color:var(--text)} 295 /* line-mask word reveal (spans built by JS; padding keeps Persian ascenders/descenders unclipped) */ 296 .ch-l .w{ 297 display:inline-block;overflow:hidden;vertical-align:bottom; 298 padding:0.26em 0.11em 0.18em;margin:-0.26em -0.11em -0.18em; 299 } 300 .ch-l .wi{display:inline-block;transform:translateY(132%);will-change:transform} 301 .ch .brand{font-family:var(--ff-mono);font-weight:500;font-size:0.86em;letter-spacing:0.01em} 302 303 /* âââââââââââââââââ proof âââââââââââââââââ */ 304 .proof{position:relative;z-index:1;padding:clamp(90px,14vh,160px) 0 clamp(40px,7vh,90px)} 305 .wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(20px,5vw,56px)} 306 .kicker{ 307 display:inline-flex;align-items:center;gap:12px; 308 font-size:13px;font-weight:500;letter-spacing:0;color:var(--mut); 309 } 310 .kicker::before{content:"";width:20px;height:1.5px;background:var(--gold);border-radius:1px;opacity:0.85} 311 .proof-head{text-align:center;max-width:760px;margin-inline:auto;margin-bottom:clamp(56px,9vh,110px)} 312 .proof-head .kicker{justify-content:center} 313 .proof-head h2{ 314 font-size:clamp(27px,4.6vw,46px);font-weight:700;line-height:1.6; 315 letter-spacing:0;margin-top:16px;text-wrap:balance; 316 } 317 .proof-head p{color:var(--mut);margin-top:14px;font-size:clamp(15px,1.6vw,17.5px)} 318 319 .pr{ 320 display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(30px,5vw,72px); 321 align-items:center;padding-block:clamp(46px,8vh,92px); 322 border-top:1px solid rgba(242,241,245,0.07); 323 } 324 .pr:nth-child(odd of .pr) .pr-vis{order:-1} 325 @media(max-width:880px){ 326 .pr{grid-template-columns:1fr;gap:34px} 327 .pr:nth-child(odd of .pr) .pr-vis{order:0} 328 } 329 .pr-idx{font-family:var(--ff-fa);font-size:13px;letter-spacing:0;color:var(--mut)} 330 .pr-text h3{ 331 font-size:clamp(24px,3.4vw,34px);font-weight:700;letter-spacing:0; 332 margin-top:10px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;line-height:1.5; 333 } 334 .pr-dom{ 335 font-family:var(--ff-mono);font-size:13px;font-weight:400;color:var(--mut); 336 letter-spacing:0.04em;direction:ltr;unicode-bidi:isolate; 337 border-bottom:1px solid var(--line2);padding-bottom:2px;transition:color .3s,border-color .3s; 338 } 339 .pr-dom:hover{color:var(--text);border-color:var(--mut2)} 340 .pr-text > p{color:var(--mut);font-size:clamp(15px,1.7vw,17.5px);margin-top:10px;max-width:52ch} 341 .stats{ 342 display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px); 343 margin-top:clamp(24px,3.6vh,38px); 344 } 345 @media(max-width:520px){.stats{grid-template-columns:1fr;gap:0}} 346 .stat{border-top:1px solid var(--line2);padding-top:14px} 347 @media(max-width:520px){.stat{padding-block:14px;border-top:1px solid var(--line)} .stat:first-child{border-top-color:var(--line2)}} 348 .stat b{ 349 display:block;font-size:clamp(20px,2.3vw,25px);font-weight:700;line-height:1.4; 350 letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap; 351 } 352 .stat b small{font-size:0.65em;font-weight:600;color:#C9C7D4} 353 .stat > span{display:block;color:var(--mut);font-size:13px;line-height:1.9;margin-top:4px}
354 .stat b span{display:inline;color:inherit;font-size:inherit;line-height:inherit;margin:0} 355 .pr-foot{display:block;margin-top:18px;font-size:13px;color:var(--mut)} 356 .pr-lesson{ 357 margin-top:clamp(24px,3.6vh,38px);padding:22px 26px; 358 border-inline-start:2px solid var(--gold); 359 background:linear-gradient(105deg,rgba(255,194,74,0.05),transparent 70%); 360 border-radius:0 14px 14px 0; 361 font-size:clamp(16px,1.9vw,19px);font-weight:700;line-height:2; 362 } 363 .pr-vis{position:relative} 364 .pr-frame{ 365 position:relative;border:1px solid rgba(242,241,245,0.09);border-radius:20px;overflow:hidden; 366 background:radial-gradient(90% 90% at 50% 20%,rgba(11,11,18,0.82) 0%,rgba(7,7,12,0.82) 78%); 367 aspect-ratio:4/3;display:flex;align-items:center;justify-content:center; 368 will-change:transform; 369 } 370 .pr-frame::after{ 371 content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit; 372 box-shadow:inset 0 1px 0 rgba(255,255,255,0.05); 373 } 374 .pr-frame svg{width:78%;height:auto} 375 .pr-frame svg text{direction:ltr} 376 @keyframes liveP{0%,100%{opacity:0.5}50%{opacity:1}} 377 .dial-hand{transform-box:view-box;transform-origin:150px 110px;animation:dial 30s linear infinite} 378 @keyframes dial{to{transform:rotate(360deg)}} 379 #tikPath{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s cubic-bezier(0.5,0,0.2,1) 0.35s} 380 .in #tikPath{stroke-dashoffset:0} 381 382 /* reveals */ 383 .rv{opacity:0;transform:translateY(34px);transition:opacity .95s var(--ease),transform .95s var(--ease);transition-delay:var(--d,0s)} 384 .in .rv,.in.rv{opacity:1;transform:none} 385 386 /* âââââââââââââââââ Ø¨Ø®Ø´Ù Ø¯Ø³ØªÛØ§Ø± â Ú©Ø§Ø±ØªÙ Ø¨Ø§Ø²âØ´ÙÙØ¯Ù âââââââââââââââââ */ 387 .ask{position:relative;z-index:1;padding:clamp(90px,14vh,170px) 0;border-top:1px solid rgba(242,241,245,0.06)} 388 .ask-head{text-align:center;max-width:680px;margin-inline:auto;margin-bottom:clamp(36px,6vh,64px)} 389 .ask-head .kicker{justify-content:center} 390 .ask-head h2{ 391 font-size:clamp(26px,4.4vw,44px);font-weight:700;line-height:1.6; 392 letter-spacing:0;margin-top:16px;text-wrap:balance; 393 } 394 .ai-card{ 395 position:relative;max-width:720px;margin-inline:auto; 396 border-radius:28px;padding:clamp(20px,3.4vw,30px); 397 background:rgba(10,10,16,0.72); 398 border:1px solid rgba(242,241,245,0.1); 399 box-shadow:inset 0 1px 0 rgba(255,255,255,0.06),0 30px 90px rgba(0,0,0,0.5); 400 backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%); 401 transition:box-shadow .8s var(--ease),border-color .8s; 402 } 403 .ai-card.open{ 404 border-color:rgba(242,241,245,0.14); 405 box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),0 44px 130px rgba(0,0,0,0.65),0 0 80px rgba(124,77,255,0.07); 406 } 407 .ai-pitch{ 408 display:grid;grid-template-rows:1fr; 409 transition:grid-template-rows .75s var(--ease),opacity .45s ease; 410 cursor:pointer; 411 } 412 .ai-card.open .ai-pitch{grid-template-rows:0fr;opacity:0;pointer-events:none} 413 .ai-pitch > div{overflow:hidden;min-height:0} 414 .ai-pitch .inner{ 415 display:flex;flex-direction:column;align-items:center;text-align:center; 416 gap:10px;padding:clamp(14px,3vh,28px) 8px clamp(22px,3.6vh,34px); 417 } 418 .ai-b{position:relative;width:40px;margin-bottom:6px} 419 .ai-b svg{width:100%;height:auto;color:var(--text)} 420 .ai-b .halo{position:absolute;inset:-40%;filter:blur(14px);opacity:0.5} 421 .ai-pitch h3{font-size:clamp(20px,2.8vw,26px);font-weight:700;line-height:1.6;text-wrap:balance} 422 .ai-pitch p{color:var(--mut);font-size:clamp(15px,1.6vw,15.5px);max-width:44ch;text-wrap:pretty} 423 .ai-pitch .hint{ 424 margin-top:8px;font-size:13px;color:var(--mut); 425 display:inline-flex;align-items:center;gap:8px; 426 } 427 .ai-pitch .hint::after{ 428 content:"";width:5px;height:5px;border-radius:50%;background:var(--gold); 429 animation:liveP 2s ease-in-out infinite; 430 } 431 .ai-chat{ 432 display:grid;grid-template-rows:0fr;opacity:0; 433 transition:grid-template-rows .75s var(--ease),opacity .55s ease .12s; 434 } 435 .ai-card.open .ai-chat{grid-template-rows:1fr;opacity:1} 436 .ai-chat > div{overflow:hidden;min-height:0} 437 .ai-chat .inner{ 438 display:flex;flex-direction:column; 439 transform:translateY(14px);transition:transform .75s var(--ease); 440 } 441 .ai-card.open .ai-chat .inner{transform:none} 442 .chat-h{ 443 flex:none;display:flex;align-items:center;gap:12px; 444 padding:4px 6px 14px;border-bottom:1px solid rgba(255,255,255,0.08); 445 } 446 .chat-h svg{height:18px;width:auto;color:var(--text)} 447 .chat-h b{font-family:var(--ff-mono);font-weight:500;font-size:13.5px;letter-spacing:0.02em} 448 .chat-h .quota{margin-inline-start:auto;font-size:13px;color:var(--mut);font-weight:400} 449 .chat-x{ 450 flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center; 451 color:var(--mut);transition:color .3s,background .3s; 452 } 453 .chat-h .quota:empty + .chat-x{margin-inline-start:auto} 454 .chat-x:hover{color:var(--text);background:rgba(255,255,255,0.08)} 455 .msgs{ 456 min-height:170px;
456max-height:min(46vh,420px);overflow-y:auto;overscroll-behavior:contain; 457 padding:18px 8px;display:flex;flex-direction:column;gap:12px; 458 scrollbar-width:thin; 459 } 460 .m{max-width:86%;font-size:15px;line-height:2.05;text-wrap:pretty} 461 .m.user{ 462 align-self:flex-start; 463 background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1); 464 border-radius:16px 16px 16px 5px;padding:9px 15px; 465 } 466 .m.ai{align-self:stretch;max-width:100%;display:flex;gap:11px;align-items:flex-start} 467 .m.ai .av{ 468 flex:none;width:27px;height:27px;border-radius:50%;margin-top:4px; 469 border:1px solid rgba(255,255,255,0.13);background:rgba(255,255,255,0.05); 470 display:flex;align-items:center;justify-content:center; 471 } 472 .m.ai .av svg{height:12px;width:auto;color:var(--text)} 473 /* pre-line: شکست٠خط٠پاسخ (ÙÙØ±Ø³ØªâÙØ§Û «۱) ⦠۲) â¦Â») ØÙظ Ù ÛâØ´ÙØ¯ */ 474 .m.ai .tx{color:#E4E2EC;min-width:0;word-break:break-word;white-space:pre-line} 475 /* ÙÛÙک٠٠جاز٠داخÙ٠پاسخ â ØªÙÚ©ÙÙ ÙØ§ØªÛÙØ جدا از Ø¬ÙØªÙ ٠تÙÙ ÙØ§Ø±Ø³Û */ 476 .m.ai .tx a.lnk{ 477 direction:ltr;unicode-bidi:isolate;display:inline; 478 font-family:var(--ff-mono);font-size:0.9em;color:var(--gold); 479 text-decoration:underline;text-decoration-color:rgba(255,194,74,0.45);text-underline-offset:4px; 480 padding-block:2px;word-break:break-all; 481 } 482 .m.ai .tx a.lnk:hover{text-decoration-color:var(--gold)} 483 .m.ai .tx.stream::after{ 484 content:"";display:inline-block;width:2px;height:1em;margin-inline-start:3px; 485 vertical-align:-0.15em;background:var(--gold);border-radius:1px; 486 box-shadow:0 0 8px rgba(255,194,74,0.7); 487 animation:crt 1s steps(2) infinite; 488 } 489 @keyframes crt{50%{opacity:0}} 490 .m.think .tx{color:var(--mut);display:flex;align-items:center;gap:10px} 491 .m.ai .tx .note{display:block;color:var(--mut);font-size:13px;margin-top:6px} 492 .tb{height:22px;width:auto;overflow:visible;flex:none} 493 .tb .tbGlow{animation:tbPulse 1.5s ease-in-out infinite} 494 @keyframes tbPulse{0%,100%{opacity:0.15}50%{opacity:0.6}} 495 .tb .tbs{animation:tbSweep 1.5s cubic-bezier(0.45,0,0.55,1) infinite} 496 @keyframes tbSweep{from{transform:translateX(0)}to{transform:translateX(420px)}} 497 .m.sys{ 498 align-self:stretch;max-width:100%;text-align:center; 499 border:1px solid rgba(255,194,74,0.22);border-radius:16px; 500 background:rgba(255,194,74,0.05);padding:16px 18px; 501 } 502 .m.sys b{display:block;font-size:14px} 503 .m.sys p{color:var(--mut);font-size:13px;margin-top:4px} 504 .m.sys .sys-cta{ 505 display:inline-block;margin-top:12px;padding:8px 22px;border-radius:999px; 506 font-size:13px;font-weight:700;border:1px solid rgba(255,194,74,0.4); 507 transition:background .3s,transform .3s var(--ease); 508 } 509 .m.sys .sys-cta:hover{background:rgba(255,194,74,0.1);transform:translateY(-1px)} 510 .m.sys .sys-cta.gold{background:var(--gold);color:#0B0A07;border-color:var(--gold)} 511 .m.sys .sys-cta.gold:hover{background:#FFCD66} 512 /* Ú©Ø§Ø±ØªÙ Ø¢Ø±Ø§Ù Ù Ø¯Ø¹ÙØª Ø¨Ù ØØ³Ø§Ø¨ â Ø²ÛØ±Ù Ù¾Ø§Ø³Ø®Ø ÙÙ âØªØ±Ø§Ø² با ٠تÙÙ Ù¾Ø§Ø³Ø®Ø ÙØ§Ø¨Ù٠بست٠*/ 513 .m.nudge{ 514 position:relative;align-self:stretch;max-width:none; 515 margin-inline-start:38px;padding:14px 16px 16px;padding-inline-end:46px; 516 border-radius:16px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03); 517 animation:ngIn .55s var(--ease) both; 518 transition:opacity .25s ease,transform .25s ease; 519 } 520 .m.nudge.out{opacity:0;transform:translateY(4px)} 521 @keyframes ngIn{from{opacity:0;transform:translateY(8px)}} 522 .m.nudge b{display:block;font-size:13.5px;font-weight:600;line-height:1.9;color:var(--text)} 523 .m.nudge p{font-size:13px;line-height:1.95;color:var(--mut);margin-top:2px} 524 .m.nudge .ng-cta{ 525 display:inline-flex;align-items:center;min-height:40px;margin-top:12px;padding:0 20px; 526 border-radius:999px;background:var(--gold);color:#0B0A07;font-size:13px;font-weight:700; 527 transition:background .3s,transform .3s var(--ease); 528 } 529 .m.nudge .ng-cta:hover{background:#FFCD66;transform:translateY(-1px)} 530 .m.nudge .ng-x{ 531 position:absolute;top:8px;inset-inline-end:8px;width:32px;height:32px;border-radius:50%; 532 display:flex;align-items:center;justify-content:center;color:var(--mut); 533 transition:color .3s,background .3s; 534 } 535 .m.nudge .ng-x:hover{color:var(--text);background:rgba(255,255,255,0.06)} 536 @media (max-width:480px){.m.nudge{margin-inline-start:0}}
537 .chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:2px 6px 12px} 538 .chips.gone{display:none} 539 .chip{ 540 font-size:13px;color:var(--mut);padding:7px 15px;border-radius:999px; 541 border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03); 542 transition:color .3s,border-color .3s,background .3s; 543 } 544 .chip:hover{color:var(--text);border-color:rgba(255,255,255,0.22);background:rgba(255,255,255,0.06)} 545 546 /* âââââ ÙÙØ§Ø±Ù درخشاÙÙ ÚØª â ÙÙØ¨Ù ÙÙØ´ ٠صÙÙØ¹Û âââââ */ 547 .glowbar{ 548 position:relative;margin-top:14px;border-radius:999px; 549 isolation:isolate; 550 } 551 .gb-halo{ 552 position:absolute;inset:-3px;border-radius:999px;overflow:hidden; 553 filter:blur(20px);opacity:0.45;z-index:-1;pointer-events:none; 554 transform:translateZ(0); 555 transition:opacity .6s ease,transform .6s var(--ease); 556 } 557 .gb-halo2{ 558 position:absolute;inset:-14px;border-radius:999px;overflow:hidden; 559 filter:blur(40px);opacity:0.22;z-index:-2;pointer-events:none; 560 transform:translateZ(0); 561 transition:opacity .6s ease; 562 } 563 .gb-ring{ 564 position:absolute;inset:0;border-radius:999px;overflow:hidden; 565 pointer-events:none; 566 } 567 .gb-halo i,.gb-halo2 i,.gb-ring i{ 568 content:"";position:absolute;left:50%;top:50%; 569 width:calc(max(100%,110px)*1.25);aspect-ratio:1; 570 background:var(--neon);border-radius:50%; 571 transform:translate(-50%,-50%) rotate(0deg); 572 will-change:transform; 573 } 574 .glowbar.live .gb-halo i,.glowbar.live .gb-halo2 i,.glowbar.live .gb-ring i{ 575 animation:gbSpin 7s linear infinite; 576 } 577 @keyframes gbSpin{to{transform:translate(-50%,-50%) rotate(360deg)}} 578 .gb-core{ 579 position:relative;display:flex;align-items:center;gap:8px; 580 margin:2px;border-radius:999px; 581 background:#0A0A10; 582 padding:9px 10px 9px 12px; 583 box-shadow:inset 0 1px 0 rgba(255,255,255,0.05); 584 } 585 .glowbar.hot .gb-halo{opacity:0.9;transform:translateZ(0) scale(1.015)} 586 .glowbar.hot .gb-halo2{opacity:0.5} 587 .gb-ctl{ 588 flex:none;width:34px;height:34px;border-radius:50%; 589 display:flex;align-items:center;justify-content:center; 590 color:var(--mut2);border:1px solid rgba(255,255,255,0.09); 591 transition:color .3s,border-color .3s,background .3s; 592 } 593 .gb-ctl:hover{color:var(--text);border-color:rgba(255,255,255,0.2);background:rgba(255,255,255,0.05)} 594 .gb-ctl svg{width:14px;height:14px} 595 .glowbar input{ 596 flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text); 597 font:inherit;font-size:14.5px;caret-color:var(--gold);padding-inline:4px; 598 } 599 .glowbar input::placeholder{color:var(--mut)} 600 .gb-send{ 601 flex:none;width:38px;height:38px;border-radius:50%; 602 display:flex;align-items:center;justify-content:center; 603 background:linear-gradient(135deg,#7C4DFF 0%,#FF2E9E 52%,#FFC24A 100%); 604 box-shadow:inset 0 1px 0 rgba(255,255,255,0.35),0 4px 18px rgba(255,46,158,0.3); 605 transition:transform .35s var(--ease),box-shadow .35s,filter .3s; 606 } 607 .gb-send:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.4),0 8px 26px rgba(255,46,158,0.42)} 608 .gb-send:active{transform:scale(0.9)} 609 .gb-send svg{width:15px;height:15px;color:#fff} 610 .gb-send[disabled]{opacity:0.55;pointer-events:none;filter:saturate(0.4)} 611 612 /* âââââââââââââââââ Ø¯Ø¹Ùت âââââââââââââââââ */ 613 .invite{ 614 position:relative;z-index:1;padding:clamp(110px,18vh,200px) 0; 615 border-top:1px solid rgba(242,241,245,0.06); 616 text-align:center; 617 } 618 .rs-mark{width:44px;height:auto;margin-inline:auto;color:var(--text)} 619 .invite .kicker{justify-content:center;margin-top:30px} 620 .invite h2{ 621 font-size:clamp(30px,5.6vw,58px);font-weight:700;line-height:1.5; 622 letter-spacing:0;margin-top:16px;text-wrap:balance; 623 } 624 .invite .rs-p{ 625 color:#BDBACB;max-width:56ch;margin:18px auto 0; 626 font-size:clamp(15.5px,1.8vw,18px);line-height:2.15;text-wrap:pretty; 627 } 628 .invite .rs-p .brand{font-family:var(--ff-mono);font-size:0.88em;color:#D5D2E0} 629 .cta{ 630 position:relative;display:inline-flex;align-items:center;gap:12px; 631 margin-top:clamp(30px,5vh,44px);padding:17px 48px;border-radius:999px; 632 font-size:17px;font-weight:700;color:var(--text);overflow:hidden; 633 background:rgba(255,255,255,0.06); 634 backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%); 635 border:1px solid rgba(255,194,74,0.4); 636 box-shadow:inset 0 1px 0 rgba(255,255,255,0.28),0 14px 44px rgba(0,0,0,0.5),0 0 34px rgba(255,194,74,0.1); 637 transition:transform .4s var(--ease),box-shadow .5s var(--ease),border-color .4s; 638 } 639 .cta::before{ 640 content:"";position:absolute;inset:0; 641 background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,0.16) 48%,transparent 62%); 642 transform:translateX(-130%);transition:transform .9s var(--ease); 643 } 644 .cta:hover{transform:translateY(-2px);border-color:rgba(255,194,74,0.65);box-shadow:inset 0 1px 0 rgba(255,255,255,0.3),0 18px 54px rgba(0,0,0,0.55),0 0 48px rgba(255,194,74,0.18)} 645 .cta:hover::before{transform:translateX(130%)} 646 .cta:active{transform:translateY(0) scale(0.985)} 647 .cta .arr{transition:transform .4s var(--ease)} 648 .cta:hover .arr{transform:translateX(-5px)} 649 .cta-sub{ 650 display:inline-block;margin-top:18px;font-size:14px;color:var(--mut); 651 border-bottom:1px solid transparent;transition:color .3s,border-color .3s; 652 } 653 .cta-sub:hover{color:var(--text);border-color:var(--mut2)} 654 .cta-sub em{font-style:normal;color:var(--text);font-weight:600} 655 .rs-sale{margin-top:clamp(26px,4.6vh,40px);font-size:13px;color:var(--mut)} 656 .rs-sale em{font-style:normal;color:rgba(255,194,74,0.8);font-weight:600} 657 658 footer{ 659 position:relative;z-index:1;
660 border-top:1px solid rgba(242,241,245,0.07); 661 padding:34px clamp(20px,5vw,56px) max(34px,env(safe-area-inset-bottom)); 662 display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; 663 } 664 footer .f-word{height:15px;width:auto;color:var(--mut)} 665 footer span{font-size:13px;color:var(--mut)} 666 footer .mono{font-size:10.5px;letter-spacing:0.3em;direction:ltr} 667 668 /* âââââââââââââââââ reduced motion âââââââââââââââââ */ 669 @media (prefers-reduced-motion:reduce){ 670 .ch{height:auto !important;min-height:100vh;min-height:100svh} 671 .ch-l,.ch-tag,.ch-inner,.ch-num,.scene{opacity:1 !important;transform:none !important;filter:none !important} 672 .ch-l .w,.ch-l .wi,.ch-tag i{opacity:1 !important;transform:none !important;filter:none !important} 673 .ch-num{opacity:0.05 !important} 674 .scene [data-fx]{opacity:1 !important;transform:none !important} 675 .scene [data-fx="draw"]{stroke-dashoffset:0 !important} 676 #trailDraw{stroke-dasharray:none !important;stroke-dashoffset:0 !important} 677 .tnode{border-color:rgba(255,194,74,0.85)} 678 .tnode::after{background:var(--gold)} 679 .thead{display:none} 680 .rv{opacity:1;transform:none;transition:none} 681 .scroll-cue i::after,.dial-hand,.m.ai .tx.stream::after{animation:none} 682 #tikPath{stroke-dashoffset:0;transition:none} 683 .wm{transform:none} 684 .glowbar .gb-halo i,.glowbar .gb-halo2 i,.glowbar .gb-ring i{animation:none !important} 685 .tnode.on::before{animation:none} 686 .tb .tbs,.tb .tbGlow{animation:none} 687 .ai-pitch,.ai-chat,.ai-chat .inner{transition:none} 688 .m.nudge{animation:none;transition:none} 689 } 690 691/* ââââââââââ ٠کاÙÛک٠دسترسâÙ¾Ø°ÛØ±Û ââââââââââ 692 Ø¢Ø®Ø±Ù Ø´ÛØª تا ØºØ§ÙØ¨ باشد. ÚÛØ¯Ù ا٠ÙÙ Ø§Ù Ø§Ø³ØªØ ÙÙØ· ÙØ§ØÛÙâÛ ÙÙ Ø³Ø Ø§ÙØ¯Ø§Ø²ÙâÛ ÙØ±ÙØ¯ÛØ 693 ØÙÙÙâÛ ÙÙÚ©ÙØ³ Ù ØØ§Ø´ÛÙâÛ Ø§Ù Ù٠آÛÙÙ٠درست Ù ÛâØ´ÙØ¯. */ 694 695 /* ÙÙØ§Ø±Ù Ø¨Ø§ÙØ§: ÙØ´Ø§Ù٠٠دک٠ÙâÛ Ø´Ø±ÙØ¹ دستâÚ©Ù Û´Û´pxØ Ø§Ø±ØªÙØ§Ø¹Ù ÙÙØ§Ø± Ù٠ا٠۶۴px */ 696 .topbar{ 697 padding-block:10px; 698 padding-top:max(10px,env(safe-area-inset-top,0px)); 699 padding-left:max(clamp(16px,4vw,40px),env(safe-area-inset-left,0px)); 700 padding-right:max(clamp(16px,4vw,40px),env(safe-area-inset-right,0px)); 701 } 702 /* جعب٠۴۴px Ù ÛâØ´ÙØ¯ ÙÙÛ ÙØ´Ø§ÙÙ Ø³Ø±Ù Ø¬Ø§Û Ø®ÙØ¯Ø´ Ù ÛâÙ Ø§ÙØ¯: ÙØ¨ÙâÛ Ù¾Ø§ÛØ§ÙÛ٠جعب٠Ù٠اÙâØ¬Ø§Ø³Øª 703 Ú©Ù ÙØ¨ÙØ§Ù Ø¨ÙØ¯Ø پس ÙØ´Ø§Ù٠با justify-content:flex-end تکا٠ÙÙ ÛâØ®ÙØ±Ø¯. */ 704 .tb-brand{display:inline-flex;align-items:center;justify-content:flex-end;min-width:44px;min-height:44px} 705 .tb-start{min-height:44px} 706 .tb-login{display:inline-flex;align-items:center;min-height:44px} 707 708 /* ÙÛÙÚ©âÙØ§Û ٠تÙÛÙ Ø²ÛØ±Ø®Ø·âدار: Ø®Ø·Ù Ø²ÛØ± Ø³Ø±Ù Ø¬Ø§ÛØ´Ø ÙØ§ØÛÙâÛ Ù٠س Û´Û´px */ 709 .pr-dom,.cta-sub{position:relative} 710 .pr-dom::before,.cta-sub::before{ 711 content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); 712 width:100%;height:44px; 713 } 714 715 /* کادر٠پرسش: دک٠ÙâÙØ§Û Ø¯Ø§ÛØ±ÙâØ§Û Ø¯ÛØ³Ú©Ø´Ø§Ù را ÙÚ¯Ù Ù ÛâØ¯Ø§Ø±ÙØ¯Ø جعبÙâØ´Ø§Ù Û´Û´px Ù ÛâØ´ÙØ¯ */ 716 .gb-ctl,.gb-send{position:relative} 717 .gb-ctl::before,.gb-send::before{ 718 content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); 719 width:44px;height:44px;border-radius:50%; 720 } 721 .glowbar input{min-height:44px} 722 .gb-core{padding-block:6px} /* ÙØ±ÙØ¯Û Û¶px بÙÙØ¯ØªØ± Ø´Ø¯Ø Ù¾ÛÙ Ù٠ا٠۵۶px Ù ÛâÙ Ø§ÙØ¯ */ 723 .chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center} 724 .chat-x{position:relative} 725 .chat-x::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%} 726 727 /* iOS Ø²ÛØ±Ù Û±Û¶px Ø®ÙØ¯Ø´ زÙÙ Ù ÛâÚ©ÙØ¯ â ÙÙØ· رÙÛ Ø§Ø´Ø§Ø±Ùâگر٠درشت */ 728 @media (pointer:coarse){ .glowbar input{font-size:16px} } 729 730 /* ÙØ§ÛÙâÛ Ø¨Ø³ØªÙ Ø¯Ø± ØªØ±ØªÛØ¨Ù Tab ÙÙ Ø§ÙØ¯ */ 731 [inert]{pointer-events:none} 732 733 /* ØØ±Ú©ØªÙ ک٠تر â Ø¢ÙâÚ٠در بÙÙÚ©Ù Ø¨Ø§ÙØ§ جا Ù Ø§ÙØ¯Ù Ø¨ÙØ¯ */ 734 @media (prefers-reduced-motion:reduce){ 735 .topbar{transition:none} 736 .sky i{animation:none} 737 } 738</style> 739<noscript><style> 740 html .wm{transform:none} 741 html #wmMain .st{stroke-dasharray:none;stroke-dashoffset:0;opacity:1}
742 html #wmDot{opacity:1} 743 html .wm-cap{opacity:1} 744 html .wm-say{opacity:1} 745 html .scroll-cue{opacity:0.85} 746 .ch{height:auto;min-height:100svh} 747 .ch-l,.ch-tag{opacity:1 !important} 748 .ch-num{opacity:0.05 !important} 749 .scene [data-fx]{opacity:1 !important} 750 .scene [data-fx="draw"]{stroke-dashoffset:0 !important} 751 #trailDraw{stroke-dasharray:none} 752 .rv{opacity:1;transform:none} 753 .topbar{transform:none} 754</style></noscript> 755<link rel="stylesheet" href="/redesign.css"> 756<link rel="stylesheet" href="/scroll-scenes.css"> 757</head> 758<body> 759<a class="skip-link" href="#content">Ø±ÙØªÙ Ø¨Ù Ù ØØªÙØ§Û Ø§ØµÙÛ</a> 760 761<svg width="0" height="0" style="position:absolute" aria-hidden="true"> 762 <defs> 763 <linearGradient id="specG" x1="0" y1="0" x2="1" y2="0.12"> 764 <stop offset="0" stop-color="#FFC24A"/><stop offset="0.34" stop-color="#FF2E9E"/> 765 <stop offset="0.66" stop-color="#7C4DFF"/><stop offset="1" stop-color="#27E0FF"/> 766 </linearGradient> 767 <linearGradient id="specGV" x1="0" y1="0" x2="0.3" y2="1"> 768 <stop offset="0" stop-color="#7C4DFF"/><stop offset="0.5" stop-color="#FF2E9E"/> 769 <stop offset="1" stop-color="#FFC24A"/> 770 </linearGradient> 771 <linearGradient id="specSweepG" x1="0" y1="0" x2="1" y2="0"> 772 <stop offset="0" stop-color="#FFC24A" stop-opacity="0"/> 773 <stop offset="0.25" stop-color="#FFC24A"/> 774 <stop offset="0.45" stop-color="#FF2E9E"/> 775 <stop offset="0.62" stop-color="#7C4DFF"/> 776 <stop offset="0.8" stop-color="#27E0FF"/> 777 <stop offset="1" stop-color="#27E0FF" stop-opacity="0"/> 778 </linearGradient> 779 <g id="bxMarkBold" fill="none" stroke-linecap="round" stroke-width="46"> 780 <path d="M60,56 L60,224"/><circle cx="108" cy="176" r="48"/> 781 </g> 782 <g id="bxWordThin" fill="none" stroke-linecap="round"> 783 <path d="M30,28 L30,112"/><circle cx="54" cy="88" r="24"/> 784 <path d="M112,64 L112,112"/><path d="M112,38 l0.01,0" stroke-width="21"/> 785 <path d="M140,65 L184,111"/><path d="M184,65 L140,111"/> 786 <circle cx="228" cy="88" r="24"/><path d="M252,64 L252,112"/> 787 </g> 788 <mask id="tbM" maskUnits="userSpaceOnUse" x="0" y="0" width="240" height="280"> 789 <g fill="none" stroke="#fff" stroke-width="46" stroke-linecap="round"> 790 <path d="M60,56 L60,224"/><circle cx="108" cy="176" r="48"/> 791 </g> 792 </mask> 793 </defs> 794</svg> 795 796<!-- âââââââââ Ø³Ùر٠رÙÚ¯ÛÙ Ù¾Ø³âØ²Ù ÛÙÙ âââââââââ --> 797<div class="sky" aria-hidden="true"> 798 <i class="w1"></i><i class="w2"></i><i class="w3"></i><i class="w4"></i> 799 <i class="w5"></i><i class="w6"></i><i class="w7"></i> 800</div> 801 802<!-- âââââââââ ÙÙØ§Ø±Ù Ø¨Ø§ÙØ§ âââââââââ --> 803<header class="topbar" id="topbar"> 804 <a class="tb-brand ltr" href="#top" aria-label="bixa â ØµÙØÙ اصÙÛ"> 805 <svg viewBox="14 12 254 116" role="img" aria-label="bixa"><use href="#bxWordThin" stroke="currentColor" stroke-width="16"/></svg> 806 </a> 807 <nav class="site-nav" aria-label="بخشâÙØ§Û ØµÙØÙ"> 808 <a href="#learn">Ø¢ÙÚÙ ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±Û</a><a href="#path">از کجا Ø´Ø±ÙØ¹ Ú©ÙÙ Ø</a><a href="#proof">Ú©Ø§Ø±ÙØ§Ù Ù</a><a href="#faq">سؤاÙâÙØ§Û Ø±Ø§ÛØ¬</a> 809 </nav> 810 <div class="tb-links"><a class="tb-login" href="/login">ÙØ±Ùد</a><a class="tb-start" href="/signup">راÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ú©Ù <span aria-hidden="true">â</span></a></div> 811</header> 812 813<main id="content"> 814 815<!-- âââââââââ hero âââââââââ --> 816<section class="hero" id="top" aria-label="bixa"><div class="hero-stage"> 817 <div id="heroFlash" aria-hidden="true"></div> 818 <div class="wm-wrap" id="wmWrap"> 819 <div class="ltr" style="display:block"> 820 <svg class="wm" id="wm" viewBox="24 20 526 236" role="img" aria-label="bixa"> 821 <defs> 822 <linearGradient id="specGB" gradientUnits="userSpaceOnUse" x1="46" y1="44" x2="164" y2="236"> 823 <stop offset="0" stop-color="#7C4DFF"/><stop offset="0.5" stop-color="#FF2E9E"/> 824 <stop offset="1" stop-color="#FFC24A"/> 825 </linearGradient> 826 <mask id="bSweepMask" maskUnits="userSpaceOnUse" x="0" y="0" width="560" height="270"> 827 <g fill="none" stroke="#fff" stroke-width="46" stroke-linecap="round"> 828 <path d="M60,56 L60,224"/><circle cx="108" cy="176" r="48"/> 829 </g> 830 </mask> 831 </defs>
832 <g id="wmGlow" fill="none" stroke="url(#specG)" stroke-width="48" stroke-linecap="round" style="filter:blur(12px)"> 833 <path d="M60,56 L60,224"/><circle cx="108" cy="176" r="48"/> 834 </g> 835 <g id="wmMain" fill="none" stroke="#F2F1F5" stroke-linecap="round" stroke-width="46"> 836 <path id="wBs" class="st" pathLength="1" d="M60,56 L60,224"/> 837 <circle id="wBb" class="st" pathLength="1" cx="108" cy="176" r="48"/> 838 <path id="wIs" class="st" pathLength="1" d="M224,128 L224,224"/> 839 <circle id="wmDot" cx="224" cy="70" r="28" fill="#F2F1F5" stroke="none"/> 840 <path id="wX1" class="st" pathLength="1" d="M280,130 L368,222"/> 841 <path id="wX2" class="st" pathLength="1" d="M368,130 L280,222"/> 842 <circle id="wAb" class="st" pathLength="1" cx="468" cy="176" r="48"/> 843 <path id="wAs" class="st" pathLength="1" d="M516,128 L516,224"/> 844 </g> 845 <g id="wmSpec" fill="none" stroke="url(#specGB)" stroke-width="46" stroke-linecap="round"> 846 <path d="M60,56 L60,224"/><circle cx="108" cy="176" r="48"/> 847 </g> 848 <g mask="url(#bSweepMask)"> 849 <rect id="wmSweep" x="-340" y="10" width="340" height="256" fill="url(#specSweepG)"/> 850 </g> 851 </svg> 852 </div> 853 <div class="wm-cap" id="wmCap">BIXA.AI</div> 854 <div class="wm-say" id="wmSay"> 855 <span class="hero-eyebrow">از اÙÙÛÙ Ø§ÛØ¯Ù تا ÛÚ© Ù ØØµÙÙ ÙØ§ÙعÛ</span> 856 <h1>ساخت٠را ÛØ§Ø¯ Ø¨Ú¯ÛØ±.<br>Ø§ÛØ¯ÙâØ§Øª را <em>ÙØ§ÙØ¹Û Ú©Ù.</em></h1> 857 <p>بدÙ٠تجربÙÙ Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³ÛØ Ø¨Ø§ ÙÙØ´ ٠صÙÙØ¹Û ÙØ±Ù âØ§ÙØ²Ø§Ø± بساز ٠ب٠کسبâÙÚ©Ø§Ø±ÙØ§ ارائ٠کÙ. در <span class="ltr">bixa</span>Ø ÙØ¯Ù âØ¨ÙâÙØ¯Ù ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±Û ÚÙ Ø¨Ø³Ø§Ø²ÛØ ÚØ·Ùر Ø¨Ø³Ø§Ø²Û Ù Ø¨Ù ÚÙ Ú©Ø³Û Ø¨ÙØ±ÙØ´Û.</p> 858 <div class="hero-actions"><a class="hero-cta" id="heroCta" href="/signup">راÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ú©Ù 859 <svg viewBox="0 0 16 16" fill="none" aria-hidden="true"> 860 <path d="M10 3 L5 8 L10 13" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/> 861 </svg> 862 </a><a class="text-link" href="#learn">ببÛÙ ÚÙ ÚÛØ²Û Ù ÛâØ³Ø§Ø²Û <span aria-hidden="true">â</span></a></div> 863 <p class="hero-note"><span aria-hidden="true">â</span> Ø´Ø±ÙØ¹ راÛگا٠· ٠اÙÛÙØ³Øª Û²Û¹ دÙÛÙÙâØ§Û Â· اÙÙÛÙ ÙØ¯Ù ع٠ÙÛ</p> 864 </div> 865 </div> 866 <div class="hero-bottom"><span>ÛÚ© Ù Ø³ÛØ± Ø¨Ø±Ø§Û <b>ÛØ§Ø¯ Ú¯Ø±ÙØªÙØ Ø³Ø§Ø®ØªÙ Ù Ø§Ø±Ø§Ø¦Ù Ú©Ø±Ø¯Ù.</b></span><span class="ltr">IDEA â BUILD â LAUNCH</span></div> 867 <div class="scroll-cue" id="scrollCue" aria-hidden="true"><span>اسکرÙÙ Ú©Ù</span><i></i></div> 868<div class="hero-progress" aria-hidden="true"><i></i></div></div></section> 869 870<div class="trust-line"><div class="trust-inner"> 871 <p>اÛÙ Ù Ø³ÛØ± را با Ø³Ø§Ø®ØªÙ Ù ØØµÙÙâÙØ§Û ÙØ§ÙØ¹Û ÛØ§Ø¯ Ú¯Ø±ÙØªÙâØ§ÛÙ .</p> 872 <div class="trust-names"><a href="https://tik.money" target="_blank" rel="noopener">تÛÚ©<small class="ltr">tik.money â</small></a><a href="https://arz.me" target="_blank" rel="noopener">ارز دات Ù Û<small class="ltr">arz.me â</small></a><span>رادÛÙ Ù¾Ø±Ø§ÛØ³<small>ÙÛ٠تâÙØ§Û ÙØØ¸ÙâØ§Û</small></span><span>رادÛÙ <b class="ltr">RSC</b><small>Ø¯Ø³ØªÛØ§Ø± Ø¯Ø§ÛØ±Ú©Øª</small></span></div> 873</div></div> 874 875<section class="section-shell" id="learn" aria-labelledby="learn-title"><div class="learn-stage"> 876 <div class="learn-layout"> 877 <div class="learn-copy"><span class="section-label">01 / LEARN BY BUILDING</span><h2 class="section-title" id="learn-title">ÙØ± پرÙÚÙØ ÛÚ© Ù ÙØ§Ø±Øª.<br>ÙØ± Ù ÙØ§Ø±ØªØ <em>ÛÚ© ا٠کا٠تازÙ.</em></h2><p class="section-intro">Ø±Ø¨Ø§ØªØ Ù¾ÙØªÙØ±Ù ÛØ§ Ø¯Ø³ØªÛØ§Ø±Ø با Ø³Ø§Ø®ØªÙ ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±Û. ÙØ± پرÙÚ٠از ÛÚ© ÙÛØ§Ø² ÙØ§ÙØ¹Û Ø´Ø±ÙØ¹ Ù ÛâØ´ÙØ¯ ٠ت٠را Ø¨Ù Ø®Ø±ÙØ¬ÛâØ§Û Ù ÛâØ±Ø³Ø§ÙØ¯ Ú©Ù Ù ÛâØªÙØ§ÙÛ Ø¨Ù ÛÚ© کسبâÙکار ÙØ´Ø§Ù بدÙÛ.</p><a class="text-link" href="#story">Ù Ø³ÛØ± Ø§ÛØ¯Ù تا Ù ØØµÙ٠را ببÛÙ <span aria-hidden="true">â</span></a></div> 878 <div class="deliverable-list" aria-label="Ø§Ø¬Ø²Ø§Û ÙØ± پرÙÚÙ"> 879 <div class="deliverable-row"><span class="list-index">01</span><div><h3>ببÛÙ Ù ÙØ¯Ù âØ¨ÙâÙØ¯Ù بساز</h3><p>ÙÛØ¯ÛÙÙØ§Û ساخت پرÙÚÙØ از تعرÛ٠٠سئÙ٠تا Ø±Ø³ÛØ¯Ù ب٠ÛÚ© Ø®Ø±ÙØ¬Û ÙØ§Ø¨ÙâØ§Ø¬Ø±Ø§.</p></div><span class="item-symbol" aria-hidden="true">â</span></div> 880 <div class="deliverable-row"><span class="list-index">02</span><div><h3>ب٠جزÙÙ Ù Ø³ÙØ±Ø³ برگرد</h3><p>٠رجع تصÙÛØ±Û Ù ÙØ§ÛÙâÙØ§Û پرÙÚÙØ Ø¨Ø±Ø§Û Ù Ø±ÙØ±Ø ت٠رÛÙ Ù Ø§Ø¯Ø§Ù Ù Ø¯Ø§Ø¯Ù Ù Ø³ÛØ±.</p></div><span class="item-symbol" aria-hidden="true">â</span></div> 881 <div class="deliverable-row"><span class="list-index">03</span><div><h3>Ù٠اÙâØ¬Ø§ Ú©Ù Ú¯ÛØ± Ú©Ø±Ø¯ÛØ بپرس</h3><p>Ø¯Ø³ØªÛØ§Ø± ÙØ± پرÙÚÙØ با Ø´ÙØ§Ø®Øª Ù ØØªÙØ§Û Ù٠ا٠پرÙÚ٠ب٠سؤاÙâÙØ§Ûت پاسخ Ù ÛâØ¯ÙØ¯.</p></div><span class="item-symbol" aria-hidden="true">â³</span></div> 882 <div class="deliverable-row"><span class="list-index">04</span><div><h3>Ø¨Ø±Ø§Û ÛÚ© ÙÛØ§Ø² ÙØ§ÙØ¹Û Ø±Ø§ÙâØÙ بساز</h3><p>ÛØ§Ø¯ Ø¨Ú¯ÛØ± Ø®Ø±ÙØ¬ÛâØ§Øª ب٠درد Ú٠کسبâÙÚ©Ø§Ø±Û Ù ÛâØ®ÙØ±Ø¯ Ù ÚÚ¯ÙÙ٠آ٠را ارائ٠کÙÛ.</p></div><span class="item-symbol" aria-hidden="true">â</span></div> 883 </div> 884 </div> 885 <div class="learn-progress" aria-hidden="true"><span>ÙØ¯Ù âØ¨ÙâÙØ¯Ù Ø Ø§Ø² ÛØ§Ø¯Ú¯ÛØ±Û ØªØ§ ارائÙ</span><div><i></i></div><b>Û°Û± / Û°Û´</b></div> 886</div></section> 887 888<section class="path-section" id="path" aria-labelledby="path-title"><div class="section-shell"> 889 <div class="path-top"><div><span class="section-label">02 / YOUR FIRST STEPS</span><h2 class="section-title" id="path-title">از کجا Ø´Ø±ÙØ¹ Ú©ÙÛØ<br>از ÙÙ ÛÙ Ø³Ù ÙØ¯Ù .</h2></div><p class="section-intro">ÙØ§Ø²Ù ÙÛØ³Øª از ÙØ¨Ù ÙÙ ÙâÚÛØ² را Ø¨ÙØ¯ باشÛ. Ù Ø³ÛØ± Ø´Ø±ÙØ¹ ٠شخص است ٠با ÛÚ© ØØ³Ø§Ø¨ راÛÚ¯Ø§Ù ÙØ§Ø±Ø¯Ø´ Ù ÛâØ´ÙÛ.</p></div> 890 <div class="path-steps"> 891 <article class="path-step"><span class="step-num">01 â JOIN</span><h3>ØØ³Ø§Ø¨Øª را بساز</h3><p>با ش٠ارÙÙ Ù ÙØ¨Ø§ÛÙ ÛØ§ ØØ³Ø§Ø¨ Ú¯ÙÚ¯Ù ÙØ§Ø±Ø¯ Ø´Ù Ù Ù Ø³ÛØ± ÛØ§Ø¯Ú¯ÛرÛâØ§Øª را Ø´Ø±ÙØ¹ Ú©Ù.</p><a class="step-tag" href="/signup">ساخت ØØ³Ø§Ø¨ راÛگا٠â</a></article> 892 <article class="path-step"><span class="step-num">02 â UNDERSTAND</span><h3>اÙÙØ ÙÙØ´Ù را ببÛÙ</h3><p>٠اÙÛÙØ³Øª Û²Û¹ دÙÛÙÙâØ§Û Ø±Ø§ ببÛ٠تا با Ø±ÙØ´ کار Ù Ù Ø³ÛØ± ساخت Ù ØØµÙÙ Ø¢Ø´ÙØ§ Ø´ÙÛ.</p><span class="step-tag">Û²Û¹ دÙÛÙÙ Ø¨Ø±Ø§Û Ø´Ø±ÙØ¹</span></article> 893 <article class="path-step"><span class="step-num">03 â CREATE</span><h3>
893اÙÙÛÙ ÙØ¯Ù را ع٠ÙÛ Ø¨Ø±Ø¯Ø§Ø±</h3><p>از Ù ØØªÙØ§Û Ø±Ø§ÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ú©Ù Ù Ø¢Ù ÙØ®ØªÙâÙØ§Ûت را در ع٠٠ب٠کار Ø¨Ú¯ÛØ±. ÙØ±Ø¬Ø§ سؤاÙÛ Ø¯Ø§Ø´ØªÛØ Ø¯Ø³ØªÛØ§Ø± ÙÙ Ø±Ø§ÙØª است.</p><span class="step-tag">ÛØ§Ø¯Ú¯ÛØ±Û Ø¨Ø§ Ø§ÙØ¬Ø§Ù دادÙ</span></article> 894 </div> 895</div></section> 896<div class="section-shell story-heading"><span class="section-label">03 / FROM AN IDEA TO A PRODUCT</span><h2 class="section-title">ÙØ± Ù ØØµÙÙØ از <em>ÛÚ© جرÙÙ</em> Ø´Ø±ÙØ¹ Ù ÛâØ´ÙØ¯.</h2><p class="section-intro">اÛÙ Ù Ø³ÛØ± را با ÙÙ Ø·Û Ù ÛâÚ©ÙÛÙ .</p></div> 897 898<!-- âââââââââ Ø¯Ø§Ø³ØªØ§Ù â ÛÚ© Ù Ø³ÛØ± âââââââââ --> 899<div class="story" id="story"> 900 901 <div class="trail" aria-hidden="true"> 902 <svg viewBox="0 0 1000 1030" preserveAspectRatio="none"> 903 <path id="trailBase" vector-effect="non-scaling-stroke" fill="none" stroke-width="1.5" 904 d="M500,-10 C500,50 250,66 250,129 C250,193 718,318 750,382 C780,444 250,582 250,648 C250,714 718,840 750,904 C778,958 500,972 500,1040"/> 905 <path id="trailDraw" vector-effect="non-scaling-stroke" fill="none" stroke-width="2" stroke-linecap="round"
906 d="M500,-10 C500,50 250,66 250,129 C250,193 718,318 750,382 C780,444 250,582 250,648 C250,714 718,840 750,904 C778,958 500,972 500,1040"/> 907 </svg> 908 <span class="thead" id="trailHead"></span> 909 <span class="tnode" style="left:25%;top:12.524%"></span> 910 <span class="tnode" style="left:75%;top:37.087%"></span> 911 <span class="tnode" style="left:25%;top:62.913%"></span> 912 <span class="tnode" style="left:75%;top:87.767%"></span> 913 </div> 914 915 <section class="ch" id="ch1" style="--chn:2.1" data-ax="0" data-ay="1"> 916 <div class="ch-pin"> 917 <div class="ch-num" aria-hidden="true">Û°Û±</div> 918 <div class="ch-inner"> 919 <svg class="scene" viewBox="0 0 360 150" aria-hidden="true"> 920 <!-- دÙÛØ§Û ÙØ¯ÛÙ (راست): ساÙâÙØ§ Ø¢Ù ÙØ®ØªÙ â Ù¾ÙØ¬Ø±ÙâÛ Ø§ÙØ¨ÙÙ٠کد --> 921 <g data-fx="fade" data-a="0.34" data-b="0.56"> 922 <rect data-fx="draw" data-a="0.04" data-b="0.2" pathLength="1" x="214" y="24" width="128" height="102" rx="10" fill="none" stroke="#4A4860" stroke-width="1.5"/> 923 <g stroke="#3A3850" stroke-width="2" stroke-linecap="round"> 924 <path data-fx="draw" data-a="0.08" data-b="0.18" pathLength="1" d="M260,46 h64"/> 925 <path data-fx="draw" data-a="0.1" data-b="0.2" pathLength="1" d="M232,60 h84"/> 926 <path data-fx="draw" data-a="0.12" data-b="0.22" pathLength="1" d="M260,74 h56"/> 927 <path data-fx="draw" data-a="0.14" data-b="0.24" pathLength="1" d="M250,88 h74"/> 928 <path data-fx="draw" data-a="0.16" data-b="0.26" pathLength="1" d="M278,102 h38"/> 929 <path data-fx="draw" data-a="0.17" data-b="0.27" pathLength="1" d="M232,102 h32"/> 930 </g> 931 <text x="278" y="140" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#55536A">ساÙâÙØ§ Ø¢Ù ÙØ®ØªÙ</text> 932 </g> 933 <!-- گذر â Ø±Ù ب٠ÚÙ¾Ø Ø¯Ø± Ø¬ÙØªÙ Ø®ÙØ§Ùد٠--> 934 <path data-fx="draw" data-a="0.3" data-b="0.46" pathLength="1" d="M202,75 H154 M162,67 l-9,8 l9,8" fill="none" stroke="#9B99A8" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/> 935 <!-- دÙÛØ§Û ÙÙ (ÚÙ¾): ÛÚ© Ø®Ø·Ù Ø®ÙØ§Ø³ØªÙ --> 936 <rect data-fx="draw" data-a="0.4" data-b="0.62" pathLength="1" x="18" y="56" width="126" height="38" rx="19" fill="none" stroke="#F2F1F5" stroke-width="2"/> 937 <circle data-fx="pop" data-a="0.58" data-b="0.72" cx="122" cy="75" r="4" fill="#FFC24A"/> 938 <path data-fx="draw" data-a="0.62" data-b="0.78" pathLength="1" d="M106,75 h-64" stroke="#9B99A8" stroke-width="2.4" stroke-linecap="round" fill="none"/> 939 <g data-fx="pop" data-a="0.72" data-b="0.85" fill="none" stroke="#FFC24A" stroke-width="1.6" stroke-linecap="round"> 940 <path d="M30,38 v12 M24,44 h12"/> 941 </g> 942 <text data-fx="pop" data-a="0.66" data-b="0.8" x="81" y="118" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#9B99A8">ÛÚ© Ø®ÙØ§Ø³ØªÙâÛ Ø±ÙØ´Ù</text> 943 </svg> 944 <span class="ch-tag"><i></i>ÙØµÙ Û± â Ø¬Ø±ÙÙ<i></i></span> 945 <p class="ch-l l1">ÛÚ© کسبâÙÚ©Ø§Ø±Ø ÛÚ© کار ØªÚ©Ø±Ø§Ø±ÛØ ÛÚ© درد.</p> 946 <p class="ch-l l2">ÙÙ ÛÙâØ¬Ø§ ÛÚ© ÙØ±Ù âØ§ÙØ²Ø§Ø± ٠تÙÙØ¯ Ù ÛâØ´ÙØ¯ â Ù Ú©Ø³Û ØØ§Ø¶Ø± است Ø¨Ø±Ø§ÛØ´ Ù¾ÙÙ Ø¨Ø¯ÙØ¯.</p> 947 </div> 948 </div> 949 </section> 950 951 <section class="ch" id="ch2" style="--chn:2.0" data-ax="1" data-ay="0.25"> 952 <div class="ch-pin"> 953 <div class="ch-num" aria-hidden="true">Û°Û²</div> 954 <div class="ch-inner"> 955 <svg class="scene" viewBox="0 0 360 150" aria-hidden="true"> 956 <!-- ابزار٠ÛکساÙ: ردÛÙÙ ÙÙØ·ÙâÙØ§Û Ù٠اÙÙØ¯ --> 957 <path data-fx="draw" data-a="0.02" data-b="0.2" pathLength="1" d="M40,118 H320" stroke="#3A3850" stroke-width="1.5" stroke-linecap="round" fill="none"/> 958 <g fill="#6A6880"> 959 <circle data-fx="pop" data-a="0.06" data-b="0.16" cx="300" cy="118" r="5"/> 960 <circle data-fx="pop" data-a="0.1" data-b="0.2" cx="255" cy="118" r="5"/> 961 <circle data-fx="pop" data-a="0.14" data-b="0.24" cx="210" cy="118" r="5"/> 962 <circle data-fx="pop" data-a="0.18" data-b="0.28" cx="165" cy="118" r="5"/> 963 <circle data-fx="pop" data-a="0.22" data-b="0.32" cx="120" cy="118" r="5"/> 964 <circle data-fx="pop" data-a="0.26" data-b="0.36" cx="75" cy="118" r="5"/> 965 </g> 966 <!-- Ø¨Ø±ÙØ¯Ù: Ù Ø³ÛØ±Û ک٠از ÛÚ©Û Ø§Ø² Ù٠ا٠ÙÙØ·ÙâÙØ§ Ø¨Ø§ÙØ§ Ù ÛâØ±ÙØ¯ â Ø±Ù ب٠ÚÙ¾ --> 967 <path data-fx="draw" data-a="0.36" data-b="0.66" pathLength="1" 968 d="M165,116 C165,92 192,88 188,66 C184,46 144,52 124,34" 969 fill="none" stroke="#F2F1F5" stroke-width="2" stroke-linecap="round"/> 970 <g data-fx="pop" data-a="0.62" data-b="0.78"> 971 <circle cx="116" cy="28" r="5.5" fill="#FFC24A"/> 972 <circle cx="116" cy="28" r="12" fill="none" stroke="#FFC24A" stroke-width="1" opacity="0.35"/> 973 </g> 974 <text data-fx="pop" data-a="0.68" data-b="0.82" x="70" y="26" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#9B99A8">Ú٠بساز٠Ø</text> 975 <text x="180" y="142" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#55536A">
975ابزار Ø¨Ø±Ø§Û ÙÙ Ù ÛÚ©Û Ø§Ø³Øª</text> 976 </svg> 977 <span class="ch-tag"><i></i>ÙØµÙ Û² â Ø¯ÙÛØ§Û تÙ<i></i></span> 978 <p class="ch-l l1">ابزار Ø¨Ø±Ø§Û ÙÙ Ù ÛÚ©Û Ø§Ø³Øª: ÙÙØ´ ٠صÙÙØ¹ÛâØ§Û Ú©Ù Ú©Ø¯ Ù ÛâÙÙÛØ³Ø¯.</p> 979 <p class="ch-l l2">ÙØ±ÙØ Ø¯Ø± اÛ٠است ک٠بداÙÛ ÚÙ Ø¨Ø®ÙØ§ÙÛ. اÛ٠را ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±Û.</p> 980 </div> 981 </div> 982 </section> 983 984 <section class="ch" id="ch3" style="--chn:2.3" data-ax="0" data-ay="1"> 985 <div class="ch-pin"> 986 <div class="ch-num" aria-hidden="true">Û°Û³</div> 987 <div class="ch-inner"> 988 <svg class="scene" viewBox="0 0 360 150" aria-hidden="true"> 989 <!-- تر٠ÛÙØ§Ù (راست): ساخت٠--> 990 <rect data-fx="draw" data-a="0.03" data-b="0.22" pathLength="1" x="190" y="26" width="150" height="98" rx="10" fill="none" stroke="#F2F1F5" stroke-width="1.8"/> 991 <path data-fx="draw" data-a="0.1" data-b="0.2" pathLength="1" d="M190,48 h150" stroke="#3A3850" stroke-width="1.2" fill="none"/> 992 <g data-fx="pop" data-a="0.08" data-b="0.18" fill="#4A4860"> 993 <circle cx="326" cy="37" r="2.5"/><circle cx="317" cy="37" r="2.5"/><circle cx="308" cy="37" r="2.5"/> 994 </g> 995 <g stroke-linecap="round" fill="none"> 996 <path data-fx="draw" data-a="0.18" data-b="0.3" pathLength="1" d="M324,66 h-8 l-6,6 l6,6" stroke="#FFC24A" stroke-width="1.7"/> 997 <path data-fx="draw" data-a="0.26" data-b="0.4" pathLength="1" d="M226,72 h72" stroke="#9B99A8" stroke-width="2"/> 998 <path data-fx="draw" data-a="0.32" data-b="0.46" pathLength="1" d="M266,92 h58" stroke="#5A5870" stroke-width="2"/> 999 <path data-fx="draw" data-a="0.36" data-b="0.5" pathLength="1" d="M240,106 h84" stroke="#5A5870" stroke-width="2"/> 1000 </g> 1001 <!-- گذر: از Ø³Ø§Ø®ØªÙ Ø¨Ù ÙØ±ÙØ®ØªÙ â Ø±Ù ب٠ÚÙ¾ --> 1002 <path data-fx="draw" data-a="0.48" data-b="0.62" pathLength="1" d="M178,75 H138 M146,67 l-9,8 l9,8" fill="none" stroke="#9B99A8" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/> 1003 <!-- Ù ØØµÙÙÙ ÙØ±ÙختÙâØ´Ø¯Ù (ÚÙ¾) --> 1004 <rect data-fx="draw" data-a="0.56" data-b="0.76" pathLength="1" x="26" y="40" width="100" height="70" rx="12" fill="none" stroke="#F2F1F5" stroke-width="2"/> 1005 <path data-fx="draw" data-a="0.66" data-b="0.8" pathLength="1" d="M64,64 h44" stroke="#9B99A8" stroke-width="2" stroke-linecap="round" fill="none"/> 1006 <path data-fx="draw" data-a="0.7" data-b="0.84" pathLength="1" d="M80,80 h28" stroke="#5A5870" stroke-width="2" stroke-linecap="round" fill="none"/> 1007 <g data-fx="pop" data-a="0.76" data-b="0.9"> 1008 <circle cx="44" cy="92" r="9" fill="none" stroke="#FFC24A" stroke-width="1.6"/> 1009 <path d="M40.5,92 l2.6,2.6 l4.6,-5.4" fill="none" stroke="#FFC24A" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 1010 </g> 1011 <text x="277" y="142" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#55536A">بساز</text> 1012 <text data-fx="pop" data-a="0.72" data-b="0.86" x="76" y="132" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#9B99A8">Ø¨ÙØ±ÙØ´</text> 1013 </svg> 1014 <span class="ch-tag"><i></i>ÙØµÙ Û³ â Ø®ÙÙ<i></i></span> 1015 <p class="ch-l l1">پرÙÚ٠ب٠پرÙÚÙ Ù ÛâØ³Ø§Ø²Û: Ø±Ø¨Ø§ØªØ Ù¾ÙØªÙØ±Ù Ø Ø¯Ø³ØªÛØ§Ø±.</p> 1016 <p class="ch-l l2">ÙØ± کدا٠با ÙÛØ¯ÛÙØ جزÙÙØ Ø³ÙØ±Ø³ کا٠٠â Ù ÙÙØ±Ø³Øª کساÙÛ Ú©Ù Ù ÛâØ®Ø±ÙØ¯Ø´.</p> 1017 </div> 1018 </div> 1019 </section> 1020 1021 <section class="ch" id="ch4" style="--chn:1.95" data-ax="-1" data-ay="0.25"> 1022 <div class="ch-pin"> 1023 <div class="ch-num" aria-hidden="true">Û°Û´</div> 1024 <div class="ch-inner"> 1025 <svg class="scene" viewBox="0 0 360 150" aria-hidden="true"> 1026 <!-- گذار ب٠اثبات: ÚÙØ§Ø± ÙØ§Ø¨ Ú©Ù ÛÚ©ÛâÛÚ©Û Ø±ÙØ´Ù Ù ÛâØ´ÙÙØ¯ --> 1027 <path data-fx="draw" data-a="0.02" data-b="0.4" pathLength="1" d="M24,76 H336" stroke="#3A3850" stroke-width="1.5" stroke-linecap="round" fill="none"/> 1028 <g fill="none" stroke-width="1.8"> 1029 <rect data-fx="draw" data-a="0.14" data-b="0.3" pathLength="1" x="280" y="50" width="52" height="52" rx="10" stroke="#F2F1F5"/> 1030 <rect data-fx="draw" data-a="0.26" data-b="0.42" pathLength="1" x="198" y="50" width="52" height="52" rx="10" stroke="#F2F1F5"/> 1031 <rect data-fx="draw" data-a="0.38" data-b="0.54" pathLength="1" x="116" y="50" width="52" height="52" rx="10" stroke="#F2F1F5"/> 1032 <rect data-fx="draw" data-a="0.5" data-b="0.66" pathLength="1" x="34" y="50" width="52" height="52" rx="10" stroke="#F2F1F5"/> 1033 </g> 1034 <g fill="#FFC24A"> 1035 <circle data-fx="pop" data-a="0.3" data-b="0.42" cx="306" cy="76" r="4"/> 1036 <circle data-fx="pop" data-a="0.42" data-b="0.54" cx="224" cy="76" r="4"/> 1037 <circle data-fx="pop" data-a="0.54" data-b="0.66" cx="142" cy="76" r="4"/> 1038 <circle data-fx="pop" data-a="0.66" data-b="0.78" cx="60" cy="76" r="4"/> 1039 </g> 1040 <text data-fx="pop" data-a="0.7" data-b="0.84" x="180" y="136" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10.5" fill="#9B99A8">ÚÙØ§Ø± Ù ØØµÙÙÙ ÙØ§ÙØ¹Û â Ø³Ø§Ø®ØªÙâÛ Ø®ÙØ¯Ù ٠ا</text> 1041 </svg>
1042 <span class="ch-tag"><i></i>ÙØµÙ Û´ â گذار ب٠اثبات<i></i></span> 1043 <p class="ch-l l1">اÛÙ Ø±ÙØ´ را اÙ٠رÙÛ Ø®ÙØ¯Ù Ø§Ù Ø§Ù ØªØØ§Ù کردÛÙ .</p> 1044 <p class="ch-l l2">ÚÙØ§Ø± Ù ØØµÙÙ Ø²ÙØ¯Ù â Ù Ø®ÙØ¯Ù bixa â Ø¨Ø§ ÙÙ ÛÙ Ø±ÙØ´ ساخت٠شدÙâØ§ÙØ¯.</p> 1045 </div> 1046 </div> 1047 </section> 1048 1049</div> 1050 1051<!-- âââââââââ proof âââââââââ --> 1052<section class="proof" id="proof"> 1053 <div class="wrap"> 1054 <header class="proof-head" data-rv> 1055 <span class="kicker rv">Ú©Ø§Ø±ÙØ§Ù Ù</span> 1056 <h2 class="rv" style="--d:.08s">Ù ØØµÙÙØ§ØªÙ ÙØ§ÙØ¹ÛØ با کاربراÙÙ ÙØ§ÙعÛ.</h2> 1057 <p class="rv" style="--d:.16s">ÚÙØ§Ø± Ù ØØµÙ٠ک٠با ÙÙ ÛÙ Ø±ÙØ´ â Ú¯ÙØªÙ ب٠ÙÙØ´ ٠صÙÙØ¹ÛØ Ù٠کد ÙÙØ´ØªÙ â Ø³Ø§Ø®ØªÙ شدÙâØ§ÙØ¯ Ù ÙÙ ÛÙ ØØ§Ùا Ù Ø´ØªØ±Û Ø¯Ø§Ø±ÙØ¯.</p> 1058 </header> 1059 1060 <!-- Û± · تÛÚ© --> 1061 <article class="pr" id="pr-tik" data-rv> 1062 <div class="pr-text"> 1063 <span class="pr-idx rv ltr">Û°Û± / Û°Û´</span> 1064 <h3 class="rv" style="--d:.06s">تÛÚ© <a class="pr-dom" href="https://tik.money" target="_blank" rel="noopener">tik.money</a></h3> 1065 <p class="rv" style="--d:.12s">Ù¾ÙØªÙر٠٠ÙÙØ´ ٠صÙÙØ¹ÛÙ Ù Ø¯ÛØ±Ûت٠٠اÙÛ٠شخصÛ.</p> 1066 <div class="stats"> 1067 <div class="stat rv" style="--d:.18s"><b><span class="num" data-num="5856">ÛµÙ¬Û¸ÛµÛ¶</span></b><span>کاربر در ÙØ®Ø³ØªÛÙ ÙØµÙ</span></div> 1068 <div class="stat rv" style="--d:.26s"><b><span class="num" data-num="93" data-plain="1">Û¹Û³</span> <small>Ù ÛÙÛÙÙ</small></b><span>تÙÚ©ÙÙ Ù¾Ø±Ø¯Ø§Ø²Ø´âØ´Ø¯Ù</span></div> 1069 <div class="stat rv" style="--d:.34s"><b><span class="num" data-num="33.9" data-dec="1">Û³Û³Ù«Û¹</span> <small>Ù ÛÙÛØ§Ø±Ø¯ تÙ٠اÙ</small></b><span>ØªØ±Ø§Ú©ÙØ´Ù Ø±Ø¯ÛØ§Ø¨ÛâØ´Ø¯ÙâÛ Ú©Ø§Ø±Ø¨Ø±Ø§Ù</span></div> 1070 </div> 1071 <span class="pr-foot rv" style="--d:.42s">طبÙÙ Ú¯Ø²Ø§Ø±Ø´Ù ØªØ£Ø«ÛØ±</span> 1072 </div> 1073 <div class="pr-vis rv" style="--d:.1s"> 1074 <div class="pr-frame"> 1075 <svg viewBox="0 0 300 200" aria-hidden="true"> 1076 <g stroke="#1C1C26" stroke-width="1"><path d="M20,160 H280"/><path d="M20,115 H280" opacity=".55"/><path d="M20,70 H280" opacity=".35"/></g> 1077 <path id="tikPath" pathLength="1" d="M20,150 C55,146 70,128 95,124 S140,132 165,110 S215,64 246,58 S272,48 282,42" 1078 fill="none" stroke="#F2F1F5" stroke-width="2.5" stroke-linecap="round"/> 1079 <!-- ÙÙØ·ÙâÛ Ù¾Ø§ÛØ§Ù٠خط ثابت Ø§Ø³ØªØ Ù٠تپش Ø¯Ø§Ø±Ø¯Ø Ù٠بازÙâÛ Ø²Ù Ø§ÙÛ â ÙØ§Ø¨ Ù٠ادÛÙ Ø§Ø³ØªØ ÙÙ ÙØ¯Ø§Ø± ÙÛØ³Øª --> 1080 <circle cx="282" cy="42" r="4" fill="#FFC24A"/> 1081 <circle cx="282" cy="42" r="9" fill="none" stroke="#FFC24A" stroke-width="1" opacity=".3"/> 1082 </svg> 1083 </div> 1084 </div> 1085 </article> 1086 1087 <!-- Û² · ارز دات Ù Û --> 1088 <article class="pr" id="pr-arz" data-rv> 1089 <div class="pr-text"> 1090 <span class="pr-idx rv ltr">Û°Û² / Û°Û´</span> 1091 <h3 class="rv" style="--d:.06s">ارز دات Ù Û <a class="pr-dom" href="https://arz.me" target="_blank" rel="noopener">arz.me</a></h3> 1092 <p class="rv" style="--d:.12s">صراÙÛÙ Ø±Ù Ø²Ø§Ø±Ø²Ù Ø²ÙØ¯ÙØ Ø³Ø®ØªâØªØ±ÛÙ ÙÙØ¹Ù ÙØ±Ù âØ§ÙØ²Ø§Ø±Ø ÚÙ٠با Ù¾ÙÙÙ ÙØ§ÙعÛ٠٠رد٠کار Ù ÛâÚ©ÙØ¯.</p> 1093 <div class="stats"> 1094 <div class="stat rv" style="--d:.18s"><b><span class="num" data-num="400" data-plain="1">Û´Û°Û°</span>+</b><span>Ø§Ø±Ø²Ù ÙØ§Ø¨Ù٠٠عا٠ÙÙ</span></div> 1095 <div class="stat rv" style="--d:.26s"><b><span class="num" data-num="29" data-plain="1">Û²Û¹</span></b><span>Ú©ÙØªØ±Ùر٠<span class="ltr mono" style="font-size:.9em">API</span></span></div> 1096 <div class="stat rv" style="--d:.34s"><b><small>ØØ¯ÙدÙ</small> <span class="num" data-num="2100" data-plain="1">Û²Û±Û°Û°</span></b><span>Ù ÙØ±Ø¯Ù ØªØ³ØªÙ Ø®ÙØ¯Ú©Ø§Ø± در ÙØ³ØªÙâÛ Ù Ø§ÙÛ</span></div> 1097 </div> 1098 </div> 1099 <div class="pr-vis rv" style="--d:.1s"> 1100 <div class="pr-frame"> 1101 <!-- ÙØ§Ø¨Ù Ù٠ادÛÙÙ ÛÚ© ÙÙØ±Ø³ØªÙ بازار: بدÙÙÙ ÙÛÙ ØªØ Ø¨Ø¯ÙÙÙ Ø§Ø¯Ø¹Ø§Û Â«Ø²ÙØ¯Ù» â Ø¹Ø¯Ø¯Ù Ú©ÙÙÙ Ø§Ø¹ØªÙ Ø§Ø¯Ù Ú©ÙØ§Ø±Ù Ø®ÙØ¯Ø´ را ÙÙ Ù ÛâØ´Ú©ÙØ¯ --> 1102 <svg viewBox="0 0 300 200" aria-hidden="true"> 1103 <g> 1104 <rect x="24" y="24" width="252" height="14" rx="7" fill="#10101A" stroke="#1C1C26"/> 1105 <rect x="34" y="29" width="46" height="4" rx="2" fill="#2A2A3A"/> 1106 <rect x="222" y="29" width="44" height="4" rx="2" fill="#2A2A3A"/> 1107 </g> 1108 <g> 1109 <g><rect x="24" y="52" width="252" height="34" rx="9" fill="#0C0C13" stroke="#1C1C26"/> 1110 <circle cx="44" cy="69" r="7" fill="none" stroke="#FFC24A" stroke-width="1.4"/> 1111 <rect x="60" y="66" width="38" height="6" rx="3" fill="#2A2A3A"/> 1112 <rect x="150" y="66" width="62" height="6" rx="3" fill="#2A2A3A"/> 1113 <path d="M226,74 l9,-8 l8,5 l11,-9 l8,4" fill="none" stroke="#FFC24A" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></g> 1114 <g><rect x="24" y="94" width="252" height="34" rx="9" fill="#0C0C13" stroke="#1C1C26"/> 1115 <circle cx="44" cy="111" r="7" fill="none" stroke="#6A6880" stroke-width="1.4"/> 1116 <rect x="60" y="108" width="30" height="6" rx="3" fill="#2A2A3A"/> 1117 <rect x="150" y="108" width="50" height="6" rx="3" fill="#2A2A3A"/> 1118 <path d="M226,110 l9,3 l8,-6 l11,4 l8,-5" fill="none" stroke="#6A6880" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></g> 1119 <g><rect x="24" y="136" width="252" height="34" rx="9" fill="#0C0C13" stroke="#1C1C26"/> 1120 <circle cx="44" cy="153" r="7" fill="none" stroke="#6A6880" stroke-width="1.4"/> 1121 <rect x="60" y="150" width="34" height="6" rx="3" fill="#2A2A3A"/> 1122 <rect x="150" y="150" width="56" height="6" rx="3" fill="#2A2A3A"/> 1123 <path d="M226,150 l9,6 l8,-3 l11,7 l8,-2" fill="none" stroke="#6A6880" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></g> 1124 </g> 1125 </svg> 1126 </div> 1127 </div> 1128 </article> 1129 1130 <!-- Û³ · رادÛÙ Ù¾Ø±Ø§ÛØ³ --> 1131 <article class="pr" id="pr-price" data-rv> 1132 <div class="pr-text">
1133 <span class="pr-idx rv ltr">Û°Û³ / Û°Û´</span> 1134 <h3 class="rv" style="--d:.06s">رادÛÙ Ù¾Ø±Ø§ÛØ³</h3> 1135 <p class="rv" style="--d:.12s">ربات٠ÙÛÙ ØªÙ ÙØØ¸ÙâØ§ÛÙ Ø¯ÙØ§Ø± Ù Ø·ÙØ§ ٠سک٠رÙÛ Ø¨Ù٠٠تÙگرا٠.</p> 1136 <div class="stats"> 1137 <div class="stat rv" style="--d:.18s"><b>ÙØ± <span class="num" data-num="30" data-plain="1">Û³Û°</span> <small>ثاÙÛÙ</small></b><span>ÛÚ© ÙØ±Ø§Ø®ÙاÙÙ Ù ÙØ¨Ø¹ â Ø¨Ø±Ø§Û کاربراÙÙ ÙØ§Ù ØØ¯Ùد</span></div> 1138 <div class="stat rv" style="--d:.26s"><b><span class="num" data-num="28" data-plain="1">Û²Û¸</span>+</b><span>Ø§Ø±Ø²Ù Ø¬ÙØ§ÙÛØ Ø·ÙØ§ ٠سکÙ</span></div> 1139 <div class="stat rv" style="--d:.34s"><b><small>ØØ¯ÙدÙ</small> <span class="num" data-num="1500" data-plain="1">Û±ÛµÛ°Û°</span></b><span>ÙÙ Ø§Ø¯Ù Ø¨ÙØ±Ø³</span></div> 1140 </div> 1141 </div> 1142 <div class="pr-vis rv" style="--d:.1s"> 1143 <div class="pr-frame"> 1144 <svg viewBox="0 0 300 200" aria-hidden="true"> 1145 <circle cx="150" cy="110" r="62" fill="none" stroke="#1C1C26" stroke-width="1.5"/> 1146 <g stroke="#2A2A3A" stroke-width="1.5"> 1147 <path d="M150,48 v8"/><path d="M150,164 v8"/><path d="M88,110 h8"/><path d="M204,110 h8"/> 1148 </g> 1149 <line class="dial-hand" x1="150" y1="110" x2="150" y2="58" stroke="#F2F1F5" stroke-width="2" stroke-linecap="round"/> 1150 <circle cx="150" cy="110" r="4.5" fill="#FFC24A"/> 1151 <text x="150" y="36" text-anchor="middle" font-family="Geist Mono,monospace" font-size="10" fill="#9B99A8">30s</text> 1152 <g font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10.5" fill="#9B99A8" text-anchor="middle"> 1153 <text x="62" y="190">Ø¯ÙØ§Ø±</text><text x="150" y="190">Ø·ÙØ§</text><text x="238" y="190">سکÙ</text> 1154 </g> 1155 </svg> 1156 </div> 1157 </div> 1158 </article> 1159 1160 <!-- Û´ · رادÛÙ RSC --> 1161 <article class="pr" id="pr-rsc" data-rv> 1162 <div class="pr-text"> 1163 <span class="pr-idx rv ltr">Û°Û´ / Û°Û´</span> 1164 <h3 class="rv" style="--d:.06s">رادÛÙ <span class="ltr">RSC</span></h3> 1165 <p class="rv" style="--d:.12s">Ø¯Ø³ØªÛØ§Ø±Ù ÙÙØ´ ٠صÙÙØ¹ÛÙ Ø¯Ø§ÛØ±Ú©ØªÙ اÛÙØ³ØªØ§Ú¯Ø±Ø§Ù Ø Ø¨Ø§ ÙÛÙØªØ±Ù اÛÙ ÙÛ٠کدÙÙÛØ³ÛâØ´Ø¯Ù.</p> 1166 <blockquote class="pr-lesson rv" style="--d:.2s">درس٠اصÙÛ: Ø¨Ø±Ø§Û Ø§ÛÙ ÙÛ Ø¨Ù Ù¾Ø±Ø§Ù Ù¾Øª اعت٠اد ÙÚ©Ù â کد بÙÙÛØ³.</blockquote> 1167 </div> 1168 <div class="pr-vis rv" style="--d:.1s"> 1169 <div class="pr-frame"> 1170 <svg viewBox="0 0 300 200" aria-hidden="true"> 1171 <g font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10.5"> 1172 <rect x="30" y="34" width="150" height="30" rx="12" fill="#10101A" stroke="#2A2A3A"/> 1173 <text x="46" y="53" fill="#9B99A8">ÙÛ٠ت Ù Ù ÙØ¬ÙØ¯Û Ø±Ø§ Ù ÛâØ®ÙØ§ÙÙ </text> 1174 <rect x="120" y="76" width="150" height="30" rx="12" fill="#0C0C13" stroke="#1C1C26"/> 1175 <text x="136" y="95" fill="#F2F1F5">ÙÙ ÛÙ ØØ§Ùا Ø¨Ø±Ø§ÛØªØ§Ù Ù ÛâÙØ±Ø³ØªÙ </text> 1176 </g> 1177 <path d="M150,126 l26,10 v18 c0,16 -11,26 -26,32 c-15,-6 -26,-16 -26,-32 v-18 z" 1178 fill="none" stroke="#FFC24A" stroke-width="1.6" opacity=".9"/> 1179 <g font-family="Geist Mono,monospace" font-size="11" fill="#F2F1F5" text-anchor="middle"> 1180 <text x="150" y="158"></></text> 1181 </g> 1182 <text x="150" y="196" text-anchor="middle" font-family="'IBM Plex Sans Arabic',sans-serif" font-size="10" fill="#9B99A8">ÙÛÙØªØ±Ù اÛÙ ÙÛØ در کد</text> 1183 </svg> 1184 </div> 1185 </div> 1186 </article> 1187 </div> 1188</section> 1189 1190<!-- âââââââââ Ø¯Ø³ØªÛار٠bixa â Ø¯Ø± دÙ٠اسکرÙÙ âââââââââ --> 1191<section class="ask" id="ask"> 1192 <div class="wrap"> 1193 <header class="ask-head" data-rv> 1194 <span class="kicker rv">Ø¯Ø³ØªÛØ§Ø±Ù bixa</span> 1195 <h2 class="rv" style="--d:.08s">سؤاÙÛ Ù Ø§ÙØ¯ÙØ ÙÙ ÛÙâØ¬Ø§ بپرس.</h2> 1196 </header> 1197 <div class="ai-card" id="aiCard" data-rv> 1198 <div class="ai-pitch rv" id="aiPitch" role="button" tabindex="0" aria-expanded="false" aria-controls="aiChatPane"> 1199 <div><div class="inner"> 1200 <div class="ai-b" aria-hidden="true">
1201 <svg class="halo" viewBox="30 26 156 228"><use href="#bxMarkBold" stroke="url(#specGV)"/></svg> 1202 <svg viewBox="30 26 156 228"><use href="#bxMarkBold" stroke="currentColor"/></svg> 1203 </div> 1204 <h3>Ú¯ÙØªâÙگ٠با Ø¯Ø³ØªÛØ§Ø±Ù <span class="brand ltr">bixa</span></h3> 1205 <p>دربارÙâÛ Ø¯ÙØ±ÙØ Ø±ÙØ´Ù Ú©Ø§Ø±Ø ÛØ§ ÙØ± ÚÛØ²Û ک٠ذÙÙØª را ٠شغÙ٠کرد٠â ÙÙ ÛÙ ØØ§Ùا Ù ÙÙ ÛÙâØ¬Ø§ Ø¬ÙØ§Ø¨ Ø¨Ú¯ÛØ±.</p> 1206 <span class="hint">آ٠ادÙâÛ Ú¯ÙØªâÙÚ¯Ù</span> 1207 </div></div> 1208 </div> 1209 <div class="ai-chat" id="aiChatPane" aria-hidden="true" inert> 1210 <div><div class="inner"> 1211 <header class="chat-h"> 1212 <svg viewBox="30 26 156 228" aria-hidden="true"><use href="#bxMarkBold" stroke="currentColor"/></svg> 1213 <b class="ltr">bixa</b> 1214 <span class="quota" id="quota"></span> 1215 <button class="chat-x" id="chatX" type="button" aria-label="Ø¨Ø³ØªÙ Ú¯ÙØªâÙÚ¯Ù"> 1216 <svg width="13" height="13" viewBox="0 0 13 13" fill="none" aria-hidden="true"> 1217 <path d="M2 2 L11 11 M11 2 L2 11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/> 1218 </svg> 1219 </button> 1220 </header>
1221 <div class="msgs" id="msgs" aria-live="polite"> 1222 <div class="m ai"> 1223 <span class="av"><svg viewBox="30 26 156 228" aria-hidden="true"><use href="#bxMarkBold" stroke="currentColor"/></svg></span> 1224 <div class="tx">Ø³ÙØ§Ù . ÙØ± سؤاÙÛ Ø¯Ø±Ø¨Ø§Ø±ÙâÛ <span class="ltr mono" style="font-size:.92em">bixa</span> Ø¯Ø§Ø±ÛØ ÙÙ ÛÙâØ¬Ø§ بپرس.</div> 1225 </div> 1226 </div> 1227 <div class="chips" id="chips"> 1228 <button class="chip" type="button">بÛکسا دÙÛÙØ§Ù ÚÙ ÚÛØ²Û ÛØ§Ø¯ Ù ÛâØ¯ÙØ¯Ø</button> 1229 <button class="chip" type="button">Ø¨Ø±Ø§Û Ø´Ø±ÙØ¹ ÚÙ ÚÛØ²Û ÙØ§Ø²Ù دار٠Ø</button> 1230 <button class="chip" type="button">Ø¯ÙØ±ÙâÙØ§ Ú©Û Ø¢ØºØ§Ø² Ù ÛâØ´ÙÙØ¯Ø</button> 1231 </div> 1232 </div></div> 1233 </div> 1234 <div class="glowbar rv" id="glowbar" style="--d:.1s"> 1235 <span class="gb-halo2" aria-hidden="true"><i></i></span> 1236 <span class="gb-halo" aria-hidden="true"><i></i></span> 1237 <span class="gb-ring" aria-hidden="true"><i></i></span> 1238 <form class="gb-core" id="composer" autocomplete="off"> 1239 <button class="gb-ctl" type="button" id="gbPlus" aria-label="Ø´Ø±ÙØ¹Ù Ú¯ÙØªâÙÚ¯Ù" tabindex="-1"> 1240 <svg viewBox="0 0 14 14" fill="none" aria-hidden="true"> 1241 <path d="M7 2 V12 M2 7 H12" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/> 1242 </svg> 1243 </button> 1244 <input id="q" type="text" name="q" placeholder="از bixa بپرسâ¦" maxlength="600" aria-label="پرسش تÙ"> 1245 <button class="gb-send" id="sendBtn" type="submit" aria-label="ارساÙ"> 1246 <svg viewBox="0 0 16 16" fill="none" aria-hidden="true"> 1247 <path d="M8 13 V3 M3.5 7.5 L8 3 L12.5 7.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/> 1248 </svg> 1249 </button> 1250 </form> 1251 </div> 1252 </div> 1253 </div> 1254</section> 1255 1256<section class="section-shell faq-section" id="faq" aria-labelledby="faq-title"> 1257 <div><span class="section-label">05 / A LITTLE MORE CLARITY</span><h2 class="section-title" id="faq-title">ÙØ¨Ù از Ø´Ø±ÙØ¹Ø<br>Ø´ÙØ§ÙâØªØ± بداÙ.</h2><p class="section-intro">سؤا٠دÛÚ¯Ø±Û Ø¯Ø§Ø±ÛØ از Ø¯Ø³ØªÛØ§Ø± <span class="ltr">bixa</span> بپرس.</p><a class="text-link" href="#ask">Ú¯ÙØªâÙگ٠با Ø¯Ø³ØªÛØ§Ø± <span aria-hidden="true">â</span></a></div> 1258 <div class="faq-list"> 1259 <details><summary>Ø¨Ø§ÛØ¯ Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³Û Ø¨ÙØ¯ باش٠Ø</summary><p>Ø¨Ø±Ø§Û Ø´Ø±ÙØ¹Ø تجربÙÙ Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³Û ÙØ§Ø²Ù ÙÛØ³Øª. Ø¢Ù ÙØ²Ø´âÙØ§ با Ú©Ù Ú© ÙÙØ´ ٠صÙÙØ¹Û Ù¾ÛØ´ Ù ÛâØ±ÙÙØ¯ Ù ÛØ§Ø¯ Ù ÛâÚ¯ÛØ±Û ٠سئÙ٠را تعرÛÙ Ú©ÙÛØ Ø®ÙØ§Ø³ØªÙâØ§Øª را Ø±ÙØ´Ù ØªÙØ¶ÛØ Ø¨Ø¯ÙÛ Ù Ø®Ø±ÙØ¬Û را Ø¨Ø±Ø±Ø³Û Ù Ø§ØµÙØ§Ø Ú©ÙÛ.</p></details> 1260 <details><summary>بعد از ثبتâÙØ§Ù ÚÙ ÚÛØ²Û Ù ÛâØ¨ÛÙÙ Ø</summary><p>ÙØ§Ø±Ø¯ Ù ØÛØ· ÛØ§Ø¯Ú¯ÛØ±Û Ù ÛâØ´ÙÛØ ٠اÙÛÙØ³Øª ٠عرÙÛ Ù Ø³ÛØ± را Ù ÛâØ¨ÛÙÛ Ù Ø§Ø² Ù ØØªÙØ§Û Ø±Ø§ÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ù ÛâÚ©ÙÛ. ÙØ¶Ø¹Ûت Ø¯Ø³ØªØ±Ø³Û ÙØ± پرÙÚ٠٠درس Ø¯Ø§Ø®Ù ØØ³Ø§Ø¨ ٠شخص است.</p></details> 1261 <details><summary>ÙÙ ÙÙ Ù ØØªÙا Ù Ø³ÙØ±Ø³âÙØ§ راÛگاÙâØ§ÙØ¯Ø</summary><p>ساخت ØØ³Ø§Ø¨ Ù Ø´Ø±ÙØ¹ Ù Ø³ÛØ± راÛگا٠است. Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø¨Ø®Ø´âÙØ§Û ÙÛÚÙØ Ø³ÙØ±Ø³ Ù Ø³Ø§ÛØ± ÙØ§ÛÙâÙØ§ Ø¨Ù ÙØ¶Ø¹Ûت ÙØ± پرÙÚ٠٠اشتراک Ø¨Ø³ØªÚ¯Û Ø¯Ø§Ø±Ø¯Ø Ø¬Ø²Ø¦ÛØ§Øª در Ù ØÛØ· ÛØ§Ø¯Ú¯ÛØ±Û ÙÙ Ø§ÛØ´ داد٠٠ÛâØ´ÙØ¯.</p></details> 1262 <details><summary>اگر ÙØ³Ø· ÛÚ© پرÙÚÙ Ú¯ÛØ± کرد٠ÚÙØ</summary><p>Ø¯Ø³ØªÛØ§Ø± Ù٠ا٠پرÙÚÙ Ø¨Ø±Ø§Û ØªÙØ¶ÛØ Ù Ø·Ø§ÙØ¨ Ù Ú©Ù Ú© Ø¨Ù Ø±ÙØ¹ خطا در دسترس است. Ú©ÙØ§Ø± Ø¢Ù ÙØ²Ø´ Ù ÛâØªÙØ§ÙÛ Ø¨Ù Ø¬Ø²ÙÙ Ù ÙØ§ÛÙâÙØ§Û پرÙÚÙâØ§Û Ú©Ù Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø±Û Ø¨Ø±Ú¯Ø±Ø¯Û.</p></details> 1263 <details><summary>اÛÙ Ø¢Ù ÙØ²Ø´ درآ٠د را تض٠ÛÙ Ù ÛâÚ©ÙØ¯Ø</summary><p>Ø¢Ù ÙØ²Ø´ ب٠ت٠ک٠ک Ù ÛâÚ©ÙØ¯ راÙâØÙ Ø¨Ø³Ø§Ø²Û Ù Ø¢Ù Ø±Ø§ ب٠کسبâÙکار ٠رتبط ارائ٠کÙÛ. Ø±Ø³ÛØ¯Ù Ø¨Ù ÙØ±ÙØ´ Ø¨Ù Ø§Ø¬Ø±Ø§Ø Ú©ÛÙÛØª Ù ØØµÙÙØ ÙÛØ§Ø² بازار Ù Ù¾ÛÚ¯ÛØ±Û Ø®ÙØ¯Øª Ø¨Ø³ØªÚ¯Û Ø¯Ø§Ø±Ø¯ ٠تض٠ÛÙ Ø¯Ø±Ø¢Ù Ø¯Û ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.</p></details> 1264 </div> 1265</section> 1266 1267<!-- âââââââââ Ø¯Ø¹Ùت âââââââââ --> 1268<section class="invite" id="start"> 1269 <div class="wrap" data-rv> 1270 <svg class="rs-mark rv" viewBox="30 26 156 228" aria-hidden="true"><use href="#bxMarkBold" stroke="currentColor"/></svg> 1271 <div><span class="kicker rv" style="--d:.08s">ÙØ±Ùد ب٠دÙÛØ§Û ÙÙØ´ ٠صÙÙØ¹Û</span></div> 1272 <h2 class="rv" style="--d:.14s">Ø§ÛØ¯ÙÙ Ø¨Ø¹Ø¯ÛØ Ù ÛâØªÙØ§Ùد ٠ا٠ت٠باشد.</h2> 1273 <p class="rs-p rv" style="--d:.22s">با ÛÚ© ØØ³Ø§Ø¨ راÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ú©Ù. ٠اÙÛÙØ³Øª را ببÛÙØ اÙÙÛÙ Ù
1273د٠را بردار Ù Ø¨Ù Ø§ÛØ¯ÙâØ§Øª ÙØ±ØµØª ساخت٠شد٠بدÙ.</p> 1274 <div class="rv" style="--d:.3s"> 1275 <a class="cta" href="/signup">راÛÚ¯Ø§Ù Ø´Ø±ÙØ¹ Ú©Ù 1276 <svg class="arr" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> 1277 <path d="M10 3 L5 8 L10 13" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/> 1278 </svg> 1279 </a> 1280 </div> 1281 <div class="rv" style="--d:.38s"> 1282 <a class="cta-sub" href="/login">ØØ³Ø§Ø¨ Ø¯Ø§Ø±ÛØ <em>ÙØ§Ø±Ø¯ Ø´Ù</em></a> 1283 </div> 1284 </div> 1285</section> 1286 1287</main> 1288 1289<footer> 1290 <svg class="f-word" viewBox="14 12 254 116" role="img" aria-label="bixa"><use href="#bxWordThin" stroke="currentColor" stroke-width="16"/></svg> 1291 <span class="mono">BIXA.AI</span> 1292 <span>© Û±Û´Û°Ûµ â ÙÙ ÙâÛ ØÙÙÙ Ù ØÙÙØ¸ است.</span> 1293</footer> 1294
1295<script> 1296(function(){ 1297'use strict'; 1298var root=document.documentElement; 1299var RM=window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1300var EASE='cubic-bezier(0.16,1,0.3,1)'; 1301function $(id){return document.getElementById(id)} 1302function clamp(x,a,b){return x<a?a:(x>b?b:x)} 1303function sm(v){v=clamp(v,0,1);return v*v*(3-2*v)} 1304function seg(p,a,b){return sm((p-a)/(b-a))} 1305function fseg(p,a,b){return clamp((p-a)/(b-a),0,1)} 1306/* back-out: ÙØ´Ø³ØªÙ ØØ±Ù٠با Ø§ÙØ¯Ú©Û Ø³Ø±Ø±ÛØ² */ 1307function bko(t){t=clamp(t,0,1);var s=1.35;t-=1;return 1+t*t*((s+1)*t+s)} 1308/* بÙÙØ±Ù Ú©ÙØ§ÙØªÛØ²Ù â ÙÛÙ âÙ¾ÛکسÙÛØ Ø¨Ø±Ø§Û Û¶Û°fps */ 1309function qb(b){return Math.round(b*2)/2} 1310function faN(n,dec,plain){ 1311 try{ 1312 return n.toLocaleString('fa-IR',{minimumFractionDigits:dec||0,maximumFractionDigits:dec||0,useGrouping:!plain}) 1313 .replace(/,/g,'Ù¬').replace(/\./g,'Ù«'); 1314 }catch(e){return String(n)} 1315} 1316 1317/* âââââ storage helpers âââââ */ 1318function store(get,key,val){ 1319 try{ 1320 if(get)return localStorage.getItem(key); 1321 localStorage.setItem(key,val);return val; 1322 }catch(e){return null} 1323} 1324function uid(p){return p+Date.now().toString(36)+Math.random().toString(36).slice(2,10)} 1325var FP=store(true,'bx_fp')||store(false,'bx_fp',uid('fp_'))||uid('fp_'); 1326var SID=store(true,'bx_sid')||store(false,'bx_sid',uid('s_'))||uid('s_'); 1327 1328/* âââââ track beacon (silent) âââââ */ 1329try{ 1330 var tp=JSON.stringify({path:location.pathname,ref:document.referrer||'',sid:SID}); 1331 if(navigator.sendBeacon){navigator.sendBeacon('/api/track',new Blob([tp],{type:'application/json'}))} 1332 else{fetch('/api/track',{method:'POST',headers:{'Content-Type':'application/json'},body:tp,keepalive:true}).catch(function(){})} 1333}catch(e){} 1334 1335/* âââââ intro choreography â ÙÙØ¯Ù b با ت٠٠رÙÚ¯Û âââââ */ 1336var INTRO={anims:[],done:false}; 1337/* âââââ Ú¯Ø±ÛØ²Ù ÙÙØ±Û: ÙØ± Ú©ÙØ´Ù Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ù ÛÚ©âØ±Ø§Ø³Øª Ø¨Ù ØØ§ÙØªÙ Ù¾Ø§ÛØ§ÙÛ Ù ÛâØ¨Ø±Ø¯ âââââ */ 1338var SKIP_EV=['pointerdown','mousedown','touchstart','wheel','keydown','pointermove']; 1339var skipPX=null,skipPY=null; 1340function onSkip(e){ 1341 /* ØØ±Ú©ØªÙ اشارÙâگر ÙÙØ· ÙÙØªÛ Â«ÙØµØ¯Â» است Ú©Ù ÙØ§Ùعا٠جابÙâØ¬Ø§ شد٠باشد */ 1342 if(e&&e.type==='pointermove'){ 1343 if(skipPX===null){skipPX=e.clientX;skipPY=e.clientY;return} 1344 if(Math.abs(e.clientX-skipPX)+Math.abs(e.clientY-skipPY)<24)return; 1345 } 1346 finishIntro(); 1347} 1348function bindSkip(on){ 1349 for(var i=0;i<SKIP_EV.length;i++){ 1350 try{ 1351 if(on)window.addEventListener(SKIP_EV[i],onSkip,{passive:true,capture:true}); 1352 else window.removeEventListener(SKIP_EV[i],onSkip,{capture:true}); 1353 }catch(err){} 1354 } 1355} 1356function finishIntro(){ 1357 if(INTRO.done)return; 1358 INTRO.done=true; 1359 bindSkip(false); 1360 INTRO.anims.forEach(function(a){try{a.cancel()}catch(e){}}); 1361 INTRO.anims=[]; 1362 root.classList.add('intro-done'); 1363 root.classList.remove('lock'); 1364 /* ÙØ¨âÚ©ÛØª بعد از Ù¾Ø§ÛØ§Ù٠اÙÛÙ ÛØ´ÙÙ dash ÙØ§ØÛÙâÛ Ø§Ø³ØªØ±ÙÚ© را درست باط٠ÙÙ ÛâÚ©ÙØ¯ 1365 (ساÙÙâÛ i Ù a Ù ØÙ Ù ÛâØ´Ø¯ÙØ¯) â ÛÚ© باطÙâØ³Ø§Ø²ÛÙ Ø§Ø¬Ø¨Ø§Ø±Û Ø¯Ø± ÙÙ Ø§Ù ÙØ±ÛÙ */ 1366 var _wm=document.getElementById('wm'); 1367 if(_wm){ _wm.style.display='none'; void _wm.getBoundingClientRect(); _wm.style.display=''; } 1368 var tb=document.getElementById('topbar'); 1369 if(tb)tb.classList.add('show'); 1370} 1371var seen=false; 1372try{seen=!!sessionStorage.getItem('bx_intro');sessionStorage.setItem('bx_intro','1')}catch(e){} 1373 1374if(RM||seen){ 1375 if(seen&&!RM)root.classList.add('revisit'); /* Ø¨Ø§Ø²Ø¯ÛØ¯Ù دÙÙ : ~Û°.Û¸ ثاÙÛÙ */ 1376 finishIntro(); 1377}else{ 1378 root.classList.add('lock'); 1379 bindSkip(true); 1380 try{ 1381 var A=function(el,kf,op){var a=el.animate(kf,op);INTRO.anims.push(a);return a}; 1382 var draw=function(id,delay,dur){ 1383 A($(id),[ 1384 {strokeDashoffset:1,opacity:0}, 1385 {strokeDashoffset:0.965,opacity:1,offset:0.06}, 1386 {strokeDashoffset:0,opacity:1} 1387 ],{duration:dur,delay:delay,easing:EASE,fill:'both'}); 1388 }; 1389 /* پردÙâÛ Ø§ÙÙ â b بÙâØªÙÙØ§ÛÛØ ÙØ³Ø·Ø بزرگ */ 1390 draw('wBs',220,540); 1391 draw('wBb',580,640); 1392 /* ÙÙØ±Ù Ú¯Ø±Ø§Ø¯ÛØ§ÙÛ Ø±ÙÛ Ø®ÙØ¯Ù b Ù ÛâÙØ´ÛÙØ¯ Ù ÛÚ© ÙÙØ³Ù کا٠٠٠ÛâÙ Ø§ÙØ¯ â Ø¨ÙÙØ´ تا Ú©ÙØ±Ø¨Ø§ÛÛ */ 1393 A($('wmSpec'),[ 1394 {opacity:0}
1394, 1395 {opacity:1,offset:0.18}, 1396 {opacity:1,offset:0.72}, 1397 {opacity:0} 1398 ],{duration:1520,delay:1000,easing:'ease-in-out',fill:'both'}); 1399 A($('wmGlow'),[{opacity:0},{opacity:0.55,offset:0.3},{opacity:0.55,offset:0.72},{opacity:0}],{duration:1520,delay:1000,easing:'ease-in-out',fill:'both'}); 1400 A($('wmSweep'),[ 1401 {opacity:0,transform:'translateX(0px)'}, 1402 {opacity:1,offset:0.12}, 1403 {opacity:1,offset:0.85}, 1404 {opacity:0,transform:'translateX(560px)'} 1405 ],{duration:760,delay:2020,easing:'cubic-bezier(0.5,0,0.2,1)',fill:'both'}); 1406 A($('heroFlash'),[{opacity:0},{opacity:0.6,offset:0.4},{opacity:0}],{duration:700,delay:2080,easing:'ease-in-out',fill:'both'}); 1407 /* گذار٠٠خ٠ÙÛ â b ÙØ±Ù جا باز Ù ÛâÚ©ÙØ¯ Ù Ú©Ù٠٠کا٠٠٠ÛâØ´ÙØ¯ */ 1408 A($('wm'),[ 1409 {transform:'translateX(34%) scale(1.3)'}, 1410 {transform:'translateX(0%) scale(1)'} 1411 ],{duration:1250,delay:2180,easing:EASE,fill:'both'}); 1412 draw('wIs',2380,470); 1413 /* Ù ÙÛØ§Ø³ ØÙÙÙ Ø®ÙØ¯Ù ÙÙØ·ÙØ Ù Ø³ØªÙ٠از transform-origin/transform-box â Ø¯Ø± ÙØ± Ù ÙØªÙØ±Û Ûکسا٠*/ 1414 var DOT=function(k){return 'translate(224px,70px) scale('+k+') translate(-224px,-70px)'}; 1415 A($('wmDot'),[ 1416 {opacity:0,transform:DOT(0.1)}, 1417 {opacity:1,transform:DOT(1.55),offset:0.62}, 1418 {opacity:1,transform:DOT(1)} 1419 ],{duration:520,delay:2600,easing:EASE,fill:'both'}); 1420 draw('wX1',2690,470); 1421 draw('wX2',2780,470); 1422 draw('wAb',2880,560); 1423 draw('wAs',3010,470); 1424 A($('wmSay'),[ 1425 {opacity:0,transform:'translateY(12px)'}, 1426 {opacity:1,transform:'translateY(0)'} 1427 ],{duration:760,delay:3560,easing:EASE,fill:'both'}); 1428 A($('wmCap'),[ 1429 {opacity:0,transform:'translateY(14px)',filter:'blur(6px)'}, 1430 {opacity:1,transform:'translateY(0)',filter:'blur(0px)'} 1431 ],{duration:700,delay:3420,easing:EASE,fill:'both'}); 1432 A($('scrollCue'),[{opacity:0},{opacity:0.85}],{duration:750,delay:3620,easing:'ease-out',fill:'both'}); 1433 setTimeout(function(){root.classList.remove('lock')},3250); 1434 setTimeout(finishIntro,4150); 1435 }catch(e){finishIntro()} 1436} 1437/* ÙÙÛÙâØ³ÙÛÙ: ØµÙØÙ ÙØ±Ú¯Ø² Ø³ÛØ§Ù ÙÙ ÛâÙ Ø§ÙØ¯ */ 1438setTimeout(finishIntro,4400); 1439 1440/* âââââ scroll choreography âââââ */ 1441var vh=window.innerHeight; 1442var wmWrap=$('wmWrap'),cue=$('scrollCue'),topbar=$('topbar'); 1443var story=$('story'); 1444/* ØØ±ÙÙâÚÛÙÛÙ Ø²ÙØ¯Ù: ÙØ± خط Ø¨Ù ÙØ§ÚÙâÙØ§Û Ù Ø§Ø³Ú©âØ¯Ø§Ø± شکست٠٠ÛâØ´ÙØ¯ â ٠ت٠دست ÙÙ ÛâØ®ÙØ±Ø¯ */ 1445function splitWords(el){ 1446 if(RM||!el)return []; 1447 var words=el.textContent.split(' '),frag=document.createDocumentFragment(),out=[]; 1448 words.forEach(function(word,i){ 1449 if(i)frag.appendChild(document.createTextNode(' ')); 1450 if(!word)return; 1451 var w=document.createElement('span');w.className='w'; 1452 var wi=document.createElement('span');wi.className='wi'; 1453 wi.textContent=word;w.appendChild(wi);frag.appendChild(w);out.push(wi); 1454 }); 1455 el.textContent='';el.appendChild(frag); 1456 return out; 1457} 1458var chapters=[].slice.call(document.querySelectorAll('.ch')).map(function(el){ 1459 var fx=[].slice.call(el.querySelectorAll('[data-fx]')).map(function(f){ 1460 return {el:f,kind:f.dataset.fx,a:parseFloat(f.dataset.a||'0'),b:parseFloat(f.dataset.b||'1')}; 1461 }); 1462 var tag=el.querySelector('.ch-tag'),l1=el.querySelector('.l1'),l2=el.querySelector('.l2'); 1463 return {el:el,inner:el.querySelector('.ch-inner'),tag:tag, 1464 l1:l1,l2:l2,num:el.querySelector('.ch-num'), 1465 w1:splitWords(l1),w2:splitWords(l2), 1466 dashes:[].slice.call(tag.querySelectorAll('i')), 1467 scene:el.querySelector('.scene'),fx:fx, 1468 ax:parseFloat(el.dataset.ax||'0'),ay:parseFloat(el.dataset.ay||'1'), 1469 top:0,h:0,off:false,init:false}; 1470}); 1471var visEls=[].slice.call(document.querySelectorAll('.pr-frame')); 1472var visMeta=[]; 1473var storyTop=0,storyBot=0; 1474 1475/* Ù Ø³ÛØ± */ 1476var trail=$('trailDraw'),trailHead=$('trailHead'); 1477var tnodes=[].slice.call(document.querySelectorAll('.tnode')); 1478var NODE_F=[0.1252,0.3709,0.6291,0.8777]; 1479var trailLen=0; 1480if(!RM&&trail){ 1481 try{ 1482 trailLen=trail.getTotalLength(); 1483 trail.style.strokeDasharray=trailLen+' '+trailLen; 1484 trail.style.strokeDashoffset=trailLen; 1485 /* کسر٠دÙÛÙÙ ÙØ± Ø§ÛØ³ØªÚ¯Ø§ÙØ Ø§Ø² Ø®ÙØ¯Ù ÙÙØ¯Ø³ÙâÛ Ù Ø³ÛØ± â ÙØ±Ú¯Ø² از ÙÙ ÙÙ ÛâØ§ÙØªÙد */ 1486 (function(){
1487 var T=[[250,129],[750,382],[250,648],[750,904]],N=600,i,j, 1488 best=T.map(function(){return {d:1e18,f:0}}); 1489 for(i=0;i<=N;i++){ 1490 var pt=trail.getPointAtLength(trailLen*i/N); 1491 for(j=0;j<T.length;j++){ 1492 var dx=pt.x-T[j][0],dy=pt.y-T[j][1],dd=dx*dx+dy*dy; 1493 if(dd<best[j].d){best[j].d=dd;best[j].f=i/N} 1494 } 1495 } 1496 NODE_F=best.map(function(b){return b.f}); 1497 })(); 1498 }catch(e){trailLen=0} 1499} 1500if(RM){tnodes.forEach(function(n){n.classList.add('on')})} 1501 1502/* Ø³ÙØ±Ù رÙÚ¯Û */ 1503var skyLayers=[].slice.call(document.querySelectorAll('.sky i')); 1504var skyPrev=skyLayers.map(function(){return -1}); 1505var skyStops=[]; 1506function measureSky(){ 1507 function mid(el,cap){ 1508 var r=el.getBoundingClientRect(); 1509 var t=r.top+window.scrollY,h=r.height; 1510 return t+(cap?Math.min(h/2,cap):h/2); 1511 } 1512 skyStops=[ 1513 {at:vh*0.5,li:-1}, /* Ø®ÙØ£ */ 1514 {at:mid($('ch1')),li:0}, /* سر٠ÙâØ§Û */ 1515 {at:mid($('ch2')),li:1}, /* ÙÛÙÛ */ 1516 {at:mid($('ch3')),li:2}, /* بÙÙØ´Ù شباÙÙ */ 1517 {at:mid($('ch4')),li:3}, /* Ø§Ø±ØºÙØ§ÙÛ٠گر٠*/ 1518 {at:mid($('proof'),vh*1.4),li:4}, /* Ú©ÙØ±Ø¨Ø§ÛÛÙ ØªÛØ±Ù */ 1519 {at:mid($('ask')),li:5}, /* Ø´Ø¨Ù ÙØ¦ÙÙ */ 1520 {at:mid($('start')),li:6} /* Ø³Ù¾ÛØ¯Ù â Ø±ÙØ´ÙâØªØ±ÛÙ */ 1521 ]; 1522} 1523function applySky(pos){ 1524 var t=[0,0,0,0,0,0,0],i,k; 1525 if(pos<=skyStops[0].at){/* void */} 1526 else if(pos>=skyStops[skyStops.length-1].at){t[6]=1} 1527 else{ 1528 for(i=0;i<skyStops.length-1;i++){ 1529 if(pos>=skyStops[i].at&&pos<skyStops[i+1].at){ 1530 k=sm((pos-skyStops[i].at)/(skyStops[i+1].at-skyStops[i].at)); 1531 if(skyStops[i].li>=0)t[skyStops[i].li]=1-k; 1532 if(skyStops[i+1].li>=0)t[skyStops[i+1].li]=k; 1533 break; 1534 } 1535 } 1536 } 1537 for(i=0;i<skyLayers.length;i++){ 1538 var v=Math.round(t[i]*1000)/1000; 1539 if(v!==skyPrev[i]){skyPrev[i]=v;skyLayers[i].style.opacity=v} 1540 } 1541} 1542 1543function measure(){ 1544 vh=window.innerHeight; 1545 chapters.forEach(function(c){ 1546 var r=c.el.getBoundingClientRect(); 1547 c.top=r.top+window.scrollY;c.h=r.height; 1548 }); 1549 var sr=story.getBoundingClientRect(); 1550 storyTop=sr.top+window.scrollY;storyBot=storyTop+sr.height; 1551 visMeta=visEls.map(function(el){ 1552 var r=el.getBoundingClientRect(); 1553 return {el:el,top:r.top+window.scrollY,h:r.height}; 1554 }); 1555 measureSky(); 1556} 1557 1558/* ÛÚ© ÙØ§ÚÙâÛ Ù Ø§Ø³Ú©âØ¯Ø§Ø±: Ø®ÛØ²Ù ÙØ±Ùد با ÙØ´Ø³ØªÙ back-outØ Ù¾Ø±ØªØ§Ø¨Ù Ø®Ø±ÙØ¬ با Ù ÙÙ ÙØªÙÙ */ 1559function applyWords(ws,p,inA,inSpan,inDur,outA,outSpan,outDur){ 1560 var n=ws.length||1,k,st,qi,qo,y; 1561 for(k=0;k<ws.length;k++){ 1562 st=inA+(k/n)*inSpan; 1563 qi=bko(fseg(p,st,st+inDur)); 1564 st=outA+(k/n)*outSpan; 1565 qo=fseg(p,st,st+outDur);qo*=qo; 1566 y=(1-qi)*132-qo*142; 1567 ws[k].style.transform='translateY('+y.toFixed(1)+'%) scale('+(0.9+0.1*Math.min(qi,1)).toFixed(3)+')'; 1568 } 1569} 1570function applyCh(c,p){ 1571 var ex=seg(p,0.84,0.99),exq=ex*ex; /* Ø®Ø±ÙØ¬Ù شتابâÚ¯ÛØ± */ 1572 var numE=seg(p,0.0,0.12),tagE=seg(p,0.02,0.14); 1573 var e1=seg(p,0.05,0.15),e1b=seg(p,0.08,0.32); /* l1: پرد٠+ ÙØ¶ÙØ */ 1574 var d=seg(p,0.4,0.58); /* ضرب٠دÙÙ : l1 Ø¹ÙØ¨ Ù ÛâÙØ´ÛÙØ¯ */ 1575 var e2=seg(p,0.41,0.52),e2b=seg(p,0.45,0.66); 1576 var scE=seg(p,0.02,0.17); 1577 var b1=qb((1-e1b)*7),b2=qb((1-e2b)*7),bx=qb(9*ex); 1578 var ax=c.ax,ay=c.ay; 1579 /* Ø¨Ø±ÚØ³Ø¨Ù ÙØµÙ: خطâÙØ§Û Ø·ÙØ§ÛÛ Ø§Ø² د٠س٠باز Ù ÛâØ´ÙÙØ¯Ø ٠ت٠٠ÛâÙØ´ÛÙØ¯ */ 1580 c.tag.style.opacity=(tagE*(1-ex)).toFixed(3); 1581 c.tag.style.transform='translateY('+((1-tagE)*16*ay-exq*18).toFixed(1)+'px)'; 1582 for(var k=0;k<c.dashes.length;k++){ 1583 c.dashes[k].style.transform='scaleX('+(tagE*(1-ex)).toFixed(3)+')'; 1584 } 1585 /* خط٠اصÙÛ: ÙØ±Ùد٠کÙÙ ÙâØ¨ÙâÚ©Ù٠٠از پشت٠٠اسک + درÛÙØªÙ Ø¬ÙØªâدار + بÙÙØ±âÙØ¶ÙØ */ 1586 c.l1.style.opacity=(e1*(1-0.35*d)*(1-ex)).toFixed(3); 1587 c.l1.style.transform='translate('+((1-e1b)*30*ax).toFixed(1)+'px,'+(-d*15-exq*10).toFixed(1)+'px) scale('+(1-0.02*d).toFixed(3)+')'; 1588 c.l1.style.filter=b1>0.2?'blur('+b1+'px)':'none'; 1589 applyWords(c.w1,p,0.06,0.13,0.13,0.85,0.05,0.09); 1590 /* خط٠دÙÙ : رÙÛ Ø¶Ø±Ø¨Ù Ø¨Ø¹Ø¯Û â Ø®Ûز٠٠اسک + ÙØ´Ø³ØªÙ Ù ÙÛØ§Ø³ */ 1591 c.l2.style.opacity=(e2*(1-ex)).toFixed(3); 1592 c.l2.style.transform='translate('+((1-e2b)*36*ax).toFixed(1)+'px,'+(-exq*6).toFixed(1)+'px) scale('+(0.962+0.038*bko(fseg(p,0.42,0.64))).toFixed(3)+')'; 1593 c.l2.style.filter=b2>0.2?'blur('+b2+'px)':'none'; 1594 applyWords(c.w2,p,0.43,0.11,0.14,0.86,0.05,0.09); 1595 /* Ø®Ø±ÙØ¬Ù Ú©Ù٠صØÙÙ: Ù ÙÙ ÙØªÙÙ Ù Ø¬ÙØªâدار + بÙÙØ± */ 1596 c.inner.style.transform='translate('+(52*exq*ax).toFixed(1)+'px,'+(-84*exq).toFixed(1)+'px) scale('+(1-0.05*exq).toFixed(3)+')'; 1597 c.inner.style.filter=bx>0.2?'blur('+bx+'px)':'none'; 1598 /* ش٠ارÙ: Ø²ÙØ¯ØªØ± Ù ÛâØ¢ÛØ¯Ø Ø¯Ø±Ø´ØªâØ¬Ø§ Ù ÛâØ§ÙØªØ¯Ø Ù¾Ø§Ø±Ø§ÙØ§Ú©Ø³Ù ع٠ÛÙâØªØ± */ 1599 c.num.style.opacity=(0.9*numE*(1-ex)).toFixed(3); 1600 c.num.style.transform='translate(50%,-50%) translateY('+((0.5-p)*130).toFixed(1)+'px) scale('+(1.1-0.1*bko(fseg(p,0,0.24))).toFixed(3)+')'; 1601 /* صØÙÙâÛ ØªØµÙÛØ±Û â Ù¾Ø§Ø±Ø§ÙØ§Ú©Ø³Ù ÙØ±Ù + ÙØ±ÙØ¯Ù Ø¬ÙØªâدار */ 1602 if(c.scene){ 1603 c.scene.style.opacity=(scE*(1-ex)).toFixed(3); 1604 c.scene.style.transform='translate('+((1-scE)*-30*ax).toFixed(1)+'px,'+((1-scE)*34+(0.5-p)*-26).toFixed(1)+'px)'; 1605 } 1606 for(var i=0;i<c.fx.length;i++){ 1607 var f=c.fx[i],q=seg(p,f.a,f.b); 1608 if(f.kind==='draw'){ 1609 f.el.style.strokeDashoffset=(1-q).toFixed(4); 1610 f.el.style.opacity=q>0.001?'1':'0'; 1611 }else if(f.kind==='fade'){ 1612 f.el.style.opacity=(1-q).toFixed(3); 1613 }else{ 1614 f.el.style.opacity=q.toFixed(3); 1615 f.el.style.transform='scale('+(0.45+0.55*q).toFixed(3)+')'; 1616 } 1617 } 1618} 1619 1620var ticking=false;
1621function update(){ 1622 ticking=false; 1623 var y=window.scrollY; 1624 /* hero handoff */ 1625 if(INTRO.done||y>4){ 1626 var hp=clamp(y/(vh*0.85),0,1),he=sm(hp); 1627 wmWrap.style.opacity=(1-he).toFixed(3); 1628 wmWrap.style.transform='translateY('+(-46*he).toFixed(1)+'px) scale('+(1-0.05*he).toFixed(3)+')'; 1629 cue.style.opacity=String(0.85*(1-clamp(y/(vh*0.25),0,1))); 1630 } 1631 if(INTRO.done||y>vh*0.6)topbar.classList.add('show'); 1632 topbar.classList.toggle('scrolled',y>vh*0.5); 1633 applySky(y+vh*0.5); 1634 if(!RM){ 1635 chapters.forEach(function(c){ 1636 var p=(y-c.top)/(c.h-vh); 1637 if(p<-0.12||p>1.12){ 1638 if(!c.off||!c.init){applyCh(c,clamp(p,-0.12,1.12));c.off=true;c.init=true} 1639 return; 1640 } 1641 c.off=false;c.init=true; 1642 applyCh(c,p); 1643 }); 1644 /* Ù Ø³ÛØ± با اسکرÙÙ Ú©Ø´ÛØ¯Ù Ù ÛâØ´ÙØ¯ */ 1645 if(trailLen){ 1646 var sp=clamp((y+vh*0.55-storyTop)/(storyBot-storyTop),0,1); 1647 trail.style.strokeDashoffset=(trailLen*(1-sp)).toFixed(1); 1648 try{ 1649 var pt=trail.getPointAtLength(trailLen*sp); 1650 trailHead.style.left=(pt.x/10).toFixed(3)+'%'; 1651 trailHead.style.top=(pt.y/10.3).toFixed(3)+'%'; 1652 }catch(e){} 1653 trailHead.style.opacity=(sp>0.004&&sp<0.997)?'1':'0'; 1654 for(var i=0;i<tnodes.length;i++){ 1655 tnodes[i].classList.toggle('on',sp>=NODE_F[i]-0.015); 1656 } 1657 } 1658 /* parallax on proof visuals */ 1659 visMeta.forEach(function(v){ 1660 var mid=v.top+v.h/2-(y+vh/2); 1661 if(Math.abs(mid)<vh){v.el.style.transform='translateY('+(mid*-0.045).toFixed(1)+'px)'} 1662 }); 1663 } 1664} 1665function onScroll(){if(!ticking){ticking=true;requestAnimationFrame(update)}} 1666window.addEventListener('scroll',onScroll,{passive:true}); 1667var rsT; 1668window.addEventListener('resize',function(){clearTimeout(rsT);rsT=setTimeout(function(){measure();update()},160)}); 1669window.addEventListener('load',function(){measure();update()}); 1670window.addEventListener('orientationchange',function(){setTimeout(function(){measure();update()},350)}); 1671try{ 1672 if(document.fonts&&document.fonts.ready)document.fonts.ready.then(function(){measure();update()}); 1673}catch(e){} 1674measure();update(); 1675 1676/* âââââ reveals + count-up âââââ */ 1677function countUp(scope){ 1678 scope.querySelectorAll('.num').forEach(function(el){ 1679 if(el.dataset.did)return;el.dataset.did='1'; 1680 var target=parseFloat(el.dataset.num),dec=parseInt(el.dataset.dec||'0',10),plain=!!el.dataset.plain; 1681 if(RM||!('requestAnimationFrame' in window)){el.textContent=faN(target,dec,plain);return} 1682 var t0=null,dur=1500; 1683 function step(ts){ 1684 if(!t0)t0=ts; 1685 var k=clamp((ts-t0)/dur,0,1); 1686 var e=1-Math.pow(1-k,4); 1687 el.textContent=faN(target*e,dec,plain); 1688 if(k<1)requestAnimationFrame(step);else el.textContent=faN(target,dec,plain); 1689 } 1690 requestAnimationFrame(step); 1691 }); 1692} 1693if('IntersectionObserver' in window&&!RM){ 1694 var io=new IntersectionObserver(function(es){ 1695 es.forEach(function(e){ 1696 if(e.isIntersecting){ 1697 e.target.classList.add('in'); 1698 countUp(e.target); 1699 io.unobserve(e.target); 1700 } 1701 }); 1702 },{threshold:0.22,rootMargin:'0px 0px -6% 0px'}); 1703 document.querySelectorAll('[data-rv]').forEach(function(el){io.observe(el)}); 1704}else{ 1705 document.querySelectorAll('[data-rv]').forEach(function(el){el.classList.add('in');countUp(el)}); 1706} 1707 1708/* âââââ Ú©Ø§Ø±ØªÙ Ø¯Ø³ØªÛØ§Ø± â Ø¨Ø§Ø²Ø´Ø¯Ù درجا âââââ */ 1709var aiCard=$('aiCard'),aiPitch=$('aiPitch'),aiChatPane=$('aiChatPane'), 1710 glowbar=$('glowbar'),chatX=$('chatX'),msgs=$('msgs'),chipsEl=$('chips'), 1711 composer=$('composer'),input=$('q'),sendBtn=$('sendBtn'), 1712 quotaEl=$('quota'),gbPlus=$('gbPlus'); 1713var busy=false,quotaFetched=false,quotaOut=false; 1714 1715/* ÚØ±Ø®Ø´Ù ÙÙØ§Ø±Ù درخشا٠ÙÙØ· ÙÙØªÛ Ø¯ÛØ¯Ù Ù ÛâØ´ÙØ¯ */ 1716if('IntersectionObserver' in window){ 1717 var gio=new IntersectionObserver(function(es){ 1718 es.forEach(function(e){glowbar.classList.toggle('live',e.isIntersecting)}); 1719 },{rootMargin:'90px 0px'}); 1720 gio.observe(glowbar); 1721}else{glowbar.classList.add('live')} 1722 1723function openCard(focus){ 1724 if(aiCard.classList.contains('open'))return; 1725 aiCard.classList.add('open'); 1726 aiPitch.setAttribute('aria-expanded','true'); 1727 aiChatPane.setAttribute('aria-hidden','false'); 1728 aiChatPane.inert = false; /* Ø¯ÙØ¨Ø§Ø±Ù در ØªØ±ØªÛØ¨Ù Tab */ 1729 /* ØªÛØ²Ø± ج٠ع Ù ÛâØ´ÙØ¯ ÙÙÛ visibility ÙÙ ÛâÚ¯ÛØ±Ø¯Ø بÛâinert با Tab باز Ù٠ب٠آ٠٠ÛâØ±Ø³ÛÙ . 1730 تا ÙÙÚ©ÙØ³ Ù ÙØªÙÙ ÙØ´Ø¯Ù بÛâØ§Ø«Ø±Ø´ ÙÚ©Ù. */ 1731 setTimeout(function(){ if(aiCard.classList.contains('open')) aiPitch.inert = true; },430); 1732 if(focus!==false)setTimeout(function(){try{input.focus({preventScroll:true})}catch(e){}},420); 1733 setTimeout(function(){ 1734 try{aiCard.scrollIntoView({behavior:RM?'auto':'smooth',block:'center'})}catch(e){} 1735 },380); 1736 if(!quotaFetched){ 1737 quotaFetched=true; 1738 /* Ú©Ø§Ø±Ø¨Ø±Ù ÙØ§Ø±Ø¯Ø´Ø¯Ù با تÙÚ©ÙØ´ Ù¾Ø±Ø³ÛØ¯Ù Ù ÛâØ´ÙØ¯ تا سÙÙ ÛÙâÛ Ø®ÙØ¯Ø´ (Ù٠سÙÙ ÛÙâÛ Ù Ù٠اÙ) ÙÙ Ø§ÛØ´ Ø¯Ø§Ø¯Ù Ø´ÙØ¯ */ 1739 authToken().then(function(t){ 1740 return fetch('/api/assistant/quota?guest_fingerprint='+encodeURIComponent(FP), 1741 {headers:t?{Authorization:'Bearer '+t}:{}}); 1742 }) 1743 .then(function(r){return r&&r.ok?r.json():null}) 1744 .then(function(j){ 1745 if(!j)return; 1746 if(typeof j.scope==='string')lastScope=j.scope; 1747 var n=j.remaining!=null?j.remaining:(j.quota_remaining!=null?j.quota_remaining:null); 1748 if(n!=null)setQuota(n); 1749 /* Ù Ù٠اÙÛ Ú©Ù Ø³Ø¤Ø§ÙâÙØ§ÛØ´ رÙÛ Ø§ÛÙ Ø¯Ø³ØªÚ¯Ø§Ù ØªÙ Ø§Ù Ø´Ø¯ÙØ ÙØ¨Ù از ÙÙØ´ØªÙ دÛÙØ§Ø± را Ù ÛâØ¨ÛÙØ¯ */ 1750 if(j.scope==='guest'&&parseInt(n,10)===0&&!busy&&!quotaOut)quotaCard('guest',''); 1751 }).catch(function(){}); 1752 } 1753} 1754function closeCard(){ 1755 /* ÙÙÚ©ÙØ³ داخÙ٠کارت Ø¨ÙØ¯Ø ÙØ¨Ø§Ûد در ÙÙØ§ Ø¨Ù Ø§ÙØ¯ â ØªÛزر Ù٠ا٠ÚÛØ²Û است Ú©Ù Ø¬Ø§ÛØ´ را Ù ÛâÚ¯ÛØ±Ø¯. 1756 (کادر٠پرسش Ù٠داخÙÙ ÙÙ Û٠کارت است Ù input.blur پاÛÛÙâØªØ± ÙÙÚ©ÙØ³ را بر٠ÛâØ¯Ø§Ø±Ø¯.) */ 1757 var inPane=false; 1758 try{ inPane = aiCard.contains(document.activeElement); }catch(e){} 1759 aiPitch.inert = false;
1760 aiCard.classList.remove('open'); 1761 aiPitch.setAttribute('aria-expanded','false'); 1762 aiChatPane.setAttribute('aria-hidden','true'); 1763 /* Ù¾ÙÙÙ Ø¨Ø³ØªÙ ÙØ¨Ø§Ûد با Tab ÙØ§Ø¨ÙÙ Ø±Ø³ÛØ¯Ù باشد (WCAG 4.1.2) â aria-hidden بÙâØªÙÙØ§ÛÛ 1764 Ø¹ÙØµØ± را از ØªØ±ØªÛØ¨Ù ÙÙÚ©ÙØ³ Ø¨ÛØ±ÙÙ ÙÙ ÛâØ¨Ø±Ø¯. */ 1765 aiChatPane.inert = true; 1766 try{input.blur()}catch(e){} 1767 /* ØªÛØ²Ø± ÙÙ ÛÙ ØØ§Ùا از ØØ§Ùت٠ج٠ع Ø¨ÛØ±ÙÙ Ù ÛâØ¢ÛØ¯Ø تا جا ÙÛÙØªØ§Ø¯Ù focus() ÙÙ ÛâÚ¯ÛØ±Ø¯ â ÚÙØ¯ ÙØ±ÛÙ ØªÙØ§Ø´ Ú©Ù */ 1768 if(inPane){ 1769 var t=0, back=function(){ 1770 try{ aiPitch.focus({preventScroll:true}); }catch(e){} 1771 if(document.activeElement===aiPitch) return; 1772 if(++t<10) setTimeout(back,60); 1773 }; 1774 requestAnimationFrame(back); 1775 } 1776} 1777aiChatPane.addEventListener('transitionend',function(e){ 1778 if(e.propertyName==='grid-template-rows'&&aiCard.classList.contains('open')&&!input.disabled&&!busy){ 1779 try{input.focus({preventScroll:true})}catch(err){} 1780 } 1781}); 1782aiPitch.addEventListener('click',function(){openCard(true)}); 1783aiPitch.addEventListener('keydown',function(e){ 1784 if(e.key==='Enter'||e.key===' '){e.preventDefault();openCard(true)} 1785}); 1786input.addEventListener('focus',function(){openCard(false);glowbar.classList.add('hot')}); 1787input.addEventListener('blur',function(){if(!input.value)glowbar.classList.remove('hot')}); 1788gbPlus.addEventListener('click',function(){openCard(true)}); 1789chatX.addEventListener('click',closeCard); 1790if(chipsEl){ 1791 chipsEl.addEventListener('click',function(e){ 1792 var b=e.target.closest('.chip'); 1793 if(!b||busy||quotaOut)return; 1794 input.value=b.textContent.trim(); 1795 if(typeof composer.requestSubmit==='function')composer.requestSubmit(); 1796 else composer.dispatchEvent(new Event('submit',{cancelable:true})); 1797 }); 1798} 1799document.addEventListener('keydown',function(e){ 1800 if(e.key==='Escape'&&aiCard.classList.contains('open'))closeCard(); 1801}); 1802msgs.addEventListener('click',function(e){ 1803 if(e.target.closest('[data-close]'))closeCard(); 1804}); 1805function setQuota(n){ 1806 var v=parseInt(n,10); 1807 if(isNaN(v)){quotaEl.textContent='';return} 1808 quotaEl.textContent=faN(v,0,true)+' پرسش٠باÙÛâÙ Ø§ÙØ¯Ù'; 1809} 1810input.addEventListener('input',function(){ 1811 glowbar.classList.toggle('hot',document.activeElement===input||!!input.value); 1812}); 1813 1814/* âââââ ÙÙÛØªÙ Ú¯ÙØªâÙÚ¯Ù: Ú©Ø§Ø±Ø¨Ø±Ù ÙØ§Ø±Ø¯Ø´Ø¯Ù با تÙÚ©ÙØ Ù Ù٠ا٠با اثراÙگشت٠دستگا٠âââââ */ 1815var lastScope=''; /* آخرÛÙ scope Ú©Ù Ø³Ø±ÙØ± Ú¯ÙØª: guest | free | subscription */ 1816function hasSession(){return !!(store(true,'bx_at')||store(true,'bx_rt'))} 1817function withTimeout(p,ms){ 1818 return new Promise(function(ok,no){ 1819 var t=setTimeout(function(){no(new Error('timeout'))},ms); 1820 p.then(function(v){clearTimeout(t);ok(v)},function(e){clearTimeout(t);no(e)}); 1821 }); 1822} 1823/* ز٠اÙ٠اÙÙØ¶Ø§Û JWT (ثاÙÛÙ)Ø Ø§Ú¯Ø± Ø®ÙØ§Ùا ÙØ¨Ùد Û° â Ø¯Ø§ÙØ±Û Ø¨Ø§ Ø³Ø±ÙØ± */ 1824function jwtExp(t){ 1825 try{ 1826 var p=String(t).split('.')[1];if(!p)return 0; 1827 p=p.replace(/-/g,'+').replace(/_/g,'/');while(p.length%4)p+='='; 1828 var o=JSON.parse(atob(p)); 1829 return typeof o.exp==='number'?o.exp:0; 1830 }catch(e){return 0} 1831} 1832/* ØªÙ Ø¯ÛØ¯Ù تÙÚ©Ù â ÙÙ Ø§Ù ÙØ±Ø§Ø±Ø¯Ø§Ø¯Ù Ù¾ÙÙ (/auth/refresh)Ø ØªÚ©âØ¯Ø±Ø®ÙØ§Ø³ØªÛØ Ø¨Ø§ سÙÙÙ Ø²Ù Ø§Ù Ø¨Ø±Ø§Û Ø§ÛÙØªØ±ÙØªÙ Ú©ÙØ¯ */ 1833var _refreshing=null,refreshDead=false; /* Ø±Ø¯Ù ÙØ·Ø¹ÛÙ Ø³Ø±ÙØ± â Ø¯Ø± اÛÙ ØµÙØÙ Ø¯ÙØ¨Ø§Ø±Ù ØªÙØ§Ø´ ÙÙ ÛâÚ©ÙÛÙ */ 1834function refreshAt(){ 1835 var rt=store(true,'bx_rt'); 1836 if(!rt||refreshDead)return Promise.resolve(null); 1837 if(_refreshing)return _refreshing; 1838 _refreshing=withTimeout(fetch('/api/auth/refresh',{ 1839 method:'POST',headers:{'Content-Type':'application/json'}, 1840 body:JSON.stringify({refresh_token:rt}) 1841 }),9000) 1842 .then(function(r){ 1843 if(r&&(r.status===401||r.status===403))refreshDead=true; 1844 return r&&r.ok?r.json():null; 1845 }) 1846 .then(function(j){ 1847 if(!j||typeof j.access_token!=='string')return null; 1848 store(false,'bx_at',j.access_token); 1849 if(typeof j.refresh_token==='string')store(false,'bx_rt',j.refresh_token); 1850 return j.access_token; 1851 }) 1852 .catch(function(){return null}) 1853 .then(function(v){_refreshing=null;return v}); 1854 return _refreshing; 1855} 1856/* تÙÚ©Ù٠٠عتبر ÛØ§ null. ÙÛÚâÙÙØª خطا ÙÙ ÛâØ¯ÙØ¯Ø اگر ØªÙ Ø¯ÛØ¯ ÙØ´Ø¯Ø Ú¯ÙØªâÙÚ¯Ù Ù Ø«ÙÙ Ù Ù٠ا٠ادا٠٠٠ÛâÛØ§Ø¨Ø¯ */ 1857function authToken(){ 1858 var at=store(true,'bx_at'),exp=at?jwtExp(at):0; 1859 if(at&&(!exp||exp*1000-Date.now()>30000))return Promise.resolve(at); 1860 if(!store(true,'bx_rt'))return Promise.resolve(null); 1861 return refreshAt(); 1862} 1863/* رÙÛØ¯Ø§Ø¯Ù ÙÛÙ â Ø¨ÛâØµØ¯Ø§Ø Ø¨ÛâØ§ÙØªØ¸Ø§Ø±Ø ÙØ±Ú¯Ø² Ù Ø§ÙØ¹Ù رابط ÙÛØ³Øª */ 1864function track(ev){ 1865 try{ 1866 var h={'Content-Type':'application/json'},t=store(true,'bx_at'); 1867 if(t)h.Authorization='Bearer '+t; 1868 fetch('/api/track',{method:'POST',keepalive:true,headers:h, 1869 body:JSON.stringify({path:location.pathname,event:ev})}).catch(function(){}); 1870 }catch(e){} 1871} 1872 1873/* âââââ ÚØªÙ Ø²ÙØ¯Ù âââââ */ 1874var HIST=[]; /* تا Û¶ ÙÙØ¨ØªÙ آخر */ 1875function addUser(t){ 1876 var d=document.createElement('div');d.className='m user';d.textContent=t; 1877 msgs.appendChild(d);
1877msgs.scrollTop=msgs.scrollHeight; 1878} 1879function thinkSvg(){ 1880 return '<svg class="tb" viewBox="30 26 156 228" aria-hidden="true">' 1881 +'<use class="tbGlow" href="#bxMarkBold" stroke="url(#specGV)" style="filter:blur(6px)"/>' 1882 +'<use href="#bxMarkBold" stroke="#2E2C3E"/>' 1883 +'<g mask="url(#tbM)"><rect class="tbs" x="-210" y="26" width="210" height="228" fill="url(#specGV)"/></g>' 1884 +'</svg>'; 1885} 1886function addAi(thinking){ 1887 var d=document.createElement('div');d.className='m ai'+(thinking?' think':''); 1888 d.innerHTML='<span class="av"><svg viewBox="30 26 156 228" aria-hidden="true"><use href="#bxMarkBold" stroke="currentColor"/></svg></span><div class="tx"></div>'; 1889 msgs.appendChild(d);msgs.scrollTop=msgs.scrollHeight; 1890 return d; 1891} 1892function mk(tag,cls,text){ 1893 var e=document.createElement(tag); 1894 if(cls)e.className=cls; 1895 if(text!=null)e.textContent=text; 1896 return e; 1897} 1898var X_SVG='<svg width="12" height="12" viewBox="0 0 13 13" fill="none" aria-hidden="true"><path d="M2 2 L11 11 M11 2 L2 11" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>'; 1899 1900/* âââââ ÙÛÙÚ©âØ³Ø§Ø²Û٠ا٠٠âââââ */ 1901/* ÙÙØ· Ù Ø³ÛØ±ÙØ§Û Ø´ÙØ§Ø®ØªÙâØ´Ø¯ÙâÛ bixa.ai Ù ÙÛÙÚ©Ù MPay Ù٠سâÙ¾Ø°ÛØ± Ù ÛâØ´ÙÙØ¯Ø باÙÛ Ù٠ا٠٠ت٠٠ÛâÙ Ø§ÙØ¯. 1902 ÙÙ ÙâÚÛØ² با createElement/textContent ساخت٠٠ÛâØ´ÙØ¯ â ٠تÙÙ Ù Ø¯Ù ÙØ±Ú¯Ø² ب٠innerHTML ÙÙ ÛâØ±Ø³Ø¯. */ 1903var LINK_RE=/(?:https?:\/\/)?(?:www\.)?(bixa\.ai|app\.mpay\.cards)((?:[\/?#][A-Za-z0-9\-._~\/?#=&%+]*)?)/gi; 1904var BIXA_ROUTES={'':1,auth:1,app:1,project:1,signup:1,login:1}; 1905function linkFor(host,rest){ 1906 host=host.toLowerCase(); 1907 if(host==='app.mpay.cards'){ 1908 if(rest&&!/^[\/?]/.test(rest))return null; 1909 return {href:'https://app.mpay.cards'+(rest||''),ext:true}; 1910 } 1911 var m=/^(\/[A-Za-z0-9\-._~\/%]*)?([?#].*)?$/.exec(rest||''); 1912 if(!m)return null; 1913 var path=(m[1]||'/').toLowerCase(); 1914 if(path.indexOf('//')===0)return null; 1915 var seg=path.split('/')[1]||''; 1916 if(!BIXA_ROUTES.hasOwnProperty(seg))return null; 1917 return {href:path+(m[2]||''),ext:false}; 1918} 1919function renderRich(el,text){ 1920 text=String(text||'').replace(/^\s+|\s+$/g,''); 1921 el.textContent=''; 1922 var last=0,m; 1923 LINK_RE.lastIndex=0; 1924 while((m=LINK_RE.exec(text))){ 1925 var s=m.index,raw=m[0],prev=s>0?text.charAt(s-1):''; 1926 /* Ø¨Ø®Ø´Û Ø§Ø² ÛÚ© دا٠ÙÙâÛ Ø¨Ø²Ø±Ú¯âØªØ± ÛØ§ اÛÙ ÛÙ ÙØ¨Ø§Ø´Ø¯ (notbixa.aiØ [email protected]) */ 1927 if(prev&&/[A-Za-z0-9_.@\-\/]/.test(prev))continue; 1928 /* ÙØ´Ø§ÙÙâگذارÛÙ Ù¾Ø§ÛØ§Ù٠ج٠Ù٠جزÙÙ ÙÛÙÚ© ÙÛØ³Øª */ 1929 var tail=raw.match(/[.,:;!?)\]]+$/); 1930 if(tail)raw=raw.slice(0,raw.length-tail[0].length); 1931 var nx=text.charAt(s+raw.length); 1932 /* دا٠Ù٠ادا٠٠دارد (bixa.ai.example.com) â ÙÛÙÚ© ÙÙ ÛâØ´ÙØ¯ */ 1933 if(/[A-Za-z0-9\-_@]/.test(nx)||(nx==='.'&&/[A-Za-z0-9]/.test(text.charAt(s+raw.length+1))))continue; 1934 var hm=/^(?:https?:\/\/)?(?:www\.)?(bixa\.ai|app\.mpay\.cards)(.*)$/i.exec(raw); 1935 var L=hm&&linkFor(hm[1],hm[2]); 1936 if(!L)continue; 1937 if(s>last)el.appendChild(document.createTextNode(text.slice(last,s))); 1938 var a=mk('a','lnk',raw); 1939 a.href=L.href;a.dir='ltr'; 1940 if(L.ext){a.target='_blank';a.rel='noopener noreferrer'} 1941 el.appendChild(a); 1942 last=s+raw.length; 1943 LINK_RE.lastIndex=last; 1944 } 1945 if(last<text.length)el.appendChild(document.createTextNode(text.slice(last))); 1946} 1947 1948/* âââââ Ø¯ÛÙØ§Ø±Ù سÙÙ ÛÙ âââââ */ 1949/* kind: guest (سؤاÙâÙØ§Û Ù Ù٠اÙ٠اÛÙ Ø¯Ø³ØªÚ¯Ø§Ù ØªÙ Ø§Ù Ø´Ø¯Ù â Ø¨Ø§Ø²Ú¯Ø´ØªÛ ÙØ¯Ø§Ø±Ø¯) | global (سÙÙÙ Ø±ÙØ²Ø§ÙÙâÛ Ú©ÙÙ Ø³Ø§ÛØª) 1950 | member (سÙÙ ÛÙâÛ Ø¹Ø¶ÙØ ٠تÙÙ Ø®ÙØ¯Ù Ø³Ø±ÙØ± ÙÙ Ø§ÛØ´ داد٠٠ÛâØ´ÙØ¯) */ 1951function quotaCard(kind,serverMsg){ 1952 if(quotaOut)return; 1953 var d=mk('div','m sys'),session=hasSession(),ph,title,body,cta=null; 1954 if(kind==='global'){ 1955 title='ظرÙÛØªÙ Ø§Ù Ø±ÙØ²Ù Ø¯Ø³ØªÛØ§Ø± پر شد٠است.'; 1956 body='ÙØ±Ø¯Ø§ Ø¯ÙØ¨Ø§Ø±Ù Ø§Ù ØªØØ§Ù Ú©Ù.'; 1957 ph='ÙØ±Ø¯Ø§ Ø¯ÙØ¨Ø§Ø±Ù باز Ù ÛâØ´ÙØ¯â¦'; 1958 if(!session){ 1959 body+=' در اÛÙ ÙØ§ØµÙÙØ با ØØ³Ø§Ø¨Ù راÛگا٠٠اÙÛÙØ³Øª ٠پرÙÚÙâÛ Ø±Ø§ÛÚ¯Ø§Ù Ø¨Ø±Ø§ÛØª باز است.'; 1960 cta={t:'Ø³Ø§Ø®ØªÙ ØØ³Ø§Ø¨Ù راÛگاÙ',h:'/auth?from=chat_quota',gold:true}; 1961 } 1962 }else if(kind==='member'){ 1963 title=serverMsg||'سÙÙ ÛÙâÛ Ù¾Ø±Ø³Ø´Øª ÙØ¹Ùا٠ت٠ا٠شد٠است.'; 1964 body=''; 1965 ph='سÙÙ ÛÙâÛ Ù¾Ø±Ø³Ø´Øª ÙØ¹Ùا٠ت٠ا٠شد٠استâ¦'; 1966 cta={t:'Ø±ÙØªÙ ب٠پÙÙ',h:'/app',gold:false}; 1967 }else if(session){ 1968 /* تÙک٠رÙÛ Ø¯Ø³ØªÚ¯Ø§Ù ÙØ³Øª ÙÙÛ Ø³Ø±ÙØ± Ù ÙÙ Ø§Ù Ø¯ÛØ¯ (ÙØ´Ø³ØªÙ Ù ÙÙØ¶Û) â Ø±Ø§Ù٠برگشت Ø¨Ù ØØ³Ø§Ø¨ */ 1969 title='سؤاÙâÙØ§Û Ù Ù٠ا٠رÙÛ Ø§Û٠دستگا٠ت٠ا٠شد.'; 1970 body='ب٠پÙÙØª برگرد تا Ú¯ÙØªâÙگ٠را با ØØ³Ø§Ø¨Ù Ø®ÙØ¯Øª ادا٠٠بدÙÛ.'; 1971 ph='Ø¨Ø±Ø§Û Ø§Ø¯Ø§Ù ÙØ ب٠پÙÙØª برگردâ¦'; 1972 cta={t:'Ø±ÙØªÙ ب٠پÙÙ',h:'/app',gold:true}; 1973 }else{ 1974 title='سؤاÙâÙØ§Û Ù Ù٠ا٠رÙÛ Ø§Û٠دستگا٠ت٠ا٠شد.'; 1975 body='با ØØ³Ø§Ø¨Ù راÛÚ¯Ø§ÙØ Ú¯ÙØªâÙگ٠با Ø¯Ø³ØªÛØ§Ø± را در Ù¾ÙÙÙ Ø®ÙØ¯Øª ادا٠٠٠ÛâØ¯ÙÛ Ù Ù Ø§ÙÛÙØ³Øª ٠پرÙÚÙâÛ Ø±Ø§Ûگا٠ÙÙ Ø¨Ø±Ø§ÛØª باز Ù ÛâØ´ÙÙØ¯.'; 1976 ph='Ø¨Ø±Ø§Û Ø§Ø¯Ø§Ù ÙØ ØØ³Ø§Ø¨Ù راÛÚ¯Ø§ÙØª را بسازâ¦'; 1977 cta={t:'Ø³Ø§Ø®ØªÙ ØØ³Ø§Ø¨Ù راÛگاÙ',h:'/auth?from=chat_quota',gold:true}; 1978 } 1979 d.appendChild(mk('b','',title)); 1980 if(body)d.appendChild(mk('p','',body)); 1981 if(cta){ 1982 var a=mk('a','sys-cta'+(cta.gold?' gold':''),cta.t);a.href=cta.h; 1983 d.appendChild(a); 1984 } 1985 msgs.appendChild(d);
1985msgs.scrollTop=msgs.scrollHeight; 1986 quotaOut=true; 1987 /* Ø´Ù Ø§Ø±ÙØ¯ÙâÛ Ø¨Ø§ÙØ§Û کارت با دÛÙØ§Ø± ÙÙ âØ®ÙØ§Ù Ø´ÙØ¯ */ 1988 if(kind==='global')quotaEl.textContent='';else setQuota(0); 1989 input.value='';input.disabled=true;sendBtn.disabled=true; 1990 input.placeholder=ph; 1991 glowbar.classList.remove('hot'); 1992 if(chipsEl)chipsEl.classList.add('gone'); 1993} 1994/* بدÙÙâÛ Û´Û²Û¹: detail ÛØ§ رشت٠است ÛØ§ {scope, message} (Ø¨Ú©âØ§ÙØ¯Ù تازÙ). ÙØ± د٠را Ù ÛâÙÙÙ ÛÙ . */ 1995function quotaFrom429(j,sentAuth){ 1996 var det=j&&j.detail,msg='',sc=''; 1997 if(typeof det==='string')msg=det; 1998 else if(det&&typeof det==='object'){ 1999 if(typeof det.message==='string')msg=det.message; 2000 if(typeof det.scope==='string')sc=det.scope; 2001 } 2002 if(!sc&&j&&typeof j.scope==='string')sc=j.scope; 2003 if(sc==='global')return quotaCard('global',msg); 2004 if(sc==='guest')return quotaCard('guest',msg); 2005 if(sc)return quotaCard('member',msg); 2006 /* Ø¨Ú©âØ§ÙØ¯Ù ÙØ¯ÛÙ Û: scope ÙØ¯Ø§Ø±Ø¯ */ 2007 if(sentAuth)return quotaCard('member',msg); 2008 /* Ø¨Ø±Ø§Û Ù Ù٠ا٠ÙÙØ· سÙÙÙ Ø³Ø±Ø§Ø³Ø±Û Ø§Ø² Â«ÙØ±Ø¯Ø§Â» ØØ±Ù Ù ÛâØ²ÙØ¯ */ 2009 quotaCard(/ÙØ±Ø¯Ø§/.test(msg)?'global':'guest',msg); 2010} 2011 2012/* âââââ Ø¯Ø¹ÙØªÙ Ø¢Ø±Ø§Ù Ø¨Ù ØØ³Ø§Ø¨Ø ÛÚ© Ø¨Ø§Ø±Ø Ø¨Ø¹Ø¯ از دÙÙ Û٠پاسخ٠٠ÙÙÙÙ Ù Ù٠ا٠âââââ */ 2013var guestAnswers=0,nudgeShown=false; 2014var NUDGE_KEY='bx_chat_nudge'; 2015function isGuestNow(){ 2016 if(hasSession())return false; 2017 return lastScope?lastScope==='guest':true; 2018} 2019function maybeNudge(aiEl){ 2020 if(!isGuestNow())return; 2021 guestAnswers++; 2022 if(guestAnswers<2||nudgeShown||quotaOut||store(true,NUDGE_KEY)==='1')return; 2023 if(!aiEl.parentNode)return; 2024 nudgeShown=true; 2025 var d=mk('div','m nudge'); 2026 d.setAttribute('role','note'); 2027 d.appendChild(mk('b','','با ØØ³Ø§Ø¨Ù راÛÚ¯Ø§ÙØ Ú¯ÙØªâÙگ٠با Ø¯Ø³ØªÛØ§Ø± را در Ù¾ÙÙÙ Ø®ÙØ¯Øª ادا٠٠٠ÛâØ¯ÙÛ.')); 2028 d.appendChild(mk('p','','٠اÙÛÙØ³Øª ٠پرÙÚÙâÛ Ø±Ø§Ûگا٠ÙÙ Ø¨Ø±Ø§ÛØª باز Ù ÛâØ´ÙÙØ¯ Ù Ù Ø³ÛØ±Øª از Ù٠اÙâØ¬Ø§ Ø´Ø±ÙØ¹ Ù ÛâØ´ÙØ¯.')); 2029 var a=mk('a','ng-cta','Ø³Ø§Ø®ØªÙ ØØ³Ø§Ø¨Ù راÛگاÙ'); 2030 a.href='/auth?from=chat'; 2031 a.addEventListener('click',function(){ 2032 store(false,NUDGE_KEY,'1'); 2033 track('chat_signup_cta_click'); 2034 }); 2035 d.appendChild(a); 2036 var x=mk('button','ng-x'); 2037 x.type='button';x.setAttribute('aria-label','بستÙ');x.innerHTML=X_SVG; 2038 x.addEventListener('click',function(){ 2039 store(false,NUDGE_KEY,'1'); 2040 d.classList.add('out'); 2041 setTimeout(function(){if(d.parentNode)d.parentNode.removeChild(d)},RM?0:260); 2042 try{input.focus({preventScroll:true})}catch(e){} 2043 }); 2044 d.appendChild(x); 2045 msgs.insertBefore(d,aiEl.nextSibling); 2046 msgs.scrollTop=msgs.scrollHeight; 2047 track('chat_signup_cta_shown'); 2048} 2049 2050/* تاÛÙ¾âØ±Ø§ÛØªØ± رÙÛ Ø§Ø³ØªØ±ÛÙ Ù Ø®Ø§Ù Ø Ø¯Ø± Ù¾Ø§ÛØ§Ù ÛÚ© بار ٠تÙ٠کا٠٠با ÙÛÙÚ©âÙØ§Û Ù٠سâÙ¾Ø°ÛØ± Ø±ÙØ¯Ø± Ù ÛâØ´ÙØ¯ */ 2051function typewriter(el,onEnd){ 2052 var st={target:'',shown:0,done:false,raf:0,ended:false}; 2053 function finish(){ 2054 if(st.ended)return; 2055 st.ended=true; 2056 cancelAnimationFrame(st.raf); 2057 el.classList.remove('stream'); 2058 renderRich(el,st.target); 2059 msgs.scrollTop=msgs.scrollHeight; 2060 if(onEnd)onEnd(); 2061 } 2062 function loop(){ 2063 if(st.ended)return; 2064 if(st.shown<st.target.length){ 2065 var remain=st.target.length-st.shown; 2066 st.shown+=Math.max(1,Math.min(6,Math.round(remain*0.07))); 2067 if(st.shown>st.target.length)st.shown=st.target.length; 2068 el.textContent=st.target.slice(0,st.shown); 2069 msgs.scrollTop=msgs.scrollHeight; 2070 } 2071 if(!st.done||st.shown<st.target.length){st.raf=requestAnimationFrame(loop)} 2072 else finish(); 2073 } 2074 st.finish=finish; 2075 el.classList.add('stream'); 2076 st.raf=requestAnimationFrame(loop); 2077 return st; 2078} 2079
2080/* سÙÙÙ Ø§ÙØªØ¸Ø§Ø± Ø¨Ø±Ø§Û Ø§ÛÙØªØ±ÙØªÙ Ú©ÙØ¯: تا اÙÙÛ٠پاسخ ٠بÛÙ٠د٠تکÙâÛ Ø§Ø³ØªØ±ÛÙ */ 2081var T_FIRST=45000,T_IDLE=35000; 2082 2083composer.addEventListener('submit',function(ev){ 2084 ev.preventDefault(); 2085 var q=input.value.trim(); 2086 if(!q||busy||quotaOut)return; 2087 openCard(false); 2088 busy=true;sendBtn.disabled=true; 2089 input.value=''; 2090 addUser(q); 2091 if(chipsEl)chipsEl.classList.add('gone'); 2092 var aiEl=addAi(true); 2093 var tx=aiEl.querySelector('.tx'); 2094 tx.innerHTML=thinkSvg()+'<span>در ØØ§Ù Ùکر کردÙâ¦</span>'; 2095 2096 /* ÙÙØ¨ØªÙ کاربر Ø®ÙØ´âبÛÙØ§Ù٠ثبت Ù ÛâØ´ÙØ¯ تا ØªÙØ§Ø´Ù Ø¯ÙØ¨Ø§Ø±Ù ز٠ÛÙ٠را از دست ÙØ¯Ùد */ 2097 var uTurn={role:'user',content:q}; 2098 var sentHist=HIST.slice(-12); 2099 HIST.push(uTurn); 2100 var tw=null,done=false,answerOk=false,sentAuth=false,timedOut=false,dog=0; 2101 var ctl=(typeof AbortController==='function')?new AbortController():null; 2102 2103 function popTurn(){if(HIST[HIST.length-1]===uTurn)HIST.pop()} 2104 function keepAnswer(t){ 2105 HIST.push({role:'assistant',content:t}); 2106 if(HIST.length>12)HIST=HIST.slice(-12); 2107 } 2108 /* Ù¾Ø§ÛØ§ÙÙ ÙØ·Ø¹Û٠اÛÙ Ø¯Ø±Ø®ÙØ§Ø³Øª â ÙØ± Ù Ø³ÛØ±Û Ú©Ù Ø¨Ø±ÙØ¯Ø Ø¯Ú©Ù Ù Ù ÙØ±ÙØ¯Û Ø¢Ø²Ø§Ø¯ Ù ÛâØ´ÙÙØ¯ */ 2109 function settle(){ 2110 if(done)return false; 2111 done=true;clearTimeout(dog); 2112 busy=false; 2113 if(!quotaOut){ 2114 sendBtn.disabled=false; 2115 try{input.focus({preventScroll:true})}catch(e){} 2116 } 2117 return true; 2118 } 2119 /* ÙÚ¯ÙØ¨Ø§Ù: اگر شبک٠ساکت Ù Ø§ÙØ¯Ø Ø¯Ø±Ø®ÙØ§Ø³Øª Ø¨Ø³ØªÙ Ù ØØ§Ùت٠«در ØØ§Ù Ùکر» برداشت٠٠ÛâØ´ÙØ¯ */ 2120 function watch(ms){ 2121 clearTimeout(dog); 2122 dog=setTimeout(function(){ 2123 if(done)return; 2124 timedOut=true; 2125 if(ctl){try{ctl.abort()}catch(e){}} 2126 fail(); 2127 },ms); 2128 } 2129 function fail(err){ 2130 if(done)return; 2131 aiEl.classList.remove('think'); 2132 if(tw&&tw.target.replace(/\s+/g,'')){ 2133 /* پاسخ٠ÙÛÙ Ùâکار٠Ù٠ز٠ÛÙ٠است â ÙÚ¯ÙØ´ Ù ÛâØ¯Ø§Ø±ÛÙ */ 2134 tw.done=true;tw.shown=tw.target.length;tw.finish(); 2135 keepAnswer(tw.target); 2136 tx.appendChild(mk('span','note','ارتباط ÙØ·Ø¹ Ø´Ø¯Ø Ø§Ø¯Ø§Ù Ù Ø±Ø§ Ú©Ù Û Ø¨Ø¹Ø¯ بپرس.')); 2137 }else{ 2138 if(tw){tw.done=true;tw.finish()} 2139 popTurn(); 2140 var st=err&&err.status; 2141 tx.textContent=st===422?'پرسشت را Ú©Ù Û Ú©Ø§Ù ÙâØªØ± بÙÙÛØ³ Ù Ø¯ÙØ¨Ø§Ø±Ù Ø¨ÙØ±Ø³Øª.' 2142 :(err&&err.empty)?'Ù¾Ø§Ø³Ø®Û ÙØ±Ø³Ûد. ÛÚ© بار دÛگر بپرس.' 2143 :timedOut?'پاسخ Ø¯ÛØ± Ø±Ø³ÛØ¯. Ø§ØªØµØ§ÙØª را Ø¨Ø±Ø±Ø³Û Ú©Ù Ù Ø¯ÙØ¨Ø§Ø±Ù بپرس.' 2144 :'ارتباط Ø¨Ø±ÙØ±Ø§Ø± ÙØ´Ø¯. Ú©Ù Û Ø¨Ø¹Ø¯ Ø¯ÙØ¨Ø§Ø±Ù Ø§Ù ØªØØ§Ù Ú©Ù.'; 2145 tx.style.color='var(--mut)'; 2146 /* پرسش Ú¯Ù ÙØ´Ùد â Ø±ÙÛ Ø§ÛÙØªØ±ÙØªÙ ÙØ§Ù¾Ø§Ûدار ÙÙØ· ÛÚ© Ù٠س تا ØªÙØ§Ø´Ù Ø¯ÙØ¨Ø§Ø±Ù */ 2147 if(!input.value&&!quotaOut)input.value=q; 2148 } 2149 msgs.scrollTop=msgs.scrollHeight; 2150 settle(); 2151 } 2152 function complete(){ 2153 if(done)return; 2154 if(!tw.target.replace(/\s+/g,'')){fail({empty:true});return} 2155 answerOk=true; 2156 tw.done=true; 2157 keepAnswer(tw.target); 2158 settle(); 2159 } 2160 2161 watch(T_FIRST); 2162 authToken().then(function(t){ 2163 if(done)return null; 2164 sentAuth=!!t; 2165 var headers={'Content-Type':'application/json'}; 2166 if(t)headers.Authorization='Bearer '+t; 2167 var opts={method:'POST',headers:headers, 2168 body:JSON.stringify({question:q,guest_fingerprint:FP,history:sentHist})}; 2169 if(ctl)opts.signal=ctl.signal; 2170 return fetch('/api/assistant/ask',opts); 2171 }).then(function(res){ 2172 if(!res||done)return null; 2173 if(res.status===429){ 2174 return res.json().catch(function(){return null}).then(function(j){ 2175 if(done)return; 2176 aiEl.remove();popTurn(); 2177 quotaFrom429(j,sentAuth); 2178 settle(); 2179 }); 2180 } 2181 if(!res.ok){var e=new Error('http');e.status=res.status;throw e} 2182 try{ 2183 var sc=res.headers.get('X-Quota-Scope');if(sc)lastScope=sc; 2184 var qh=res.headers.get('X-Quota-Remaining');if(qh!=null&&qh!=='')setQuota(qh); 2185 }catch(e){} 2186 aiEl.classList.remove('think');tx.textContent=''; 2187 tw=typewriter(tx,function(){if(answerOk)maybeNudge(aiEl)}); 2188 watch(T_IDLE); 2189 /* Ù Ø±ÙØ±Ú¯Ø±Ù بدÙÙ٠استرÛÙ : Ú©Ù٠٠ت٠ÛÚ©âØ¬Ø§ */ 2190 if(!res.body||typeof res.body.getReader!=='function'){ 2191 return res.text().then(function(t){ 2192 if(done)return; 2193 tw.target=t||'';complete(); 2194 }); 2195 } 2196 var reader=res.body.getReader(),dec=new TextDecoder(); 2197 function pump(){ 2198 return reader.read().then(function(r){ 2199 if(done){try{reader.cancel()}catch(e){}return} 2200 if(r.done){ 2201 tw.target+=dec.decode(); /* flush آخرÛÙ ÙÙÛØ³ÙâÛ ÚÙØ¯Ø¨Ø§ÛØªÛ ÙØ§Ø±Ø³Û */ 2202 complete(); 2203 return; 2204 } 2205 watch(T_IDLE); 2206 tw.target+=dec.decode(r.value,{stream:true}); 2207 return pump(); 2208 }); 2209 } 2210 return pump(); 2211 }).then(null,function(err){fail(err)}); 2212}); 2213})(); 2214</script>
2214 2215</body> 2216</html> 2217
2218<script> 2219/* âââââ Ø³Ø´ÙâØ¢Ú¯Ø§ÙÛ: اگر کاربر ÙØ§Ú¯ÛÙ Ø§Ø³ØªØ CTAÙØ§Û Â«ÙØ±Ùد» را ب٠«پÙÙÙ Ù Ù» تبدÛÙ Ú©Ù âââââ */ 2220(function(){ 2221 var t = null; 2222 try{ t = localStorage.getItem('bx_at') || localStorage.getItem('bx_rt'); }catch(e){} 2223 2224 /* رÙÛØ¯Ø§Ø¯Ù ÙÛ٠رÙÛ Ø¯Ú©Ù ÙâÙØ§Û اصÙÛÙ ÙÙØ¯ÛÙÚ¯ â Ø¨ÛâØµØ¯Ø§Ø keepalive تا با Ø±ÙØªÙÙ ØµÙØÙ Ú¯Ù ÙØ´ÙØ¯Ø ÙØ±Ú¯Ø² Ù Ø§ÙØ¹Ù Ú©ÙÛÚ© ÙÛØ³Øª */ 2225 function ctaTrack(){ 2226 try{ 2227 var h = {'Content-Type':'application/json'}, at = null; 2228 try{ at = localStorage.getItem('bx_at'); }catch(e){} 2229 if(at) h.Authorization = 'Bearer ' + at; 2230 fetch('/api/track', {method:'POST', keepalive:true, headers:h, 2231 body: JSON.stringify({path: location.pathname, event: 'landing_cta_click'})}).catch(function(){}); 2232 }catch(e){} 2233 } 2234 var btns = document.querySelectorAll('.tb-start, #heroCta, .invite .cta'); 2235 for(var i = 0; i < btns.length; i++){ 2236 try{ btns[i].addEventListener('click', ctaTrack); }catch(e){} 2237 } 2238 2239 if(!t) return; 2240 var nav = document.querySelector('.tb-start'); 2241 if(nav){ nav.textContent = 'Ù¾ÙÙÙ Ù Ù'; nav.setAttribute('href','/app'); } 2242 /* دک٠ÙâÛ ÙÛØ±Ù ٠دک٠ÙâÛ Ù¾Ø§ÛØ§ÙÛ: ÙÙ Ø§Ù Ø´Ú©ÙØ Ù ÙØµØ¯Ù Ù¾ÙÙ */ 2243 var ctas = document.querySelectorAll('#heroCta, .invite .cta'); 2244 for(var k = 0; k < ctas.length; k++){ 2245 var cta = ctas[k]; 2246 var arr = cta.querySelector('svg'); /* ÙÙØ´ را Ùگ٠دار */ 2247 cta.textContent = 'برگرد ب٠پÙÙ'; 2248 if(arr) cta.appendChild(arr); 2249 cta.setAttribute('href','/app'); 2250 } 2251 var sub = document.querySelector('.cta-sub'); /* Â«ØØ³Ø§Ø¨ Ø¯Ø§Ø±ÛØ ÙØ§Ø±Ø¯ شٻ Ø¨Ø±Ø§Û ÙØ§Ú¯ÛÙâØ´Ø¯Ù Ø¨ÛâÙ Ø¹ÙØ§Ø³Øª */ 2252 if(sub && sub.parentNode) sub.parentNode.style.display = 'none'; 2253})(); 2254</script>
2254 2255
2256<script src="/redesign.js"></script>
vendor: 1 bytes, line 2256
2256
2257<script src="/scroll-scenes.js"></script>
vendor: 1 bytes, line 2257
2257
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.