{"id":1147,"date":"2026-04-07T08:37:04","date_gmt":"2026-04-07T08:37:04","guid":{"rendered":"https:\/\/staging.apps.my\/rhrn\/?page_id=1147"},"modified":"2026-04-07T09:18:59","modified_gmt":"2026-04-07T09:18:59","slug":"partner","status":"publish","type":"page","link":"https:\/\/staging.apps.my\/rhrn\/partner\/","title":{"rendered":"Partner"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1147\" class=\"elementor elementor-1147\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6759274a e-flex e-con-boxed e-con e-parent\" data-id=\"6759274a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2cc3f6d e-con-full e-flex e-con e-child\" data-id=\"2cc3f6d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-31844d35 e-flex e-con-boxed e-con e-parent\" data-id=\"31844d35\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5afb8bec e-con-full e-flex e-con e-child\" data-id=\"5afb8bec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4a0ef147 e-con-full e-flex e-con e-child\" data-id=\"4a0ef147\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca5bf43 elementor-widget__width-inherit animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"ca5bf43\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:400}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Partner<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4daf0e94 dm-single-heading-2 elementor-widget elementor-widget-heading\" data-id=\"4daf0e94\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Partnerships That Inspire and Empower Young Women Worldwide<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-32e828e1 e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"32e828e1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;animation_delay&quot;:400}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-726664e elementor-widget elementor-widget-text-editor\" data-id=\"726664e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">RHRN2 is implemented through a global consortium and national partners working collaboratively across regions. The partnership includes international organizations, regional networks, and national civil society organizations.<\/span><\/p><p><b>Global Consortium<\/b><\/p><p><span style=\"font-weight: 400;\">The global consortium brings together organizations with complementary expertise in youth leadership, advocacy, gender equality, and movement building.<\/span><\/p><p><span style=\"font-weight: 400;\">The consortium includes:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Rutgers<\/strong> \u2013 Global lead coordinating programme strategy and implementation<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>CHOICE for Youth &amp; Sexuality<\/strong> \u2013 Supporting meaningful youth participation<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Asian-Pacific Resource &amp; Research Centre for Women (ARROW)<\/strong> \u2013 Regional partner for Asia<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>RNW Media<\/strong> \u2013 Supporting public engagement and communications<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Association Marocaine de Planification Familiale (AMPF)<\/strong> \u2013 Regional implementation partner<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Reproductive Health Uganda<\/strong> \u2013 Country and regional implementation partner<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Together, the consortium works to strengthen youth-led movements, influence policies, shift social norms, and build sustainable civil society collaboration.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5926a1e e-con-full e-flex e-con e-parent\" data-id=\"5926a1e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-228ca74 elementor-widget elementor-widget-html\" data-id=\"228ca74\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551         GSAP INFINITE HORIZONTAL MARQUEE                        \u2551\n\u2551         WordPress \/ Gutenberg \/ Elementor Ready                  \u2551\n\u2551         Dependency: GSAP 3.x (loaded via CDN below)              \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n\nHOW TO USE IN WORDPRESS:\n  1. In Gutenberg: Add a \"Custom HTML\" block \u2192 paste this entire file.\n  2. In Elementor: Add an \"HTML\" widget \u2192 paste this entire file.\n  3. The GSAP CDN <script> tag at the bottom can be moved to your\n     theme's footer (functions.php) if GSAP is already registered.\n\nQUICK CUSTOMISATION CHECKLIST:\n  \u2022 Text content   \u2192 Edit the <span> tags inside .im-inner\n  \u2022 Colors         \u2192 Change --im-bg and --im-color CSS variables\n  \u2022 Font           \u2192 Change --im-font and the @import URL\n  \u2022 Size           \u2192 Change --im-font-size\n  \u2022 Speed          \u2192 Change MARQUEE_SPEED in the <script> block\n  \u2022 Direction      \u2192 Change MARQUEE_DIRECTION in the <script> block\n  \u2022 Pause on hover \u2192 Toggle PAUSE_ON_HOVER in the <script> block\n-->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     1. STYLES  \u2014 scoped under .im-wrap to avoid\n        any WordPress theme collisions\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<style>\n\/* \u2500\u2500 Google Font \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   CUSTOMISE: swap the @import URL and --im-font value together.\n   Current choice: \"Instrument Serif\" \u2014 elegant, editorial feel.\n   Free alternatives to try:\n     'Playfair Display' | 'DM Serif Display' | 'Cormorant Garamond'\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Libre+Baskerville:ital,wght@0,400..700;1,400..700&display=swap');\n\n\/* \u2500\u2500 Design Tokens \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   All visual properties live here. Override any variable to retheme\n   the entire component instantly.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-wrap {\n  \/* CUSTOMISE: background color of the marquee strip *\/\n  --im-bg:            #ffffff;\n\n  \/* CUSTOMISE: main text color *\/\n  --im-color:         #1a1612;\n\n  \/* CUSTOMISE: accent color (separator icon \/ glyph) *\/\n  --im-accent:        #c0392b;\n\n  \/* CUSTOMISE: font family \u2014 must match the @import above *\/\n  --im-font:          'Libre Baskerville', Georgia, serif;\n\n  \/* CUSTOMISE: fluid type \u2014 scales between mobile and desktop *\/\n  --im-font-size:     clamp(2rem, 5.5vw, 4.8rem);\n\n  \/* CUSTOMISE: vertical padding inside the strip *\/\n  --im-padding-v:     clamp(1rem, 2.5vw, 1rem);\n\n  \/* Internal \u2014 do not change *\/\n  --im-gap:           1em;\n}\n\n\/* \u2500\u2500 Outer wrapper \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   Position relative so the edge vignette pseudo-elements anchor\n   correctly. Margin 0\/auto keeps it centred in any WordPress layout.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-wrap {\n  position:   relative;\n  width:      100%;\n  padding:    var(--im-padding-v) 0;\n  box-sizing: border-box;\n  \/* Crisp border lines above and below the strip *\/\n  \n  \/* GPU-composited layer for smooth rendering *\/\n  will-change:   transform;\n  \/* Contain the overflow so text clips at edges *\/\n  overflow:      hidden;\n}\n\n\/* \u2500\u2500 Scrolling belt (GSAP moves this element) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   display:flex + nowrap = all items stay on one horizontal line.\n   will-change:transform hints to the browser to use the GPU.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-inner {\n  display:     flex;\n  align-items: center;\n  white-space: nowrap;    \/* \u2190 keeps everything on a single line *\/\n  will-change: transform;\n}\n\n\/* \u2500\u2500 Individual text phrase \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   flex-shrink:0 prevents any item from compressing.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-item {\n  display:        inline-flex;\n  align-items:    center;\n  flex-shrink:    0;\n  font-family:    var(--im-font);\n  font-size:      var(--im-font-size);\n  font-style:     italic;\n  font-weight:    700;\n  color:          rgba(200,200,200,.45);\n  letter-spacing: -0.015em;\n  line-height:    1;\n  padding-right:  var(--im-gap);\n  user-select:    none;\n  max-width:      320px;\n  \n}\n\n\/* \u2500\u2500 Separator glyph between phrases \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   CUSTOMISE: swap the content value for any Unicode glyph,\n   HTML entity, or even an inline SVG background-image.\n   Current: \u2726  (four-pointed star) \u2014 replace with \u00b7, \/, \u2605, etc.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-sep {\n  display:      inline-block;\n  flex-shrink:  0;\n  font-family:  var(--im-font);\n  font-style:   normal;\n  color:        var(--im-accent);\n  font-size:    0.65em;\n  margin-right: var(--im-gap);\n  line-height:  1;\n  \/* Vertical nudge so the glyph optically centres with the text cap-height *\/\n  position:     relative;\n  top:          -0.05em;\n}\n\n\/* \u2500\u2500 Left \/ right vignette fade \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   Creates a soft fade-to-background at both edges, giving the\n   marquee a professional \"infinite tunnel\" appearance.\n   CUSTOMISE: change the width (12vw) to make the fade wider\/narrower.\n   Remove these rules entirely if you prefer hard edges.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.im-wrap::before,\n.im-wrap::after {\n  content:        '';\n  position:       absolute;\n  top:    0;\n  bottom: 0;\n  width:  clamp(40px, 10vw, 140px);\n  z-index: 2;\n  pointer-events: none;\n}\n.im-wrap::before {\n  left: 0;\n  background: linear-gradient(to right, var(--im-bg) 20%, transparent);\n}\n.im-wrap::after {\n  right: 0;\n  background: linear-gradient(to left, var(--im-bg) 20%, transparent);\n}\n\n\/* \u2500\u2500 Accessibility: respect reduced-motion preference \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   The JS also reads this and sets duration to 0.\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (prefers-reduced-motion: reduce) {\n  .im-inner { animation: none !important; }\n}\n<\/style>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     2. HTML\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n  STRUCTURE EXPLAINED:\n    .im-wrap   \u2192 visible strip (clips overflow, holds vignettes)\n    .im-inner  \u2192 the belt GSAP animates horizontally\n    .im-item   \u2192 one phrase\n    .im-sep    \u2192 decorative separator between phrases\n\n  HOW MANY ITEMS TO ADD:\n    Include enough .im-item \/ .im-sep pairs so their combined\n    width clearly exceeds 100vw \u2014 typically 4\u20136 phrases for\n    desktop. The JS duplicates the set automatically so you\n    never need to manually copy-paste for the loop.\n\n  CUSTOMISE: Edit the text inside each <span class=\"im-item\">.\n             Add or remove item+sep pairs as needed.\n-->\n<div class=\"im-wrap\" role=\"marquee\" aria-label=\"Scrolling banner\" aria-live=\"off\">\n  <div class=\"im-inner\" id=\"imInner\">\n\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-01.jpg\"><\/span>\n    \n\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-02.jpg\"><\/span>\n    \n\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-03.jpg\"><\/span>\n    \n\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-04.jpg\"><\/span>\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-05.jpg\"><\/span>\n    <span class=\"im-item\"><img decoding=\"async\" src=\"https:\/\/staging.apps.my\/rhrn\/wp-content\/uploads\/2026\/04\/logo-06.jpg\"><\/span>\n    \n\n  <\/div>\n<\/div>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     3. DEPENDENCIES\n     Load GSAP from Cloudflare CDN.\n     If your WordPress theme or another plugin already\n     enqueues GSAP, remove this <script> tag to avoid\n     loading it twice.\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.5\/gsap.min.js\" integrity=\"sha512-7eHRwcbYkK4d9g\/6tD\/mhkf++eoTHwpNM9woBxtPUBWm67zeAfFC+HrdoE2GanKeocly\/VxeLvIqwvCdk7qScg==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"><\/script>\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     4. JAVASCRIPT\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n(function () {\n  'use strict';\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u25b6  CONFIGURATION \u2014 everything you need to customise is here\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n\n  \/**\n   * MARQUEE_SPEED\n   * Pixels per second the belt travels.\n   * \u2191 higher = faster   \u2193 lower = slower (try 40\u2013200)\n   * @type {number}\n   *\/\n  var MARQUEE_SPEED = 80;\n\n  \/**\n   * MARQUEE_DIRECTION\n   *  -1  \u2192  right-to-left  (standard news-ticker direction)\n   *   1  \u2192  left-to-right  (reverse \/ rewind aesthetic)\n   * @type {1|-1}\n   *\/\n  var MARQUEE_DIRECTION = -1;\n\n  \/**\n   * PAUSE_ON_HOVER\n   * When true, the belt smoothly decelerates to a stop when\n   * the user's pointer enters the component, then ramps back\n   * up when it leaves. Set to false to scroll uninterrupted.\n   * @type {boolean}\n   *\/\n  var PAUSE_ON_HOVER = true;\n\n  \/**\n   * HOVER_EASE_IN  \/ HOVER_EASE_OUT\n   * GSAP ease strings for the timeScale transitions on hover.\n   * @type {string}\n   *\/\n  var HOVER_EASE_IN  = 'power2.out';\n  var HOVER_EASE_OUT = 'power2.inOut';\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u25b6  ENGINE \u2014 no customisation needed below this line\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n\n  \/* Respect the user's OS-level reduced-motion preference *\/\n  var prefersReduced = window.matchMedia\n    ? window.matchMedia('(prefers-reduced-motion: reduce)').matches\n    : false;\n\n  if (prefersReduced) {\n    \/* Keep the text visible but static *\/\n    return;\n  }\n\n  \/* \u2500\u2500 Initialise after GSAP is available \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function waitForGSAP(cb) {\n    if (typeof gsap !== 'undefined') { cb(); }\n    else { window.setTimeout(function () { waitForGSAP(cb); }, 40); }\n  }\n\n  waitForGSAP(init);\n\n  \/* \u2500\u2500 Core setup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n  function init() {\n    var belt = document.getElementById('imInner');\n    var wrap = belt && belt.closest('.im-wrap');\n\n    if (!belt) {\n      console.warn('[Marquee] Element #imInner not found.');\n      return;\n    }\n\n    var tween = null;    \/\/ active GSAP tween\n    var cloneSet = null; \/\/ reference to the duplicated DOM nodes\n\n    build();\n\n    \/* Rebuild on resize so the loop width stays accurate *\/\n    var resizeTimer;\n    window.addEventListener('resize', function () {\n      window.clearTimeout(resizeTimer);\n      resizeTimer = window.setTimeout(function () {\n        if (tween) { tween.kill(); }\n        \/* Remove the clone set before rebuilding *\/\n        if (cloneSet) { cloneSet.forEach(function (n) { n.parentNode && n.parentNode.removeChild(n); }); }\n        cloneSet = null;\n        gsap.set(belt, { clearProps: 'x' });\n        build();\n      }, 250);\n    });\n\n    \/* \u2500\u2500 Build & start the loop \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n    function build() {\n      \/*\n       * TECHNIQUE: Clone-and-modulo\n       * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       * 1. Measure the natural pixel width of the original\n       *    set of items (the \"unit width\").\n       * 2. Duplicate that set so the belt is at least 2\u00d7 the\n       *    viewport width \u2014 this ensures the user always sees\n       *    content regardless of screen size.\n       * 3. Animate from x=0 to x=-(unitWidth) using GSAP's\n       *    `modifiers` plugin to wrap the value with modulo,\n       *    producing a perfectly seamless loop with zero DOM\n       *    jumping.\n       *\/\n\n      \/* Step 1: measure original content *\/\n      var unitWidth = belt.scrollWidth;   \/* px width of one phrase set *\/\n\n      \/* Step 2: how many clone sets do we need? *\/\n      var copies = Math.ceil((window.innerWidth * 2) \/ unitWidth) + 1;\n\n      \/* Create and append clone sets *\/\n      cloneSet = [];\n      for (var i = 0; i < copies; i++) {\n        var clone = belt.innerHTML; \/* clone as HTML string \u2014 lightweight *\/\n        var frag  = document.createDocumentFragment();\n        var tmp   = document.createElement('div');\n        tmp.innerHTML = clone;\n        while (tmp.firstChild) {\n          var node = tmp.firstChild;\n          cloneSet.push(node);\n          frag.appendChild(node);\n        }\n        belt.appendChild(frag);\n      }\n\n      \/* Step 3: derive duration from pixel width & desired speed *\/\n      var duration = unitWidth \/ MARQUEE_SPEED;\n\n      \/* Starting x depends on direction:\n         \u2192  direction -1 (left): start at 0, animate to -unitWidth\n         \u2192  direction  1 (right): start at -unitWidth, animate to 0  *\/\n      var startX = MARQUEE_DIRECTION === 1 ? -unitWidth : 0;\n      var endX   = MARQUEE_DIRECTION === 1 ? 0          : -unitWidth;\n\n      gsap.set(belt, { x: startX });\n\n      tween = gsap.to(belt, {\n        x:        endX,\n        duration: duration,\n        ease:     'none',           \/* linear \u2014 mandatory for seamless scroll *\/\n        repeat:   -1,               \/* infinite repeat *\/\n        modifiers: {\n          \/*\n           * The modifiers plugin intercepts the computed x value\n           * every frame BEFORE it's applied to the DOM.\n           * Wrapping with % unitWidth means the belt snaps back\n           * to the origin invisibly \u2014 no DOM cloning jumps.\n           *\/\n          x: gsap.utils.unitize(function (x) {\n            return parseFloat(x) % unitWidth;\n          })\n        }\n      });\n\n      \/* \u2500\u2500 Hover: smooth pause \/ resume \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n      if (PAUSE_ON_HOVER && wrap) {\n        wrap.addEventListener('mouseenter', function () {\n          gsap.to(tween, {\n            timeScale: 0,\n            duration:  0.5,\n            ease:      HOVER_EASE_IN,\n            overwrite: true\n          });\n        });\n        wrap.addEventListener('mouseleave', function () {\n          gsap.to(tween, {\n            timeScale: 1,\n            duration:  0.8,\n            ease:      HOVER_EASE_OUT,\n            overwrite: true\n          });\n        });\n      }\n\n    } \/* end build() *\/\n\n  } \/* end init() *\/\n\n}()); \/* end IIFE *\/\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Partner Partnerships That Inspire and Empower Young Women Worldwide RHRN2 is implemented through a global consortium and national partners working collaboratively across regions. The partnership includes international organizations, regional networks, and national civil society organizations. Global Consortium The global consortium brings together organizations with complementary expertise in youth leadership, advocacy, gender equality, and movement building. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1147","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/pages\/1147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/comments?post=1147"}],"version-history":[{"count":16,"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/pages\/1147\/revisions"}],"predecessor-version":[{"id":1170,"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/pages\/1147\/revisions\/1170"}],"wp:attachment":[{"href":"https:\/\/staging.apps.my\/rhrn\/wp-json\/wp\/v2\/media?parent=1147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}