Spaces:
Running
Running
File size: 354,212 Bytes
411d33b e77301a 411d33b e77301a 365416f 50b6f96 411d33b e77301a 411d33b 365416f 80d6df3 411d33b e77301a 411d33b e77301a 411d33b e77301a 411d33b 365416f 411d33b 2a9bd34 411d33b 80d6df3 e77301a 411d33b 365416f 50b6f96 365416f 50b6f96 411d33b 365416f 411d33b 365416f 411d33b 365416f 411d33b 365416f 411d33b 50b6f96 411d33b 50b6f96 411d33b e77301a 50b6f96 e77301a 411d33b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 | <!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The 12-month GreenRoot program: stabilize, work & heal, build, return. Paid green jobs in Istanbul, Frankfurt and Tehran, funded by recycling.">
<meta property="og:title" content="GreenRoot — Program">
<meta property="og:description" content="The 12-month GreenRoot program: stabilize, work & heal, build, return. Paid green jobs in Istanbul, Frankfurt and Tehran, funded by recycling.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://greenroot-af0.pages.dev/program.html">
<meta property="og:image" content="https://greenroot-af0.pages.dev/screenshots/01-home-EN.png">
<meta name="twitter:card" content="summary_large_image">
<title>The Program — GreenRoot</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='88'>%F0%9F%8C%B1</text></svg>">
<style>
/* ============ GreenRoot design system ============ */
:root{
--bg:#F6F8F3; --card:#FFFFFF; --ink:#0C2318; --muted:#54685C; --line:#E2E9DD;
--green:#16A34A; --green-soft:#DCFCE7; --deep:#0B3B2A; --deep-2:#0E4D36; --darker:#07271C;
--lime:#A3E635; --amber:#F59E0B; --amber-soft:#FEF3C7; --teal:#0D9488; --teal-soft:#CCFBF1;
--red:#E11D48;
--r:20px; --r-sm:12px;
--shadow:0 10px 30px rgba(7,39,28,.08);
--shadow-lg:0 24px 60px rgba(7,39,28,.16);
--font-en:'Segoe UI',system-ui,-apple-system,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
--font-fa:'Vazirmatn','Vazir',Tahoma,'Segoe UI',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-en);background:var(--bg);color:var(--ink);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased}
html[lang="fa"] body{font-family:var(--font-fa);line-height:1.95}
img,svg{max-width:100%;vertical-align:middle}
a{color:var(--green);text-decoration:none}
a:hover{opacity:.85}
h1,h2,h3,h4{line-height:1.25;font-weight:800;letter-spacing:-.01em}
html[lang="fa"] h1,html[lang="fa"] h2,html[lang="fa"] h3{letter-spacing:0}
.container{max-width:1140px;margin-inline:auto;padding-inline:22px}
section{padding-block:78px}
.kicker{display:inline-block;color:var(--green);font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.kicker.light{color:var(--lime)}
h2.title{font-size:clamp(26px,3.6vw,38px);margin-bottom:14px}
p.lead{font-size:18.5px;color:var(--muted);max-width:760px}
.center{text-align:center}
.center p.lead{margin-inline:auto}
.muted{color:var(--muted)}
.small{font-size:13.5px}
.mt{margin-top:26px}.mt-s{margin-top:14px}.mb-s{margin-bottom:12px}
.badge{display:inline-flex;align-items:center;gap:6px;background:var(--green-soft);color:#166534;border:1px solid #BBF7D0;padding:4px 12px;border-radius:999px;font-size:12.5px;font-weight:700}
.badge.amber{background:var(--amber-soft);color:#92400E;border-color:#FDE68A}
.badge.teal{background:var(--teal-soft);color:#115E59;border-color:#99F6E4}
.badge.dark{background:rgba(255,255,255,.12);color:#D9F99D;border-color:rgba(217,249,157,.3)}
/* ============ Buttons ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#22C55E,#15803D);color:#fff;font-weight:700;font-size:15.5px;padding:13px 26px;border-radius:999px;border:0;cursor:pointer;box-shadow:0 8px 22px rgba(22,163,74,.35);transition:transform .18s,box-shadow .18s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(22,163,74,.42);opacity:1}
.btn.ghost{background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.45);box-shadow:none;color:#fff}
.btn.ghost:hover{background:rgba(255,255,255,.16)}
.btn.outline{background:#fff;border:1.5px solid var(--line);color:var(--ink);box-shadow:none}
.btn.small{padding:9px 18px;font-size:13.5px}
/* ============ Nav ============ */
.nav{position:sticky;top:0;z-index:60;background:rgba(246,248,243,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;gap:18px;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:var(--deep)}
.brand .logo{width:36px;height:36px;flex:0 0 auto}
.nav .links{display:flex;gap:4px;margin-inline-start:auto}
.nav .links a{color:var(--ink);font-weight:600;font-size:14.5px;padding:8px 13px;border-radius:999px;transition:background .15s}
.nav .links a:hover{background:var(--green-soft);opacity:1}
.nav .links a.active{background:var(--deep);color:#D9F99D}
.nav-actions{display:flex;align-items:center;gap:10px}
.lang{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:800;font-size:13.5px;cursor:pointer;color:var(--deep);font-family:inherit;transition:border-color .15s}
.lang:hover{border-color:var(--green)}
.lang-sw{display:flex;gap:4px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:3px}
.lang-sw .lang{border:0;padding:6px 12px;font-size:12.5px;border-radius:999px;background:transparent}
.lang-sw .lang.on{background:var(--deep);color:#D9F99D}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:22px;height:2.5px;background:var(--deep);margin:5px 0;border-radius:2px;transition:.2s}
.nav.open .links{display:flex;position:absolute;top:68px;inset-inline:0;background:#fff;flex-direction:column;padding:14px 22px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.nav.open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav.open .burger span:nth-child(2){opacity:0}
.nav.open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
/* ============ Hero ============ */
.hero{position:relative;background:linear-gradient(160deg,var(--deep) 0%,var(--darker) 100%);color:#fff;overflow:hidden;padding-block:0}
.hero::before{content:"";position:absolute;inset:0;background:
radial-gradient(700px 380px at 82% 12%,rgba(163,230,53,.14),transparent 60%),
radial-gradient(600px 420px at 8% 90%,rgba(13,148,136,.2),transparent 60%)}
.hero .container{position:relative;padding-block:86px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(32px,4.6vw,52px);margin:10px 0 18px}
.hero .lead{color:#C8E6CF;font-size:18.5px;max-width:560px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.chip{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:10px 16px;font-size:13.5px;color:#D1FAE5}
.chip b{color:#BEF264;display:block;font-size:17px}
.loop-wrap{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:28px;padding:30px 22px;backdrop-filter:blur(6px)}
.loop-wrap h3{font-size:15px;text-align:center;margin-bottom:6px;color:#D9F99D}
.loop{position:relative;width:min(330px,100%);aspect-ratio:1;margin:10px auto 0;direction:ltr}
.loop svg.ring{position:absolute;inset:0}
.loop .node{position:absolute;width:92px;text-align:center;transform:translate(-50%,-50%)}
.loop .node .ic{width:58px;height:58px;margin:0 auto 6px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.loop .node span{font-size:12.5px;font-weight:700;color:#ECFDF5;display:block}
.loop .node.n1{left:50%;top:9%}.loop .node.n2{left:91%;top:50%}
.loop .node.n3{left:50%;top:91%}.loop .node.n4{left:9%;top:50%}
/* ============ Cards & grids ============ */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card .ic{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:18px}
.ic.green{background:var(--green-soft)}.ic.amber{background:var(--amber-soft)}.ic.teal{background:var(--teal-soft)}
.card h3{font-size:19px;margin-bottom:10px}
.card p{color:var(--muted);font-size:15px}
.card ul{margin:10px 0 0;padding-inline-start:20px;color:var(--muted);font-size:15px}
.card ul li{margin-bottom:7px}
/* ============ Steps / timeline ============ */
.steps{counter-reset:st;display:grid;gap:18px}
.step{display:flex;gap:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;box-shadow:var(--shadow);align-items:flex-start}
.step .num{counter-increment:st;flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#22C55E,#15803D);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:18px}
.step .num::before{content:counter(st)}
.step h3{font-size:17.5px;margin-bottom:6px}
.step p{color:var(--muted);font-size:15px}
.step .when{font-size:12.5px;font-weight:800;color:var(--teal);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;display:block}
/* ============ Stats band ============ */
.band{background:linear-gradient(135deg,var(--deep-2),var(--deep));border-radius:26px;color:#fff;padding:44px 38px;box-shadow:var(--shadow-lg)}
.band .grid{gap:26px}
.stat .n{font-size:clamp(28px,3.4vw,40px);font-weight:800;color:#BEF264;direction:ltr;display:inline-block}
.stat .n.amber{color:#FCD34D}
.stat .l{font-size:13.5px;color:#C8E6CF;margin-top:4px}
/* ============ Tables ============ */
.tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);font-size:14.5px}
.tbl th{background:var(--deep);color:#D9F99D;text-align:start;padding:14px 18px;font-size:13px;letter-spacing:.05em;text-transform:uppercase}
.tbl td{padding:14px 18px;border-top:1px solid var(--line);color:var(--ink)}
.tbl tr:nth-child(even) td{background:#FAFCF8}
.tbl td:first-child{font-weight:700}
/* ============ Loop infographic (science) ============ */
.flow{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;justify-content:center}
.flow .f{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;text-align:center;flex:1 1 150px;max-width:200px;box-shadow:var(--shadow)}
.flow .f .e{font-size:30px}
.flow .f b{display:block;font-size:14px;margin-top:6px}
.flow .f small{color:var(--muted);font-size:12px;line-height:1.5;display:block;margin-top:3px}
.flow .arr{align-self:center;font-size:22px;color:var(--green);font-weight:800}
/* ============ Chat ============ */
.chat-shell{background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow-lg);overflow:hidden;max-width:680px;margin-inline:auto}
.chat-head{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--deep-2),var(--deep));padding:16px 22px;color:#fff}
.avatar{width:44px;height:44px;border-radius:50%;background:#D9F99D;display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}
.chat-head b{font-size:16px}
.chat-head small{display:block;color:#A7D7B5;font-size:12px}
.chat-head .dot{margin-inline-start:auto;width:9px;height:9px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 4px rgba(74,222,128,.25)}
.chat-body{height:380px;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:#FBFDF9}
.msg{max-width:78%;padding:11px 16px;border-radius:18px;font-size:14.5px;line-height:1.55;white-space:pre-line}
.msg.bot{background:#EEF6EC;color:var(--ink);border-start-start-radius:4px;align-self:flex-start}
.msg.user{background:linear-gradient(135deg,#22C55E,#15803D);color:#fff;border-start-end-radius:4px;align-self:flex-end}
.msg.typing span{display:inline-block;width:7px;height:7px;background:#94A88F;border-radius:50%;margin-inline-end:3px;animation:blink 1.2s infinite}
.msg.typing span:nth-child(2){animation-delay:.2s}.msg.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.chat-chips{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px 4px;background:#fff}
.chat-chips button{background:var(--green-soft);color:#166534;border:1px solid #BBF7D0;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}
.chat-chips button:hover{background:#BBF7D0}
.chat-input{display:flex;gap:10px;padding:14px 18px 18px;background:#fff}
.chat-input input{flex:1;border:1.5px solid var(--line);border-radius:999px;padding:12px 20px;font-size:14.5px;font-family:inherit;outline:none;background:#FBFDF9}
.chat-input input:focus{border-color:var(--green)}
.chat-input button{border-radius:999px;padding:0 22px}
/* ============ Career widget / selects / forms ============ */
.picker{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:22px}
.picker button{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--ink);transition:.15s}
.picker button:hover{border-color:var(--green)}
.picker button.on{background:var(--deep);color:#D9F99D;border-color:var(--deep)}
.plan{max-width:640px;margin-inline:auto;text-align:start;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.plan h4{margin-bottom:12px;color:var(--deep)}
.plan ol{padding-inline-start:22px;color:var(--muted);font-size:15px}
.plan ol li{margin-bottom:9px}
form .frow{margin-bottom:16px}
form label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
form input,form select,form textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:13px 16px;font-size:15px;font-family:inherit;background:#fff;outline:none;color:var(--ink)}
form input:focus,form select:focus,form textarea:focus{border-color:var(--green)}
.form-ok{display:none;background:var(--green-soft);border:1px solid #BBF7D0;color:#166534;border-radius:14px;padding:16px 20px;font-weight:600;margin-top:14px}
/* ============ Accordion ============ */
details.faq{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 22px;margin-bottom:12px;box-shadow:var(--shadow)}
details.faq summary{cursor:pointer;font-weight:700;font-size:15.5px;padding:18px 0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:22px;color:var(--green);font-weight:400}
details.faq[open] summary::after{content:"–"}
details.faq p{color:var(--muted);font-size:14.5px;padding-bottom:18px}
/* ============ Charts / mood ============ */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.panel h3{font-size:16.5px;margin-bottom:4px}
.panel .sub{font-size:13px;color:var(--muted);margin-bottom:16px}
.mood-row{display:flex;gap:10px;justify-content:center;margin:16px 0}
.mood-row button{font-size:26px;background:#fff;border:1.5px solid var(--line);border-radius:14px;width:54px;height:54px;cursor:pointer;transition:.15s}
.mood-row button:hover{transform:scale(1.12);border-color:var(--green)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:10px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-inline-end:6px}
/* ============ CTA ============ */
.cta-band{background:linear-gradient(135deg,var(--deep-2),var(--darker));border-radius:30px;color:#fff;text-align:center;padding:64px 34px;position:relative;overflow:hidden}
.cta-band h2{font-size:clamp(26px,3.4vw,36px);margin-bottom:12px}
.cta-band p{color:#C8E6CF;max-width:600px;margin:0 auto 26px}
/* ============ Footer ============ */
footer{background:var(--darker);color:#9DBCA8;margin-top:40px;padding:56px 0 30px;font-size:14px}
footer .grid{gap:34px}
footer h4{color:#D9F99D;font-size:15px;margin-bottom:12px}
footer a{color:#C8E6CF}
footer .fbrand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:19px;margin-bottom:12px}
footer .disclaimer{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:20px;font-size:12.5px;color:#7FA18D;line-height:1.7}
footer .copy{margin-top:10px;font-size:13px}
/* ============ Reveal animation ============ */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
/* ============ Responsive ============ */
@media(max-width:960px){
.g4{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(2,1fr)}
.hero-grid{grid-template-columns:1fr;gap:36px}
.loop-wrap{max-width:420px;margin-inline:auto}
}
@media(max-width:660px){
.nav .links{display:none}
.burger{display:block}
.nav .links a.active{background:var(--green-soft);color:#166534}
.g3,.g2,.g4{grid-template-columns:1fr}
section{padding-block:56px}
.hero .container{padding-block:56px}
.band{padding:32px 24px}
.chat-body{height:320px}
}
/* ================================================================
UX POLISH PASS — accessibility, motion, mobile, richness
================================================================ */
:root{--r-xs:10px}
html{scroll-padding-top:88px;-webkit-text-size-adjust:100%}
body{overflow-x:hidden;overflow-wrap:break-word;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.035 0'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>")}
::selection{background:#BBF7D0;color:#14532D}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#C7D6CB;border-radius:8px;border:2px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}
:focus-visible{outline:3px solid #16A34A;outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* skip link + a11y */
.skip{position:absolute;inset-inline-start:-9999px;top:10px;z-index:120;background:var(--deep);color:#D9F99D;padding:12px 20px;border-radius:14px;font-weight:800}
.skip:focus{inset-inline-start:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* scroll progress + back-to-top + mobile CTA */
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#22C55E,#A3E635);z-index:95;transition:width .12s linear}
#toTop{position:fixed;inset-inline-end:16px;bottom:16px;width:48px;height:48px;border-radius:50%;background:var(--deep);color:#D9F99D;border:0;font-size:20px;cursor:pointer;opacity:0;pointer-events:none;transition:.25s;box-shadow:var(--shadow-lg);z-index:75}
#toTop.show{opacity:1;pointer-events:auto}
#toTop:hover{transform:translateY(-3px)}
.mobile-cta{display:none}
/* hero entrance stagger */
.stagger>*{opacity:0;transform:translateY(18px);animation:rise .7s cubic-bezier(.2,.7,.3,1) forwards}
.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.15s}
.stagger>*:nth-child(3){animation-delay:.25s}.stagger>*:nth-child(4){animation-delay:.35s}
.stagger>*:nth-child(5){animation-delay:.45s}.stagger>*:nth-child(6){animation-delay:.55s}
@keyframes rise{to{opacity:1;transform:none}}
/* hero art + floating leaves + animated glow */
.hero-art{position:relative;border-radius:26px;overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.16);background:#fff}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.hero-art figure-margin{margin:26px auto 0}
.leaf{position:absolute;font-size:24px;opacity:.22;pointer-events:none;animation:leafFloat 9s ease-in-out infinite;filter:saturate(.8)}
.leaf.l2{animation-delay:1.4s;font-size:19px}.leaf.l3{animation-delay:3s;font-size:28px}
.leaf.l4{animation-delay:4.5s;font-size:17px}.leaf.l5{animation-delay:6s;font-size:22px}
@keyframes leafFloat{0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-16px) rotate(10deg)}}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(520px 260px at 14% 24%,rgba(74,222,128,.10),transparent 60%);animation:glowPulse 12s ease-in-out infinite;pointer-events:none}
@keyframes glowPulse{0%,100%{opacity:.5}50%{opacity:1}}
/* alternate section tint */
.alt{background:
radial-gradient(640px 300px at 92% 0%,rgba(163,230,53,.10),transparent 60%),
radial-gradient(520px 280px at 0% 100%,rgba(13,148,136,.10),transparent 60%),#EFF5EA}
/* buttons & micro-interactions */
.btn:active{transform:scale(.96)}
.btn.small{min-height:40px}
a.item,.card,.panel{will-change:transform}
.card:hover .ic{transform:scale(1.08) rotate(-4deg)}
.card .ic{transition:transform .25s}
details.faq{transition:border-color .2s}
details.faq:hover{border-color:#BBF7D0}
.mood-row button:active{transform:scale(.88)}
.lang-sw .lang{min-width:40px;min-height:36px}
/* podcast covers + durations + share */
.cover{width:64px;height:64px;border-radius:18px;object-fit:cover;margin-bottom:14px;box-shadow:var(--shadow)}
.dur{display:inline-block;background:#EEF6EC;color:#166534;border:1px solid #D3E8C9;font-weight:800;font-size:12px;border-radius:999px;padding:3px 11px;margin-inline-start:8px;vertical-align:middle;direction:ltr}
.dur.pending{background:#FEF3C7;color:#92400E;border-color:#FDE68A}
.share-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.share-row button{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 15px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;color:var(--ink);transition:.15s;min-height:40px}
.share-row button:hover{border-color:var(--green);color:#166534}
/* breadcrumb */
.crumbs{font-size:13px;margin-bottom:16px}
.crumbs a{color:#BEF264;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);padding:6px 14px;border-radius:999px;display:inline-block}
.crumbs a:hover{background:rgba(255,255,255,.18)}
/* sticky table header inside scroll area */
.tblwrap{overflow:auto;max-height:70vh;border-radius:var(--r)}
.tbl th{position:sticky;top:0;z-index:2}
/* chat upgrades */
.chat-body{scroll-behavior:smooth}
.chat-input input{min-height:48px}
/* mobile-first fixes */
@media(max-width:660px){
.container{padding-inline:16px}
input,select,textarea,button{font-family:inherit}
input,select,textarea{font-size:16px!important} /* prevents iOS zoom */
.hero .container{padding-block:44px 52px}
.hero-grid{gap:28px}
.loop{width:min(250px,76vw)}
.loop .node{width:76px}
.loop .node .ic{width:46px;height:46px;font-size:21px}
.loop .node span{font-size:11px}
.card{padding:20px}
.band{padding:26px 20px;border-radius:22px}
.cta-band{padding:42px 22px;border-radius:24px}
.chips{gap:8px}
.chip{padding:9px 13px;flex:1 1 44%}
.chat-body{height:300px}
.chat-input button{padding:0 18px}
.mobile-cta{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:80;background:rgba(7,39,28,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px;box-shadow:0 -8px 30px rgba(7,39,28,.35)}
.mobile-cta .btn{flex:1;min-height:46px}
footer{padding-bottom:92px}
#toTop{bottom:92px}
.nav .links a{padding:12px 14px}
.step{padding:18px}
.flow .f{flex:1 1 44%}
section{padding-block:48px}
.band .grid{gap:18px}
.stat .n{font-size:26px}
}
@media(max-width:380px){
.loop .node{width:66px}
.loop .node .ic{width:40px;height:40px;font-size:18px;margin-bottom:4px}
}
/* safe area top for iOS */
@supports(padding:env(safe-area-inset-top)){.nav{padding-top:env(safe-area-inset-top)}}
/* print */
@media print{
.nav,.mobile-cta,#toTop,#progress,.cta-band,.chat-shell,.share-row{display:none!important}
body{background:#fff}
.card,.panel{box-shadow:none;border:1px solid #ddd}
}
/* Partner finder: accessible, local-first, source-backed directory */
.pf-hero .container{padding-block:60px 50px}
.pf-hero .hero-grid{grid-template-columns:1.2fr .8fr;gap:48px}
.pf-hero h1{font-size:clamp(34px,4.3vw,54px);letter-spacing:-.035em}
.pf-hero .lead{font-size:18px;max-width:650px}
.pf-hero-note{font-size:12px;line-height:1.7;color:#BBDCC8;max-width:540px;margin-top:22px}
.pf-hero .hero-cta{gap:10px;margin-top:25px}
.pf-hero .hero-cta .btn{font-size:14px;min-height:48px;padding:13px 22px}
.pf-map{min-height:330px;position:relative;isolation:isolate;border:1px solid #ffffff25;border-radius:28px;padding:25px;background:linear-gradient(150deg,#1c574535,#0b271bba);box-shadow:0 20px 70px #001b1470;overflow:hidden}
.pf-map::before{content:'';position:absolute;width:320px;height:320px;border:1px solid #88bd7770;border-radius:50%;inset-inline-start:calc(50% - 160px);top:38px;z-index:-1}
.pf-map::after{content:'';position:absolute;inset:0;background-image:radial-gradient(#b8daa525 1px,transparent 1px);background-size:17px 17px;z-index:-1}
.pf-map-top{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.14em;color:#C6DBCA;font-weight:700;direction:ltr}
.pf-map-live{display:flex;align-items:center;gap:7px;background:#a3e63518;padding:5px 10px;border-radius:20px;color:#D9F99D}
.pf-map-live i{width:6px;height:6px;border-radius:50%;background:#BEF264}
.pf-network{height:230px;position:relative;margin-top:8px;direction:ltr}
.pf-network svg{width:100%;height:100%}
.pf-orbit-card{position:absolute;border:1px solid #ffffff30;backdrop-filter:blur(8px);background:#164d3efa;padding:10px 15px;border-radius:13px;min-width:103px;box-shadow:0 8px 22px #00160e45;text-align:start}
.pf-orbit-card strong{display:block;color:#D9F99D;font-size:21px;line-height:1.3;font-variant-numeric:tabular-nums}
.pf-orbit-card span{display:block;color:#DDEFE1;font-size:10px;margin-top:3px}
.pf-orbit-card.a{top:12px;left:5%}.pf-orbit-card.b{top:55px;right:0}.pf-orbit-card.c{bottom:0;left:13%}
.pf-map-label{font-size:14px;color:#e1edda;font-weight:700;margin-top:9px}
.pf-map-note{font-size:10px;color:#ABC4AF;margin-top:4px}
.pf-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px;border-top:1px solid #ffffff24;padding-top:23px}
.pf-counts a{color:#d8e7d7;display:block;font-size:12px;border-inline-end:1px solid #ffffff24;padding-inline-end:12px}
.pf-counts a:last-child{border:0}
.pf-counts strong{display:block;color:#C8EF8A;font-size:32px;line-height:1.2;margin-bottom:5px;direction:ltr;font-variant-numeric:tabular-nums}
.pf-counts a:hover{color:white;opacity:1}
.pf-truth{background:#E9EFE1;border-bottom:1px solid #D6E1CF;padding-block:24px}
.pf-truth .container{display:grid;grid-template-columns:205px 1fr;gap:26px;align-items:start}
.pf-truth strong{font-size:14px;color:#28432E;display:flex;align-items:center;gap:8px}
.pf-truth p{font-size:12.5px;color:#41553F;line-height:1.8}
.pf-directory{padding-block:48px 65px;background:linear-gradient(180deg,#F2F5ED 0,#F6F8F3 55%,#EEF3E8 100%);scroll-margin-top:80px}
.pf-eyebrow{color:#267146;font-size:11px;letter-spacing:.14em;font-weight:800;text-transform:uppercase;margin-bottom:10px}
.pf-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}
.pf-title-row h2{font-size:30px;margin-bottom:7px}
.pf-title-row p{color:#61715E;font-size:14px}
.pf-title-row .btn{font-size:12px;padding:11px 16px;white-space:nowrap;flex-shrink:0}
.pf-panel{background:#fff;border:1px solid #DCE6D2;box-shadow:0 8px 28px #24422008;border-radius:22px;padding:23px}
.pf-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}
.pf-tabs button{border:1px solid #E0E8D9;background:#F7F9F3;color:#52654C;padding:12px 8px;border-radius:12px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;min-height:46px;transition:.15s}
.pf-tabs button[aria-pressed=true]{background:#0B3B2A;color:#D9F99D;border-color:#0B3B2A;box-shadow:0 3px 10px #0b3b2a18}
.pf-tabs button:hover{border-color:#80B364}
.pf-query-row{display:grid;grid-template-columns:1.45fr 1fr;gap:14px}
.pf-field{min-width:0}
.pf-field label{display:block;color:#65755C;font-size:11.5px;font-weight:700;margin-bottom:6px}
.pf-field input,.pf-field select{display:block;width:100%;height:48px;border:1px solid #D5DFCA;border-radius:11px;background:#FBFCF9;color:#1A3623;font-family:inherit;font-size:14px;padding:10px 13px;min-width:0;outline:none}
.pf-field input:focus,.pf-field select:focus{border-color:#3D9556;box-shadow:0 0 0 3px #46a46018;background:#fff}
.pf-field .pf-searchwrap{position:relative}
.pf-searchwrap svg{position:absolute;inset-inline-start:14px;top:15px;color:#719069;width:18px;height:18px;pointer-events:none}
.pf-searchwrap input{padding-inline-start:43px}
.pf-advanced{margin-top:16px;border-top:1px solid #EEF1E8;padding-top:12px}
.pf-advanced summary{cursor:pointer;color:#385132;font-size:12.5px;font-weight:700;padding:6px 0;min-height:34px}
.pf-more-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:11px}
.pf-checks{display:flex;align-items:center;justify-content:flex-start;gap:8px 20px;flex-wrap:wrap;margin-top:14px}
.pf-checks label{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#526349;cursor:pointer;min-height:34px}
.pf-checks input{accent-color:#176A3D;width:16px;height:16px;flex:0 0 16px}
.pf-reset{margin-inline-start:auto;background:none;border:0;text-decoration:underline;text-underline-offset:3px;color:#48653F;cursor:pointer;font:inherit;font-size:12px;min-height:34px}
.pf-resultbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;padding:25px 2px 16px;font-size:12px;color:#617056;scroll-margin-top:85px}
.pf-resultbar strong{font-size:15px;color:#284528}
.pf-saved-count{font-size:11px;background:#E6EDDD;border-radius:50px;padding:5px 12px}
.pf-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;align-items:stretch}
.pf-card{min-width:0;background:#fff;border:1px solid #DCE5D3;border-radius:18px;padding:21px;display:flex;flex-direction:column;box-shadow:0 4px 15px #28432106;transition:border-color .2s,box-shadow .2s;scroll-margin-top:90px}
.pf-card:hover{border-color:#92B883;box-shadow:0 8px 23px #2843210d}
.pf-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:16px}
.pf-card-id{font-size:10px;letter-spacing:.1em;color:#718569;direction:ltr}
.pf-cat-icon{width:40px;height:40px;border-radius:13px;background:#EAF2E1;color:#377244;display:grid;place-items:center;margin-top:7px}
.pf-cat-icon svg{width:21px;height:21px}
.pf-card[data-category=recovery] .pf-cat-icon{background:#DFF1EB;color:#28715E}
.pf-card[data-category=research] .pf-cat-icon{background:#E6ECFA;color:#475C88}
.pf-card[data-category=recycling] .pf-cat-icon{background:#FEF2D9;color:#8A7234}
.pf-save{border:1px solid #E3EAD9;border-radius:9px;color:#5A7050;background:#FBFCF8;font-family:inherit;font-size:11px;font-weight:600;padding:7px 9px;cursor:pointer;display:flex;align-items:center;gap:5px;min-height:36px}
.pf-save[aria-pressed=true]{background:#E4F2D2;color:#245B30;border-color:#BCD899}
.pf-save svg{width:14px;height:14px}
.pf-card h3{font-size:17px;line-height:1.5;letter-spacing:-.015em;color:#173721;overflow-wrap:anywhere;margin-bottom:6px}
html[lang=fa] .pf-card h3{font-size:16.5px;letter-spacing:0;line-height:1.85}
.pf-original{font-size:10.5px;color:#64745A;line-height:1.6;margin-bottom:10px;overflow-wrap:anywhere}
.pf-location{display:flex;align-items:center;gap:5px;color:#648356;font-size:11.5px;margin-top:2px;margin-bottom:12px}
.pf-location svg{width:13px;height:13px;flex-shrink:0}
.pf-labels{display:flex;gap:5px;flex-wrap:wrap;font-size:9.5px;margin-bottom:12px}
.pf-labels span{background:#F0F4E9;border:1px solid #E2EAD6;padding:3px 8px;border-radius:6px;color:#667458}
.pf-labels .pf-priority{background:#EAF5D7;color:#3D621A;border-color:#D7EAB6}
.pf-parent{font-size:10.5px;color:#738069;line-height:1.6;margin-bottom:12px;overflow-wrap:anywhere}
.pf-ask{font-size:12px;line-height:1.8;color:#54634C;margin-bottom:17px;padding-bottom:16px;border-bottom:1px solid #EDF1E8}
.pf-ask strong{display:block;color:#324C2B;font-size:10px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.pf-phonebox{margin-top:auto;padding-top:0}
.pf-phone{display:block;direction:ltr;unicode-bidi:isolate;font-size:18px;font-weight:750;line-height:1.4;color:#193C27;letter-spacing:.01em;margin-bottom:5px;text-align:start}
html[dir=rtl] .pf-phone{text-align:right}
.pf-phone-state{color:#819078;font-size:9.5px;margin-bottom:9px}
.pf-call{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;background:#EFF5E7;color:#2B653C;border:1px solid #DAE8CC;border-radius:9px;font-size:12px;font-weight:700;margin-bottom:10px}
.pf-call:hover{background:#E4F1D8;opacity:1}
.pf-no-phone,.pf-number-note{font-size:11px;line-height:1.8;border-radius:9px;background:#FFF6DD;color:#78643A;padding:11px;margin-bottom:10px;border:1px solid #F1E4BC}
.pf-number-note{padding:7px 9px;font-size:10px}
.pf-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pf-links a,.pf-copy{min-height:34px;border-radius:8px;border:1px solid #E4EBDA;color:#53654B;background:#fff;font-family:inherit;font-size:10px;padding:7px 9px;display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.pf-links a:hover,.pf-copy:hover{border-color:#83B468;opacity:1}
.pf-card-source{border-top:1px dashed #E2E9D9;padding-top:11px;margin-top:14px;display:flex;justify-content:space-between;gap:7px;flex-wrap:wrap;font-size:9px;color:#8A9580}
.pf-card-source a{font-weight:700;color:#4F7447}
.pf-evidence{font-size:9px;color:#93A287;margin-top:5px}
.pf-card-note{color:#7C8066;background:#F8F8EF;font-size:10px;border-radius:7px;padding:9px;line-height:1.8;margin-top:10px}
.pf-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin:28px 0 12px;font-size:12px;color:#5B7150}
.pf-pagination button{background:#fff;border:1px solid #D6E3CA;border-radius:9px;padding:10px 17px;min-height:42px;color:#315C36;font-weight:700;font-family:inherit;cursor:pointer}
.pf-pagination button:disabled{opacity:.4;cursor:not-allowed}
.pf-quiet-note{font-size:11px;color:#7A8771;text-align:center;margin-top:14px;max-width:850px;margin-inline:auto}
.pf-empty{grid-column:1/-1;padding:50px 20px;text-align:center;color:#657B56;background:white;border:1px dashed #BDCFAB;border-radius:18px}
.pf-plan{background:#E6EEDA;padding-block:56px}
.pf-plan .title{font-size:29px;max-width:660px}
.pf-plan .grid{margin-top:30px}
.pf-step{border-inline-start:2px solid #B8CE9C;padding-inline-start:20px}
.pf-step b{display:inline-grid;place-items:center;width:28px;height:28px;color:#D9F99D;background:#355F34;border-radius:50%;font-size:12px;margin-bottom:13px;direction:ltr}
.pf-step h3{font-size:16px;margin-bottom:10px;color:#2B4925}
.pf-step p{font-size:13px;color:#5D7153;line-height:1.9}
.pf-message-section{padding-block:58px}
.pf-message-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:44px;align-items:start}
.pf-message-layout h2{font-size:28px;line-height:1.5;margin-bottom:12px}
.pf-message-layout p{color:#6C7E61;font-size:13px;line-height:1.9}
.pf-message-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.pf-message-tools .btn{min-height:44px;font-size:12px;padding:11px 18px}
.pf-message-box{padding:24px;background:#fff;border:1px solid #DCE6D1;border-radius:20px;box-shadow:0 6px 25px #20441008}
.pf-message-box textarea{width:100%;min-height:360px;resize:vertical;border:0;background:white;color:#49633F;font-family:inherit;font-size:12px;line-height:1.9;outline:none;overflow-wrap:anywhere}
.pf-method{padding-block:48px;background:#ECF1E5;border-top:1px solid #D7E4CC}
.pf-method summary{font-size:20px;font-weight:800;color:#2A4F2E;cursor:pointer;padding:10px 0;min-height:48px}
.pf-method p{font-size:12.5px;color:#65785B;line-height:1.9;margin:14px 0;max-width:900px}
.pf-method-links{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;margin-top:22px}
.pf-method-links a{padding:9px 13px;background:#fff;border:1px solid #D4E2C8;border-radius:9px}
.pf-toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#123E27;color:#E5F1D9;padding:11px 20px;border-radius:13px;box-shadow:0 8px 30px #183d2f30;font-size:12px;z-index:150;max-width:calc(100% - 30px);text-align:center;pointer-events:none;opacity:0;transition:opacity .2s}
.pf-toast.show{opacity:1}
.pf-home-callout{padding-block:40px;background:#E9F0DF;border-block:1px solid #D4E3C8}
.pf-home-callout .container{display:flex;gap:25px;justify-content:space-between;align-items:center}
.pf-home-callout h2{font-size:24px;margin-bottom:9px;max-width:700px}
.pf-home-callout p{font-size:13.5px;color:#67795B;max-width:730px}
.pf-home-callout .btn{flex-shrink:0;font-size:13px}
/* Wider menu supports the added page without desktop overflow. */
.nav .container{max-width:1460px}
@media(min-width:1381px){.nav .links a{font-size:12.5px;padding:8px 8px}.nav .links{gap:1px}}
@media(max-width:1380px){.nav .links{display:none}.nav .burger{display:block}.nav .nav-actions{margin-inline-start:auto}.nav.open .links{display:flex}}
@media(max-width:1000px){.pf-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-hero .hero-grid{gap:26px}.pf-message-layout{gap:25px}}
@media(max-width:760px){
.pf-hero .hero-grid{grid-template-columns:1fr}.pf-map{min-height:280px}.pf-network{height:180px}.pf-orbit-card.c{bottom:-2px}
.pf-hero .lead{font-size:16px}.pf-hero .container{padding-block:38px 35px}.pf-hero h1{font-size:35px;line-height:1.35}
.pf-hero .hero-cta .btn{flex:1 1 100%;font-size:13px}.pf-hero-note{font-size:11px;margin-top:16px}
.pf-counts{gap:8px;margin-top:23px;padding-top:18px}.pf-counts strong{font-size:26px}.pf-counts a{font-size:10px;line-height:1.6}
.pf-map-top{font-size:9px}.pf-map-label{font-size:13px}.pf-map-note{font-size:10px}
.pf-truth .container{display:block}.pf-truth strong{margin-bottom:10px}.pf-truth p{font-size:11.5px}.pf-truth{padding-block:20px}
.pf-title-row{display:block}.pf-title-row h2{font-size:25px}.pf-title-row p{font-size:12.5px}.pf-title-row .btn{margin-top:14px;width:100%;min-height:44px}
.pf-directory{padding-block:30px 40px;scroll-margin-top:80px}.pf-panel{padding:15px;border-radius:17px}.pf-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:16px}.pf-tabs button{font-size:12px;min-height:46px;padding:9px}
.pf-query-row,.pf-more-row{grid-template-columns:1fr;gap:13px}.pf-field label{font-size:11px}.pf-field input,.pf-field select{font-size:16px;height:48px}.pf-advanced summary{font-size:12px;min-height:44px}
.pf-checks{display:block}.pf-checks label{font-size:12px;display:flex;min-height:44px}.pf-checks input{width:18px;height:18px;flex-basis:18px}.pf-reset{font-size:12px;min-height:44px;width:100%;text-align:start;margin-top:3px}
.pf-resultbar{padding-top:20px;padding-bottom:14px}.pf-resultbar strong{font-size:13px}.pf-saved-count{font-size:10px}
.pf-card{padding:19px}.pf-card h3{font-size:17px}.pf-original{font-size:11px}.pf-labels{font-size:10px}.pf-ask{font-size:12px}.pf-call{min-height:46px;font-size:12px}.pf-save{min-height:44px}.pf-links a,.pf-copy{min-height:42px;font-size:11px}.pf-card-source{font-size:10px}.pf-quiet-note{font-size:10px;line-height:1.9}.pf-phone-state{font-size:10px}
.pf-pagination{gap:10px}.pf-pagination button{padding:10px 13px;min-height:44px}.pf-pagination span{font-size:11px}
.pf-plan .grid{grid-template-columns:1fr;gap:26px}.pf-plan .title{font-size:25px}.pf-plan{padding-block:38px}
.pf-message-layout{grid-template-columns:1fr;gap:20px}.pf-message-section{padding-block:38px}.pf-message-layout h2{font-size:25px}.pf-message-box{padding:17px}.pf-message-box textarea{font-size:16px;min-height:420px}.pf-message-tools .btn{flex:1 1 100%;min-height:46px}
.pf-method summary{font-size:17px;line-height:1.7}.pf-method p{font-size:12px}.pf-toast{bottom:87px}
.pf-home-callout .container{display:block}.pf-home-callout .btn{margin-top:15px;min-height:46px;width:100%}.pf-home-callout h2{font-size:22px}
}
@media(max-width:620px){.pf-cards{grid-template-columns:1fr}.pf-map{min-height:270px}.pf-map-note{font-size:9.5px}.pf-network{height:175px}}
@media(max-width:360px){.pf-orbit-card{padding:9px;min-width:88px}.pf-hero h1{font-size:30px}.pf-pagination{gap:5px}.pf-pagination button{font-size:11px;padding:10px}}
@media(prefers-reduced-motion:reduce){.pf-card,.pf-tabs button,.pf-toast{transition:none}}
@media print{.pf-panel,.pf-pagination,.pf-toast,.pf-message-tools{display:none}.pf-cards{grid-template-columns:repeat(2,1fr)}.pf-card{break-inside:avoid}.pf-map{display:none}.pf-hero{color:#000;background:#fff}.pf-hero .lead{color:#333}.pf-hero-note,.pf-counts{color:#333}.pf-method details{display:block}.pf-hero .hero-cta{display:none}}
/* Compact language + menu controls fit 320px without concealing content. */
@media(max-width:760px){
.nav .nav-inner{gap:8px}
.nav .brand{font-size:15px;gap:6px;flex-shrink:0}
.nav .brand .logo{width:26px;height:26px}
.nav .nav-actions{gap:6px}
.nav .nav-actions>.btn{display:none}
.nav .lang-sw{padding:3px;gap:2px}
.nav .lang-sw .lang{min-width:29px;min-height:36px;padding:6px 7px;font-size:11px}
.nav .burger{width:44px;min-height:44px;padding:11px;flex-shrink:0}
.mobile-cta .btn{min-width:0;white-space:normal;padding-inline:10px;font-size:12px;line-height:1.5;text-align:center}
.mobile-cta .btn span{min-width:0;overflow-wrap:anywhere}
}
/* Outreach workbench: paper-like operational surface, dark green evidence rails. */
.ow-hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center}.ow-hero h1{font-size:clamp(38px,4.6vw,64px);line-height:1.16}.ow-hero .lead{font-size:18px;max-width:640px}.ow-hero-tools{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.ow-hero-note{color:#C5D8CB;font-size:12px;margin-top:22px}.ow-path-art{padding:26px;border:1px solid #517764;border-radius:26px;background:radial-gradient(circle at 80% 10%,rgba(163,230,53,.12),transparent 50%),linear-gradient(150deg,#164936,#0b3022);box-shadow:0 25px 65px #061d1455;transform:rotate(-1.5deg)}.ow-art-heading{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:1.4px;color:#cee0d3;direction:ltr}.ow-art-heading span{background:#27583c;border-radius:99px;padding:3px 8px;color:#D9F99D}.ow-art-flow{display:flex;flex-direction:column;align-items:stretch;padding-top:24px}.ow-art-flow>div{display:grid;grid-template-columns:42px 1fr 35px;gap:14px;align-items:center;background:#174b39;border:1px solid #46735b;border-radius:15px;padding:16px}.ow-art-flow>div.ow-art-active{background:#d9f1b3;color:#143a23;border-color:#bde778;box-shadow:0 10px 35px #9ce03b16}.ow-art-flow b{font-size:13px;line-height:1.6}.ow-art-flow i{font-style:normal;text-align:center;color:#8dc887;font-size:25px;height:32px}.ow-art-num{font-size:21px;font-weight:900;direction:ltr}.ow-art-flow svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.5}.ow-path-art>p{margin-top:20px;font-size:11px;color:#c4d9c9;line-height:1.8}.ow-truth{background:#e8eede;border-block:1px solid #d5e1c7}.ow-truth .container{display:flex;gap:16px;align-items:center;padding-block:22px;font-size:13px;color:#435841}.ow-truth p{margin:0}.ow-dot{width:12px;height:12px;flex-shrink:0;border-radius:50%;background:#d89f38;box-shadow:0 0 0 7px #d89f3817}.ow-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:30px}.ow-section-head h2{font-size:32px;margin:6px 0 12px;line-height:1.4}.ow-section-head p{max-width:730px;font-size:14px;color:var(--muted);line-height:1.9}.ow-pill-link{font-size:12px;padding:11px 16px;background:white;border:1px solid #d9e5cf;border-radius:99px;white-space:nowrap;align-self:center}.ow-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.ow-stats>div{display:flex;gap:16px;align-items:center;padding:18px 24px;border:1px solid #d9e5cf;border-radius:17px;background:#fff}.ow-stats strong{font-size:32px;line-height:1;color:#0f4d30}.ow-stats span{font-size:12px;color:#627c61}.ow-picker,.ow-input-grid{display:grid;grid-template-columns:1fr 1.8fr;gap:14px}.ow-picker{background:#fff;border:1px solid #d9e5cf;border-radius:22px;padding:24px;margin-bottom:22px}.ow-picker label,.ow-draft-panel label:not(.ow-checkbox),.ow-email-section label:not(.ow-checkbox){display:block;font-size:12px;font-weight:750;color:#5a7456;margin-bottom:7px}.ow-picker input,.ow-picker select,.ow-draft-panel input:not([type=checkbox]),.ow-draft-panel select,.ow-draft-panel textarea,.ow-routes-section select,.ow-email-section input[type=email],.ow-dialog input,.ow-dialog select,.ow-dialog textarea{display:block;width:100%;min-width:0;box-sizing:border-box;padding:12px 13px;font:inherit;font-size:13px;color:#163b29;background:#f9fbf7;border:1px solid #cadbc0;border-radius:12px;min-height:46px;outline-offset:3px}.ow-input-grid>*{min-width:0}.ow-empty-selection{border:1px dashed #bfd2b4;border-radius:22px;background:#eef5e8;padding:30px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}.ow-empty-selection>div{font-size:25px;background:#dceaD1;padding:10px 18px;border-radius:14px}.ow-empty-selection p{flex:1;min-width:180px;color:#436043;font-size:14px}.ow-empty-selection a{font-size:13px;font-weight:750}.ow-compose{display:grid;grid-template-columns:1fr 1.65fr;gap:22px;margin-bottom:48px}.ow-compose[hidden],.ow-application-box[hidden],.ow-empty-selection[hidden]{display:none}.ow-lead-brief{align-self:start;position:sticky;top:90px;background:#113d2d;color:#e0eedf;border:1px solid #32664b;border-radius:22px;padding:28px;min-width:0}.ow-lead-brief>small{font-size:11px;color:#b0c7ac}.ow-lead-brief h3{font-size:23px;line-height:1.65;margin:15px 0;overflow-wrap:anywhere}.ow-type,.ow-fit{display:inline-block;margin:0 0 8px 5px;font-size:11px;line-height:1.8;border:1px solid #58785b;background:#1d4b37;padding:5px 9px;border-radius:9px;color:#dce8d4}.ow-fit{background:#2c5a37;color:#d9efaf}.ow-lead-brief p{font-size:13px;line-height:2}.ow-lead-brief a{color:#c7eb99;font-size:12px;text-decoration:underline;text-underline-offset:3px}.ow-lead-brief .ow-gate{background:#214531;border-color:#597451;color:#d7e9ca}.ow-wa-status{border-block:1px solid #4c6e50;padding:16px 0;margin:20px 0 14px}.ow-wa-status b{font-size:12px;color:#d0eda7}.ow-wa-status small{display:block;font-size:11px;line-height:1.9;color:#acc5a8;margin-top:13px}.ow-published-phone{display:block;font-size:19px;color:#d9f3b9;margin-top:16px}.ow-mini{display:block;text-align:start;width:100%;padding:9px 11px;border:1px solid #567649;border-radius:10px;margin-top:10px;font:inherit;font-size:11px;line-height:1.8;background:#285035;color:#d6edb4;cursor:pointer;white-space:normal}.ow-quiet{font-size:12px;color:#70816c;line-height:1.9;margin-top:18px}.ow-lead-brief .ow-quiet{color:#adc2a4}.ow-draft-panel{padding:28px;background:#fff;border:1px solid #dce6d4;border-radius:22px;min-width:0}.ow-draft-panel>.ow-input-grid{margin-bottom:17px}.ow-draft-panel>input,.ow-draft-panel>textarea{margin-bottom:17px}.ow-draft-panel textarea{font-size:13px;line-height:2;resize:vertical;min-height:330px}.ow-draft-hint{font-size:11px;color:#748268;line-height:1.9}.ow-compose-tools,.ow-email-tools{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.ow-link-btn,.ow-compose-tools>.ow-link-btn,.ow-email-tools>button:not(.btn){background:#f4f8ee;color:#20563a;border:1px solid #d3e1c7;border-radius:11px;font:inherit;font-size:12px;padding:10px 13px;cursor:pointer;line-height:1.65;text-decoration:none;min-height:42px;text-align:center}.ow-compose-tools [hidden]{display:none!important}.ow-record-box{padding:20px;background:#edf5e6;border:1px solid #d4e4c9;border-radius:17px;margin-top:24px}.ow-record-box .ow-input-grid{grid-template-columns:1fr 1fr;margin-bottom:15px}.ow-record-box .ow-input-grid>div:last-child{grid-column:1/-1;max-width:260px}.ow-checkbox{display:flex;align-items:flex-start;gap:10px;line-height:1.9;font-size:12px;color:#4a6244;margin:16px 0!important;font-weight:500!important}.ow-checkbox input{width:17px;height:17px;margin-top:4px;flex-shrink:0;accent-color:#126c38}.ow-record-box>.btn{width:100%;font-size:13px;white-space:normal}.ow-record-box .btn:disabled,.ow-application-box button:disabled,.ow-email-tools button:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.ow-application-box{border-block-start:1px solid #dce5d3;padding-top:22px;margin-top:25px}.ow-application-box h4{font-size:15px;margin-bottom:10px}.ow-application-box p,.ow-application-box small{font-size:12px;line-height:1.9;color:#687960}.ow-application-box .ow-input-grid{grid-template-columns:1fr}.ow-application-box small{display:block;margin-top:12px}.ow-caution{font-size:12px;line-height:1.9;background:#fbf3df;color:#8a641b;padding:12px 15px;border:1px solid #eddcaf;border-radius:12px;margin-top:12px}.ow-queue-header{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:48px 0 24px}.ow-queue-header h2{font-size:26px}.ow-queue-header p{font-size:13px;color:#6a7b60;line-height:1.9;max-width:650px;margin-top:10px}.ow-backup-tools{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;min-width:180px;max-width:380px}.ow-backup-tools button,.ow-import-label{padding:8px 11px;font:inherit;font-size:11px;background:#fff;border:1px solid #d5e1cc;border-radius:9px;color:#4e6c46;cursor:pointer;min-height:40px;display:inline-flex;align-items:center}.ow-import-label input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.ow-import-label:focus-within{outline:3px solid #97c66c;outline-offset:2px}.ow-queue{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ow-queue-empty{grid-column:1/-1;text-align:center;padding:40px 20px;background:#f0f5e9;border:1px dashed #c4d5b4;border-radius:20px;color:#6f8262}.ow-queue-empty svg{width:45px;height:45px;opacity:.6;margin-bottom:12px}.ow-queue-empty p{font-size:13px;max-width:650px;margin:auto;line-height:1.9}.ow-job{display:flex;gap:15px;padding:24px;border-radius:18px;border:1px solid #dae4d2;background:white;min-width:0}.ow-overdue{border-color:#dfbb6d;background:#fffcf4}.ow-job-indicator{width:36px;height:36px;border-radius:11px;background:#e7f1dd;display:grid;place-items:center;color:#477747;font-size:21px;flex-shrink:0}.ow-job-content{min-width:0}.ow-job-id{font-size:10px;color:#718769}.ow-job h3{font-size:15px;line-height:1.9;margin-top:8px}.ow-job p{font-size:12px;color:#647a5b;line-height:1.9}.ow-job time{font-size:12px;font-weight:700;display:block;margin-top:8px;color:#265b35}.ow-job-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.ow-job-actions button{font:inherit;font-size:11px;border:1px solid #d5e1ca;color:#456639;background:#f4f8ef;padding:7px 9px;border-radius:8px;cursor:pointer;min-height:36px}.ow-routes-section{background:radial-gradient(ellipse at 0% 0%,#e2f0d2 0%,transparent 45%),#edf2e7;border-block:1px solid #d6e2c9}.ow-routes-section select{width:250px}.ow-routes{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ow-route-card{padding:27px;border:1px solid #d1dfc4;border-radius:22px;background:#fff;min-width:0;display:flex;flex-direction:column}.ow-route-top{font-size:10px;display:flex;align-items:start;justify-content:space-between;gap:12px;color:#6c825e}.ow-route-kind{padding:4px 8px;background:#eaf3df;color:#416335;border-radius:7px;font-size:10px;max-width:65%;line-height:1.6}.ow-route-card h3{font-size:19px;line-height:1.7;margin:15px 0 10px;overflow-wrap:anywhere}.ow-route-state{display:inline-block;font-size:11px;background:#edf7e4;padding:6px 10px;border-radius:8px;align-self:start;color:#46653a}.ow-route-closed .ow-route-state{background:#faf0db;color:#8b6a25}.ow-route-card>p{font-size:13px;line-height:2;margin:14px 0;color:#536949}.ow-gate{background:#f1f6e9;border:1px solid #d6e3c7;border-radius:12px;padding:12px;font-size:12px;line-height:1.9;color:#537442;margin-top:12px}.ow-route-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:20px}.ow-route-tools button{font:inherit;font-size:12px;font-weight:700;background:#11442e;color:#d7edc1;border:0;border-radius:10px;padding:11px 13px;cursor:pointer}.ow-route-tools a{font-size:11px;color:#416d35;text-decoration:underline;text-underline-offset:3px}.ow-route-card>small{display:block;font-size:10px;color:#84947b;margin-top:17px;line-height:1.8}.ow-readiness-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:start}.ow-readiness h2{font-size:30px;margin:8px 0 16px;line-height:1.6}.ow-readiness p{font-size:14px;color:#69815b;line-height:2}.ow-readiness progress{width:100%;height:11px;border-radius:99px;margin-top:15px;accent-color:#438b36}.ow-dossier-links{background:#ecf4e2;border:1px solid #d5e4c7;padding:22px;border-radius:20px;margin-top:30px;display:flex;flex-wrap:wrap;gap:10px}.ow-dossier-links h3{width:100%;font-size:15px;margin-bottom:4px}.ow-dossier-links a{background:#fff;border:1px solid #d0e0c1;border-radius:10px;padding:8px 11px;font-size:12px}.ow-doc-list{display:grid;gap:12px}.ow-doc-list label{display:flex;gap:12px;align-items:flex-start;line-height:1.95;font-size:13px;padding:17px;background:white;border:1px solid #d6e3c8;border-radius:14px}.ow-doc-list input{width:17px;height:17px;flex-shrink:0;margin-top:3px;accent-color:#377c32}.ow-email-section{background:#103c2b;color:#eff6ea}.ow-email-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:55px;align-items:start}.ow-email-section h2{font-size:30px;line-height:1.6;margin:8px 0 18px}.ow-email-section .kicker{color:#b1e874}.ow-email-section p{font-size:14px;color:#c1d2b6;line-height:2}.ow-email-state{font-size:13px;line-height:2;border-radius:15px;padding:18px;border:1px solid #718050;background:#32432e;color:#f4e8bc;margin:24px 0}.ow-email-state.ow-active{border-color:#5b9653;background:#23522e;color:#d4f1b4}.ow-email-section label:not(.ow-checkbox){color:#c8dabd}.ow-email-section .ow-checkbox{color:#c6dab8}.ow-email-section input[type=email]{background:#f1f8e9}.ow-email-tools>button:not(.btn){background:#214c31;color:#d3e6c0;border-color:#56774d}.ow-email-section .btn{font-size:12px}.ow-setup{background:#1b4a33;border:1px solid #4b6e41;padding:30px;border-radius:22px}.ow-setup h3{font-size:18px;line-height:1.8;margin-bottom:20px}.ow-setup ol{padding-inline-start:21px;display:grid;gap:18px}.ow-setup li{font-size:12px;line-height:2;color:#c6dabb}.ow-setup a{font-size:11px;text-decoration:underline;text-underline-offset:3px;color:#c9ee8f}.ow-setup>a{display:block;margin-top:25px}.ow-setup code{display:inline-block;direction:ltr;font-size:11px;padding:3px 7px;border:1px solid #507946;background:#285438;border-radius:5px;margin:5px;color:#d4ebb7}.ow-privacy{background:#eaf2e2;padding-block:30px!important;border-block:1px solid #d6e3c9}.ow-privacy h3{font-size:17px}.ow-privacy p{font-size:12px;line-height:2;color:#607454;margin-top:8px}.ow-raha .container{display:flex;align-items:center;justify-content:space-between;gap:45px}.ow-raha h2{font-size:28px;line-height:1.6;margin:8px 0 14px}.ow-raha p{font-size:13px;line-height:2;color:#718268;max-width:760px}.ow-raha-tools{display:flex;flex-direction:column;gap:15px;align-items:start;min-width:230px}.ow-raha-tools>a:not(.btn){font-size:12px;line-height:1.9;text-decoration:underline}.ow-dialog{width:min(620px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:28px;border:1px solid #c7d9b6;border-radius:22px;background:#f8fcf3;color:#163c26;box-sizing:border-box;box-shadow:0 20px 100px #061a1544}.ow-dialog::backdrop{background:#0c281ba0;backdrop-filter:blur(3px)}.ow-dialog-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:20px}.ow-dialog button:not(.btn){font:inherit;font-size:12px;border:1px solid #ccdabb;background:white;color:#557344;border-radius:9px;padding:9px 13px;cursor:pointer}.ow-dialog h3{font-size:18px}.ow-dialog p{font-size:13px;line-height:2;margin:15px 0}.ow-dialog label{display:block;font-size:12px;margin:18px 0 8px}.ow-dialog .btn{margin-top:20px;font-size:13px}.ow-dialog textarea{line-height:2}.ow-dialog [hidden]{display:none}.pf-wa{padding-top:15px;margin-top:15px;border-top:1px dashed #d7e4cb}.pf-wa b{font-size:11px;color:#49773d}.pf-wa p{font-size:11px;line-height:1.9;color:#697f5e;margin:8px 0}.pf-wa a{font-size:11px;line-height:1.9;color:#3b7135}.pf-wa .pf-wa-purpose{background:#f6f1df;color:#84703a;padding:8px 10px;border-radius:8px}.pf-plan-contact{display:block;width:100%;text-align:center;margin:15px 0 0;padding:11px;background:#11442f;color:#e1f0d6;border:1px solid #20553a;border-radius:12px;font-size:12px;font-weight:700;line-height:1.9}.pf-plan-contact:hover{color:#fff;opacity:.92}.pf-workflow-callout{background:#e7f1dc;border:1px solid #cfe1bb;border-radius:22px;padding:25px;display:flex;gap:25px;justify-content:space-between;align-items:center;margin-bottom:25px}.pf-workflow-callout h3{font-size:19px;line-height:1.7}.pf-workflow-callout p{font-size:13px;color:#63795b;line-height:2;margin-top:8px}.pf-workflow-callout a{flex-shrink:0;font-size:12px}.pf-wa-summary{font-size:12px;line-height:2;color:#657c58;padding:18px 22px;border:1px solid #d5e1c8;border-radius:15px;background:#f0f5e8;margin-top:18px}.pf-wa-filter{margin-top:13px}.pf-wa-filter label{font-size:12px;color:#63785b;display:block;margin-bottom:7px}.pf-wa-filter select{min-height:44px;padding:10px;border:1px solid #d2e0c5;border-radius:10px;font:inherit;font-size:12px;background:#f8fbf4;color:#315438;max-width:100%;width:100%}
@media(max-width:1050px){.ow-hero-grid{gap:35px}.ow-hero .lead{font-size:16px}.ow-hero h1{font-size:46px}.ow-path-art{padding:21px}.ow-compose{grid-template-columns:1fr 1.6fr;gap:16px}.ow-lead-brief,.ow-draft-panel{padding:22px}.ow-input-grid{grid-template-columns:1fr}.ow-email-grid{gap:30px}.ow-readiness-grid{gap:35px}.ow-raha .container{align-items:start;flex-direction:column;gap:25px}.ow-raha-tools{flex-direction:row;flex-wrap:wrap;align-items:center}}
@media(max-width:760px){.ow-hero-grid{grid-template-columns:1fr;gap:30px}.ow-hero .container{padding-block:40px}.ow-hero h1{font-size:39px;line-height:1.4}.ow-hero .lead{font-size:16px;line-height:2}.ow-hero-tools{flex-direction:column}.ow-hero-tools .btn{text-align:center;justify-content:center;white-space:normal;font-size:13px}.ow-path-art{transform:none;padding:20px}.ow-art-heading{font-size:9px;letter-spacing:.7px}.ow-art-flow{padding-top:17px}.ow-art-flow>div{padding:12px;gap:10px}.ow-art-flow b{font-size:12px}.ow-truth .container{font-size:12px;padding-block:20px;gap:15px}.ow-section-head{flex-direction:column;gap:15px}.ow-section-head h2{font-size:28px}.ow-pill-link{align-self:start;white-space:normal}.ow-stats{gap:9px}.ow-stats>div{flex-direction:column;padding:14px 8px;gap:8px;text-align:center}.ow-stats strong{font-size:28px}.ow-stats span{font-size:10px;line-height:1.7}.ow-picker{grid-template-columns:1fr;padding:18px}.ow-compose{grid-template-columns:1fr;gap:18px}.ow-lead-brief{position:static;padding:22px}.ow-lead-brief h3{font-size:23px}.ow-draft-panel{padding:20px}.ow-record-box{padding:15px}.ow-record-box .ow-input-grid{grid-template-columns:1fr}.ow-record-box .ow-input-grid>div:last-child{max-width:none}.ow-empty-selection{padding:23px}.ow-queue-header{flex-direction:column;align-items:start;gap:18px}.ow-backup-tools{justify-content:flex-start;max-width:none}.ow-queue{grid-template-columns:1fr}.ow-job{padding:20px;gap:12px}.ow-routes{grid-template-columns:1fr}.ow-routes-section select{width:100%;max-width:360px}.ow-route-card{padding:23px}.ow-route-card h3{font-size:19px}.ow-readiness-grid,.ow-email-grid{grid-template-columns:1fr;gap:30px}.ow-readiness h2,.ow-email-section h2{font-size:28px}.ow-setup{padding:24px}.ow-dialog{padding:23px}.ow-raha h2{font-size:25px}.pf-workflow-callout{flex-direction:column;align-items:start;gap:17px}.pf-workflow-callout .btn{white-space:normal}.ow-section-head>*{min-width:0}.ow-route-top{align-items:flex-start}.ow-route-kind{max-width:70%}.ow-art-heading>span{white-space:normal;text-align:center}.ow-application-box small{font-size:11px}.ow-email-tools .btn{white-space:normal}.ow-backup-tools button,.ow-import-label{font-size:11px;min-height:42px}.ow-draft-panel textarea{min-height:420px}.ow-compose-tools>.btn{font-size:12px;white-space:normal}.ow-job-actions button{min-height:42px}}
@media(prefers-reduced-motion:reduce){.ow-path-art{transform:none}.ow-desk-section *{scroll-behavior:auto!important}}
</style>
</head>
<body data-page="program">
<a class="skip" href="#main" data-i18n="a11y.skip">Skip to content</a>
<header class="nav" id="nav">
<div class="container nav-inner">
<a class="brand" href="index.html">
<svg class="logo" viewBox="0 0 48 48" fill="none"><circle cx="24" cy="24" r="23" fill="#0B3B2A"/><path d="M24 38c0-9 2-14 9-19-1 8-3 13-9 19Z" fill="#A3E635"/><path d="M24 38c0-9-2-14-9-19 1 8 3 13 9 19Z" fill="#4ADE80"/><path d="M24 38V22" stroke="#D9F99D" stroke-width="2" stroke-linecap="round"/></svg>
<span>GreenRoot</span>
</a>
<nav class="links" id="links">
<a href="index.html" data-i18n="nav.home">Home</a>
<a href="science.html" data-i18n="nav.science">Science</a>
<a href="program.html" data-i18n="nav.program">Program</a>
<a href="ai.html" data-i18n="nav.ai">AI companion</a>
<a href="dashboard.html" data-i18n="nav.impact">Impact</a>
<a href="cop31.html" data-i18n="nav.cop31">COP31</a>
<a href="areas.html" data-i18n="nav.areas">Istanbul areas</a>
<a href="partners.html" data-i18n="nav.partners">Partner finder</a>
<a href="podcast.html" data-i18n="nav.podcast">Podcast</a>
<a href="join.html" data-i18n="nav.join">Join</a>
</nav>
<div class="nav-actions">
<div class="lang-sw"><button class="lang on" data-lang="en" type="button">EN</button><button class="lang" data-lang="fa" type="button">فا</button><button class="lang" data-lang="tr" type="button">TR</button></div>
<a class="btn small" href="join.html" data-i18n="nav.cta">Join the pilot</a>
<button class="burger" id="burger" aria-label="Menu" type="button"><span></span><span></span><span></span></button>
</div>
</div>
</header>
<main id="main">
<section class="hero">
<div class="container stagger">
<span class="kicker light" data-i18n="prog.hero.kicker">Twelve months, four phases</span>
<h1 data-i18n="prog.hero.h1">The GreenRoot program</h1>
<p class="lead" data-i18n="prog.hero.p">A structured journey from stabilization to a paid green job to the career you had before — with therapy and medicine funded by the work itself.</p>
</div>
</section>
<!-- Phases -->
<section>
<div class="container">
<div class="center rv">
<span class="kicker" data-i18n="prog.ph.kicker">The four phases</span>
<h2 class="title" data-i18n="prog.ph.h2">Your path through GreenRoot</h2>
</div>
<div class="steps mt">
<div class="step rv"><div class="num"></div><div><span class="when" data-i18n="prog.ph1w">Weeks 0–4</span><h3 data-i18n="prog.ph1t">Stabilize</h3><p data-i18n="prog.ph1p">Medical check-up and psychiatric assessment; medication-assisted treatment where indicated; a personal safety and craving plan; first meeting with Raha, your AI companion. No shifts yet — health first.</p></div></div>
<div class="step rv"><div class="num"></div><div><span class="when" data-i18n="prog.ph2w">Weeks 2–12</span><h3 data-i18n="prog.ph2t">Work & heal</h3><p data-i18n="prog.ph2p">Three supported cleanup shifts a week in a small crew with a peer mentor. Group therapy twice a week. Tokens for every shift; weekly token review with your counselor.</p></div></div>
<div class="step rv"><div class="num"></div><div><span class="when" data-i18n="prog.ph3w">Months 3–6</span><h3 data-i18n="prog.ph3t">Build</h3><p data-i18n="prog.ph3p">Move indoors or to the sorting line: materials handling, machine basics, upcycling workshop, quality control. Raha maps your skills and drafts your career-rewind plan toward your previous profession.</p></div></div>
<div class="step rv"><div class="num"></div><div><span class="when" data-i18n="prog.ph4w">Months 6–12</span><h3 data-i18n="prog.ph4t">Return</h3><p data-i18n="prog.ph4p">CV rebuild with honest gap-framing, mock interviews, a supported internship or direct placement, and the alumni network. You leave with a job and a community — not just a certificate.</p></div></div>
</div>
</div>
</section>
<!-- A day -->
<section style="background:#EFF5EA">
<div class="container">
<div class="center rv">
<span class="kicker" data-i18n="prog.day.kicker">A shift day</span>
<h2 class="title" data-i18n="prog.day.h2">Structure is the therapy</h2>
<p class="lead" data-i18n="prog.day.lead">Every hour has a purpose — that's the point.</p>
</div>
<div class="grid g4 mt">
<div class="card rv"><div class="ic green">☕</div><h3>07:30</h3><p data-i18n="prog.day.c1">Crew meet-up & check-in: mood, cravings, safety gear. Raha logs your check-in.</p></div>
<div class="card rv"><div class="ic amber">🧤</div><h3>08:00</h3><p data-i18n="prog.day.c2">Cleanup shift in park / riverbank / street. Breaks built in; mentor nearby.</p></div>
<div class="card rv"><div class="ic teal">⚖️</div><h3>11:30</h3><p data-i18n="prog.day.c3">Weigh & sort: PET, metal, paper, glass. Tokens credited on the spot.</p></div>
<div class="card rv"><div class="ic green">🧠</div><h3>13:30</h3><p data-i18n="prog.day.c4">Lunch, then group therapy, an AI session, or a skills class — your schedule.</p></div>
</div>
</div>
</section>
<!-- Economy -->
<section>
<div class="container">
<div class="center rv">
<span class="kicker" data-i18n="prog.eco.kicker">The circular economy of recovery</span>
<h2 class="title" data-i18n="prog.eco.h2">Where the money goes</h2>
</div>
<div class="grid g3 mt">
<div class="card rv"><div class="ic green">♻️</div><h3 data-i18n="prog.eco.c1t">Recycling revenue</h3><p data-i18n="prog.eco.c1p">Sold materials (PET, metal, paper, glass) plus upcycled medical products generate income for the program.</p></div>
<div class="card rv"><div class="ic amber">🪙</div><h3 data-i18n="prog.eco.c2t">Participant rewards</h3><p data-i18n="prog.eco.c2p">Fair wages plus tokens redeemable for essentials, transport, phone credit and skills courses.</p></div>
<div class="card rv"><div class="ic teal">💊</div><h3 data-i18n="prog.eco.c3t">Treatment fund</h3><p data-i18n="prog.eco.c3p">A transparent share funds each crew's therapy, psychiatric care and essential medicines — published on the Impact page.</p></div>
</div>
<div class="mt rv" style="display:flex;gap:12px;flex-wrap:wrap;justify-content:center">
<span class="badge" data-i18n="prog.b1">🧾 Open budget: crew revenue → 40% wages · 30% treatment · 30% operations</span>
<span class="badge amber" data-i18n="prog.b2">No quotas used against participants — ever</span>
<span class="badge teal" data-i18n="prog.b3">Wages at or above local minimum</span>
</div>
</div>
</section>
<!-- Waste to ward -->
<section style="background:#EFF5EA">
<div class="container">
<div class="center rv">
<span class="kicker" data-i18n="prog.wtw.kicker">Waste → ward</span>
<h2 class="title" data-i18n="prog.wtw.h2">The upcycling line: from litter to medical supplies</h2>
<p class="lead" data-i18n="prog.wtw.lead">The most symbolic job in the program: making the material of the street useful to the hospital.</p>
</div>
<figure class="hero-art rv" style="margin:26px auto 0;max-width:840px">
<img src="assets/ward-line.png" alt="Illustration of the upcycling line: bottles to medical supplies" loading="lazy" width="840" height="472">
</figure>
<div class="grid g4 mt">
<div class="card rv"><div class="ic green">🧴</div><h3 data-i18n="prog.wtw.c1t">1 · Collect & sort</h3><p data-i18n="prog.wtw.c1p">PET and HDPE plastics separated on the sorting line, weighed and logged.</p></div>
<div class="card rv"><div class="ic amber">🔪</div><h3 data-i18n="prog.wtw.c2t">2 · Clean & shred</h3><p data-i18n="prog.wtw.c2p">Wash, sanitize and shred into certified flake at the micro-factory.</p></div>
<div class="card rv"><div class="ic teal">🖨️</div><h3 data-i18n="prog.wtw.c3t">3 · Remanufacture</h3><p data-i18n="prog.wtw.c3p">With certified manufacturing partners: face shields, splint components, clinical packaging.</p></div>
<div class="card rv"><div class="ic green">🏥</div><h3 data-i18n="prog.wtw.c4t">4 · Deliver</h3><p data-i18n="prog.wtw.c4p">Supplies donated or sold to clinics; proceeds feed the treatment fund.</p></div>
</div>
<p class="center small muted mt rv" data-i18n="prog.wtw.note">Safety note: medical-grade remanufacturing happens with certified partners under regulatory standards; GreenRoot crews handle collection, sorting and pre-processing only.</p>
</div>
</section>
<!-- Raha in the program -->
<section>
<div class="container">
<div class="grid g2" style="align-items:center">
<div class="rv">
<span class="kicker" data-i18n="prog.ai.kicker">Raha, through every phase</span>
<h2 class="title" data-i18n="prog.ai.h2">An AI companion in your pocket</h2>
<p class="lead" data-i18n="prog.ai.p">Raha is with you from day one: craving SOS in the hard moments, daily mood check-ins, relapse-risk alerts shared (only with your consent) with your counselor, token wallet, and the career-rewind plan that maps your old job skills back into reach.</p>
<a class="btn mt" href="ai.html" data-i18n="prog.ai.b">Try the Raha demo</a>
</div>
<div class="card rv"><div class="ic teal">🤖</div><ul style="margin-top:0">
<li data-i18n="prog.ai.l1">Craving SOS: urge-surfing coach, 24/7</li>
<li data-i18n="prog.ai.l2">Mood & sleep check-ins with relapse-risk alerts</li>
<li data-i18n="prog.ai.l3">Token wallet, goals and milestone celebrations</li>
<li data-i18n="prog.ai.l4">Career rewind: résumé, skills map, interview practice</li>
<li data-i18n="prog.ai.l5">Private by design: opt-in, encrypted, participant-owned</li>
</ul></div>
</div>
</div>
</section>
<!-- CTA -->
<section style="padding-top:0">
<div class="container">
<div class="cta-band rv">
<h2 data-i18n="prog.cta.h2">Ready for a structured year?</h2>
<p data-i18n="prog.cta.p">Spots in the pilot cohort are limited. Talk to us — no commitment needed.</p>
<a class="btn" href="join.html" data-i18n="nav.cta">Join the pilot</a>
</div>
</div>
</section>
</main>
<footer>
<div class="container">
<div class="grid g3">
<div>
<div class="fbrand"><svg class="logo" viewBox="0 0 48 48" fill="none" width="34" height="34"><circle cx="24" cy="24" r="23" fill="#0E4D36"/><path d="M24 38c0-9 2-14 9-19-1 8-3 13-9 19Z" fill="#A3E635"/><path d="M24 38c0-9-2-14-9-19 1 8 3 13 9 19Z" fill="#4ADE80"/><path d="M24 38V22" stroke="#D9F99D" stroke-width="2" stroke-linecap="round"/></svg>GreenRoot</div>
<p data-i18n="footer.tag">Healing people, healing the planet — recovery through environmental work, funded by recycling, guided by AI.</p>
</div>
<div>
<h4 data-i18n="footer.links">Explore</h4>
<p><a href="science.html" data-i18n="nav.science">Science</a> · <a href="program.html" data-i18n="nav.program">Program</a> · <a href="ai.html" data-i18n="nav.ai">AI companion</a></p>
<p class="mt-s"><a href="dashboard.html" data-i18n="nav.impact">Impact</a>
<a href="cop31.html" data-i18n="nav.cop31">COP31</a> · <a href="areas.html" data-i18n="nav.areas">Areas</a> · <a href="partners.html" data-i18n="nav.partners">Partner finder</a>
<a href="join.html" data-i18n="nav.join">Join</a></p>
</div>
<div>
<h4 data-i18n="footer.contact">Contact</h4>
<p>hello@greenroot.example</p>
<p data-i18n="footer.contact2">Frankfurt · Tehran (pilot cities)</p>
<p class="mt-s" style="font-size:12.5px">🐙 <a href="https://github.com/Websites-by-AI/greenroot" target="_blank" rel="noopener">GitHub</a> · ☁️ <a href="https://greenroot-af0.pages.dev" target="_blank" rel="noopener">Cloudflare Pages</a> · 🤗 <a href="https://sosa123456-greenroot.static.hf.space" target="_blank" rel="noopener">Hugging Face</a></p>
</div>
</div>
<p class="disclaimer" data-i18n="footer.disclaimer">GreenRoot is a concept prototype. Nothing on this site is medical advice. Addiction is a medical condition — always work with qualified doctors and licensed treatment services. In an emergency, contact your local emergency number.</p>
<p class="copy">© <span id="year">2026</span> GreenRoot.</p>
</div>
</footer>
<script>
/* GreenRoot i18n dictionary — English & فارسی */
window.I18N = {
en: {
"title.home":"GreenRoot — Healing people, healing the planet",
"title.science":"The Science — GreenRoot",
"title.program":"The Program — GreenRoot",
"title.ai":"Raha, the AI companion — GreenRoot",
"title.dashboard":"Impact dashboard — GreenRoot",
"title.join":"Join us — GreenRoot",
"nav.home":"Home","nav.science":"Science","nav.program":"Program","nav.ai":"AI companion","nav.impact":"Impact","nav.join":"Join","nav.cta":"Join the pilot",
"footer.tag":"Healing people, healing the planet — recovery through environmental work, funded by recycling, guided by AI.",
"footer.links":"Explore","footer.contact":"Contact","footer.contact2":"Frankfurt · Tehran (pilot cities)",
"footer.disclaimer":"GreenRoot is a concept prototype. Nothing on this site is medical advice. Addiction is a medical condition — always work with qualified doctors and licensed treatment services. In an emergency, contact your local emergency number.",
"home.hero.kicker":"Addiction recovery × green work × AI",
"home.hero.h1":"Heal yourself.<br>Heal your city.",
"home.hero.p":"GreenRoot turns recovery from addiction into paid environmental work: every bag of waste collected funds therapy and medicine — and an AI companion guides each person back to the career they had before.",
"home.hero.cta1":"Explore the program","home.hero.cta2":"Try the AI companion",
"home.chip1":"people in recovery","home.chip2":"waste collected","home.chip3":"less relapse at 6 months",
"home.loop.title":"The GreenRoot Loop",
"home.loop.n1":"Collect","home.loop.n2":"Earn","home.loop.n3":"Heal","home.loop.n4":"Return",
"home.prob.kicker":"Why GreenRoot exists","home.prob.h2":"Three crises, one root",
"home.prob.lead":"Addiction, unemployment and waste feed each other. GreenRoot attacks all three at once.",
"home.prob.c1t":"Addiction thrives in emptiness",
"home.prob.c1p":"Recovery fails when days are empty — no structure, no purpose, no people. Most relapses happen in long, unstructured hours alone.",
"home.prob.c2t":"The job trap",
"home.prob.c2p":"Employers reject gaps in a CV, so people in recovery stay jobless — and joblessness pushes them back to use. The door stays closed from both sides.",
"home.prob.c3t":"Cities are drowning in waste",
"home.prob.c3p":"Parks, riverbanks and streets collect litter faster than cities can clean it. Meanwhile recyclable material worth millions is lost every year.",
"home.sol.kicker":"Our answer","home.sol.h2":"One program, three engines",
"home.sol.lead":"Each engine makes the other two stronger. That is the whole idea.",
"home.sol.c1t":"Evidence-based recovery",
"home.sol.c1p":"Contingency management, behavioral activation and therapeutic community — psychology's most proven tools for addiction, built into every workday.",
"home.sol.c1l":"Read the science →",
"home.sol.c2t":"Paid green work",
"home.sol.c2p":"Real wages for cleanup crews, sorting lines and upcycling workshops. Recycling income funds therapy, medicine — and the participants themselves.",
"home.sol.c2l":"See the program →",
"home.sol.c3t":"AI career rewind",
"home.sol.c3p":"Our AI companion, Raha, coaches cravings, tracks mood and maps each person's skills back to their previous profession — the job they had before addiction.",
"home.sol.c3l":"Meet Raha →",
"home.med.kicker":"From street to ward","home.med.h2":"Waste in, medicine out",
"home.med.lead":"The trash participants collect literally becomes part of their cure — twice.",
"home.med.c1t":"1. Recycling income funds treatment",
"home.med.c1p":"Sold recyclables — PET, metal, paper, glass — generate revenue. That revenue pays for therapy sessions, psychiatric care and essential medicines for the crew. Every kilo collected is a kilo of treatment funded.",
"home.med.c2t":"2. Materials become medical supplies",
"home.med.c2p":"In our upcycling line, collected plastics are cleaned, shredded and re-manufactured — with certified partners — into medical products: face shields, splint components and sterile-grade packaging for clinics.",
"home.s1":"People in recovery","home.s2":"Waste collected & sorted","home.s3":"Relapse reduction at 6 months*","home.s4":"Toward therapy & medicine*",
"home.demonote":"*Pilot cohort, demo figures for the concept.",
"home.aud.kicker":"Who it's for","home.aud.h2":"Everybody wins",
"home.aud.c1t":"For you in recovery","home.aud.c1p":"Structure, income, therapy and a path back to your old career — with dignity.",
"home.aud.c2t":"For families","home.aud.c2p":"A safe, monitored program your loved one can be proud to be part of.",
"home.aud.c3t":"For cities & companies","home.aud.c3p":"Cleaner public space, ESG impact and a proven social-return model.",
"home.aud.c4t":"For partners & investors","home.aud.c4p":"A dual-revenue circular economy with measurable health outcomes.",
"home.cta.h2":"One bag of trash. One brick of recovery.",
"home.cta.p":"Join the pilot city program — as a participant, a partner, or a supporter.",
"sci.hero.kicker":"The psychology behind the model",
"sci.hero.h1":"Why work in nature heals addiction",
"sci.hero.p":"GreenRoot is not \"a job as therapy\" as a slogan. Every element of the program maps onto a well-studied mechanism in addiction science.",
"sci.m1t":"Contingency management & the token economy",
"sci.m1p":"Contingency management (CM) — rewarding drug-free behaviour immediately and consistently — is among the most evidence-based psychosocial treatments for substance use disorder, especially stimulants. GreenRoot is a working token economy: every shift, every sorted kilo and every clean screen earns tokens with real value (medicine credit, essentials, skills courses).",
"sci.m2t":"Behavioral activation & meaningful work",
"sci.m2p":"Behavioral activation shows that scheduling rewarding, value-driven activities lifts mood and reduces substance use as effectively as some formal therapies. Supported-employment research goes further: for people in recovery, meaningful work improves abstinence, quality of life and treatment retention.",
"sci.m3t":"Rewiring the reward system",
"sci.m3p":"Addiction hijacks the brain's dopamine loop: cue → use → relief. Recovery means building a new loop: cue → routine → reward. The cleanup shift does exactly that — stress and empty hours (the cues) are replaced by crew work (the routine), and the payoff is visible, immediate and social: pay, tokens, a clean street, pride.",
"sci.m4t":"Green care: nature as medicine",
"sci.m4p":"Time in green space measurably lowers cortisol and rumination and restores attention (\"attention restoration theory\"). Outdoor physical work adds exercise — which trials link to reduced craving intensity and better sleep. Nature is not decoration in GreenRoot; it is the treatment room.",
"sci.m5t":"Community & identity",
"sci.m5p":"Therapeutic communities — where people recover together, in roles that matter — have decades of evidence behind them. In GreenRoot every member is not \"a patient\" but a crew member with a contribution the whole city can see. Identity shifts from addict to environmental worker; stigma shrinks with every clean park.",
"sci.m6t":"The dual-impact loop",
"sci.m6p":"Each element feeds the next: work → income → treatment → stability → better work → lower relapse risk. Meanwhile the city gets cleaner and clinics get supplies. Recovery and environment compound like interest.",
"sci.flow.kicker":"The mechanism, end to end","sci.flow.h2":"From craving to career, in one loop",
"sci.flow.f1":"Cue: empty day, craving","sci.flow.f1s":"High-risk moment",
"sci.flow.f2":"Crew shift outdoors","sci.flow.f2s":"Structure + exercise + nature",
"sci.flow.f3":"Wages + tokens","sci.flow.f3s":"Immediate, earned reward",
"sci.flow.f4":"Therapy & medicine funded","sci.flow.f4s":"Clinical care continues",
"sci.flow.f5":"Raha AI coaching","sci.flow.f5s":"Cravings, mood, relapse alerts",
"sci.flow.f6":"Return to old career","sci.flow.f6s":"Identity restored",
"sci.ev.kicker":"Evidence base","sci.ev.h2":"What the research says",
"sci.ev.lead":"A summary of the key findings GreenRoot is built on.",
"sci.ev.th1":"Intervention","sci.ev.th2":"Evidence in brief","sci.ev.th3":"In GreenRoot",
"sci.ev.r1a":"Contingency management",
"sci.ev.r1b":"Strong randomized-trial evidence; reliably increases abstinence and treatment retention, including for stimulant use disorder.",
"sci.ev.r1c":"Token economy with real rewards for shifts and milestones",
"sci.ev.r2a":"Supported employment / social enterprise",
"sci.ev.r2b":"Work-integrated programs improve employment outcomes, self-esteem and quality of life for people in recovery.",
"sci.ev.r2c":"Paid cleanup, sorting and upcycling roles",
"sci.ev.r3a":"Behavioral activation",
"sci.ev.r3b":"Structured, value-driven activity reduces depressive symptoms and substance use.",
"sci.ev.r3c":"Scheduled meaningful shifts replace empty hours",
"sci.ev.r4a":"Nature / green exercise",
"sci.ev.r4b":"Green-space time lowers stress hormones and improves mood and attention; exercise is linked to reduced craving.",
"sci.ev.r4c":"All shifts outdoors in parks, riverbanks and streets",
"sci.ev.r5a":"Therapeutic community",
"sci.ev.r5b":"Peer community with meaningful roles shows long-term gains in abstinence and social reintegration.",
"sci.ev.r5c":"Crew identity, peer mentors, alumni network",
"sci.ev.note":"GreenRoot cites established scientific literature to explain its design; it does not claim these studies evaluated GreenRoot itself. Pilot outcomes shown elsewhere are demo figures.",
"sci.eth.t1":"Dignity first — our ethical red lines",
"sci.eth.l1":"Real wages, never \"therapy tokens\" alone.",
"sci.eth.l2":"Therapy and medicine are never conditional on work output or quotas.",
"sci.eth.l3":"Trauma-informed supervision; the pace is set by the participant's health team.",
"sci.eth.l4":"Full consent and privacy: participation data is never shared with police or employers without consent.",
"sci.eth.l5":"Recovery comes first — a hard day is a reason to rest, not a reason to lose your place.",
"sci.eth.t2":"What GreenRoot is not",
"sci.eth.l6":"Not a replacement for medical detox or psychiatric care — we fund and coordinate it.",
"sci.eth.l7":"Not unpaid labor disguised as therapy.",
"sci.eth.l8":"Not a surveillance program — Raha the AI is opt-in and its data belongs to the participant.",
"sci.eth.l9":"Not a cure — addiction is chronic; we build the structure that makes remission stick.",
"sci.cta.h2":"Science is the root. People are the growth.",
"sci.cta.p":"See how the mechanisms become a real 12-month program.",
"sci.cta.b":"Explore the program",
"prog.hero.kicker":"Twelve months, four phases",
"prog.hero.h1":"The GreenRoot program",
"prog.hero.p":"A structured journey from stabilization to a paid green job to the career you had before — with therapy and medicine funded by the work itself.",
"prog.ph.kicker":"The four phases","prog.ph.h2":"Your path through GreenRoot",
"prog.ph1w":"Weeks 0–4","prog.ph1t":"Stabilize",
"prog.ph1p":"Medical check-up and psychiatric assessment; medication-assisted treatment where indicated; a personal safety and craving plan; first meeting with Raha, your AI companion. No shifts yet — health first.",
"prog.ph2w":"Weeks 2–12","prog.ph2t":"Work & heal",
"prog.ph2p":"Three supported cleanup shifts a week in a small crew with a peer mentor. Group therapy twice a week. Tokens for every shift; weekly token review with your counselor.",
"prog.ph3w":"Months 3–6","prog.ph3t":"Build",
"prog.ph3p":"Move to the sorting line: materials handling, machine basics, the upcycling workshop, quality control. Raha maps your skills and drafts your career-rewind plan toward your previous profession.",
"prog.ph4w":"Months 6–12","prog.ph4t":"Return",
"prog.ph4p":"CV rebuild with honest gap-framing, mock interviews, a supported internship or direct placement, and the alumni network. You leave with a job and a community — not just a certificate.",
"prog.day.kicker":"A shift day","prog.day.h2":"Structure is the therapy",
"prog.day.lead":"Every hour has a purpose — that's the point.",
"prog.day.c1":"Crew meet-up & check-in: mood, cravings, safety gear. Raha logs your check-in.",
"prog.day.c2":"Cleanup shift in park / riverbank / street. Breaks built in; mentor nearby.",
"prog.day.c3":"Weigh & sort: PET, metal, paper, glass. Tokens credited on the spot.",
"prog.day.c4":"Lunch, then group therapy, an AI session, or a skills class — your schedule.",
"prog.eco.kicker":"The circular economy of recovery","prog.eco.h2":"Where the money goes",
"prog.eco.c1t":"Recycling revenue",
"prog.eco.c1p":"Sold materials (PET, metal, paper, glass) plus upcycled medical products generate income for the program.",
"prog.eco.c2t":"Participant rewards",
"prog.eco.c2p":"Fair wages plus tokens redeemable for essentials, transport, phone credit and skills courses.",
"prog.eco.c3t":"Treatment fund",
"prog.eco.c3p":"A transparent share funds each crew's therapy, psychiatric care and essential medicines — published on the Impact page.",
"prog.b1":"🧾 Open budget: crew revenue → 40% wages · 30% treatment · 30% operations",
"prog.b2":"No quotas used against participants — ever",
"prog.b3":"Wages at or above local minimum",
"prog.wtw.kicker":"Waste → ward",
"prog.wtw.h2":"The upcycling line: from litter to medical supplies",
"prog.wtw.lead":"The most symbolic job in the program: making the material of the street useful to the hospital.",
"prog.wtw.c1t":"1 · Collect & sort","prog.wtw.c1p":"PET and HDPE plastics separated on the sorting line, weighed and logged.",
"prog.wtw.c2t":"2 · Clean & shred","prog.wtw.c2p":"Wash, sanitize and shred into certified flake at the micro-factory.",
"prog.wtw.c3t":"3 · Remanufacture","prog.wtw.c3p":"With certified manufacturing partners: face shields, splint components, clinical packaging.",
"prog.wtw.c4t":"4 · Deliver","prog.wtw.c4p":"Supplies donated or sold to clinics; proceeds feed the treatment fund.",
"prog.wtw.note":"Safety note: medical-grade remanufacturing happens with certified partners under regulatory standards; GreenRoot crews handle collection, sorting and pre-processing only.",
"prog.ai.kicker":"Raha, through every phase","prog.ai.h2":"An AI companion in your pocket",
"prog.ai.p":"Raha is with you from day one: craving SOS in the hard moments, daily mood check-ins, relapse-risk alerts shared (only with your consent) with your counselor, token wallet, and the career-rewind plan that maps your old job skills back into reach.",
"prog.ai.b":"Try the Raha demo",
"prog.ai.l1":"Craving SOS: urge-surfing coach, 24/7",
"prog.ai.l2":"Mood & sleep check-ins with relapse-risk alerts",
"prog.ai.l3":"Token wallet, goals and milestone celebrations",
"prog.ai.l4":"Career rewind: résumé, skills map, interview practice",
"prog.ai.l5":"Private by design: opt-in, encrypted, participant-owned",
"prog.cta.h2":"Ready for a structured year?",
"prog.cta.p":"Spots in the pilot cohort are limited. Talk to us — no commitment needed.",
"ai.hero.kicker":"AI that walks beside you","ai.hero.h1":"Meet Raha",
"ai.hero.p":"Raha (رهاء — \"freedom\") is GreenRoot's AI recovery companion: a craving coach in the hard moments, a mood tracker between sessions, and a career guide that leads you back to the job you had before addiction.",
"ai.hero.cta1":"Try the demo chat","ai.hero.cta2":"Career rewind demo",
"ai.hero.side":"\"Cravings last about 20 minutes. You never have to face one alone.\"",
"ai.f.kicker":"What Raha does","ai.f.h2":"Six jobs, one companion",
"ai.f.c1t":"Craving SOS","ai.f.c1p":"Urge-surfing coach, breathing exercises and a delay timer — plus one-tap call to your buddy or counselor when it's too much.",
"ai.f.c2t":"Mood & relapse watch","ai.f.c2p":"Daily 30-second check-ins. Raha spots risky patterns — bad sleep, missed shifts, isolation — and alerts your counselor (only if you opt in).",
"ai.f.c3t":"Token wallet & goals","ai.f.c3p":"See tokens earned per shift, set goals (a course, a bicycle, family gifts) and celebrate milestones — small wins, wired into the habit loop.",
"ai.f.c4t":"Career rewind","ai.f.c4p":"The signature feature: Raha maps the job you had before addiction, finds your skill gaps, builds a refresh plan and practises interviews with you.",
"ai.f.c5t":"Family bridge","ai.f.c5p":"Opt-in updates for family: milestones reached, shifts worked, mood trends — rebuilding trust with facts, not promises.",
"ai.f.c6t":"Private by design","ai.f.c6p":"Your data belongs to you. Encrypted, opt-in for every share, never shared with police or employers. Delete everything with one tap.",
"ai.demo.kicker":"Interactive demo","ai.demo.h2":"Talk to Raha (prototype)",
"ai.demo.lead":"This is a scripted demo that runs fully offline in your browser — the real Raha will be an AI model with human oversight.",
"ai.chat.sub":"GreenRoot AI companion · demo",
"ai.chat.ph":"Type a message…","ai.chat.send":"Send",
"ai.cr.kicker":"Career rewind","ai.cr.h2":"Back to the job you had before",
"ai.cr.lead":"Pick a previous profession and see a sample 3-step rewind plan Raha would build with you.",
"ai.cr.j1":"Driver","ai.cr.j2":"Nurse / health worker","ai.cr.j3":"Accountant","ai.cr.j4":"Mechanic","ai.cr.j5":"Teacher","ai.cr.j6":"Cook",
"ai.mood.t":"Daily check-in (try it)",
"ai.mood.s":"Tap today's mood — Raha tracks the trend and watches for relapse-risk patterns.",
"ai.mood.hint":"Your streak and trend will appear here.",
"ai.priv.t":"Safety & honesty",
"ai.priv.l1":"Raha is an assistant, not a therapist — licensed humans make clinical decisions.",
"ai.priv.l2":"Crisis messages always route to a human, fast.",
"ai.priv.l3":"This demo is scripted and stores nothing.",
"ai.priv.l4":"The production version would require clinical validation and strict data-protection review (GDPR and local law).",
"ai.cta.h2":"Twenty minutes. One craving. One companion.",
"ai.cta.p":"Join the pilot and Raha walks with you from the first shift to the first day back at your old job.",
"dash.hero.badge":"📊 Demo data — pilot concept",
"dash.hero.h1":"Impact dashboard",
"dash.hero.p":"Recovery is only real if you can measure it. This dashboard shows the numbers GreenRoot publishes for every cohort — here with demo data.",
"dash.s1":"People in program","dash.s2":"Waste collected","dash.s3":"To therapy & medicine","dash.s4":"Medical items produced",
"dash.s5":"GreenRoot 6-month relapse*","dash.s6":"Typical 6-month relapse*","dash.s7":"CO₂e saved by recycling","dash.s8":"Program completion",
"dash.note":"*Illustrative comparison: internal pilot cohort vs. commonly reported 6-month relapse ranges. Demo figures, not clinical claims.",
"dash.ch1.t":"Monthly collection (kg)","dash.ch1.s":"Crew output grows as recovery grows — momentum you can weigh.",
"dash.ch2.t":"Waste mix (%)","dash.ch2.s":"What the crews collect — and what each stream becomes.",
"dash.ch2.t1":"18.4 t","dash.ch2.t2":"collected",
"dash.ch3.t":"Treatment fund allocation","dash.ch3.s":"Where the recycling money goes, per month (demo).",
"dash.ch3.l1":"Therapy sessions","dash.ch3.l2":"Medicines","dash.ch3.l3":"Coordination",
"dash.ch4.t":"Monthly report — pilot cohort","dash.ch4.s":"Published openly every month.",
"dash.ch4.th1":"Month","dash.ch4.th2":"Active","dash.ch4.th3":"kg","dash.ch4.th4":"Fund (€)",
"dash.tr.c1t":"Open budget","dash.tr.c1p":"Every euro of recycling revenue is traced: wages, treatment fund, operations. Published monthly.",
"dash.tr.c2t":"Independent evaluation","dash.tr.c2p":"Health outcomes are assessed with university partners, not by us alone.",
"dash.tr.c3t":"Privacy-safe metrics","dash.tr.c3p":"All participant data is aggregated and anonymized. No individual is ever visible in these numbers.",
"dash.cta.h2":"Want this dashboard for your city?",
"dash.cta.p":"Municipalities, waste companies and clinics: let's build a cohort together.",
"dash.cta.b":"Partner with us",
"join.hero.kicker":"Join GreenRoot","join.hero.h1":"There's a place for you here",
"join.hero.p":"Whether you're fighting for your own recovery, supporting someone you love, running a city — or ready to fund the model — start here.",
"join.a.c1t":"I need help","join.a.c1p":"Confidential, no commitment. We'll call you back within 48 hours and explain everything — in your language.",
"join.a.c2t":"I'm a family member","join.a.c2p":"Ask us anything. We'll explain the program, safety rules and how family updates work.",
"join.a.c3t":"City / company","join.a.c3p":"Host a crew, supply waste streams, or sponsor a cohort. Measurable ESG with human depth.",
"join.a.c4t":"Investor / partner","join.a.c4p":"Circular revenue plus health outcomes. Ask for the full pilot report and model.",
"join.form.kicker":"Contact","join.form.h2":"Send us a message",
"join.form.lead":"Demo form — in production this connects to our confidential intake line.",
"join.form.name":"Your name (or a nickname)","join.form.contact":"Email or phone","join.form.role":"I am…","join.form.msg":"Message","join.form.send":"Send message",
"join.form.o1":"Someone in recovery","join.form.o2":"A family member","join.form.o3":"A city / municipality","join.form.o4":"A company / recycler","join.form.o5":"An investor / NGO","join.form.o6":"Just curious",
"join.form.ok":"✓ Thank you! This demo doesn't send data anywhere — but in production our team would contact you within 48 hours, confidentially.",
"join.faq.h2":"Honest questions, honest answers",
"join.q1":"Is this real employment or just \"therapy theater\"?",
"join.a1":"Real employment. Participants sign a contract, earn at or above local minimum wage, and tokens are additional rewards on top — never a replacement for pay.",
"join.q2":"What if I relapse during the program?",
"join.a2":"You keep your place. Relapse is part of how addiction works medically. We pause the work, restart clinical support, and return when your health team agrees. You are not fired for being sick.",
"join.q3":"Do I have to quit my medication to join?",
"join.a3":"No — the opposite. Medication-assisted treatment is funded and encouraged where medically indicated. Our program coordinates with your doctor.",
"join.q4":"Will the AI report me to anyone?",
"join.a4":"Never without your consent. Raha's data belongs to you. Only opt-in alerts to your counselor exist, and crisis escalations go to humans who care for you — not to authorities.",
"join.q5":"Can I really go back to my old career?",
"join.a5":"In many cases, yes. Raha's career-rewind plan rebuilds skills honestly, frames the gap truthfully, and arranges supported internships with partner employers who hire for ability, not history.",
"join.q6":"Which cities does the pilot run in?",
"join.a6":"We are scoping pilot cohorts in Frankfurt and Tehran. Sign up and we'll tell you what's active near you.",
"join.crisis.t":"🆘 In crisis right now?",
"join.crisis.p":"If you or someone near you is in immediate danger (overdose, suicidal thoughts), contact your local emergency number now. In Iran, the state social-emergency addiction hotline is 09628. In Germany, you can call 112 for emergencies. You matter. One call can start everything."
},
fa: {
"title.home":"گرینروت — انسانها را شفا بده، سیاره را شفا بده",
"title.science":"علم پشت گرینروت — گرینروت",
"title.program":"برنامه — گرینروت",
"title.ai":"رها، همیار هوش مصنوعی — گرینروت",
"title.dashboard":"داشبورد اثرگذاری — گرینروت",
"title.join":"به ما بپیوندید — گرینروت",
"nav.home":"خانه","nav.science":"علم","nav.program":"برنامه","nav.ai":"همیار هوش مصنوعی","nav.impact":"اثرگذاری","nav.join":"پیوستن","nav.cta":"عضویت در پایلوت",
"footer.tag":"انسانها را شفا میدهیم، سیاره را هم — بهبودی از طریق کار محیطزیستی، تأمینشده با بازیافت، هدایتشده با هوش مصنوعی.",
"footer.links":"بخشها","footer.contact":"تماس","footer.contact2":"فرانکفورت · تهران (شهرهای پایلوت)",
"footer.disclaimer":"گرینروت یک نمونهٔ مفهومی است. هیچ محتوایی در این سایت توصیهٔ پزشکی نیست. اعتیاد یک بیماری پزشکی است — همیشه با پزشکان واجد شرایط و مراکز درمانی مجاز همکاری کنید. در موارد اورژانسی با شمارهٔ اورژانس محلی خود تماس بگیرید.",
"home.hero.kicker":"بهبودی از اعتیاد × کار سبز × هوش مصنوعی",
"home.hero.h1":"خودت را شفا بده.<br>شهرت را شفا بده.",
"home.hero.p":"گرینروت بهبودی از اعتیاد را به کار محیطزیستیِ حقوقدار تبدیل میکند: هر کیسه زبالهای که جمع میشود، هزینهٔ درمان و دارو میشود — و همیار هوش مصنوعی، هر فرد را به شغلی که روزی داشت برمیگرداند.",
"home.hero.cta1":"برنامه را ببینید","home.hero.cta2":"همیار هوش مصنوعی را امتحان کنید",
"home.chip1":"فرد در مسیر بهبودی","home.chip2":"کیلوگرم زباله جمعآوریشده","home.chip3":"کاهش لغزش در ۶ ماه",
"home.loop.title":"چرخهٔ گرینروت",
"home.loop.n1":"جمعآوری","home.loop.n2":"درآمد","home.loop.n3":"درمان","home.loop.n4":"بازگشت",
"home.prob.kicker":"چرا گرینروت وجود دارد","home.prob.h2":"سه بحران، یک ریشه",
"home.prob.lead":"اعتیاد، بیکاری و زباله به هم غذا میدهند. گرینروت هر سه را همزمان هدف میگیرد.",
"home.prob.c1t":"اعتیاد در خلأ رشد میکند",
"home.prob.c1p":"وقتی روزها خالی باشند، بهبود شکست میخورد — نه نظمی، نه هدفی، نه کسی. بیشتر لغزشها در ساعات طولانیِ بیساختار و در تنهایی رخ میدهند.",
"home.prob.c2t":"تلهٔ شغل",
"home.prob.c2p":"کارفرماها جای خالی رزومه را نمیپذیرند؛ پس فردِ در حال بهبودی بیکار میماند — و بیکاری او را به مصرف برمیگرداند. در، از هر دو سو بسته است.",
"home.prob.c3t":"شهرها در زباله غرق میشوند",
"home.prob.c3p":"پارکها، حاشیهٔ رودها و خیابانها سریعتر از توان شهرداریها آلوده میشوند. در همین حال، مواد بازیافتیِ بهارزش میلیونها هر سال از دست میرود.",
"home.sol.kicker":"پاسخ ما","home.sol.h2":"یک برنامه، سه موتور",
"home.sol.lead":"هر موتور، دو موتور دیگر را قویتر میکند. کل ایده همین است.",
"home.sol.c1t":"بهبودی مبتنی بر شواهد",
"home.sol.c1p":"مدیریت پیامد، فعالسازی رفتاری و جامعهٔ درمانی — اثباتشدهترین ابزارهای روانشناسی در اعتیاد، درون هر روزِ کاری.",
"home.sol.c1l":"علم پشت آن را بخوانید ←",
"home.sol.c2t":"کار سبز حقوقدار",
"home.sol.c2p":"دستمزد واقعی برای تیمهای پاکسازی، خطوط جداسازی و کارگاههای بازیافت خلاق. درآمد بازیافت، درمان و دارو — و خودِ اعضا — را تأمین میکند.",
"home.sol.c2l":"برنامه را ببینید ←",
"home.sol.c3t":"بازگشت شغلی با هوش مصنوعی",
"home.sol.c3p":"همیار هوش مصنوعی ما، رها، برای هوسها مربیگری میکند، خلق را رصد میکند و مهارتهای هر فرد را به حرفهٔ قبلیاش وصل میکند — شغلی که قبل از اعتیاد داشت.",
"home.sol.c3l":"با رها آشنا شوید ←",
"home.med.kicker":"از خیابان تا بیمارستان","home.med.h2":"زباله داخل، دارو خارج",
"home.med.lead":"زبالهای که اعضا جمع میکنند، واقعاً بخشی از درمان خودشان میشود — دو بار.",
"home.med.c1t":"۱. درآمد بازیافت، هزینهٔ درمان",
"home.med.c1p":"فروش مواد بازیافتی — پت، فلز، کاغذ، شیشه — درآمد ایجاد میکند. این درآمد، جلسات درمان، مراقبت روانپزشکی و داروهای ضروری تیم را تأمین میکند. هر کیلو زباله، یک واحد درمانِ تأمینشده است.",
"home.med.c2t":"۲. مواد، تبدیل به تجهیزات پزشکی",
"home.med.c2p":"در خط بازیافت خلاق ما، پلاستیکهای جمعشده شسته، خرد و — با شرکای معتبر — به محصولات پزشکی تبدیل میشوند: شیلد صورت، قطعات اسپلینت و بستهبندی باکیفیت برای کلینیکها.",
"home.s1":"فرد در بهبودی","home.s2":"زباله جمعآوری و جداسازیشده","home.s3":"کاهش لغزش در ۶ ماه*","home.s4":"صرفشده برای درمان و دارو*",
"home.demonote":"*گروه پایلوت؛ ارقام نمایشی برای معرفی مفهوم.",
"home.aud.kicker":"برای چه کسی","home.aud.h2":"همه برندهاند",
"home.aud.c1t":"برای تو که در بهبودی هستی","home.aud.c1p":"نظم، درآمد، درمان و مسیری برای بازگشت به شغل قبلیات — با عزت.",
"home.aud.c2t":"برای خانوادهها","home.aud.c2p":"برنامهای امن و تحت نظارت که عزیزتان به بودن در آن افتخار کند.",
"home.aud.c3t":"برای شهرها و شرکتها","home.aud.c3p":"فضای عمومی تمیزتر، اثر ESG قابلاندازهگیری و مدلی با بازده اجتماعی اثباتشده.",
"home.aud.c4t":"برای شرکا و سرمایهگذاران","home.aud.c4p":"اقتصاد چرخشی با درآمد دوگانه و پیامدهای سلامتِ قابلسنجش.",
"home.cta.h2":"یک کیسه زباله. یک آجر بهبودی.",
"home.cta.p":"به برنامهٔ پایلوت شهری بپیوندید — بهعنوان عضو، شریک یا حامی.",
"sci.hero.kicker":"روانشناسی پشت این مدل",
"sci.hero.h1":"چرا کار در طبیعت، اعتیاد را شفا میدهد",
"sci.hero.p":"گرینروت شعارِ «کار بهجای درمان» نیست. هر عنصر برنامه به یک سازوکارِ مطالعهشده در علم اعتیاد گره خورده است.",
"sci.m1t":"مدیریت پیامد و اقتصاد توکنی",
"sci.m1p":"مدیریت پیامد (CM) — پاداش دادنِ فوری و منظم به رفتار پرهیز از مصرف — از اثباتشدهترین درمانهای روانی-اجتماعی اختلال مصرف مواد است، بهویژه برای محرکها. گرینروت یک اقتصاد توکنیِ در حال کار است: هر شیفت، هر کیلوی جداسازیشده و هر تست تمیز، توکنی با ارزش واقعی میسازد (اعتبار دارو، اقلام ضروری، دورههای مهارتی).",
"sci.m2t":"فعالسازی رفتاری و کارِ معنادار",
"sci.m2p":"فعالسازی رفتاری نشان میدهد برنامهریزی فعالیتهای لذتبخش و همراستا با ارزشها، خلق را بهبود میدهد و مصرف مواد را بهاندازهٔ برخی درمانهای رسمی کاهش میدهد. پژوهشهای اشتغال حمایتی هم فراتر میروند: برای افراد در بهبودی، کارِ معنادار، پرهیز از مصرف، کیفیت زندگی و ماندگاری در درمان را بهتر میکند.",
"sci.m3t":"بازسازی سیستم پاداش مغز",
"sci.m3p":"اعتیاد حلقهٔ دوپامین مغز را میدزدد: محرک ← مصرف ← تسکین. بهبود یعنی ساختن حلقهای تازه: محرک ← عمل ← پاداش. شیفت پاکسازی دقیقاً همین است — استرس و ساعتهای خالی (محرکها) با کار تیمی (عمل) جایگزین میشود و پاداش، مرئی و فوری و اجتماعی است: دستمزد، توکن، خیابانی تمیز، غرور.",
"sci.m4t":"مراقبت سبز: طبیعت بهمثابهٔ دارو",
"sci.m4p":"وقت گذراندن در فضای سبز بهطور قابلاندازهگیری کورتیزول و نشخوار ذهنی را کم و توجه را بازیابی میکند (نظریهٔ بازیابی توجه). کارِ بدنی در فضای باز، ورزش را هم اضافه میکند — که کارآزماییها آن را به کاهش شدت هوس و خواب بهتر پیوند میزنند. طبیعت در گرینروت تزئین نیست؛ اتاق درمان است.",
"sci.m5t":"جامعه و هویت",
"sci.m5p":"جامعههای درمانی — جایی که افراد با هم و در نقشهای اثرگذار بهبود مییابند — دههها شواهد پشتشان است. در گرینروت هر عضو «بیمار» نیست؛ عضو تیمی است که سهمش را همهٔ شهر میبیند. هویت از «معتاد» به «کارگر محیطزیست» تغییر میکند و با هر پارک تمیز، انگ اجتماعی کوچکتر میشود.",
"sci.m6t":"حلقهٔ اثر دوگانه",
"sci.m6p":"هر حلقه، حلقهٔ بعد را تغذیه میکند: کار ← درآمد ← درمان ← ثبات ← کار بهتر ← کاهش خطر لغزش. در همین حین شهر تمیزتر میشود و کلینیکها تجهیزات میگیرند. بهبودی و محیطزیست مثل بهرهٔ مرکب با هم رشد میکنند.",
"sci.flow.kicker":"سازوکار، از ابتدا تا انتها","sci.flow.h2":"از هوس تا حرفه، در یک چرخه",
"sci.flow.f1":"محرک: روز خالی، هوس","sci.flow.f1s":"لحظهٔ پرخطر",
"sci.flow.f2":"شیفت تیمی در فضای باز","sci.flow.f2s":"نظم + ورزش + طبیعت",
"sci.flow.f3":"دستمزد + توکن","sci.flow.f3s":"پاداش فوری و اودهشده",
"sci.flow.f4":"درمان و دارو تأمین شد","sci.flow.f4s":"مراقبت بالینی ادامه دارد",
"sci.flow.f5":"مربیگری رها (AI)","sci.flow.f5s":"هوس، خلق، هشدار لغزش",
"sci.flow.f6":"بازگشت به شغل قبلی","sci.flow.f6s":"هویت بازیابی شد",
"sci.ev.kicker":"مبانی شواهد","sci.ev.h2":"پژوهشها چه میگویند",
"sci.ev.lead":"خلاصهٔ یافتههای کلیدی که گرینروت روی آنها بنا شده.",
"sci.ev.th1":"مداخله","sci.ev.th2":"شواهد در یک نگاه","sci.ev.th3":"در گرینروت",
"sci.ev.r1a":"مدیریت پیامد",
"sci.ev.r1b":"شواهد قوی از کارآزماییهای تصادفیسازیشده؛ افزایش قابلاتکای پرهیز از مصرف و ماندگاری در درمان، از جمله در اختلال مصرف محرک.",
"sci.ev.r1c":"اقتصاد توکنی با پاداش واقعی برای شیفتها و نقاط عطف",
"sci.ev.r2a":"اشتغال حمایتی / کارآفرینی اجتماعی",
"sci.ev.r2b":"برنامههای کار-محور برای افراد در بهبودی، نتایج اشتغال، عزتنفس و کیفیت زندگی را بهبود میدهند.",
"sci.ev.r2c":"نقشهای حقوقدار: پاکسازی، جداسازی، بازیافت خلاق",
"sci.ev.r3a":"فعالسازی رفتاری",
"sci.ev.r3b":"فعالیت ساختیافته و ارزشمحور، علائم افسردگی و مصرف مواد را کاهش میدهد.",
"sci.ev.r3c":"شیفتهای معنادارِ زمانبندیشده بهجای ساعتهای خالی",
"sci.ev.r4a":"طبیعت / ورزش سبز",
"sci.ev.r4b":"حضور در فضای سبز، هورمونهای استرس را کم و خلق و توجه را بهتر میکند؛ ورزش با کاهش هوس پیوند دارد.",
"sci.ev.r4c":"همهٔ شیفتها در فضای باز: پارک، حاشیهٔ رود، خیابان",
"sci.ev.r5a":"جامعهٔ درمانی",
"sci.ev.r5b":"جامعهٔ همتا با نقشهای معنادار، دستاوردهای بلندمدت در پرهیز از مصرف و بازگشت اجتماعی دارد.",
"sci.ev.r5c":"هویت تیمی، مربیان همتا، شبکهٔ فارغالتحصیلان",
"sci.ev.note":"گرینروت برای توضیح طراحیاش به ادبیات علمیِ تثبیتشده ارجاع میدهد؛ ادعا نمیکند این مطالعات خودِ گرینروت را ارزیابی کردهاند. نتایج پایلوتِ نشاندادهشده در صفحات دیگر، ارقام نمایشی است.",
"sci.eth.t1":"اول عزت — خطوط قرمز اخلاقی ما",
"sci.eth.l1":"دستمزد واقعی؛ هرگز فقط «توکن درمانی».",
"sci.eth.l2":"درمان و دارو هرگز مشروط به خروجی کار یا سهمیه نیست.",
"sci.eth.l3":"نظارتِ مبتنی بر آگاهی از تروما؛ سرعتِ مسیر را تیم سلامتِ خودِ فرد تعیین میکند.",
"sci.eth.l4":"رضایت کامل و حریم خصوصی: دادههای مشارکت بدون رضایت، هرگز با پلیس یا کارفرما به اشتراک گذاشته نمیشود.",
"sci.eth.l5":"بهبود مقدم است — روزِ سخت، دلیل استراحت است، نه دلیل از دست دادن جایگاه.",
"sci.eth.t2":"گرینروت چه چیزی نیست",
"sci.eth.l6":"جایگزین سمزدایی پزشکی یا مراقبت روانپزشکی نیست — ما آن را تأمین مالی و هماهنگ میکنیم.",
"sci.eth.l7":"کارِ بیمزدِ پوشیده در لباس درمان نیست.",
"sci.eth.l8":"برنامهٔ نظارتی نیست — رها اختیاری است و دادهاش مالِ خودِ فرد است.",
"sci.eth.l9":"شفا نیست — اعتیاد مزمن است؛ ما ساختاری میسازیم که بهبودی را پایدار کند.",
"sci.cta.h2":"علم، ریشه است. آدمها، رشد.",
"sci.cta.p":"ببینید سازوکارها چطور به یک برنامهٔ واقعی ۱۲ماهه تبدیل میشوند.",
"sci.cta.b":"برنامه را ببینید",
"prog.hero.kicker":"دوازده ماه، چهار فاز",
"prog.hero.h1":"برنامهٔ گرینروت",
"prog.hero.p":"مسیری ساختیافته از تثبیت تا شغل سبزِ حقوقدار تا حرفهای که قبلاً داشتید — با درمان و دارویی که خودِ کار تأمینشان میکند.",
"prog.ph.kicker":"چهار فاز","prog.ph.h2":"مسیر شما در گرینروت",
"prog.ph1w":"هفتههای ۰–۴","prog.ph1t":"تثبیت",
"prog.ph1p":"چکاپ پزشکی و ارزیابی روانپزشکی؛ درمان با دارو در صورت لزوم؛ برنامهٔ شخصی ایمنی و هوس؛ اولین دیدار با رها، همیار هوش مصنوعیتان. هنوز شیفت نه — اول سلامت.",
"prog.ph2w":"هفتههای ۲–۱۲","prog.ph2t":"کار و شفا",
"prog.ph2p":"هفتهای سه شیفت پاکسازیِ همراهیشده در تیمی کوچک با مربی همتا. دو جلسهٔ گروهی درمان در هفته. توکن برای هر شیفت؛ مرور هفتگی توکن با مشورتان.",
"prog.ph3w":"ماههای ۳–۶","prog.ph3t":"ساختن",
"prog.ph3p":"رفتن به خط جداسازی: کار با مواد، مبانی ماشین، کارگاه بازیافت خلاق، کنترل کیفیت. رها نقشهٔ مهارتهایتان را میکشد و طرحِ بازگشت شغلی به سمت حرفهٔ قبلیتان را مینویسد.",
"prog.ph4w":"ماههای ۶–۱۲","prog.ph4t":"بازگشت",
"prog.ph4p":"بازسازی رزومه با روایتِ صادقانهٔ وقفه، مصاحبهٔ تمرینی، کارآموزی حمایتی یا استخدام مستقیم، و شبکهٔ فارغالتحصیلان. با شغل و یک جامعه بیرون میروید — نه فقط گواهی.",
"prog.day.kicker":"یک روزِ شیفت","prog.day.h2":"نظم، خودِ درمان است",
"prog.day.lead":"هر ساعت یک هدف دارد — این دقیقاً نکته است.",
"prog.day.c1":"قرار تیم و چک-این: خلق، هوسها، تجهیزات ایمنی. رها چک-این را ثبت میکند.",
"prog.day.c2":"شیفت پاکسازی در پارک / حاشیهٔ رود / خیابان. استراحتهای برنامهریزیشده؛ مربی در دسترس.",
"prog.day.c3":"توزین و جداسازی: پت، فلز، کاغذ، شیشه. توکنها همانجا شارژ میشوند.",
"prog.day.c4":"ناهار، سپس گروهدرمانی، جلسه با هوش مصنوعی یا کلاس مهارت — طبق برنامهٔ خودتان.",
"prog.eco.kicker":"اقتصاد چرخهایِ بهبودی","prog.eco.h2":"پول کجا میرود",
"prog.eco.c1t":"درآمد بازیافت",
"prog.eco.c1p":"فروش مواد (پت، فلز، کاغذ، شیشه) بهعلاوهٔ محصولات پزشکیِ بازیافتشده، درآمد برنامه را میسازد.",
"prog.eco.c2t":"پاداش اعضا",
"prog.eco.c2p":"دستمزد منصفانه بهعلاوهٔ توکن قابلخرج برای اقلام ضروری، حملونقل، شارژ و دورههای مهارتی.",
"prog.eco.c3t":"صندوق درمان",
"prog.eco.c3p":"سهمی شفاف، درمان، مراقبت روانپزشکی و داروهای ضروریِ هر تیم را تأمین میکند — و در صفحهٔ اثرگذاری منتشر میشود.",
"prog.b1":"🧾 بودجهٔ باز: درآمد تیم ← ۴۰٪ دستمزد · ۳۰٪ درمان · ۳۰٪ عملیات",
"prog.b2":"هیچ سهمیهای علیه اعضا استفاده نمیشود — هرگز",
"prog.b3":"دستمزد در حد یا بالای حداقلِ محلی",
"prog.wtw.kicker":"زباله ← بیمارستان",
"prog.wtw.h2":"خط بازیافت خلاق: از آشغال تا تجهیزات پزشکی",
"prog.wtw.lead":"نمادینترین شغل برنامه: تبدیل مادّهٔ خیابان به چیزِ مفید برای بیمارستان.",
"prog.wtw.c1t":"۱ · جمعآوری و جداسازی","prog.wtw.c1p":"پلاستیکهای پت و HDPE در خط جداسازی تفکیک، توزین و ثبت میشوند.",
"prog.wtw.c2t":"۲ · شستوشو و خردایش","prog.wtw.c2p":"شستوشو، ضدعفونی و خردایش به فلِیکِ استاندارد در ریز-کارخانه.",
"prog.wtw.c3t":"۳ · ساخت دوباره","prog.wtw.c3p":"با شرکای تولیدی معتبر: شیلد صورت، قطعات اسپلینت، بستهبندی کلینیکال.",
"prog.wtw.c4t":"۴ · تحویل","prog.wtw.c4p":"تجهیزات به کلینیکها اهدا یا فروخته میشود؛ عواید به صندوق درمان برمیگردد.",
"prog.wtw.note":"نکتهٔ ایمنی: تولید دوباره با گرید پزشکی توسط شرکای معتبر و زیر استانداردهای قانونی انجام میشود؛ تیمهای گرینروت فقط جمعآوری، جداسازی و پیشپردازش را بر عهده دارند.",
"prog.ai.kicker":"رها، در تمام فازها","prog.ai.h2":"همیار هوش مصنوعی در جیبتان",
"prog.ai.p":"رها از روز اول کنار شماست: SOS هوس در لحظههای سخت، چک-این روزانهٔ خلق، هشدارهای خطر لغزش (فقط با رضایت شما) برای مشورتان، کیف توکن، و طرحِ بازگشت شغلی که مهارتهای شغل قبلیتان را دوباره در دسترس میکند.",
"prog.ai.b":"دموی رها را امتحان کنید",
"prog.ai.l1":"SOS هوس: مربی موجسواریِ هوس، شبانهروزی",
"prog.ai.l2":"چک-این خلق و خواب با هشدار خطر لغزش",
"prog.ai.l3":"کیف توکن، اهداف و جشنِ نقاط عطف",
"prog.ai.l4":"بازگشت شغلی: رزومه، نقشهٔ مهارت، تمرین مصاحبه",
"prog.ai.l5":"خصوصی از پایه: اختیاری، رمزنگاریشده، متعلق به خودتان",
"prog.cta.h2":"برای یک سالِ ساختیافته آمادهاید؟",
"prog.cta.p":"ظرفیت گروه پایلوت محدود است. با ما حرف بزنید — بدون هیچ تعهدی.",
"ai.hero.kicker":"هوش مصنوعی که کنارتان قدم میزند","ai.hero.h1":"با رها آشنا شوید",
"ai.hero.p":"رها («رهاء» یعنی آزادی) همیار بهبودیِ گرینروت است: مربی هوس در لحظههای سخت، ردیاب خلق بین جلسات، و راهنمای شغلی که شما را به کاری که قبل از اعتیاد داشتید برمیگرداند.",
"ai.hero.cta1":"دموی چت را امتحان کنید","ai.hero.cta2":"دموی بازگشت شغلی",
"ai.hero.side":"«هوسها حدود ۲۰ دقیقه طول میکشند. شما هرگز مجبور نیستید تنها با یکی روبهرو شوید.»",
"ai.f.kicker":"رها چه میکند","ai.f.h2":"شش کار، یک همیار",
"ai.f.c1t":"SOS هوس","ai.f.c1p":"مربی موجسواریِ هوس، تمرین تنفس و تایمر تأخیر — و تماس یکضربهای با همراه یا مشورتان وقتی از حد میگذرد.",
"ai.f.c2t":"رصد خلق و لغزش","ai.f.c2p":"چک-این روزانهٔ ۳۰ثانیهای. رها الگوهای پرخطر را میبیند — بدخوابی، شیفت جاافتاده، انزوا — و به مشورتان هشدار میدهد (فقط اگر خودتان بخواهید).",
"ai.f.c3t":"کیف توکن و اهداف","ai.f.c3p":"توکنهای هر شیفت را ببینید، هدف تعیین کنید (یک دوره، دوچرخه، هدیه برای خانواده) و نقاط عطف را جشن بگیرید — برد کوچک، قلابشده در حلقهٔ عادت.",
"ai.f.c4t":"بازگشت شغلی","ai.f.c4p":"ویژگی امضا: رها شغلی که قبل از اعتیاد داشتید را نقشه میکشد، شکاف مهارتی را پیدا میکند، طرحِ بهروزرسانی میسازد و با شما مصاحبه تمرین میکند.",
"ai.f.c5t":"پل خانواده","ai.f.c5p":"بهروزرسانیِ اختیاری برای خانواده: نقاط عطف، شیفتهای انجامشده، روند خلق — بازسازی اعتماد با واقعیت، نه قول.",
"ai.f.c6t":"خصوصی از پایه","ai.f.c6p":"دادههایتان مال شماست. رمزنگاریشده، بهاشتراکگذاری فقط اختیاری، هرگز با پلیس یا کارفرما نه. حذف همهچیز با یک لمس.",
"ai.demo.kicker":"دموی تعاملی","ai.demo.h2":"با رها حرف بزنید (نمونهٔ اولیه)",
"ai.demo.lead":"این یک دموی اسکریپتشده است که کاملاً آفلاین در مرورگر شما اجرا میشود — رهای واقعی، یک مدل هوش مصنوعی با نظارت انسانی خواهد بود.",
"ai.chat.sub":"همیار هوش مصنوعی گرینروت · دمو",
"ai.chat.ph":"پیامی بنویسید…","ai.chat.send":"بفرست",
"ai.cr.kicker":"بازگشت شغلی","ai.cr.h2":"به شغلی که قبلتر داشتید",
"ai.cr.lead":"یک حرفهٔ قبلی انتخاب کنید و نمونهٔ طرح ۳مرحلهای که رها با شما میسازد را ببینید.",
"ai.cr.j1":"راننده","ai.cr.j2":"پرستار / کارمند سلامت","ai.cr.j3":"حسابدار","ai.cr.j4":"مکانیک","ai.cr.j5":"معلم","ai.cr.j6":"آشپز",
"ai.mood.t":"چک-این روزانه (امتحان کنید)",
"ai.mood.s":"خلق امروز را لمس کنید — رها روند را رصد و الگوهای خطر لغزش را میپاید.",
"ai.mood.hint":"رشته و روند شما اینجا ظاهر میشود.",
"ai.priv.t":"ایمنی و صداقت",
"ai.priv.l1":"رها دستیار است، نه درمانگر — تصمیمهای بالینی را انسانهای مجاز میگیرند.",
"ai.priv.l2":"پیامهای بحرانی همیشه سریع به یک انسان میرسند.",
"ai.priv.l3":"این دمو اسکریپتشده است و چیزی ذخیره نمیکند.",
"ai.priv.l4":"نسخهٔ تولیدی نیازمند اعتبارسنجی بالینی و بازبینی سختگیرانهٔ حفاظت داده (GDPR و قوانین محلی) است.",
"ai.cta.h2":"بیست دقیقه. یک هوس. یک همیار.",
"ai.cta.p":"به پایلوت بپیوندید و رها از اولین شیفت تا اولین روزِ برگشتن به شغل قبلیتان همراهتان است.",
"dash.hero.badge":"📊 دادهٔ نمایشی — مفهوم پایلوت",
"dash.hero.h1":"داشبورد اثرگذاری",
"dash.hero.p":"بهبودی فقط وقتی واقعی است که قابل اندازهگیری باشد. این داشبورد عددهایی را نشان میدهد که گرینروت برای هر گروه منتشر میکند — اینجا با دادهٔ نمایشی.",
"dash.s1":"فرد در برنامه","dash.s2":"زباله جمعآوریشده","dash.s3":"صرفشده برای درمان و دارو","dash.s4":"قلم تجهیزات پزشکی تولیدشده",
"dash.s5":"لغزش ۶ماهه گرینروت*","dash.s6":"لغزش ۶ماهه معمول*","dash.s7":"CO₂e صرفهجوییشده با بازیافت","dash.s8":"تکمیل برنامه",
"dash.note":"*مقایسهٔ تشریحی: گروه داخلی پایلوت در برابر بازههای رایج لغزش ۶ماهه. ارقام نمایشی، نه ادعای بالینی.",
"dash.ch1.t":"جمعآوری ماهانه (کیلوگرم)","dash.ch1.s":"خروجی تیم همراه با بهبودی رشد میکند — مومنتمی که میشود وزنش کرد.",
"dash.ch2.t":"ترکیب زباله (٪)","dash.ch2.s":"تیمها چه جمع میکنند — و هر جریان چه میشود.",
"dash.ch2.t1":"۱۸.۴ تن","dash.ch2.t2":"جمعآوریشده",
"dash.ch3.t":"تخصیص صندوق درمان","dash.ch3.s":"پول بازیافت کجا میرود، به تفکیک ماه (نمایشی).",
"dash.ch3.l1":"جلسات درمان","dash.ch3.l2":"داروها","dash.ch3.l3":"هماهنگی",
"dash.ch4.t":"گزارش ماهانه — گروه پایلوت","dash.ch4.s":"هر ماه، علنی منتشر میشود.",
"dash.ch4.th1":"ماه","dash.ch4.th2":"فعال","dash.ch4.th3":"کیلوگرم","dash.ch4.th4":"صندوق (€)",
"dash.tr.c1t":"بودجهٔ باز","dash.tr.c1p":"هر یوروی درآمد بازیافت ردیابی میشود: دستمزد، صندوق درمان، عملیات. انتشار ماهانه.",
"dash.tr.c2t":"ارزیابی مستقل","dash.tr.c2p":"پیامدهای سلامت با همکاری دانشگاهها سنجیده میشود، نه فقط توسط خودمان.",
"dash.tr.c3t":"سنجههای حفظ حریم خصوصی","dash.tr.c3p":"همهٔ دادههای اعضا تجمیعی و بینام است. هیچ فردی در این عددها دیده نمیشود.",
"dash.cta.h2":"این داشبورد را برای شهرتان میخواهید؟",
"dash.cta.p":"شهرداریها، شرکتهای پسماند و کلینیکها: بیایید یک گروه بسازیم.",
"dash.cta.b":"همکاری با ما",
"join.hero.kicker":"به گرینروت بپیوندید","join.hero.h1":"اینجا برای شما جایی هست",
"join.hero.p":"چه در حال جنگیدن برای بهبودی خودتان باشید، چه حمایتی برای عزیزی، چه ادارهٔ یک شهر — یا آمادهٔ تأمین مالی مدل — از همینجا شروع کنید.",
"join.a.c1t":"کمک لازم دارم","join.a.c1p":"محرمانه، بدون تعهد. تا ۴۸ ساعت با شما تماس میگیریم و همهچیز را — به زبان خودتان — توضیح میدهیم.",
"join.a.c2t":"عضو خانوادهام","join.a.c2p":"هر چیزی میخواهید بپرسید. برنامه، قواعد ایمنی و نحوهٔ بهروزرسانی خانوادگی را توضیح میدهیم.",
"join.a.c3t":"شهر / شرکت","join.a.c3p":"میزبان یک تیم شوید، جریان پسماند تأمین کنید یا یک گروه را اسپانسر شوید. ESG قابلاندازهگیری با عمق انسانی.",
"join.a.c4t":"سرمایهگذار / شریک","join.a.c4p":"درآمد چرخشی بهعلاوهٔ پیامدهای سلامت. گزارش کامل پایلوت و مدل را بخواهید.",
"join.form.kicker":"تماس","join.form.h2":"برایمان پیام بفرستید",
"join.form.lead":"فرم نمایشی — در نسخهٔ اصلی به خط ورودی محرمانهٔ ما وصل میشود.",
"join.form.name":"نام شما (یا یک نام مستعار)","join.form.contact":"ایمیل یا تلفن","join.form.role":"من هستم…","join.form.msg":"پیام","join.form.send":"ارسال پیام",
"join.form.o1":"فردی در حال بهبودی","join.form.o2":"عضو خانواده","join.form.o3":"شهر / شهرداری","join.form.o4":"شرکت / بازیافت","join.form.o5":"سرمایهگذار / NGO","join.form.o6":"فقط کنجکاو",
"join.form.ok":"✓ سپاسگزاریم! این دمو دادهای به جایی نمیفرستد — اما در نسخهٔ اصلی، تیم ما حداکثر تا ۴۸ ساعت بعد، محرمانه با شما تماس میگیرد.",
"join.faq.h2":"سؤالهای صادقانه، جوابهای صادقانه",
"join.q1":"این اشتغال واقعی است یا «تئاتر درمان»؟",
"join.a1":"اشتغال واقعی. اعضا قرارداد میبندند، دستمزد در حد یا بالای حداقلِ محلی میگیرند و توکنها پاداشِ اضافهاند — هرگز جایگزین دستمزد نیستند.",
"join.q2":"اگر وسط برنامه لغزش کنم چه؟",
"join.a2":"جایتان حفظ میشود. لغزش بخشی از ماهیت پزشکی اعتیاد است. کار را موقتاً متوقف، حمایت بالینی را از نو شروع میکنیم و با تأیید تیم سلامتتان برمیگردید. بهخاطر مریضشدن اخراج نمیشوید.",
"join.q3":"برای پیوستن باید دارو را قطع کنم؟",
"join.a3":"نه — برعکس. درمان با دارو در صورت صلاحدید پزشکی تأمین مالی و تشویق میشود. برنامه با پزشکتان هماهنگ است.",
"join.q4":"هوش مصنوعی من را به کسی گزارش میکند؟",
"join.a4":"هرگز بدون رضایت شما. دادهٔ رها مال شماست. فقط هشدارهای اختیاری به مشورتان وجود دارد و موارد بحرانی به انسانهایی میرسد که مراقب شما هستند — نه به مقامات.",
"join.q5":"واقعاً میتوانم به شغل قبلیام برگردم؟",
"join.a5":"در بسیاری موارد، بله. طرح بازگشت شغلی رها مهارتها را صادقانه بازسازی میکند، وقفه را راستگانه روایت میکند و کارآموزیِ حمایتی با کارفرمایانی میچیند که بر پایهٔ توانایی استخدام میکنند، نه پیشینه.",
"join.q6":"پایلوت در چه شهرهایی اجرا میشود؟",
"join.a6":"در حال بررسی گروههای پایلوت در فرانکفورت و تهران هستیم. ثبتنام کنید تا بگوییم نزدیک شما چه چیزی فعال است.",
"join.crisis.t":"🆘 همین حالا در بحران هستید؟",
"join.crisis.p":"اگر شما یا کسی نزدیکتان در خطر فوری است (اوردوز، افکار خودکشی)، همین حالا با شمارهٔ اورژانس محلی تماس بگیرید. در ایران، خط ویژهٔ اعتیادِ اورژانس اجتماعی ۰۹۶۲۸ است. در آلمان برای اورژانس با ۱۱۲ تماس بگیرید. شما مهم هستید. یک تماس میتواند همهچیز را شروع کند."
}
};
</script>
<script>
/* GreenRoot Turkish language pack + COP31 campaign keys (merged at load) */
(function(){
"use strict";
if (!window.I18N) window.I18N = {};
/* ================= TURKISH SITE DICTIONARY ================= */
window.I18N.tr = {
"title.home":"GreenRoot — İnsanları iyileştir, gezegeni iyileştir",
"title.science":"Bilim — GreenRoot",
"title.program":"Program — GreenRoot",
"title.ai":"Raha, yapay zekâ dostu — GreenRoot",
"title.dashboard":"Etki panosu — GreenRoot",
"title.join":"Katıl — GreenRoot",
"title.cop31":"GreenRoot at COP31 — Antalya & İstanbul",
"nav.home":"Anasayfa","nav.science":"Bilim","nav.program":"Program","nav.ai":"YZ dostu","nav.impact":"Etki","nav.cop31":"COP31","nav.join":"Katıl","nav.cta":"Pilota katıl",
"footer.tag":"İnsanları iyileştiriyoruz, gezegeni de — çevre işiyle toparlanma, geri dönüşümle finanse edilen tedavi, yapay zekâ desteğiyle dönüş.",
"footer.links":"Keşfet","footer.contact":"İletişim","footer.contact2":"Frankfurt · Tahran · İstanbul (pilot şehirler)",
"footer.disclaimer":"GreenRoot kavramsal bir prototiptir. Bu sitedeki hiçbir içerik tıbbi tavsiye değildir. Bağımlılık tıbbi bir durumdur — daima yetkili hekimler ve lisanslı tedavi hizmetleriyle çalışın. Acil durumda yerel acil numaranızı arayın.",
"home.hero.kicker":"Bağımlılıktan toparlanma × yeşil iş × yapay zekâ",
"home.hero.h1":"Kendini iyileştir.<br>Şehrini iyileştir.",
"home.hero.p":"GreenRoot, bağımlılıktan toparlanmayı ücretli çevre işine dönüştürür: toplanan her çöp torbası terapiye ve ilaca dönüşür — ve bir yapay zekâ dostu her kişiyi bağımlılık öncesi mesleğine geri taşır.",
"home.hero.cta1":"Programı keşfet","home.hero.cta2":"YZ dostunu dene",
"home.chip1":"toparlanmada kişi","home.chip2":"toplanan atık","home.chip3":"6 ayda daha az nüks",
"home.loop.title":"GreenRoot Döngüsü",
"home.loop.n1":"Topla","home.loop.n2":"Kazan","home.loop.n3":"İyileş","home.loop.n4":"Dön",
"home.prob.kicker":"GreenRoot neden var","home.prob.h2":"Üç kriz, tek kök",
"home.prob.lead":"Bağımlılık, işsizlik ve atık birbirini besler. GreenRoot üçüne aynı anda vurur.",
"home.prob.c1t":"Bağımlılık boşlukta büyür",
"home.prob.c1p":"Günler boşken toparlanma çöker — yapı yok, amaç yok, insan yok. Nükslerin çoğu uzun ve yapılandırılmamış saatlerde, yalnızken yaşanır.",
"home.prob.c2t":"İş tuzağı",
"home.prob.c2p":"İşverenler özgeçmişteki boşluğu görür ve reddeder; toparlanan kişi işsiz kalır — işsizlik onu yeniden kullanıma iter. Kapı iki taraftan da kapalıdır.",
"home.prob.c3t":"Şehirler çöpe gömülüyor",
"home.prob.c3p":"Parklar, nehir kenarları ve sokaklar, belediyelerin temizleme hızından hızlı kirlenir. Bu arada her yıl milyonlar değerinde geri dönüştürülebilir malzeme çöpe gider.",
"home.sol.kicker":"Cevabımız","home.sol.h2":"Tek program, üç motor",
"home.sol.lead":"Her motor diğer ikisini güçlendirir. Tüm fikir budur.",
"home.sol.c1t":"Kanıta dayalı toparlanma",
"home.sol.c1p":"Sonuç yönetimi, davranışsal aktivasyon ve terapötik topluluk — bağımlılıkta psikolojinin en kanıtlanmış araçları, her iş gününe işlenmiş.",
"home.sol.c1l":"Bilimi oku →",
"home.sol.c2t":"Ücretli yeşil iş",
"home.sol.c2p":"Temizlik ekipleri, ayrıştırma hatları ve geri dönüşüm atölyeleri için gerçek ücret. Geri dönüşüm geliri; terapiyi, ilacı — ve katılımcıların kendisini — finanse eder.",
"home.sol.c2l":"Programı gör →",
"home.sol.c3t":"YZ ile kariyer dönüşü",
"home.sol.c3p":"YZ dostumuz Raha kriz anında koçluk yapar, ruh halini izler ve herkesin becerilerini eski mesleğine geri bağlar — bağımlılık öncesi işine.",
"home.sol.c3l":"Raha ile tanış →",
"home.med.kicker":"Sokaktan servise","home.med.h2":"Atık girer, ilaç çıkar",
"home.med.lead":"Katılımcıların topladığı çöp, gerçek anlamda iki kez tedavinin parçası olur.",
"home.med.c1t":"1. Geri dönüşüm geliri tedaviyi finanse eder",
"home.med.c1p":"Satılan geri dönüşüm malzemesi — PET, metal, kâğıt, cam — gelir üretir. Bu gelir ekibin terapi seanslarını, psikiyatrik bakımını ve temel ilaçlarını öder. Toplanan her kilo, finanse edilen bir doz tedavidir.",
"home.med.c2t":"2. Malzeme tıbbi sarfa dönüşür",
"home.med.c2p":"Geri dönüşüm hattımızda toplanan plastiğe yıkanır, parçalanır ve sertifikalı ortaklarla tıbbi ürünlere dönüştürülür: yüz siperleri, atel bileşenleri ve klinikler için steril sınıf ambalaj.",
"home.s1":"Toparlanmada kişi","home.s2":"Toplanan & ayrıştırılan atık","home.s3":"6 ayda nüks azalması*","home.s4":"Terapi ve ilaca aktarılan*",
"home.demonote":"*Pilot kohort; konsept için temsili rakamlar.",
"home.aud.kicker":"Kimin için","home.aud.h2":"Herkese kazanç",
"home.aud.c1t":"Toparlanmakta olan senin için","home.aud.c1p":"Yapı, gelir, terapi ve eski kariyerine dönüş yolu — itibarla.",
"home.aud.c2t":"Aileler için","home.aud.c2p":"Sevdiğin insanın gurur duyabileceği güvenli, denetlenen bir program.",
"home.aud.c3t":"Şehirler ve şirketler için","home.aud.c3p":"Daha temiz kamusal alan, ölçülebilir ESG etkisi ve kanıtlanmış sosyal getiri modeli.",
"home.aud.c4t":"Ortaklar ve yatırımcılar için","home.aud.c4p":"Ölçülebilir sağlık sonuçlarıyla çifte gelirli döngüsel ekonomi.",
"home.cta.h2":"Bir çöp torbası. Bir toparlanma tuğlası.",
"home.cta.p":"Pilot şehir programına katıl — katılımcı, ortak ya da destekçi olarak.",
"home.cop.kicker":"Kasım 2026 — Antalya & İstanbul",
"home.cop.t":"GreenRoot, COP31'e gidiyor",
"home.cop.p":"Toparlanma, iklim adaletidir. Üç dilli kampanya kiti, sunum desteleri ve barışçıl eylem mesajlarımız hazır.",
"home.cop.b":"COP31 sayfasını gör",
"sci.hero.kicker":"Modelin arkasındaki psikoloji",
"sci.hero.h1":"Doğada çalışmak bağımlılığı neden iyileştirir",
"sci.hero.p":"GreenRoot slogan olarak 'tedavi yerine iş' demiyor. Programın her ögesi, bağımlılık biliminde iyi çalışılmış bir mekanizmaya oturur.",
"sci.m1t":"Sonuç yönetimi ve jeton ekonomisi",
"sci.m1p":"Sonuç yönetimi (CM) — madde kullanmama davranışını anında ve tutarlı ödüllendirmek — madde kullanım bozukluğu için en kanıtlı psikososyal tedaviler arasındadır, özellikle uyarıcılarda. GreenRoot işleyen bir jeton ekonomisidir: her vardiya, her ayrıştırılan kilo ve her temiz test, gerçek değeri olan jeton kazandırır (ilaç kredisi, temel ihtiyaç, beceri kursu).",
"sci.m2t":"Davranışsal aktivasyon ve anlamlı iş",
"sci.m2p":"Davranışsal aktivasyon; ödüllendirici ve değerlere uygun etkinliklerin planlanmasının ruh halini iyileştirdiğini ve madde kullanımını bazı resmî terapiler kadar azalttığını gösterir. Destekli istihdam araştırmaları daha ileri gider: toparlanmakta olan insanlar için anlamlı iş; kesinleşmeyi, yaşam kalitesini ve tedavide kalmayı iyileştirir.",
"sci.m3t":"Ödül sistemini yeniden kablolamak",
"sci.m3p":"Bağımlılık beynin dopamin döngüsünü ele geçirir: uyaran → kullanım → rahatlama. Toparlanma yeni bir döngü kurmaktır: uyaran → rutin → ödül. Temizlik vardiyası tam olarak bunu yapar — stres ve boş saatler (uyaranlar) ekip işiyle (rutin) değişir; karşılık görünür, anlık ve sosyaldir: ücret, jeton, temiz sokak, gurur.",
"sci.m4t":"Yeşil bakım: doğa ilaçtır",
"sci.m4p":"Yeşil alanda geçen süre kortizolü ve zihinsel geviş getirmeyi ölçülebilir biçimde düşürür, dikkati onarır ('dikkat restorasyonu kuramı'). Açık havada bedensel iş egzersiz ekler — çalışmalar bunun kriz yoğunluğunu azalttığını ve uykuyu düzelttiğini gösterir. GreenRoot'ta doğa dekor değildir; tedavi odasıdır.",
"sci.m5t":"Topluluk ve kimlik",
"sci.m5p":"Terapötik topluluklar — insanların birlikte ve anlamlı rollerle iyileştiği ortamlar — onlarca yıllık kanıta sahiptir. GreenRoot'ta her üye 'hasta' değil; katkısını tüm şehrin gördüğü bir ekip üyesidir. Kimlik 'bağımlı'dan 'çevre işçisi'ne kayar; her temiz parkla damga küçülür.",
"sci.m6t":"Çifte etki döngüsü",
"sci.m6p":"Her halka bir sonrakini besler: iş → gelir → tedavi → istikrar → daha iyi iş → düşük nüks riski. Bu arada şehir temizlenir, klinikler sarf alır. Toparlanma ve çevre, bileşik faiz gibi büyür.",
"sci.flow.kicker":"Uçtan uca mekanizma","sci.flow.h2":"Krizden kariyere, tek döngüde",
"sci.flow.f1":"Uyaran: boş gün, kriz","sci.flow.f1s":"Yüksek riskli an",
"sci.flow.f2":"Açık havada ekip vardiyası","sci.flow.f2s":"Yapı + egzersiz + doğa",
"sci.flow.f3":"Ücret + jeton","sci.flow.f3s":"Anında, kazanılmış ödül",
"sci.flow.f4":"Terapi ve ilaç finanse edildi","sci.flow.f4s":"Klinik bakım sürüyor",
"sci.flow.f5":"Raha YZ koçluğu","sci.flow.f5s":"Kriz, ruh hali, nüks uyarısı",
"sci.flow.f6":"Eski kariyere dönüş","sci.flow.f6s":"Kimlik geri kazanıldı",
"sci.ev.kicker":"Kanıt temeli","sci.ev.h2":"Araştırmalar ne diyor",
"sci.ev.lead":"GreenRoot'un üzerine kurulduğu temel bulguların özeti.",
"sci.ev.th1":"Müdahale","sci.ev.th2":"Kanıt, kısaca","sci.ev.th3":"GreenRoot'ta",
"sci.ev.r1a":"Sonuç yönetimi",
"sci.ev.r1b":"Güçlü randomize çalışma kanıtı; uyarıcı kullanım bozukluğu dahil, kesinleşmeyi ve tedavide kalmayı güvenilir biçimde artırır.",
"sci.ev.r1c":"Vardiyalar ve kilometre taşları için gerçek ödüllü jeton ekonomisi",
"sci.ev.r2a":"Destekli istihdam / sosyal girişim",
"sci.ev.r2b":"İşle bütünleşik programlar; toparlanmakta olan kişilerde istihdam sonucunu, benlik saygısını ve yaşam kalitesini iyileştirir.",
"sci.ev.r2c":"Ücretli temizlik, ayrıştırma ve geri dönüşüm rolleri",
"sci.ev.r3a":"Davranışsal aktivasyon",
"sci.ev.r3b":"Yapılandırılmış, değer güdümlü etkinlik; depresif belirtileri ve madde kullanımını azaltır.",
"sci.ev.r3c":"Planlı anlamlı vardiyalar, boş saatlerin yerine geçer",
"sci.ev.r4a":"Doğa / yeşil egzersiz",
"sci.ev.r4b":"Yeşil alan süresi stres hormonlarını düşürür, ruh halini ve dikkati iyileştirir; egzersiz azalan krizle ilişkilendirilir.",
"sci.ev.r4c":"Tüm vardiyalar açık havada: park, nehir kenarı, sokak",
"sci.ev.r5a":"Terapötik topluluk",
"sci.ev.r5b":"Anlamlı rollere sahip akran topluluğu; kesinleşme ve topluma yeniden katılımda uzun vadeli kazanım gösterir.",
"sci.ev.r5c":"Ekip kimliği, akran mentorları, mezunlar ağı",
"sci.ev.note":"GreenRoot tasarımını açıklamak için yerleşik bilimsel literatüre atıf yapar; bu çalışmaların GreenRoot'u değerlendirdiğini iddia etmez. Başka sayfalarda gösterilen pilot sonuçlar temsilidir.",
"sci.eth.t1":"Önce onur — etik kırmızı çizgilerimiz",
"sci.eth.l1":"Gerçek ücret; asla yalnızca 'terapi jetonu' değil.",
"sci.eth.l2":"Terapi ve ilaç asla iş çıktısına veya kotaya bağlı değildir.",
"sci.eth.l3":"Travma bilgili gözetim; tempo, katılımcının sağlık ekibi tarafından belirlenir.",
"sci.eth.l4":"Tam rıza ve gizlilik: katılım verisi rıza olmadan asla polisle veya işverenle paylaşılmaz.",
"sci.eth.l5":"Önce toparlanma — zor bir gün dinlenme sebebidir, yerini kaybetme sebebi değil.",
"sci.eth.t2":"GreenRoot ne değildir",
"sci.eth.l6":"Tıbbi detoks veya psikiyatrik bakımın yerine geçmez — onu finanse eder ve koordine ederiz.",
"sci.eth.l7":"Terapi kılığındaki ücretsiz emek değildir.",
"sci.eth.l8":"Gözetim programı değildir — Raha isteğe bağlıdır ve verisi katılımcıya aittir.",
"sci.eth.l9":"Bir 'çare' değildir — bağımlılık kroniktir; remisyonu kalıcı kılan yapıyı kurarız.",
"sci.cta.h2":"Bilim köktür. İnsanlar büyümedir.",
"sci.cta.p":"Mekanizmaların 12 aylık gerçek bir programa nasıl dönüştüğünü gör.",
"sci.cta.b":"Programı keşfet",
"prog.hero.kicker":"On iki ay, dört evre",
"prog.hero.h1":"GreenRoot programı",
"prog.hero.p":"Sağlamlaşmadan ücretli yeşil işe, oradan bağımlılık öncesi kariyerine uzanan yapılandırılmış bir yolculuk — terapi ve ilaç, işin kendisi tarafından finanse edilir.",
"prog.ph.kicker":"Dört evre","prog.ph.h2":"GreenRoot'taki yolun",
"prog.ph1w":"0–4. haftalar","prog.ph1t":"Sağlamlaş",
"prog.ph1p":"Tıbbi check-up ve psikiyatrik değerlendirme; endikasyon varsa ilaçla tedavi; kişisel güvenlik ve kriz planı; YZ dostun Raha ile ilk tanışma. Henüz vardiya yok — önce sağlık.",
"prog.ph2w":"2–12. haftalar","prog.ph2t":"Çalış ve iyileş",
"prog.ph2p":"Akran mentorlu küçük bir ekipte haftada üç destekli temizlik vardiyası. Haftada iki grup terapisi. Her vardiya için jeton; danışmanla haftalık jeton gözden geçirmesi.",
"prog.ph3w":"3–6. aylar","prog.ph3t":"İnşa et",
"prog.ph3p":"Ayrıştırma hattına geç: malzeme kullanımı, makine temelleri, geri dönüşüm atölyesi, kalite kontrol. Raha becerilerini haritalar ve eski mesleğine yönelik kariyer dönüşü planını yazar.",
"prog.ph4w":"6–12. aylar","prog.ph4t":"Dön",
"prog.ph4p":"Dürüst boşluk anlatımıyla özgeçmiş yeniden inşası, deneme mülakatları, destekli staj ya da doğrudan yerleştirme ve mezunlar ağı. Sadece sertifika değil — bir iş ve bir toplulukla ayrılırsın.",
"prog.day.kicker":"Bir vardiya günü","prog.day.h2":"Yapı, tedavinin kendisidir",
"prog.day.lead":"Her saatin bir amacı var — mesele tam olarak bu.",
"prog.day.c1":"Ekip buluşması ve check-in: ruh hali, krizler, koruyucu ekipman. Raha check-in'i kaydeder.",
"prog.day.c2":"Park / nehir kenarı / sokakta temizlik vardiyası. Molalar planlı; mentor yakında.",
"prog.day.c3":"Tartma ve ayrıştırma: PET, metal, kâğıt, cam. Jetonlar anında yüklenir.",
"prog.day.c4":"Öğle yemeği; ardından grup terapisi, bir YZ seansı ya da beceri dersi — senin takvimin.",
"prog.eco.kicker":"Toparlanmanın döngüsel ekonomisi","prog.eco.h2":"Para nereye gidiyor",
"prog.eco.c1t":"Geri dönüşüm geliri",
"prog.eco.c1p":"Satılan malzeme (PET, metal, kâğıt, cam) artı geri dönüştürülmüş tıbbi ürünler; programın gelirini oluşturur.",
"prog.eco.c2t":"Katılımcı ödülleri",
"prog.eco.c2p":"Adil ücret artı; temel ihtiyaç, ulaşım, telefon kredisi ve beceri kursları için harcanabilir jeton.",
"prog.eco.c3t":"Tedavi fonu",
"prog.eco.c3p":"Şeffaf bir pay; her ekibin terapisini, psikiyatrik bakımını ve temel ilaçlarını finanse eder — Etki sayfasında yayımlanır.",
"prog.b1":"🧾 Açık bütçe: ekip geliri → %40 ücret · %30 tedavi · %30 operasyon",
"prog.b2":"Kota asla katılımcılara karşı kullanılmaz — hiçbir zaman",
"prog.b3":"Ücretler yerel asgarinin düzeyinde veya üzerinde",
"prog.wtw.kicker":"Atık → hastane",
"prog.wtw.h2":"Geri dönüşüm hattı: çöpten tıbbi sarfa",
"prog.wtw.lead":"Programdaki en simgesel iş: sokağın malzemesini hastaneye faydalı kılmak.",
"prog.wtw.c1t":"1 · Topla ve ayrıştır","prog.wtw.c1p":"PET ve HDPE plastikler ayrıştırma hattında ayrılır, tartılır, kayda geçer.",
"prog.wtw.c2t":"2 · Yıka ve parçala","prog.wtw.c2p":"Mikro fabrikada yıkanır, dezenfekte edilir, sertifikalı pul ğa parçalanır.",
"prog.wtw.c3t":"3 · Yeniden üret","prog.wtw.c3p":"Sertifikalı üretim ortaklarıyla: yüz siperi, atel bileşeni, klinik ambalaj.",
"prog.wtw.c4t":"4 · Teslim et","prog.wtw.c4p":"Sarflar kliniklere bağışlanır ya da satılır; gelir tedavi fonuna akar.",
"prog.wtw.note":"Güvenlik notu: tıbbi sınıf yeniden üretim, mevzuata uygun sertifikalı ortaklarca yapılır; GreenRoot ekipleri yalnızca toplama, ayrıştırma ve ön işlemden sorumludur.",
"prog.ai.kicker":"Her evrede Raha","prog.ai.h2":"Cebinde bir YZ dostu",
"prog.ai.p":"Raha ilk günden yanında: zor anlarda kriz SOS'u, günlük ruh hali kontrolü, (yalnızca rızanla) danışmana nüks-riski uyarısı, jeton cüzdanı ve eski meslek becerilerini yeniden erişilir kılan kariyer dönüşü planı.",
"prog.ai.b":"Raha demosunu dene",
"prog.ai.l1":"Kriz SOS: 7/24 dürtü sörfü koçu",
"prog.ai.l2":"Nüks-riski uyarılı ruh hali ve uyku takibi",
"prog.ai.l3":"Jeton cüzdanı, hedefler ve kilometre taşı kutlaması",
"prog.ai.l4":"Kariyer dönüşü: özgeçmiş, beceri haritası, mülakat pratiği",
"prog.ai.l5":"Tasarım gereği özel: isteğe bağlı, şifreli, katılımcıya ait",
"prog.cta.h2":"Yapılandırılmış bir yıla hazır mısın?",
"prog.cta.p":"Pilot kohortta kontenjan sınırlı. Konuş bizimle — hiçbir taahhüt yok.",
"ai.hero.kicker":"Yanında yürüyen yapay zekâ","ai.hero.h1":"Raha ile tanış",
"ai.hero.p":"Raha ('rehâ' — özgürlük), GreenRoot'un toparlanma dostudur: zor anlarda kriz koçu, seanslar arasında ruh hali izleyicisi ve seni bağımlılık öncesi işine geri götüren kariyer rehberi.",
"ai.hero.cta1":"Demo sohbeti dene","ai.hero.cta2":"Kariyer dönüşü demosu",
"ai.hero.side":"'Krizler yaklaşık 20 dakika sürer. Bir krizle asla yalnız yüzleşmek zorunda değilsin.'",
"ai.f.kicker":"Raha ne yapar","ai.f.h2":"Altı iş, tek dost",
"ai.f.c1t":"Kriz SOS","ai.f.c1p":"Dürtü sörfü koçu, nefes egzersizleri ve geciktirme sayacı — işin zorleştiğinde tek dokunuşla yoldaşını ya da danışmanını ara.",
"ai.f.c2t":"Ruh hali ve nüks gözcüsü","ai.f.c2p":"Günlük 30 saniyelik check-in. Raha riskli örüntüleri görür — kötü uyku, atlanan vardiya, izolasyon — ve danışmanını uyarır (yalnızca kabul edersen).",
"ai.f.c3t":"Jeton cüzdanı ve hedefler","ai.f.c3p":"Vardiya başına kazanılan jetonu gör, hedef koy (bir kurs, bir bisiklet, aileye hediye) ve kilometre taşlarını kutla — alışkanlık döngüsüne bağlanmış küçük zaferler.",
"ai.f.c4t":"Kariyer dönüşü","ai.f.c4p":"İmza özellik: Raha bağımlılık öncesi işini haritalar, beceri boşluklarını bulur, tazeleme planı kurar ve seninle mülakat pratiği yapar.",
"ai.f.c5t":"Aile köprüsü","ai.f.c5p":"Aileye isteğe bağlı güncelleme: ulaşılan kilometre taşları, çalışılan vardiyalar, ruh hali eğilimi — sözle değil, olguyla güven inşası.",
"ai.f.c6t":"Tasarım gereği özel","ai.f.c6p":"Veri sana aittir. Şifreli, her paylaşım için ayrı rıza, asla polisle veya işverenle paylaşılmaz. Tek dokunuşla tamamen silinir.",
"ai.demo.kicker":"Etkileşimli demo","ai.demo.h2":"Raha ile konuş (prototip)",
"ai.demo.lead":"Bu, tarayıcında tamamen çevrimdışı çalışan yazılı bir demodur — gerçek Raha; insan gözetimli bir YZ modeli olacaktır.",
"ai.chat.sub":"GreenRoot YZ dostu · demo",
"ai.chat.ph":"Bir mesaj yaz…","ai.chat.send":"Gönder",
"ai.cr.kicker":"Kariyer dönüşü","ai.cr.h2":"Bağımlılık öncesi işine geri dön",
"ai.cr.lead":"Eski bir meslek seç; Raha'nın seninle kuracağı örnek 3 adımlı dönüş planını gör.",
"ai.cr.j1":"Şoför","ai.cr.j2":"Hemşire / sağlık çalışanı","ai.cr.j3":"Muhasebeci","ai.cr.j4":"Tamirci","ai.cr.j5":"Öğretmen","ai.cr.j6":"Aşçı",
"ai.mood.t":"Günlük check-in (dene)",
"ai.mood.s":"Bugünkü ruh haline dokun — Raha eğilimi tutar, nüks-riski örüntülerini gözcülük eder.",
"ai.mood.hint":"Serin ve eğilimin burada görünecek.",
"ai.priv.t":"Güvenlik ve dürüstlük",
"ai.priv.l1":"Raha asistandır, terapist değil — klinik kararları yetkili insanlar verir.",
"ai.priv.l2":"Kriz mesajları her zaman hızla bir insana yönlendirilir.",
"ai.priv.l3":"Bu demo yazılıdır ve hiçbir şey kaydetmez.",
"ai.priv.l4":"Üretim sürümü klinik doğrulama ve sıkı veri koruma denetimi gerektirecektir (GDPR ve yerel hukuk).",
"ai.cta.h2":"Yirmi dakika. Bir kriz. Bir dost.",
"ai.cta.p":"Pilota katıl — Raha ilk vardiyadan, eski işindeki ilk güne kadar yanında.",
"dash.hero.badge":"📊 Temsili veri — pilot konsept",
"dash.hero.h1":"Etki panosu",
"dash.hero.p":"Toparlanma ancak ölçülürse gerçektir. Bu pano, GreenRoot'un her kohort için yayımladığı sayıları gösterir — burada temsili veriyle.",
"dash.s1":"Programda kişi","dash.s2":"Toplanan atık","dash.s3":"Terapiye ve ilaca","dash.s4":"Üretilen tıbbi ürün",
"dash.s5":"GreenRoot 6 aylık nüks*","dash.s6":"Tipik 6 aylık nüks*","dash.s7":"Geri dönüşümle tasarruf edilen CO₂e","dash.s8":"Program tamamlama",
"dash.note":"*Temsili karşılaştırma: iç pilot kohort ile yaygın bildirilen 6 aylık nüks aralıkları. Temsili rakamlar; klinik iddia değildir.",
"dash.ch1.t":"Aylık toplama (kg)","dash.ch1.s":"Ekip çıktısı, toparlanma büyüdükçe büyür — tartılabilen ivme.",
"dash.ch2.t":"Atık karışımı (%)","dash.ch2.s":"Ekipler ne topluyor — her akış neye dönüşüyor.",
"dash.ch2.t1":"18,4 t","dash.ch2.t2":"toplandı",
"dash.ch3.t":"Tedavi fonu dağılımı","dash.ch3.s":"Geri dönüşüm parası nereye gidiyor (temsili).",
"dash.ch3.l1":"Terapi seansları","dash.ch3.l2":"İlaçlar","dash.ch3.l3":"Koordinasyon",
"dash.ch4.t":"Aylık rapor — pilot kohort","dash.ch4.s":"Her ay açıkça yayımlanır.",
"dash.ch4.th1":"Ay","dash.ch4.th2":"Aktif","dash.ch4.th3":"kg","dash.ch4.th4":"Fon (€)",
"dash.tr.c1t":"Açık bütçe","dash.tr.c1p":"Geri dönüşüm gelirinin her avrosu izlenir: ücret, tedavi fonu, operasyon. Aylık yayımlanır.",
"dash.tr.c2t":"Bağımsız değerlendirme","dash.tr.c2p":"Sağlık sonuçları üniversite ortaklarıyla değerlendirilir — yalnız bizimle değil.",
"dash.tr.c3t":"Gizlilik-güvenli metrikler","dash.tr.c3p":"Tüm katılımcı verisi toplu ve anonimdir. Bu sayılarda hiçbir birey görünmez.",
"dash.cta.h2":"Bu panoyu şehrin için ister misin?",
"dash.cta.p":"Belediyeler, atık şirketleri, klinikler: birlikte bir kohort kuralım.",
"dash.cta.b":"Ortak ol",
"join.hero.kicker":"GreenRoot'a katıl","join.hero.h1":"Burada senin için bir yer var",
"join.hero.p":"Kendi toparlanman için mücadele ediyor, bir sevdiğini destekliyor, bir şehri yönetiyor ya da modeli finanse etmeye hazırsan — buradan başla.",
"join.a.c1t":"Yardıma ihtiyacım var","join.a.c1p":"Gizli, taahhütsüz. 48 saat içinde döneriz ve her şeyi — kendi dilinde — anlatırız.",
"join.a.c2t":"Aile üyesiyim","join.a.c2p":"Bize her şeyi sor. Programı, güvenlik kurallarını ve aile bilgilendirmelerinin nasıl işlediğini anlatırız.",
"join.a.c3t":"Şehir / şirket","join.a.c3p":"Bir ekibe ev sahipliği yap, atık akışı sağla ya da bir kohorta sponsor ol. İnsan derinliğiyle ölçülebilir ESG.",
"join.a.c4t":"Yatırımcı / ortak","join.a.c4p":"Döngüsel gelir artı sağlık sonuçları. Tam pilot raporunu ve modeli iste.",
"join.form.kicker":"İletişim","join.form.h2":"Bize mesaj gönder",
"join.form.lead":"Demo form — üretimde gizli kabul hattımıza bağlanır.",
"join.form.name":"Adın (ya da bir takma ad)","join.form.contact":"E-posta veya telefon","join.form.role":"Ben…","join.form.msg":"Mesaj","join.form.send":"Mesajı gönder",
"join.form.o1":"Toparlanmakta olan biri","join.form.o2":"Bir aile üyesi","join.form.o3":"Bir şehir / belediye","join.form.o4":"Bir şirket / geri dönüşümcü","join.form.o5":"Bir yatırımcı / STK","join.form.o6":"Sadece meraklıyım",
"join.form.ok":"✓ Teşekkürler! Bu demo hiçbir yere veri göndermez — ama üretimde ekibimiz 48 saat içinde gizlice sana ulaşır.",
"join.faq.h2":"Dürüst sorular, dürüst cevaplar",
"join.q1":"Bu gerçek istihdam mı, yoksa 'terapi tiyatrosu' mu?",
"join.a1":"Gerçek istihdam. Katılımcılar sözleşme imzalar, yerel asgarinin düzeyinde ya da üzerinde kazanır; jetonlar üstüne ek ödüldür — asla ücretin yerine geçmez.",
"join.q2":"Program sırasında nüks edersem?",
"join.a2":"Yerin korunur. Nüks, bağımlılığın tıbbi gidişatının parçasıdır. İşi duraklatır, klinik desteği yeniden başlatır; sağlık ekibin onaylayınca dönersin. Hasta olduğun için işten çıkarılmazsın.",
"join.q3":"Katılmak için ilacımı bırakmam gerekir mi?",
"join.a3":"Hayır — tam tersi. Tıbbi endikasyon varsa ilaçla tedavi finanse edilir ve teşvik edilir. Program doktorunla koordineli çalışır.",
"join.q4":"YZ beni birine bildirir mi?",
"join.a4":"Asla rızan olmadıkça. Raha'nın verisi sana aittir. Yalnızca isteğe bağlı danışman uyarısı vardır; kriz yükseltmeleri seni önemseyen insanlara gider — makamlara değil.",
"join.q5":"Gerçekten eski kariyerime dönebilir miyim?",
"join.a5":"Çoğu durumda evet. Raha'nın kariyer dönüşü planı becerileri dürüstçe yeniden inşa eder, boşluğu doğru anlatır ve yeteneğe göre işe alan ortak işverenlerle destekli staj ayarlar.",
"join.q6":"Pilot hangi şehirlerde?",
"join.a6":"Frankfurt, Tahran ve İstanbul'da pilot kohort planlıyoruz. Kaydol; sana en yakında neyin aktif olduğunu söyleyelim.",
"join.crisis.t":"🆘 Şu anda krizde misin?",
"join.crisis.p":"Sen ya da yanındaki kişi derhal tehlikedeyse (aşırı doz, intihar düşüncesi) şimdi yerel acil numarayı ara. Türkiye'de acil durum: 112; Yeşilay bağımlılık danışma hattı: 115. İran'da bağımlılık hattı: 09628. Almanya'da: 112. Sen önemlisin. Tek bir arama her şeyi başlatabilir."
};
/* ================= COP31 keys — all languages ================= */
Object.assign(window.I18N.en, {
"nav.cop31":"COP31",
"title.cop31":"GreenRoot at COP31 — Antalya & Istanbul",
"footer.contact2":"Frankfurt · Tehran · Istanbul (pilot cities)",
"home.cop.kicker":"November 2026 — Antalya & Istanbul",
"home.cop.t":"GreenRoot goes to COP31",
"home.cop.p":"Recovery is climate justice. Our trilingual campaign kit, pitch decks and protest messages are ready.",
"home.cop.b":"See the COP31 page",
"cop.hero.kicker":"COP31 — Antalya & Istanbul · 9–20 November 2026",
"cop.hero.h1":"Recovery is climate justice too",
"cop.hero.p":"The world's climate summit meets in Türkiye this November. GreenRoot will be there — in Antalya and at the Istanbul leaders' meetings — with one message: there is no just transition without the people the crisis left behind.",
"cop.countdown":"COP31 starts in {d} days — Antalya & Istanbul, 9–20 Nov 2026",
"cop.facts.t":"COP31 in one minute",
"cop.facts.f1":"📅 9–20 November 2026 — Antalya, Türkiye (Antalya EXPO Center)",
"cop.facts.f2":"🇹🇷 Host: Türkiye; COP31 President: Murat Kurum; Australia leads the negotiations",
"cop.facts.f3":"🏛 High-level leaders' meetings expected in Istanbul — our city of action",
"cop.facts.f4":"🌍 Peoples' Climate Summit — the civil-society space where voices like ours belong",
"cop.facts.src":"Based on the published COP31 schedule and public reporting.",
"cop.why.kicker":"Why we're going",
"cop.why.h2":"Why a recovery program belongs at a climate summit",
"cop.why.w1t":"Waste work is climate work",
"cop.why.w1p":"Cities cannot hit recycling targets without thousands of hands. GreenRoot turns a marginalized community into a trained green workforce — mitigation and social inclusion in one budget line.",
"cop.why.w2t":"Just transition must include people in recovery",
"cop.why.w2p":"Climate policy keeps saying \"no one left behind.\" People with addiction histories are among the most left-behind workers in our region — and the most motivated when someone finally offers structure and dignity.",
"cop.why.w3t":"Health is adaptation",
"cop.why.w3p":"Addiction worsens in heatwaves, displacement and disaster. GreenRoot is a replicable adaptation model: treatment funded by public-service work, resilient crews a city can call on in a crisis.",
"cop.ask.kicker":"Our campaign",
"cop.ask.h2":"Five asks we bring to the negotiators",
"cop.ask.a1":"Recognize recovery-through-work as climate finance: fund therapeutic green employment.",
"cop.ask.a2":"Include waste-picker and recovery communities in national just-transition plans.",
"cop.ask.a3":"Back city pilots — Istanbul, Frankfurt, Tehran — with open impact dashboards.",
"cop.ask.a4":"Set data rights for AI recovery tools: opt-in, participant-owned, never policing tools.",
"cop.ask.a5":"Count health outcomes next to CO₂: a tonne of waste diverted and a person in remission are both climate results.",
"cop.act.kicker":"Civil society",
"cop.act.h2":"Join us — peaceful, lawful, loud",
"cop.act.p":"GreenRoot joins the peaceful civil-society mobilization around COP31, including the Peoples' Climate Summit and public events. We act with respect for Turkish law and each other: stay peaceful, follow local assembly rules, look after one another.",
"cop.act.s1t":"🗣 Our slogans",
"cop.act.s1a":"\"Clean streets, clean starts!\"",
"cop.act.s1b":"\"Recovery is climate action!\"",
"cop.act.s1c":"\"No one left behind — not even us!\"",
"cop.act.s2t":"🤝 Meet the crew (demo)",
"cop.act.s2p":"Istanbul meet-ups planned in the month before COP31; Antalya presence during both summit weekends. Register on the Join page and we'll send times and places.",
"cop.act.s3t":"🧭 Stay safe",
"cop.act.s3p":"Emergency in Türkiye: 112. Addiction counseling (Yeşilay): 115. Know the assembly rules for your city, keep ID with you, and never attend actions alone — crew rules apply to protests too.",
"cop.kit.kicker":"Campaign kit",
"cop.kit.h2":"Take the message with you",
"cop.kit.p":"Trilingual pitch decks and a one-page explainer — print them, share them, hand them to a delegate, a journalist or your mayor.",
"cop.kit.d1":"Pitch deck — English",
"cop.kit.d2":"Pitch deck — فارسی",
"cop.kit.d3":"Pitch deck — Türkçe",
"cop.kit.d4":"One-pager (EN/FA/TR)",
"cop.cta.h2":"Be the crew that cleans two crises at once.",
"cop.cta.p":"Join the pilot, partner with us, or carry our message to Antalya and Istanbul.",
"cop.cta.b":"Join GreenRoot"
});
Object.assign(window.I18N.fa, {
"nav.cop31":"COP31",
"title.cop31":"گرینروت در COP31 — آنتالیا و استانبول",
"footer.contact2":"فرانکفورت · تهران · استانبول (شهرهای پایلوت)",
"home.cop.kicker":"نوامبر ۲۰۲۶ — آنتالیا و استانبول",
"home.cop.t":"گرینروت به COP31 میرود",
"home.cop.p":"بهبودی، عدالتِ اقلیمی است. کیت سهزبانهٔ کارزار، پایتچدکها و پیامهای اعتراضیِ ما آمادهاند.",
"home.cop.b":"صفحهٔ COP31 را ببینید",
"cop.hero.kicker":"COP31 — آنتالیا و استانبول · ۹ تا ۲۰ نوامبر ۲۰۲۶",
"cop.hero.h1":"بهبودی هم عدالتِ اقلیمی است",
"cop.hero.p":"اجلاس اقلیم جهان این نوامبر در ترکیه برگزار میشود. گرینروت هم آنجا خواهد بود — در آنتالیا و در نشستهای سران استانبول — با یک پیام: بدونِ آدمهایی که بحران جا گذاشته، «گذار عادلانه» معنا ندارد.",
"cop.countdown":"COP31 تا {d} روز دیگر آغاز میشود — آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶",
"cop.facts.t":"COP31 در یک دقیقه",
"cop.facts.f1":"📅 ۹ تا ۲۰ نوامبر ۲۰۲۶ — آنتالیا، ترکیه (مرکز اکسپو آنتالیا)",
"cop.facts.f2":"🇹🇷 میزبان: ترکیه؛ رئیس COP31: مرات قوروم؛ هدایت مذاکرات: استرالیا",
"cop.facts.f3":"🏛 نشستهای سطح بالای سران در استانبول — شهرِ اکشنِ ما",
"cop.facts.f4":"🌍 قلهٔ اقلیم مردمها — فضای جامعهٔ مدنی؛ جای صدایی مثل صدای ما",
"cop.facts.src":"بر پایهٔ برنامهٔ منتشرشدهٔ COP31 و گزارشهای عمومی.",
"cop.why.kicker":"چرا میرویم",
"cop.why.h2":"چرا یک برنامهٔ بهبودی جای خودش را در یک اجلاس اقلیمی دارد",
"cop.why.w1t":"کار پسماند، کارِ اقلیم است",
"cop.why.w1p":"شهرها بدون هزاران دست، هدفهای بازیافت را نمیزنند. گرینروت یک جامعهٔ بهحاشیهراندهشده را به نیروی کار سبزِ آموزشدیده تبدیل میکند — کاهش انتشار و جامعهپذیری در یک ردیف بودجه.",
"cop.why.w2t":"گذار عادلانه باید افراد در بهبودی را هم ببیند",
"cop.why.w2p":"سیاست اقلیمی مدام میگوید «هیچکس جا نمانَد». افرادی با سابقهٔ اعتیاد از جا ماندهترین نیروهای کار منطقهاند — و وقتی کسی سرانجام نظم و عزت پیشنهاد بدهد، باانگیزهترینها هم هستند.",
"cop.why.w3t":"سلامت، سازگاری است",
"cop.why.w3p":"اعتیاد در موج گرما، آوارهگی و بلایا بدتر میشود. گرینروت یک مدل سازگاریِ قابلتکثیر است: درمانِ تأمینشده با کارِ خدمت عمومی، و تیمهای باثباتی که شهر در بحران میتواند صدا بزند.",
"cop.ask.kicker":"کارزار ما",
"cop.ask.h2":"پنج خواستهای که سر میز مذاکره میبریم",
"cop.ask.a1":"بهبودی از راه کار بهعنوان تأمین مالی اقلیمی به رسمیت شناخته شود: کارِ سبزِ درمانی را تأمین مالی کنید.",
"cop.ask.a2":"جامعهٔ زبالهچینها و افراد در بهبودی در برنامههای گذار عادلانهٔ ملی دیده شوند.",
"cop.ask.a3":"از پایلوتهای شهری — استانبول، فرانکفورت، تهران — با داشبوردهای باز پشتیبانی شود.",
"cop.ask.a4":"حقوق داده برای ابزارهای هوش مصنوعی بهبودی تعیین شود: اختیاری، متعلق به خودِ فرد، هرگز ابزارِ پلیسگری نه.",
"cop.ask.a5":"پیامدهای سلامت را کنار CO₂ بشمارید: یک تن زبالهٔ بازیافتی و یک انسان در بهبودی، هر دو نتیجهٔ اقلیمیاند.",
"cop.act.kicker":"جامعهٔ مدنی",
"cop.act.h2":"به ما بپیوندید — مسالمتآمیز، قانونی، بلند",
"cop.act.p":"گرینروت به بسیج مسالمتآمیز جامعهٔ مدنی پیرامون COP31 میپیوندد؛ از جمله قلهٔ اقلیم مردمها و رویدادهای عمومی. با احترام به قانون ترکیه و به خودمان عمل میکنیم: مسالمتآمیز بمانیم، قواعد تجمع محلی را رعایت کنیم، مراقب هم باشیم.",
"cop.act.s1t":"🗣 شعارهای ما",
"cop.act.s1a":"«خیابان تمیز، آغازِ تمیز!»",
"cop.act.s1b":"«بهبودی، اقلیم-عمل است!»",
"cop.act.s1c":"«هیچکس جا نمانَد — حتی ما!»",
"cop.act.s2t":"🤝 با تیم ما دیدار کنید (نمونه)",
"cop.act.s2p":"قرارهای استانبول در ماه مانده به COP31 برنامهریزی میشود؛ حضور در آنتالیا در هر دو آخرهفتهٔ اجلاس. در صفحهٔ پیوستن ثبتنام کنید تا زمان و مکان را بفرستیم.",
"cop.act.s3t":"🧭 ایمن بمانید",
"cop.act.s3p":"اورژانس ترکیه: ۱۱۲. مشاورهٔ اعتیاد (یهشیلآی): ۱۱۵. قواعد تجمع شهرتان را بدانید، مدارکتان همراه باشد، و هرگز تنها به رویداد نروید — قاعدهٔ تیم، برای اعتراض هم هست.",
"cop.kit.kicker":"کیت کارزار",
"cop.kit.h2":"پیام را با خودتان ببرید",
"cop.kit.p":"پایتچدکهای سهزبانه و برشوانهٔ یکصفحهای — چاپ کنید، بفرستید، دستِ یک نماینده، یک روزنامهنگار یا شهردارتان بدهید.",
"cop.kit.d1":"پایتچدک — English",
"cop.kit.d2":"پایتچدک — فارسی",
"cop.kit.d3":"پایتچدک — Türkçe",
"cop.kit.d4":"برشوانه (EN/FA/TR)",
"cop.cta.h2":"همان تیمی باش که دو بحران را با هم تمیز میکند.",
"cop.cta.p":"به پایلوت بپیوندید، شریک شوید، یا پیام ما را به آنتالیا و استانبول برسانید.",
"cop.cta.b":"به گرینروت بپیوندید"
});
Object.assign(window.I18N.tr, {
"nav.cop31":"COP31",
"title.cop31":"GreenRoot COP31'de — Antalya & İstanbul",
"cop.hero.kicker":"COP31 — Antalya & İstanbul · 9–20 Kasım 2026",
"cop.hero.h1":"İyileşmek de iklim adaletidir",
"cop.hero.p":"Dünyanın iklim zirvesi bu kasım Türkiye'de toplanıyor. GreenRoot orada olacak — Antalya'da ve İstanbul'daki liderler toplantılarında — tek bir mesajla: krizin geride bıraktığı insanlar olmadan 'adil geçiş' olmaz.",
"cop.countdown":"COP31 {d} gün içinde başlıyor — Antalya ve İstanbul, 9–20 Kasım 2026",
"cop.facts.t":"COP31 bir dakikada",
"cop.facts.f1":"📅 9–20 Kasım 2026 — Antalya, Türkiye (Antalya EXPO Merkezi)",
"cop.facts.f2":"🇹🇷 Ev sahibi: Türkiye; COP31 Başkanı: Murat Kurum; müzakerelerin lideri: Avustralya",
"cop.facts.f3":"🏛 İstanbul'da beklenen liderler toplantıları — bizim eylem şehrimiz",
"cop.facts.f4":"🌍 Halkların İklim Zirvesi — bizim gibi seslerin yeri: sivil toplum alanı",
"cop.facts.src":"Yayımlanan COP31 takvimi ve kamuya açık haberlere dayanır.",
"cop.why.kicker":"Neden gidiyoruz",
"cop.why.h2":"Bir toparlanma programı neden bir iklim zirvesine aittir",
"cop.why.w1t":"Atık işi, iklim işidir",
"cop.why.w1p":"Şehirler binlerce el olmadan geri dönüşüm hedeflerini tutturamaz. GreenRoot; marginalized bir topluluğu eğitimli yeşil iş gücüne dönüştürür — azaltım ve sosyal katılım tek bütçe satırında.",
"cop.why.w2t":"Adil geçiş, toparlanmakta olanları da kapsamalı",
"cop.why.w2p":"İklim politikası sürekli 'kimse geride kalmasın' diyor. Bağımlılık geçmişi olan insanlar bölgemizin en çok geride bırakılmış işçileri arasındadır — ve birileri sonunda yapı ve onur teklif ettiğinde en motive olanları da onlardır.",
"cop.why.w3t":"Sağlık, uyumdur",
"cop.why.w3p":"Bağımlılık sıcak dalgalarında, yerinden edilmede ve afetlerde ağırlaşır. GreenRoot çoğaltılabilir bir uyum modelidir: kamu hizmeti işiyle finanse edilen tedavi; şehrin kriz anında çağırabileceği dirençli ekipler.",
"cop.ask.kicker":"Kampanyamız",
"cop.ask.h2":"Müzakerecilere götürdüğümüz beş talep",
"cop.ask.a1":"İşle toparlanma iklim finansmanı olarak tanınsın: terapötik yeşil istihdam fonlansın.",
"cop.ask.a2":"Çöp toplayıcı ve toparlanma toplulukları ulusal adil geçiş planlarına alınsın.",
"cop.ask.a3":"Şehir pilotları desteklensin — İstanbul, Frankfurt, Tahran — açık etki panolarıyla.",
"cop.ask.a4":"YZ destekli toparlanma araçları için veri hakları belirlensin: isteğe bağlı, katılımcıya ait, asla kolluk aracı değil.",
"cop.ask.a5":"Sağlık sonuçlarını CO₂'nin yanına koyun: geri kazanılmış bir ton atık da, remisyondaki bir insan da iklim sonucudur.",
"cop.act.kicker":"Sivil toplum",
"cop.act.h2":"Bize katıl — barışçıl, yasal, gürültülü",
"cop.act.p":"GreenRoot; Halkların İklim Zirvesi ve kamuya açık etkinlikler dahil, COP31 çevresindeki barışçıl sivil toplum hareketlenmesine katılır. Türkiye hukukuna ve birbirimize saygıyla hareket ederiz: barışçıl kalır, yerel toplanma kurallarına uyarız, birbirimize göz kulak oluruz.",
"cop.act.s1t":"🗣 Sloganlarımız",
"cop.act.s1a":"'Temiz sokaklar, temiz başlangıçlar!'",
"cop.act.s1b":"'İyileşmek iklim eylemidir!'",
"cop.act.s1c":"'Kimse geride kalmasın — biz de kalmyacağız!'",
"cop.act.s2t":"🤝 Ekiple buluş (demo)",
"cop.act.s2p":"COP31'den önceki ay İstanbul buluşmaları; zirvenin iki hafta sonunda Antalya varlığı. Katıl sayfasından kaydol; saat ve mekânı gönderelim.",
"cop.act.s3t":"🧭 Güvende kal",
"cop.act.s3p":"Türkiye'de acil: 112. Bağımlılık danışma (Yeşilay): 115. Şehrinin toplanma kurallarını öğren, kimliğini yanına al ve asla tek başına eyleme gitme — ekip kuralı eylemlerde de geçerlidir.",
"cop.kit.kicker":"Kampanya kiti",
"cop.kit.h2":"Mesajı yanında götür",
"cop.kit.p":"Üç dilli sunum desteleri ve tek sayfalık anlatım — yazdır, paylaş; bir delegasyona, gazeteciye ya da belediye başkanına uzat.",
"cop.kit.d1":"Sunum destesi — English",
"cop.kit.d2":"Sunum destesi — فارسی",
"cop.kit.d3":"Sunum destesi — Türkçe",
"cop.kit.d4":"Tek sayfa (EN/FA/TR)",
"cop.cta.h2":"İki krizi birden temizleyen ekiple gel.",
"cop.cta.p":"Pilota katıl, ortak ol ya da mesajımızı Antalya ve İstanbul'a taşı.",
"cop.cta.b":"GreenRoot'a katıl"
});
/* ================= Turkish chat / career / mood data ================= */
window.GR_EXTRA_TR = {
greeting:"Merhaba, ben Raha 🌱 GreenRoot'un toparlanma dostuyum. Bugün nasılsın? Aşağıdaki düğmelere dokun ya da serbestçe yaz — Türkçe ya da فارسی, ikisi de olur.",
fallback:"Seni duydum. Ben demo sürümüyüm — kriz, ruh hali, jeton, haftalık plan ve kariyer dönüşünü bilirim. Aşağıdan bir düğme seç ya da 'kriz', 'iş', 'bakiye' yaz…",
chips:[
{id:"craving", tr:"Kriz yaşıyorum"},
{id:"mood", tr:"Kendimi kötü hissediyorum"},
{id:"career", tr:"Kariyer dönüşü"},
{id:"balance", tr:"Jeton bakiyem"},
{id:"schedule", tr:"Bu haftanın planı"}
],
intents:{
crisis:"Söylediğine çok sevindim. Lütfen hemen bir insana ulaş:\n• Yerel acil numaran (Türkiye: 112)\n• Yeşilay danışmanlık hattı: 115\n• GreenRoot danışmanınin numarası kartında.\nYalnız değilsin ve bu an geçecek. Benimle kal — sonra ara.",
craving:"Krizi duydum — söylemen bile bir kazanç. Dalgayı sörfleyelim:\n1. Düşünceyi 10 dakikalık zamanlayıcıya koy.\n2. Benimle 3 kez 4-7-8 nefesi: al 4… tut 7… ver 8…\n3. Ekip arkadaşına yönel ya da yoldaşını ara.\nKriz zirve yapar ve geçer — genelde 20 dakikadan kısa. Buradayım.",
mood:"Anlattığın için teşekkürler. Kötü günler veridir, başarısızlık değil.\n• Bugünkü vardiya isteğe bağlı — dinlenmek de tedavidir.\n• Danışmanına bir mesaj yazmamı ister misin?\n• Küçük bir şey: su, pencere, 5 yavaş nefes. Şimdilik bu yeter.",
career:"Kariyer dönüşü en sevdiğim konu 💼 Planının 3 adımı var: beceri haritası → program içinde ücretli tazeleme rolü → ortak bir işverenle yerleştirme.\nEski mesleğini söyle — şoför, hemşire, muhasebeci, tamirci, öğretmen, aşçı — ya da sohbetin altındaki Kariyer dönüşü demosunu dene.",
balance:"Jeton bakiyesi: 340 🪙\n• Bu hafta: +60 (3 vardiya)\n• Mevcut ödüller: otobüs kartı (40) · telefon kredisi (25) · kaynak kursu (220)\nİpucu: cüzdanda hedef koy — hedefler bağlılığı yaklaşık iki katına çıkarır.",
schedule:"Bu haftanın planı:\n• Pzt / Çar / Cum 08:00 — temizlik vardiyası (depoda buluşma)\n• Sal 17:00 — grup terapisi\n• Per 16:00 — Raha seansı + beceri dersi\nYağmur planı: kapalı ayrıştırma hattı. Bir gün kaçtı mı? Olur — mentoruna söyle, yerin güvende.",
trash:"Bugünkü ekipler 214 kg topladı: 96 kg PET · 41 kg metal · 52 kg kâğıt · 25 kg cam.\nYaklaşık €118 tedavi fonuna — ve atölyeye gidecek 3 yüz siperi için yeterli pul. Bunu sen gerçekleştiriyorsun.",
about:"Ben Raha — 'rehâ' özgürlük demek. Programın YZ dostuyum: kriz SOS'u, ruh hali kontrolleri, jeton cüzdanı ve kariyer dönüşü koçu. İnsan gözetiminde bir araçtım — klinik kararları danışmanın ve doktorların verir. Veri politikam basit: hikâyen sana ait.",
thanks:"Ne zaman. Ben bunun için buradayım — yarın check-in'de görüşür müyüz? 🌱"
},
mood:{
1:"Çok kötü — yalnız değilsin. 'Kriz yaşıyorum'/SOS'a dokun ya da danışmanını ara. Bir check-in işaretledim.",
2:"Kötü — kaydettiğin için teşekkürler. Bir SOS seansı ya da erken yatmayı düşün.",
3:"İdare eder günler de sayılır. Kaydedildi.",
4:"İyi — kaydedildi. Ritmi koru.",
5:"Harika bir gün — kaydedildi. Toparlanma böyle serilerle kurulur. 🌱"
},
career:{
driver:{title:"🚚 Şoför — dönüş planı",
s1:"Ehliyet ve sicil kontrolü: ehliyet durumunu doğrularız; beceri fonu yenileme kursunu karşılar.",
s2:"Temizlik ekiplerinin lojistiğinde 6 ücretli hafta yedek şoför — temiz vardiya sertifikasıyla.",
s3:"Raha özgeçmişini 12+ ay belgelenmiş güvenilirlik üzerine kurar; sonra ortak lojistik firmalarıyla yerleştirir.",
story:"Ekipte geçen zaman bir boşluk değil — güvenilirlik kanıtıdır."},
nurse:{title:"🧑⚕️ Hemşire / sağlık çalışanı — dönüş planı",
s1:"Düşük yoğunluklu rollerle klinik yaşama dönüş: ekipler içinde hijyen ve sağlık taraması turları.",
s2:"Beceri yenileme: BLS tekrarı, ruhsat evrakları — beceri fonu destekli.",
s3:"Ortak kliniklerde destekli vardiyalar; Raha kademeli tam dönüş planını kurar.",
story:"Kendine vermeyi öğrendiğin bakım, artık referansındır."},
accountant:{title:"🧾 Muhasebeci — dönüş planı",
s1:"Ücretsiz değerlendirmelerle beceri denetimi (Excel, ön muhasebe) — bir hafta içinde boşluk haritası.",
s2:"Altı hafta yazılım tazeleme + gerçek rol: ekiplerin malzeme gelirini saymak ve raporlamak.",
s3:"Raha özgeçmişi '12 ay temiz veri' çerçevesiyle kurar; ortak firmalarla mülakat pratiği yapar.",
story:"Toparlanmada inşa ettiğin disiplin, tam olarak muhasebenin aradığı şeydir."},
mechanic:{title:"🔧 Tamirci — dönüş planı",
s1:"Atölye değerlendirmesi: araç-gereç, güvenlik, mevcut beceriler — teknik bir mentorla.",
s2:"Geri dönüşüm hattının makineleri ve araçları için sahada belgelenmiş bakım deneyimi.",
s3:"Beceri fonundan uzmanlık sertifikası (örn. elektromekanik) + ortak atölyelere yerleştirme.",
story:"Hayata döndürdüğün makineler, en iyi özgeçmişindir."},
teacher:{title:"🧑🏫 Öğretmen — dönüş planı",
s1:"Dürüst anlatı planı: mülakatta boşluğu nasıl anlatacağını Raha ile güç olana dek pratik et.",
s2:"Gerçek sınıf: ekibin temizlediği parklarda okul gruplarına çevre okuryazarlığı dersleri.",
s3:"Öğretmenlik sertifikası tazeleme + ortak okullarda asistanlık; tam kademe çıkışa kadar.",
story:"Toparlanman, gelecekteki sınıfının alacağı en derin derstir."},
cook:{title:"🍳 Aşçı — dönüş planı",
s1:"Gıda güvenliği ve hijyen sertifikası — resmî; masrafı beceri fonunda.",
s2:"Gerçek hacim deneyimi: her gün 50+ kişiye ekip yemeği pişirmek.",
s3:"Ortak mutfakta mentorlu destekli staj; ardından yarı zamanlı ya da tam zamanlı yerleştirme.",
story:"Ekip için pişirdiğin yemekler, dönüşünün ilk siparişidir."}
}
};
})();
/* COP31 areas section + join modal keys */
Object.assign(window.I18N.en, {
"ar.cop.h2":"Ten crews across Istanbul — join yours",
"ar.cop.all":"All 10 districts",
"ar.cop.more":"…and more: Şişli · Bakırköy · Üsküdar · Beyoğlu · Sarıyer · Maltepe · Kartal — see the areas page."
});
Object.assign(window.I18N.fa, {
"ar.cop.h2":"ده تیم در سراسر استانبول — تیم خودتان را بسازید",
"ar.cop.all":"هر ۱۰ منطقه",
"ar.cop.more":"و موارد دیگر: شیشلی · باکرکوی · اسکودار · بیاوغلو · سارییر · مالتپه · كارتال — صفحهٔ مناطق را ببینید."
});
Object.assign(window.I18N.tr, {
"ar.cop.h2":"İstanbul genelinde on ekip — sizinkine katılın",
"ar.cop.all":"10 bölgenin tümü",
"ar.cop.more":"…ve devamı: Şişli · Bakırköy · Üsküdar · Beyoğlu · Sarıyer · Maltepe · Kartal — bölgeler sayfasına bakın."
});
/* ===== Podcast page keys ===== */
Object.assign(window.I18N.en, {
"nav.podcast":"Podcast",
"title.podcast":"Podcast & media kit — GreenRoot",
"pod.hero.kicker":"Listen in three languages","pod.hero.h1":"The GreenRoot podcast",
"pod.hero.p":"One story in three voices: what GreenRoot is, the science behind it, and the five asks we carry to COP31. Listen here, or download and share.",
"pod.ep.en.t":"Episode 1 · English","pod.ep.tr.t":"Bölüm 1 · Türkçe","pod.ep.fa.t":"قسمت ۱ · فارسی",
"pod.ep.s":"What is GreenRoot? · ~2.5 min · recovery, green work, AI, COP31 asks",
"pod.dl":"Download MP3 ↓","pod.tr":"Transcript",
"pod.fa.soon":"⏳ Persian audio — being finalized, ready in the next update",
"pod.kit.kicker":"Media kit","pod.kit.h2":"Read it, print it, share it",
"pod.kit.b":"Booklet — 3 pages (EN/FA/TR)","pod.kit.o":"One-pager (EN/FA/TR)","pod.kit.d":"Pitch decks ×3 (EN/FA/TR)","pod.kit.m":"Mirror on Hugging Face",
"pod.trk.kicker":"Full transcripts","pod.trk.h2":"Read every word",
"pod.cta.h2":"Press play. Join a crew. Change two things at once.",
"pod.cta.p":"Every listen is a seed — share the episode with one person who needs a second chance."
});
Object.assign(window.I18N.fa, {
"nav.podcast":"پادکست",
"title.podcast":"پادکست و کیت رسانه — گرینروت",
"pod.hero.kicker":"به سه زبان گوش بدهید","pod.hero.h1":"پادکست گرینروت",
"pod.hero.p":"یک روایت به سه زبان: گرینروت چیست، علم پشت آن چیست، و پنج خواستهای که به COP31 میبریم. همینجا گوش بدهید یا دانلود و به اشتراک بگذارید.",
"pod.ep.en.t":"قسمت ۱ · English","pod.ep.tr.t":"قسمت ۱ · Türkçe","pod.ep.fa.t":"قسمت ۱ · فارسی",
"pod.ep.s":"گرینروت چیست؟ · ~۲.۵ دقیقه · بهبودی، کار سبز، هوش مصنوعی، خواستههای COP31",
"pod.dl":"دانلود MP3 ↓","pod.tr":"متن کامل",
"pod.fa.soon":"⏳ صدای فارسی — در حال نهایی شدن، در بهروزرسانی بعدی آماده میشود",
"pod.kit.kicker":"کیت رسانه","pod.kit.h2":"بخوانید، چاپ کنید، به اشتراک بگذارید",
"pod.kit.b":"دفترچه — ۳ صفحه (EN/FA/TR)","pod.kit.o":"برشوانه (EN/FA/TR)","pod.kit.d":"پایتچدک ×۳ (EN/FA/TR)","pod.kit.m":"آینه در Hugging Face",
"pod.trk.kicker":"متنهای کامل","pod.trk.h2":"کلمه به کلمه بخوانید",
"pod.cta.h2":"دکمهٔ پخش را بزنید. به تیمی بپیوندید. دو چیز را با هم تغییر دهید.",
"pod.cta.p":"هر پخش یک دانه است — قسمت را با یک نفری بفرستید که شانسِ دومی لازم دارد."
});
Object.assign(window.I18N.tr, {
"nav.podcast":"Podcast",
"title.podcast":"Podcast & medya kiti — GreenRoot",
"pod.hero.kicker":"Üç dilde dinleyin","pod.hero.h1":"GreenRoot podcast'i",
"pod.hero.p":"Üç sesle tek hikâye: GreenRoot nedir, arkasındaki bilim ne, ve COP31'e taşıdığımız beş talep. Burada dinleyin ya da indirip paylaşın.",
"pod.ep.en.t":"Bölüm 1 · English","pod.ep.tr.t":"Bölüm 1 · Türkçe","pod.ep.fa.t":"Bölüm 1 · Farsça",
"pod.ep.s":"GreenRoot nedir? · ~2,5 dk · toparlanma, yeşil iş, YZ, COP31 talepleri",
"pod.dl":"MP3 indir ↓","pod.tr":"Metin",
"pod.fa.soon":"⏳ Farsça ses — tamamlanıyor, sonraki güncellemede hazır",
"pod.kit.kicker":"Medya kiti","pod.kit.h2":"Okuyun, yazdırın, paylaşın",
"pod.kit.b":"Broşür — 3 sayfa (EN/FA/TR)","pod.kit.o":"Tek sayfa (EN/FA/TR)","pod.kit.d":"Sunum desteleri ×3 (EN/FA/TR)","pod.kit.m":"Hugging Face yansısı",
"pod.trk.kicker":"Tam metinler","pod.trk.h2":"Her kelimeyi okuyun",
"pod.cta.h2":"Oynat'a bas. Bir ekibe katıl. İki şeyi aynı anda değiştir.",
"pod.cta.p":"Her dinleme bir tohumdur — bölümü ikinci şansa ihtiyacı olan birine gönderin."
});
/* ===== UX pass keys ===== */
Object.assign(window.I18N.en, {
"a11y.skip":"Skip to content","pod.share":"Copy link","pod.copied":"Copied!","pod.cta.b2":"Join a crew",
"ar.back":"← All areas"
});
Object.assign(window.I18N.fa, {
"a11y.skip":"پرش به محتوا","pod.share":"کپی لینک","pod.copied":"کپی شد!","pod.cta.b2":"پیوستن به تیم",
"ar.back":"← همهٔ مناطق"
});
Object.assign(window.I18N.tr, {
"a11y.skip":"İçeriğe atla","pod.share":"Bağlantıyı kopyala","pod.copied":"Kopyalandı!","pod.cta.b2":"Ekibe katıl",
"ar.back":"← Tüm bölgeler"
});
</script>
<script>
(function(){ "use strict";
if(!window.I18N) window.I18N={en:{},fa:{},tr:{}};
Object.assign(window.I18N.en, {
"nav.areas": "Istanbul areas",
"ar.index.kicker": "Ten districts, one city",
"ar.index.h1": "GreenRoot Istanbul crews",
"ar.index.lead": "Ten neighborhood crews across Istanbul — European and Asian side. Each one: paid green roles for people in recovery, two supported shifts a week, therapy funded by recycling. Pick your district.",
"ar.index.note": "Meetup points are set with the first registered members of each crew — your vote counts. Istanbul emergency: 112 · Yeşilay: 115.",
"ar.kadikoy.kicker": "Istanbul crew · Kadıköy",
"ar.kadikoy.h1": "GreenRoot Kadıköy",
"ar.kadikoy.lead": "The GreenRoot crew for Kadıköy: two supported cleanup shifts a week in Coastline, parks and market streets — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.kadikoy.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.kadikoy.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.kadikoy.cop": "This crew carries Kadıköy's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.besiktas.kicker": "Istanbul crew · Beşiktaş",
"ar.besiktas.h1": "GreenRoot Beşiktaş",
"ar.besiktas.lead": "The GreenRoot crew for Beşiktaş: two supported cleanup shifts a week in Bosphorus shore and park entrances — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.besiktas.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.besiktas.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.besiktas.cop": "This crew carries Beşiktaş's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.sisli.kicker": "Istanbul crew · Şişli",
"ar.sisli.h1": "GreenRoot Şişli",
"ar.sisli.lead": "The GreenRoot crew for Şişli: two supported cleanup shifts a week in Boulevards, squares and metro exits — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.sisli.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.sisli.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.sisli.cop": "This crew carries Şişli's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.fatih.kicker": "Istanbul crew · Fatih",
"ar.fatih.h1": "GreenRoot Fatih",
"ar.fatih.lead": "The GreenRoot crew for Fatih: two supported cleanup shifts a week in Historic streets and neighborhood parks — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.fatih.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.fatih.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.fatih.cop": "This crew carries Fatih's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.bakirkoy.kicker": "Istanbul crew · Bakırköy",
"ar.bakirkoy.h1": "GreenRoot Bakırköy",
"ar.bakirkoy.lead": "The GreenRoot crew for Bakırköy: two supported cleanup shifts a week in Seaside walkways and shopping streets — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.bakirkoy.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.bakirkoy.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.bakirkoy.cop": "This crew carries Bakırköy's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.uskudar.kicker": "Istanbul crew · Üsküdar",
"ar.uskudar.h1": "GreenRoot Üsküdar",
"ar.uskudar.lead": "The GreenRoot crew for Üsküdar: two supported cleanup shifts a week in Shoreline, hills and neighborhood squares — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.uskudar.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.uskudar.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.uskudar.cop": "This crew carries Üsküdar's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.beyoglu.kicker": "Istanbul crew · Beyoğlu",
"ar.beyoglu.h1": "GreenRoot Beyoğlu",
"ar.beyoglu.lead": "The GreenRoot crew for Beyoğlu: two supported cleanup shifts a week in Side streets off the main corridor — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.beyoglu.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.beyoglu.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.beyoglu.cop": "This crew carries Beyoğlu's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.sariyer.kicker": "Istanbul crew · Sarıyer",
"ar.sariyer.h1": "GreenRoot Sarıyer",
"ar.sariyer.lead": "The GreenRoot crew for Sarıyer: two supported cleanup shifts a week in Bosphorus villages and forest edges — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.sariyer.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.sariyer.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.sariyer.cop": "This crew carries Sarıyer's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.maltepe.kicker": "Istanbul crew · Maltepe",
"ar.maltepe.h1": "GreenRoot Maltepe",
"ar.maltepe.lead": "The GreenRoot crew for Maltepe: two supported cleanup shifts a week in Long coastline and event lawns — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.maltepe.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.maltepe.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.maltepe.cop": "This crew carries Maltepe's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
"ar.kartal.kicker": "Istanbul crew · Kartal",
"ar.kartal.h1": "GreenRoot Kartal",
"ar.kartal.lead": "The GreenRoot crew for Kartal: two supported cleanup shifts a week in Harbor shore and city squares — paid roles for people in recovery, tokens for every shift, and therapy and medicine funded by the recycling income.",
"ar.kartal.meet": "Meetup point: announced to registered crew members. Register on the Join page — it takes one minute.",
"ar.kartal.sched": "Draft rhythm: one weekday morning shift + one weekend shift · equipment and safety gear provided · Raha logs your check-in.",
"ar.kartal.cop": "This crew carries Kartal's voice to COP31 (Antalya & Istanbul, 9–20 November 2026): clean streets, clean starts.",
});
Object.assign(window.I18N.fa, {
"nav.areas": "مناطق استانبول",
"ar.index.kicker": "ده منطقه، یک شهر",
"ar.index.h1": "تیمهای گرینروت استانبول",
"ar.index.lead": "ده تیم محلهای در سراسر استانبول — سمت اروپایی و آسیایی. هر تیم: نقشهای سبزِ حقوقدار برای افراد در بهبودی، دو شیفت همراهیشده در هفته، درمانِ تأمینشده با بازیافت. منطقهٔ خودتان را انتخاب کنید.",
"ar.index.note": "نقاط قرار، با نخستین اعضای ثبتنامشدهٔ هر تیم تعیین میشود — رأی شما مؤثر است. اورژانس استانبول: ۱۱۲ · یشیلآی: ۱۱۵.",
"ar.kadikoy.kicker": "تیم استانبول · کادیکوی",
"ar.kadikoy.h1": "گرینروت کادیکوی",
"ar.kadikoy.lead": "تیم گرینروت در کادیکوی: دو شیفت پاکسازیِ همراهیشده در هفته در ساحل، پارکها و خیابانهای بازار — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.kadikoy.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.kadikoy.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.kadikoy.cop": "این تیم، صدای کادیکوی را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.besiktas.kicker": "تیم استانبول · بشیکتاش",
"ar.besiktas.h1": "گرینروت بشیکتاش",
"ar.besiktas.lead": "تیم گرینروت در بشیکتاش: دو شیفت پاکسازیِ همراهیشده در هفته در کرانهٔ بسفر و ورودی پارکها — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.besiktas.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.besiktas.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.besiktas.cop": "این تیم، صدای بشیکتاش را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.sisli.kicker": "تیم استانبول · شیشلی",
"ar.sisli.h1": "گرینروت شیشلی",
"ar.sisli.lead": "تیم گرینروت در شیشلی: دو شیفت پاکسازیِ همراهیشده در هفته در بلوارها، میدانها و خروجیهای مترو — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.sisli.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.sisli.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.sisli.cop": "این تیم، صدای شیشلی را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.fatih.kicker": "تیم استانبول · فاتح",
"ar.fatih.h1": "گرینروت فاتح",
"ar.fatih.lead": "تیم گرینروت در فاتح: دو شیفت پاکسازیِ همراهیشده در هفته در خیابانهای تاریخی و پارکهای محله — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.fatih.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.fatih.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.fatih.cop": "این تیم، صدای فاتح را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.bakirkoy.kicker": "تیم استانبول · باکرکوی",
"ar.bakirkoy.h1": "گرینروت باکرکوی",
"ar.bakirkoy.lead": "تیم گرینروت در باکرکوی: دو شیفت پاکسازیِ همراهیشده در هفته در پیادهراههای ساحلی و خیابانهای خرید — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.bakirkoy.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.bakirkoy.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.bakirkoy.cop": "این تیم، صدای باکرکوی را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.uskudar.kicker": "تیم استانبول · اسکودار",
"ar.uskudar.h1": "گرینروت اسکودار",
"ar.uskudar.lead": "تیم گرینروت در اسکودار: دو شیفت پاکسازیِ همراهیشده در هفته در کرانه، تپهها و میدانهای محله — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.uskudar.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.uskudar.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.uskudar.cop": "این تیم، صدای اسکودار را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.beyoglu.kicker": "تیم استانبول · بیاوغلو",
"ar.beyoglu.h1": "گرینروت بیاوغلو",
"ar.beyoglu.lead": "تیم گرینروت در بیاوغلو: دو شیفت پاکسازیِ همراهیشده در هفته در کوچههای اطراف محور اصلی — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.beyoglu.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.beyoglu.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.beyoglu.cop": "این تیم، صدای بیاوغلو را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.sariyer.kicker": "تیم استانبول · سارییر",
"ar.sariyer.h1": "گرینروت سارییر",
"ar.sariyer.lead": "تیم گرینروت در سارییر: دو شیفت پاکسازیِ همراهیشده در هفته در روستاهای بسفر و حاشیهٔ جنگل — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.sariyer.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.sariyer.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.sariyer.cop": "این تیم، صدای سارییر را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.maltepe.kicker": "تیم استانبول · مالتپه",
"ar.maltepe.h1": "گرینروت مالتپه",
"ar.maltepe.lead": "تیم گرینروت در مالتپه: دو شیفت پاکسازیِ همراهیشده در هفته در ساحل طولانی و چمنهای رویداد — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.maltepe.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.maltepe.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.maltepe.cop": "این تیم، صدای مالتپه را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
"ar.kartal.kicker": "تیم استانبول · كارتال",
"ar.kartal.h1": "گرینروت كارتال",
"ar.kartal.lead": "تیم گرینروت در كارتال: دو شیفت پاکسازیِ همراهیشده در هفته در کرانهٔ بندر و میدانهای شهر — نقشهای حقوقدار برای افراد در بهبودی، توکن برای هر شیفت، و تأمین درمان و دارو از درآمد بازیافت.",
"ar.kartal.meet": "نقطهٔ قرار: به اعضای ثبتنامشده اعلام میشود. در صفحهٔ پیوستن ثبتنام کنید — یک دقیقه بیشتر وقت نمیگیرد.",
"ar.kartal.sched": "ریتم پیشنهادی: یک شیفت صبح در هفته + یک شیفت آخر هفته · تجهیزات و وسایل ایمنی ارائه میشود · رها چک-این را ثبت میکند.",
"ar.kartal.cop": "این تیم، صدای كارتال را به COP31 میرساند (آنتالیا و استانبول، ۹ تا ۲۰ نوامبر ۲۰۲۶): خیابان تمیز، آغازِ تمیز.",
});
Object.assign(window.I18N.tr, {
"nav.areas": "İstanbul bölgeleri",
"ar.index.kicker": "On bölge, tek şehir",
"ar.index.h1": "GreenRoot İstanbul ekipleri",
"ar.index.lead": "İstanbul genelinde on mahalle ekibi — Avrupa ve Anadolu yakası. Her biri: toparlanmakta olanlar için ücretli yeşil roller, haftada iki destekli vardiya, geri dönüşümle finanse edilen terapi. Bölgenizi seçin.",
"ar.index.note": "Buluşma noktaları her ekibin ilk kayıtlı üyeleriyle belirlenir — oyunuz önemli. İstanbul acil: 112 · Yeşilay: 115.",
"ar.kadikoy.kicker": "İstanbul ekibi · Kadıköy",
"ar.kadikoy.h1": "GreenRoot Kadıköy",
"ar.kadikoy.lead": "Kadıköy GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Sahil, parklar ve çarşı sokakları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.kadikoy.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.kadikoy.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.kadikoy.cop": "Bu ekip, Kadıköy sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.besiktas.kicker": "İstanbul ekibi · Beşiktaş",
"ar.besiktas.h1": "GreenRoot Beşiktaş",
"ar.besiktas.lead": "Beşiktaş GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Boğaz kıyısı ve park girişleri bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.besiktas.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.besiktas.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.besiktas.cop": "Bu ekip, Beşiktaş sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.sisli.kicker": "İstanbul ekibi · Şişli",
"ar.sisli.h1": "GreenRoot Şişli",
"ar.sisli.lead": "Şişli GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Bulvarlar, meydanlar ve metro çıkışları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.sisli.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.sisli.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.sisli.cop": "Bu ekip, Şişli sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.fatih.kicker": "İstanbul ekibi · Fatih",
"ar.fatih.h1": "GreenRoot Fatih",
"ar.fatih.lead": "Fatih GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Tarihî sokaklar ve mahalle parkları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.fatih.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.fatih.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.fatih.cop": "Bu ekip, Fatih sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.bakirkoy.kicker": "İstanbul ekibi · Bakırköy",
"ar.bakirkoy.h1": "GreenRoot Bakırköy",
"ar.bakirkoy.lead": "Bakırköy GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Deniz kenarı yolları ve çarşı sokakları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.bakirkoy.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.bakirkoy.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.bakirkoy.cop": "Bu ekip, Bakırköy sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.uskudar.kicker": "İstanbul ekibi · Üsküdar",
"ar.uskudar.h1": "GreenRoot Üsküdar",
"ar.uskudar.lead": "Üsküdar GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Kıyı, tepeler ve mahalle meydanları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.uskudar.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.uskudar.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.uskudar.cop": "Bu ekip, Üsküdar sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.beyoglu.kicker": "İstanbul ekibi · Beyoğlu",
"ar.beyoglu.h1": "GreenRoot Beyoğlu",
"ar.beyoglu.lead": "Beyoğlu GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Ana aksın yan sokakları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.beyoglu.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.beyoglu.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.beyoglu.cop": "Bu ekip, Beyoğlu sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.sariyer.kicker": "İstanbul ekibi · Sarıyer",
"ar.sariyer.h1": "GreenRoot Sarıyer",
"ar.sariyer.lead": "Sarıyer GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Boğaz köyleri ve orman kenarları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.sariyer.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.sariyer.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.sariyer.cop": "Bu ekip, Sarıyer sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.maltepe.kicker": "İstanbul ekibi · Maltepe",
"ar.maltepe.h1": "GreenRoot Maltepe",
"ar.maltepe.lead": "Maltepe GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Uzun kıyı ve etkinlik çayırları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.maltepe.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.maltepe.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.maltepe.cop": "Bu ekip, Maltepe sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
"ar.kartal.kicker": "İstanbul ekibi · Kartal",
"ar.kartal.h1": "GreenRoot Kartal",
"ar.kartal.lead": "Kartal GreenRoot ekibi: haftada iki destekli temizlik vardiyası — Sahil ve kent meydanları bölgesinde. Toparlanmakta olanlar için ücretli roller, her vardiya için jeton; terapi ve ilaç, geri dönüşüm geliriyle finanse edilir.",
"ar.kartal.meet": "Buluşma noktası: kayıtlı ekip üyelerine duyurulur. Katıl sayfasından kaydolun — bir dakika sürer.",
"ar.kartal.sched": "Önerilen ritim: hafta içi bir sabah vardiyası + hafta sonu bir vardiya · ekipman ve güvenlik malzemesi sağlanır · Raha check-in'i kaydeder.",
"ar.kartal.cop": "Bu ekip, Kartal sesini COP31'e taşır (Antalya ve İstanbul, 9–20 Kasım 2026): temiz sokaklar, temiz başlangıçlar.",
});
})();
Object.assign(window.I18N.en, {
"ar.meet.t":"Meetup point","ar.meet.b":"Register now →",
"ar.sched.t":"Shift rhythm","ar.cop.t":"To COP31","ar.cop.b":"COP31 page →",
"ar.other.k":"Other districts","ar.other.t":"Find your crew",
"ar.idx.cta":"Open crew page →"
});
Object.assign(window.I18N.fa, {
"ar.meet.t":"نقطهٔ قرار","ar.meet.b":"همین حالا ثبتنام کنید ←",
"ar.sched.t":"ریتم شیفتها","ar.cop.t":"به سوی COP31","ar.cop.b":"صفحهٔ COP31 ←",
"ar.other.k":"مناطق دیگر","ar.other.t":"تیم خودتان را پیدا کنید",
"ar.idx.cta":"صفحهٔ تیم ←"
});
Object.assign(window.I18N.tr, {
"ar.meet.t":"Buluşma noktası","ar.meet.b":"Hemen kaydol →",
"ar.sched.t":"Vardiya ritmi","ar.cop.t":"COP31'e","ar.cop.b":"COP31 sayfası →",
"ar.other.k":"Diğer bölgeler","ar.other.t":"Ekibinizi bulun",
"ar.idx.cta":"Ekip sayfası →"
});
</script>
<script>
/* Researched outreach directory UI: EN / FA / TR. */
(function(){
var X={"en": {"pf.more": "More filters & saved leads", "pf.xlsshort": "Download Excel", "nav.partners": "Partner finder", "title.partners": "Partner finder — GreenRoot", "pf.kicker": "Research directory · 11 October 2026", "pf.title": "Find the people.<br>Build the pilot.", "pf.lead": "210 source-backed outreach leads for GreenRoot — recovery, recycling, green work and research. Start locally. Ask for one small, safe collaboration.", "pf.browse": "Explore the directory", "pf.download": "Download Excel · 210 leads", "pf.stat1": "Istanbul leads", "pf.stat2": "Other Türkiye leads", "pf.stat3": "Iran · Tehran leads", "pf.heroNote": "Potential collaborators, not confirmed partners. Branches and public units are labelled.", "pf.artLabel": "Three regions. One starting point.", "pf.artNote": "An outreach map, not a map of existing partnerships.", "pf.truth": "What these numbers mean", "pf.truthText": "210 contact entries across 88 parent institutions: 120 branches and 5 public units are included. 204 entries have a published public phone; 6 have no phone found in the checked source. The researcher has made no calls or collaboration messages. A listed number is not a tested line.", "pf.heading": "Your outreach workspace", "pf.sub": "Search official names, places or sectors. Open the source before your first call.", "pf.all": "All regions · 210", "pf.istanbul": "Istanbul · 100", "pf.turkey": "Other Türkiye · 100", "pf.iran": "Iran · 10", "pf.searchLabel": "Search the directory", "pf.searchPh": "Name, district, phone or topic…", "pf.categoryLabel": "Cooperation area", "pf.catAll": "All areas", "pf.cat.civic": "Municipalities", "pf.cat.recovery": "Recovery & mental health", "pf.cat.recycling": "Recycling & waste", "pf.cat.environment": "Environment & climate", "pf.cat.employment": "Work & enterprise", "pf.cat.research": "Research & evaluation", "pf.cat.family": "Families & safeguarding", "pf.placeLabel": "City / Istanbul district", "pf.placeAll": "All places", "pf.typeLabel": "Entry type", "pf.typeAll": "Organizations + branches + units", "pf.type.organization": "Institution / organization", "pf.type.branch": "Local branch", "pf.type.public_unit": "Public / university unit", "pf.sortLabel": "Sort", "pf.sort.priority": "Suggested first contacts", "pf.sort.name": "Name A–Z", "pf.shortlist": "Suggested first contacts only", "pf.phoneOnly": "Has a published phone", "pf.savedOnly": "My saved leads only", "pf.reset": "Reset filters", "pf.export": "Export filtered CSV", "pf.results": "{n} results · {p} parent institutions", "pf.savedCount": "{n} saved on this device", "pf.localNote": "Saved leads stay in this browser only. They are not sent to GreenRoot.", "pf.empty": "No matching leads. Clear a filter or try a different spelling.", "pf.prev": "Previous", "pf.next": "Next", "pf.page": "Page {p} of {n}", "pf.showing": "Showing {a}–{b} of {n}", "pf.start": "Suggested first contact", "pf.parent": "Parent institution", "pf.ask": "Proposed conversation", "pf.call": "Call public number", "pf.noPhone": "No public phone found — use the source / contact page.", "pf.domestic": "Türkiye domestic short line; may not connect from abroad.", "pf.email": "Email", "pf.website": "Website / contact route", "pf.source": "Source", "pf.checked": "Source checked: 11 Oct 2026", "pf.direct": "Official page retrieved", "pf.indexed": "Official source, search-index evidence", "pf.untested": "Published number · not called", "pf.save": "Save lead", "pf.unsave": "Saved", "pf.copy": "Copy contact", "pf.copied": "Contact copied", "pf.copyFailed": "Copy is unavailable here. Select the phone or download the spreadsheet.", "pf.priorityNote": "Priority is an editorial judgement of thematic fit — not a probability of funding or agreement.", "pf.method": "Sources, limits & a safe first approach", "pf.method1": "Names and contact routes come from official websites and public institutional directories. Original Turkish and Persian names are preserved. The check date records our review, not the source’s last update.", "pf.method2": "A public line can be a switchboard, a branch line or a domestic call centre. Ask to be connected to partnerships, environmental services, supported employment or the hospital administration. Do not use emergency or counselling hotlines for sales.", "pf.method3": "These are researched leads, not endorsements, signed agreements or an exhaustive census. Clinical licensing, foreign-founder eligibility, work permits and funding eligibility still need local professional checks. GreenRoot remains a concept prototype; other site metrics are demo data.", "pf.method4": "Keep outreach individual and respectful. Do not send patient names, diagnoses or recovery records. Clinical care must be independent of work output; any pilot needs lawful contracts, real wages, safety assessment, insurance and clinical oversight.", "pf.planTitle": "Turn a directory into a first meeting", "pf.plan1": "Choose five local leads", "pf.plan1p": "Start with one recovery organization, one recycler, one municipality, one employment route and one research team.", "pf.plan2": "Make a small, specific ask", "pf.plan2p": "Request a 20-minute introduction. Offer a written concept note, a waste-flow sketch and a safety-first pilot outline — no invented outcome claims.", "pf.plan3": "Record a real next step", "pf.plan3p": "Use the spreadsheet to record the date, contact owner and agreed follow-up. Follow up once after 5–7 business days; respect a decline.", "pf.templateTitle": "A first message you can adapt", "pf.templateSub": "Replace the bracketed fields before sending. This page never sends messages for you.", "pf.templateCopy": "Copy message", "pf.templateFile": "Download EN / FA / TR messages", "pf.homeTitle": "A source-backed way to find your first collaborators", "pf.homeText": "100 Istanbul leads, 100 elsewhere in Türkiye and 10 in Tehran — with public contact routes and clearly labelled branches.", "pf.homeButton": "Open the partner finder", "pf.note.branch": "Local Yeşilay branch. A branch is not a separate independent charity. Contact for a partnership introduction, not urgent care.", "pf.note.nophone": "The checked official branch directory does not publish a usable phone here. No headquarters phone has been passed off as a local number.", "pf.note.hqroute": "General institutional switchboard, also published by Yeşilay Akademi. Ask for cooperation / project staff; do not use 115 for business outreach.", "pf.note.switchboard": "Public switchboard / municipal line. Ask for the relevant team; this is not a direct partnership manager’s number.", "pf.note.sharedline": "Central İBB employment line, shared by its offices. Counted once; it is not a new independent organization.", "pf.note.eligibility": "Entrepreneurship support route, not a grant promise. Company registration and founder / programme eligibility need checking.", "pf.note.bugday": "The cited FAQ prints 349 99 93; older official pages print 349 99 33. Prefer email and reconfirm the phone before calling.", "pf.note.toloo": "The current homepage prints 8883 2002; older English contact pages show other numbers. Email first and reconfirm the route.", "pf.note.congress": "Peer-recovery organization, not a substitute for licensed medical care. The listed number is the website office, not an emergency service.", "pf.note.raad": "Vocational / disability inclusion expertise. An addiction-specific service or partnership has not been verified.", "pf.note.journal": "Published association telephone/fax via its journal office. Email the journal to ask for the association’s current project contact.", "pf.note.legacy": "Official municipal directory is legacy / intermittently inaccessible. Reconfirm the current number and authority before outreach."}, "fa": {"pf.more": "فیلترهای بیشتر و موارد ذخیرهشده", "pf.xlsshort": "دانلود اکسل", "nav.partners": "بانک همکاری", "title.partners": "بانک همکاران پیشنهادی — گرینروت", "pf.kicker": "بانک پژوهششده · ۱۱ اکتبر ۲۰۲۶", "pf.title": "همکار مناسب را پیدا کنید.<br>پایلوت را بسازید.", "pf.lead": "۲۱۰ مسیر تماس منبعدار برای گرینروت: بهبودی، بازیافت، کار سبز و پژوهش. از نزدیکترین مجموعهها شروع کنید و یک همکاری کوچک و ایمن پیشنهاد دهید.", "pf.browse": "جستوجوی مجموعهها", "pf.download": "دانلود اکسل · ۲۱۰ مورد", "pf.stat1": "مسیر تماس در استانبول", "pf.stat2": "مسیر تماس در دیگر شهرهای ترکیه", "pf.stat3": "مسیر تماس در ایران · تهران", "pf.heroNote": "همکاران بالقوه، نه شرکای تأییدشده. شعب و واحدهای عمومی با برچسب مشخص شدهاند.", "pf.artLabel": "سه منطقه؛ یک نقطه شروع.", "pf.artNote": "نقشه مسیرهای تماس؛ نه شبکه همکاریهای موجود.", "pf.truth": "این تعداد دقیقاً به چه معناست؟", "pf.truthText": "۲۱۰ ردیف تماس زیرمجموعه ۸۸ نهاد مادر؛ شامل ۱۲۰ شعبه و ۵ واحد عمومی یا دانشگاهی. برای ۲۰۴ ردیف شماره عمومی منتشر شده و برای ۶ ردیف شمارهای در منبع بررسیشده پیدا نشد. پژوهشگر هیچ تماس یا پیام همکاری ارسال نکرده؛ شماره منتشرشده به معنی خط آزمایششده نیست.", "pf.heading": "میز کار ارتباط با همکاران", "pf.sub": "نام رسمی، شهر، منطقه یا حوزه فعالیت را جستوجو کنید. پیش از اولین تماس، منبع را باز کنید.", "pf.all": "همه مناطق · ۲۱۰", "pf.istanbul": "استانبول · ۱۰۰", "pf.turkey": "دیگر شهرهای ترکیه · ۱۰۰", "pf.iran": "ایران · ۱۰", "pf.searchLabel": "جستوجو در بانک تماس", "pf.searchPh": "نام، منطقه، تلفن یا موضوع…", "pf.categoryLabel": "زمینه همکاری", "pf.catAll": "همه زمینهها", "pf.cat.civic": "شهرداریها", "pf.cat.recovery": "بهبودی و سلامت روان", "pf.cat.recycling": "بازیافت و پسماند", "pf.cat.environment": "محیطزیست و اقلیم", "pf.cat.employment": "اشتغال و کسبوکار", "pf.cat.research": "پژوهش و ارزیابی", "pf.cat.family": "خانواده و حمایت ایمن", "pf.placeLabel": "شهر / منطقه استانبول", "pf.placeAll": "همه شهرها و مناطق", "pf.typeLabel": "نوع ردیف", "pf.typeAll": "نهادها + شعب + واحدها", "pf.type.organization": "نهاد / سازمان", "pf.type.branch": "شعبه محلی", "pf.type.public_unit": "واحد عمومی / دانشگاهی", "pf.sortLabel": "مرتبسازی", "pf.sort.priority": "پیشنهادهای شروع تماس", "pf.sort.name": "نام مجموعه", "pf.shortlist": "فقط پیشنهادهای شروع تماس", "pf.phoneOnly": "دارای شماره منتشرشده", "pf.savedOnly": "فقط موارد ذخیرهشده من", "pf.reset": "حذف فیلترها", "pf.export": "دانلود CSV نتیجهها", "pf.results": "{n} نتیجه · {p} نهاد مادر", "pf.savedCount": "{n} مورد ذخیرهشده روی این دستگاه", "pf.localNote": "موارد ذخیرهشده فقط در همین مرورگر میمانند و برای گرینروت ارسال نمیشوند.", "pf.empty": "نتیجهای پیدا نشد. یک فیلتر را بردارید یا املای دیگری را امتحان کنید.", "pf.prev": "صفحه قبل", "pf.next": "صفحه بعد", "pf.page": "صفحه {p} از {n}", "pf.showing": "نمایش {a} تا {b} از {n}", "pf.start": "پیشنهاد شروع تماس", "pf.parent": "نهاد مادر", "pf.ask": "پیشنهاد گفتوگو", "pf.call": "تماس با شماره عمومی", "pf.noPhone": "شماره عمومی پیدا نشد؛ از منبع یا صفحه تماس استفاده کنید.", "pf.domestic": "شماره کوتاه داخل ترکیه؛ ممکن است از خارج وصل نشود.", "pf.email": "ایمیل", "pf.website": "وبسایت / مسیر تماس", "pf.source": "منبع", "pf.checked": "تاریخ بررسی منبع: ۱۱ اکتبر ۲۰۲۶", "pf.direct": "صفحه رسمی بازیابی شده", "pf.indexed": "منبع رسمی؛ شواهد از نمایه جستوجو", "pf.untested": "شماره منتشرشده · تماس آزمایش نشده", "pf.save": "ذخیره مورد", "pf.unsave": "ذخیره شد", "pf.copy": "کپی اطلاعات تماس", "pf.copied": "اطلاعات تماس کپی شد", "pf.copyFailed": "کپی در این محیط در دسترس نیست. شماره را انتخاب کنید یا فایل اکسل را بگیرید.", "pf.priorityNote": "اولویتها برآورد موضوعی ما از تناسب همکاریاند؛ نه درصد احتمال دریافت پول یا موافقت مجموعه.", "pf.method": "منابع، محدودیتها و روش تماس ایمن", "pf.method1": "نامها و مسیرهای تماس از وبسایتهای رسمی و فهرستهای عمومی نهادها گرفته شدهاند. نام اصلی ترکی و فارسی حفظ شده است. تاریخ بررسی ما لزوماً تاریخ آخرین بهروزرسانی منبع نیست.", "pf.method2": "شماره ممکن است تلفنخانه، خط شعبه یا مرکز تماس داخلی باشد. درخواست اتصال به بخش همکاری، خدمات محیطزیست، اشتغال حمایتی یا مدیریت بیمارستان کنید. خطوط اضطراری و مشاوره را برای پیشنهاد تجاری اشغال نکنید.", "pf.method3": "اینها سرنخهای بررسیشدهاند؛ نه تأیید کیفیت، قرارداد همکاری یا سرشماری کامل. مجوز درمان، شرایط مؤسس خارجی، اجازه کار و شرایط حمایت مالی نیازمند بررسی تخصصی محلیاند. گرینروت نمونه اولیه مفهومی است و آمار دیگر صفحات سایت داده نمایشی است.", "pf.method4": "تماسها را شخصیسازیشده و محترمانه انجام دهید. نام بیمار، تشخیص یا سوابق بهبودی را ارسال نکنید. درمان نباید به میزان کار وابسته باشد. هر پایلوت به قرارداد قانونی، مزد واقعی، ارزیابی ایمنی، بیمه و نظارت بالینی نیاز دارد.", "pf.planTitle": "از فهرست تماس تا اولین جلسه", "pf.plan1": "پنج مسیر محلی انتخاب کنید", "pf.plan1p": "یک مجموعه بهبودی، یک بازیافتکننده، یک شهرداری، یک مسیر اشتغال و یک تیم پژوهشی را انتخاب کنید.", "pf.plan2": "درخواست کوچک و مشخص بدهید", "pf.plan2p": "یک جلسه آشنایی ۲۰ دقیقهای بخواهید. معرفی مکتوب ایده، طرح جریان پسماند و چارچوب ایمن پایلوت را ارائه کنید؛ بدون ادعای نتیجه ساختگی.", "pf.plan3": "گام بعدی واقعی را ثبت کنید", "pf.plan3p": "تاریخ، مسئول پیگیری و اقدام توافقشده را در اکسل بنویسید. یک بار پس از ۵ تا ۷ روز کاری پیگیری کنید و پاسخ منفی را محترم بدانید.", "pf.templateTitle": "متن اولیه قابل ویرایش", "pf.templateSub": "قبل از ارسال، بخشهای داخل کروشه را جایگزین کنید. این صفحه به جای شما پیام ارسال نمیکند.", "pf.templateCopy": "کپی متن پیام", "pf.templateFile": "دانلود متن انگلیسی / فارسی / ترکی", "pf.homeTitle": "مسیر منبعدار برای پیدا کردن اولین همکاران", "pf.homeText": "۱۰۰ مسیر تماس استانبول، ۱۰۰ مسیر دیگر شهرهای ترکیه و ۱۰ مسیر تهران؛ همراه تماس عمومی و برچسب روشن برای شعب.", "pf.homeButton": "باز کردن بانک همکاری", "pf.note.branch": "شعبه محلی یشیلای است، نه یک خیریه مستقل دیگر. برای معرفی همکاری تماس بگیرید، نه دریافت مراقبت فوری.", "pf.note.nophone": "فهرست رسمیِ بررسیشده برای این شعبه شماره قابل استفادهای منتشر نکرده است. شماره دفتر مرکزی به عنوان شماره شعبه جا زده نشده است.", "pf.note.hqroute": "تلفن عمومی نهاد، در سایت آکادمی یشیلای هم منتشر شده است. بخش همکاری یا پروژهها را بخواهید؛ از ۱۱۵ برای تماس تجاری استفاده نکنید.", "pf.note.switchboard": "تلفنخانه یا خط عمومی شهرداری؛ درخواست اتصال به تیم مربوطه کنید. این شماره مستقیم مدیر همکاری نیست.", "pf.note.sharedline": "خط مرکزی مشترک دفاتر اشتغال شهرداری استانبول؛ فقط یک بار شمرده شده و نهاد مستقل جدید نیست.", "pf.note.eligibility": "مسیر بررسی حمایت از کارآفرینی است، نه وعده کمکهزینه. شرایط ثبت شرکت، مؤسس و برنامه باید بررسی شود.", "pf.note.bugday": "صفحه پرسشهای متداول شماره 349 99 93 و صفحات رسمی قدیمیتر 349 99 33 را نوشتهاند. ابتدا ایمیل بزنید و شماره را دوباره تأیید کنید.", "pf.note.toloo": "صفحه اصلی فعلی 8883 2002 را نوشته است؛ صفحات تماس انگلیسی قدیمی شمارههای دیگری دارند. ابتدا با ایمیل مسیر تماس را تأیید کنید.", "pf.note.congress": "مجموعه بهبودی همتاست، نه جایگزین مراقبت پزشکی مجاز. شماره درجشده دفتر وبسایت است، نه خدمات اضطراری.", "pf.note.raad": "تخصص آموزش شغلی و مشارکت افراد دارای معلولیت؛ خدمت اختصاصی اعتیاد یا همکاری با گرینروت تأیید نشده است.", "pf.note.journal": "تلفن/نمابر منتشرشده انجمن از طریق دفتر نشریه؛ با ایمیل از دفتر، راه ارتباط با مسئول فعلی پروژهها را بخواهید.", "pf.note.legacy": "فهرست رسمی شهرداری قدیمی است یا گاهی در دسترس نیست؛ شماره و مسئولیت فعلی را پیش از ارتباط دوباره تأیید کنید."}, "tr": {"pf.more": "Diğer filtreler ve kaydedilenler", "pf.xlsshort": "Excel indir", "nav.partners": "Ortak bul", "title.partners": "Potansiyel ortak rehberi — GreenRoot", "pf.kicker": "Araştırma rehberi · 11 Ekim 2026", "pf.title": "Doğru kişileri bul.<br>Pilotu birlikte kur.", "pf.lead": "GreenRoot için kaynaklı 210 iletişim kaydı: bağımlılıktan toparlanma, geri dönüşüm, yeşil iş ve araştırma. Yerelden başlayın; küçük, güvenli bir iş birliği önerin.", "pf.browse": "Rehberi keşfet", "pf.download": "Excel indir · 210 kayıt", "pf.stat1": "İstanbul kaydı", "pf.stat2": "Diğer Türkiye illeri", "pf.stat3": "İran · Tahran kaydı", "pf.heroNote": "Potansiyel iş birlikleri; onaylanmış ortaklar değil. Şube ve kamu birimleri etiketlidir.", "pf.artLabel": "Üç bölge. Tek başlangıç.", "pf.artNote": "İletişim haritasıdır; mevcut ortaklık ağı değildir.", "pf.truth": "Sayılar ne anlama geliyor?", "pf.truthText": "88 ana kurum altında 210 iletişim kaydı; 120 şube ve 5 kamu/üniversite birimi dahil. 204 kayıtta yayımlanmış telefon vardır, 6 kayıt için incelenen kaynakta telefon bulunamadı. Araştırmacı arama veya işbirliği mesajı göndermedi. Yayımlanmış numara, test edilmiş hat değildir.", "pf.heading": "İş birliği çalışma alanınız", "pf.sub": "Resmî ad, yer veya sektör arayın. İlk aramadan önce kaynağı açın.", "pf.all": "Tüm bölgeler · 210", "pf.istanbul": "İstanbul · 100", "pf.turkey": "Diğer Türkiye · 100", "pf.iran": "İran · 10", "pf.searchLabel": "Rehberde ara", "pf.searchPh": "Ad, ilçe, telefon veya konu…", "pf.categoryLabel": "İş birliği alanı", "pf.catAll": "Tüm alanlar", "pf.cat.civic": "Belediyeler", "pf.cat.recovery": "Toparlanma & ruh sağlığı", "pf.cat.recycling": "Geri dönüşüm & atık", "pf.cat.environment": "Çevre & iklim", "pf.cat.employment": "İstihdam & girişim", "pf.cat.research": "Araştırma & değerlendirme", "pf.cat.family": "Aile & koruma", "pf.placeLabel": "İl / İstanbul ilçesi", "pf.placeAll": "Tüm yerler", "pf.typeLabel": "Kayıt türü", "pf.typeAll": "Kurumlar + şubeler + birimler", "pf.type.organization": "Kurum / kuruluş", "pf.type.branch": "Yerel şube", "pf.type.public_unit": "Kamu / üniversite birimi", "pf.sortLabel": "Sıralama", "pf.sort.priority": "Önerilen ilk temaslar", "pf.sort.name": "Ad A–Z", "pf.shortlist": "Yalnız önerilen ilk temaslar", "pf.phoneOnly": "Yayımlanmış telefonu var", "pf.savedOnly": "Yalnız kaydettiklerim", "pf.reset": "Filtreleri sıfırla", "pf.export": "Filtrelenen CSV’yi indir", "pf.results": "{n} sonuç · {p} ana kurum", "pf.savedCount": "Bu cihazda {n} kayıt", "pf.localNote": "Kaydedilenler yalnız bu tarayıcıda tutulur; GreenRoot’a gönderilmez.", "pf.empty": "Eşleşme bulunamadı. Bir filtreyi kaldırın veya farklı yazım deneyin.", "pf.prev": "Önceki", "pf.next": "Sonraki", "pf.page": "Sayfa {p} / {n}", "pf.showing": "{n} kaydın {a}–{b} arası", "pf.start": "Önerilen ilk temas", "pf.parent": "Ana kurum", "pf.ask": "Önerilen görüşme", "pf.call": "Yayımlanmış numarayı ara", "pf.noPhone": "Telefon bulunamadı; kaynak / iletişim sayfasını kullanın.", "pf.domestic": "Türkiye içi kısa hat; yurt dışından bağlanmayabilir.", "pf.email": "E-posta", "pf.website": "Web sitesi / iletişim", "pf.source": "Kaynak", "pf.checked": "Kaynak kontrolü: 11 Ekim 2026", "pf.direct": "Resmî sayfa alındı", "pf.indexed": "Resmî kaynak, arama dizini kanıtı", "pf.untested": "Yayımlanmış numara · aranmadı", "pf.save": "Kaydet", "pf.unsave": "Kaydedildi", "pf.copy": "İletişimi kopyala", "pf.copied": "İletişim kopyalandı", "pf.copyFailed": "Burada kopyalama kullanılamıyor. Telefonu seçin veya Excel’i indirin.", "pf.priorityNote": "Öncelik, konu uyumuna ilişkin editoryal değerlendirmedir; fon veya kabul olasılığı değildir.", "pf.method": "Kaynaklar, sınırlar ve güvenli ilk temas", "pf.method1": "İsim ve iletişim yolları resmî web sitelerinden ve kamu kurum rehberlerinden alınmıştır. Özgün Türkçe ve Farsça isimler korunur. Kontrol tarihi bizim incelememizdir; kaynağın son güncelleme tarihi değildir.", "pf.method2": "Numara santral, şube hattı veya ülke içi çağrı merkezi olabilir. İş birliği, çevre hizmetleri, destekli istihdam ya da hastane yönetimine bağlanmayı isteyin. Acil ve danışmanlık hatlarını ticari teklif için kullanmayın.", "pf.method3": "Bunlar araştırılmış adaylardır; tavsiye, anlaşma veya tam sayım değildir. Klinik ruhsat, yabancı kurucu uygunluğu, çalışma izni ve destek koşulları yerel uzmanlarla kontrol edilmelidir. GreenRoot bir konsept prototipidir; diğer sayfalardaki metrikler demo veridir.", "pf.method4": "Tek tek, saygılı ve kişiselleştirilmiş iletişim kurun. Hasta adı, tanı veya toparlanma kaydı paylaşmayın. Tedavi iş çıktısından bağımsız olmalıdır. Pilot; yasal sözleşme, gerçek ücret, güvenlik değerlendirmesi, sigorta ve klinik gözetim gerektirir.", "pf.planTitle": "Rehberden ilk toplantıya", "pf.plan1": "Beş yerel aday seçin", "pf.plan1p": "Bir toparlanma kuruluşu, bir geri dönüşümcü, bir belediye, bir istihdam kanalı ve bir araştırma ekibiyle başlayın.", "pf.plan2": "Küçük ve net bir talep iletin", "pf.plan2p": "20 dakikalık tanışma isteyin. Yazılı konsept, atık akışı taslağı ve güvenli pilot çerçevesi sunun; uydurma sonuç iddiaları kullanmayın.", "pf.plan3": "Gerçek bir sonraki adımı kaydedin", "pf.plan3p": "Tarihi, takip sorumlusunu ve mutabık kalınan adımı Excel’e yazın. 5–7 iş günü sonra bir kez takip edin; olumsuz yanıtı kabul edin.", "pf.templateTitle": "Uyarlayabileceğiniz ilk mesaj", "pf.templateSub": "Göndermeden önce köşeli parantezli alanları doldurun. Bu sayfa sizin adınıza mesaj göndermez.", "pf.templateCopy": "Mesajı kopyala", "pf.templateFile": "EN / FA / TR mesajlarını indir", "pf.homeTitle": "İlk iş birlikleri için kaynaklı bir başlangıç", "pf.homeText": "İstanbul’da 100, Türkiye’nin diğer illerinde 100, Tahran’da 10 kayıt; kamuya açık iletişim yolları ve açık şube etiketleri.", "pf.homeButton": "Ortak bulma rehberini aç", "pf.note.branch": "Yerel Yeşilay şubesi; ayrı ve bağımsız bir dernek değildir. Acil bakım için değil, iş birliği tanışması için iletişim kurun.", "pf.note.nophone": "İncelenen resmî şube rehberinde kullanılabilir telefon yoktur. Genel merkez numarası yerel numara gibi gösterilmemiştir.", "pf.note.hqroute": "Yeşilay Akademi’de de yayımlanan kurumsal santral. İş birliği / proje ekibini isteyin; ticari temas için 115’i kullanmayın.", "pf.note.switchboard": "Kamu santrali / belediye hattı. İlgili ekibi isteyin; doğrudan ortaklık yöneticisinin numarası değildir.", "pf.note.sharedline": "İBB istihdam ofislerinin ortak merkez hattı. Bir kez sayılmıştır; yeni bağımsız kurum değildir.", "pf.note.eligibility": "Girişimcilik desteği kanalıdır; hibe sözü değildir. Şirket, kurucu ve program uygunluğu kontrol edilmelidir.", "pf.note.bugday": "Atıf yapılan SSS 349 99 93; eski resmî sayfalar 349 99 33 yazıyor. Önce e-posta ile numarayı teyit edin.", "pf.note.toloo": "Güncel ana sayfada 8883 2002, eski İngilizce iletişim sayfalarında farklı numaralar var. Önce e-posta ile teyit edin.", "pf.note.congress": "Akran toparlanma kuruluşu; ruhsatlı tıbbi bakım yerine geçmez. Numara web sitesi ofisine aittir; acil hizmet değildir.", "pf.note.raad": "Mesleki eğitim ve engellilik kapsayıcılığı uzmanlığı. Bağımlılığa özel hizmet veya GreenRoot ortaklığı doğrulanmadı.", "pf.note.journal": "Dergi ofisi üzerinden yayımlanan dernek telefon/faksı. Güncel proje irtibatını e-posta ile isteyin.", "pf.note.legacy": "Eski / zaman zaman erişilemeyen resmî belediye rehberi. Güncel numara ve yetkiyi iletişim öncesi teyit edin."}};
Object.keys(X).forEach(function(l){window.I18N[l]=Object.assign(window.I18N[l]||{},X[l]);});
window.GR_MESSAGES={"en": "Subject: A 20-minute introduction — recovery + paid green work pilot\n\nHello [organization/team],\nI’m [name], developing GreenRoot: a concept linking addiction recovery support with safe, paid green work and transparent recycling income.\nWe are seeking a small local collaboration in [city/district], not claiming proven results or existing partnerships. Clinical care must stay independent of work output; participation would be voluntary, with lawful wages and professional safety oversight.\nCould we arrange a 20-minute introduction to discuss [one specific ask relevant to your organization] and whether this fits your remit?\nConcept note: https://greenroot-af0.pages.dev/program\nPartner research directory: https://greenroot-af0.pages.dev/partners\nThank you,\n[name / role / public contact]\n", "fa": "موضوع: جلسه آشنایی ۲۰ دقیقهای — پایلوت بهبودی و کار سبز با مزد\n\nسلام به [نام مجموعه/تیم]،\nمن [نام] هستم و روی ایده گرینروت کار میکنم: پیوند حمایت از بهبودی اعتیاد با کار سبز ایمن و با مزد و درآمد شفاف بازیافت.\nبرای [شهر/منطقه] به دنبال یک همکاری کوچک محلی هستیم؛ نه ادعای نتیجه اثباتشده داریم و نه شریک تأییدشده. درمان باید مستقل از میزان کار بماند و مشارکت با رضایت، مزد قانونی و نظارت حرفهای ایمنی انجام شود.\nآیا امکان یک جلسه آشنایی ۲۰ دقیقهای برای بررسی [یک درخواست مشخص مرتبط با مجموعه] و تناسب آن با حوزه فعالیت شما وجود دارد؟\nمعرفی ایده: https://greenroot-af0.pages.dev/program\nبانک بررسی همکاران: https://greenroot-af0.pages.dev/partners?lang=fa\nبا سپاس،\n[نام / نقش / راه تماس عمومی]\n", "tr": "Konu: 20 dakikalık tanışma — toparlanma + ücretli yeşil iş pilotu\n\nMerhaba [kurum/ekip],\nBen [ad], bağımlılıktan toparlanma desteğini güvenli, ücretli yeşil işler ve şeffaf geri dönüşüm geliriyle ilişkilendiren GreenRoot konsepti üzerinde çalışıyorum.\n[İl/ilçe] için küçük bir yerel iş birliği arıyoruz; kanıtlanmış sonuç veya mevcut ortaklık iddiasında bulunmuyoruz. Klinik bakım iş çıktısından bağımsız kalmalı; katılım gönüllü olmalı, yasal ücret ve profesyonel güvenlik gözetimi sağlanmalıdır.\n[Kurumla ilgili tek somut talep] ve bunun görev alanınıza uyumunu görüşmek için 20 dakikalık bir tanışma mümkün mü?\nKonsept: https://greenroot-af0.pages.dev/program\nAday iş birliği rehberi: https://greenroot-af0.pages.dev/partners?lang=tr\nTeşekkürler,\n[ad / rol / kamuya açık iletişim]\n"};
window.GR_PLACES_FA={"İstanbul": "استانبول", "Tehran": "تهران", "Antalya": "آنتالیا", "Ankara": "آنکارا", "Bursa": "بورسا", "İzmir": "ازمیر", "Balıkesir": "بالیکسیر", "Adalar": "آدالار", "Arnavutköy": "آرناووتکوی", "Ataşehir": "آتاشهیر", "Avcılar": "آوجیلار", "Bağcılar": "باغجیلار", "Bahçelievler": "باهچهلیاولر", "Bakırköy": "باکرکوی", "Başakşehir": "باشاکشهیر", "Bayrampaşa": "بایرامپاشا", "Beşiktaş": "بشیکتاش", "Beykoz": "بیکوز", "Beylikdüzü": "بیلیکدوزو", "Beyoğlu": "بیاوغلو", "Büyükçekmece": "بیوکچکمجه", "Çatalca": "چاتالجا", "Çekmeköy": "چکمهکوی", "Esenler": "اسنلر", "Esenyurt": "اسنیورت", "Eyüpsultan": "ایوبسلطان", "Fatih": "فاتح", "Gaziosmanpaşa": "قاضیعثمانپاشا", "Güngören": "گونگورن", "Kadıköy": "کادیکوی", "Kağıthane": "کاغیتخانه", "Kartal": "کارتال", "Küçükçekmece": "کوچوکچکمجه", "Maltepe": "مالتپه", "Pendik": "پندیک", "Sancaktepe": "سانجاکتپه", "Sarıyer": "سارییر", "Silivri": "سیلیوری", "Sultanbeyli": "سلطانبیلی", "Sultangazi": "سلطانغازی", "Şile": "شیله", "Şişli": "شیشلی", "Tuzla": "توزلا", "Ümraniye": "عمرانیه", "Üsküdar": "اسکودار", "Zeytinburnu": "زیتینبورنو"};
})();
</script>
<script>
/* Outreach workflow: no autonomous external actions. */
(function(){var X={"en": {"ow.nav": "Outreach desk", "ow.kicker": "GREENROOT / IDEA → EVIDENCE → APPLICATION", "ow.h1": "One contact.<br>One real next step.", "ow.lead": "A practical desk for an unincorporated GreenRoot team: recipient-specific messages, university / incubation routes, funding gates and follow-up dates. No automatic outreach or registrations.", "ow.start": "Open my outreach desk", "ow.pick": "Choose from the 210-lead bank", "ow.heroNote": "Prepared for the idea stage · source review 11 October 2026 · eligibility remains conditional", "ow.clock": "After YOU record sending", "ow.clock2": "+2 calendar days: check the response", "ow.clock3": "No reply? Review ONE later follow-up", "ow.truth": "No service connected, no email claimed. Dates work locally now; real email reminders require the deployed service to be configured and your address verified.", "ow.desk": "Your next-action desk", "ow.deskSub": "Pick a lead, inspect its route, edit a draft and record only actions you actually completed. Plans and notes stay in this browser unless you explicitly enable email reminders.", "ow.selectLabel": "Institution or programme", "ow.selectBlank": "Choose a contact or a source-backed route…", "ow.searchLabel": "Find a lead by name or ID", "ow.noSelected": "Start with one contact — not a bulk campaign. The university and pre-incubation routes below are tailored to the idea stage.", "ow.sender": "Your name / team (local only)", "ow.senderPh": "Replace [your name] before sending", "ow.messageLang": "Message language", "ow.subject": "Subject", "ow.draft": "Editable first message", "ow.draftHint": "This draft is a proposal, not evidence of an existing partnership, R&D achievement or clinical efficacy. Replace placeholders. Opening email/WhatsApp does NOT mark it as sent.", "ow.copy": "Copy the draft", "ow.openEmail": "Open my email app", "ow.openRoute": "Open official route", "ow.inspectWA": "Inspect the published WhatsApp route", "ow.saveLead": "Add this lead to my desk", "ow.sendConfirm": "I reviewed the recipient and message, and really sent it myself.", "ow.recordSent": "Record actual send → +2-day check", "ow.sentAt": "When did you send it?", "ow.channel": "Channel actually used", "ow.channel.email": "Email", "ow.channel.form": "Official form", "ow.channel.phone": "Business office phone", "ow.channel.whatsapp": "WhatsApp (purpose checked by you)", "ow.interval": "Response check after (calendar days)", "ow.noAuto": "No messages to institutions, applications, company registrations, payments or signatures are performed here.", "ow.tasks": "My follow-up queue", "ow.tasksSub": "A +2-day task is an inbox / portal check, not an automatic demand for a reply. If there is no response, consider a single polite follow-up around day 7.", "ow.queueEmpty": "No real action recorded yet. Choose a lead and save a draft, or record a message you actually sent.", "ow.local": "Local-only desk: export a private backup before changing devices. Do not upload these notes to the public repository.", "ow.export": "Private backup (JSON)", "ow.import": "Restore a backup", "ow.calendar": "Calendar reminders (.ics)", "ow.clear": "Delete my desk", "ow.clearConfirm": "Delete your local desk and cancel connected server reminders? This cannot be undone without your private backup.", "ow.pending": "Pending", "ow.due": "Due / overdue", "ow.complete": "Done", "ow.selected": "Tracked leads", "ow.step.check_reply": "Check inbox / portal for the response", "ow.step.followup_once": "Review one polite follow-up", "ow.step.prepare_dossier": "Prepare the requested concept / R&D pack", "ow.step.review_eligibility": "Confirm intake, eligibility and required documents", "ow.step.review_application": "Check the submitted application / receipt", "ow.step.check_nextcall": "Check the official next call / deadline", "ow.doneBtn": "Record outcome / next step", "ow.snooze": "Change due date", "ow.cancel": "Cancel this task", "ow.openLead": "Open lead", "ow.outcome": "What actually happened?", "ow.outcome.none": "No reply yet", "ow.outcome.positive": "Positive reply / meeting offered", "ow.outcome.info": "Requested more information", "ow.outcome.declined": "Declined / asked not to contact", "ow.outcome.done": "Task completed; no external outcome inferred", "ow.notes": "Business-only note (local, never emailed)", "ow.notesPh": "No patient names, health data, IDs, passwords or API keys.", "ow.saveOutcome": "Save the real outcome", "ow.close": "Close", "ow.followupText": "Hello [team], I’m following up once on my GreenRoot introduction sent on [date]. Is your office the right route for [specific ask]? If it is not relevant, no problem; I will not keep following up. Thank you, [your name].", "ow.application": "I submitted on the official portal myself", "ow.applicationHint": "Only record this AFTER real submission. Technopark acceptance, company registration and investment are separate events. You must review eligibility and the actual portal requirements first.", "ow.applicationConfirm": "I checked eligibility, required documents and the current call, and submitted personally.", "ow.recordApplication": "Record submission + response check", "ow.noApplication": "A local checkbox never certifies funding eligibility. Stop before payments, legal incorporation, equity agreements or signatures; obtain the appropriate professional review.", "ow.routes": "University, incubation & funding routes", "ow.routesSub": "13 curated routes, separate from the 210-entry bank. Dates refer to the linked call, not a guarantee of future intake or your eligibility. Open calls may still be unsuitable for an unincorporated team.", "ow.routeFilter.all": "All routes", "ow.routeFilter.early": "University / pre-incubation first", "ow.routeFilter.funding": "Funding: check the gates", "ow.kind.incubator": "Pre-incubation / accelerator", "ow.kind.university": "University / TTO", "ow.kind.equity": "Equity investment — not a grant", "ow.kind.grant": "R&D grant — conditional eligibility", "ow.kind.repayable": "Repayable support — not a grant", "ow.status.published_deadline": "Published deadline; confirm current rules", "ow.status.closed_reviewed_call": "Reviewed call is CLOSED", "ow.status.archived_call_inquiry": "Archived call: ask for current intake", "ow.status.confirm_intake": "Current intake not confirmed", "ow.status.confirm_current_rules": "Confirm current programme rules", "ow.status.confirm_current_call": "Current call not confirmed", "ow.deadline": "Deadline in source", "ow.preReg": "Company pre-registration deadline", "ow.source": "Official source", "ow.reviewed": "Reviewed 11 October 2026; reconfirm before submitting", "ow.useRoute": "Plan this route", "ow.rules": "Call rules / PDF", "ow.gate.education_and_no_shareholding": "Check student/graduate evidence, previous support and shareholding restrictions.", "ow.gate.technology_validation": "A genuine, testable technology hypothesis is needed; social benefit alone is not R&D evidence.", "ow.gate.office_confirmation": "Ask the office about the current intake, external-team eligibility, fees and documents.", "ow.gate.acceleration_education_shareholding": "Phase 1 completion, education, prior-support and shareholding gates; no early incorporation shortcut.", "ow.gate.turkish_sme_company": "Later route: eligible Turkish SME capital company and substantiated R&D project. Not ready for a company-less idea.", "ow.gate.university_and_company": "Joint executing university/research body and eligible customer company; both must agree.", "ow.gate.company_nace_training": "Confirm company eligibility, supported NACE activity, training, guarantees and repayment.", "ow.readiness": "Prepare the pack before applying", "ow.readinessSub": "These are preparation suggestions, not a universal university admission checklist. The actual programme may ask for different documents. No sensitive documents are uploaded here.", "ow.readinessCount": "Self-reported checklist completion", "ow.doc.concept": "1-page concept: problem, user, payer, safe pilot and both recycling-to-care pathways", "ow.doc.team": "Team bios, roles and an honest skills-gap map; academic status confirmed where required", "ow.doc.tech": "Testable R&D hypothesis, novelty comparison, prototype / TRL evidence — no invented results", "ow.doc.market": "Customer discovery and letters of interest only if actually obtained", "ow.doc.budget": "Work packages, timeline, cost assumptions, own contribution and funding-gap table", "ow.doc.safety": "Voluntary lawful paid work, wages, insurance, licensed clinical partners and data separation", "ow.doc.materials": "Medical-material pathway: licensed manufacturing / quality / regulatory review; not a DIY medical product claim", "ow.doc.call": "Current official call, correct intake, degree / shareholding / residency checks and required forms", "ow.doc.permission": "Written permission before sharing institutional/private data or submitting/signing anything", "ow.dossier": "Editable application dossier", "ow.emailTitle": "Real email reminders: activate safely", "ow.emailSub": "Only reminders to your own verified address — never outreach to the lead. The server receives due-task labels, institution names and dates, not your draft messages, notes, health data or documents.", "ow.emailLoading": "Checking reminder service…", "ow.emailMissing": "Not active: email provider / sender not configured. No email has been sent or scheduled for delivery. Local due dates still work.", "ow.emailOffline": "Service unavailable in this preview / connection. Use the live site; local planning remains available.", "ow.emailReady": "Sender settings present; verify your email before syncing tasks. Provider acceptance / delivery still needs a real test.", "ow.emailVerifyPending": "Verification request accepted by the provider. Open the email and confirm; delivery / reading is not yet confirmed.", "ow.emailVerified": "Your address is verified. Pending task reminders can be synced to the scheduled service.", "ow.emailUnsubscribed": "Email reminders are stopped. Your local desk is unaffected.", "ow.emailAddress": "Your reminder email address", "ow.emailConsent": "I request task reminders to my own address and consent to sending the stated minimal task data to the reminder service.", "ow.emailConnect": "Request verification email", "ow.emailRefresh": "Check verification / service", "ow.emailSync": "Sync pending reminders", "ow.emailStop": "Stop and delete server reminders", "ow.emailSetup": "Sender setup guide — no keys in chat", "ow.emailTestMode": "Single-account test mode: only the configured account-owner email is allowed. Public users require a verified domain and anti-abuse setup.", "ow.emailSynced": "Pending reminders synced; this is a queue record, not a delivery confirmation.", "ow.emailFail": "The email operation failed. No delivery is claimed. Check sender settings and the live service.", "ow.rahaTitle": "Raha’s outreach coach — explicit rules, real evidence", "ow.rahaSub": "The site companion is still a rules-based demo, not an autonomous filing or inbox-reading agent. Its outreach instructions now prioritize prerequisites, dates, permission and documented outcomes.", "ow.rahaOpen": "Open Raha / outreach coach", "ow.rahaFile": "Download side instructions (EN / FA / TR)", "ow.copyDone": "Copied", "ow.savedDone": "Saved on this device", "ow.invalidImport": "This is not a valid GreenRoot private backup. Nothing was imported.", "ow.recorded": "Action recorded by you; follow-up date created. Nothing was sent by the site.", "ow.noResponseChance": "Fit labels are editorial, not reply / acceptance probabilities.", "ow.fit.high": "Strong thematic fit; willingness unknown", "ow.fit.medium": "Possible fit; confirm the right team", "ow.fit.conditional": "Conditional route; prerequisites first", "ow.profile.university": "University / technology-transfer inquiry", "ow.profile.public_support": "Business-support eligibility inquiry", "ow.profile.civic": "Municipal pilot / department referral", "ow.profile.recycling": "Safe material flow / offtake partner", "ow.profile.recovery": "Licensed care / referral / safeguards", "ow.profile.research": "Research design / ethics / evaluation", "ow.profile.employment": "Skills / employers / responsible sponsor", "ow.profile.family": "Safeguarding / family support", "ow.profile.environment": "Environmental learning / impact methods", "wa.label": "Published WhatsApp evidence", "wa.published": "Recipient-specific link published on an official page", "wa.not_found": "No official WhatsApp link found in checked pages — account existence unknown", "wa.unavailable": "Could not inspect the official page; WhatsApp unknown", "wa.directory_only": "Only the directory issuer’s channel found — not this institution’s", "wa.hq_only": "HQ channel only; this branch’s WhatsApp not confirmed", "wa.limit": "Published link ≠ active account, answered line or permission for business outreach. No WhatsApp account was probed or contacted.", "wa.service": "Municipal public-service route: business cooperation purpose is not confirmed. Ask for the correct office; do not send a bulk pitch.", "wa.support": "Support / counselling route, not a channel for sales or grant applications.", "wa.purpose": "Confirm the channel’s purpose with the institution before business use.", "wa.filter": "Published WhatsApp link only", "wa.all": "All WhatsApp evidence states", "wa.source": "WhatsApp source", "wa.summary": "210 entries reviewed through 136 public pages: 12 institution-specific published routes, 180 with no link found, 14 inaccessible and 4 directory-provider channels not attributable to the institution. Links are not account tests.", "wa.plan": "Personalized message + next steps", "ow.stage": "Project legal stage (self-reported)", "ow.stage.idea": "Idea / no registered company", "ow.stage.registered_tr": "Registered Turkish company — verify all other gates", "ow.stage.other": "Other / uncertain — ask the programme", "ow.setup1": "Create an email-provider account yourself. The prepared adapter uses Resend; no account or API key has been created for you.", "ow.setup2": "For an owner-only test, use onboarding@resend.dev and the email of that Resend account. This does NOT allow public-user mail.", "ow.setup3": "In the reminder Worker’s Settings → Secrets, set RESEND_API_KEY, EMAIL_FROM and TEST_RECIPIENT. Never place them in this form, chat, HTML or Git.", "ow.setup4": "Then refresh the service here, request your verification email and confirm it. Only afterward sync your real pending tasks.", "ow.setup5": "The scheduled Worker checks due reminders every 30 minutes. A queued task, API acceptance, delivered email and read email are different; delivery is not guaranteed.", "ow.setup6": "Before public-user activation: verify your own sender domain, configure Turnstile, a real privacy contact/notice and review costs, security and legal obligations. Remove owner-only test mode only after those checks.", "ow.privateTitle": "Minimal data, explicit control", "ow.privateText": "No health records, documents or draft messages are transmitted to the reminder service. Verified-address task reminders can be stopped/deleted. The email provider may retain delivery logs under its own policy. Public activation is gated until a real responsible privacy contact and notice are configured.", "ow.localError": "Browser storage is unavailable. Keep a private backup; reload persistence is not guaranteed.", "ow.applicationLocked": "For your current stage / this closed call, do not file this application. First resolve the stated prerequisites with the official office.", "ow.invalidTime": "Enter a valid actual date, not a future completed action.", "ow.stopped": "This lead is stopped after a decline / no response. Do not keep messaging.", "ow.stage.draft": "Draft only", "ow.stage.awaiting_response": "User reports sent; waiting for reply", "ow.stage.submitted": "User reports submitted; not approved", "ow.stage.reply_positive": "User reports positive reply", "ow.stage.needs_info": "More information requested, per user", "ow.stage.declined": "Declined; stop outreach", "ow.stage.no_response_stop": "No response; do not keep following up"}, "fa": {"ow.nav": "دفتر کار همکاری و فاند", "ow.kicker": "گرینروت / ایده ← شواهد ← درخواست", "ow.h1": "هر تماس،<br>یک قدم واقعی بعدی.", "ow.lead": "دفتر کاری برای گرینروت در مرحله ایده و بدون شرکت: پیام ویژه هر مخاطب، مسیر دانشگاه و پیشرشد، شرایط فاند و موعد پیگیری. هیچ پیام همکاری یا ثبتنامی خودکار انجام نمیشود.", "ow.start": "باز کردن دفتر کار من", "ow.pick": "انتخاب از بانک ۲۱۰ ردیفی", "ow.heroNote": "آماده برای مرحله ایده · بازبینی منابع ۱۱ اکتبر ۲۰۲۶ · شرایط پذیرش نیازمند تأیید است", "ow.clock": "پس از ثبت ارسال توسط شما", "ow.clock2": "۲ روز تقویمی بعد: بررسی پاسخ", "ow.clock3": "بیپاسخ؟ یک پیگیری دیرتر را بررسی کنید", "ow.truth": "بدون اتصال سرویس، ایمیل واقعی ادعا نمیشود. موعدها اکنون محلی کار میکنند؛ یادآور ایمیلی به تنظیم سرویس منتشرشده و تأیید آدرس شما نیاز دارد.", "ow.desk": "میز اقدام بعدی شما", "ow.deskSub": "مخاطب را انتخاب کنید، مسیرش را بخوانید، پیشنویس را ویرایش و فقط کار واقعاً انجامشده را ثبت کنید. برنامه و یادداشتها محلی میمانند؛ یادآور ایمیلی فقط با فعالسازی صریح شما.", "ow.selectLabel": "مجموعه یا برنامه", "ow.selectBlank": "یک مخاطب یا مسیر منبعدار انتخاب کنید…", "ow.searchLabel": "پیدا کردن مخاطب با نام یا شناسه", "ow.noSelected": "با یک مخاطب شروع کنید، نه ارسال انبوه. مسیرهای دانشگاه و پیشرشد پایین، متناسب با مرحله ایده هستند.", "ow.sender": "نام شما / تیم — فقط محلی", "ow.senderPh": "پیش از ارسال، [نام شما] را جایگزین کنید", "ow.messageLang": "زبان پیام", "ow.subject": "موضوع پیام", "ow.draft": "پیام اولِ قابل ویرایش", "ow.draftHint": "این پیشنویس پیشنهاد است، نه مدرک شریک موجود، دستاورد پژوهشی یا اثر درمانی. جایخالیها را کامل کنید. باز کردن ایمیل یا واتساپ بهمعنی ارسال نیست.", "ow.copy": "کپی پیشنویس", "ow.openEmail": "باز کردن برنامه ایمیل من", "ow.openRoute": "باز کردن مسیر رسمی", "ow.inspectWA": "بررسی لینک واتساپ منتشرشده", "ow.saveLead": "افزودن این مورد به دفتر من", "ow.sendConfirm": "مخاطب و متن را بررسی کردم و خودم واقعاً پیام را فرستادم.", "ow.recordSent": "ثبت ارسال واقعی ← بررسی دو روز بعد", "ow.sentAt": "چه زمانی ارسال کردید؟", "ow.channel": "کانال واقعاً استفادهشده", "ow.channel.email": "ایمیل", "ow.channel.form": "فرم رسمی", "ow.channel.phone": "تلفن دفتر کاری", "ow.channel.whatsapp": "واتساپ — کارکرد را خودتان تأیید کردهاید", "ow.interval": "بررسی پاسخ بعد از چند روز تقویمی؟", "ow.noAuto": "این بخش هیچ پیام به نهادها، ارسال درخواست، ثبت شرکت، پرداخت یا امضایی انجام نمیدهد.", "ow.tasks": "صف پیگیریهای من", "ow.tasksSub": "کار دو روز بعد، بررسی صندوق پیام یا پرتال است، نه مطالبه خودکار پاسخ. اگر پاسخی نبود، یک پیگیری محترمانه نزدیک روز هفتم را بررسی کنید.", "ow.queueEmpty": "هنوز اقدام واقعی ثبت نشده است. مخاطبی انتخاب و پیشنویس ذخیره کنید، یا پیام واقعاً ارسالشده را ثبت کنید.", "ow.local": "دفتر محلی است؛ پیش از تغییر دستگاه نسخه پشتیبان خصوصی بگیرید. این یادداشتها را در مخزن عمومی منتشر نکنید.", "ow.export": "پشتیبان خصوصی — JSON", "ow.import": "بازیابی پشتیبان", "ow.calendar": "یادآور تقویم — .ics", "ow.clear": "حذف دفتر من", "ow.clearConfirm": "دفتر محلی و یادآورهای متصل سرور حذف شوند؟ بدون پشتیبان خصوصی قابل بازگشت نیست.", "ow.pending": "در انتظار", "ow.due": "موعد رسیده / گذشته", "ow.complete": "انجامشده", "ow.selected": "موارد در پیگیری", "ow.step.check_reply": "بررسی پاسخ در صندوق پیام / پرتال", "ow.step.followup_once": "بررسی یک پیام پیگیری محترمانه", "ow.step.prepare_dossier": "آماده کردن پرونده ایده / پژوهش خواستهشده", "ow.step.review_eligibility": "تأیید پذیرش فعلی، شرایط و مدارک لازم", "ow.step.review_application": "بررسی وضعیت درخواست ارسالشده / رسید", "ow.step.check_nextcall": "بررسی فراخوان بعدی و موعد در منبع رسمی", "ow.doneBtn": "ثبت نتیجه / قدم بعدی", "ow.snooze": "تغییر موعد", "ow.cancel": "لغو این کار", "ow.openLead": "باز کردن مخاطب", "ow.outcome": "واقعاً چه اتفاقی افتاد؟", "ow.outcome.none": "هنوز پاسخی نیست", "ow.outcome.positive": "پاسخ مثبت / پیشنهاد جلسه", "ow.outcome.info": "درخواست اطلاعات بیشتر", "ow.outcome.declined": "رد کرد / خواست دیگر تماس نگیریم", "ow.outcome.done": "کار انجام شد؛ نتیجه بیرونی فرض نمیشود", "ow.notes": "یادداشت کاری — محلی؛ هرگز ایمیل نمیشود", "ow.notesPh": "بدون نام بیمار، اطلاعات سلامت، شماره هویتی، رمز یا کلید API.", "ow.saveOutcome": "ذخیره نتیجه واقعی", "ow.close": "بستن", "ow.followupText": "سلام [تیم]؛ یکبار درباره معرفی گرینروت که در [تاریخ] فرستادم پیگیری میکنم. آیا دفتر شما مسیر درست برای [درخواست مشخص] است؟ اگر مرتبط نیست، مشکلی نیست و پیگیری را ادامه نمیدهم. سپاس، [نام شما].", "ow.application": "خودم درخواست را در پرتال رسمی ارسال کردم", "ow.applicationHint": "فقط پس از ارسال واقعی ثبت کنید. پذیرش تکنوپارک، ثبت شرکت و سرمایهگذاری رویدادهای جدا هستند. ابتدا شرایط و الزامات واقعی پرتال را بررسی کنید.", "ow.applicationConfirm": "شرایط، مدارک لازم و فراخوان فعلی را بررسی کردم و شخصاً درخواست را ارسال کردم.", "ow.recordApplication": "ثبت ارسال درخواست + بررسی پاسخ", "ow.noApplication": "تیک محلی تأیید واجدشرایطبودن فاند نیست. پیش از پرداخت، ثبت حقوقی شرکت، توافق سهام یا امضا توقف و بررسی حرفهای مناسب بگیرید.", "ow.routes": "مسیر دانشگاه، پیشرشد و فاند", "ow.routesSub": "۱۳ مسیر منتخب، جدا از بانک ۲۱۰ ردیفی. تاریخ مربوط به سند پیوندشده است، نه تضمین پذیرش آینده یا واجدشرایطبودن شما. فراخوان باز هم ممکن است برای تیم بدون شرکت مناسب نباشد.", "ow.routeFilter.all": "همه مسیرها", "ow.routeFilter.early": "اول دانشگاه / پیشرشد", "ow.routeFilter.funding": "فاند: اول شرایط را بررسی کنید", "ow.kind.incubator": "پیشرشد / شتابدهنده", "ow.kind.university": "دانشگاه / انتقال فناوری", "ow.kind.equity": "سرمایهگذاری سهامی — نه گرنت", "ow.kind.grant": "گرنت پژوهشی — با شرایط پذیرش", "ow.kind.repayable": "حمایت بازپرداختی — نه گرنت", "ow.status.published_deadline": "موعد منتشرشده؛ قواعد فعلی را تأیید کنید", "ow.status.closed_reviewed_call": "فراخوان بررسیشده بسته است", "ow.status.archived_call_inquiry": "فراخوان قدیمی: پذیرش فعلی را بپرسید", "ow.status.confirm_intake": "پذیرش فعلی تأیید نشده", "ow.status.confirm_current_rules": "قواعد جاری برنامه را تأیید کنید", "ow.status.confirm_current_call": "فراخوان فعلی تأیید نشده", "ow.deadline": "موعد درجشده در منبع", "ow.preReg": "موعد پیشثبتنام شرکت", "ow.source": "منبع رسمی", "ow.reviewed": "بازبینی ۱۱ اکتبر ۲۰۲۶؛ پیش از ارسال دوباره تأیید کنید", "ow.useRoute": "برنامهریزی این مسیر", "ow.rules": "قواعد فراخوان / PDF", "ow.gate.education_and_no_shareholding": "وضعیت تحصیل/دانشآموختگی، حمایت قبلی و محدودیت سهامداری را بررسی کنید.", "ow.gate.technology_validation": "فرضیه فناوری واقعی و قابلآزمون لازم است؛ اثر اجتماعی بهتنهایی مدرک پژوهشوتوسعه نیست.", "ow.gate.office_confirmation": "از دفتر، پذیرش فعلی، شرایط تیم بیرونی، هزینه و مدارک را بپرسید.", "ow.gate.acceleration_education_shareholding": "اتمام مرحله اول، تحصیل، حمایت قبلی و سهامداری؛ ثبت زودهنگام شرکت میانبُر نیست.", "ow.gate.turkish_sme_company": "مسیر بعدی: شرکت سرمایهای کوچکِ واجدشرایط ترکیه و پروژه پژوهشوتوسعه مستند؛ ایده بدون شرکت آماده درخواست نیست.", "ow.gate.university_and_company": "مؤسسه دانشگاهی/پژوهشی مجری و شرکت مشتریِ واجدشرایط؛ هر دو باید موافق باشند.", "ow.gate.company_nace_training": "شرایط شرکت، فعالیت NACE مجاز، آموزش، ضمانت و بازپرداخت را تأیید کنید.", "ow.readiness": "پیش از درخواست، پرونده را آماده کنید", "ow.readinessSub": "اینها پیشنهاد آمادهسازیاند، نه فهرست قطعی مدارک همه دانشگاهها. برنامه واقعی ممکن است مدارک دیگری بخواهد. هیچ مدرک حساس در این سایت بارگذاری نمیشود.", "ow.readinessCount": "تکمیل چکلیست به گزارش خودتان", "ow.doc.concept": "ایده یکصفحهای: مسئله، کاربر، پرداختکننده، پایلوت ایمن و هر دو مسیر بازیافت به مراقبت", "ow.doc.team": "معرفی تیم، نقشها و نقشه صادقانه کمبود مهارت؛ وضعیت تحصیل در صورت الزام تأیید شود", "ow.doc.tech": "فرضیه قابلآزمون پژوهش، مقایسه نوآوری، نمونه اولیه و شواهد آمادگی فناوری؛ بدون نتیجه ساختگی", "ow.doc.market": "اعتبارسنجی مشتری و نامه علاقهمندی فقط اگر واقعاً گرفتهاید", "ow.doc.budget": "بستههای کاری، زمانبندی، فرض هزینه، سهم خودتان و جدول کسری منابع", "ow.doc.safety": "کار داوطلبانه و قانونیِ حقوقدار، دستمزد، بیمه، شریک بالینی دارای مجوز و جداسازی داده", "ow.doc.materials": "مسیر مواد پزشکی: تولید دارای مجوز، کیفیت و بررسی مقررات؛ نه ادعای محصول پزشکی دستساز", "ow.doc.call": "فراخوان رسمی فعلی، دوره درست، بررسی تحصیل/سهامداری/اقامت و فرمهای لازم", "ow.doc.permission": "اجازه صریح پیش از اشتراک داده خصوصی یا ارسال درخواست و امضا", "ow.dossier": "پرونده درخواست قابل ویرایش", "ow.emailTitle": "یادآور ایمیلی واقعی: فعالسازی امن", "ow.emailSub": "فقط یادآوری به آدرس تأییدشده خودتان، نه پیام به مخاطب همکاری. سرور فقط عنوان کار، نام مجموعه و موعد را میگیرد؛ نه متن پیام، یادداشت، اطلاعات سلامت یا مدارک شما.", "ow.emailLoading": "در حال بررسی سرویس یادآور…", "ow.emailMissing": "فعال نیست: سرویس ارسال یا فرستنده تنظیم نشده است. هیچ ایمیلی ارسال یا برای تحویل زمانبندی نشده؛ موعد محلی کار میکند.", "ow.emailOffline": "سرویس در این پیشنمایش یا اتصال در دسترس نیست. سایت زنده را باز کنید؛ برنامهریزی محلی همچنان کار میکند.", "ow.emailReady": "تنظیمات فرستنده موجود است؛ پیش از همگامسازی کارها ایمیل را تأیید کنید. پذیرش سرویس و تحویل هنوز به آزمون واقعی نیاز دارد.", "ow.emailVerifyPending": "درخواست ایمیل تأیید توسط سرویس پذیرفته شد. پیام را باز و تأیید کنید؛ تحویل یا خواندن هنوز تأیید نشده است.", "ow.emailVerified": "آدرس شما تأیید شده است. یادآورهای کارهای در انتظار میتوانند به سرویس زمانبندی همگام شوند.", "ow.emailUnsubscribed": "یادآور ایمیلی متوقف شده است؛ دفتر محلی شما تغییر نمیکند.", "ow.emailAddress": "آدرس ایمیل خودتان برای یادآور", "ow.emailConsent": "یادآور را به آدرس خودم درخواست میکنم و با ارسال حداقل داده کاری توضیحدادهشده به سرویس موافقم.", "ow.emailConnect": "درخواست ایمیل تأیید", "ow.emailRefresh": "بررسی تأیید / سرویس", "ow.emailSync": "همگامسازی یادآورهای در انتظار", "ow.emailStop": "توقف و حذف یادآورهای سرور", "ow.emailSetup": "راهنمای تنظیم فرستنده — بدون کلید در چت", "ow.emailTestMode": "حالت آزمایشی تکحساب: فقط ایمیل صاحب حسابِ تنظیمشده مجاز است. کاربران عمومی به دامنه تأییدشده و حفاظت ضدسوءاستفاده نیاز دارند.", "ow.emailSynced": "یادآورهای در انتظار همگام شدند؛ این ثبت صف است، نه تأیید تحویل.", "ow.emailFail": "عملیات ایمیل ناموفق بود؛ تحویلی ادعا نمیشود. تنظیمات فرستنده و سرویس زنده را بررسی کنید.", "ow.rahaTitle": "مربی همکاری رها — قواعد روشن، شواهد واقعی", "ow.rahaSub": "دستیار سایت همچنان دموی قواعدمحور است، نه عامل ثبت درخواست یا خواندن صندوق ایمیل. دستور همکاری آن اکنون پیشنیاز، موعد، اجازه و نتیجه مستند را مقدم میداند.", "ow.rahaOpen": "باز کردن رها / مربی همکاری", "ow.rahaFile": "دانلود دستور کناری — فارسی، ترکی، انگلیسی", "ow.copyDone": "کپی شد", "ow.savedDone": "روی این دستگاه ذخیره شد", "ow.invalidImport": "این پشتیبان خصوصی معتبر گرینروت نیست؛ چیزی وارد نشد.", "ow.recorded": "اقدام به اعلام شما ثبت شد و موعد پیگیری ساخته شد؛ سایت چیزی ارسال نکرد.", "ow.noResponseChance": "برچسب تناسب پیشنهاد کارشناسی است، نه درصد پاسخ یا پذیرش.", "ow.fit.high": "تناسب موضوعی بالا؛ تمایل نامعلوم", "ow.fit.medium": "تناسب احتمالی؛ تیم درست را تأیید کنید", "ow.fit.conditional": "مسیر مشروط؛ اول پیشنیازها", "ow.profile.university": "استعلام دانشگاه / انتقال فناوری", "ow.profile.public_support": "استعلام شرایط حمایت کسبوکار", "ow.profile.civic": "پایلوت شهری / معرفی به واحد مسئول", "ow.profile.recycling": "جریان ایمن مواد / شریک خرید بازیافت", "ow.profile.recovery": "مراقبت دارای مجوز / ارجاع / ایمنی", "ow.profile.research": "طرح پژوهش / اخلاق / ارزیابی", "ow.profile.employment": "مهارت / کارفرما / حامی مسئولانه", "ow.profile.family": "حفاظت / حمایت خانواده", "ow.profile.environment": "آموزش محیطزیست / روش سنجش اثر", "wa.label": "شواهد واتساپ منتشرشده", "wa.published": "لینک دارای شماره مخاطب در صفحه رسمی منتشر شده", "wa.not_found": "در صفحات بررسیشده لینک رسمی پیدا نشد؛ وجود حساب نامعلوم است", "wa.unavailable": "صفحه رسمی قابل بررسی نبود؛ واتساپ نامعلوم است", "wa.directory_only": "فقط کانال منتشرکننده فهرست پیدا شد؛ نه کانال این مجموعه", "wa.hq_only": "فقط کانال مرکزی؛ واتساپ این شعبه تأیید نشده", "wa.limit": "لینک منتشرشده یعنی حساب فعال، پاسخگویی یا اجازه پیام کاری نیست. هیچ حساب واتساپی آزمون یا مخاطب پیام قرار نگرفت.", "wa.service": "مسیر خدمات عمومی شهرداری است؛ کاربرد همکاری کاری تأیید نشده. دفتر درست را بپرسید و پیام انبوه نفرستید.", "wa.support": "مسیر حمایت / مشاوره است، نه کانال فروش یا درخواست گرنت.", "wa.purpose": "پیش از استفاده کاری، هدف این کانال را با مجموعه تأیید کنید.", "wa.filter": "فقط لینک واتساپ منتشرشده", "wa.all": "همه وضعیتهای شواهد واتساپ", "wa.source": "منبع واتساپ", "wa.summary": "۲۱۰ ردیف از طریق ۱۳۶ صفحه عمومی بازبینی شدند: ۱۲ مسیر منتشرشده ویژه مجموعه، ۱۸۰ بدون لینک پیداشده، ۱۴ غیرقابلبررسی و ۴ کانالِ منتشرکننده فهرست که متعلق به خود مجموعه تأیید نشدهاند. لینکها آزمون حساب نیستند.", "wa.plan": "پیام اختصاصی + قدمهای بعد", "ow.stage": "مرحله حقوقی پروژه — به اعلام خودتان", "ow.stage.idea": "ایده / بدون شرکت ثبتشده", "ow.stage.registered_tr": "شرکت ترکیهای ثبتشده؛ سایر شرایط بررسی شود", "ow.stage.other": "سایر / نامعلوم؛ از برنامه بپرسید", "ow.setup1": "حساب سرویس ایمیل را خودتان بسازید. اتصال آماده برای Resend است؛ حساب یا کلید برای شما ایجاد نشده است.", "ow.setup2": "برای آزمون فقط صاحب حساب، از onboarding@resend.dev و ایمیل همان حساب Resend استفاده کنید؛ این حالت ارسال به کاربران عمومی نیست.", "ow.setup3": "در تنظیمات Worker یادآور، بخش Secrets، متغیرهای RESEND_API_KEY، EMAIL_FROM و TEST_RECIPIENT را تنظیم کنید؛ نه در این فرم، چت، HTML یا گیت.", "ow.setup4": "سپس اینجا سرویس را تازه کنید، ایمیل تأیید بخواهید و آن را تأیید کنید؛ فقط پس از آن کارهای واقعی در انتظار را همگام کنید.", "ow.setup5": "Worker زمانبندیشده هر ۳۰ دقیقه موعدها را بررسی میکند. ثبت صف، پذیرش API، تحویل و خواندن متفاوتاند؛ تحویل تضمین نمیشود.", "ow.setup6": "پیش از فعالسازی برای کاربران عمومی: دامنه فرستنده خودتان را تأیید، Turnstile و تماس/اطلاعیه واقعی حریم خصوصی را تنظیم و هزینه، امنیت و تعهدات قانونی را بررسی کنید. حالت آزمایشی تکصاحب را فقط بعد از این بررسیها حذف کنید.", "ow.privateTitle": "حداقل داده، کنترل صریح", "ow.privateText": "پرونده سلامت، مدارک یا پیشنویس پیام به سرویس یادآور فرستاده نمیشود. یادآور آدرس تأییدشده قابل توقف و حذف است. سرویس ایمیل ممکن است گزارش تحویل را طبق سیاست خود نگه دارد. فعالسازی عمومی تا تنظیم مسئول و اطلاعیه واقعی حریم خصوصی محدود است.", "ow.localError": "ذخیره مرورگر در دسترس نیست؛ پشتیبان خصوصی بگیرید. ماندگاری پس از بازخوانی تضمین نیست.", "ow.applicationLocked": "در مرحله فعلی یا این فراخوان بسته، این درخواست را ارسال نکنید. اول پیشنیازهای گفتهشده را با دفتر رسمی روشن کنید.", "ow.invalidTime": "تاریخ واقعی و معتبر وارد کنید؛ اقدام انجامشده در آینده نیست.", "ow.stopped": "پیگیری این مخاطب پس از رد یا بیپاسخی متوقف شده؛ پیام را ادامه ندهید.", "ow.stage.draft": "فقط پیشنویس", "ow.stage.awaiting_response": "ارسال به اعلام کاربر؛ منتظر پاسخ", "ow.stage.submitted": "ارسال درخواست به اعلام کاربر؛ نه پذیرش", "ow.stage.reply_positive": "پاسخ مثبت به اعلام کاربر", "ow.stage.needs_info": "اطلاعات بیشتر به اعلام کاربر خواسته شده", "ow.stage.declined": "رد؛ توقف تماس", "ow.stage.no_response_stop": "بیپاسخ؛ پیگیری را ادامه ندهید"}, "tr": {"ow.nav": "İşbirliği çalışma alanı", "ow.kicker": "GREENROOT / FİKİR → KANIT → BAŞVURU", "ow.h1": "Bir iletişim.<br>Gerçek bir sonraki adım.", "ow.lead": "Şirketleşmemiş GreenRoot ekibi için alıcıya özel mesajlar, üniversite / kuluçka yolları, fon koşulları ve takip tarihleri. Otomatik dış iletişim veya kayıt yapılmaz.", "ow.start": "Çalışma alanımı aç", "ow.pick": "210 adaydan seç", "ow.heroNote": "Fikir aşaması için · 11 Ekim 2026 kaynak incelemesi · uygunluk koşulludur", "ow.clock": "SİZ gönderimi kaydedince", "ow.clock2": "+2 takvim günü: yanıtı kontrol et", "ow.clock3": "Yanıt yoksa tek bir sonraki takibi değerlendir", "ow.truth": "Hizmet bağlı değilse e-posta gönderildiği iddia edilmez. Tarihler yerelde çalışır; gerçek e-posta için hizmet yapılandırılmalı ve adresiniz doğrulanmalıdır.", "ow.desk": "Sonraki işlem alanınız", "ow.deskSub": "Bir aday seçin, yolunu inceleyin, taslağı düzenleyin ve yalnız gerçekten yaptığınız işlemi kaydedin. E-posta hatırlatmalarını açıkça etkinleştirmedikçe plan ve notlar tarayıcıda kalır.", "ow.selectLabel": "Kurum veya program", "ow.selectBlank": "Kurum veya kaynaklı yol seçin…", "ow.searchLabel": "Ad veya kimlikle aday bul", "ow.noSelected": "Toplu kampanya değil, bir kişiyle başlayın. Aşağıdaki üniversite / ön kuluçka yolları fikir aşamasına göre hazırlanmıştır.", "ow.sender": "Adınız / ekibiniz — yalnız yerel", "ow.senderPh": "Göndermeden önce [adınız] alanını değiştirin", "ow.messageLang": "Mesaj dili", "ow.subject": "Konu", "ow.draft": "Düzenlenebilir ilk mesaj", "ow.draftHint": "Bu taslak bir öneridir; mevcut ortaklık, Ar-Ge başarısı veya klinik etki kanıtı değildir. Yer tutucuları değiştirin. E-posta/WhatsApp açmak gönderim sayılmaz.", "ow.copy": "Taslağı kopyala", "ow.openEmail": "E-posta uygulamamı aç", "ow.openRoute": "Resmi yolu aç", "ow.inspectWA": "Yayımlanan WhatsApp yolunu incele", "ow.saveLead": "Bu adayı çalışma alanıma ekle", "ow.sendConfirm": "Alıcıyı ve mesajı kontrol ettim; gerçekten kendim gönderdim.", "ow.recordSent": "Gerçek gönderimi kaydet → +2 gün kontrol", "ow.sentAt": "Ne zaman gönderdiniz?", "ow.channel": "Gerçekte kullanılan kanal", "ow.channel.email": "E-posta", "ow.channel.form": "Resmi form", "ow.channel.phone": "İş ofisi telefonu", "ow.channel.whatsapp": "WhatsApp — amacı siz teyit ettiniz", "ow.interval": "Yanıt kaç takvim günü sonra kontrol edilsin?", "ow.noAuto": "Kurumlara mesaj, başvuru, şirket kaydı, ödeme veya imza burada yapılmaz.", "ow.tasks": "Takip kuyruğum", "ow.tasksSub": "+2 gün görevi gelen kutusu / portal kontrolüdür; otomatik yanıt talebi değildir. Yanıt yoksa yaklaşık 7. günde tek nazik takip düşünün.", "ow.queueEmpty": "Henüz gerçek işlem kaydedilmedi. Bir aday seçip taslağı kaydedin veya gerçekten gönderdiğiniz mesajı kaydedin.", "ow.local": "Yerel çalışma alanı: cihaz değiştirmeden özel yedek alın. Bu notları herkese açık depoya yüklemeyin.", "ow.export": "Özel yedek — JSON", "ow.import": "Yedeği geri yükle", "ow.calendar": "Takvim hatırlatmaları — .ics", "ow.clear": "Çalışma alanımı sil", "ow.clearConfirm": "Yerel alan ve bağlı sunucu hatırlatmaları silinsin mi? Özel yedek olmadan geri alınamaz.", "ow.pending": "Bekliyor", "ow.due": "Zamanı geldi / geçti", "ow.complete": "Tamam", "ow.selected": "İzlenen adaylar", "ow.step.check_reply": "Yanıt için gelen kutusu / portalı kontrol et", "ow.step.followup_once": "Tek nazik takip mesajını değerlendir", "ow.step.prepare_dossier": "İstenen fikir / Ar-Ge dosyasını hazırla", "ow.step.review_eligibility": "Güncel kabul, uygunluk ve belgeleri teyit et", "ow.step.review_application": "Gönderilen başvuru / makbuzu kontrol et", "ow.step.check_nextcall": "Resmi sonraki çağrı / son tarihi kontrol et", "ow.doneBtn": "Sonucu / sonraki adımı kaydet", "ow.snooze": "Tarihi değiştir", "ow.cancel": "Bu görevi iptal et", "ow.openLead": "Adayı aç", "ow.outcome": "Gerçekte ne oldu?", "ow.outcome.none": "Henüz yanıt yok", "ow.outcome.positive": "Olumlu yanıt / görüşme önerisi", "ow.outcome.info": "Ek bilgi istendi", "ow.outcome.declined": "Reddetti / iletişim istemedi", "ow.outcome.done": "Görev tamamlandı; dış sonuç varsayılmaz", "ow.notes": "İş notu — yerel; e-postalanmaz", "ow.notesPh": "Hasta adı, sağlık bilgisi, kimlik, parola veya API anahtarı yok.", "ow.saveOutcome": "Gerçek sonucu kaydet", "ow.close": "Kapat", "ow.followupText": "Merhaba [ekip], [tarih] tarihinde gönderdiğim GreenRoot tanıtımını bir kez takip ediyorum. [Belirli talep] için ofisiniz doğru adres mi? Konu ilgili değilse sorun değil; takibi sürdürmeyeceğim. Teşekkürler, [adınız].", "ow.application": "Resmi portalda başvuruyu kendim gönderdim", "ow.applicationHint": "Yalnız gerçek gönderimden SONRA kaydedin. Teknopark kabulü, şirket kaydı ve yatırım ayrı olaylardır. Önce uygunluğu ve gerçek portal koşullarını inceleyin.", "ow.applicationConfirm": "Uygunluğu, belgeleri ve güncel çağrıyı kontrol ettim; şahsen başvurdum.", "ow.recordApplication": "Başvuruyu kaydet + yanıt kontrolü", "ow.noApplication": "Yerel onay kutusu fon uygunluğunu kanıtlamaz. Ödeme, şirket tescili, pay sözleşmesi veya imza öncesi durup uygun profesyonel inceleme alın.", "ow.routes": "Üniversite, kuluçka ve fon yolları", "ow.routesSub": "210 kayıtlı rehberden ayrı 13 seçilmiş yol. Tarihler bağlantılı çağrıya aittir; gelecekte kabul veya sizin uygunluğunuz garanti değildir. Açık çağrı şirketleşmemiş ekibe uygun olmayabilir.", "ow.routeFilter.all": "Tüm yollar", "ow.routeFilter.early": "Önce üniversite / ön kuluçka", "ow.routeFilter.funding": "Fon: önce koşulları kontrol edin", "ow.kind.incubator": "Ön kuluçka / hızlandırıcı", "ow.kind.university": "Üniversite / TTO", "ow.kind.equity": "Pay yatırımı — hibe değil", "ow.kind.grant": "Ar-Ge hibesi — koşullu uygunluk", "ow.kind.repayable": "Geri ödemeli destek — hibe değil", "ow.status.published_deadline": "Yayımlanan son tarih; güncel kuralları teyit edin", "ow.status.closed_reviewed_call": "İncelenen çağrı KAPALI", "ow.status.archived_call_inquiry": "Eski çağrı: güncel kabulü sorun", "ow.status.confirm_intake": "Güncel kabul teyit edilmedi", "ow.status.confirm_current_rules": "Güncel program kurallarını teyit edin", "ow.status.confirm_current_call": "Güncel çağrı teyit edilmedi", "ow.deadline": "Kaynakta son tarih", "ow.preReg": "Şirket ön kayıt son tarihi", "ow.source": "Resmi kaynak", "ow.reviewed": "11 Ekim 2026 incelemesi; gönderim öncesi yeniden teyit edin", "ow.useRoute": "Bu yolu planla", "ow.rules": "Çağrı kuralları / PDF", "ow.gate.education_and_no_shareholding": "Eğitim belgesi, önceki destek ve ortaklık kısıtlarını kontrol edin.", "ow.gate.technology_validation": "Gerçek ve test edilebilir teknoloji hipotezi gerekir; sosyal fayda tek başına Ar-Ge kanıtı değildir.", "ow.gate.office_confirmation": "Ofisten güncel kabulü, dış ekip uygunluğunu, ücret ve belgeleri sorun.", "ow.gate.acceleration_education_shareholding": "Aşama 1, eğitim, önceki destek ve ortaklık koşulları; erken şirketleşme kestirme yol değildir.", "ow.gate.turkish_sme_company": "Sonraki yol: uygun Türkiye KOBİ sermaye şirketi ve kanıtlı Ar-Ge projesi. Şirketsiz fikir hazır değildir.", "ow.gate.university_and_company": "Yürütücü üniversite/araştırma kurumu ve uygun müşteri şirket; ikisi de kabul etmeli.", "ow.gate.company_nace_training": "Şirket, desteklenen NACE, eğitim, teminat ve geri ödemeyi teyit edin.", "ow.readiness": "Başvuru öncesi dosyayı hazırla", "ow.readinessSub": "Bunlar hazırlık önerileridir; tüm üniversiteler için kesin belge listesi değildir. Gerçek program farklı belgeler isteyebilir. Buraya hassas belge yüklenmez.", "ow.readinessCount": "Kendi bildiriminize göre liste tamamlama", "ow.doc.concept": "1 sayfalık fikir: sorun, kullanıcı, ödeyen, güvenli pilot ve iki geri dönüşüm-bakım yolu", "ow.doc.team": "Ekip özgeçmişi, roller, dürüst beceri açığı; gerekiyorsa eğitim durumu doğrulansın", "ow.doc.tech": "Test edilebilir Ar-Ge hipotezi, yenilik karşılaştırması, prototip / THS kanıtı; uydurma sonuç yok", "ow.doc.market": "Müşteri doğrulaması; ilgi mektubu yalnız gerçekten alındıysa", "ow.doc.budget": "İş paketleri, takvim, maliyet varsayımları, öz katkı ve fon açığı", "ow.doc.safety": "Gönüllü, yasal ücretli iş; ücret, sigorta, lisanslı klinik ortak ve veri ayrımı", "ow.doc.materials": "Tıbbi malzeme yolu: lisanslı üretim, kalite, mevzuat; kendi yapımı tıbbi ürün iddiası değil", "ow.doc.call": "Güncel resmi çağrı, doğru dönem, eğitim/ortaklık/ikamet ve formlar", "ow.doc.permission": "Özel veri paylaşımı, başvuru veya imza öncesi açık izin", "ow.dossier": "Düzenlenebilir başvuru dosyası", "ow.emailTitle": "Gerçek e-posta hatırlatmaları: güvenli etkinleştirme", "ow.emailSub": "Yalnız kendi doğrulanmış adresinize hatırlatma; adaya dış iletişim değil. Sunucu yalnız görev, kurum adı ve tarihi alır; taslak, not, sağlık bilgisi veya belgeleri almaz.", "ow.emailLoading": "Hatırlatma hizmeti kontrol ediliyor…", "ow.emailMissing": "Etkin değil: e-posta hizmeti / gönderen yapılandırılmadı. E-posta gönderilmedi veya teslim için planlanmadı; yerel tarihler çalışır.", "ow.emailOffline": "Bu önizleme / bağlantıda hizmet kullanılamıyor. Canlı siteyi kullanın; yerel planlama çalışır.", "ow.emailReady": "Gönderen ayarları mevcut; görevleri eşlemeden adresi doğrulayın. Sağlayıcı kabulü / teslim için gerçek test gerekir.", "ow.emailVerifyPending": "Doğrulama isteği sağlayıcı tarafından kabul edildi. E-postayı açıp onaylayın; teslim / okunma henüz teyit edilmedi.", "ow.emailVerified": "Adresiniz doğrulandı. Bekleyen görev hatırlatmaları zamanlama hizmetine eşlenebilir.", "ow.emailUnsubscribed": "E-posta hatırlatmaları durduruldu; yerel alan etkilenmez.", "ow.emailAddress": "Hatırlatma için kendi e-posta adresiniz", "ow.emailConsent": "Kendi adresime hatırlatma istiyorum ve açıklanan asgari görev verilerinin hizmete gönderimini kabul ediyorum.", "ow.emailConnect": "Doğrulama e-postası iste", "ow.emailRefresh": "Doğrulamayı / hizmeti kontrol et", "ow.emailSync": "Bekleyen hatırlatmaları eşle", "ow.emailStop": "Sunucu hatırlatmalarını durdur ve sil", "ow.emailSetup": "Gönderen kurulum rehberi — sohbette anahtar yok", "ow.emailTestMode": "Tek hesap test modu: yalnız yapılandırılmış hesap sahibinin adresi. Genel kullanıcılar doğrulanmış alan adı ve kötüye kullanım koruması gerektirir.", "ow.emailSynced": "Bekleyen hatırlatmalar eşlendi; bu kuyruk kaydıdır, teslim onayı değildir.", "ow.emailFail": "E-posta işlemi başarısız; teslim iddia edilmez. Gönderen ayarlarını ve canlı hizmeti kontrol edin.", "ow.rahaTitle": "Raha işbirliği koçu — açık kurallar, gerçek kanıt", "ow.rahaSub": "Site asistanı hâlâ kural tabanlı demodur; otonom başvuru veya gelen kutusu okuma aracı değildir. İşbirliği yönergeleri koşul, tarih, izin ve belgeli sonucu öne alır.", "ow.rahaOpen": "Raha / işbirliği koçunu aç", "ow.rahaFile": "Yan yönergeleri indir — EN / FA / TR", "ow.copyDone": "Kopyalandı", "ow.savedDone": "Bu cihazda kaydedildi", "ow.invalidImport": "Geçerli GreenRoot özel yedeği değil; içe aktarılmadı.", "ow.recorded": "İşlem sizin bildiriminizle kaydedildi; takip tarihi oluşturuldu. Site gönderim yapmadı.", "ow.noResponseChance": "Uyum etiketleri editoryaldir; yanıt / kabul olasılığı değildir.", "ow.fit.high": "Güçlü tematik uyum; istek bilinmiyor", "ow.fit.medium": "Olası uyum; doğru ekibi teyit edin", "ow.fit.conditional": "Koşullu yol; önce ön koşullar", "ow.profile.university": "Üniversite / teknoloji transferi", "ow.profile.public_support": "İş desteği uygunluk sorusu", "ow.profile.civic": "Belediye pilotu / birime yönlendirme", "ow.profile.recycling": "Güvenli malzeme akışı / alım ortağı", "ow.profile.recovery": "Lisanslı bakım / yönlendirme / güvenlik", "ow.profile.research": "Araştırma tasarımı / etik / değerlendirme", "ow.profile.employment": "Beceri / işveren / sorumlu destekçi", "ow.profile.family": "Koruma / aile desteği", "ow.profile.environment": "Çevre eğitimi / etki yöntemi", "wa.label": "Yayımlanan WhatsApp kanıtı", "wa.published": "Resmi sayfada alıcı numaralı bağlantı yayımlandı", "wa.not_found": "İncelenen sayfalarda resmi bağlantı bulunamadı; hesap varlığı bilinmiyor", "wa.unavailable": "Resmi sayfa incelenemedi; WhatsApp bilinmiyor", "wa.directory_only": "Yalnız rehber yayımlayıcısının kanalı bulundu; bu kurumun değil", "wa.hq_only": "Yalnız merkez kanalı; bu şubenin WhatsAppı teyit edilmedi", "wa.limit": "Yayımlanan bağlantı aktif hesap, yanıt veya iş mesajı izni değildir. WhatsApp hesabı sorgulanmadı veya mesaj gönderilmedi.", "wa.service": "Belediye kamu hizmeti kanalı; işbirliği amacı teyit edilmedi. Doğru ofisi sorun; toplu tanıtım göndermeyin.", "wa.support": "Destek / danışma kanalı; satış veya hibe başvurusu kanalı değil.", "wa.purpose": "İş amaçlı kullanmadan önce kanalın amacını kurumla teyit edin.", "wa.filter": "Yalnız yayımlanan WhatsApp bağlantısı", "wa.all": "Tüm WhatsApp kanıt durumları", "wa.source": "WhatsApp kaynağı", "wa.summary": "210 kayıt 136 kamuya açık sayfadan incelendi: kuruma özel 12 yayımlanan yol, bağlantı bulunamayan 180, incelenemeyen 14 ve kuruma atfedilemeyen 4 rehber yayımlayıcısı kanalı. Bağlantılar hesap testi değildir.", "wa.plan": "Özel mesaj + sonraki adımlar", "ow.stage": "Projenin hukuki aşaması — kendi bildiriminiz", "ow.stage.idea": "Fikir / kayıtlı şirket yok", "ow.stage.registered_tr": "Türkiye şirketi — diğer koşullar teyit edilsin", "ow.stage.other": "Diğer / belirsiz — programa sorun", "ow.setup1": "E-posta hizmeti hesabını kendiniz açın. Hazır bağlantı Resend içindir; sizin için hesap / anahtar oluşturulmadı.", "ow.setup2": "Yalnız hesap sahibi testi için onboarding@resend.dev ve Resend hesabının adresini kullanın; genel kullanıcı e-postası değildir.", "ow.setup3": "Hatırlatma Worker Settings → Secrets içinde RESEND_API_KEY, EMAIL_FROM ve TEST_RECIPIENT ayarlayın; form, sohbet, HTML veya Git içine koymayın.", "ow.setup4": "Sonra hizmeti yenileyin, doğrulama e-postasını isteyip onaylayın; ardından gerçek bekleyen görevleri eşleyin.", "ow.setup5": "Zamanlı Worker 30 dakikada bir kontrol eder. Kuyruk, API kabulü, teslim ve okuma farklıdır; teslim garanti değildir.", "ow.setup6": "Genel kullanıcı öncesi kendi gönderen alanınızı doğrulayın, Turnstile ve gerçek mahremiyet iletişimi/bildirimi ayarlayın; maliyet, güvenlik ve hukuki yükümlülükleri inceleyin. Tek sahip testini ancak sonra kaldırın.", "ow.privateTitle": "Asgari veri, açık kontrol", "ow.privateText": "Sağlık kaydı, belge veya taslak hizmete gönderilmez. Doğrulanmış adrese hatırlatmalar durdurulup silinebilir. E-posta sağlayıcısı kendi politikasınca teslim kaydı tutabilir. Gerçek mahremiyet sorumlusu/bildirimi olmadan genel etkinleştirme sınırlıdır.", "ow.localError": "Tarayıcı depolaması yok; özel yedek alın. Yenilemede kalıcılık garanti değil.", "ow.applicationLocked": "Mevcut aşama / kapalı çağrı için başvurmayın. Önce koşulları resmi ofisle çözün.", "ow.invalidTime": "Geçerli gerçek tarih girin; gelecekteki işlem tamamlanmış sayılmaz.", "ow.stopped": "Ret / yanıtsızlık sonrası bu aday durduruldu; mesajı sürdürmeyin.", "ow.stage.draft": "Yalnız taslak", "ow.stage.awaiting_response": "Kullanıcı gönderdiğini bildirdi; yanıt bekleniyor", "ow.stage.submitted": "Kullanıcı başvurduğunu bildirdi; kabul değil", "ow.stage.reply_positive": "Kullanıcı olumlu yanıt bildirdi", "ow.stage.needs_info": "Kullanıcıya göre ek bilgi istendi", "ow.stage.declined": "Ret; iletişimi durdur", "ow.stage.no_response_stop": "Yanıt yok; takibi sürdürmeyin"}};Object.keys(X).forEach(function(l){window.I18N[l]=Object.assign(window.I18N[l]||{},X[l]);});window.GR_WORKFLOW_CONFIG={"api": "https://greenroot-followups.elasa2next.workers.dev", "docs": ["concept", "team", "tech", "market", "budget", "safety", "materials", "call", "permission"], "defaultDelayDays": 2, "sourceChecked": "2026-10-11"};})();
</script>
<script>
/* GreenRoot outreach state: private local plans, explicit user-reported actions.
Does NOT send collaboration messages, read inboxes, file or register anything. */
(function(){'use strict';
var KEY='gr-outreach-desk-v1',cfg=window.GR_WORKFLOW_CONFIG||{},mem=null,storageOK=true;
function lang(){return ['en','fa','tr'].includes(document.documentElement.lang)?document.documentElement.lang:'en';}
function t(k,l){l=l||lang();return (window.I18N[l]||{})[k]||(window.I18N.en||{})[k]||k;}
function esc(x){return String(x==null?'':x).replace(/[&<>"']/g,function(c){return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];});}
function secureKey(){if(!window.crypto||!crypto.getRandomValues)return null;var a=new Uint8Array(32);crypto.getRandomValues(a);return btoa(String.fromCharCode.apply(null,a)).replace(/\+/g,'-').replace(/\//g,'_').replace(/=+$/,'');}
function taskID(){return 't_'+(secureKey()||('local_'+Date.now()+'_'+Math.random())).slice(0,25).replace(/[^a-zA-Z0-9_-]/g,'');}
function blank(){return {version:1,authKey:secureKey(),leads:{},tasks:[],docs:{},prefs:{sender:'',stage:'idea',delay:2},cloud:{optin:false,verified:false},updatedAt:new Date().toISOString()};}
function read(){if(mem)return mem;try{var x=JSON.parse(localStorage.getItem(KEY)||'null');if(x&&x.version===1&&x.leads&&Array.isArray(x.tasks))mem=x;}catch(e){storageOK=false;}if(!mem)mem=blank();if(!mem.docs)mem.docs={};if(!mem.prefs)mem.prefs={sender:'',stage:'idea',delay:2};if(!mem.cloud)mem.cloud={optin:false};if(!/^[\w-]{43}$/.test(mem.authKey||''))mem.authKey=secureKey();return mem;}
function write(silent){var s=read();s.updatedAt=new Date().toISOString();try{localStorage.setItem(KEY,JSON.stringify(s));}catch(e){storageOK=false;}if(!silent)document.dispatchEvent(new CustomEvent('greenroot:outreach',{detail:{}}));}
function payload(id){var a=document.getElementById(id);if(!a)return null;try{return JSON.parse(a.textContent);}catch(e){return null;}}
var contactData=payload('gr-partner-data'),routeData=payload('gr-workflow-data');
var rows=contactData?contactData.contacts:[],routes=routeData?routeData.routes:[];
function lead(id){return rows.find(function(x){return x.id===id;})||routes.find(function(x){return x.id===id;})||null;}
function name(r,l){return (l||lang())==='fa'?(r.name_fa||r.name):(r.name_en||r.name);}
function message(r,l){l=l||lang();var s=read(),text=r['message_'+l];if(!text){text=t('ow.subject',l)+': '+name(r,l)+'\n\n'+(r['summary_'+l]||r.summary_en||'')+'\n\n'+t('ow.gate.'+(r.gate||'office_confirmation'),l)+'\n\n'+t('ow.noAuto',l);}
if(s.prefs.stage!=='idea'){text=text.replace('no company is registered yet.','our current legal details are [fill and verify].').replace('هنوز شرکت ثبت نشده است.','جزئیات حقوقی فعلی ما [تکمیل و تأیید شود].').replace('henüz şirketleşmemiş fikir aşamasındaki','hukuki durumu [doldurun / doğrulayın] olan erken aşamadaki');}if(s.prefs.sender)text=text.replace(/\[(?:your name|نام شما|adınız)\]/g,s.prefs.sender);return text;}
function track(r){var s=read();if(!s.leads[r.id])s.leads[r.id]={id:r.id,name:r.name,name_fa:r.name_fa||r.name,profile:r.outreach_profile||r.kind||'environment',stage:'draft',sendCount:0,createdAt:new Date().toISOString(),drafts:{},notes:''};write();return s.leads[r.id];}
function addTask(id,step,due){var s=read(),job={id:taskID(),leadId:id,step:step,due:new Date(due).toISOString(),status:'pending',createdAt:new Date().toISOString()};s.tasks.push(job);return job;}
function plus(iso,n){var d=new Date(iso);d.setDate(d.getDate()+Number(n));return d.toISOString();}
function cancelPending(id){read().tasks.forEach(function(x){if(x.leadId===id&&x.status==='pending')x.status='cancelled';});}
function markSent(r,at,channel,days){if(Date.parse(at)>Date.now()+60000||!Number.isFinite(Date.parse(at)))throw new Error('future_or_invalid_send');var item=track(r);if(['declined','no_response_stop'].includes(item.stage))throw new Error('contact_stopped');cancelPending(r.id);item.lastSentAt=new Date(at).toISOString();if(!item.firstSentAt)item.firstSentAt=item.lastSentAt;item.sendCount=(item.sendCount||0)+1;item.stage='awaiting_response';item.channel=channel;item.actionBasis='user_reported_actual_send';addTask(r.id,'check_reply',plus(at,Math.max(1,Math.min(30,Number(days)||2))));write();}
function markSubmitted(r,at){if(Date.parse(at)>Date.now()+60000||!Number.isFinite(Date.parse(at)))throw new Error('future_or_invalid_submission');var item=track(r);cancelPending(r.id);item.submittedAt=new Date(at).toISOString();item.stage='submitted';item.actionBasis='user_reported_actual_submission';addTask(r.id,'review_application',plus(at,2));write();}
function complete(id,outcome,notes){var s=read(),job=s.tasks.find(function(x){return x.id===id;});if(!job||job.status!=='pending')return;var item=s.leads[job.leadId];job.status='done';job.completedAt=new Date().toISOString();job.outcome=outcome;job.userReported=true;if(item)item.notes=String(notes||'').slice(0,2000);
if(outcome==='declined'){if(item)item.stage='declined';cancelPending(job.leadId);}
else if(outcome==='positive'||outcome==='info'){if(item)item.stage=outcome==='positive'?'reply_positive':'needs_info';cancelPending(job.leadId);addTask(job.leadId,'prepare_dossier',plus(new Date().toISOString(),2));}
else if(outcome==='none'&&['check_reply','review_application'].includes(job.step)){
if(item&&(item.sendCount||0)<2&&!item.followupCreated){item.followupCreated=true;item.stage='awaiting_response';var origin=item.firstSentAt||item.submittedAt||job.createdAt;var due=Math.max(Date.parse(plus(origin,7)),Date.now()+86400000);addTask(job.leadId,'followup_once',due);}
else if(item)item.stage='no_response_stop';
}else if(job.step==='prepare_dossier'){addTask(job.leadId,'review_eligibility',plus(new Date().toISOString(),2));}
write();}
function reschedule(id,iso){var x=read().tasks.find(function(x){return x.id===id;});if(x&&Number.isFinite(Date.parse(iso))){x.due=new Date(iso).toISOString();write();}}
function cancelTask(id){var x=read().tasks.find(function(x){return x.id===id;});if(x){x.status='cancelled';write();}}
function backup(){var s=read();return {format:'GreenRoot-private-outreach-backup',version:1,exportedAt:new Date().toISOString(),leads:s.leads,tasks:s.tasks,docs:s.docs,prefs:s.prefs};}
function restore(x){if(!x||x.format!=='GreenRoot-private-outreach-backup'||x.version!==1||typeof x.leads!=='object'||Array.isArray(x.leads)||!Array.isArray(x.tasks)||x.tasks.length>500||Object.keys(x.leads).length>300)throw new Error('invalid_backup');var newLeads={},newTasks=[];
Object.keys(x.leads).forEach(function(id){var r=lead(id),old=x.leads[id];if(!r)return;newLeads[id]={id:id,name:r.name,name_fa:r.name_fa||r.name,profile:r.outreach_profile||r.kind,stage:['draft','awaiting_response','submitted','reply_positive','needs_info','declined','no_response_stop'].includes(old.stage)?old.stage:'draft',sendCount:Math.max(0,Math.min(99,Number(old.sendCount)||0)),drafts:{},notes:String(old.notes||'').slice(0,2000)};['firstSentAt','lastSentAt','submittedAt','followupCreated'].forEach(function(k){if(old[k])newLeads[id][k]=old[k];});['en','fa','tr'].forEach(function(l){if(old.drafts&&typeof old.drafts[l]==='string')newLeads[id].drafts[l]=old.drafts[l].slice(0,6000);});});
x.tasks.forEach(function(j){if(newLeads[j.leadId]&&/^t_[\w-]{1,40}$/.test(j.id)&&['check_reply','followup_once','prepare_dossier','review_eligibility','review_application','check_nextcall'].includes(j.step)&&Number.isFinite(Date.parse(j.due)))newTasks.push({id:j.id,leadId:j.leadId,step:j.step,due:new Date(j.due).toISOString(),status:['pending','done','cancelled'].includes(j.status)?j.status:'pending',createdAt:j.createdAt||new Date().toISOString()});});
var s=read();s.leads=newLeads;s.tasks=newTasks;s.docs={};(cfg.docs||[]).forEach(function(k){s.docs[k]=!!(x.docs&&x.docs[k]);});s.prefs.sender=String(x.prefs&&x.prefs.sender||'').slice(0,80);write();}
function download(text,type,filename){var blob=new Blob([text],{type:type}),url=URL.createObjectURL(blob),a=document.createElement('a');a.href=url;a.download=filename;document.body.appendChild(a);a.click();a.remove();setTimeout(function(){URL.revokeObjectURL(url);},1500);}
function dateISO(iso){return new Date(iso).toISOString().replace(/[-:]/g,'').replace(/\.\d{3}Z$/,'Z');}
function icsEscape(s){return String(s||'').replace(/\r\n?/g,'\n').replace(/\\/g,'\\\\').replace(/\n/g,'\\n').replace(/;/g,'\\;').replace(/,/g,'\\,');}
function calendar(){var s=read(),lines=['BEGIN:VCALENDAR','VERSION:2.0','PRODID:-//GreenRoot//User-reported follow-up tasks//EN','CALSCALE:GREGORIAN'];s.tasks.filter(function(x){return x.status==='pending';}).forEach(function(x){var r=s.leads[x.leadId],title=t('ow.step.'+x.step)+' — '+(lang()==='fa'?r.name_fa:r.name);lines.push('BEGIN:VEVENT','UID:'+x.id+'@greenroot','DTSTAMP:'+dateISO(new Date()),'DTSTART:'+dateISO(x.due),'DTEND:'+dateISO(Date.parse(x.due)+900000),'SUMMARY:'+icsEscape(title),'DESCRIPTION:'+icsEscape(t('ow.noAuto')+'\nhttps://greenroot-af0.pages.dev/outreach?lead='+x.leadId+'&lang='+lang()+'#desk'),'BEGIN:VALARM','TRIGGER:-PT10M','ACTION:DISPLAY','DESCRIPTION:'+icsEscape(title),'END:VALARM','END:VEVENT');});lines.push('END:VCALENDAR');download(lines.join('\r\n')+'\r\n','text/calendar;charset=utf-8','GreenRoot-private-followups.ics');}
async function request(path,method,body){var s=read();if(!cfg.api)throw new Error('service_unavailable');var headers={'Content-Type':'application/json'};if(s.authKey)headers.Authorization='Bearer '+s.authKey;var res=await fetch(cfg.api+path,{method:method||'GET',headers:headers,body:body?JSON.stringify(body):undefined,signal:AbortSignal.timeout?AbortSignal.timeout(12000):undefined});var data=await res.json();if(!res.ok){var e=new Error(data.error||'request_failed');e.status=res.status;throw e;}return data;}
function minimalJobs(){var s=read();return s.tasks.filter(function(x){return x.status==='pending';}).slice(0,60).map(function(x){var r=s.leads[x.leadId];return {id:x.id,leadId:x.leadId,label:r.name,step:x.step,due:x.due};});}
async function serviceStatus(){var status=await request('/api/status');if(read().cloud.optin){try{var own=await request('/api/workspace');read().cloud.verified=!!own.verified;read().cloud.active=!!own.active;status.workspace=own;}catch(e){status.workspace={verified:false,active:false};}}return status;}
async function connectEmail(email,consent,captcha){var d=await request('/api/email/connect','POST',{email:email,consent:!!consent,locale:lang(),captcha:captcha||''});read().cloud={optin:true,verified:false,active:false};write();return d;}
async function sync(){var s=read();if(!s.cloud.optin||!s.cloud.verified||!s.cloud.active)throw new Error('email_not_verified');var d=await request('/api/tasks','POST',{tasks:minimalJobs(),locale:lang()});s.cloud.lastSyncedAt=new Date().toISOString();write(true);return d;}
async function stopServer(){await request('/api/workspace','DELETE');read().cloud={optin:false,verified:false,active:false};write();}
async function clear(){if(read().cloud.optin)await stopServer();mem=blank();write();}
function coach(msg,l){l=l||lang();if(/overdose|suicid|craving|withdrawal|خودکشی|هوس|وسوسه|بحران|ترک مواد/i.test(msg||''))return null;if(!/teknopark|technopark|incubat|tubitak|tübitak|grant|fund|outreach|whatsapp|follow.?up|university|فاند|گرنت|تکنوپارک|دانشگاه|پیگیری|واتساپ|همکاری|başvuru|üniversite|hibe|fon|kuluçka/i.test(msg||''))return null;
var s=read(),pending=s.tasks.filter(function(x){return x.status==='pending';}).sort(function(a,b){return Date.parse(a.due)-Date.parse(b.due);}),parts=[t('ow.rahaSub',l)];
if(pending.length){var p=pending[0],r=s.leads[p.leadId];parts.push(t('ow.step.'+p.step,l)+' — '+(l==='fa'?r.name_fa:r.name)+'\n'+new Date(p.due).toLocaleString(l==='fa'?'fa-IR':l==='tr'?'tr-TR':'en-GB'));}else parts.push(t('ow.noSelected',l));
parts.push(t('ow.tasksSub',l),t('ow.gate.education_and_no_shareholding',l),t('ow.gate.turkish_sme_company',l),t('ow.noApplication',l),t('ow.truth',l),'https://greenroot-af0.pages.dev/outreach?lang='+l+'#desk');return parts.join('\n\n');}
window.GR_OUTREACH={read:read,write:write,rows:rows,routes:routes,lead:lead,name:name,message:message,t:t,esc:esc,track:track,markSent:markSent,markSubmitted:markSubmitted,complete:complete,reschedule:reschedule,cancelTask:cancelTask,backup:backup,restore:restore,calendar:calendar,download:download,serviceStatus:serviceStatus,connectEmail:connectEmail,sync:sync,stopServer:stopServer,clear:clear,coach:coach,storageOK:function(){return storageOK;}};
})();
</script>
<script>
/* GreenRoot app: i18n engine, nav, counters, reveal, chat, career, mood, charts, form */
(function(){
"use strict";
/* ---------- safe storage ---------- */
var store = (function(){ try{ var s=window.localStorage; s.setItem("__gr","1"); s.removeItem("__gr"); return s; }catch(e){ return null; } })();
/* ---------- language ---------- */
var lang = "en";
var saved = store ? store.getItem("gr-lang") : null;
try { var requested = new URLSearchParams(location.search).get("lang"); if (["en","fa","tr"].indexOf(requested)>-1) saved=requested; } catch(e) {}
if (saved && ["en","fa","tr"].indexOf(saved)>-1) lang = saved;
else {
var nav3 = (navigator.language||"");
if (nav3.indexOf("fa")===0) lang = "fa";
else if (nav3.indexOf("tr")===0) lang = "tr";
}
function t(k){
var d = I18N[lang] || I18N.en;
if (d[k]!==undefined) return d[k];
if (I18N.en[k]!==undefined) return I18N.en[k];
return "";
}
function fmt(n){ return n.toLocaleString("en-US"); }
var raf = (window.requestAnimationFrame
? function(f){ return window.requestAnimationFrame(f); }
: function(f){ return setTimeout(function(){ f(Date.now()); }, 16); });
function safe(fn){ try{ fn(); }catch(e){ if (window.console) console.warn("GreenRoot init:", e); } }
function mergeTr(){
var X = window.GR_EXTRA_TR;
if (!X) return;
CHAT_GREETING.tr = X.greeting;
CHAT_FALLBACK.tr = X.fallback;
X.chips.forEach(function(c){
var dst = CHAT_CHIPS.find(function(x){ return x.id===c.id; });
if (dst) dst.tr = c.tr;
});
Object.keys(X.intents).forEach(function(id){
var dst = CHAT_INTENTS.find(function(x){ return x.id===id; });
if (dst) dst.r.tr = X.intents[id];
});
Object.keys(X.career||{}).forEach(function(job){
var s = X.career[job], d = CAREER_PLANS[job];
if (d){ d.title.tr=s.title; d.s1.tr=s.s1; d.s2.tr=s.s2; d.s3.tr=s.s3; d.story.tr=s.story; }
});
}
function applyLang(){
document.documentElement.lang = lang;
document.documentElement.dir = (lang==="fa") ? "rtl" : "ltr";
document.querySelectorAll("[data-i18n]").forEach(function(el){
el.innerHTML = t(el.getAttribute("data-i18n"));
});
document.querySelectorAll("[data-i18n-ph]").forEach(function(el){
el.setAttribute("placeholder", t(el.getAttribute("data-i18n-ph")));
});
document.querySelectorAll(".lang-sw .lang").forEach(function(b){
b.classList.toggle("on", b.getAttribute("data-lang")===lang);
});
/* COP31 countdown */
var days = Math.max(0, Math.ceil((new Date(2026,10,9) - new Date())/86400000));
document.querySelectorAll("[data-cop-days]").forEach(function(elm){
elm.textContent = t("cop.countdown").replace("{d}", days);
});
var page = document.body.getAttribute("data-page");
if (page && t("title."+page)) document.title = t("title."+page);
var cs = document.getElementById("chatShellDir");
if (page==="ai") renderChips();
applyChatDir();
if (page==="dashboard" && document.getElementById("chartMonthly")) initDashboard();
var file = (page === "home" ? "index" : page) + ".html";
document.querySelectorAll(".links a").forEach(function(a){
a.classList.toggle("active", a.getAttribute("href") === file);
});
document.dispatchEvent(new CustomEvent("greenroot:language", {detail:{lang:lang}}));
}
function setLang(l){
lang = l;
if (store) try{ store.setItem("gr-lang", l); }catch(e){}
safe(applyLang);
}
document.addEventListener("DOMContentLoaded", function(){
safe(mergeTr);
safe(applyLang);
document.querySelectorAll(".lang-sw .lang").forEach(function(b){
b.addEventListener("click", function(){ setLang(b.getAttribute("data-lang")); });
});
/* burger */
var nav = document.getElementById("nav");
var burger = document.getElementById("burger");
if (burger && nav){
burger.addEventListener("click", function(){ nav.classList.toggle("open"); burger.setAttribute("aria-expanded", String(nav.classList.contains("open"))); });
document.addEventListener("keydown", function(e){ if (e.key==="Escape" && nav.classList.contains("open")){ nav.classList.remove("open"); burger.setAttribute("aria-expanded","false"); burger.focus(); } });
nav.querySelectorAll(".links a").forEach(function(a){
a.addEventListener("click", function(){ nav.classList.remove("open"); burger.setAttribute("aria-expanded","false"); });
});
}
/* footer year */
document.querySelectorAll("#year").forEach(function(el){ el.textContent = new Date().getFullYear(); });
/* reveal on scroll */
var rvs = document.querySelectorAll(".rv");
if ("IntersectionObserver" in window){
var io = new IntersectionObserver(function(entries){
entries.forEach(function(e){ if (e.isIntersecting){ e.target.classList.add("in"); io.unobserve(e.target); } });
}, {threshold:.12});
rvs.forEach(function(el){ io.observe(el); });
} else { rvs.forEach(function(el){ el.classList.add("in"); }); }
/* animated counters */
function runCounter(el){
var target = parseFloat(el.getAttribute("data-count"))||0;
var pre = el.getAttribute("data-prefix")||"", suf = el.getAttribute("data-suffix")||"";
var dur = 1500, t0 = null;
function step(ts){
if(!t0) t0 = ts;
var p = Math.min((ts-t0)/dur, 1);
var eased = 1 - Math.pow(1-p, 3);
el.textContent = pre + fmt(Math.round(target*eased)) + suf;
if (p<1) raf(step);
}
raf(step);
}
var counters = document.querySelectorAll("[data-count]");
if ("IntersectionObserver" in window){
var cio = new IntersectionObserver(function(entries){
entries.forEach(function(e){ if (e.isIntersecting){ safe(function(){ runCounter(e.target); }); cio.unobserve(e.target); } });
}, {threshold:.4});
counters.forEach(function(el){ cio.observe(el); });
} else { counters.forEach(function(el){ safe(function(){ runCounter(el); }); }); }
/* page inits */
var page = document.body.getAttribute("data-page");
safe(function(){
if (page==="ai") initAI();
if (page==="dashboard") initDashboard();
if (page==="join") initJoin();
});
});
/* ============================================================
Raha chat (AI page)
============================================================ */
var CHAT_INTENTS = [
{ id:"crisis",
kw:["suicide","kill myself","overdose","end it","خودکشی","اوردوز","مردن","تموم کنم","نابود","intihar","aşırı doz","bitirmek istiyorum"],
r:{ en:"I'm really glad you told me. Please reach a human right now:\n• Your local emergency number (DE: 112 · IR: 123)\n• Iran addiction hotline: 09628\n• Your GreenRoot counselor — number is on your card.\nYou are not alone, and this moment will pass. Stay with me — then call.",
fa:"خیلی خوشحالم که گفتی. لطفاً همین حالا به یک انسان وصل شو:\n• شمارهٔ اورژانس محلی (آلمان: ۱۱۲ · ایران: ۱۲۳)\n• خط اعتیاد ایران: ۰۹۶۲۸\n• شمارهٔ مشاور گرینروت روی کارتت هست.\nتنها نیستی و این لحظه رد میشود. با من بمون — بعد زنگ بزن." } },
{ id:"craving",
kw:["craving","crave","urge","relapse now","using again","هوس","کشش","میل","لغزش","مصرف","kriz","canım çekti","kullanmak istiyorum"],
r:{ en:"Craving noticed — that's already a win. Let's ride the wave:\n1. Put the thought on a 10-minute timer.\n2. 4-7-8 breathing ×3 with me: in 4… hold 7… out 8…\n3. Walk toward a crew member or call your buddy.\nCravings peak and pass — usually under 20 minutes. I'm staying right here.",
fa:"هوس رو شنیدم — همین که گفتی یعنی یک برد. موج رو سوار بشیم:\n۱. فکر رو روی تایمر ۱۰ دقیقهای بذار.\n۲. سه بار تنفس ۴-۷-۸ با من: دم ۴… نگه ۷… بازدم ۸…\n۳. برو سمت یکی از اعضای تیم یا به همراهت زنگ بزن.\nهوس اوج میگیره و رد میشه — معمولاً زیر ۲۰ دقیقه. من همینجام." } },
{ id:"mood",
kw:["sad","depress","low","lonely","tired","empty","anxious","غم","افسر","تنها","خسته","حالم","اضطراب","نگران","mutsuz","yalnızım","kötüyüm","yorgunum","kaygılı"],
r:{ en:"Thanks for telling me. Low days are data, not failure.\n• Today's shift is optional — rest is treatment too.\n• Want me to draft a message to your counselor?\n• One small thing: water, window, 5 slow breaths. That's enough for now.",
fa:"ممنون که گفتی. روزهای پایین، دادهان نه شکست.\n• شیفت امروز اختیاریه — استراحت هم بخشی از درمانه.\n• برات یک پیام برای مشاورت بنویسم؟\n• یک کار کوچک: آب، پنجره، ۵ نفس آروم. فعلاً همین کافیه." } },
{ id:"career",
kw:["job","career","work again","cv","resume","interview","شغل","کار","رزومه","مصاحبه","حرفه","kariyer","meslek","mülakat","özgeçmiş"],
r:{ en:"Career rewind is my favourite topic 💼 Your plan has 3 steps: skill map → paid refresh role inside the program → placement with a partner employer.\nTell me your old job — driver, nurse, accountant, mechanic, teacher, cook — or try the Career rewind demo below the chat.",
fa:"بازگشت شغلی موضوع موردعلاقهام هست 💼 طرحت ۳ قدم داره: نقشهٔ مهارت → نقشِ تمرینیِ حقوقدار در برنامه → قرارگیری در یک کارفرمای شریک.\nشغل قبلیت رو بگو — راننده، پرستار، حسابدار، مکانیک، معلم، آشپز — یا دموی «بازگشت شغلی» زیر چت رو امتحان کن." } },
{ id:"balance",
kw:["token","balance","reward","point","wallet","توکن","موجودی","پاداش","امتیاز","کیف","jeton","bakiye","cüzdan"],
r:{ en:"Token balance: 340 🪙\n• This week: +60 (3 shifts)\n• Available rewards: bus pass (40) · phone credit (25) · welding course (220)\nTip: set a goal in the wallet — goals roughly double follow-through.",
fa:"موجودی توکن: 340 🪙\n• این هفته: +60 (۳ شیفت)\n• پاداشهای موجود: کارت اتوبوس (40) · شارژ (25) · دورهٔ جوشکاری (220)\nپیشنهاد: در کیف، یک هدف بذار — هدفگذاری پیگیری رو تقریباً دوبرابر میکنه." } },
{ id:"schedule",
kw:["schedule","shift","time","plan","when","برنامه","شیفت","ساعت","کی","وقت","vardiya","bu hafta"],
r:{ en:"This week's plan:\n• Mon / Wed / Fri 08:00 — cleanup shift (meet at the depot)\n• Tue 17:00 — group therapy\n• Thu 16:00 — Raha session + skills class\nRain plan: indoor sorting line. Missed a day? It happens — tell your mentor, your place is safe.",
fa:"برنامهٔ این هفته:\n• دوشنبه / چهارشنبه / جمعه 08:00 — شیفت پاکسازی (قرار مقابل انبار)\n• سهشنبه 17:00 — گروهدرمانی\n• پنجشنبه 16:00 — جلسهٔ رها + کلاس مهارت\nبرنامهٔ بارونی: خط جداسازی سرپوشیده. یه روز جا موندی؟ پیش میاد — به مربیت بگو، جایگاهت محفوظه." } },
{ id:"trash",
kw:["trash","waste","recycl","collect","زباله","بازیافت","جمع","çöp","atık"],
r:{ en:"Today's crews collected 214 kg: 96 kg PET · 41 kg metal · 52 kg paper · 25 kg glass.\nThat's about €118 to the treatment fund — and enough flake for 3 face shields heading to the workshop. You make that happen.",
fa:"تیمهای امروز ۲۱۴ کیلو جمع کردند: ۹۶ کیلو پت · ۴۱ فلز · ۵۲ کاغذ · ۲۵ شیشه.\nیعنی حدود €118 به صندوق درمان — و خردِ کافی برای ۳ شیلد صورت به سمت کارگاه. این تو اتفاق انداختی." } },
{ id:"about",
kw:["who are you","what are you","raha","رها کیست","تو کی هستی","چی هستی"],
r:{ en:"I'm Raha — \"رهاء\" means freedom. I'm the program's AI companion: craving SOS, mood check-ins, token wallet and career-rewind coach. I'm a tool with human oversight — your counselor and doctors make the clinical calls. My data policy is simple: your story belongs to you.",
fa:"من رها هستم؛ «رهاء» یعنی آزادی. همیار هوش مصنوعی برنامهام: SOS هوس، چک-این خلق، کیف توکن و مربی بازگشت شغلی. من یک ابزار با نظارت انسانیام — تصمیمهای بالینی با مشاور و پزشکت. سیاست دادهام سادهست: داستان زندگیات مال خودته." } },
{ id:"thanks",
kw:["thank","thanks","merci","مرسی","ممنون","متشکر","سپاس","teşekkür","sağol"],
r:{ en:"Anytime. That's what I'm here for — see you at check-in tomorrow? 🌱",
fa:"همیشه در خدمتم. برای همین اینجام — فردا سر چک-این میبینمت؟ 🌱" } }
];
var CHAT_FALLBACK = {
en:"I hear you. I'm the demo version — I know cravings, mood, tokens, the weekly plan and career rewind. Try a chip below, or type \"craving\", \"job\", \"balance\"…",
fa:"شنیدمت. من نسخهٔ دمو هستم — از هوس، خلق، توکن، برنامهٔ هفتگی و بازگشت شغلی سر درمیارم. یکی از دکمهها رو بزن، یا بنویس «هوس»، «شغل»، «موجودی»…"
};
var CHAT_GREETING = {
en:"Hi, I'm Raha 🌱 GreenRoot's recovery companion. How are you feeling today? Tap a chip below or just type — English or فارسی, both work.",
fa:"سلام، من رها هستم 🌱 همیار بهبودی گرینروت. امروز حالت چطوره؟ از دکمههای پایین استفاده کن یا آزادانه بنویس — فارسی یا English، هر دو جواب میده."
};
var CHAT_CHIPS = [
{ id:"outreach", en:"University / funding / follow-up", fa:"دانشگاه / فاند / پیگیری", tr:"Üniversite / fon / takip" },
{ id:"craving", en:"I have a craving", fa:"هوس دارم" },
{ id:"mood", en:"I feel low", fa:"حالم پایینه" },
{ id:"career", en:"Career rewind", fa:"بازگشت شغلی" },
{ id:"balance", en:"Token balance", fa:"موجودی توکن" },
{ id:"schedule",en:"This week's plan",fa:"برنامهٔ این هفته" }
];
var chatBody, chatInput;
function el(id){ return document.getElementById(id); }
function chatMsg(text, who){
var m = document.createElement("div");
m.className = "msg " + who;
m.textContent = text;
chatBody.appendChild(m);
chatBody.scrollTop = chatBody.scrollHeight;
return m;
}
function botReply(intentId, userText){
var typing = document.createElement("div");
typing.className = "msg bot typing";
typing.innerHTML = "<span></span><span></span><span></span>";
chatBody.appendChild(typing);
chatBody.scrollTop = chatBody.scrollHeight;
var resp, d = I18N[lang]||I18N.en;
if ((intentId==="outreach" || !intentId) && window.GR_OUTREACH) resp=window.GR_OUTREACH.coach(intentId==="outreach"?"outreach":userText,lang);
if(resp){}
else if (intentId){ resp = CHAT_INTENTS.find(function(i){return i.id===intentId;}).r[lang] || CHAT_INTENTS.find(function(i){return i.id===intentId;}).r.en; }
else {
var lower = (userText||"").toLowerCase();
var hit = CHAT_INTENTS.find(function(i){ return i.kw.some(function(k){ return lower.indexOf(k.toLowerCase())>-1; }); });
resp = hit ? (hit.r[lang]||hit.r.en) : (CHAT_FALLBACK[lang]||CHAT_FALLBACK.en);
}
setTimeout(function(){ typing.remove(); chatMsg(resp,"bot"); }, 800 + Math.random()*500);
}
function routeIntent(intentId){
var chip = CHAT_CHIPS.find(function(c){return c.id===intentId;});
var label = chip ? (chip[lang]||chip.en) : intentId;
chatMsg(label,"user");
botReply(intentId,null);
}
function renderChips(){
var wrap = el("chatChips");
if (!wrap) return;
wrap.innerHTML = "";
CHAT_CHIPS.forEach(function(c){
var b = document.createElement("button");
b.type = "button";
b.textContent = c[lang]||c.en;
b.addEventListener("click", function(){ routeIntent(c.id); });
wrap.appendChild(b);
});
}
function sendChat(){
var v = (chatInput.value||"").trim();
if (!v) return;
chatMsg(v,"user");
chatInput.value = "";
botReply(null,v);
}
function initAI(){
chatBody = el("chatBody"); chatInput = el("chatInput");
var shell = document.querySelector(".chat-shell");
if (shell){ shell.removeAttribute("dir"); }
applyChatDir();
chatMsg(CHAT_GREETING[lang]||CHAT_GREETING.en,"bot");
renderChips();
var send = el("chatSend");
if (send) send.addEventListener("click", sendChat);
if (chatInput) chatInput.addEventListener("keydown", function(e){ if (e.key==="Enter") sendChat(); });
/* career rewind */
var plans = CAREER_PLANS;
var picker = el("careerPicker"), planBox = el("careerPlan");
if (picker && planBox){
picker.querySelectorAll("button").forEach(function(b){
b.addEventListener("click", function(){
picker.querySelectorAll("button").forEach(function(x){ x.classList.remove("on"); });
b.classList.add("on");
var job = b.getAttribute("data-job");
renderPlan(job);
});
});
}
function renderPlan(job){
var p = plans[job];
planBox.style.display = "block";
planBox.innerHTML =
"<h4>"+ (p.title[lang]||p.title.en) +"</h4>" +
"<ol><li>"+ (p.s1[lang]||p.s1.en) +"</li><li>"+ (p.s2[lang]||p.s2.en) +"</li><li>"+ (p.s3[lang]||p.s3.en) +"</li></ol>" +
"<p class='small' style='margin-top:12px;color:var(--teal);font-weight:700'>💡 "+ (p.story[lang]||p.story.en) +"</p>";
}
/* mood tracker */
var moodLog = [];
var moodRow = el("moodRow"), moodMsg = el("moodMsg");
if (moodRow && moodMsg){
moodRow.querySelectorAll("button").forEach(function(b){
b.addEventListener("click", function(){
moodLog.push(parseInt(b.getAttribute("data-mood"),10));
if (moodLog.length>12) moodLog.shift();
renderMood();
});
});
}
function renderMood(){
if (!moodLog.length) return;
var MOOD_TXT = {
1:{en:"Very low — you're not alone. Tap \"I have a craving\" / SOS or call your counselor. I've flagged a check-in.",fa:"خیلی پایین — تنها نیستی. «هوس دارم»/SOS رو بزن یا به مشاورت زنگ بزن. یک چک-این علامت خوردم."},
2:{en:"Low — thanks for logging. Consider an SOS session or an early night.",fa:"پایین — ممنون که ثبت کردی. یک جلسهٔ SOS یا زودخوابیدن رو در نظر بگیر."},
3:{en:"Okay days count too. Logged.",fa:"روزهای معمولی هم میشمارند. ثبت شد."},
4:{en:"Good — noted. Keep the rhythm.",fa:"خوب — ثبت شد. ریتم رو نگه دار."},
5:{en:"Great day — logged. Streaks are how recovery is built. 🌱",fa:"روزِ خوبی بود — ثبت شد. رشتهها، بهبودی را میسازند. 🌱"}
};
var last = moodLog[moodLog.length-1];
var txt = (lang==="tr" && window.GR_EXTRA_TR && window.GR_EXTRA_TR.mood[last]) || MOOD_TXT[last][lang] || MOOD_TXT[last].en;
var trend = moodLog.length>1 ? (moodLog[moodLog.length-1]>=moodLog[moodLog.length-2] ? " ↗" : " ↘") : "";
/* sparkline */
var w=220,h=44,pts="";
moodLog.forEach(function(v,i){
var x = moodLog.length===1 ? w/2 : (i/(moodLog.length-1))*(w-8)+4;
var y = h-6-((v-1)/4)*(h-12);
pts += x.toFixed(1)+","+y.toFixed(1)+" ";
});
var svg = "<svg width='"+w+"' height='"+h+"' viewBox='0 0 "+w+" "+h+"'><polyline points='"+pts+"' fill='none' stroke='#16A34A' stroke-width='2.5' stroke-linecap='round'/></svg>";
moodMsg.innerHTML = txt + trend + "<br>" + svg + "<br><span class='muted'>" + moodLog.length + " × " + (lang==="fa"?"چک-این":"check-ins") + "</span>";
}
}
var CAREER_PLANS = {
driver:{ title:{en:"🚚 Driver — rewind plan",fa:"🚚 راننده — طرح بازگشت"},
s1:{en:"Licence & record check: we verify your licence status and the skills fund covers any refresher course.",fa:"بررسی گواهینامه و سوابق: وضعیت گواهینامهات را بررسی میکنیم و صندوق مهارت هزینهٔ دورهٔ تجدید را میپوشاند."},
s2:{en:"6 paid weeks as relief driver for the cleanup crews' logistics — with a clean-shift certificate.",fa:"۶ هفتهٔ حقوقدار بهعنوان رانندهٔ جانشین در حملونقل تیمهای پاکسازی — با گواهی شیفتهای تمیز."},
s3:{en:"Raha rebuilds your CV around 12+ months of documented reliability, then places you with partner logistics firms.",fa:"رها رزومهات را حول ۱۲+ ماه اتکاپذیریِ مستند بازمیسازد و بعد با شرکتهای حملونقل شریک قرارت میدهد."},
story:{en:"Your time on the crew isn't a gap — it's proof of reliability.",fa:"بودنت در تیم، یک «وقفه» نیست — مدرک اتکاپذیری است."}},
nurse:{ title:{en:"🧑⚕️ Nurse / health worker — rewind plan",fa:"🧑⚕️ پرستار / کارمند سلامت — طرح بازگشت"},
s1:{en:"Re-enter clinical life through lower-intensity roles: hygiene and health-promotion rounds within the crews.",fa:"بازگشت به فضای بالینی از نقشهای کمفشار: گشتیهای بهداشت و ارتقای سلامت درون تیمها."},
s2:{en:"Skills revalidation: BLS refresher, licence paperwork — supported by the skills fund.",fa:"بازاعتبارسنجی مهارت: دورهٔ BLS، امور پروانه — با پشتیبانی صندوق مهارت."},
s3:{en:"Supported shifts with partner clinics while Raha builds your gradual full-return plan.",fa:"شیفتهای حمایتی در کلینیکهای شریک، در حالی که رها طرح بازگشت کامل تدریجیات را میسازد."},
story:{en:"The care you learned to give yourself is now your credential.",fa:"مراقبتی که یاد گرفتی به خودت بدهی، حالا اعتبارت است."}},
accountant:{ title:{en:"🧾 Accountant — rewind plan",fa:"🧾 حسابدار — طرح بازگشت"},
s1:{en:"Skills audit with free assessments (Excel, bookkeeping) — a gap map within one week.",fa:"ارزیابی مهارت با تستهای رایگان (اکسل، اصول حسابداری) — نقشهٔ شکافها در یک هفته."},
s2:{en:"Six weeks of software refresh + a real role: counting and reporting the crews' material revenue.",fa:"شش هفته بهروزرسانی نرمافزار + یک نقش واقعی: شمارش و گزارش درآمد مواد تیمها."},
s3:{en:"Raha frames your CV around \"12 months of clean data\", then runs interview practice with partner firms.",fa:"رها رزومه را حول «۱۲ ماه دادهٔ تمیز» قاب میگیرد و بعد با شرکتهای شریک مصاحبه تمرینی میگذارد."},
story:{en:"The discipline you built in recovery is exactly what accounting wants.",fa:"انضباطی که در بهبودی ساختی، دقیقاً همان چیزی است که حسابداری میخواهد."}},
mechanic:{ title:{en:"🔧 Mechanic — rewind plan",fa:"🔧 مکانیک — طرح بازگشت"},
s1:{en:"Workshop assessment: tools, safety, current skills — with a technical mentor.",fa:"ارزیابی کارگاهی: ابزار، ایمنی، مهارتهای فعلی — با یک مربی فنی."},
s2:{en:"Documented experience maintaining the recycling line's machines and vehicles, on site.",fa:"تجربهٔ مستند نگهداشت ماشینآلات و خودروهای خط بازیافت — در همان سایت."},
s3:{en:"Specialist certificate (e.g. electromechanics) from the skills fund + placement at partner workshops.",fa:"گواهی تخصصی (مثلاً الکترومکانیک) از صندوق مهارت + قرارگیری در کارگاههای شریک."},
story:{en:"The machines you brought back to life are your best résumé.",fa:"ماشینهایی که به آنها زندگی دوباره دادی، بهترین رزومهٔ تو هستند."}},
teacher:{ title:{en:"🧑🏫 Teacher — rewind plan",fa:"🧑🏫 معلم — طرح بازگشت"},
s1:{en:"The honest-narrative plan: how to tell the gap in interviews, practised with Raha until it's strength.",fa:"طرحِ روایت صادقانه: چطور وقفه را در مصاحبه بگویی — با رها تمرین میکنی تا به نقطهقوت تبدیل شود."},
s2:{en:"Real classroom: environmental-literacy lessons for school groups in the parks your crew cleaned.",fa:"کلاس واقعی: درسهای سواد محیطزیست برای گروههای مدرسهای در پارکهایی که تیمت تمیز کرده."},
s3:{en:"Teaching-certificate refresh + assistant placement at partner schools, stepping up to full-time.",fa:"روزآمدسازی گواهی تدریس + جایگاه دستیار در مدارس شریک، تا رسیدن به تماموقت."},
story:{en:"Your recovery is the deepest lesson your future classroom will ever get.",fa:"بهبودیات، عمیقترین درسی است که کلاس آیندهات میگیرد."}},
cook:{ title:{en:"🍳 Cook — rewind plan",fa:"🍳 آشپز — طرح بازگشت"},
s1:{en:"Food safety & hygiene certificate — official, funded by the skills fund.",fa:"گواهی ایمنی و بهداشت غذا — رسمی، هزینهاش با صندوق مهارت."},
s2:{en:"Real volume experience: cooking crew lunches for 50+ people every day.",fa:"تجربهٔ حجم واقعی: پخت ناهار تیمها برای ۵۰+ نفر هر روز."},
s3:{en:"Supported internship in a partner kitchen with a mentor, then part-time or full-time placement.",fa:"کارآموزی حمایتی در آشپزخانهٔ شریک با مربی، بعد جایگاه پارهوقت یا تماموقت."},
story:{en:"The meals you cook for the crew are the first order of your comeback.",fa:"غذاهایی که برای تیم میپزی، اولین سفارشِ بازگشت تو هستند."}}
};
function applyChatDir(){
var shell = document.querySelector(".chat-shell");
if (shell) shell.setAttribute("dir", lang==="fa" ? "rtl" : "ltr");
if (chatBody) chatBody.setAttribute("dir", lang==="fa" ? "rtl" : "ltr");
}
/* ============================================================
Dashboard charts
============================================================ */
var MONTHLY_KG = [1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2400];
var WASTE_MIX = [
{label:"PET", v:42, color:"#16A34A"},
{label:"Paper", v:22, color:"#0D9488"},
{label:"Metal", v:18, color:"#F59E0B"},
{label:"Glass", v:11, color:"#3B82F6"},
{label:"Other", v:7, color:"#94A3B8"}
];
var FUND = [
{v:1900, color:"#16A34A"},
{v:1250, color:"#F59E0B"},
{v:600, color:"#0D9488"}
];
var REPORT = [
{m:7, a:98, kg:1600, eur:3200},
{m:8, a:104, kg:1700, eur:3400},
{m:9, a:109, kg:1800, eur:3600},
{m:10,a:113, kg:1900, eur:3800},
{m:11,a:117, kg:2000, eur:4100},
{m:12,a:120, kg:2400, eur:4600}
];
function renderReportTable(){
var body = el("reportBody");
if (!body) return;
body.innerHTML = REPORT.map(function(r){
return "<tr><td>"+r.m+"</td><td>"+r.a+"</td><td>"+fmt(r.kg)+"</td><td>€"+fmt(r.eur)+"</td></tr>";
}).join("");
}
function initDashboard(){
drawBars(el("chartMonthly"), MONTHLY_KG);
drawDonut(el("chartMix"), WASTE_MIX);
drawHBars(el("chartFund"), FUND);
renderReportTable();
}
function drawBars(container, values){
if (!container) return;
var W=460,H=230,pad=34,bw=(W-pad-10)/values.length;
var max = Math.max.apply(null,values)*1.12;
var s = "<svg viewBox='0 0 "+W+" "+H+"' style='width:100%;height:auto'>";
s += "<line x1='"+pad+"' y1='"+(H-26)+"' x2='"+(W-4)+"' y2='"+(H-26)+"' stroke='#E2E9DD' stroke-width='1.5'/>";
values.forEach(function(v,i){
var h = Math.round((v/max)*(H-58));
var x = pad + i*bw + 3;
var y = H-26-h;
s += "<rect x='"+x+"' y='"+y+"' width='"+(bw-7)+"' height='"+h+"' rx='4' fill='url(#gbars)'><title>"+fmt(v)+" kg</title></rect>";
if (i%2===0) s += "<text x='"+(x+(bw-7)/2)+"' y='"+(H-10)+"' font-size='10' fill='#8AA395' text-anchor='middle'>"+(i+1)+"</text>";
if (i===values.length-1) s += "<text x='"+(x+(bw-7)/2)+"' y='"+(y-6)+"' font-size='11' font-weight='700' fill='#166534' text-anchor='middle'>"+fmt(v)+"</text>";
});
s += "<defs><linearGradient id='gbars' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='#22C55E'/><stop offset='1' stop-color='#15803D'/></linearGradient></defs>";
s += "</svg>";
container.innerHTML = s;
}
function drawDonut(container, segs){
if (!container) return;
var total = segs.reduce(function(a,b){return a+b.v;},0);
var R=76,C=2*Math.PI*R, off=0;
var s = "<svg viewBox='0 0 200 200' style='width:min(220px,100%);margin:auto;display:block'>";
s += "<g transform='rotate(-90 100 100)'>";
segs.forEach(function(seg){
var len = seg.v/total*C;
s += "<circle cx='100' cy='100' r='"+R+"' fill='none' stroke='"+seg.color+"' stroke-width='34' stroke-dasharray='"+len.toFixed(1)+" "+(C-len).toFixed(1)+"' stroke-dashoffset='"+(-off).toFixed(1)+"'><title>"+seg.label+" "+seg.v+"%</title></circle>";
off += len;
});
s += "</g><text x='100' y='96' text-anchor='middle' font-size='24' font-weight='800' fill='#0C2318'>"+t("dash.ch2.t1")+"</text>";
s += "<text x='100' y='116' text-anchor='middle' font-size='11' fill='#54685C'>"+t("dash.ch2.t2")+"</text></svg>";
container.innerHTML = s;
var lg = el("mixLegend");
if (lg){
lg.innerHTML = segs.map(function(seg){
return "<span><i style='background:"+seg.color+"'></i>"+seg.label+" "+seg.v+"%</span>";
}).join("");
}
}
function drawHBars(container, items){
if (!container) return;
var labels = [ t("dash.ch3.l1"), t("dash.ch3.l2"), t("dash.ch3.l3") ];
var max = Math.max.apply(null, items.map(function(i){return i.v;}))*1.1;
var s = "";
items.forEach(function(it,i){
var pct = Math.round(it.v/max*100);
s += "<div style='margin-bottom:14px'>" +
"<div style='display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:5px'><b>"+labels[i]+"</b><span class='muted' dir='ltr'>€"+fmt(it.v)+"/"+(lang==="fa"?"ماه":"mo")+"</span></div>" +
"<div style='background:#EEF3EA;border-radius:99px;height:14px;overflow:hidden' dir='ltr'><div style='width:"+pct+"%;height:100%;border-radius:99px;background:"+it.color+"'></div></div></div>";
});
container.innerHTML = s;
}
/* ============================================================
Join form
============================================================ */
function initJoin(){
var f = el("joinForm");
if (!f) return;
f.addEventListener("submit", function(e){
e.preventDefault();
el("formOk").style.display = "block";
f.querySelector("button[type=submit]").disabled = true;
});
}
/* ============================================================
UX pass: progress bar, back-to-top, mobile CTA, share, a11y
============================================================ */
document.addEventListener("DOMContentLoaded", function(){
safe(function(){
/* scroll progress + back-to-top visibility */
var bar = document.createElement("div"); bar.id = "progress"; bar.setAttribute("aria-hidden","true");
document.body.appendChild(bar);
var top = document.createElement("button"); top.id = "toTop"; top.type = "button";
top.setAttribute("aria-label", lang==="fa" ? "بازگشت به بالا" : (lang==="tr" ? "Yukarı dön" : "Back to top"));
top.innerHTML = "↑";
top.addEventListener("click", function(){ window.scrollTo({top:0, behavior:"smooth"}); });
document.body.appendChild(top);
var upd = function(){
var h = document.documentElement;
var max = h.scrollHeight - h.clientHeight;
bar.style.width = (max>0 ? (h.scrollTop/max)*100 : 0) + "%";
top.classList.toggle("show", h.scrollTop > 600);
};
document.addEventListener("scroll", upd, {passive:true});
upd();
/* sticky mobile CTA */
if (window.matchMedia && window.matchMedia("(max-width:660px)").matches && !document.querySelector(".mobile-cta")){
var cta = document.createElement("div"); cta.className = "mobile-cta";
var isDirectory = document.body.getAttribute("data-page")==="partners", isDesk=document.body.getAttribute("data-page")==="outreach";
var mainKey=isDesk?"ow.nav":isDirectory?"pf.browse":"nav.cta";
var secondKey=isDesk?"nav.partners":isDirectory?"pf.xlsshort":"nav.podcast";
var j = document.createElement("a"); j.className="btn small"; j.href=isDesk?"#desk":isDirectory?"#directory":"join.html"; j.innerHTML=(isDesk?"🗂️ ":isDirectory?"🔎 ":"🌱 ")+"<span data-i18n=\""+mainKey+"\">"+t(mainKey)+"</span>";
var p = document.createElement("a"); p.className="btn small ghost"; p.href=isDesk?"partners.html":isDirectory?"kit/GreenRoot-Outreach-210.xlsx":"podcast.html"; p.innerHTML=(isDesk?"🤝 ":isDirectory?"⬇ ":"🎧 ")+"<span data-i18n=\""+secondKey+"\">"+t(secondKey)+"</span>";
p.style.border = "1.5px solid rgba(217,249,157,.5)"; p.style.background="rgba(255,255,255,.08)";
cta.appendChild(j); cta.appendChild(p);
document.body.appendChild(cta);
}
/* share / copy-link buttons */
document.querySelectorAll("[data-share]").forEach(function(b){
b.addEventListener("click", function(){
var url = location.href.split("#")[0];
var span = b.querySelector("span");
if (navigator.share){
navigator.share({title:document.title, url:url}).catch(function(){});
} else if (navigator.clipboard && navigator.clipboard.writeText){
navigator.clipboard.writeText(url).then(function(){
if (span){ var old=span.textContent; span.textContent="✓ "+t("pod.copied");
setTimeout(function(){ span.textContent=old; },1800); }
}).catch(function(){});
}
});
});
/* burger a11y */
var burger = document.getElementById("burger");
if (burger) burger.setAttribute("aria-expanded","false");
});
});
})();
</script>
</body>
</html>
|