{"id":384,"date":"2020-03-23T08:36:03","date_gmt":"2020-03-23T08:36:03","guid":{"rendered":"https:\/\/www.rchfullstack.com\/index.php\/home\/"},"modified":"2026-03-05T10:20:49","modified_gmt":"2026-03-05T09:20:49","slug":"home","status":"publish","type":"page","link":"https:\/\/www.rchfullstack.com\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"384\" class=\"elementor elementor-384\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-540f8b2 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"540f8b2\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/www.rchfullstack.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/rchfullstack_intro_l.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" role=\"presentation\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d793f28\" data-id=\"d793f28\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b0b8684 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default\" data-id=\"b0b8684\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-1e508ec\" data-id=\"1e508ec\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69733e7 e-flex e-con-boxed e-con e-parent\" data-id=\"69733e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-463f125 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"463f125\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">V\u00c4LKOMMEN TILL<br>RCH FULLSTACK!<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c8815e elementor-widget elementor-widget-heading\" data-id=\"8c8815e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Jag hj\u00e4lper dig l\u00f6sa problemet \u2013 enkelt, direkt och med r\u00e4tt AI-verktyg\n\n<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eea2e1d elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"eea2e1d\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"takontaktknappett\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md\" href=\"#kontakt\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Ta kontakt<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-7fb00dd\" data-id=\"7fb00dd\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f43ea38 e-flex e-con-boxed e-con e-parent\" data-id=\"f43ea38\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c5c2f38 elementor-widget elementor-widget-html\" data-id=\"c5c2f38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\nmodel-viewer {\r\n  width: 100%;\r\n  height: 600px;\r\n  background-color: #ffffff01;\r\n\r\n}\r\n<\/style>\r\n<model-viewer src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/07\/rch_fullstack_logo_v1.glb\" ar ar-modes=\"webxr scene-viewer quick-look\" camera-controls poster=\"poster.webp\" shadow-intensity=\"1\" auto-rotate> \r\n<div class=\"progress-bar hide\" slot=\"progress-bar\">\r\n<div class=\"update-bar\"><\/div>\r\n<\/model-viewer>\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\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-45e8bd8 e-flex e-con-boxed e-con e-parent\" data-id=\"45e8bd8\" 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\t\t<div class=\"elementor-element elementor-element-1bb7a55 elementor-widget elementor-widget-text-editor\" data-id=\"1bb7a55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>St\u00e5r din verksamhet inf\u00f6r f\u00f6r\u00e4ndring?<\/p><p>\u00a0<\/p><p>AI f\u00f6r\u00e4ndrar hur f\u00f6retag arbetar. Snabbare \u00e4n de flesta hinner anpassa sig.<br \/>Jag hj\u00e4lper dig f\u00f6rst\u00e5 vad det betyder f\u00f6r just dig.<\/p><p>Konkret och utan on\u00f6dig komplexitet.<\/p>\t\t\t\t\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\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-41632a2 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"41632a2\" data-element_type=\"section\" data-e-type=\"section\" id=\"losningar\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-643cba7\" data-id=\"643cba7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-c53aabc losningar elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c53aabc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-2535e90\" data-id=\"2535e90\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4f2aff5 elementor-widget elementor-widget-heading\" data-id=\"4f2aff5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">L\u00f6sningar<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8030ba elementor-widget elementor-widget-text-editor\" data-id=\"b8030ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Med erfarenhet inom b\u00e5de front-end och back-end hittar jag r\u00e4tt l\u00f6sning f\u00f6r just ditt behov.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-66c24a2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"66c24a2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-efbcc0b\" data-id=\"efbcc0b\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d5068cb elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"d5068cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-user-lock\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab291d2 elementor-widget elementor-widget-heading\" data-id=\"ab291d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">S\u00e4kerhet<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-574aea5 elementor-widget elementor-widget-text-editor\" data-id=\"574aea5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>S\u00e4kerhetskontroll med AI \u2013 identifierar s\u00e5rbarheter i kod och system som annars missas.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-102249d\" data-id=\"102249d\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bb6c83f elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"bb6c83f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-compress-alt\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c417e6d elementor-widget elementor-widget-heading\" data-id=\"c417e6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">API<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f00764 elementor-widget elementor-widget-text-editor\" data-id=\"5f00764\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Koppla ihop dina system med r\u00e4tt API \u2013 spara tid och resurser genom att anv\u00e4nda det som redan finns.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-fdcf86c\" data-id=\"fdcf86c\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ac5935 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"0ac5935\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-robot\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e58b3b elementor-widget elementor-widget-heading\" data-id=\"2e58b3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">AI &amp; Agenter<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d07621 elementor-widget elementor-widget-text-editor\" data-id=\"2d07621\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Fr\u00e5n analys till handling \u2013 AI och agenter som arbetar \u00e5t dig dygnet runt, tar beslut och levererar resultat medans du fokuserar p\u00e5 tillv\u00e4xt.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-df89238 e-con-full animated-slow e-flex elementor-invisible e-con e-parent\" data-id=\"df89238\" data-element_type=\"container\" data-e-type=\"container\" id=\"case\" data-settings=\"{&quot;animation&quot;:&quot;slideInLeft&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36a97f7 elementor-widget elementor-widget-heading\" data-id=\"36a97f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">FRONT-END<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c46d0c elementor-widget__width-initial elementor-arrows-position-inside elementor-widget elementor-widget-image-carousel\" data-id=\"4c46d0c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;3&quot;,&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Bildkarusell\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_rubotic_w_logo.png\" alt=\"rhc_rubotic_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_rubotnic_w_logo.png\" alt=\"rhc_rubotnic_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_savetellus_w_logo.png\" alt=\"rhc_savetellus_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_xgene_w_logo.png\" alt=\"rhc_xgene_w_logo\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-38986cc e-con-full animated-slow e-flex elementor-invisible e-con e-parent\" data-id=\"38986cc\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInRight&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a656d34 elementor-widget elementor-widget-heading\" data-id=\"a656d34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">BACK-END<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4bdcd06 elementor-widget__width-initial elementor-arrows-position-inside elementor-widget elementor-widget-image-carousel\" data-id=\"4bdcd06\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;3&quot;,&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;arrows&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Bildkarusell\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_xgene_w_logo.png\" alt=\"rhc_xgene_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_savetellus_w_logo.png\" alt=\"rhc_savetellus_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_rubotnic_w_logo.png\" alt=\"rhc_rubotnic_w_logo\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 av 4\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2023\/04\/rhc_rubotic_w_logo.png\" alt=\"rhc_rubotic_w_logo\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-808fded e-flex e-con-boxed e-con e-parent\" data-id=\"808fded\" data-element_type=\"container\" data-e-type=\"container\" id=\"ommig\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dbe75fa elementor-widget elementor-widget-heading\" data-id=\"dbe75fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Klicka p\u00e5 sf\u00e4ren<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cd2340 elementor-widget elementor-widget-html\" data-id=\"4cd2340\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html>\r\n<head>\r\n  <style>\r\n    #energy-sphere-container {\r\n      width: 100%;\r\n      height: 500px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      background-color: #ffffff00;\r\n      cursor: pointer;\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div id=\"energy-sphere-container\"><\/div>\r\n\r\n  <!-- Load Three.js from CDN -->\r\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\r\n  \r\n  <script>\r\n    \/\/ Create a texture using canvas instead of loading from URL\r\n    function createCircleTexture() {\r\n      const canvas = document.createElement('canvas');\r\n      canvas.width = 64;\r\n      canvas.height = 64;\r\n      const context = canvas.getContext('2d');\r\n      \r\n      \/\/ Draw a white circle\r\n      context.beginPath();\r\n      context.arc(32, 32, 30, 0, Math.PI * 2);\r\n      context.closePath();\r\n      context.fillStyle = 'white';\r\n      context.fill();\r\n      \r\n      \/\/ Create a texture from the canvas\r\n      const texture = new THREE.CanvasTexture(canvas);\r\n      return texture;\r\n    }\r\n  \r\n    \/\/ Pulsating Plasma Sphere with Water Ripple Effect and Audio\r\n    function createEnergySphere(containerId) {\r\n      \/\/ Scene setup\r\n      const container = document.getElementById(containerId);\r\n      const width = container.clientWidth;\r\n      const height = container.clientHeight;\r\n      \r\n      \/\/ Create scene, camera and renderer\r\n      const scene = new THREE.Scene();\r\n      const camera = new THREE.PerspectiveCamera(75, width \/ height, 0.1, 1000);\r\n      camera.position.z = 5;\r\n      \r\n      const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\r\n      renderer.setSize(width, height);\r\n      renderer.setPixelRatio(window.devicePixelRatio);\r\n      renderer.setClearColor(0x000000, 0);\r\n      container.appendChild(renderer.domElement);\r\n      \r\n      \/\/ Create point sprite texture\r\n      const pointTexture = createCircleTexture();\r\n      \r\n      \/\/ Lighting for glow effects\r\n      const ambientLight = new THREE.AmbientLight(0x111111);\r\n      scene.add(ambientLight);\r\n      \r\n      \/\/ Define color palette with the requested blue color #0E5287\r\n      const mainColor = new THREE.Color(0x0E5287); \/\/ Main blue color\r\n      const colorPalette = [\r\n        mainColor, \/\/ Deep blue\r\n        new THREE.Color(0x1E6A9F), \/\/ Lighter blue\r\n        new THREE.Color(0x4A8BC2)  \/\/ Even lighter blue\r\n      ];\r\n      \r\n      \/\/ Water ripple state\r\n      let ripples = []; \/\/ Array to store multiple ripples\r\n      \r\n      \/\/ Audio setup\r\n      let audioContext;\r\n      let analyser;\r\n      let dataArray;\r\n      let audio;\r\n      let source;\r\n      let isPlaying = false;\r\n      \r\n      \/\/ Initialize audio\r\n      function initAudio() {\r\n        if (!audioContext) {\r\n          audioContext = new (window.AudioContext || window.webkitAudioContext)();\r\n          analyser = audioContext.createAnalyser();\r\n          analyser.fftSize = 256;\r\n          dataArray = new Uint8Array(analyser.frequencyBinCount);\r\n          \r\n          audio = new Audio('https:\/\/www.rchfullstack.com\/wp-content\/uploads\/2026\/03\/rch_fullstack_sound.mp3');\r\n          audio.crossOrigin = 'anonymous';\r\n          \r\n          source = audioContext.createMediaElementSource(audio);\r\n          source.connect(analyser);\r\n          analyser.connect(audioContext.destination);\r\n          \r\n          audio.addEventListener('ended', () => {\r\n            isPlaying = false;\r\n          });\r\n        }\r\n      }\r\n      \r\n      \/\/ Core sphere - using the blue color\r\n      const sphereGeometry = new THREE.SphereGeometry(1.8, 64, 64);\r\n      const sphereMaterial = new THREE.MeshPhongMaterial({\r\n        color: 0x0E5287,\r\n        emissive: 0x051E33,\r\n        transparent: true,\r\n        opacity: 0.4\r\n      });\r\n      const sphere = new THREE.Mesh(sphereGeometry, sphereMaterial);\r\n      scene.add(sphere);\r\n      \r\n      \/\/ Create surface glow layer with water effect\r\n      const surfaceParticleCount = 6000;\r\n      const surfaceGeometry = new THREE.BufferGeometry();\r\n      const surfacePositions = new Float32Array(surfaceParticleCount * 3);\r\n      const surfaceSizes = new Float32Array(surfaceParticleCount);\r\n      const surfaceColors = new Float32Array(surfaceParticleCount * 3);\r\n      const originalPositions = new Float32Array(surfaceParticleCount * 3); \/\/ Store original positions\r\n      \r\n      \/\/ Initialize surface particles on sphere surface\r\n      for (let i = 0; i < surfaceParticleCount; i++) {\r\n        \/\/ Distribute evenly on sphere surface\r\n        const phi = Math.acos(-1 + (2 * i) \/ surfaceParticleCount);\r\n        const theta = Math.sqrt(surfaceParticleCount * Math.PI) * phi;\r\n        \r\n        const radius = 1.95; \/\/ Slightly larger than core sphere\r\n        \r\n        \/\/ Convert to Cartesian coordinates\r\n        const x = radius * Math.sin(phi) * Math.cos(theta);\r\n        const y = radius * Math.sin(phi) * Math.sin(theta);\r\n        const z = radius * Math.cos(phi);\r\n        \r\n        surfacePositions[i * 3] = x;\r\n        surfacePositions[i * 3 + 1] = y;\r\n        surfacePositions[i * 3 + 2] = z;\r\n        \r\n        \/\/ Store original positions\r\n        originalPositions[i * 3] = x;\r\n        originalPositions[i * 3 + 1] = y;\r\n        originalPositions[i * 3 + 2] = z;\r\n        \r\n        \/\/ Larger particles for more glow\r\n        surfaceSizes[i] = Math.random() * 0.15 + 0.08;\r\n        \r\n        \/\/ Color assignment with blue variations\r\n        let colorIndex;\r\n        if (y > 0.5) {\r\n          colorIndex = 2; \/\/ Lighter blue on top\r\n        } else if (x < 0) {\r\n          colorIndex = 1; \/\/ Medium blue on left\r\n        } else {\r\n          colorIndex = 0; \/\/ Main blue on right bottom\r\n        }\r\n        \r\n        const color = colorPalette[colorIndex];\r\n        surfaceColors[i * 3] = color.r;\r\n        surfaceColors[i * 3 + 1] = color.g;\r\n        surfaceColors[i * 3 + 2] = color.b;\r\n      }\r\n      \r\n      surfaceGeometry.setAttribute('position', new THREE.BufferAttribute(surfacePositions, 3));\r\n      surfaceGeometry.setAttribute('size', new THREE.BufferAttribute(surfaceSizes, 1));\r\n      surfaceGeometry.setAttribute('color', new THREE.BufferAttribute(surfaceColors, 3));\r\n      \r\n      \/\/ Simple surface material (no complex shaders initially)\r\n      const surfaceMaterial = new THREE.PointsMaterial({\r\n        size: 0.1,\r\n        map: pointTexture,\r\n        blending: THREE.AdditiveBlending,\r\n        depthWrite: false,\r\n        transparent: true,\r\n        vertexColors: true\r\n      });\r\n      \r\n      const surfaceParticles = new THREE.Points(surfaceGeometry, surfaceMaterial);\r\n      scene.add(surfaceParticles);\r\n      \r\n      \/\/ Add glow layers with blue colors\r\n      const glowLayers = [];\r\n      colorPalette.forEach((color, index) => {\r\n        const glowGeometry = new THREE.SphereGeometry(2.05 + index * 0.05, 32, 32);\r\n        const glowMaterial = new THREE.MeshBasicMaterial({\r\n          color: color,\r\n          transparent: true,\r\n          opacity: 0.08,\r\n          side: THREE.BackSide\r\n        });\r\n        \r\n        const glowMesh = new THREE.Mesh(glowGeometry, glowMaterial);\r\n        scene.add(glowMesh);\r\n        glowLayers.push(glowMesh);\r\n      });\r\n      \r\n      \/\/ Add inner particles with blue colors\r\n      const innerParticleCount = 800;\r\n      const innerGeometry = new THREE.BufferGeometry();\r\n      const innerPositions = new Float32Array(innerParticleCount * 3);\r\n      const innerColors = new Float32Array(innerParticleCount * 3);\r\n      \r\n      for (let i = 0; i < innerParticleCount; i++) {\r\n        const radius = Math.random() * 1.6;\r\n        const theta = Math.random() * Math.PI * 2;\r\n        const phi = Math.random() * Math.PI;\r\n        \r\n        innerPositions[i * 3] = radius * Math.sin(phi) * Math.cos(theta);\r\n        innerPositions[i * 3 + 1] = radius * Math.sin(phi) * Math.sin(theta);\r\n        innerPositions[i * 3 + 2] = radius * Math.cos(phi);\r\n        \r\n        const color = colorPalette[Math.floor(Math.random() * colorPalette.length)];\r\n        innerColors[i * 3] = color.r;\r\n        innerColors[i * 3 + 1] = color.g;\r\n        innerColors[i * 3 + 2] = color.b;\r\n      }\r\n      \r\n      innerGeometry.setAttribute('position', new THREE.BufferAttribute(innerPositions, 3));\r\n      innerGeometry.setAttribute('color', new THREE.BufferAttribute(innerColors, 3));\r\n      \r\n      const innerMaterial = new THREE.PointsMaterial({\r\n        size: 0.08,\r\n        map: pointTexture,\r\n        blending: THREE.AdditiveBlending,\r\n        transparent: true,\r\n        vertexColors: true\r\n      });\r\n      \r\n      const innerParticles = new THREE.Points(innerGeometry, innerMaterial);\r\n      scene.add(innerParticles);\r\n      \r\n      \/\/ Mouse interaction for water ripples and audio\r\n      const raycaster = new THREE.Raycaster();\r\n      const mouse = new THREE.Vector2();\r\n      \r\n      function onMouseClick(event) {\r\n        const rect = container.getBoundingClientRect();\r\n        mouse.x = ((event.clientX - rect.left) \/ width) * 2 - 1;\r\n        mouse.y = -((event.clientY - rect.top) \/ height) * 2 + 1;\r\n        \r\n        raycaster.setFromCamera(mouse, camera);\r\n        const intersects = raycaster.intersectObject(sphere);\r\n        \r\n        if (intersects.length > 0) {\r\n          \/\/ Initialize audio and play\/pause\r\n          initAudio();\r\n          \r\n          if (audioContext.state === 'suspended') {\r\n            audioContext.resume();\r\n          }\r\n          \r\n          if (!isPlaying) {\r\n            audio.play().then(() => {\r\n              isPlaying = true;\r\n            }).catch(error => {\r\n              console.error('Audio playback failed:', error);\r\n            });\r\n          } else {\r\n            audio.pause();\r\n            isPlaying = false;\r\n          }\r\n          \r\n          \/\/ Create new ripple at click point\r\n          const clickPoint = intersects[0].point;\r\n          ripples.push({\r\n            center: clickPoint.clone(),\r\n            radius: 0,\r\n            intensity: 1.0,\r\n            startTime: Date.now()\r\n          });\r\n        }\r\n      }\r\n      \r\n      container.addEventListener('click', onMouseClick);\r\n      \r\n      \/\/ Get audio frequency data for visualization\r\n      function getAudioData() {\r\n        if (analyser && isPlaying) {\r\n          analyser.getByteFrequencyData(dataArray);\r\n          \r\n          \/\/ Calculate different frequency ranges\r\n          const bassRange = dataArray.slice(0, 4);\r\n          const midRange = dataArray.slice(4, 16);\r\n          const highRange = dataArray.slice(16, 32);\r\n          \r\n          const bass = bassRange.reduce((sum, value) => sum + value, 0) \/ bassRange.length \/ 255;\r\n          const mid = midRange.reduce((sum, value) => sum + value, 0) \/ midRange.length \/ 255;\r\n          const high = highRange.reduce((sum, value) => sum + value, 0) \/ highRange.length \/ 255;\r\n          const overall = dataArray.reduce((sum, value) => sum + value, 0) \/ dataArray.length \/ 255;\r\n          \r\n          return { bass, mid, high, overall };\r\n        }\r\n        return { bass: 0, mid: 0, high: 0, overall: 0 };\r\n      }\r\n      \r\n      \/\/ Water ripple effect function\r\n      function updateWaterRipples() {\r\n        const currentTime = Date.now();\r\n        const positions = surfaceGeometry.attributes.position.array;\r\n        \r\n        \/\/ Reset to original positions\r\n        for (let i = 0; i < surfaceParticleCount * 3; i++) {\r\n          positions[i] = originalPositions[i];\r\n        }\r\n        \r\n        \/\/ Apply all active ripples\r\n        ripples = ripples.filter(ripple => {\r\n          const elapsed = (currentTime - ripple.startTime) \/ 1000.0; \/\/ seconds\r\n          const maxTime = 3.0; \/\/ ripple lasts 3 seconds\r\n          \r\n          if (elapsed > maxTime) return false; \/\/ Remove old ripples\r\n          \r\n          \/\/ Update ripple properties\r\n          ripple.radius = elapsed * 2.0; \/\/ ripple spreads at 2 units per second\r\n          ripple.intensity = Math.max(0, 1.0 - elapsed \/ maxTime); \/\/ fade out\r\n          \r\n          \/\/ Apply ripple to particles\r\n          for (let i = 0; i < surfaceParticleCount; i++) {\r\n            const px = originalPositions[i * 3];\r\n            const py = originalPositions[i * 3 + 1];\r\n            const pz = originalPositions[i * 3 + 2];\r\n            const particlePos = new THREE.Vector3(px, py, pz);\r\n            \r\n            \/\/ Calculate distance from ripple center\r\n            const distanceFromCenter = particlePos.distanceTo(ripple.center);\r\n            \r\n            \/\/ Create wave effect\r\n            if (distanceFromCenter < ripple.radius + 0.5 && distanceFromCenter > ripple.radius - 0.5) {\r\n              const waveHeight = ripple.intensity * 0.2 * Math.sin((distanceFromCenter - ripple.radius) * 10);\r\n              \r\n              \/\/ Move particle along surface normal (outward from sphere center)\r\n              const normal = particlePos.clone().normalize();\r\n              positions[i * 3] += normal.x * waveHeight;\r\n              positions[i * 3 + 1] += normal.y * waveHeight;\r\n              positions[i * 3 + 2] += normal.z * waveHeight;\r\n            }\r\n          }\r\n          \r\n          return true; \/\/ Keep ripple\r\n        });\r\n        \r\n        surfaceGeometry.attributes.position.needsUpdate = true;\r\n      }\r\n      \r\n      \/\/ Animation variables\r\n      let time = 0;\r\n      let animationFrameId = null;\r\n      \r\n      \/\/ Handle window resize\r\n      function onWindowResize() {\r\n        const width = container.clientWidth;\r\n        const height = container.clientHeight;\r\n        \r\n        camera.aspect = width \/ height;\r\n        camera.updateProjectionMatrix();\r\n        renderer.setSize(width, height);\r\n      }\r\n      \r\n      window.addEventListener('resize', onWindowResize);\r\n      \r\n      \/\/ Animation loop\r\n      function animate() {\r\n        animationFrameId = requestAnimationFrame(animate);\r\n        \r\n        time += 0.01;\r\n        \r\n        \/\/ Get audio data\r\n        const audioData = getAudioData();\r\n        \r\n        \/\/ Update water ripples\r\n        updateWaterRipples();\r\n        \r\n        \/\/ Audio-reactive animations\r\n        let pulseScale = 1.0 + Math.sin(time * 2) * 0.05;\r\n        let rotationSpeed = 0.1;\r\n        let cameraMovement = 0.1;\r\n        \r\n        if (isPlaying && audioData.overall > 0.1) {\r\n          \/\/ Scale based on overall volume\r\n          pulseScale = 1.0 + audioData.overall * 0.3 + Math.sin(time * 2) * 0.05;\r\n          \r\n          \/\/ Rotate inner particles faster with mid frequencies\r\n          rotationSpeed = 0.1 + audioData.mid * 0.5;\r\n          \r\n          \/\/ Camera movement responds to bass\r\n          cameraMovement = 0.1 + audioData.bass * 0.3;\r\n          \r\n          \/\/ Make surface particles more intense with high frequencies\r\n          surfaceMaterial.size = 0.1 + audioData.high * 0.15;\r\n          \r\n          \/\/ Pulse glow layers with different frequencies\r\n          glowLayers.forEach((layer, index) => {\r\n            const frequency = index === 0 ? audioData.bass : \r\n                             index === 1 ? audioData.mid : audioData.high;\r\n            layer.material.opacity = 0.08 + frequency * 0.2;\r\n          });\r\n          \r\n          \/\/ Color intensity based on audio\r\n          const colorIntensity = 1.0 + audioData.overall * 0.5;\r\n          sphere.material.emissive.setRGB(\r\n            0.05 * colorIntensity,\r\n            0.1 * colorIntensity, \r\n            0.2 * colorIntensity\r\n          );\r\n        } else {\r\n          \/\/ Reset to default values when not playing\r\n          surfaceMaterial.size = 0.1;\r\n          glowLayers.forEach(layer => {\r\n            layer.material.opacity = 0.08;\r\n          });\r\n          sphere.material.emissive.setRGB(0.05, 0.1, 0.2);\r\n        }\r\n        \r\n        \/\/ Apply animations\r\n        sphere.scale.set(pulseScale, pulseScale, pulseScale);\r\n        \r\n        innerParticles.rotation.y = time * rotationSpeed;\r\n        innerParticles.rotation.x = time * (rotationSpeed * 0.5);\r\n        \r\n        \/\/ Camera movement\r\n        camera.position.x = Math.sin(time * cameraMovement) * 5;\r\n        camera.position.z = Math.cos(time * cameraMovement) * 5;\r\n        camera.position.y = Math.sin(time * (cameraMovement * 1.5)) * 1;\r\n        camera.lookAt(scene.position);\r\n        \r\n        renderer.render(scene, camera);\r\n      }\r\n      \r\n      \/\/ Start animation\r\n      animate();\r\n      \r\n      \/\/ Return cleanup function\r\n      return function cleanup() {\r\n        if (animationFrameId) {\r\n          cancelAnimationFrame(animationFrameId);\r\n        }\r\n        \r\n        window.removeEventListener('resize', onWindowResize);\r\n        container.removeEventListener('click', onMouseClick);\r\n        \r\n        if (container.contains(renderer.domElement)) {\r\n          container.removeChild(renderer.domElement);\r\n        }\r\n        \r\n        \/\/ Dispose audio resources\r\n        if (audio) {\r\n          audio.pause();\r\n          audio.src = '';\r\n        }\r\n        if (audioContext) {\r\n          audioContext.close();\r\n        }\r\n        \r\n        \/\/ Dispose resources\r\n        pointTexture.dispose();\r\n        sphereGeometry.dispose();\r\n        sphereMaterial.dispose();\r\n        surfaceGeometry.dispose();\r\n        surfaceMaterial.dispose();\r\n        innerGeometry.dispose();\r\n        innerMaterial.dispose();\r\n        \r\n        glowLayers.forEach(layer => {\r\n          layer.geometry.dispose();\r\n          layer.material.dispose();\r\n          scene.remove(layer);\r\n        });\r\n        \r\n        scene.remove(sphere);\r\n        scene.remove(surfaceParticles);\r\n        scene.remove(innerParticles);\r\n      };\r\n    }\r\n\r\n    \/\/ Initialize the visualization when the document is fully loaded\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      try {\r\n        const container = document.getElementById('energy-sphere-container');\r\n        if (container) {\r\n          const cleanup = createEnergySphere('energy-sphere-container');\r\n          window.addEventListener('unload', cleanup);\r\n        }\r\n      } catch (error) {\r\n        console.error(\"Initialization error:\", error);\r\n      }\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\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\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-297d9f33 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"297d9f33\" data-element_type=\"section\" data-e-type=\"section\" id=\"kontakt\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6f09ceab\" data-id=\"6f09ceab\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-37dbd601 elementor-widget elementor-widget-heading\" data-id=\"37dbd601\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ta kontakt!<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3956f2b1 elementor-widget elementor-widget-heading\" data-id=\"3956f2b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Ber\u00e4tta om ditt problem  <br>\ns\u00e5 hittar vi l\u00f6sningen.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-5527b29\" data-id=\"5527b29\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-540bf4f8 elementor-widget elementor-widget-heading\" data-id=\"540bf4f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Skicka g\u00e4rna ett meddelande<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2acc3fa5 elementor-widget elementor-widget-text-editor\" data-id=\"2acc3fa5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\r\n<style type=\"text\/css\">\r\n\r\n\r\n\r\nbody #wpforms-6 {\r\n\t\tborder-color:#ffffff !important;\r\n\t\t\t}\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\tbody #wpforms-6 .wpforms-submit-container .wpforms-submit, body #wpforms-6 .wpforms-field-pagebreak button.wpforms-page-button {\r\n\t\tbackground-color:#889407 !important;\t\tborder-width: 0px;\t}\r\n\r\n\tbody #wpforms-6 .wpforms-submit-container .wpforms-submit:hover, body #wpforms-6 .wpforms-field-pagebreak button.wpforms-page-button:hover {\r\n\tbackground-color:#0e5287;\t\t}\r\n\r\n\tbody #wpforms-6 .wpforms-submit-container,\r\n\tbody #wpforms-6 .wpforms-field-pagebreak .wpforms-pagebreak-left{\r\n\t\t}\r\n\r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=text],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=email],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=tel],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=url],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=password],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field input[type=number]\r\n\t{\r\n\t\tborder-width:2px !important;border-color:#889407 !important;border-style:solid !important;\t\t\t}\r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field .wpforms-field-row\r\n\t{\r\n\t\t\t}\r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=text],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=email],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=tel],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=url],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=password],\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-layout.wpforms-field input[type=number]{\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field .wpforms-field-row input[type=text]{\r\n\t\twidth: 100%;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field textarea {\r\n\t\tborder-width:2px !important;border-color:#889407 !important;border-style:ridge !important;\t\t\t\t}\r\n\r\n \r\n\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field select {\r\n\r\n\t\tborder-width:2px !important;border-color:#889407 !important;border-style:ridge !important;\r\n\t\t\t}\r\n\r\n\t\/* dropdown styles on modern background *\/\r\n\tbody #wpforms-6 .wpforms-form .wpforms-field-select-style-modern .choices__inner{\r\n\t\tborder-width:2px !important;border-color:#889407 !important;border-style:ridge !important;\t\t\r\n\t}\r\n\r\n\t\/* background color on modern dropdown *\/\r\n\t\r\n\r\n\r\n\r\n\/* Styling for Tablets *\/\r\n@media only screen and (max-width: 800px) and (min-width:481px) {\r\n\t\r\n\r\n\r\n\r\n}\r\n\r\n@media only screen and (max-width: 480px){\r\n\t\r\n\r\n\r\n\r\n}\r\n\/*Option to add custom CSS *\/\r\n\r\n\r\n\r\n\t\t<\/style>\r\n\t\t<div class=\"wpforms-container \" id=\"wpforms-6\"><form id=\"wpforms-form-6\" class=\"wpforms-validate wpforms-form\" data-formid=\"6\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/index.php\/wp-json\/wp\/v2\/pages\/384\" data-token=\"1f3cd8564b7727e20fa9a9114b5ce1fe\" data-token-time=\"1781918346\"><noscript class=\"wpforms-error-noscript\">Aktivera JavaScript i din webbl\u00e4sare f\u00f6r att fylla i formul\u00e4ret.<\/noscript><div class=\"wpforms-field-container\"><div id=\"wpforms-6-field_0-container\" class=\"wpforms-field wpforms-field-name\" data-field-id=\"0\"><label class=\"wpforms-field-label wpforms-label-hide\" for=\"wpforms-6-field_0\">Namn <span class=\"wpforms-required-label\">*<\/span><\/label><input type=\"text\" id=\"wpforms-6-field_0\" class=\"wpforms-field-large wpforms-field-required\" name=\"wpforms[fields][0]\" placeholder=\"Namn *\" required><\/div><div id=\"wpforms-6-field_3-container\" class=\"wpforms-field wpforms-field-text\" data-field-id=\"3\"><label class=\"wpforms-field-label wpforms-label-hide\" for=\"wpforms-6-field_3\">Telefon<\/label><input type=\"text\" id=\"wpforms-6-field_3\" class=\"wpforms-field-large\" name=\"wpforms[fields][3]\" placeholder=\"Telefon\" ><\/div><div id=\"wpforms-6-field_1-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"1\"><label class=\"wpforms-field-label wpforms-label-hide\" for=\"wpforms-6-field_1\">E-post <span class=\"wpforms-required-label\">*<\/span><\/label><input type=\"email\" id=\"wpforms-6-field_1\" class=\"wpforms-field-large wpforms-field-required\" name=\"wpforms[fields][1]\" placeholder=\"E-post *\" spellcheck=\"false\" required><\/div><div id=\"wpforms-6-field_2-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-id=\"2\"><label class=\"wpforms-field-label wpforms-label-hide\" for=\"wpforms-6-field_2\">Meddelande <span class=\"wpforms-required-label\">*<\/span><\/label><textarea id=\"wpforms-6-field_2\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][2]\" placeholder=\"Meddelande\" required><\/textarea><\/div><\/div><!-- .wpforms-field-container --><div class=\"wpforms-field wpforms-field-hp\"><label for=\"wpforms-6-field-hp\" class=\"wpforms-field-label\">Name<\/label><input type=\"text\" name=\"wpforms[hp]\" id=\"wpforms-6-field-hp\" class=\"wpforms-field-medium\"><\/div><div class=\"wpforms-recaptcha-container wpforms-is-recaptcha wpforms-is-recaptcha-type-v2\" ><div class=\"g-recaptcha\" data-sitekey=\"6Lc9OYknAAAAAHSlpriD_s10ejOgCScuoTP5oNg7\"><\/div><input type=\"text\" name=\"g-recaptcha-hidden\" class=\"wpforms-recaptcha-hidden\" style=\"position:absolute!important;clip:rect(0,0,0,0)!important;height:1px!important;width:1px!important;border:0!important;overflow:hidden!important;padding:0!important;margin:0!important;\" data-rule-recaptcha=\"1\"><\/div><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"6\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/pages\/384\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-6\" class=\"wpforms-submit\" data-alt-text=\"Skickar...\" data-submit-text=\"Ta kontakt\" aria-live=\"assertive\" value=\"wpforms-submit\">Ta kontakt<\/button><\/div><\/form><\/div>  <!-- .wpforms-container -->\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-b58c57a e-flex e-con-boxed e-con e-parent\" data-id=\"b58c57a\" 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\t\t<div class=\"elementor-element elementor-element-22f9016 elementor-widget elementor-widget-heading\" data-id=\"22f9016\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Hitta hit<\/h2>\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\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2fe555d7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2fe555d7\" data-element_type=\"section\" data-e-type=\"section\" id=\"contact\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-46221d80\" data-id=\"46221d80\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2c7424cc elementor-widget elementor-widget-google_maps\" data-id=\"2c7424cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"google_maps.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-custom-embed\">\n\t\t\t<iframe loading=\"lazy\"\n\t\t\t\t\tsrc=\"https:\/\/maps.google.com\/maps?q=Gothenburg%2C%20Sweden&#038;t=m&#038;z=16&#038;output=embed&#038;iwloc=near\"\n\t\t\t\t\ttitle=\"Gothenburg, Sweden\"\n\t\t\t\t\taria-label=\"Gothenburg, Sweden\"\n\t\t\t><\/iframe>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-36d10c6 e-flex e-con-boxed e-con e-parent\" data-id=\"36d10c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ef88d5 elementor-widget elementor-widget-shortcode\" data-id=\"1ef88d5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class='mwai-chatbot-container' data-params='{&quot;aiName&quot;:&quot;RCH FULLSTACK: &quot;,&quot;userName&quot;:&quot;G\\u00e4st: &quot;,&quot;guestName&quot;:&quot;G\\u00e4st:&quot;,&quot;aiAvatar&quot;:false,&quot;userAvatar&quot;:false,&quot;aiAvatarUrl&quot;:&quot;chat-robot-1.svg&quot;,&quot;textSend&quot;:&quot;Skicka&quot;,&quot;textClear&quot;:&quot;Rensa&quot;,&quot;imageUpload&quot;:false,&quot;fileUpload&quot;:false,&quot;multiUpload&quot;:false,&quot;maxUploads&quot;:1,&quot;fileUploads&quot;:0,&quot;mode&quot;:&quot;chat&quot;,&quot;textInputPlaceholder&quot;:&quot;Skriv ett meddelande...&quot;,&quot;textInputMaxLength&quot;:512,&quot;textCompliance&quot;:&quot;&quot;,&quot;startSentence&quot;:&quot;Hej! Vad kan jag hj\\u00e4lpa dig med? &quot;,&quot;localMemory&quot;:true,&quot;themeId&quot;:&quot;messages&quot;,&quot;window&quot;:true,&quot;icon&quot;:&quot;chat-robot-1.svg&quot;,&quot;iconText&quot;:&quot;&quot;,&quot;iconTextDelay&quot;:7,&quot;iconAlt&quot;:&quot;AI Chatbot Avatar&quot;,&quot;iconPosition&quot;:&quot;bottom-right&quot;,&quot;centerOpen&quot;:false,&quot;width&quot;:&quot;&quot;,&quot;openDelay&quot;:&quot;&quot;,&quot;iconBubble&quot;:false,&quot;windowAnimation&quot;:&quot;zoom&quot;,&quot;fullscreen&quot;:true,&quot;copyButton&quot;:true,&quot;pdfButton&quot;:false,&quot;headerSubtitle&quot;:&quot;Discuss with&quot;,&quot;containerType&quot;:&quot;standard&quot;,&quot;headerType&quot;:&quot;standard&quot;,&quot;messagesType&quot;:&quot;standard&quot;,&quot;inputType&quot;:&quot;standard&quot;,&quot;footerType&quot;:&quot;standard&quot;}' data-system='{&quot;botId&quot;:&quot;default&quot;,&quot;customId&quot;:null,&quot;userData&quot;:null,&quot;sessionId&quot;:null,&quot;restNonce&quot;:null,&quot;contextId&quot;:null,&quot;pluginUrl&quot;:&quot;https:\\\/\\\/www.rchfullstack.com\\\/wp-content\\\/plugins\\\/ai-engine&quot;,&quot;restUrl&quot;:&quot;https:\\\/\\\/www.rchfullstack.com\\\/index.php\\\/wp-json&quot;,&quot;stream&quot;:false,&quot;debugMode&quot;:false,&quot;eventLogs&quot;:false,&quot;speech_recognition&quot;:true,&quot;speech_synthesis&quot;:false,&quot;typewriter&quot;:false,&quot;crossSite&quot;:false,&quot;actions&quot;:[],&quot;blocks&quot;:[],&quot;shortcuts&quot;:[]}' data-theme='{&quot;type&quot;:&quot;internal&quot;,&quot;name&quot;:&quot;Messages&quot;,&quot;themeId&quot;:&quot;messages&quot;,&quot;settings&quot;:{&quot;backgroundHeaderColor&quot;:&quot;#889407&quot;,&quot;width&quot;:&quot;460px&quot;,&quot;maxHeight&quot;:&quot;40vh&quot;,&quot;backgroundUserColor&quot;:&quot;#889407&quot;},&quot;style&quot;:&quot;&quot;,&quot;cssUrl&quot;:&quot;https:\\\/\\\/www.rchfullstack.com\\\/wp-content\\\/plugins\\\/ai-engine\\\/themes\\\/messages.css&quot;}'><\/div><\/div>\n\t\t\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>V\u00c4LKOMMEN TILLRCH FULLSTACK! Jag hj\u00e4lper dig l\u00f6sa problemet \u2013 enkelt, direkt och med r\u00e4tt AI-verktyg Ta kontakt St\u00e5r din verksamhet inf\u00f6r f\u00f6r\u00e4ndring? \u00a0 AI f\u00f6r\u00e4ndrar hur f\u00f6retag arbetar. Snabbare \u00e4n de flesta hinner anpassa sig.Jag hj\u00e4lper dig f\u00f6rst\u00e5 vad det betyder f\u00f6r just dig. Konkret och utan on\u00f6dig komplexitet. L\u00f6sningar Med erfarenhet inom b\u00e5de front-end [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"disabled","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"folder":[],"class_list":["post-384","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/pages\/384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/comments?post=384"}],"version-history":[{"count":1047,"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/pages\/384\/revisions"}],"predecessor-version":[{"id":1941,"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/pages\/384\/revisions\/1941"}],"wp:attachment":[{"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/media?parent=384"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/www.rchfullstack.com\/index.php\/wp-json\/wp\/v2\/folder?post=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}