{"id":21507,"date":"2026-06-01T12:26:25","date_gmt":"2026-06-01T12:26:25","guid":{"rendered":"https:\/\/www.greenpeace.org\/india\/?page_id=21507"},"modified":"2026-08-02T06:41:22","modified_gmt":"2026-08-02T06:41:22","slug":"bengaluru-rising-2","status":"publish","type":"page","link":"https:\/\/www.greenpeace.org\/india\/en\/bengaluru-rising-2\/","title":{"rendered":"What kind of city do you want to wake up to every day?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One where life is measured in traffic jams and construction sites, or one where public transport, trees, lakes, and neighbourhoods are designed for people to thrive?<\/p>\n\n<p class=\"wp-block-paragraph\">Hundreds of Bengalureans have already shared their vision. Now it&#8217;s your turn.<\/p>\n\n<p class=\"wp-block-paragraph\">This is your city. Add your vision and help shape the future Bengaluru deserves.<\/p>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\"><script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_7' ><div id='gf_7' class='gform_anchor' tabindex='-1'><\/div><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_7' id='gform_7'  action='\/india\/en\/wp-json\/wp\/v2\/pages\/21507#gf_7' data-formid='7' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_7' class='gform_fields top_label form_sublabel_above description_above validation_below'><div id=\"field_7_3\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_above gfield--has-description field_description_above field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_3'>X\/Twitter<\/label><div class='gfield_description' id='gfield_description_7_3'>This field is for validation purposes and should be left unchanged.<\/div><div class='ginput_container'><input name='input_3' id='input_7_3' type='text' value='' autocomplete='new-password'\/><\/div><\/div><fieldset id=\"field_7_2\" class=\"gfield gfield--type-checkbox gfield--type-choice gfield--input-type-checkbox gfield--width-full field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible custom-control\"  data-field-class=\"custom-control\" ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Select your top 3 choices<\/legend><div class='ginput_container ginput_container_checkbox'><div class='gfield_checkbox ' id='input_7_2'><div class='gchoice gchoice_7_2_1'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.1' type='checkbox'  value='Shade and trees'  id='choice_7_2_1'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_1' id='label_7_2_1' class='gform-field-label gform-field-label--type-inline'>Shade and trees<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_2'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.2' type='checkbox'  value='Reliable public transport'  id='choice_7_2_2'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_2' id='label_7_2_2' class='gform-field-label gform-field-label--type-inline'>Reliable public transport<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_3'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.3' type='checkbox'  value='Cool weather'  id='choice_7_2_3'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_3' id='label_7_2_3' class='gform-field-label gform-field-label--type-inline'>Cool weather<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_4'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.4' type='checkbox'  value='Clean Lakes'  id='choice_7_2_4'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_4' id='label_7_2_4' class='gform-field-label gform-field-label--type-inline'>Clean Lakes<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_5'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.5' type='checkbox'  value='Parks and Gardens'  id='choice_7_2_5'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_5' id='label_7_2_5' class='gform-field-label gform-field-label--type-inline'>Parks and Gardens<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_6'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.6' type='checkbox'  value='Less traffic'  id='choice_7_2_6'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_6' id='label_7_2_6' class='gform-field-label gform-field-label--type-inline'>Less traffic<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_7'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.7' type='checkbox'  value='Clean air'  id='choice_7_2_7'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_7' id='label_7_2_7' class='gform-field-label gform-field-label--type-inline'>Clean air<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_8'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.8' type='checkbox'  value='Less noise'  id='choice_7_2_8'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_8' id='label_7_2_8' class='gform-field-label gform-field-label--type-inline'>Less noise<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_9'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.9' type='checkbox'  value='Time with family'  id='choice_7_2_9'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_9' id='label_7_2_9' class='gform-field-label gform-field-label--type-inline'>Time with family<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_11'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.11' type='checkbox'  value='Safe streets at night'  id='choice_7_2_11'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_11' id='label_7_2_11' class='gform-field-label gform-field-label--type-inline'>Safe streets at night<\/label>\n\t\t\t\t\t\t\t<\/div><div class='gchoice gchoice_7_2_12'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_2.12' type='checkbox'  value='Community Spaces'  id='choice_7_2_12'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_7_2_12' id='label_7_2_12' class='gform-field-label gform-field-label--type-inline'>Community Spaces<\/label>\n\t\t\t\t\t\t\t<\/div><\/div><\/div><\/fieldset><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_7' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Submit'  \/> <input type='hidden' name='gform_ajax' value='form_id=7&amp;title=&amp;description=&amp;tabindex=0&amp;theme=gravity-theme&amp;styles={&quot;theme&quot;:&quot;gravity-theme&quot;,&quot;inputPrimaryColor&quot;:&quot;#204ce5&quot;}&amp;hash=ffc73b52f5e205aee349b2da83178ebd' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_7' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_7' id='gform_theme_7' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_7' id='gform_style_settings_7' value='{&quot;theme&quot;:&quot;gravity-theme&quot;,&quot;inputPrimaryColor&quot;:&quot;#204ce5&quot;}' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_7' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='7' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='z1+v+0rOnSLy\/ybNWxvqLHfNRlaf87WmLNiJWmLKW29SsoAfET6QrLDmo\/5OruQLZDmHtp+Qnhp7VExO3br4jalDpQKfTJF8qQ\/0h1PFfV0GAts=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_7' value='WyJ7XCIyLjFcIjpcIjBkMzdmNjJkNDM5MWRmNmNjYjg1MGEyYzU5MWUzZDE2XCIsXCIyLjJcIjpcImQ2Y2UzZWI2ZDVmMDZmNGZkM2MzNzY4NTg3MTEyZDJkXCIsXCIyLjNcIjpcIjFkNjU3Mzc3YWM1OTRjMTUwOWRjMjJmM2M3M2UwY2I3XCIsXCIyLjRcIjpcIjRjNzMyNzcwZjRlZWE0N2I0OTJlZDQzOGMzYzBmMGZlXCIsXCIyLjVcIjpcIjg0OWE1NWQ2MGNlMDAxN2VmY2FjNDE4NGUwY2UwMTRkXCIsXCIyLjZcIjpcImUxNTg1Njg4YTUzNzc2MWU4MDRiNWQ3NmEwMTBhN2RmXCIsXCIyLjdcIjpcImVkMjMzNmZkZjlhMTcwYWE4NTg3NDA1NjA4NWI0MWM0XCIsXCIyLjhcIjpcIjUwOGY5ZjU4NDFkZWM1MjE1OGFjZmI2YWU1ZGYyZGJkXCIsXCIyLjlcIjpcIjc3ZmU2ZjIxNjdhZDIwZDhkMjBhZDEyMzZiNDhiODA0XCIsXCIyLjExXCI6XCIyZjE2YTA1ZDBmNjZjYzY2OGM4ZTFiMDI4Yzg4OTc0NFwiLFwiMi4xMlwiOlwiZjM2YWM2YzhiYmYzZGRhYjVhOTIxOTNmNzRjNGEyZGJcIn0iLCJjZWRmY2RmYmVkYzRlZWM3ZDg2YzZlNDBjMjIzMjExOSJd' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_7' id='gform_target_page_number_7' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_7' id='gform_source_page_number_7' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"ak_\"><label>&#916;<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"ak_js\" value=\"0\"\/><script>\ndocument.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );\n<\/script>\n<\/p><\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_7' id='gform_ajax_frame_7' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 7, 'https:\/\/www.greenpeace.org\/india\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_7').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_7');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_7').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_7').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_7').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_7').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery('#gform_wrapper_7').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_7').val();gformInitSpinner( 7, 'https:\/\/www.greenpeace.org\/india\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [7, current_page]);window['gf_submitting_7'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_7').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_7').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [7]);window['gf_submitting_7'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_7').text());}else{jQuery('#gform_7').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"7\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_7\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_7\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_7\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 7, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.8.5\/d3.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3-cloud\/1.2.7\/d3.layout.cloud.min.js\"><\/script>\n    <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Gorditas:wght@400;700&family=Special+Gothic+Condensed+One&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');\n    .special-gothic-condensed-one-regular {\n          font-family: \"Special Gothic Condensed One\", sans-serif;\n          font-weight: 400;\n          font-style: normal;\n        }\n\n        .cloud-wrapper {\n            width: 100%;\n            aspect-ratio: 16 \/ 10;\n            border-radius: 1.5rem;\n            border: 1px solid #e2e8f0;\n            position: relative;\n            background-color: #ffffff;\n            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n        }\n        svg text {\n            transition: fill 0.3s ease, opacity 0.3s ease;\n        }\n        svg text:hover {\n            opacity: 0.8;\n            cursor: auto;\n        }\n    <\/style>\n    <div id=\"word-cloud-container\" class=\"cloud-wrapper d-flex align-items-center justify-content-center p-3\"><\/div>\n\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\n\n    <script>\n        const defaultSourceData = {\n    \"entry_count\": 6,\n    \"field_data\": {\n        \"2\": {\n            \"Shade and trees\": 0,\n            \"Reliable public transport\": 0,\n            \"Cool weather\": 0,\n            \"Clean Lakes\": 0,\n            \"Parks and gardens\": 0,\n            \"Less traffic\": 0,\n            \"Clean air\": 0,\n            \"Less noise\": 0,\n            \"Time with family\": 0,\n            \"Safe streets at night\": 0,\n            \"Community Spaces\": 0\n        }\n    },\n    \"status\": \"complete\",\n    \"timestamp\": 1780896095,\n    \"labels\": {\n        \"1\": {\n            \"label\": \"word cloud\",\n            \"choices\": {\n                \"Shade and trees\": \"Shade and trees\",\n                \"Reliable public transport\": \"Reliable public transport\",\n                \"Cool weather\": \"Cool weather\",\n                \"Clean Lakes\": \"Clean Lakes\",\n                \"Parks and gardens\": \"Parks and gardens\",\n                \"Less traffic\": \"Less traffic\",\n                \"Clean air\": \"Clean air\",\n                \"Less noise\": \"Less noise\",\n                \"Time with family\": \"Time with family\",\n                \"Safe streets at night\": \"Safe streets at night\",\n                \"Community Spaces\": \"Community Spaces\"\n            }\n        }\n    }\n};\n\n        let dataset = [];\n\n        let maxFontSize = 200; \n\nconst colors =[\"#DC2626\",\"#F97316\",\"#FBBF24\",\"#059669\",\"#0D9488\",\"#2563EB\",\"#7C3AED\",\"#DB2777\",\"#4B5563\",\"#B45309\"];\n        function parseJsonToDataset(rawJson) {\n            try {\n                let rawChoices = null;\n\n                \/\/ Check standard structure: field_data[\"1\"]\n                if (rawJson && rawJson.field_data && rawJson.field_data[\"2\"]) {\n                    rawChoices = rawJson.field_data[\"2\"];\n                } else if (rawJson && typeof rawJson === 'object') { \n                    \/\/ Fallback to checking if the object is already a flat dictionary of weights\n                    rawChoices = rawJson;\n                }\n\n                if (!rawChoices || typeof rawChoices !== 'object') {\n                    throw new Error(\"Unable to locate valid choice mapping in the JSON response.\");\n                }\n                \n                return Object.entries(rawChoices).map(([text, value]) => ({ \n                    text: text, \n                    size: Number(value) \n                }));\n            } catch (err) {\n                throw new Error(\"Data parsing failed: \" + err.message);\n            }\n        }\n\n        function renderCloud() {\n            const container = document.getElementById('word-cloud-container');\n\n            const svgs = container.querySelectorAll('svg');\n            svgs.forEach(svg => svg.remove());\n\n            const width = container.clientWidth;\n            const height = container.clientHeight;\n\n            if (dataset.length === 0) {\n                container.insertAdjacentHTML('beforeend', '<p class=\"text-muted text-center m-0\">No data available<\/p>');\n                return;\n            }\n\n            const sizes = dataset.map(w => w.size);\n            const minSize = Math.min(...sizes);\n            const maxSize = Math.max(...sizes);\n\n            const fontSizeScale = d3.scaleLinear()\n                .domain([minSize, maxSize])\n                .range([24, maxFontSize]); \n\n            const layoutWords = dataset.map(w => ({\n                text: w.text,\n                size: fontSizeScale(w.size)\n            }));\n\n            const cloudLayout = d3.layout.cloud()\n                .size([width - 20, height - 20]) \n                .words(layoutWords)\n                .padding(5)\n                .rotate(() => 0) \n                .font(\"Inter\")\n                .fontSize(d => d.size)\n                .on(\"end\", (renderedWords) => {\n                    if (renderedWords.length < dataset.length) {\n                        maxFontSize -= 4; \n                        renderCloud();\n                        return;\n                    }\n                    draw(renderedWords, width, height);\n                });\n\n            cloudLayout.start();\n        }\n\n        function draw(words, width, height) {\n            const svg = d3.select(\"#word-cloud-container\")\n                .append(\"svg\")\n                .attr(\"width\", width)\n                .attr(\"height\", height)\n                .attr(\"viewBox\", `0 0 ${width} ${height}`)\n                .attr(\"class\", \"w-100 h-100\")\n                .append(\"g\")\n                .attr(\"transform\", `translate(${width \/ 2}, ${height \/ 2})`);\n\n            svg.selectAll(\"text\")\n                .data(words)\n                .enter().append(\"text\")\n                .style(\"font-size\", d => d.size + \"px\")\n                .style(\"font-family\", \"Special Gothic Condensed One\")\n                .style(\"font-weight\", \"500\")\n                .style(\"fill\", (d, i) => colors[i % colors.length])\n                .attr(\"text-anchor\", \"middle\")\n                .attr(\"transform\", d => `translate(${d.x}, ${d.y})`)\n                .text(d => d.text);\n        }\n\n        async function fetchSourceData() {\n            const url = \"https:\/\/www.greenpeace.org\/india\/wp-json\/gf\/v2\/forms\/7\/results\/?nocache=1\";\n            const headerName = \"Authorization\";\n            const headerValue = \"Basic Y2tfYzUwYTg2MGRlNjZiYWUwMmY5MDNmNzBlM2RmMmY1N2M0ODZhYTljNzpjc19lMWZlMjkzZjJlNWFhZDg1ZjBkYjRkYWIwYjE3MTE5NGUyOTEwYTMx\";\n\n            try {\n                const headers = new Headers();\n                if (headerName && headerValue) {\n                    headers.append(headerName.trim(), headerValue.trim());\n                }\n\n                const response = await fetch(url, {\n                    method: 'GET',\n                    headers: headers\n                });\n\n                if (!response.ok) {\n                    throw new Error(`Server status ${response.status}: ${response.statusText}`);\n                }\n\n                const jsonResult = await response.json();\n                console.log(jsonResult)\n                dataset = parseJsonToDataset(jsonResult);\n                maxFontSize = 200; \n\n         \n\n                renderCloud();\n            } catch (error) { \n                console.error(\"API Fetch Failed:\", error);\n                dataset = parseJsonToDataset(defaultSourceData);\n                maxFontSize = 200;\n                renderCloud();\n            }\n        }\n\n        window.onload = function() {\n            const urlParams = new URLSearchParams(window.location.search);\n            \n            const shouldFetch = urlParams.get('wordcloud');\n\n            if (shouldFetch) {\n                fetchSourceData();\n            } else {\n                dataset = parseJsonToDataset(defaultSourceData);\n                renderCloud();\n            }\n        };\n\n        let resizeTimer;\n        window.addEventListener('resize', () => {\n            clearTimeout(resizeTimer);\n            resizeTimer = setTimeout(() => {\n                maxFontSize = 200; \n                renderCloud();\n            }, 200);\n        });\n    <\/script>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>One where life is measured in traffic jams and construction sites, or one where public transport, trees, lakes, and neighbourhoods are designed for people to thrive? Hundreds of Bengalureans have already shared their vision. Now it&#8217;s your turn. This is your city. Add your vision and help shape the future Bengaluru deserves.<\/p>\n","protected":false},"author":65,"featured_media":20985,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ep_exclude_from_search":false,"p4_hide_page_title_checkbox":"","p4_title":"","p4_subtitle":"","p4_description":"","background_image_id":"","background_image":"","p4_button_title":"","p4_button_link":"","p4_button_link_checkbox":"","p4_og_title":"","p4_og_description":"","p4_og_image":"","p4_og_image_id":"","p4_seo_canonical_url":"","p4_campaign_name":"","p4_local_project":"","p4_basket_name":"","p4_department":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-21507","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/pages\/21507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/comments?post=21507"}],"version-history":[{"count":20,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/pages\/21507\/revisions"}],"predecessor-version":[{"id":22420,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/pages\/21507\/revisions\/22420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/media\/20985"}],"wp:attachment":[{"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/media?parent=21507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/categories?post=21507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.greenpeace.org\/india\/en\/wp-json\/wp\/v2\/tags?post=21507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}