{"id":479,"date":"2026-03-31T04:16:27","date_gmt":"2026-03-31T04:16:27","guid":{"rendered":"https:\/\/thefiniteearth.org\/?page_id=479"},"modified":"2026-05-26T05:34:21","modified_gmt":"2026-05-26T05:34:21","slug":"100-days","status":"publish","type":"page","link":"https:\/\/thefiniteearth.org\/hindi\/100-days\/","title":{"rendered":"\u092d\u093e\u0930\u0924 \u0915\u094d\u0932\u093e\u0907\u092e\u0947\u091f \u0938\u0924\u094d\u092f\u093e\u0917\u094d\u0930\u0939"},"content":{"rendered":"<h2 style=\"text-align: center;\"><span style=\"letter-spacing: 3px;\">100 DAYS <strong><\/strong>YATRA- MAY 13-AUGUST 20, 2026<\/span><span style=\"letter-spacing: 6px;\"><\/span><\/h2>\n<h2 style=\"text-align: center;\"><span style=\"\"><span style=\"\"><span style=\"\">Bharat Climate Satyagraha Yatra<\/span>&nbsp;<\/span><span style=\"\"><\/span><\/span><\/h2>\n<h2 style=\"text-align: center;\"><strong><span style=\"\">\u0938\u0940\u092e\u093f\u0924<\/span> \u0927\u0930\u0924\u0940 \u092a\u0930 <span style=\"\">\u0938\u0940\u092e\u093f\u0924 \u091c\u0940\u0935\u0928 \u0915\u093e \u0906\u0917\u094d\u0930\u0939<\/span><\/strong><\/h2>\n<p style=\"text-align: center;\">Starting 13 May 2026 from Rajghat, Delhi, the 100 Days Climate Satyagraha Yatra will cover 5,800+ km across 51 cities. The goal is to mobilize 1 lakh people to take the Finite Living Pledge and build local action teams for sustained climate action. <a href=\"#tve-jump-19d7cbf37c3\" jump-animation=\"smooth\" style=\"outline: none;\"><span style=\"text-decoration: underline;\">Click to know more<\/span><\/a>.<strong><span style=\"text-decoration: underline;\"><\/span><\/strong><\/p>\n<p style=\"text-align: center;\"><strong>&nbsp;<\/strong>From awareness to local ownership, we invite you to lead the Climate Satyagraha in your city. Whether you <b data-index-in-node=\"191\" data-path-to-node=\"3,0\"><span style=\"--tcb-applied-color: var$(--tcb-skin-color-0) !important; color: var(--tcb-skin-color-0) !important;\">Host<\/span><\/b><span style=\"--tcb-applied-color: var$(--tcb-skin-color-0) !important; color: var(--tcb-skin-color-0) !important;\">, <b data-index-in-node=\"197\" data-path-to-node=\"3,0\">Volunteer<\/b>, or <b data-index-in-node=\"211\" data-path-to-node=\"3,0\">Support<\/b> <strong>our team with food and stay<\/strong><\/span>\u2014your action is the movement. <b data-index-in-node=\"122\" data-path-to-node=\"6,0\"><span style=\"font-weight: normal;\"><span style=\"--tcb-applied-color: var$(--tcb-skin-color-2) !important; color: var(--tcb-skin-color-2) !important;\">Click below to be part of Climate Satyagraha.<\/span><\/span><\/b><\/p>\n<p style=\"text-align: center;\">Can\u2019t see your city on the Golden Quadrilateral?<\/p>\n<p><span style=\"\"><img decoding=\"async\" alt=\"\" data-id=\"1284\" width=\"983\" height=\"367\" title=\"bus with road\" src=\"\/\/thefiniteearth.org\/wp-content\/uploads\/2026\/04\/bus-with-road-scaled.png.webp\" style=\"aspect-ratio: auto 2560 \/ 956;\" ml-d=\"0\" ml-m=\"-3.0369999999999777\" data-width=\"983\" data-height=\"367\" data-init-width=\"2560\" data-init-height=\"956\" loading=\"lazy\" mt-d=\"-3\" mt-m=\"0\" center-v-d=\"false\" mt-t=\"-162\" center-v-t=\"false\"><\/span><\/p>\n<h2 style=\"text-align: center;\">Bharat Climate Satyagraha Yatra Route<\/h2>\n<p style=\"text-align: center;\"><span style=\"font-weight: normal;\">Stay connected with the Bharat Climate Satyagraha. This dashboard provides a live snapshot of our progress: total distance covered, people reached, and our current city. Explore the full Golden Quadrilateral route and the 100-day calendar to join the movement as it passes through your region.<\/span><\/p>\n<p>Energy Swaraj Yatra                                                                                                                                                            Bharat Climate Satyagraha Yatra      100 Days Sacred Journey Across Bharat \u2014 Golden Quadrilateral                        <span>May 13 \u2013 Aug 20, 2026<\/span>        Day \u2014 of 100                <span>Today&#8217;s Schedule<\/span>                    <span>Invite Yatra<\/span>                  Journey Stats                                                                                                0                    Days Done                                                                                          100                    Days Left                                      KMs Covered          0                                              People Met          0                                                      <span id=\"live-txt\">LIVE<\/span>          Day \u2014                Loading\u2026        \u2014                    Next Stop        \u2014        \u2014                    Yatra Progress                Loading\u2026                    Route        Loading route\u2026                                                  <span>Currently at<\/span>      <span id=\"map-badge-city\">\u2014<\/span>                  India Route Map              <img decoding=\"async\" src=\"http:\/\/thefiniteearth.org\/wp-content\/uploads\/2026\/04\/Asset-1.png.webp\" alt=\"India Map\" style=\"width: 100%; display: block; border-radius: 10px; transition: transform 0.3s; transform: scale(1);\" onmouseover=\"this.style.transform='scale(1.02)'\" onmouseout=\"this.style.transform='scale(1)'\" onerror=\"this.closest('div').style.display='none'\">        <img decoding=\"async\" role=\"img\" alt=\"\ud83d\udd0d\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/svg\/1f50d.svg\"> Full View                    Schedule                  <\/p>\n<h2 id=\"cal-evt-title\">Event Details<\/h2>\n<p>\u00d7    No event data          <a id=\"yatra-invite\" href=\"javascript:void(0)\" onclick=\"closeCalEvt();closeDash();inviteYatra();\">                Take Action &#8211; Invite Yatra Now!      <\/a>                  <\/p>\n<h1>Live Yatra Tracking System<\/h1>\n<p>      \u2715 Close        Current City: <strong id=\"d-current-city-text\">Loading&#8230;<\/strong>                   Map                                                         Calendar                                    <span onclick=\"closeDEvt()\">\u00d7<\/span><\/p>\n<h2 id=\"d-modal-name\">Event Details<\/h2>\n<p>                  <span>Hosted By<\/span>          <span>Location<\/span><span id=\"d-modal-venue\"><\/span>, <span id=\"d-modal-city\"><\/span>                      <span>Date<\/span>            <span>Time<\/span>                    <span>Description<\/span>                          <a href=\"javascript:void(0)\" onclick=\"closeDEvt();closeDash();inviteYatra();\">                        Take Action &#8211; Invite Yatra Now!          <\/a>                          \u2715    <img decoding=\"async\" src=\"http:\/\/thefiniteearth.org\/wp-content\/uploads\/2026\/04\/Asset-1.png.webp\" alt=\"India Route Map\" style=\"max-width:100%;max-height:80vh;border-radius:8px;display:block;\">    Golden Quadrilateral Yatra Route \u2014 Bharat  [tcb-script src=&#8221;https:\/\/cdn.jsdelivr.net\/npm\/fullcalendar@5.11.3\/main.min.js&#8221;][\/tcb-script][tcb-script src=&#8221;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.9.0\/d3.min.js&#8221;][\/tcb-script][tcb-script]if (&#8216;scrollRestoration&#8217; in history) history.scrollRestoration = &#8216;manual&#8217;;\/\/ Remove any hash from URL on load to prevent scrolling to #take-actionif(window.location.hash) { history.replaceState(null, &#8221;, window.location.pathname + window.location.search); }window.scrollTo(0,0);document.addEventListener(&#8216;DOMContentLoaded&#8217;,()=&gt;{ window.scrollTo(0,0); });window.addEventListener(&#8216;load&#8217;,()=&gt;{ window.scrollTo(0,0); setTimeout(()=&gt;window.scrollTo(0,0),200); });function inviteYatra(){console.log(&#8220;hello&#8221;);    var target = document.getElementById(&#8220;take-action-invite-yatra-now&#8221;);        if (target) {        window.scrollTo({            top: target.offsetTop,            behavior: &#8220;smooth&#8221;        });    }  try{    \/\/ Try direct element scroll in parent window    var topDoc=window.top.document;    var el=topDoc.getElementById(&#8216;take-action-invite-yatra-now&#8217;);    if(el){el.scrollIntoView({behavior:&#8217;smooth&#8217;,block:&#8217;start&#8217;});return;}    \/\/ Try anchor link approach &#8211; does not reload page    var a=topDoc.createElement(&#8216;a&#8217;);    a.href=&#8217;#take-action-invite-yatra-now&#8217;;    topDoc.body.appendChild(a);    a.click();    topDoc.body.removeChild(a);  }catch(e){    \/\/ cross-origin: open same page at anchor in same tab    window.top.location.href=&#8217;https:\/\/thefiniteearth.org\/100-days-esy\/?preview=true#take-action-invite-yatra-now&#8217;;  }}const API_URL=&#8217;https:\/\/script.google.com\/macros\/s\/AKfycbwG5S7pytIy4PYRNluekHx8wgn6VPfqI9FJdOHoonbX9CrSO56IL8MGUikkq1V-wALq4w\/exec&#8217;;const GQ_ROUTE=[  {name:&#8217;Delhi&#8217;,lat:28.6139,lon:77.2090},{name:&#8217;Gurugram&#8217;,lat:28.4595,lon:77.0266},  {name:&#8217;Manesar&#8217;,lat:28.3562,lon:76.9383},{name:&#8217;Neemrana&#8217;,lat:27.9747,lon:76.3844},  {name:&#8217;Alwar&#8217;,lat:27.5530,lon:76.6346},{name:&#8217;Jaipur&#8217;,lat:26.9124,lon:75.7873},  {name:&#8217;Ajmer&#8217;,lat:26.4499,lon:74.6399},{name:&#8217;Bhilwara&#8217;,lat:25.3474,lon:74.6339},  {name:&#8217;Chittorgarh&#8217;,lat:24.8887,lon:74.6269},{name:&#8217;Udaipur&#8217;,lat:24.5854,lon:73.7125},  {name:&#8217;Ahmedabad&#8217;,lat:23.0225,lon:72.5714},{name:&#8217;Vadodara&#8217;,lat:22.3072,lon:73.1812},  {name:&#8217;Bharuch&#8217;,lat:21.7051,lon:72.9959},{name:&#8217;Surat&#8217;,lat:21.1702,lon:72.8311},  {name:&#8217;Vapi&#8217;,lat:20.3749,lon:72.9057},{name:&#8217;Mumbai&#8217;,lat:19.0760,lon:72.8777},  {name:&#8217;Pune&#8217;,lat:18.5204,lon:73.8567},{name:&#8217;Satara&#8217;,lat:17.6805,lon:74.0183},  {name:&#8217;Kolhapur&#8217;,lat:16.7050,lon:74.2433},{name:&#8217;Belagavi&#8217;,lat:15.8497,lon:74.4977},  {name:&#8217;Dharwad&#8217;,lat:15.4589,lon:75.0078},{name:&#8217;Hubballi&#8217;,lat:15.3647,lon:75.1240},  {name:&#8217;Davanagere&#8217;,lat:14.4644,lon:75.9218},{name:&#8217;Chitradurga&#8217;,lat:14.2296,lon:76.3981},  {name:&#8217;Tumakuru&#8217;,lat:13.3379,lon:77.1173},{name:&#8217;Bengaluru&#8217;,lat:12.9716,lon:77.5946},  {name:&#8217;Hosur&#8217;,lat:12.7409,lon:77.8253},{name:&#8217;Krishnagiri&#8217;,lat:12.5266,lon:78.2138},  {name:&#8217;Vellore&#8217;,lat:12.9165,lon:79.1325},{name:&#8217;Chennai&#8217;,lat:13.0827,lon:80.2707},  {name:&#8217;Nellore&#8217;,lat:14.4426,lon:79.9865},{name:&#8217;Ongole&#8217;,lat:15.5057,lon:80.0499},  {name:&#8217;Vijayawada&#8217;,lat:16.5062,lon:80.6480},{name:&#8217;Rajamahendravaram&#8217;,lat:17.0005,lon:81.8040},  {name:&#8217;Visakhapatnam&#8217;,lat:17.6868,lon:83.2185},{name:&#8217;Srikakulam&#8217;,lat:18.2949,lon:83.8938},  {name:&#8217;Berhampur&#8217;,lat:19.3150,lon:84.7941},{name:&#8217;Bhubaneswar&#8217;,lat:20.2961,lon:85.8245},  {name:&#8217;Cuttack&#8217;,lat:20.4625,lon:85.8830},{name:&#8217;Balasore&#8217;,lat:21.4927,lon:86.9316},  {name:&#8217;Kharagpur&#8217;,lat:22.3460,lon:87.2319},{name:&#8217;Kolkata&#8217;,lat:22.5726,lon:88.3639},  {name:&#8217;Durgapur&#8217;,lat:23.5204,lon:87.3119},{name:&#8217;Asansol&#8217;,lat:23.6739,lon:86.9524},  {name:&#8217;Dhanbad&#8217;,lat:23.7957,lon:86.4304},{name:&#8217;Hazaribagh&#8217;,lat:23.9925,lon:85.3637},  {name:&#8217;Gaya&#8217;,lat:24.7955,lon:85.0002},{name:&#8217;Sasaram&#8217;,lat:24.9474,lon:84.0317},  {name:&#8217;Prayagraj&#8217;,lat:25.4358,lon:81.8463},{name:&#8217;Kanpur&#8217;,lat:26.4499,lon:80.3319},  {name:&#8217;Agra&#8217;,lat:27.1767,lon:78.0081},{name:&#8217;Mathura&#8217;,lat:27.4924,lon:77.6737},  {name:&#8217;Faridabad&#8217;,lat:28.4082,lon:77.3178},{name:&#8217;Delhi&#8217;,lat:28.6139,lon:77.2090},];const GQ_MAP={};GQ_ROUTE.forEach(r=&gt;{GQ_MAP[r.name.toLowerCase()]=r;});\/* \u2500\u2500 India Background Cities (State Capitals + Major Cities) \u2500\u2500 *\/const INDIA_BG_CITIES = [  {n:&#8217;Amaravati&#8217;,lat:16.5193,lon:80.5180,cap:true},  {n:&#8217;Itanagar&#8217;,lat:27.0844,lon:93.6053,cap:true},  {n:&#8217;Dispur&#8217;,lat:26.1433,lon:91.7898,cap:true},  {n:&#8217;Patna&#8217;,lat:25.5941,lon:85.1376,cap:true},  {n:&#8217;Raipur&#8217;,lat:21.2514,lon:81.6296,cap:true},  {n:&#8217;Panaji&#8217;,lat:15.4989,lon:73.8278,cap:true},  {n:&#8217;Gandhinagar&#8217;,lat:23.2156,lon:72.6369,cap:true},  {n:&#8217;Chandigarh&#8217;,lat:30.7333,lon:76.7794,cap:true},  {n:&#8217;Shimla&#8217;,lat:31.1048,lon:77.1734,cap:true},  {n:&#8217;Ranchi&#8217;,lat:23.3441,lon:85.3096,cap:true},  {n:&#8217;Bengaluru&#8217;,lat:12.9716,lon:77.5946,cap:true},  {n:&#8217;Thiruvananthapuram&#8217;,lat:8.5241,lon:76.9366,cap:true},  {n:&#8217;Bhopal&#8217;,lat:23.2599,lon:77.4126,cap:true},  {n:&#8217;Mumbai&#8217;,lat:19.0760,lon:72.8777,cap:true},  {n:&#8217;Imphal&#8217;,lat:24.8170,lon:93.9368,cap:true},  {n:&#8217;Shillong&#8217;,lat:25.5788,lon:91.8933,cap:true},  {n:&#8217;Aizawl&#8217;,lat:23.7307,lon:92.7173,cap:true},  {n:&#8217;Kohima&#8217;,lat:25.6751,lon:94.1086,cap:true},  {n:&#8217;Bhubaneswar&#8217;,lat:20.2961,lon:85.8245,cap:true},  {n:&#8217;Jaipur&#8217;,lat:26.9124,lon:75.7873,cap:true},  {n:&#8217;Gangtok&#8217;,lat:27.3314,lon:88.6138,cap:true},  {n:&#8217;Chennai&#8217;,lat:13.0827,lon:80.2707,cap:true},  {n:&#8217;Hyderabad&#8217;,lat:17.3850,lon:78.4867,cap:true},  {n:&#8217;Agartala&#8217;,lat:23.8315,lon:91.2868,cap:true},  {n:&#8217;Lucknow&#8217;,lat:26.8467,lon:80.9462,cap:true},  {n:&#8217;Dehradun&#8217;,lat:30.3165,lon:78.0322,cap:true},  {n:&#8217;Kolkata&#8217;,lat:22.5726,lon:88.3639,cap:true},  {n:&#8217;Delhi&#8217;,lat:28.6139,lon:77.2090,cap:true},  {n:&#8217;Srinagar&#8217;,lat:34.0837,lon:74.7973},  {n:&#8217;Jammu&#8217;,lat:32.7266,lon:74.8570},  {n:&#8217;Leh&#8217;,lat:34.1526,lon:77.5771},  {n:&#8217;Amritsar&#8217;,lat:31.6340,lon:74.8723},  {n:&#8217;Ludhiana&#8217;,lat:30.9010,lon:75.8573},  {n:&#8217;Jalandhar&#8217;,lat:31.3260,lon:75.5762},  {n:&#8217;Ambala&#8217;,lat:30.3782,lon:76.7767},  {n:&#8217;Hisar&#8217;,lat:29.1492,lon:75.7217},  {n:&#8217;Rohtak&#8217;,lat:28.8955,lon:76.6066},  {n:&#8217;Gurugram&#8217;,lat:28.4595,lon:77.0266},  {n:&#8217;Noida&#8217;,lat:28.5355,lon:77.3910},  {n:&#8217;Ghaziabad&#8217;,lat:28.6692,lon:77.4538},  {n:&#8217;Meerut&#8217;,lat:28.9845,lon:77.7064},  {n:&#8217;Aligarh&#8217;,lat:27.8974,lon:78.0880},  {n:&#8217;Agra&#8217;,lat:27.1767,lon:78.0081},  {n:&#8217;Mathura&#8217;,lat:27.4924,lon:77.6737},  {n:&#8217;Bareilly&#8217;,lat:28.3670,lon:79.4304},  {n:&#8217;Moradabad&#8217;,lat:28.8389,lon:78.7769},  {n:&#8217;Varanasi&#8217;,lat:25.3176,lon:82.9739},  {n:&#8217;Allahabad&#8217;,lat:25.4358,lon:81.8463},  {n:&#8217;Kanpur&#8217;,lat:26.4499,lon:80.3319},  {n:&#8217;Gorakhpur&#8217;,lat:26.7606,lon:83.3732},  {n:&#8217;Jhansi&#8217;,lat:25.4484,lon:78.5685},  {n:&#8217;Gwalior&#8217;,lat:26.2183,lon:78.1828},  {n:&#8217;Indore&#8217;,lat:22.7196,lon:75.8577},  {n:&#8217;Jabalpur&#8217;,lat:23.1815,lon:79.9864},  {n:&#8217;Ujjain&#8217;,lat:23.1793,lon:75.7849},  {n:&#8217;Surat&#8217;,lat:21.1702,lon:72.8311},  {n:&#8217;Ahmedabad&#8217;,lat:23.0225,lon:72.5714},  {n:&#8217;Vadodara&#8217;,lat:22.3072,lon:73.1812},  {n:&#8217;Rajkot&#8217;,lat:22.3039,lon:70.8022},  {n:&#8217;Bhavnagar&#8217;,lat:21.7645,lon:72.1519},  {n:&#8217;Jamnagar&#8217;,lat:22.4707,lon:70.0577},  {n:&#8217;Jodhpur&#8217;,lat:26.2389,lon:73.0243},  {n:&#8217;Udaipur&#8217;,lat:24.5854,lon:73.7125},  {n:&#8217;Kota&#8217;,lat:25.2138,lon:75.8648},  {n:&#8217;Ajmer&#8217;,lat:26.4499,lon:74.6399},  {n:&#8217;Bikaner&#8217;,lat:28.0229,lon:73.3119},  {n:&#8217;Pune&#8217;,lat:18.5204,lon:73.8567},  {n:&#8217;Nagpur&#8217;,lat:21.1458,lon:79.0882},  {n:&#8217;Nashik&#8217;,lat:19.9975,lon:73.7898},  {n:&#8217;Aurangabad&#8217;,lat:19.8762,lon:75.3433},  {n:&#8217;Solapur&#8217;,lat:17.6805,lon:75.9064},  {n:&#8217;Kolhapur&#8217;,lat:16.7050,lon:74.2433},  {n:&#8217;Amravati&#8217;,lat:20.9374,lon:77.7796},  {n:&#8217;Vizag&#8217;,lat:17.6868,lon:83.2185},  {n:&#8217;Vijayawada&#8217;,lat:16.5062,lon:80.6480},  {n:&#8217;Tirupati&#8217;,lat:13.6288,lon:79.4192},  {n:&#8217;Guntur&#8217;,lat:16.3067,lon:80.4365},  {n:&#8217;Warangal&#8217;,lat:17.9784,lon:79.5941},  {n:&#8217;Nellore&#8217;,lat:14.4426,lon:79.9865},  {n:&#8217;Coimbatore&#8217;,lat:11.0168,lon:76.9558},  {n:&#8217;Madurai&#8217;,lat:9.9252,lon:78.1198},  {n:&#8217;Tiruchirappalli&#8217;,lat:10.7905,lon:78.7047},  {n:&#8217;Salem&#8217;,lat:11.6643,lon:78.1460},  {n:&#8217;Tirunelveli&#8217;,lat:8.7139,lon:77.7567},  {n:&#8217;Kochi&#8217;,lat:9.9312,lon:76.2673},  {n:&#8217;Kozhikode&#8217;,lat:11.2588,lon:75.7804},  {n:&#8217;Thrissur&#8217;,lat:10.5276,lon:76.2144},  {n:&#8217;Kollam&#8217;,lat:8.8932,lon:76.6141},  {n:&#8217;Mysuru&#8217;,lat:12.2958,lon:76.6394},  {n:&#8217;Hubli&#8217;,lat:15.3647,lon:75.1240},  {n:&#8217;Mangaluru&#8217;,lat:12.9141,lon:74.8560},  {n:&#8217;Belagavi&#8217;,lat:15.8497,lon:74.4977},  {n:&#8217;Davangere&#8217;,lat:14.4644,lon:75.9218},  {n:&#8217;Guwahati&#8217;,lat:26.1445,lon:91.7362},  {n:&#8217;Silchar&#8217;,lat:24.8333,lon:92.7789},  {n:&#8217;Dibrugarh&#8217;,lat:27.4728,lon:94.9120},  {n:&#8217;Siliguri&#8217;,lat:26.7271,lon:88.3953},  {n:&#8217;Asansol&#8217;,lat:23.6739,lon:86.9524},  {n:&#8217;Durgapur&#8217;,lat:23.5204,lon:87.3119},  {n:&#8217;Howrah&#8217;,lat:22.5958,lon:88.2636},  {n:&#8217;Kharagpur&#8217;,lat:22.3460,lon:87.2319},  {n:&#8217;Dhanbad&#8217;,lat:23.7957,lon:86.4304},  {n:&#8217;Jamshedpur&#8217;,lat:22.8046,lon:86.2029},  {n:&#8217;Bokaro&#8217;,lat:23.6693,lon:86.1511},  {n:&#8217;Muzaffarpur&#8217;,lat:26.1209,lon:85.3647},  {n:&#8217;Gaya&#8217;,lat:24.7955,lon:85.0002},  {n:&#8217;Bhagalpur&#8217;,lat:25.2425,lon:86.9842},  {n:&#8217;Darbhanga&#8217;,lat:26.1542,lon:85.8918},  {n:&#8217;Bilaspur&#8217;,lat:22.0797,lon:82.1409},  {n:&#8217;Korba&#8217;,lat:22.3595,lon:82.7501},  {n:&#8217;Bhopal&#8217;,lat:23.2599,lon:77.4126},  {n:&#8217;Shivpuri&#8217;,lat:25.4231,lon:77.6577},  {n:&#8217;Rewa&#8217;,lat:24.5362,lon:81.3037},  {n:&#8217;Satna&#8217;,lat:24.5854,lon:80.8322},  {n:&#8217;Prayagraj&#8217;,lat:25.4358,lon:81.8463},  {n:&#8217;Puducherry&#8217;,lat:11.9416,lon:79.8083},  {n:&#8217;Vellore&#8217;,lat:12.9165,lon:79.1325},  {n:&#8217;Erode&#8217;,lat:11.3410,lon:77.7172},  {n:&#8217;Kakinada&#8217;,lat:16.9891,lon:82.2475},  {n:&#8217;Rajahmundry&#8217;,lat:17.0005,lon:81.8040},  {n:&#8217;Shillong&#8217;,lat:25.5788,lon:91.8933},  {n:&#8217;Imphal&#8217;,lat:24.8170,lon:93.9368},  {n:&#8217;Agartala&#8217;,lat:23.8315,lon:91.2868},  {n:&#8217;Aizawl&#8217;,lat:23.7307,lon:92.7173},  {n:&#8217;Dimapur&#8217;,lat:25.9010,lon:93.7360},  {n:&#8217;Udaipur&#8217;,lat:24.5854,lon:73.7125},  {n:&#8217;Alwar&#8217;,lat:27.5530,lon:76.6346},  {n:&#8217;Bharatpur&#8217;,lat:27.2152,lon:77.4938},  {n:&#8217;Pali&#8217;,lat:25.7711,lon:73.3234},  {n:&#8217;Haldwani&#8217;,lat:29.2183,lon:79.5130},  {n:&#8217;Roorkee&#8217;,lat:29.8543,lon:77.8880},  {n:&#8217;Haridwar&#8217;,lat:29.9457,lon:78.1642},  {n:&#8217;Rishikesh&#8217;,lat:30.0869,lon:78.2676},];\/\/ \u2500\u2500 SHEET3 PRELOAD: Embedded from 100_days_ki_yatra_tracker.xlsx (Sheet3) \u2500\u2500\/\/ This data is baked in so accurate city\/date info shows instantly on load,\/\/ before the Google Sheets API responds. API response will overlay\/update this.const SHEET3_PRELOAD = [  {&#8220;Date&#8221;:&#8221;2026-05-13&#8243;,&#8221;City&#8221;:&#8221;Delhi&#8221;,&#8221;Event Name&#8221;:&#8221;Flag off of Bharat Climate Satyagraha Yatra&#8221;,&#8221;Host&#8221;:&#8221;Energy Swaraj Foundation&#8221;,&#8221;Venue&#8221;:&#8221;Gate No.1 &#8211; Rajghat&#8221;,&#8221;Time&#8221;:&#8221;9:00 AM&#8221;,&#8221;Short Description&#8221;:&#8221;The Bharat Climate Satyagraha Yatra \u2013 Inauguration Ceremony was held today at Raj Ghat from 9:00 AM to 10:00 AM. The program began with a 2-minute silence at Mahatma Gandhi&#8217;s samadhi by Chetan Sir, special guests, and the entire team, followed by a prayer ceremony. After seeking blessings, the rally commenced with the participation of around 50 students and 5 teachers, covering a distance of upto 1 km to spread awareness about climate action and environmental responsibility.&#8221;,&#8221;Latitude&#8221;:28.6139,&#8221;Longitude&#8221;:77.209},  {&#8220;Date&#8221;:&#8221;2026-05-14&#8243;,&#8221;City&#8221;:&#8221;Agra&#8221;,&#8221;Event Name&#8221;:&#8221;The Bharat Climate Satyagraha Workshop&#8221;,&#8221;Host&#8221;:&#8221;Hindustan College&#8221;,&#8221;Venue&#8221;:&#8221;Hindustan Institute of Management and Computer Studies.&#8221;,&#8221;Time&#8221;:&#8221;10:50 AM&#8221;,&#8221;Short Description&#8221;:&#8221;A session was conducted at Hindustan Institute of Management and Computer Studies for faculty and staff members. The session started at 10:50 AM with 25 participants attending.&#8221;,&#8221;Latitude&#8221;:27.1767,&#8221;Longitude&#8221;:78.0081},  {&#8220;Date&#8221;:&#8221;2026-05-15&#8243;,&#8221;City&#8221;:&#8221;Agra&#8221;,&#8221;Event Name&#8221;:&#8221;Interacting with local people&#8221;,&#8221;Host&#8221;:&#8221;Hindustan College&#8221;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;Sir will interact with local people to discuss the impact of climate change in their area, understand how they are coping with it, and talk about how Climate Satyagraha can become a possible solution.&#8221;,&#8221;Latitude&#8221;:27.1767,&#8221;Longitude&#8221;:78.0081},  {&#8220;Date&#8221;:&#8221;2026-05-16&#8243;,&#8221;City&#8221;:&#8221;Kanpur&#8221;,&#8221;Event Name&#8221;:&#8221;The Bharat Climate Satyagraha Workshop&#8221;,&#8221;Host&#8221;:&#8221;Jagran College&#8221;,&#8221;Venue&#8221;:&#8221;Jagran College of Arts, Science and Commerce, Kanpur&#8221;,&#8221;Time&#8221;:&#8221;12:00 PM \u2013 3:00 PM&#8221;,&#8221;Short Description&#8221;:&#8221;The Climate Satyagraha Workshop is an action-oriented session focused on climate awareness and finite living, where participants take the pledge, contribute \u20b951 or more for the cause, receive a unique referral code to invite others, and form circles to spread and continue the movement within their community.&#8221;,&#8221;Latitude&#8221;:26.4837,&#8221;Longitude&#8221;:80.3241},  {&#8220;Date&#8221;:&#8221;2026-05-16&#8243;,&#8221;City&#8221;:&#8221;Kanpur&#8221;,&#8221;Event Name&#8221;:&#8221;Podcast with Dr Sanjivani&#8221;,&#8221;Host&#8221;:&#8221;Energy Swaraj Foundation&#8221;,&#8221;Venue&#8221;:&#8221;Kanpur&#8221;,&#8221;Time&#8221;:&#8221;4:00 PM \u2013 6:00 PM&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:26.467,&#8221;Longitude&#8221;:80.35},  {&#8220;Date&#8221;:&#8221;2026-05-17&#8243;,&#8221;City&#8221;:&#8221;Kanpur&#8221;,&#8221;Event Name&#8221;:&#8221;Interacting with local people&#8221;,&#8221;Host&#8221;:&#8221;Energy Swaraj Foundation&#8221;,&#8221;Venue&#8221;:&#8221;Kanpur&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;Interaction with local communities to discuss the impact of climate change, understand how they are coping with it, and spread awareness about Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:26.4585,&#8221;Longitude&#8221;:80.3127},  {&#8220;Date&#8221;:&#8221;2026-05-18&#8243;,&#8221;City&#8221;:&#8221;Kanpur&#8221;,&#8221;Event Name&#8221;:&#8221;The Bharat Climate Satyagraha Workshop&#8221;,&#8221;Host&#8221;:&#8221;Mahrana Pratap College and IIT Kanpur Gym Khana&#8221;,&#8221;Venue&#8221;:&#8221;Mahrana Pratap College and IIT Gym Khana&#8221;,&#8221;Time&#8221;:&#8221;10 AM &#8211; 1:00PM and 3:00 PM \u2013 6:00 PM&#8221;,&#8221;Short Description&#8221;:&#8221;The Climate Satyagraha Workshop is an action-oriented session focused on climate awareness and finite living, where participants take the pledge, contribute \u20b951 or more for the cause, receive a unique referral code to invite others, and form circles to spread and continue the movement within their community.&#8221;,&#8221;Latitude&#8221;:26.5128,&#8221;Longitude&#8221;:80.2329},  {&#8220;Date&#8221;:&#8221;2026-05-19&#8243;,&#8221;City&#8221;:&#8221;Kanpur&#8221;,&#8221;Event Name&#8221;:&#8221;The Bharat Climate Satyagraha Workshop&#8221;,&#8221;Host&#8221;:&#8221;Chandigarh University&#8221;,&#8221;Venue&#8221;:&#8221;Chandigarh University&#8221;,&#8221;Time&#8221;:&#8221;3:00 \u2013 4:30pm&#8221;,&#8221;Short Description&#8221;:&#8221;The Climate Satyagraha Workshop is an action-oriented session focused on climate awareness and finite living.&#8221;,&#8221;Latitude&#8221;:26.4837,&#8221;Longitude&#8221;:80.3241},  {&#8220;Date&#8221;:&#8221;2026-05-20&#8243;,&#8221;City&#8221;:&#8221;Lucknow&#8221;,&#8221;Event Name&#8221;:&#8221;The Bharat Climate Satyagraha Workshop&#8221;,&#8221;Host&#8221;:&#8221;Shri Ram Swaroop Memorial College&#8221;,&#8221;Venue&#8221;:&#8221;Shri Ram Swaroop Memorial College&#8221;,&#8221;Time&#8221;:&#8221;1:30 \u2013 3:30pm&#8221;,&#8221;Short Description&#8221;:&#8221;The Climate Satyagraha Workshop is an action-oriented session focused on climate awareness and finite living.&#8221;,&#8221;Latitude&#8221;:26.9368,&#8221;Longitude&#8221;:81.0243},  {&#8220;Date&#8221;:&#8221;2026-05-21&#8243;,&#8221;City&#8221;:&#8221;Prayagraj&#8221;,&#8221;Event Name&#8221;:&#8221;Interacting with local people&#8221;,&#8221;Host&#8221;:&#8221;Energy Swaraj Foundation&#8221;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;Interaction with local communities to discuss the impact of climate change, understand how they are coping with it, and spread awareness about Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.4358,&#8221;Longitude&#8221;:81.8463},  {&#8220;Date&#8221;:&#8221;2026-05-22&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;3:30 PM \u2013 4:30 PM&#8221;,&#8221;Short Description&#8221;:&#8221;An interactive academic session on Understanding of Climate Change and Corrective Actions conducted for faculty and staff members at Nalanda University. Total attendees: 55.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-23&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-24&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-25&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-26&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-27&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-28&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-29&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-30&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-05-31&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;-&#8220;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-06-01&#8243;,&#8221;City&#8221;:&#8221;Patna&#8221;,&#8221;Event Name&#8221;:&#8221;Session at Nalanda University with Faculty and Staff&#8221;,&#8221;Host&#8221;:&#8221;Nalanda University&#8221;,&#8221;Venue&#8221;:&#8221;Patna&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;From 22nd May to 2nd June, Prof. Chetan Singh Solanki is serving as a Guest Faculty at Nalanda University, inspiring youth with the vision of Climate Satyagraha.&#8221;,&#8221;Latitude&#8221;:25.1357,&#8221;Longitude&#8221;:85.4436},  {&#8220;Date&#8221;:&#8221;2026-06-02&#8243;,&#8221;City&#8221;:&#8221;Kolkata&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:22.5726,&#8221;Longitude&#8221;:88.3639},  {&#8220;Date&#8221;:&#8221;2026-06-03&#8243;,&#8221;City&#8221;:&#8221;Kolkata&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:22.5726,&#8221;Longitude&#8221;:88.3639},  {&#8220;Date&#8221;:&#8221;2026-06-04&#8243;,&#8221;City&#8221;:&#8221;Kolkata&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:22.5726,&#8221;Longitude&#8221;:88.3639},  {&#8220;Date&#8221;:&#8221;2026-06-05&#8243;,&#8221;City&#8221;:&#8221;Kolkata&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:22.5726,&#8221;Longitude&#8221;:88.3639},  {&#8220;Date&#8221;:&#8221;2026-06-06&#8243;,&#8221;City&#8221;:&#8221;Kharagpur&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:22.3302,&#8221;Longitude&#8221;:87.3237},  {&#8220;Date&#8221;:&#8221;2026-06-07&#8243;,&#8221;City&#8221;:&#8221;Cuttack&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:20.4625,&#8221;Longitude&#8221;:85.883},  {&#8220;Date&#8221;:&#8221;2026-06-08&#8243;,&#8221;City&#8221;:&#8221;Bhubaneswar&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:20.2961,&#8221;Longitude&#8221;:85.8245},  {&#8220;Date&#8221;:&#8221;2026-06-09&#8243;,&#8221;City&#8221;:&#8221;Bhubaneswar&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:20.2961,&#8221;Longitude&#8221;:85.8245},  {&#8220;Date&#8221;:&#8221;2026-06-10&#8243;,&#8221;City&#8221;:&#8221;Bhubaneswar&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:20.2961,&#8221;Longitude&#8221;:85.8245},  {&#8220;Date&#8221;:&#8221;2026-06-11&#8243;,&#8221;City&#8221;:&#8221;Bhubaneswar&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:20.2961,&#8221;Longitude&#8221;:85.8245},  {&#8220;Date&#8221;:&#8221;2026-06-12&#8243;,&#8221;City&#8221;:&#8221;Berhampur&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:19.315,&#8221;Longitude&#8221;:84.7941},  {&#8220;Date&#8221;:&#8221;2026-06-13&#8243;,&#8221;City&#8221;:&#8221;Visakhapatnam&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:17.6868,&#8221;Longitude&#8221;:83.2185},  {&#8220;Date&#8221;:&#8221;2026-06-14&#8243;,&#8221;City&#8221;:&#8221;Visakhapatnam&#8221;,&#8221;Event Name&#8221;:&#8221;Coming soon&#8221;,&#8221;Host&#8221;:&#8221;-&#8220;,&#8221;Venue&#8221;:&#8221;India&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;Will update soon&#8221;,&#8221;Latitude&#8221;:17.6868,&#8221;Longitude&#8221;:83.2185},  {&#8220;Date&#8221;:&#8221;2026-06-15&#8243;,&#8221;City&#8221;:&#8221;Visakhapatnam&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:17.6868,&#8221;Longitude&#8221;:83.2185},  {&#8220;Date&#8221;:&#8221;2026-06-16&#8243;,&#8221;City&#8221;:&#8221;Rajahmundry&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:17.0005,&#8221;Longitude&#8221;:81.804},  {&#8220;Date&#8221;:&#8221;2026-06-17&#8243;,&#8221;City&#8221;:&#8221;Vijayawada&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:16.5062,&#8221;Longitude&#8221;:80.648},  {&#8220;Date&#8221;:&#8221;2026-06-18&#8243;,&#8221;City&#8221;:&#8221;Vijayawada&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:16.5062,&#8221;Longitude&#8221;:80.648},  {&#8220;Date&#8221;:&#8221;2026-06-19&#8243;,&#8221;City&#8221;:&#8221;Ongole&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:15.5057,&#8221;Longitude&#8221;:80.0499},  {&#8220;Date&#8221;:&#8221;2026-06-20&#8243;,&#8221;City&#8221;:&#8221;Nellore&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:14.4426,&#8221;Longitude&#8221;:79.9865},  {&#8220;Date&#8221;:&#8221;2026-06-21&#8243;,&#8221;City&#8221;:&#8221;Nellore&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:14.4426,&#8221;Longitude&#8221;:79.9865},  {&#8220;Date&#8221;:&#8221;2026-06-22&#8243;,&#8221;City&#8221;:&#8221;Chennai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:13.0827,&#8221;Longitude&#8221;:80.2707},  {&#8220;Date&#8221;:&#8221;2026-06-23&#8243;,&#8221;City&#8221;:&#8221;Chennai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:13.0827,&#8221;Longitude&#8221;:80.2707},  {&#8220;Date&#8221;:&#8221;2026-06-24&#8243;,&#8221;City&#8221;:&#8221;Chennai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:13.0827,&#8221;Longitude&#8221;:80.2707},  {&#8220;Date&#8221;:&#8221;2026-06-25&#8243;,&#8221;City&#8221;:&#8221;Chennai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:13.0827,&#8221;Longitude&#8221;:80.2707},  {&#8220;Date&#8221;:&#8221;2026-06-26&#8243;,&#8221;City&#8221;:&#8221;Vellore&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.9165,&#8221;Longitude&#8221;:79.1325},  {&#8220;Date&#8221;:&#8221;2026-06-27&#8243;,&#8221;City&#8221;:&#8221;Krishnagiri&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.5266,&#8221;Longitude&#8221;:78.2148},  {&#8220;Date&#8221;:&#8221;2026-06-28&#8243;,&#8221;City&#8221;:&#8221;Hosur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.7409,&#8221;Longitude&#8221;:77.8253},  {&#8220;Date&#8221;:&#8221;2026-06-29&#8243;,&#8221;City&#8221;:&#8221;Bengaluru&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.9716,&#8221;Longitude&#8221;:77.5946},  {&#8220;Date&#8221;:&#8221;2026-06-30&#8243;,&#8221;City&#8221;:&#8221;Bengaluru&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.9716,&#8221;Longitude&#8221;:77.5946},  {&#8220;Date&#8221;:&#8221;2026-07-01&#8243;,&#8221;City&#8221;:&#8221;Bengaluru&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.9716,&#8221;Longitude&#8221;:77.5946},  {&#8220;Date&#8221;:&#8221;2026-07-02&#8243;,&#8221;City&#8221;:&#8221;Bengaluru&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:12.9716,&#8221;Longitude&#8221;:77.5946},  {&#8220;Date&#8221;:&#8221;2026-07-03&#8243;,&#8221;City&#8221;:&#8221;Tumakuru&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:13.3392,&#8221;Longitude&#8221;:77.114},  {&#8220;Date&#8221;:&#8221;2026-07-04&#8243;,&#8221;City&#8221;:&#8221;Chitradurga&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:14.2251,&#8221;Longitude&#8221;:76.398},  {&#8220;Date&#8221;:&#8221;2026-07-05&#8243;,&#8221;City&#8221;:&#8221;Hubballi&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:15.3647,&#8221;Longitude&#8221;:75.124},  {&#8220;Date&#8221;:&#8221;2026-07-06&#8243;,&#8221;City&#8221;:&#8221;Hubballi&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:15.3647,&#8221;Longitude&#8221;:75.124},  {&#8220;Date&#8221;:&#8221;2026-07-07&#8243;,&#8221;City&#8221;:&#8221;Dharwad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:15.3647,&#8221;Longitude&#8221;:75.124},  {&#8220;Date&#8221;:&#8221;2026-07-08&#8243;,&#8221;City&#8221;:&#8221;Dharwad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:15.3647,&#8221;Longitude&#8221;:75.124},  {&#8220;Date&#8221;:&#8221;2026-07-09&#8243;,&#8221;City&#8221;:&#8221;Kolhapur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:16.705,&#8221;Longitude&#8221;:74.2433},  {&#8220;Date&#8221;:&#8221;2026-07-10&#8243;,&#8221;City&#8221;:&#8221;Kolhapur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:16.705,&#8221;Longitude&#8221;:74.2433},  {&#8220;Date&#8221;:&#8221;2026-07-11&#8243;,&#8221;City&#8221;:&#8221;Satara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:17.6805,&#8221;Longitude&#8221;:73.9803},  {&#8220;Date&#8221;:&#8221;2026-07-12&#8243;,&#8221;City&#8221;:&#8221;Satara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:17.6805,&#8221;Longitude&#8221;:73.9803},  {&#8220;Date&#8221;:&#8221;2026-07-13&#8243;,&#8221;City&#8221;:&#8221;Pune&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:18.5204,&#8221;Longitude&#8221;:73.8567},  {&#8220;Date&#8221;:&#8221;2026-07-14&#8243;,&#8221;City&#8221;:&#8221;Pune&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:18.5204,&#8221;Longitude&#8221;:73.8567},  {&#8220;Date&#8221;:&#8221;2026-07-15&#8243;,&#8221;City&#8221;:&#8221;Pune&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:18.5204,&#8221;Longitude&#8221;:73.8567},  {&#8220;Date&#8221;:&#8221;2026-07-16&#8243;,&#8221;City&#8221;:&#8221;Pune&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:18.5204,&#8221;Longitude&#8221;:73.8567},  {&#8220;Date&#8221;:&#8221;2026-07-17&#8243;,&#8221;City&#8221;:&#8221;Mumbai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:19.076,&#8221;Longitude&#8221;:72.8777},  {&#8220;Date&#8221;:&#8221;2026-07-18&#8243;,&#8221;City&#8221;:&#8221;Mumbai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:19.076,&#8221;Longitude&#8221;:72.8777},  {&#8220;Date&#8221;:&#8221;2026-07-19&#8243;,&#8221;City&#8221;:&#8221;Mumbai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:19.076,&#8221;Longitude&#8221;:72.8777},  {&#8220;Date&#8221;:&#8221;2026-07-20&#8243;,&#8221;City&#8221;:&#8221;Mumbai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:19.076,&#8221;Longitude&#8221;:72.8777},  {&#8220;Date&#8221;:&#8221;2026-07-21&#8243;,&#8221;City&#8221;:&#8221;Mumbai&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:19.076,&#8221;Longitude&#8221;:72.8777},  {&#8220;Date&#8221;:&#8221;2026-07-22&#8243;,&#8221;City&#8221;:&#8221;Vapi&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:20.3717,&#8221;Longitude&#8221;:72.9106},  {&#8220;Date&#8221;:&#8221;2026-07-23&#8243;,&#8221;City&#8221;:&#8221;Vapi&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:20.3717,&#8221;Longitude&#8221;:72.9106},  {&#8220;Date&#8221;:&#8221;2026-07-24&#8243;,&#8221;City&#8221;:&#8221;Surat&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:21.1702,&#8221;Longitude&#8221;:72.8311},  {&#8220;Date&#8221;:&#8221;2026-07-25&#8243;,&#8221;City&#8221;:&#8221;Surat&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:21.1702,&#8221;Longitude&#8221;:72.8311},  {&#8220;Date&#8221;:&#8221;2026-07-26&#8243;,&#8221;City&#8221;:&#8221;Bharuch&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:21.7051,&#8221;Longitude&#8221;:72.9959},  {&#8220;Date&#8221;:&#8221;2026-07-27&#8243;,&#8221;City&#8221;:&#8221;Bharuch&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:21.7051,&#8221;Longitude&#8221;:72.9959},  {&#8220;Date&#8221;:&#8221;2026-07-28&#8243;,&#8221;City&#8221;:&#8221;Vadodara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:22.3072,&#8221;Longitude&#8221;:73.1812},  {&#8220;Date&#8221;:&#8221;2026-07-29&#8243;,&#8221;City&#8221;:&#8221;Vadodara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:22.3072,&#8221;Longitude&#8221;:73.1812},  {&#8220;Date&#8221;:&#8221;2026-07-30&#8243;,&#8221;City&#8221;:&#8221;Ahmedabad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:23.0225,&#8221;Longitude&#8221;:72.5714},  {&#8220;Date&#8221;:&#8221;2026-07-31&#8243;,&#8221;City&#8221;:&#8221;Ahmedabad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:23.0225,&#8221;Longitude&#8221;:72.5714},  {&#8220;Date&#8221;:&#8221;2026-08-01&#8243;,&#8221;City&#8221;:&#8221;Ahmedabad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:23.0225,&#8221;Longitude&#8221;:72.5714},  {&#8220;Date&#8221;:&#8221;2026-08-02&#8243;,&#8221;City&#8221;:&#8221;Ahmedabad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:23.0225,&#8221;Longitude&#8221;:72.5714},  {&#8220;Date&#8221;:&#8221;2026-08-03&#8243;,&#8221;City&#8221;:&#8221;Ahmedabad&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:23.0225,&#8221;Longitude&#8221;:72.5714},  {&#8220;Date&#8221;:&#8221;2026-08-04&#8243;,&#8221;City&#8221;:&#8221;Udaipur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:24.5854,&#8221;Longitude&#8221;:73.7125},  {&#8220;Date&#8221;:&#8221;2026-08-05&#8243;,&#8221;City&#8221;:&#8221;Udaipur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:24.5854,&#8221;Longitude&#8221;:73.7125},  {&#8220;Date&#8221;:&#8221;2026-08-06&#8243;,&#8221;City&#8221;:&#8221;Chittorgarh&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:24.8887,&#8221;Longitude&#8221;:74.6269},  {&#8220;Date&#8221;:&#8221;2026-08-07&#8243;,&#8221;City&#8221;:&#8221;Bhilwara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:25.3462,&#8221;Longitude&#8221;:74.6364},  {&#8220;Date&#8221;:&#8221;2026-08-08&#8243;,&#8221;City&#8221;:&#8221;Bhilwara&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:25.3462,&#8221;Longitude&#8221;:74.6364},  {&#8220;Date&#8221;:&#8221;2026-08-09&#8243;,&#8221;City&#8221;:&#8221;Ajmer&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.4498,&#8221;Longitude&#8221;:74.6399},  {&#8220;Date&#8221;:&#8221;2026-08-10&#8243;,&#8221;City&#8221;:&#8221;Ajmer&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.4498,&#8221;Longitude&#8221;:74.6399},  {&#8220;Date&#8221;:&#8221;2026-08-11&#8243;,&#8221;City&#8221;:&#8221;Jaipur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.9124,&#8221;Longitude&#8221;:75.7873},  {&#8220;Date&#8221;:&#8221;2026-08-12&#8243;,&#8221;City&#8221;:&#8221;Jaipur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.9124,&#8221;Longitude&#8221;:75.7873},  {&#8220;Date&#8221;:&#8221;2026-08-13&#8243;,&#8221;City&#8221;:&#8221;Break&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.9124,&#8221;Longitude&#8221;:75.7873},  {&#8220;Date&#8221;:&#8221;2026-08-14&#8243;,&#8221;City&#8221;:&#8221;Jaipur&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:26.9124,&#8221;Longitude&#8221;:75.7873},  {&#8220;Date&#8221;:&#8221;2026-08-15&#8243;,&#8221;City&#8221;:&#8221;Alwar&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:27.553,&#8221;Longitude&#8221;:76.6346},  {&#8220;Date&#8221;:&#8221;2026-08-16&#8243;,&#8221;City&#8221;:&#8221;Alwar&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:27.553,&#8221;Longitude&#8221;:76.6346},  {&#8220;Date&#8221;:&#8221;2026-08-17&#8243;,&#8221;City&#8221;:&#8221;Neemrana&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:27.9941,&#8221;Longitude&#8221;:76.3887},  {&#8220;Date&#8221;:&#8221;2026-08-18&#8243;,&#8221;City&#8221;:&#8221;Manesar&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:28.3515,&#8221;Longitude&#8221;:76.9428},  {&#8220;Date&#8221;:&#8221;2026-08-19&#8243;,&#8221;City&#8221;:&#8221;Gurugram&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:28.4595,&#8221;Longitude&#8221;:77.0266},  {&#8220;Date&#8221;:&#8221;2026-08-20&#8243;,&#8221;City&#8221;:&#8221;Delhi&#8221;,&#8221;Event Name&#8221;:&#8221;&#8221;,&#8221;Host&#8221;:&#8221;&#8221;,&#8221;Venue&#8221;:&#8221;&#8221;,&#8221;Time&#8221;:&#8221;&#8221;,&#8221;Short Description&#8221;:&#8221;&#8221;,&#8221;Latitude&#8221;:28.6139,&#8221;Longitude&#8221;:77.209}];\/\/ FIX 2: dataLoaded flag \u2014 prevent showing GQ placeholder data until sheet loadslet _dataLoaded = false;let cities=[],cur=0,allYatraData=[];let inlineCal=null;let mainProjection=null, dashProjection=null;\/* \u2500\u2500 helper: append a city-name label to a D3 selection \u2500\u2500 *\/function appendCityLabel(sel, px, py, cityName, status, fromSheet) {  const isC = status===&#8217;current&#8217;;  const isV = status===&#8217;visited&#8217;;  const isSheet = !!fromSheet;  \/\/ For current city: animated pulsing label  if(isC){    const lbl = sel.append(&#8216;text&#8217;)      .attr(&#8216;x&#8217;, px)      .attr(&#8216;y&#8217;, py &#8211; 16)      .attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)      .attr(&#8216;font-size&#8217;, 11)      .attr(&#8216;font-weight&#8217;,&#8217;800&#8242;)      .attr(&#8216;font-family&#8217;,&#8221;&#8216;Outfit&#8217;,sans-serif&#8221;)      .attr(&#8216;fill&#8217;,&#8217;#e53935&#8242;)      .attr(&#8216;paint-order&#8217;,&#8217;stroke&#8217;)      .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.98)&#8217;)      .attr(&#8216;stroke-width&#8217;, 3.5)      .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;)      .attr(&#8216;pointer-events&#8217;,&#8217;none&#8217;)      .attr(&#8216;letter-spacing&#8217;,&#8217;0.5&#8242;)      .text(cityName);    \/\/ animate label opacity for live pulse effect    function animateLbl(){      lbl.transition().duration(800).attr(&#8216;opacity&#8217;,0.6)        .transition().duration(800).attr(&#8216;opacity&#8217;,1)        .on(&#8216;end&#8217;, animateLbl);    }    animateLbl();    return;  }  \/\/ Sheet-updated cities: orange, slightly bold  if(isSheet){    sel.append(&#8216;text&#8217;)      .attr(&#8216;x&#8217;, px)      .attr(&#8216;y&#8217;, py + 10)      .attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)      .attr(&#8216;font-size&#8217;, 6.5)      .attr(&#8216;font-weight&#8217;,&#8217;600&#8242;)      .attr(&#8216;font-family&#8217;,&#8221;&#8216;Outfit&#8217;,sans-serif&#8221;)      .attr(&#8216;fill&#8217;, isV ? &#8216;#cc6600&#8217; : &#8216;#ff8c00&#8217;)      .attr(&#8216;paint-order&#8217;,&#8217;stroke&#8217;)      .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.95)&#8217;)      .attr(&#8216;stroke-width&#8217;, 2.5)      .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;)      .attr(&#8216;pointer-events&#8217;,&#8217;none&#8217;)      .text(cityName);    return;  }  \/\/ GQ route cities (not sheet): small, subtle grey  sel.append(&#8216;text&#8217;)    .attr(&#8216;x&#8217;, px)    .attr(&#8216;y&#8217;, py + 9)    .attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)    .attr(&#8216;font-size&#8217;, 6.5)    .attr(&#8216;font-weight&#8217;,&#8217;400&#8242;)    .attr(&#8216;font-family&#8217;,&#8221;&#8216;Outfit&#8217;,sans-serif&#8221;)    .attr(&#8216;fill&#8217;, isV ? &#8216;rgba(26,74,46,0.6)&#8217; : &#8216;rgba(100,70,0,0.5)&#8217;)    .attr(&#8216;paint-order&#8217;,&#8217;stroke&#8217;)    .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.85)&#8217;)    .attr(&#8216;stroke-width&#8217;, 2)    .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;)    .attr(&#8216;pointer-events&#8217;,&#8217;none&#8217;)    .text(cityName);}\/* \u2500\u2500 Animated counter \u2500\u2500 *\/const _cs={};function fmtNum(v){if(v&gt;=10000)return(v\/1000).toFixed(1)+&#8217;K&#8217;;return String(Math.round(v));}function animateCounter(elId,targetNum,unit){  const el=document.getElementById(elId);if(!el)return;  const target=parseFloat(String(targetNum).replace(\/[^0-9.]\/g,&#8221;));  if(isNaN(target))return;  const prev=_cs[elId]||0;if(prev===target){el.textContent=fmtNum(target)+(unit||&#8221;);return;}  _cs[elId]=target;const dur=600,t0=performance.now();  el.classList.remove(&#8216;pop-anim&#8217;);void el.offsetWidth;el.classList.add(&#8216;pop-anim&#8217;);  setTimeout(()=&gt;el.classList.remove(&#8216;pop-anim&#8217;),450);  function step(now){const t=Math.min((now-t0)\/dur,1),e=1-Math.pow(1-t,3),v=prev+(target-prev)*e;el.textContent=fmtNum(v)+(unit||&#8221;);if(t&lt;1)requestAnimationFrame(step);}  requestAnimationFrame(step);}function setCircle(id,pct){  const el=document.getElementById(id);if(!el)return;  const r=27,c=2*Math.PI*r,offset=c-(pct\/100)*c;  el.style.strokeDasharray=c;el.style.strokeDashoffset=offset;}function toISO(d){return`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,&#8217;0&#8242;)}-${String(d.getDate()).padStart(2,&#8217;0&#8242;)}`;}function todayISO(){return toISO(new Date());}function parseISO(s){if(!s)return null;const d=new Date(s);return isNaN(d)?null:d;}function formatDate(iso){const d=parseISO(iso);return d?d.toLocaleDateString(&#8216;en-IN&#8217;,{day:&#8217;numeric&#8217;,month:&#8217;short&#8217;}):iso;}function dNorm(v){  if(!v)return null;  if(typeof v===&#8217;string&#8217;&amp;&amp;\/^d{4}-d{2}-d{2}$\/.test(v))return v;  try{const d=new Date(v);if(!isNaN(d.getTime()))return`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,&#8217;0&#8242;)}-${String(d.getDate()).padStart(2,&#8217;0&#8242;)}`;}catch(e){}  return null;}function dFmt(s){const n=dNorm(s);return n?new Date(n).toLocaleDateString(&#8216;en-US&#8217;,{year:&#8217;numeric&#8217;,month:&#8217;long&#8217;,day:&#8217;numeric&#8217;}):s;}function getCurrentIndex(list){  const t=todayISO();if(!list.length)return 0;  if(t&lt;list[0].iso)return 0;if(t&gt;=list[list.length-1].iso)return list.length-1;  let idx=0;for(let i=0;i&lt;list.length;i++){if(list[i].iso&lt;=t)idx=i;}return idx;}function buildCitiesFromSheet(data){  if(!data||!data.length)return null;  const seen={},list=[];  data.forEach(item=&gt;{    const iso=dNorm(item.Date);if(!iso)return;if(seen[iso])return;    const rawCity=(item.City||&#8221;).trim();if(!rawCity)return;    const isBreak=rawCity.toLowerCase()===&#8217;break&#8217;||(item[&#8216;Status&#8217;]||&#8221;).toLowerCase()===&#8217;break&#8217;||(item[&#8216;Type&#8217;]||&#8221;).toLowerCase()===&#8217;break&#8217;;    let lat=parseFloat(item.Latitude),lon=parseFloat(item.Longitude);    if(isNaN(lat)||isNaN(lon)){      if(isBreak){const p=list[list.length-1];if(!p)return;lat=p.lat;lon=p.lon;}      else{const gq=GQ_MAP[rawCity.toLowerCase()];if(!gq)return;lat=gq.lat;lon=gq.lon;}    }    seen[iso]=true;    list.push({name:isBreak?&#8217;Break&#8217;:rawCity,lat,lon,iso,dateStr:formatDate(iso),isBreak,_fromSheet:true});  });  if(!list.length)return null;  list.sort((a,b)=&gt;a.iso.localeCompare(b.iso));  const s=parseISO(list[0].iso);  list.forEach((c,i)=&gt;{const d=parseISO(c.iso);c.day=s&amp;&amp;d?Math.round((d-s)\/86400000)+1:i+1;c.idx=i;});  return list;}function buildCitiesFromGQ(){  const S=new Date(&#8216;2026-05-13&#8217;),T=100,step=T\/(GQ_ROUTE.length-1);  return GQ_ROUTE.map((c,i)=&gt;{    const dn=Math.round(i*step)+1,d=new Date(S);d.setDate(d.getDate()+dn-1);    const iso=toISO(d);return{&#8230;c,day:dn,iso,dateStr:formatDate(iso),idx:i};  });}const INDIA_GEOJSON_URL = &#8216;https:\/\/cdn.jsdelivr.net\/gh\/udit-001\/india-maps-data@ef25ebc\/geojson\/india.geojson&#8217;;let indiaGeoJSON = null;async function loadIndiaGeoJSON() {  if (indiaGeoJSON) return indiaGeoJSON;  try {    const res = await fetch(INDIA_GEOJSON_URL);    const data = await res.json();    indiaGeoJSON = data;    return indiaGeoJSON;  } catch(e) {    console.warn(&#8216;Primary GeoJSON failed, trying fallback:&#8217;, e);    try {      const fallbackRes = await fetch(&#8216;https:\/\/raw.githubusercontent.com\/datasets\/geo-countries\/master\/data\/countries.geojson&#8217;);      const fallbackData = await fallbackRes.json();      indiaGeoJSON = {        type: &#8216;FeatureCollection&#8217;,        features: fallbackData.features.filter(f =&gt;          (f.properties.ADMIN === &#8216;India&#8217; || f.properties.ISO_A3 === &#8216;IND&#8217;)        )      };      return indiaGeoJSON;    } catch(fbErr) {      console.error(&#8216;All GeoJSON sources failed:&#8217;, fbErr);      return null;    }  }}function makeProjection(svgEl) {  const rect = svgEl.getBoundingClientRect();  const W = rect.width || svgEl.parentElement.clientWidth || 500;  const H = rect.height || svgEl.parentElement.clientHeight || 500;  const proj = d3.geoMercator().center([82.5, 22]).scale(1).translate([W\/2, H\/2]);  const topLeft = proj([68.0, 37.5]);  const bottomRight = proj([97.5, 6.5]);  const kX = (W * 0.92) \/ (bottomRight[0] &#8211; topLeft[0]);  const kY = (H * 0.92) \/ (bottomRight[1] &#8211; topLeft[1]);  const k = Math.min(kX, kY);  proj.scale(k);  const c = proj([82.5, 22]);  proj.translate([W\/2 + (W\/2 &#8211; c[0]), H\/2 + (H\/2 &#8211; c[1])]);  return proj;}function latLonToXY(proj, lat, lon) {  const pt = proj([lon, lat]);  return pt ? {x: pt[0], y: pt[1]} : null;}\/* \u2500\u2500 renderD3Map \u2014 used by dashboard map \u2500\u2500 *\/function renderD3Map(svgId, tooltipId, citiesList, currentIdx, extraPoints) {  const svgEl = document.getElementById(svgId);  if (!svgEl) return;  const svg = d3.select(&#8216;#&#8217;+svgId);  svg.selectAll(&#8216;*&#8217;).remove();  const rect = svgEl.getBoundingClientRect();  const W = rect.width || svgEl.parentElement.clientWidth || 500;  const H = rect.height || svgEl.parentElement.clientHeight || 500;  svg.attr(&#8216;viewBox&#8217;, `0 0 ${W} ${H}`);  const proj = makeProjection(svgEl);  if (svgId === &#8216;main-map-svg&#8217;) mainProjection = proj;  else dashProjection = proj;  const pathGen = d3.geoPath().projection(proj);  const tooltip = document.getElementById(tooltipId);  svg.append(&#8216;rect&#8217;).attr(&#8216;width&#8217;,W).attr(&#8216;height&#8217;,H).attr(&#8216;fill&#8217;,&#8217;#b8d4e8&#8242;);  if (indiaGeoJSON &amp;&amp; indiaGeoJSON.features &amp;&amp; indiaGeoJSON.features.length) {    svg.selectAll(&#8216;.india-path&#8217;)      .data(indiaGeoJSON.features)      .enter().append(&#8216;path&#8217;)      .attr(&#8216;class&#8217;,&#8217;india-path&#8217;)      .attr(&#8216;d&#8217;, pathGen)      .attr(&#8216;fill&#8217;,&#8217;#d4ebd4&#8242;)      .attr(&#8216;stroke&#8217;,&#8217;#5a9a6a&#8217;)      .attr(&#8216;stroke-width&#8217;, 1.0);  } else {    svg.append(&#8216;rect&#8217;).attr(&#8216;x&#8217;,W*0.05).attr(&#8216;y&#8217;,H*0.05).attr(&#8216;width&#8217;,W*0.9).attr(&#8216;height&#8217;,H*0.9)      .attr(&#8216;rx&#8217;,8).attr(&#8216;fill&#8217;,&#8217;#d4ebd4&#8242;).attr(&#8216;stroke&#8217;,&#8217;#5a9a6a&#8217;).attr(&#8216;stroke-width&#8217;,1.5);    svg.append(&#8216;text&#8217;).attr(&#8216;x&#8217;,W\/2).attr(&#8216;y&#8217;,H\/2).attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)      .attr(&#8216;fill&#8217;,&#8217;#5a9a6a&#8217;).attr(&#8216;font-size&#8217;,13).attr(&#8216;font-family&#8217;,&#8217;Outfit,sans-serif&#8217;)      .text(&#8216;India Map Loading&#8230;&#8217;);  }  function cityPt(c){ return latLonToXY(proj, c.lat, c.lon); }  const donePts = [];  for(let i=0; i&lt;=currentIdx; i++){    const p = cityPt(citiesList[i]);    if(p &amp;&amp; (donePts.length===0 || donePts[donePts.length-1][0]!==p.x || donePts[donePts.length-1][1]!==p.y))      donePts.push([p.x, p.y]);  }  if(donePts.length&gt;1){    svg.append(&#8216;polyline&#8217;)      .attr(&#8216;points&#8217;, donePts.map(p=&gt;p.join(&#8216;,&#8217;)).join(&#8216; &#8216;))      .attr(&#8216;fill&#8217;,&#8217;none&#8217;).attr(&#8216;stroke&#8217;,&#8217;#2d7a4a&#8217;).attr(&#8216;stroke-width&#8217;,2.8)      .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;).attr(&#8216;stroke-linecap&#8217;,&#8217;round&#8217;).attr(&#8216;opacity&#8217;,0.95);  }  const upPts = [];  for(let i=currentIdx; i&lt;citiesList.length; i++){    const p = cityPt(citiesList[i]);    if(p &amp;&amp; (upPts.length===0 || upPts[upPts.length-1][0]!==p.x || upPts[upPts.length-1][1]!==p.y))      upPts.push([p.x, p.y]);  }  if(upPts.length&gt;1){    svg.append(&#8216;polyline&#8217;)      .attr(&#8216;points&#8217;, upPts.map(p=&gt;p.join(&#8216;,&#8217;)).join(&#8216; &#8216;))      .attr(&#8216;fill&#8217;,&#8217;none&#8217;).attr(&#8216;stroke&#8217;,&#8217;rgba(255,160,60,0.55)&#8217;).attr(&#8216;stroke-width&#8217;,2)      .attr(&#8216;stroke-dasharray&#8217;,&#8217;7 5&#8242;).attr(&#8216;stroke-linecap&#8217;,&#8217;round&#8217;).attr(&#8216;opacity&#8217;,0.9);  }  citiesList.forEach((c,i)=&gt;{    const p = cityPt(c);    if(!p) return;    const st = i&lt;currentIdx?&#8217;visited&#8217;:i===currentIdx?&#8217;current&#8217;:&#8217;upcoming&#8217;;    const g = svg.append(&#8216;g&#8217;).attr(&#8216;class&#8217;,&#8217;city-marker&#8217;).attr(&#8216;cursor&#8217;,&#8217;default&#8217;);    if(st===&#8217;current&#8217;){      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,11).attr(&#8216;fill&#8217;,&#8217;rgba(255,102,0,0.20)&#8217;).attr(&#8216;stroke&#8217;,&#8217;none&#8217;);      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,7).attr(&#8216;fill&#8217;,&#8217;#ff6600&#8242;).attr(&#8216;stroke&#8217;,&#8217;#fff&#8217;).attr(&#8216;stroke-width&#8217;,2);    } else if(st===&#8217;visited&#8217;){      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,4).attr(&#8216;fill&#8217;,&#8217;#2d7a4a&#8217;).attr(&#8216;stroke&#8217;,&#8217;#4CAF7D&#8217;).attr(&#8216;stroke-width&#8217;,1.5);    } else {      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,3.5).attr(&#8216;fill&#8217;,&#8217;#ff9933&#8242;).attr(&#8216;stroke&#8217;,&#8217;#fff&#8217;).attr(&#8216;stroke-width&#8217;,1);    }    \/* \u2500\u2500 city name label \u2500\u2500 *\/    appendCityLabel(g, p.x, p.y, c.name, st, c._fromSheet||false);    g.on(&#8216;mouseenter&#8217;, (evt)=&gt;{      tooltip.innerHTML=`&lt;strong&gt;${c.name}&lt;\/strong&gt;&lt;br&gt;${c.dateStr}, 2026 \u00b7 Day ${c.day}`;      tooltip.style.opacity=&#8217;1&#8242;;    }).on(&#8216;mousemove&#8217;,(evt)=&gt;{      const wrap = svgEl.parentElement.getBoundingClientRect();      let tx = evt.clientX &#8211; wrap.left + 12;      let ty = evt.clientY &#8211; wrap.top &#8211; 10;      if(tx + 180 &gt; wrap.width) tx = tx &#8211; 190;      tooltip.style.left=tx+&#8217;px&#8217;;tooltip.style.top=ty+&#8217;px&#8217;;    }).on(&#8216;mouseleave&#8217;,()=&gt;{ tooltip.style.opacity=&#8217;0&#8242;; });  });  if(extraPoints){    extraPoints.forEach(ep=&gt;{      const p = latLonToXY(proj, ep.lat, ep.lon);      if(!p) return;      svg.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,5)        .attr(&#8216;fill&#8217;,ep.color||&#8217;#e07030&#8242;).attr(&#8216;stroke&#8217;,&#8217;#fff&#8217;).attr(&#8216;stroke-width&#8217;,1.5).attr(&#8216;opacity&#8217;,0.85);    });  }  if(svgId===&#8217;main-map-svg&#8217; &amp;&amp; citiesList[currentIdx]){    document.getElementById(&#8216;map-badge-city&#8217;).textContent = citiesList[currentIdx].name;  }}\/* \u2500\u2500 renderMainMapWithZoom \u2014 main live map with D3 zoom \u2500\u2500 *\/let zoomBehavior = null;function renderMainMapWithZoom(){  const svgEl = document.getElementById(&#8216;main-map-svg&#8217;);  if(!svgEl) return;  const svg = d3.select(&#8216;#main-map-svg&#8217;);  svg.selectAll(&#8216;*&#8217;).remove();  const rect = svgEl.getBoundingClientRect();  const W = rect.width || svgEl.parentElement.clientWidth || 500;  const H = rect.height || svgEl.parentElement.clientHeight || 500;  svg.attr(&#8216;viewBox&#8217;,`0 0 ${W} ${H}`);  const proj = makeProjection(svgEl);  mainProjection = proj;  const pathGen = d3.geoPath().projection(proj);  const tooltip = document.getElementById(&#8216;map-tooltip&#8217;);  const root = svg.append(&#8216;g&#8217;).attr(&#8216;id&#8217;,&#8217;zoom-root&#8217;);  root.append(&#8216;rect&#8217;).attr(&#8216;width&#8217;,W).attr(&#8216;height&#8217;,H).attr(&#8216;fill&#8217;,&#8217;#b8d4e8&#8242;);  if (indiaGeoJSON &amp;&amp; indiaGeoJSON.features &amp;&amp; indiaGeoJSON.features.length) {    root.selectAll(&#8216;.india-path&#8217;)      .data(indiaGeoJSON.features)      .enter().append(&#8216;path&#8217;)      .attr(&#8216;class&#8217;,&#8217;india-path&#8217;)      .attr(&#8216;d&#8217;,pathGen)      .attr(&#8216;fill&#8217;,&#8217;#d4ebd4&#8242;)      .attr(&#8216;stroke&#8217;,&#8217;#5a9a6a&#8217;)      .attr(&#8216;stroke-width&#8217;, 1.0);  }  \/* \u2500\u2500 Background India cities layer \u2500\u2500 *\/  const yataCityNames = new Set(cities.map(c=&gt;c.name.toLowerCase()));  INDIA_BG_CITIES.forEach(bc=&gt;{    if(yataCityNames.has(bc.n.toLowerCase())) return; \/\/ skip if already on yatra route    const pt = proj([bc.lon, bc.lat]);    if(!pt) return;    const bx=pt[0], by=pt[1];    const bg = root.append(&#8216;g&#8217;).attr(&#8216;pointer-events&#8217;,&#8217;none&#8217;);    \/\/ dot    bg.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,bx).attr(&#8216;cy&#8217;,by)      .attr(&#8216;r&#8217;, bc.cap ? 2 : 1.5)      .attr(&#8216;fill&#8217;, bc.cap ? &#8216;#aaa&#8217; : &#8216;#bbb&#8217;)      .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.6)&#8217;)      .attr(&#8216;stroke-width&#8217;, 0.7);    \/\/ label    bg.append(&#8216;text&#8217;)      .attr(&#8216;x&#8217;, bx).attr(&#8216;y&#8217;, by &#8211; 3)      .attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)      .attr(&#8216;font-size&#8217;, bc.cap ? 5.5 : 5)      .attr(&#8216;font-weight&#8217;, bc.cap ? &#8216;500&#8217; : &#8216;400&#8217;)      .attr(&#8216;font-family&#8217;,&#8221;&#8216;Outfit&#8217;,sans-serif&#8221;)      .attr(&#8216;fill&#8217;, bc.cap ? &#8216;rgba(80,80,80,0.75)&#8217; : &#8216;rgba(110,110,110,0.6)&#8217;)      .attr(&#8216;paint-order&#8217;,&#8217;stroke&#8217;)      .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.8)&#8217;)      .attr(&#8216;stroke-width&#8217;, 1.8)      .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;)      .text(bc.n);  });  function cityPt(c){ const pt=proj([c.lon,c.lat]); return pt?{x:pt[0],y:pt[1]}:null; }  const donePts=[];  for(let i=0;i&lt;=cur;i++){    const p=cityPt(cities[i]);    if(p&amp;&amp;(donePts.length===0||donePts[donePts.length-1][0]!==p.x||donePts[donePts.length-1][1]!==p.y))      donePts.push([p.x,p.y]);  }  if(donePts.length&gt;1){    const doneLineEl = root.append(&#8216;polyline&#8217;)      .attr(&#8216;points&#8217;,donePts.map(p=&gt;p.join(&#8216;,&#8217;)).join(&#8216; &#8216;))      .attr(&#8216;fill&#8217;,&#8217;none&#8217;).attr(&#8216;stroke&#8217;,&#8217;#1db954&#8242;).attr(&#8216;stroke-width&#8217;,4)      .attr(&#8216;stroke-linejoin&#8217;,&#8217;round&#8217;).attr(&#8216;stroke-linecap&#8217;,&#8217;round&#8217;).attr(&#8216;opacity&#8217;,1);    let totalLen = 0;    for(let i=1;i&lt;donePts.length;i++){      const dx=donePts[i][0]-donePts[i-1][0], dy=donePts[i][1]-donePts[i-1][1];      totalLen += Math.sqrt(dx*dx+dy*dy);    }    doneLineEl.attr(&#8216;stroke-dasharray&#8217;, totalLen+&#8217; &#8216;+totalLen)      .attr(&#8216;stroke-dashoffset&#8217;, totalLen);    doneLineEl.transition().duration(1800).ease(d3.easeCubicInOut)      .attr(&#8216;stroke-dashoffset&#8217;, 0);  }  const upPts=[];  for(let i=cur;i&lt;cities.length;i++){    const p=cityPt(cities[i]);    if(p&amp;&amp;(upPts.length===0||upPts[upPts.length-1][0]!==p.x||upPts[upPts.length-1][1]!==p.y))      upPts.push([p.x,p.y]);  }  if(upPts.length&gt;1)    root.append(&#8216;polyline&#8217;).attr(&#8216;points&#8217;,upPts.map(p=&gt;p.join(&#8216;,&#8217;)).join(&#8216; &#8216;))      .attr(&#8216;fill&#8217;,&#8217;none&#8217;).attr(&#8216;stroke&#8217;,&#8217;#ff8c00&#8242;).attr(&#8216;stroke-width&#8217;,2.5)      .attr(&#8216;stroke-dasharray&#8217;,&#8217;8 5&#8242;).attr(&#8216;stroke-linecap&#8217;,&#8217;round&#8217;).attr(&#8216;opacity&#8217;,0.85);  cities.forEach((c,i)=&gt;{    const p=cityPt(c); if(!p) return;    const st=i&lt;cur?&#8217;visited&#8217;:i===cur?&#8217;current&#8217;:&#8217;upcoming&#8217;;    const fromSheet = c._fromSheet || false;    const g=root.append(&#8216;g&#8217;).attr(&#8216;cursor&#8217;,&#8217;default&#8217;);    if(st===&#8217;current&#8217;){      const outerRing = g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,14)        .attr(&#8216;fill&#8217;,&#8217;rgba(229,57,53,0.18)&#8217;).attr(&#8216;stroke&#8217;,&#8217;rgba(229,57,53,0.4)&#8217;).attr(&#8216;stroke-width&#8217;,1.5);      function pulseRing(){        outerRing.transition().duration(900).attr(&#8216;r&#8217;,18).attr(&#8216;opacity&#8217;,0.1)          .transition().duration(900).attr(&#8216;r&#8217;,14).attr(&#8216;opacity&#8217;,1)          .on(&#8216;end&#8217;,pulseRing);      }      pulseRing();      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,7)        .attr(&#8216;fill&#8217;,&#8217;#e53935&#8242;).attr(&#8216;stroke&#8217;,&#8217;#fff&#8217;).attr(&#8216;stroke-width&#8217;,2.2);      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,2.5).attr(&#8216;fill&#8217;,&#8217;#fff&#8217;);    } else if(st===&#8217;visited&#8217;){      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,3.8).attr(&#8216;fill&#8217;,&#8217;#27ae60&#8242;).attr(&#8216;stroke&#8217;,&#8217;#4CAF7D&#8217;).attr(&#8216;stroke-width&#8217;,1.5);    } else {      g.append(&#8216;circle&#8217;).attr(&#8216;cx&#8217;,p.x).attr(&#8216;cy&#8217;,p.y).attr(&#8216;r&#8217;,3).attr(&#8216;fill&#8217;,&#8217;#ff9933&#8242;).attr(&#8216;stroke&#8217;,&#8217;#fff&#8217;).attr(&#8216;stroke-width&#8217;,1);    }    \/* \u2500\u2500 city name label on main live map \u2500\u2500 *\/    appendCityLabel(g, p.x, p.y, c.name, st, fromSheet);    g.append(&#8216;rect&#8217;).attr(&#8216;x&#8217;,p.x-12).attr(&#8216;y&#8217;,p.y-12).attr(&#8216;width&#8217;,24).attr(&#8216;height&#8217;,24).attr(&#8216;fill&#8217;,&#8217;transparent&#8217;)      .on(&#8216;mouseenter&#8217;,(evt)=&gt;{        tooltip.innerHTML=`&lt;strong&gt;${c.name}&lt;\/strong&gt;&lt;br&gt;${c.dateStr}, 2026 \u00b7 Day ${c.day}`;        tooltip.style.opacity=&#8217;1&#8242;;      })      .on(&#8216;mousemove&#8217;,(evt)=&gt;{        const wrap=svgEl.parentElement.getBoundingClientRect();        let tx=evt.clientX-wrap.left+12, ty=evt.clientY-wrap.top-10;        if(tx+180&gt;wrap.width) tx=tx-190;        tooltip.style.left=tx+&#8217;px&#8217;; tooltip.style.top=ty+&#8217;px&#8217;;      })      .on(&#8216;mouseleave&#8217;,()=&gt;tooltip.style.opacity=&#8217;0&#8242;)      .on(&#8216;click&#8217;,()=&gt;{        if(!zoomBehavior) return;        const s=3.2;        d3.select(&#8216;#main-map-svg&#8217;).transition().duration(600).call(          zoomBehavior.transform,          d3.zoomIdentity.translate(W\/2,H\/2).scale(s).translate(-p.x,-p.y)        );      });  });  const cc=cities[cur];  if(cc){    document.getElementById(&#8216;map-badge-city&#8217;).textContent=cc.name;  }  if(!zoomBehavior){    zoomBehavior=d3.zoom().scaleExtent([0.7, 10]).on(&#8216;zoom&#8217;,(evt)=&gt;{      root.attr(&#8216;transform&#8217;,evt.transform);    });  } else {    zoomBehavior.on(&#8216;zoom&#8217;,(evt)=&gt;root.attr(&#8216;transform&#8217;,evt.transform));  }  svg.call(zoomBehavior);  svg.append(&#8216;rect&#8217;).attr(&#8216;x&#8217;,W-46).attr(&#8216;y&#8217;,10).attr(&#8216;width&#8217;,36).attr(&#8216;height&#8217;,70).attr(&#8216;rx&#8217;,8)    .attr(&#8216;fill&#8217;,&#8217;rgba(10,40,20,0.75)&#8217;).attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.2)&#8217;).attr(&#8216;stroke-width&#8217;,1);  svg.append(&#8216;text&#8217;).attr(&#8216;x&#8217;,W-28).attr(&#8216;y&#8217;,34).attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)    .attr(&#8216;fill&#8217;,&#8217;#fff&#8217;).attr(&#8216;font-size&#8217;,18).attr(&#8216;font-family&#8217;,&#8217;sans-serif&#8217;).attr(&#8216;cursor&#8217;,&#8217;pointer&#8217;)    .text(&#8216;+&#8217;).on(&#8216;click&#8217;,()=&gt;svg.transition().duration(300).call(zoomBehavior.scaleBy,1.5));  svg.append(&#8216;line&#8217;).attr(&#8216;x1&#8217;,W-44).attr(&#8216;x2&#8217;,W-12).attr(&#8216;y1&#8217;,45).attr(&#8216;y2&#8217;,45)    .attr(&#8216;stroke&#8217;,&#8217;rgba(255,255,255,0.25)&#8217;).attr(&#8216;stroke-width&#8217;,1);  svg.append(&#8216;text&#8217;).attr(&#8216;x&#8217;,W-28).attr(&#8216;y&#8217;,63).attr(&#8216;text-anchor&#8217;,&#8217;middle&#8217;)    .attr(&#8216;fill&#8217;,&#8217;#fff&#8217;).attr(&#8216;font-size&#8217;,18).attr(&#8216;font-family&#8217;,&#8217;sans-serif&#8217;).attr(&#8216;cursor&#8217;,&#8217;pointer&#8217;)    .text(&#8216;\u2212&#8217;).on(&#8216;click&#8217;,()=&gt;svg.transition().duration(300).call(zoomBehavior.scaleBy,0.67));}function renderDashMap(data){  const svgEl=document.getElementById(&#8216;d-map-svg&#8217;);if(!svgEl)return;  const today=todayISO();  const pts=[];  data.forEach(item=&gt;{    const iso=dNorm(item.Date);if(!iso)return;    const cn=(item.City||&#8221;).trim();if(!cn)return;    let la=parseFloat(item.Latitude),lo=parseFloat(item.Longitude);    if(isNaN(la)||isNaN(lo)){const gq=GQ_MAP[cn.toLowerCase()];if(!gq)return;la=gq.lat;lo=gq.lon;}    let color=iso&lt;today?&#8217;#aaa&#8217;:iso===today?&#8217;#e53935&#8242;:&#8217;#e07030&#8242;;    pts.push({lat:la,lon:lo,name:cn,iso,color,current:iso===today});  });  renderD3Map(&#8216;d-map-svg&#8217;,&#8217;d-map-tooltip&#8217;,cities,cur,pts);}function haversineKm(a,b){  const R=6371,dLat=(b.lat-a.lat)*Math.PI\/180,dLon=(b.lon-a.lon)*Math.PI\/180;  const s=Math.sin(dLat\/2)**2+Math.cos(a.lat*Math.PI\/180)*Math.cos(b.lat*Math.PI\/180)*Math.sin(dLon\/2)**2;  return R*2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s));}function updateSidebar(){  if(!cities.length)return;  const c=cities[cur],nxt=cur&lt;cities.length-1?cities[cur+1]:null;  const pct=Math.round((cur\/(cities.length-1))*100);  const daysDone=Math.max(0,c.day-1);  const daysLeft=Math.max(0,100-c.day+1);  let kmDone=0;for(let i=0;i&lt;cur;i++)kmDone+=haversineKm(cities[i],cities[i+1]);  kmDone=Math.round(kmDone);  let peopleMet=0;  const today=todayISO();  if(allYatraData&amp;&amp;allYatraData.length){    allYatraData.forEach(item=&gt;{      const iso=dNorm(item.Date);if(!iso||iso&gt;today)return;      const keys=Object.keys(item);const pk=keys.find(k=&gt;\/people\/i.test(k));      if(pk){const n=parseInt(String(item[pk]||&#8217;0&#8242;).replace(\/,\/g,&#8221;),10);if(!isNaN(n))peopleMet+=n;}    });  }  if(peopleMet===0&amp;&amp;window.statsData&amp;&amp;window.statsData.totalPeople) peopleMet=window.statsData.totalPeople;  document.getElementById(&#8216;hdr-day&#8217;).textContent=`Day ${c.day} of 100`;  document.getElementById(&#8216;sb-city&#8217;).textContent=c.isBreak?`${c.name} \u2014 Rest Day`:c.name;  document.getElementById(&#8216;sb-date&#8217;).textContent=`${c.dateStr}, 2026 \u00b7 Day ${c.day}`;  document.getElementById(&#8216;day-pill&#8217;).textContent=`Day ${c.day}`;  const badge=document.getElementById(&#8216;live-badge&#8217;);  if(c.isBreak){badge.classList.add(&#8216;on-break&#8217;);document.getElementById(&#8216;live-txt&#8217;).textContent=&#8217;BREAK&#8217;;}  else{badge.classList.remove(&#8216;on-break&#8217;);document.getElementById(&#8216;live-txt&#8217;).textContent=&#8217;LIVE&#8217;;}  if(nxt){document.getElementById(&#8216;sb-next&#8217;).textContent=nxt.name;document.getElementById(&#8216;sb-next-when&#8217;).textContent=nxt.dateStr+&#8217;, 2026&#8242;;}  else{document.getElementById(&#8216;sb-next&#8217;).textContent=&#8217;Yatra Sampurna&#8217;;document.getElementById(&#8216;sb-next-when&#8217;).textContent=&#8217;\u2726 100 Days Complete \u2726&#8217;;}  document.getElementById(&#8216;prog-fill&#8217;).style.width=Math.max(1,pct)+&#8217;%&#8217;;  document.getElementById(&#8216;prog-txt&#8217;).textContent=pct+&#8217;% complete&#8217;;  animateCounter(&#8216;stat-done2&#8217;,daysDone);animateCounter(&#8216;stat-left2&#8217;,daysLeft);  animateCounter(&#8216;stat-people2&#8217;,peopleMet);animateCounter(&#8216;stat-km2&#8242;,kmDone,&#8217; km&#8217;);  setCircle(&#8216;circ-done2&#8217;,Math.round((daysDone\/100)*100));setCircle(&#8216;circ-left2&#8217;,Math.round((daysLeft\/100)*100));}function buildList(){  const list=document.getElementById(&#8216;rlist&#8217;);list.innerHTML=&#8221;;  cities.forEach((c,i)=&gt;{    const st=i&lt;cur?&#8217;visited&#8217;:i===cur?&#8217;current&#8217;:&#8217;upcoming&#8217;;    const item=document.createElement(&#8216;div&#8217;);item.className=&#8217;ritem&#8217;;    item.onclick=()=&gt;{      if(mainProjection &amp;&amp; zoomBehavior){        const pt=mainProjection([c.lon,c.lat]);        if(pt){          const svgEl=document.getElementById(&#8216;main-map-svg&#8217;);          const W=svgEl.getBoundingClientRect().width;          const H=svgEl.getBoundingClientRect().height;          d3.select(&#8216;#main-map-svg&#8217;).transition().duration(600).call(            zoomBehavior.transform,            d3.zoomIdentity.translate(W\/2,H\/2).scale(3.2).translate(-pt[0],-pt[1])          );        }      }    };    const dw=document.createElement(&#8216;div&#8217;);dw.className=&#8217;rdot-wrap&#8217;;    const dot=document.createElement(&#8216;div&#8217;);dot.className=&#8217;rdot &#8216;+(c.isBreak&amp;&amp;st===&#8217;current&#8217;?&#8217;break&#8217;:st);    dw.appendChild(dot);    if(i&lt;cities.length-1){const ln=document.createElement(&#8216;div&#8217;);ln.className=&#8217;rconnect&#8217;;dw.appendChild(ln);}    const nm=document.createElement(&#8216;div&#8217;);nm.className=&#8217;rname &#8216;+st;nm.textContent=c.name;    if(st===&#8217;current&#8217;&amp;&amp;c.isBreak){const t=document.createElement(&#8216;span&#8217;);t.className=&#8217;tag-break&#8217;;t.textContent=&#8217;BREAK&#8217;;nm.appendChild(t);}    else if(st===&#8217;current&#8217;){const t=document.createElement(&#8216;span&#8217;);t.className=&#8217;tag-live&#8217;;t.textContent=&#8217;LIVE&#8217;;nm.appendChild(t);}    if(st===&#8217;upcoming&#8217;&amp;&amp;i===cur+1){const t=document.createElement(&#8216;span&#8217;);t.className=&#8217;tag-next&#8217;;t.textContent=&#8217;NEXT&#8217;;nm.appendChild(t);}    const info=document.createElement(&#8216;div&#8217;);info.style.flex=&#8217;1&#8242;;info.style.overflow=&#8217;hidden&#8217;;info.appendChild(nm);    const dt=document.createElement(&#8216;div&#8217;);dt.className=&#8217;rdate&#8217;;dt.textContent=c.dateStr;    item.appendChild(dw);item.appendChild(info);item.appendChild(dt);list.appendChild(item);  });  const items=list.querySelectorAll(&#8216;.ritem&#8217;);  if(items[cur])setTimeout(()=&gt;{const el=items[cur];const container=el.closest(&#8216;.rlist&#8217;);if(container){container.scrollTop=el.offsetTop-container.offsetTop-40;}},200);}function showCalEvtPopup(dateStr){  const nd=dNorm(dateStr);  const body=document.getElementById(&#8216;cal-evt-body&#8217;);  const title=document.getElementById(&#8216;cal-evt-title&#8217;);  const ev=allYatraData.find(item=&gt;dNorm(item.Date)===nd);  if(ev){    title.textContent=ev[&#8216;Event Name&#8217;]||ev.City||&#8217;Event Details&#8217;;    body.innerHTML=`      &lt;div&gt;&lt;span&gt;City&lt;\/span&gt;&lt;div&gt;${ev.City||&#8217;N\/A&#8217;}&lt;\/div&gt;&lt;\/div&gt;      &lt;div&gt;&lt;span&gt;Date&lt;\/span&gt;&lt;div&gt;${dFmt(ev.Date)}&lt;\/div&gt;&lt;\/div&gt;      ${ev[&#8216;Event Name&#8217;]?`&lt;div&gt;&lt;span&gt;Event&lt;\/span&gt;&lt;div&gt;${ev[&#8216;Event Name&#8217;]}&lt;\/div&gt;&lt;\/div&gt;`:&#8221;}      ${ev.Host?`&lt;div&gt;&lt;span&gt;Hosted By&lt;\/span&gt;&lt;div&gt;${ev.Host}&lt;\/div&gt;&lt;\/div&gt;`:&#8221;}      ${ev.Venue?`&lt;div&gt;&lt;span&gt;Venue&lt;\/span&gt;&lt;div&gt;${ev.Venue}&lt;\/div&gt;&lt;\/div&gt;`:&#8221;}      ${(ev.Time!==undefined&amp;&amp;ev.Time!==null&amp;&amp;ev.Time!==&#8221;)?`&lt;div&gt;&lt;span&gt;Time&lt;\/span&gt;&lt;div&gt;${fmtTime(ev.Time)}&lt;\/div&gt;&lt;\/div&gt;`:&#8221;}      ${ev[&#8216;Short Description&#8217;]?`&lt;div&gt;&lt;span&gt;Description&lt;\/span&gt;&lt;div&gt;${ev[&#8216;Short Description&#8217;]}&lt;\/div&gt;&lt;\/div&gt;`:&#8221;}    `;  } else {    const dateObj=parseISO(nd),start=parseISO(&#8216;2026-05-13&#8217;),end=parseISO(&#8216;2026-08-20&#8242;);    title.textContent=nd?dFmt(nd):&#8217;No Event&#8217;;    if(dateObj&amp;&amp;start&amp;&amp;end&amp;&amp;dateObj&gt;=start&amp;&amp;dateObj&lt;=end){      const city=cities.find(c=&gt;c.iso===nd);      body.innerHTML=city        ?`&lt;div&gt;&lt;span&gt;Location&lt;\/span&gt;&lt;div&gt;${city.name}&lt;\/div&gt;&lt;\/div&gt;&lt;div&gt;&lt;span&gt;Day&lt;\/span&gt;&lt;div&gt;Day ${city.day} of 100&lt;\/div&gt;&lt;\/div&gt;&lt;div style=&#8221;padding-top:8px&#8221;&gt;No specific event scheduled&lt;\/div&gt;`        :`&lt;div&gt;No event scheduled for this date&lt;\/div&gt;`;    } else {      body.innerHTML=`&lt;div&gt;No Yatra event on this date&lt;\/div&gt;`;    }  }  document.getElementById(&#8216;cal-evt-overlay&#8217;).classList.add(&#8216;show&#8217;);  \/\/ expand iframe to full viewport so fixed overlay covers everything  document.documentElement.style.height=&#8217;100vh&#8217;;  document.body.style.height=&#8217;100vh&#8217;;  document.body.style.overflow=&#8217;hidden&#8217;;  try{    var iframes=window.top.document.querySelectorAll(&#8216;iframe&#8217;);    iframes.forEach(function(f){      if(f.contentWindow===window){        f._origHeight=f._origHeight||f.style.height;        f._origPos=f._origPos||f.style.position;        f.style.cssText=&#8217;height:&#8217;+window.top.innerHeight+&#8217;px !important;position:fixed !important;top:0 !important;left:0 !important;width:100% !important;z-index:99999 !important;margin:0 !important;&#8217;;      }    });  }catch(e){}}function closeCalEvt(){  document.getElementById(&#8216;cal-evt-overlay&#8217;).classList.remove(&#8216;show&#8217;);  document.documentElement.style.height=&#8221;;  document.body.style.height=&#8221;;  document.body.style.overflow=&#8221;;  try{    var iframes=window.top.document.querySelectorAll(&#8216;iframe&#8217;);    iframes.forEach(function(f){      if(f.contentWindow===window){        f.style.cssText=&#8221;;        if(f._origHeight) f.style.height=f._origHeight;      }    });  }catch(e){}}document.addEventListener(&#8216;keydown&#8217;,e=&gt;{  if(e.key===&#8217;Escape&#8217;){closeCalEvt();closeDash();document.getElementById(&#8216;india-lb&#8217;).style.display=&#8217;none&#8217;;}});\/* \u2500\u2500 Shared calendar event builder \u2014 used by both calendars \u2500\u2500 *\/function buildCalEvents(data){  const today=todayISO();  const evts=[];  data.forEach(item=&gt;{    const iso=dNorm(item.Date);if(!iso)return;    const city=(item.City||&#8221;).trim();if(!city||city.toLowerCase()===&#8217;break&#8217;)return;    const eventName=(item[&#8216;Event Name&#8217;]||&#8221;).trim();    const label=eventName?`${city} \u2013 ${eventName}`:city;    let color=iso&lt;today?&#8217;#888&#8242;:iso===today?&#8217;#e53935&#8242;:&#8217;#e07030&#8242;;    evts.push({title:label,start:iso,color,allDay:true,      extendedProps:{dateStr:iso}});  });  return evts;}function initInlineCal(){  const el=document.getElementById(&#8216;inline-calendar&#8217;);  inlineCal=new FullCalendar.Calendar(el,{    initialView:&#8217;dayGridMonth&#8217;,    headerToolbar:{left:&#8217;prev,next today&#8217;,center:&#8217;title&#8217;,right:&#8221;},    height:&#8217;auto&#8217;,    themeSystem:&#8217;standard&#8217;,    eventDisplay:&#8217;block&#8217;,    eventMaxStack:3,    dayMaxEvents:3,    eventDidMount:function(info){      info.el.style.fontSize=&#8217;9px&#8217;;      info.el.style.padding=&#8217;1px 3px&#8217;;      info.el.style.borderRadius=&#8217;3px&#8217;;      info.el.style.cursor=&#8217;pointer&#8217;;    },    dateClick:info=&gt;showCalEvtPopup(info.dateStr),    eventClick:info=&gt;{      const ds=info.event.extendedProps.dateStr||info.event.startStr||(info.event.start?info.event.start.toISOString().split(&#8216;T&#8217;)[0]:&#8221;);      if(ds) showCalEvtPopup(ds);    }  });  inlineCal.render();}function updateInlineCal(data){  if(!inlineCal)return;  inlineCal.removeAllEvents();  inlineCal.addEventSource(buildCalEvents(data));}function fmtTime(v){  if(v===undefined||v===null||v===&#8221;)return&#8217;\u2014&#8217;;  const s=String(v).trim();  if(s===&#8221;||s===&#8217;0&#8217;||s.toLowerCase()===&#8217;false&#8217;||s===&#8217;\u2014&#8217;)return&#8217;\u2014&#8217;;  \/\/ 1899-12-30 = Google Sheets empty time cell (Excel zero date)  if(s.startsWith(&#8216;1899&#8217;)||s.startsWith(&#8216;1900-01-0&#8242;))return&#8217;\u2014&#8217;;  \/\/ Apps Script sends Date as &#8220;yyyy-MM-dd&#8221; \u2014 if it&#8217;s a full date with no time, skip  \/\/ But if Apps Script sends time as &#8220;1899-12-30 HH:mm:ss&#8221; extract time part  const spaceMatch=s.match(\/d{4}-d{2}-d{2}s+(d{1,2}):(d{2})\/);  if(spaceMatch){    const h=parseInt(spaceMatch[1],10),m=parseInt(spaceMatch[2],10);    if(h===0&amp;&amp;m===0)return&#8217;\u2014&#8217;;    const ampm=h&gt;=12?&#8217;PM&#8217;:&#8217;AM&#8217;,hh=h%12===0?12:h%12;    return hh+&#8217;:&#8217;+String(m).padStart(2,&#8217;0&#8242;)+&#8217; &#8216;+ampm;  }  \/\/ Decimal fraction: Google Sheets internal time (0.375 = 9:00 AM)  const num=parseFloat(s);  if(!isNaN(num)&amp;&amp;num&gt;0&amp;&amp;num&lt;1){    const totalMin=Math.round(num*1440);    const h=Math.floor(totalMin\/60),m=totalMin%60;    const ampm=h&gt;=12?&#8217;PM&#8217;:&#8217;AM&#8217;,hh=h%12===0?12:h%12;    return hh+&#8217;:&#8217;+String(m).padStart(2,&#8217;0&#8242;)+&#8217; &#8216;+ampm;  }  \/\/ ISO datetime with T (e.g. &#8220;1899-12-30T09:00:00.000Z&#8221;)  if(s.includes(&#8216;T&#8217;)){    const tp=s.split(&#8216;T&#8217;)[1];    if(tp){      const tm=tp.match(\/^(d{1,2}):(d{2})\/);      if(tm){        const h=parseInt(tm[1],10),m=parseInt(tm[2],10);        if(h===0&amp;&amp;m===0)return&#8217;\u2014&#8217;;        const ampm=h&gt;=12?&#8217;PM&#8217;:&#8217;AM&#8217;,hh=h%12===0?12:h%12;        return hh+&#8217;:&#8217;+String(m).padStart(2,&#8217;0&#8242;)+&#8217; &#8216;+ampm;      }    }    return&#8217;\u2014&#8217;;  }  \/\/ Plain HH:MM or HH:MM:SS with optional AM\/PM  const match=s.match(\/^(d{1,2}):(d{2})(?::d{2})?(s*(AM|PM))?$\/i);  if(match){    let h=parseInt(match[1],10);const m=parseInt(match[2],10);    const period=(match[4]||&#8221;).toUpperCase();    if(h===0&amp;&amp;m===0&amp;&amp;!period)return&#8217;\u2014&#8217;;    if(period===&#8217;PM&#8217;&amp;&amp;h!==12)h+=12;    else if(period===&#8217;AM&#8217;&amp;&amp;h===12)h=0;    const ampm=h&gt;=12?&#8217;PM&#8217;:&#8217;AM&#8217;,hh=h%12===0?12:h%12;    return hh+&#8217;:&#8217;+String(m).padStart(2,&#8217;0&#8242;)+&#8217; &#8216;+ampm;  }  \/\/ Already readable like &#8220;10:00 AM&#8221;  if(\/d.*[AaPp][Mm]\/.test(s))return s;  return&#8217;\u2014&#8217;;}function render(){  renderMainMapWithZoom();  updateSidebar();  buildList();}const REFRESH=5;let dCalendar=null,dashInited=false;function expandIframe(){  document.documentElement.style.height=&#8217;100vh&#8217;;  document.body.style.height=&#8217;100vh&#8217;;  document.body.style.overflow=&#8217;hidden&#8217;;  try{    var iframes=window.top.document.querySelectorAll(&#8216;iframe&#8217;);    iframes.forEach(function(f){      if(f.contentWindow===window){        f._origHeight=f._origHeight||f.style.height;        f._origPos=f._origPos||f.style.position;        f.style.cssText=&#8217;height:&#8217;+window.top.innerHeight+&#8217;px !important;position:fixed !important;top:0 !important;left:0 !important;width:100% !important;z-index:99999 !important;margin:0 !important;&#8217;;      }    });  }catch(e){}}function restoreIframe(){  document.documentElement.style.height=&#8221;;  document.body.style.height=&#8221;;  document.body.style.overflow=&#8221;;  try{    var iframes=window.top.document.querySelectorAll(&#8216;iframe&#8217;);    iframes.forEach(function(f){      if(f.contentWindow===window){        f.style.cssText=&#8221;;        if(f._origHeight) f.style.height=f._origHeight;      }    });  }catch(e){}}function showCalendar(){  document.getElementById(&#8216;dash-overlay&#8217;).classList.add(&#8216;show&#8217;);  expandIframe();  if(!dashInited){dashInited=true;setTimeout(initDash,80);}  else renderDashMap(allYatraData);}function closeDash(){document.getElementById(&#8216;dash-overlay&#8217;).classList.remove(&#8216;show&#8217;);closeDEvt();restoreIframe();}function closeDEvt(){document.getElementById(&#8216;d-evt-modal&#8217;).classList.remove(&#8216;show&#8217;);}function initDash(){  renderDashMap(allYatraData);  const calEl=document.getElementById(&#8216;d-calendar&#8217;);  dCalendar=new FullCalendar.Calendar(calEl,{    initialView:&#8217;dayGridMonth&#8217;,    headerToolbar:{left:&#8217;prev,next today&#8217;,center:&#8217;title&#8217;,right:&#8217;dayGridMonth&#8217;},    height:&#8217;auto&#8217;,    contentHeight:&#8217;auto&#8217;,    themeSystem:&#8217;standard&#8217;,    eventDisplay:&#8217;block&#8217;,    eventMaxStack:3,    dayMaxEvents:3,    eventDidMount:function(info){      info.el.style.fontSize=&#8217;9px&#8217;;      info.el.style.padding=&#8217;1px 3px&#8217;;      info.el.style.borderRadius=&#8217;3px&#8217;;      info.el.style.cursor=&#8217;pointer&#8217;;    },    dateClick:info=&gt;showCalEvtPopup(info.dateStr),    eventClick:info=&gt;{      const ds=info.event.extendedProps.dateStr||info.event.startStr||(info.event.start?info.event.start.toISOString().split(&#8216;T&#8217;)[0]:&#8221;);      if(ds) showCalEvtPopup(ds);    }  });  dCalendar.render();  updateDashUI(allYatraData);  setInterval(fetchDashData,REFRESH*60*1000);}async function fetchDashData(){  try{    const res=await fetch(`${API_URL}?t=${Date.now()}`);    const result=await res.json();    if(result.status===&#8217;success&#8217;){      allYatraData=result.data;      \/\/ Debug: log first item&#8217;s Time field to console      if(result.data&amp;&amp;result.data[0]) console.log(&#8216;[TIME DEBUG]&#8217;,JSON.stringify(result.data[0]));      if(typeof result.totalPeople===&#8217;number&#8217;&amp;&amp;result.totalPeople&gt;0){        window.statsData={totalPeople:result.totalPeople,rows:result.stats||[]};      } else if(result.stats&amp;&amp;Array.isArray(result.stats)){        const total=result.stats.reduce((sum,row)=&gt;{          const keys=Object.keys(row);const pk=keys.find(k=&gt;\/peoples*met|peoplemet|people_met|count\/i.test(k));          const n=pk?parseInt(String(row[pk]||&#8217;0&#8242;).replace(\/,\/g,&#8221;),10):0;return sum+(isNaN(n)?0:n);        },0);        window.statsData={totalPeople:total,rows:result.stats};      }      const sc=buildCitiesFromSheet(allYatraData);      if(sc&amp;&amp;sc.length){cities=sc;cur=getCurrentIndex(cities);render();}      else render();      updateInlineCal(allYatraData);      if(dashInited)updateDashUI(allYatraData);    }  }catch(e){console.warn(&#8216;Sheet fetch failed, using GQ fallback:&#8217;,e);}}function updateDashUI(data){  if(!dCalendar)return;  const today=todayISO();  dCalendar.removeAllEvents();  dCalendar.addEventSource(buildCalEvents(data));  \/\/ Update current city banner  const ce=data.find(item=&gt;dNorm(item.Date)===today);  const banner=document.getElementById(&#8216;d-current-city-text&#8217;);  if(ce){banner.textContent=`${ce.City||&#8221;} (${ce[&#8216;Event Name&#8217;]||&#8221;})`;banner.style.color=&#8217;#e53935&#8242;;}  else{banner.textContent=&#8217;No event scheduled for today.&#8217;;banner.style.color=&#8221;;}  renderDashMap(data);}let resizeTimer;function onResize(){  clearTimeout(resizeTimer);  resizeTimer=setTimeout(()=&gt;{    if(cities.length) renderMainMapWithZoom();    if(dashInited) renderDashMap(allYatraData);  },250);}window.addEventListener(&#8216;resize&#8217;, onResize);window.addEventListener(&#8216;orientationchange&#8217;, onResize);if(window.visualViewport){  window.visualViewport.addEventListener(&#8216;resize&#8217;, onResize);}async function init(){  \/\/ Pehle SHEET3_PRELOAD se instantly correct city\/date data load karo  const preloadCities = buildCitiesFromSheet(SHEET3_PRELOAD);  if(preloadCities &amp;&amp; preloadCities.length){    cities = preloadCities;    allYatraData = SHEET3_PRELOAD;    _dataLoaded = true;  } else {    cities = buildCitiesFromGQ(); \/\/ fallback only if preload fails  }  cur = getCurrentIndex(cities);  initInlineCal();  \/\/ Calendar mein bhi turant preload data populate karo  if(allYatraData.length) updateInlineCal(allYatraData);  await loadIndiaGeoJSON();  render();  \/\/ Ab live Google Sheet se fresh data fetch karo \u2014 preload ko override karega  await fetchDashData();}init();\/\/ This is a new code jQuery(document).ready(function($) {    setTimeout(function() {        if ($(&#8216;#tcb_landing_page&#8217;).length) {            $(&#8216;html, body&#8217;).animate({                scrollTop: $(&#8216;#tcb_landing_page&#8217;).offset().top            }, 800);        }    }, 1000); \/\/ 2000ms = 1 seconds});jQuery(function($) {    $(&#8216;#yatra-invite&#8217;).click(function(e) {        e.preventDefault();        var target = $(&#8216;#take-action-invite-yatra-now&#8217;);        if (target.length) {            $(&#8216;html, body&#8217;).stop().animate({                scrollTop: target.offset().top            }, 800);        }    });});0[\/tcb-script]<\/p>\n<h2 style=\"text-align: left;\">About the Climate Satyagraha&nbsp;<\/h2>\n<p dir=\"ltr\" style=\"text-align: left; color: var(--tcb-skin-color-14) !important; --tcb-applied-color: var$(--tcb-skin-color-14) !important;\"><span style=\"font-size: 15px !important; --tcb-applied-color: var$(--tcb-skin-color-14) !important;\"><\/span><span style=\"font-size: 15px !important;\">Today, humanity is consuming resources equivalent to <strong>1.8 Earths<\/strong>, while we have only one. This is not just alarming\u2014it is mathematically impossible and unsustainable. A key driver of environmental degradation and climate change is this<strong> overconsumption, which leads to both resource depletion and ecosystem degradation<\/strong>. The environment is our shared home\u2014we all live in it, breathe in it, and depend on it. Yet, through our everyday actions, we are polluting it and driving climate change. Heatwaves and floods are becoming more frequent, already affecting our health, livelihoods, and economy. <\/span><\/p>\n<p dir=\"ltr\" style=\"color: var(--tcb-skin-color-14) !important; --tcb-applied-color: var$(--tcb-skin-color-14) !important; text-align: left;\"><span style=\"font-size: 15px !important;\">Just as a fixed income demands limits on spending, a finite planet demands limits on consumption. This is <strong>Climate Satyagraha<\/strong><strong>\u2014a polite insistence on finite living on a finite Earth. <\/strong>People across the world are beginning to act. You can be part of this global, citizen-led movement for climate correction.<\/span><\/p>\n<h4 style=\"\"><strong>Bharat Climate Satyagraha Yatra<\/strong><\/h4>\n<p>Since 2020, Prof. Chetan Singh Solanki has been on the Energy Swaraj Yatra, living away from home to drive climate action.<br \/>From <strong>13 May to 20 August 2026, <\/strong>he will undertake a 1<strong>00-day Bharat Climate Satyagraha Yatra, <\/strong>covering 5,800+ km and 51 cities<strong> to mobilize 1 lakh people<\/strong> to take the Finite Living Pledge and build local Climate Satyagraha teams.<br \/>This 100-day Yatra is not designed as a lecture series or awareness campaign. Its purpose is to initiate a self-sustaining local movement in each city. Each visit is structured around three outcomes:- &nbsp;Understanding the link between overconsumption and climate change- Taking the <em>Finite Living Pledge<\/em><em><\/em><em>&#8211;&nbsp;<\/em>Building local Climate Satyagraha groups (circles)<br \/>Be part of the yatra\u2014join, host or volunteer.<\/p>\n<h2 style=\"color: rgb(247, 152, 110) !important; --tcb-applied-color: rgb(247, 152, 110) !important;\">Take Action-Invite Yatra Now!<\/h2>\n<p style=\"text-align: center;\"><span style=\"font-weight: normal;\">With the scientific truth that every product and service we use results in carbon emissions and environmental degradation, each individual is part of the problem and must be part of the solution. We are inviting individuals, institutions, and organizations to take part in the&nbsp;<\/span><span style=\"\"><strong>Finite Earth Movement <\/strong><\/span><span style=\"font-weight: normal;\">and help spread <\/span><span style=\"\"><strong>the truth that Earth and its resources are finite, therefore our consumption must be finite.<\/strong><\/span><strong>&nbsp;<\/strong><\/p>\n<h4 style=\"text-align: center;\">Host Yatra<\/h4>\n<p style=\"\">Invite Prof. Solanki&#8217;s Energy Swaraj bus to your city or institution. Organize a public gathering and spark the local movement.<\/p>\n<h4 style=\"text-align: center;\">Become FEM&#8217;Us Volunteer<\/h4>\n<p style=\"\">Join the movement as a FEM&#8217;Us Volunteer. Help organize events, spread the Finite Living Pledge, and build local circles in your community.<\/p>\n<h4 style=\"text-align: center;\">Arrange Stay &amp; Food<\/h4>\n<p style=\"\">Offer hospitality to the Yatra team. Provide meals or accommodation as they travel through your city on this sacred 100-day journey.<\/p>\n<h1 style=\"\">About Prof. Chetan Singh Solanki- Man behind the Energy Swaraj Yatra<\/h1>\n<p style=\"text-align: left;\">Prof. Chetan Singh Solanki, widely known as the \u2018Solar Man of India\u2019 and \u2018Solar Gandhi,\u2019 is a climate action leader who resigned from IIT Bombay to dedicate himself fully to climate correction. Since 2020, he has been living and traveling in a solar-powered bus on his 11-year Energy Swaraj Yatra, pledging not to return home until 2030. Through this journey, he has covered 80,000 km, delivered 1,800+ talks, engaged over 5 lakh people, and made 2 million energy literate, while launching the <strong>Finite Earth Movement (FEM)<\/strong> to mobilize 1 billion individuals worldwide for climate action by 2028. Rooted in the truth that on a finite planet, consumption must be finite, FEM provides practical tools for mindful living. Prof. Solanki\u2019s pioneering solar initiatives, global outreach, and numerous awards underscore his mission: climate correction cannot wait for policies or technologies\u2014it begins with individuals choosing finite living today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>100 DAYS YATRA- MAY 13-AUGUST 20, 2026 Bharat Climate Satyagraha Yatra&nbsp; \u0938\u0940\u092e\u093f\u0924 \u0927\u0930\u0924\u0940 \u092a\u0930 \u0938\u0940\u092e\u093f\u0924 \u091c\u0940\u0935\u0928 \u0915\u093e \u0906\u0917\u094d\u0930\u0939 Starting 13 May 2026 from Rajghat, Delhi, the 100 Days Climate Satyagraha Yatra will cover 5,800+ km across 51 cities. The goal is to mobilize 1 lakh people to take the Finite Living Pledge and build local [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","tve_updated_post":"","tve_custom_css":"","tve_user_custom_css":"","tve_globals":{},"tcb2_ready":1,"tcb_editor_enabled":1,"tve_landing_page":"bd86f3fc67210fed5b2794ad4a56d3a9","_tve_header":"216","_tve_footer":"0"},"class_list":["post-479","page","type-page","status-publish","hentry","post-wrapper","thrv_wrapper"],"_links":{"self":[{"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/pages\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/comments?post=479"}],"version-history":[{"count":465,"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/pages\/479\/revisions"}],"predecessor-version":[{"id":1706,"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/pages\/479\/revisions\/1706"}],"wp:attachment":[{"href":"https:\/\/thefiniteearth.org\/hindi\/wp-json\/wp\/v2\/media?parent=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}