{"id":7019,"date":"2026-02-25T21:18:36","date_gmt":"2026-02-25T20:18:36","guid":{"rendered":"https:\/\/www.freshfruits.it\/?page_id=7019"},"modified":"2026-09-01T11:44:11","modified_gmt":"2026-09-01T10:44:11","slug":"home","status":"publish","type":"page","link":"https:\/\/www.freshfruits.it\/it\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7019\" class=\"elementor elementor-7019\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a0300e1 Horizontal e-con-full e-flex e-con e-parent\" data-id=\"a0300e1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6430373 e-con-full e-flex e-con e-child\" data-id=\"6430373\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bb2c601 home-video elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"bb2c601\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<video width=\"100%\" muted autoplay playsinline loop>\n  <source src=\"\/wp-content\/uploads\/2026\/03\/minireel.webm\" type=\"video\/webm\">\n  <source src=\"\/wp-content\/uploads\/2026\/02\/minireel.mov\" type=\"video\/mp4\">\n<\/video>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-786c8a5 home-video elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-html\" data-id=\"786c8a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<video width=\"100%\" muted autoplay playsinline loop>\n  <source src=\"\/wp-content\/uploads\/2026\/03\/minireel-9.16.webm\" type=\"video\/webm\">\n  <source src=\"\/wp-content\/uploads\/2026\/03\/minireel-9.16.mov\" type=\"video\/mp4\">\n<\/video>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f54c889 e-con-full e-flex e-con e-child\" data-id=\"f54c889\" data-element_type=\"container\" data-e-type=\"container\" id=\"about\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9363601 elementor-widget__width-initial ff-heading elementor-widget elementor-widget-heading\" data-id=\"9363601\" 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\">fresh fruits<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-562a72e Horizontal__text elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"562a72e\" 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\">We are a creative AI production studio that brings together expertise rooted in traditional audiovisual industries.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-db592c3 elementor-widget elementor-widget-html\" data-id=\"db592c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\ndocument.addEventListener(\"DOMContentLoaded\", (event) => {\n  let wrapper = document.querySelector(\".Horizontal\");\n  let text = document.querySelector(\".Horizontal__text\");\n  let split = SplitText.create(\".Horizontal__text\", { type: \"chars, words\" });\n\n  function getDistance() {\n    let textWidth = text.scrollWidth;\n    let viewportWidth = window.innerWidth;\n    return textWidth ;\n  }\n\n  const scrollTween = gsap.to(text, {\n    x: () => -getDistance(),\n    ease: \"none\",\n    scrollTrigger: {\n      trigger: wrapper,\n      start: \"top top\",\n      end: () => \"+=\" + getDistance(),\n      pin: true,\n      scrub: 0.4,\n      invalidateOnRefresh: true,\n      snap: {\n        snapTo: \"labels\",\n        duration: { min: 0.2, max: 3 },\n        delay: 0.2,\n        ease: \"power1.inOut\"\n      }\n    }\n  });\n\n  split.chars.forEach((char) => {\n    gsap.from(char, {\n      yPercent: \"random(-200, 200)\",\n      rotation: \"random(-20, 20)\",\n      ease: \"back.out(1.2)\",\n      scrollTrigger: {\n        trigger: char,\n        containerAnimation: scrollTween,\n        start: \"left 100%\",\n        end: \"left 20%\",\n        scrub: 1\n      }\n    });\n  });\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45b84fe6 rotatingtext elementor-widget__width-inherit elementor-absolute elementor-widget elementor-widget-html\" data-id=\"45b84fe6\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<svg\n  viewBox=\"0 0 100 100\"\n  xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n>\n  <path\n    id=\"circlePath\"\n    d=\"\n      M 10, 50\n      a 40,40 0 1,1 80,0\n      40,40 0 1,1 -80,0\n    \"\n    fill=\"transparent\"\n  \/>\n  <text>\n    <textPath href=\"#circlePath\" style=\"font-size:14\">\n      CONSISTENCY - REALISM - SPEED -\n    <\/textPath>\n  <\/text>\n<\/svg>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cdec4c7 section e-con-full e-flex e-con e-parent\" data-id=\"cdec4c7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-23b0146 e-con-full section-inner e-flex e-con e-child\" data-id=\"23b0146\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-61c9083 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"61c9083\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"video-preview-component uno\"\n  data-preview-webm=\"\/wp-content\/uploads\/2026\/03\/preview-adv.webm\"\n  data-preview-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-adv.mov\"\n  data-preview-vertical-webm=\"\/wp-content\/uploads\/2026\/03\/preview-adv-9.16.webm\"\n  data-preview-vertical-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-adv-9.16.mov\"\n  data-full-mp4=\"\/wp-content\/uploads\/2026\/03\/reeladv-compr.mov\"\n  data-full-mobile-mp4=\"\/wp-content\/uploads\/2026\/03\/reeladv-compr-mobile.mov\"\n><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdb770c bastaman animate elementor-widget elementor-widget-heading\" data-id=\"fdb770c\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"adv\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">ADV - <br> \ncommercial<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-70cba31 e-flex e-con-boxed e-con e-child\" data-id=\"70cba31\" 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-18cc9be animate elementor-widget elementor-widget-text-editor\" data-id=\"18cc9be\" 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><strong>Cinematic<\/strong> imagery that defines the brand for product launches, identity campaigns, and large-scale <strong>advertising<\/strong>. Beyond production, support across planning and execution of full social campaigns: <strong>creative concepts <\/strong>and multi-format variations tailored to each platform.<\/p>\t\t\t\t\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\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-454e90f section e-con-full e-flex e-con e-parent\" data-id=\"454e90f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-d4ddb69 e-con-full section-inner e-flex e-con e-child\" data-id=\"d4ddb69\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a28280a elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"a28280a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"video-preview-component due\"\n  data-preview-webm=\"\/wp-content\/uploads\/2026\/03\/preview-food.webm\"\n  data-preview-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-food.mov\"\n  data-preview-vertical-webm=\"\/wp-content\/uploads\/2026\/03\/preview-food-9.16.webm\"\n  data-preview-vertical-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-food-9.16.mov\"\n  data-full-mp4=\"\/wp-content\/uploads\/2026\/03\/reelfood-compr.mov\"\n  data-full-mobile-mp4=\"\/wp-content\/uploads\/2026\/03\/reelfood-compr-mobile.mov\"\n><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a5a5db bastaman animate elementor-widget elementor-widget-heading\" data-id=\"4a5a5db\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"food\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">FOOD - <br>\nbeverage<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b8f7b56 e-flex e-con-boxed e-con e-child\" data-id=\"b8f7b56\" 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-f61870c animate elementor-widget elementor-widget-text-editor\" data-id=\"f61870c\" 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>We produce premium food &amp; beverage photos and videos with a focus on <strong>texture<\/strong>, light, and appetite appeal.<br \/>We translate traditional production techniques into an AI-first workflow: motion control and robot-arm <strong>precision<\/strong>, high-speed capture for micro-actions and <strong>fine details<\/strong>, enabling fast variations and multi-format outputs.<\/p>\t\t\t\t\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\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9f6c1f3 section e-con-full e-flex e-con e-parent\" data-id=\"9f6c1f3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1abe1f2 e-con-full section-inner e-flex e-con e-child\" data-id=\"1abe1f2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e27a5c1 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"e27a5c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"video-preview-component tre\"\n  data-preview-webm=\"\/wp-content\/uploads\/2026\/03\/preview-fashion.webm\"\n  data-preview-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-fashion.mov\"\n  data-preview-vertical-webm=\"\/wp-content\/uploads\/2026\/03\/preview-fashion-9.16.webm\"\n  data-preview-vertical-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-fashion-9.16.mov\"\n  data-full-mp4=\"\/wp-content\/uploads\/2026\/03\/reelfashion-compr.mov\"\n  data-full-mobile-mp4=\"\/wp-content\/uploads\/2026\/03\/reelfashion-compr-mobile.mov\"\n><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c580fd bastaman animate elementor-widget elementor-widget-heading\" data-id=\"5c580fd\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"fashion\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Beauty- <br>\n FASHION<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bc24499 e-flex e-con-boxed e-con e-child\" data-id=\"bc24499\" 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-e6dd04f animate elementor-widget elementor-widget-text-editor\" data-id=\"e6dd04f\" 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>We produce premium fashion &amp; beauty photos and videos with a sharp eye for <strong>detail<\/strong>. Built for campaigns, advertising, social, and product assets\u2014solid, elegant, and recognizable, designed to <strong>elevate<\/strong> the brand with credibility and distinction.<\/p>\t\t\t\t\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\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c15766b section e-con-full e-flex e-con e-parent\" data-id=\"c15766b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-acb91fc e-con-full section-inner e-flex e-con e-child\" data-id=\"acb91fc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b11784 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3b11784\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"video-preview-component quattro\"\n  data-preview-webm=\"\/wp-content\/uploads\/2026\/03\/preview-cinema.webm\"\n  data-preview-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-cinema.mov\"\n  data-preview-vertical-webm=\"\/wp-content\/uploads\/2026\/03\/preview-cinema-9.16.webm\"\n  data-preview-vertical-mp4=\"\/wp-content\/uploads\/2026\/02\/preview-cinema-9.16.mov\"\n  data-full-mp4=\"\/wp-content\/uploads\/2026\/03\/reelcinema-compr.mov\"\n  data-full-mobile-mp4=\"\/wp-content\/uploads\/2026\/03\/reelcinema-compr-mobile.mov\"\n><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a058a0 bastaman animate elementor-widget elementor-widget-heading\" data-id=\"5a058a0\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"film\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">film - <br>narrative<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1205be8 e-flex e-con-boxed e-con e-child\" data-id=\"1205be8\" 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-4adc111 animate elementor-widget elementor-widget-text-editor\" data-id=\"4adc111\" 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>Storytelling at any scale: shorts, documentaries, and feature films, blending creative <strong>vision<\/strong> with next-gen synthetic <strong>cinematography<\/strong> to deliver stories that feel emotional, <strong>coherent<\/strong>, and contemporary.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f5dc84 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3f5dc84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\n     VIDEO FULLSCREEN PLUGIN \u2013 Safari compatible\n     ============================================================ -->\n\n<style>\n\n\/* FIX 1 \u2013 overlay nascosto di default via classe, non inline,\n   cos\u00ec i display:flex successivi non sovrascrivono display:none *\/\n#video-overlay {\n  display: none;\n  position: fixed;\n  top: 0; left: 0;\n  width: 100%; height: 100%;\n  background: #000;\n  z-index: 99999;\n}\n#video-overlay.is-open {\n  display: block;\n}\n\/* Wrapper interno: containing block per tutti i figli position:absolute *\/\n#fs-inner {\n  position: absolute;\n  top: 0; left: 0;\n  width: 100%; height: 100%;\n}\n\/* La barra controlli \u00e8 assoluta dentro #fs-inner *\/\n#controls-bar {\n  display: none;\n  position: absolute;\n  bottom: 0; left: 0;\n  width: 100%; height: 60px;\n  z-index: 100000;\n  background: rgba(0,0,0,0.7);\n  -webkit-box-align: center;\n  -webkit-align-items: center;\n  align-items: center;\n  -webkit-box-pack: start;\n  -webkit-justify-content: flex-start;\n  justify-content: flex-start;\n  padding: 0 15px;\n  box-sizing: border-box;\n  opacity: 1;\n  -webkit-transition: opacity 0.3s ease;\n  transition: opacity 0.3s ease;\n}\n#controls-bar.is-hidden {\n  opacity: 0;\n  pointer-events: none;\n}\n#video-overlay.cursor-hidden,\n#video-overlay.cursor-hidden * {\n  cursor: none !important;\n}\n\/* Big play overlay \u2013 visibile solo su Firefox Windows quando in pausa *\/\n#big-play {\n  display: none;\n  position: absolute;\n  top: 50%; left: 50%;\n  -webkit-transform: translate(-50%, -50%);\n  transform: translate(-50%, -50%);\n  width: 80px; height: 80px;\n  background: rgba(255,255,255,0.15);\n  border-radius: 50%;\n  cursor: pointer;\n  z-index: 20;\n  -webkit-backdrop-filter: blur(4px);\n  backdrop-filter: blur(4px);\n  -webkit-transition: background 0.2s ease;\n  transition: background 0.2s ease;\n  -webkit-box-align: center; -webkit-align-items: center; align-items: center;\n  -webkit-box-pack: center;  -webkit-justify-content: center; justify-content: center;\n}\n#big-play:hover {\n  background: rgba(255,255,255,0.25);\n}\n#big-play.is-visible {\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: flex;\n}\n\/* Div trasparente sopra il video: cattura mousemove in Chrome fullscreen *\/\n#mouse-catcher {\n  position: absolute;\n  top: 0; left: 0;\n  width: 100%;\n  height: 100%;\n  z-index: 10;\n  background: transparent;\n}\n\/* Loading screen animato \u2013 div reale, compatibile con vecchi Safari *\/\n#loading-screen {\n  display: none;\n  position: absolute;\n  top: 0; left: 0;\n  width: 100%; height: calc(100% - 60px); \/* lascia spazio alla barra controlli *\/\n  z-index: 2;\n  overflow: hidden;\n  pointer-events: none;\n}\n#loading-screen.is-visible {\n  display: block;\n}\n#loading-shimmer {\n  position: absolute;\n  top: 0; left: 0;\n  width: 100%; height: 100%;\n  background-image: linear-gradient(\n    135deg,\n    #1a1a1a  0%,\n    #353535  25%,\n    #1a1a1a  50%,\n    #353535  75%,\n    #1a1a1a  100%\n  );\n  background-size: 3200px 3200px;\n  background-repeat: repeat;\n  will-change: background-position;\n  -webkit-animation: shimmer 4s linear infinite;\n  animation: shimmer 4s linear infinite;\n}\n@-webkit-keyframes shimmer {\n  0%   { background-position: 0 0; }\n  100% { background-position: 3200px 3200px; }\n}\n@keyframes shimmer {\n  0%   { background-position: 0 0; }\n  100% { background-position: 3200px 3200px; }\n}\n\n\/* \u2500\u2500 PROGRESS BAR \u2500\u2500 *\/\n#progress-bar {\n  -webkit-appearance: none;\n  appearance: none;\n  height: 4px;\n  border-radius: 2px;\n  outline: none;\n  -webkit-flex: 1;\n  flex: 1;\n  cursor: pointer;\n  background: rgba(255,255,255,0.2);\n}\n#progress-bar::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n  background: #fff;\n  cursor: pointer;\n  margin-top: -5px;\n}\n#progress-bar::-webkit-slider-runnable-track {\n  height: 4px;\n  border-radius: 2px;\n  background: transparent;\n}\n#progress-bar::-moz-range-thumb {\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n  background: #fff;\n  cursor: pointer;\n  border: none;\n}\n#progress-bar::-moz-range-track {\n  height: 4px;\n  border-radius: 2px;\n  background: transparent;\n}\n\n\/* \u2500\u2500 VOLUME BAR CUSTOM (compatibile con tutti i Safari) \u2500\u2500 *\/\n#volume-track {\n  position: relative;\n  width: 4px;\n  height: 80px;\n  margin: 4px auto;\n  background: rgba(255,255,255,0.2);\n  border-radius: 2px;\n  cursor: pointer;\n}\n#volume-fill {\n  position: absolute;\n  bottom: 0; left: 0;\n  width: 100%;\n  background: #fff;\n  border-radius: 2px;\n  height: 100%;\n  pointer-events: none;\n}\n#volume-thumb {\n  position: absolute;\n  left: 50%;\n  -webkit-transform: translateX(-50%);\n  transform: translateX(-50%);\n  width: 14px;\n  height: 14px;\n  background: #fff;\n  border-radius: 50%;\n  pointer-events: none;\n  bottom: calc(100% - 7px);\n}\n\n<\/style>\n\n<!-- Fullscreen overlay -->\n<div id=\"video-overlay\">\n  <!-- fs-inner: containing block per video, loading e barra controlli -->\n  <div id=\"fs-inner\">\n\n  <video\n    id=\"full-video\"\n    playsinline\n    style=\"width:100%; height:100%; object-fit:contain; pointer-events:none;\"\n  >\n    <source id=\"full-source-mp4\" type=\"video\/mp4\">\n  <\/video>\n\n  <!-- Div trasparente: cattura mousemove che Chrome fullscreen non propaga dal video -->\n  <div id=\"mouse-catcher\"><\/div>\n\n  <!-- Big play button: solo Firefox Windows, quando in pausa -->\n  <div id=\"big-play\" onclick=\"togglePlay()\">\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 56 56\" fill=\"none\" width=\"56\" height=\"56\">\n      <path d=\"M21 18.5 C21 17.2 22.4 16.4 23.5 17.1 L38.2 26.6 C39.3 27.3 39.3 28.7 38.2 29.4 L23.5 38.9 C22.4 39.6 21 38.8 21 37.5 Z\" fill=\"white\" stroke-linejoin=\"round\"\/>\n    <\/svg>\n  <\/div>\n\n  <!-- Loading screen animato (mostrato finch\u00e9 il video non \u00e8 pronto) -->\n  <div id=\"loading-screen\">\n    <div id=\"loading-shimmer\"><\/div>\n  <\/div>\n\n  <!-- Controls bar: assoluta dentro #fs-inner, visibile in qualsiasi modalit\u00e0 fullscreen -->\n  <div id=\"controls-bar\">\n    <!-- Play\/Pause -->\n    <button id=\"btn-play\" onclick=\"togglePlay()\" style=\"\n      margin-left:12px; background:none; border:none;\n      width:28px; height:28px;\n      cursor:pointer; padding:0;\n      display:-webkit-box; display:-webkit-flex; display:flex;\n      -webkit-box-align:center; -webkit-align-items:center; align-items:center;\n      -webkit-box-pack:center; -webkit-justify-content:center; justify-content:center;\n      -webkit-flex-shrink:0; flex-shrink:0;\n    \">\n      <svg id=\"icon-play\"  xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\"><path d=\"M8 5v14l11-7z\"\/><\/svg>\n      <svg id=\"icon-pause\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\" style=\"display:none\"><path d=\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\"\/><\/svg>\n    <\/button>\n\n    <!-- Progress bar (FIX 3: gradiente bicolore aggiornato via JS) -->\n    <input id=\"progress-bar\" type=\"range\" value=\"0\" min=\"0\" max=\"100\" step=\"0.1\"\n      style=\"margin-left:12px; cursor:pointer;\"\n      oninput=\"seekVideo(this.value)\"\n    >\n\n    <!-- Time -->\n    <span id=\"time-display\" style=\"margin-left:12px; color:white; font-size:13px; white-space:nowrap;\">0:00 \/ 0:00<\/span>\n\n    <!-- Volume -->\n    <div id=\"volume-container\" style=\"\n      margin-left:12px; position: relative;\n      display: -webkit-box; display: -webkit-flex; display: flex;\n      -webkit-box-align: center; -webkit-align-items: center; align-items: center;\n      -webkit-flex-shrink: 0; flex-shrink: 0;\n    \">\n      <div id=\"volume-slider-popup\" style=\"\n        position: absolute;\n        bottom: 48px;\n        left: 50%;\n        -webkit-transform: translateX(-50%);\n        transform: translateX(-50%);\n        background: rgba(0,0,0,0.8);\n        border-radius: 8px;\n        padding: 10px 8px;\n        display: -webkit-box; display: -webkit-flex; display: flex;\n        -webkit-box-align: center; -webkit-align-items: center; align-items: center;\n        -webkit-box-pack: center; -webkit-justify-content: center; justify-content: center;\n        -webkit-flex-direction: column; flex-direction: column;\n        width: 36px;\n        opacity: 0;\n        pointer-events: none;\n        -webkit-transition: opacity 0.2s ease;\n        transition: opacity 0.2s ease;\n      \">\n        <!-- Volume bar custom: compatibile con tutti i Safari -->\n        <div id=\"volume-track\">\n          <div id=\"volume-fill\"><\/div>\n          <div id=\"volume-thumb\"><\/div>\n        <\/div>\n\n      <button id=\"btn-mute\" onclick=\"toggleMute()\" style=\"\n        background:none; border:none;\n        width:28px; height:28px;\n        cursor:pointer; padding:0;\n        display:-webkit-box; display:-webkit-flex; display:flex;\n        -webkit-box-align:center; -webkit-align-items:center; align-items:center;\n        -webkit-box-pack:center; -webkit-justify-content:center; justify-content:center;\n        -webkit-flex-shrink:0; flex-shrink:0;\n      \">\n        <svg id=\"icon-vol-0\"    xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\" style=\"display:none\"><path d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\"\/><\/svg>\n        <svg id=\"icon-vol-low\"  xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\" style=\"display:none\"><path d=\"M18.5 12c0-1.77-1.02-3.29-2.5-4.03V16c1.48-.73 2.5-2.25 2.5-4zm-13-3v6h4l5 5V4l-5 5h-4z\"\/><\/svg>\n        <svg id=\"icon-vol-mid\"  xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\" style=\"display:none\"><path d=\"M18.5 12c0-1.77-1.02-3.29-2.5-4.03V16c1.48-.73 2.5-2.25 2.5-4zM5.5 9v6h4l5 5V4l-5 5h-4z\"\/><\/svg>\n        <svg id=\"icon-vol-high\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"white\" width=\"28\" height=\"28\"><path d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"\/><\/svg>\n      <\/button>\n    <\/div>\n\n    <!-- Close -->\n    <button onclick=\"closeFullVideo()\" style=\"\n      margin-left:12px; background:rgba(255,255,255,0.2); border:none; color:white;\n      font-size:18px; cursor:pointer; border-radius:50%;\n      width:36px; height:36px; line-height:36px; text-align:center;\n      -webkit-flex-shrink:0; flex-shrink:0;\n    \">\u2715<\/button>\n  <\/div>\n  <\/div><!-- \/fs-inner -->\n<\/div>\n\n<script>\n\nvar overlay          = document.getElementById(\"video-overlay\");\nvar controlsBar      = document.getElementById(\"controls-bar\");\nvar mouseCatcher     = document.getElementById(\"mouse-catcher\");\nvar bigPlay          = document.getElementById(\"big-play\");\nvar vid              = document.getElementById(\"full-video\");\nvar sourceMp4        = document.getElementById(\"full-source-mp4\");\nvar progressBar      = document.getElementById(\"progress-bar\");\nvar loadingScreen    = document.getElementById(\"loading-screen\");\nvar volumeTrack      = document.getElementById(\"volume-track\");\nvar volumeFill       = document.getElementById(\"volume-fill\");\nvar volumeThumb      = document.getElementById(\"volume-thumb\");\nvar volumeHideTimer  = null;\nvar isFullscreenOpen = false;\n\nvar isReady          = false; \/\/ true solo dopo canplay: blocca togglePlay durante il loading\nvar userPaused       = false; \/\/ true se l'utente ha messo in pausa manualmente\n\nvar isIOS              = \/iPhone|iPad|iPod\/i.test(navigator.userAgent);\nvar isFirefoxWindows   = \/Firefox\/i.test(navigator.userAgent) && \/Windows\/i.test(navigator.userAgent);\nvar isMobile      = \/Android|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop\/i.test(navigator.userAgent);\n\/\/ Touchscreen via pointer media query (pi\u00f9 affidabile dello user agent per mobile video)\nvar isTouchscreen = false;\nif (window.matchMedia) {\n  if (window.matchMedia(\"(pointer:coarse)\").matches) {\n    isTouchscreen = true;\n  }\n}\n\n\/\/ \u2500\u2500 INIZIALIZZAZIONE COMPONENTI \u2500\u2500\u2500\u2500\u2500\u2500\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\ndocument.querySelectorAll(\".video-preview-component\").forEach(function(el) {\n  var previewWebm         = el.getAttribute(\"data-preview-webm\");\n  var previewMp4          = el.getAttribute(\"data-preview-mp4\");\n  var previewVerticalWebm = el.getAttribute(\"data-preview-vertical-webm\");\n  var previewVerticalMp4  = el.getAttribute(\"data-preview-vertical-mp4\");\n  var fullMp4             = el.getAttribute(\"data-full-mp4\");\n  var hasVertical         = previewVerticalWebm || previewVerticalMp4;\n\n  var wrapper = document.createElement(\"div\");\n  wrapper.style.cssText = \"position:relative; cursor:pointer; width:100%; -webkit-tap-highlight-color:transparent;\";\n\n  function createPreviewVideo(webm, mp4) {\n    var v = document.createElement(\"video\");\n    v.autoplay = true; v.muted = true; v.loop = true;\n    v.setAttribute(\"playsinline\", \"\");\n    v.style.cssText = \"width:100%; display:block; pointer-events:none;\";\n    if (webm) { var s1 = document.createElement(\"source\"); s1.src = webm; s1.type = \"video\/webm\"; v.appendChild(s1); }\n    if (mp4)  { var s2 = document.createElement(\"source\"); s2.src = mp4;  s2.type = \"video\/mp4\";  v.appendChild(s2); }\n    return v;\n  }\n\n  var vidH = createPreviewVideo(previewWebm, previewMp4);\n  var vidV = hasVertical ? createPreviewVideo(previewVerticalWebm, previewVerticalMp4) : null;\n\n  function applyOrientation() {\n    var isVertical = window.innerWidth \/ window.innerHeight < 1;\n    vidH.style.display = isVertical ? \"none\" : \"block\";\n    vidV.style.display = isVertical ? \"block\" : \"none\";\n    if (isVertical) { vidH.pause(); vidV.play(); }\n    else            { vidV.pause(); vidH.play(); }\n  }\n\n  wrapper.appendChild(vidH);\n  if (vidV) wrapper.appendChild(vidV);\n\n  var mobileSrc = el.getAttribute(\"data-full-mobile-mp4\");\n\n  if (isIOS) {\n    var link = document.createElement(\"a\");\n    \/\/ Su iOS usa il video mobile se disponibile (pi\u00f9 leggero)\n    link.href = (mobileSrc ? mobileSrc : fullMp4);\n    link.setAttribute(\"type\", \"video\/mp4\");\n    link.style.cssText = \"position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; display:block; outline:none; -webkit-tap-highlight-color:transparent;\";\n    wrapper.appendChild(link);\n  } else {\n    var clickLayer = document.createElement(\"div\");\n    clickLayer.style.cssText = \"position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; outline:none; -webkit-tap-highlight-color:transparent;\";\n    (function(fm, fmm) {\n      var touchStartX = 0, touchStartY = 0;\n      clickLayer.addEventListener(\"touchstart\", function(e) {\n        touchStartX = e.touches[0].clientX;\n        touchStartY = e.touches[0].clientY;\n      }, { passive: true });\n      clickLayer.addEventListener(\"touchend\", function(e) {\n        var dx = Math.abs(e.changedTouches[0].clientX - touchStartX);\n        var dy = Math.abs(e.changedTouches[0].clientY - touchStartY);\n        if (dx > 10 || dy > 10) return;\n        e.preventDefault();\n        openFullVideo(fm, fmm);\n      });\n      clickLayer.addEventListener(\"click\", function() { openFullVideo(fm, fmm); });\n    })(fullMp4, mobileSrc);\n    wrapper.appendChild(clickLayer);\n  }\n\n  el.appendChild(wrapper);\n  if (hasVertical) { applyOrientation(); window.addEventListener(\"resize\", applyOrientation); }\n});\n\n\/\/ \u2500\u2500 OVERLAY FULLSCREEN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\nfunction openFullVideo(mp4, mobileMp4) {\n  var src = mp4;\n  if (isTouchscreen) {\n    if (mobileMp4) {\n      src = mobileMp4;\n    }\n  }\n  sourceMp4.src = src;\n  vid.load();\n\n  \/\/ L'overlay resta sempre nel body: position:fixed lo posiziona correttamente\n  if (overlay.parentElement !== document.body) { document.body.appendChild(overlay); }\n\n  isReady = false;\n  userPaused = false;\n  bigPlay.classList.remove(\"is-visible\"); \/\/ nascosto durante il caricamento\n  overlay.classList.add(\"is-open\"); \/\/ FIX 1\n  controlsBar.style.display = \"-webkit-box\";\n  controlsBar.style.display = \"-webkit-flex\";\n  controlsBar.style.display = \"flex\";\n  loadingScreen.classList.add(\"is-visible\");\n  document.body.style.overflow = \"hidden\";\n  isFullscreenOpen = true;\n\n  \/\/ Fullscreen sull'overlay: la barra \u00e8 dentro di esso quindi non sparisce\n  \/\/ Nessun doppio fullscreenchange perch\u00e9 non spostiamo l'elemento nel DOM\n  if (overlay.requestFullscreen)            { try { overlay.requestFullscreen(); }            catch(e) {} }\n  else if (overlay.webkitRequestFullscreen) { try { overlay.webkitRequestFullscreen(); }      catch(e) {} }\n  else if (overlay.mozRequestFullScreen)    { try { overlay.mozRequestFullScreen(); }         catch(e) {} }\n  else if (overlay.msRequestFullscreen)     { try { overlay.msRequestFullscreen(); }          catch(e) {} }\n\n  \/\/ Aspetta che siano bufferizzati almeno BUFFER_BEFORE_PLAY secondi\n  \/\/ prima di avviare la riproduzione, per evitare scatti iniziali.\n  \/\/ Fallback dopo MAX_WAIT_MS se la connessione \u00e8 molto lenta.\n  var BUFFER_BEFORE_PLAY = 3;   \/\/ secondi minimi di buffer\n  var MAX_WAIT_MS        = 4000; \/\/ timeout massimo in ms\n\n  var bufferCheckTimer = null;\n  var bufferMaxTimer   = null;\n\n  function startPlayback() {\n    clearInterval(bufferCheckTimer);\n    clearTimeout(bufferMaxTimer);\n    loadingScreen.classList.remove(\"is-visible\");\n    if (!userPaused) {\n      if (isFirefoxWindows) {\n        \/\/ Firefox Windows: non fare autoplay, mostra il tasto play.\n        \/\/ L'utente clicca play \u2192 gesto utente \u2192 audio funziona.\n        setPlayIcon(false);\n      } else {\n        vid.play();\n        setPlayIcon(true);\n      }\n    }\n    isReady = true;\n    updateProgressBar();\n    updateVolumeBar();\n  }\n\n  function checkBuffer() {\n    if (vid.buffered.length > 0) {\n      var bufferedEnd = vid.buffered.end(vid.buffered.length - 1);\n      if (bufferedEnd >= BUFFER_BEFORE_PLAY) {\n        startPlayback();\n      }\n    }\n  }\n\n  vid.addEventListener(\"canplay\", function onCanPlay() {\n    vid.removeEventListener(\"canplay\", onCanPlay);\n    \/\/ Controlla subito: su connessioni veloci potrebbe gi\u00e0 bastare\n    checkBuffer();\n    if (!isReady) {\n      bufferCheckTimer = setInterval(checkBuffer, 200);\n      bufferMaxTimer   = setTimeout(startPlayback, MAX_WAIT_MS);\n    }\n  });\n}\n\n\/\/ \u2500\u2500 RESET + CLOSE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\nfunction _resetOverlay() {\n  vid.pause();\n  vid.currentTime = 0;\n  sourceMp4.src   = \"\";\n  vid.load();\n\n  isReady = false;\n  userPaused = false;\n  clearTimeout(controlsHideTimer);\n  controlsBar.classList.remove(\"is-hidden\");\n  overlay.classList.remove(\"cursor-hidden\");\n  overlay.classList.remove(\"is-open\"); \/\/ FIX 1\n  controlsBar.style.display = \"none\";\n  loadingScreen.classList.add(\"is-visible\");\n  document.body.style.overflow              = \"\";\n  document.body.style.pointerEvents         = \"\";\n  document.documentElement.style.overflow   = \"\";\n  setPlayIcon(false);\n\n  if (overlay.parentElement !== document.body) {\n    document.body.appendChild(overlay);\n  }\n}\n\nfunction closeFullVideo() {\n  if (!isFullscreenOpen) return;\n  isFullscreenOpen = false;\n\n  _resetOverlay();\n\n  var exitFn = document.exitFullscreen\n             || document.webkitExitFullscreen\n             || document.mozCancelFullScreen\n             || document.msExitFullscreen;\n  if (exitFn) {\n    var fsActive = document.fullscreenElement\n                || document.webkitFullscreenElement\n                || document.mozFullScreenElement\n                || document.msFullscreenElement;\n    if (fsActive) {\n      try {\n        var result = exitFn.call(document);\n        if (result) {\n          if (typeof result.catch === \"function\") { result.catch(function() {}); }\n        }\n      } catch(e) {}\n    }\n  }\n}\n\n\/\/ \u2500\u2500 PLAY \/ PAUSA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\nfunction setPlayIcon(playing) {\n  document.getElementById(\"icon-play\").style.display  = playing ? \"none\"  : \"block\";\n  document.getElementById(\"icon-pause\").style.display = playing ? \"block\" : \"none\";\n  if (playing) { bigPlay.classList.remove(\"is-visible\"); }\n  else         { bigPlay.classList.add(\"is-visible\"); }\n}\nfunction togglePlay() {\n  if (!isReady) return;\n  if (vid.paused) { userPaused = false; vid.play(); setPlayIcon(true); }\n  else            { userPaused = true;  vid.pause(); setPlayIcon(false); }\n}\nmouseCatcher.addEventListener(\"click\", function() { togglePlay(); });\nvid.addEventListener(\"ended\", function() { setPlayIcon(false); });\n\n\/\/ \u2500\u2500 FIX 3: PROGRESS BAR BICOLORE \u2500\u2500\u2500\u2500\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\/\/ linear-gradient sul background del range:\n\/\/   bianco            = riprodotto\n\/\/   grigio chiaro     = bufferizzato\n\/\/   grigio scuro      = non caricato\n\nfunction getBufferedPct() {\n  if (!vid.duration || !vid.buffered.length) return 0;\n  for (var i = 0; i < vid.buffered.length; i++) {\n    if (vid.buffered.start(i) <= vid.currentTime) {\n      if (vid.currentTime <= vid.buffered.end(i)) {\n        return (vid.buffered.end(i) \/ vid.duration) * 100;\n      }\n    }\n  }\n  return 0;\n}\n\nfunction updateProgressBar() {\n  if (!vid.duration) return;\n  var played   = (vid.currentTime \/ vid.duration) * 100;\n  var buffered = Math.max(getBufferedPct(), played);\n\n  progressBar.value = played;\n  progressBar.style.background =\n    \"linear-gradient(to right, \" +\n    \"#ffffff \"                  + played   + \"%, \" +\n    \"rgba(255,255,255,0.45) \"   + played   + \"%, \" +\n    \"rgba(255,255,255,0.45) \"   + buffered + \"%, \" +\n    \"rgba(255,255,255,0.2) \"    + buffered + \"%)\";\n}\n\nvid.addEventListener(\"timeupdate\", function() {\n  updateProgressBar();\n  document.getElementById(\"time-display\").textContent =\n    formatTime(vid.currentTime) + \" \/ \" + formatTime(vid.duration);\n});\nvid.addEventListener(\"progress\", updateProgressBar);\n\nfunction seekVideo(val) {\n  if (vid.duration) { vid.currentTime = (val \/ 100) * vid.duration; updateProgressBar(); }\n}\n\nfunction formatTime(s) {\n  if (!s || isNaN(s)) return \"0:00\";\n  var m = Math.floor(s \/ 60), sec = Math.floor(s % 60);\n  return m + \":\" + (sec < 10 ? \"0\" : \"\") + sec;\n}\n\n\/\/ \u2500\u2500 VOLUME \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\nfunction updateVolumeBar() {\n  var val = vid.muted ? 0 : Math.round(vid.volume * 100);\n  var pct = val + \"%\";\n  volumeFill.style.height  = pct;\n  volumeThumb.style.bottom = \"calc(\" + pct + \" - 7px)\";\n}\n\nfunction updateMuteIcon() {\n  var vol = vid.muted ? 0 : Math.round(vid.volume * 100);\n  var isLow  = (vol > 0);\n  if (isLow) { isLow = (vol <= 30); }\n  var isMid  = (vol > 30);\n  if (isMid) { isMid = (vol <= 80); }\n  document.getElementById(\"icon-vol-0\").style.display    = (vol === 0) ? \"block\" : \"none\";\n  document.getElementById(\"icon-vol-low\").style.display  = isLow       ? \"block\" : \"none\";\n  document.getElementById(\"icon-vol-mid\").style.display  = isMid       ? \"block\" : \"none\";\n  document.getElementById(\"icon-vol-high\").style.display = (vol > 80)  ? \"block\" : \"none\";\n  updateVolumeBar();\n}\n\nfunction toggleMute() { vid.muted = !vid.muted; updateMuteIcon(); }\nfunction setVolume(val) { vid.volume = val \/ 100; vid.muted = (val == 0); updateMuteIcon(); }\n\n\/\/ Drag sul volume track custom\n(function() {\n  var dragging = false;\n\n  function volumeFromY(e) {\n    var rect = volumeTrack.getBoundingClientRect();\n    var clientY = e.touches ? e.touches[0].clientY : e.clientY;\n    var ratio = (rect.bottom - clientY) \/ rect.height;\n    if (ratio < 0) { ratio = 0; }\n    if (ratio > 1) { ratio = 1; }\n    setVolume(Math.round(ratio * 100));\n  }\n\n  volumeTrack.addEventListener(\"mousedown\",  function(e) { dragging = true; volumeFromY(e); showVolumeSlider(); });\n  volumeTrack.addEventListener(\"touchstart\", function(e) { dragging = true; volumeFromY(e); showVolumeSlider(); }, { passive: true });\n\n  document.addEventListener(\"mousemove\",  function(e) { if (dragging) { volumeFromY(e); } });\n  document.addEventListener(\"touchmove\",  function(e) { if (dragging) { volumeFromY(e); } }, { passive: true });\n\n  document.addEventListener(\"mouseup\",   function() { dragging = false; });\n  document.addEventListener(\"touchend\",  function() { dragging = false; });\n})();\n\nfunction showVolumeSlider() {\n  var p = document.getElementById(\"volume-slider-popup\");\n  p.style.opacity = \"1\"; p.style.pointerEvents = \"auto\";\n  clearTimeout(volumeHideTimer);\n}\nfunction hideVolumeSliderDelayed() {\n  volumeHideTimer = setTimeout(function() {\n    var p = document.getElementById(\"volume-slider-popup\");\n    p.style.opacity = \"0\"; p.style.pointerEvents = \"none\";\n  }, 1500);\n}\n\ndocument.getElementById(\"volume-container\").addEventListener(\"mouseenter\", showVolumeSlider);\ndocument.getElementById(\"volume-container\").addEventListener(\"mouseleave\", hideVolumeSliderDelayed);\n\n\/\/ \u2500\u2500 TASTIERA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\ndocument.addEventListener(\"keydown\", function(e) {\n  if (e.key === \"Escape\") { closeFullVideo(); return; }\n  if (!isFullscreenOpen) return;\n  e.preventDefault();\n  if (document.activeElement) document.activeElement.blur();\n  if (e.key === \" \")          { togglePlay(); return; }\n  if (e.key === \"ArrowRight\") { vid.currentTime = Math.min(vid.currentTime + 5, vid.duration); return; }\n  if (e.key === \"ArrowLeft\")  { vid.currentTime = Math.max(vid.currentTime - 5, 0); return; }\n  if (e.key === \"ArrowUp\")    { vid.volume = Math.min(vid.volume + 0.1, 1); vid.muted = false; updateMuteIcon(); showVolumeSlider(); hideVolumeSliderDelayed(); return; }\n  if (e.key === \"ArrowDown\")  { vid.volume = Math.max(vid.volume - 0.1, 0); updateMuteIcon(); showVolumeSlider(); hideVolumeSliderDelayed(); return; }\n});\n\n\/\/ \u2500\u2500 AUTO-HIDE BARRA CONTROLLI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\nvar controlsHideTimer = null;\n\nfunction showControls() {\n  if (!isFullscreenOpen) return;\n  controlsBar.classList.remove(\"is-hidden\");\n  overlay.classList.remove(\"cursor-hidden\");\n  clearTimeout(controlsHideTimer);\n  controlsHideTimer = setTimeout(function() {\n    if (!vid.paused) {\n      controlsBar.classList.add(\"is-hidden\");\n      overlay.classList.add(\"cursor-hidden\");\n    }\n  }, 3000);\n}\n\nfunction stopControlsTimer() {\n  clearTimeout(controlsHideTimer);\n  controlsBar.classList.remove(\"is-hidden\");\n  overlay.classList.remove(\"cursor-hidden\");\n}\n\nfunction _onMouseMove()  { showControls(); }\nfunction _onTouchStart() { showControls(); }\n\nfunction _onFirstGesture() {\n  if (vid.muted) {\n    vid.muted = false;\n    updateMuteIcon();\n  }\n  overlay.removeEventListener(\"click\",      _onFirstGesture);\n  overlay.removeEventListener(\"touchstart\", _onFirstGesture);\n}\n\nfunction _attachMouseListeners() {\n  [document, overlay, mouseCatcher].forEach(function(el) {\n    el.addEventListener(\"mousemove\",  _onMouseMove);\n    el.addEventListener(\"touchstart\", _onTouchStart, { passive: true });\n  });\n  controlsBar.addEventListener(\"mouseenter\", stopControlsTimer);\n  controlsBar.addEventListener(\"mouseleave\", showControls);\n  \/\/ Firefox: unmute al primo gesto utente\n  overlay.addEventListener(\"click\",      _onFirstGesture);\n  overlay.addEventListener(\"touchstart\", _onFirstGesture, { passive: true });\n}\n\nfunction _detachMouseListeners() {\n  [document, overlay, mouseCatcher].forEach(function(el) {\n    el.removeEventListener(\"mousemove\",  _onMouseMove);\n    el.removeEventListener(\"touchstart\", _onTouchStart);\n  });\n  controlsBar.removeEventListener(\"mouseenter\", stopControlsTimer);\n  controlsBar.removeEventListener(\"mouseleave\", showControls);\n  clearTimeout(controlsHideTimer);\n}\n\nvid.addEventListener(\"play\",  function() { showControls(); });\nvid.addEventListener(\"pause\", function() { stopControlsTimer(); });\n\n\/\/ \u2500\u2500 FULLSCREEN CHANGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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\/\/ I listener mousemove vengono registrati solo DOPO che fullscreenchange\n\/\/ conferma che il fullscreen \u00e8 attivo \u2014 evita problemi di timing su Chrome.\n\nfunction _onFsChange() {\n  var stillFs = document.fullscreenElement\n             || document.webkitFullscreenElement\n             || document.mozFullScreenElement\n             || document.msFullscreenElement;\n  if (stillFs) {\n    _attachMouseListeners();\n    showControls();\n  } else {\n    if (isFullscreenOpen) {\n      isFullscreenOpen = false;\n      _detachMouseListeners();\n      _resetOverlay();\n    }\n  }\n}\n\ndocument.addEventListener(\"fullscreenchange\",       _onFsChange);\ndocument.addEventListener(\"webkitfullscreenchange\", _onFsChange);\ndocument.addEventListener(\"mozfullscreenchange\",    _onFsChange);\ndocument.addEventListener(\"MSFullscreenChange\",     _onFsChange);\n\n<\/script>\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-1b82929 e-con-full e-flex e-con e-parent\" data-id=\"1b82929\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-2ab9af6 e-con-full e-flex e-con e-child\" data-id=\"2ab9af6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7f7c7e3 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"7f7c7e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<canvas id=\"sequence-1\" width=\"1158\" height=\"770\"><\/canvas>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5921e6b e-con-full e-flex e-con e-child\" data-id=\"5921e6b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8758307 elementor-widget__width-initial bastaman animate elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"8758307\" 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\">Personalized<br>avatars<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e5069b elementor-widget__width-initial animate elementor-widget elementor-widget-heading\" data-id=\"9e5069b\" 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\">Fully custom digital avatars designed to capture identity, presence, and communication style\u2014whether based on real people or original characters.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4861df elementor-widget__width-initial animate elementor-widget elementor-widget-text-editor\" data-id=\"a4861df\" 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>A <strong>versatile output<\/strong> for brand communication, training videos, narrative performances, and <strong>virtual presenters<\/strong>, with <strong>full control<\/strong> over tone, look, and context.<\/p><h2><!-- notionvc: a1bc7f81-4059-4dfb-9c32-0151aa77f1cd --><\/h2><p><!-- notionvc: 8e14544d-ab5a-4206-a8aa-4c74a27c4fc3 --><\/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<\/div>\n\t\t<div class=\"elementor-element elementor-element-f0454f9 e-con-full e-flex e-con e-parent\" data-id=\"f0454f9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-7a517d1 e-con-full e-flex e-con e-child\" data-id=\"7a517d1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c60b8b1 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"c60b8b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<canvas id=\"sequence-2\" width=\"1158\" height=\"770\"><\/canvas>\n\n<script>\n\nfunction imageSequence(config) {\n  let playhead = { frame: 0 },\n      canvas = gsap.utils.toArray(config.canvas)[0] || console.warn(\"canvas not defined\"),\n      ctx = canvas.getContext(\"2d\"),\n      curFrame = -1,\n      onUpdate = config.onUpdate,\n      images,\n      updateImage = function() {\n        let frame = Math.round(playhead.frame);\n        if (frame !== curFrame) {\n          config.clear && ctx.clearRect(0, 0, canvas.width, canvas.height);\n          let img = images[Math.round(playhead.frame)];\n          let imgRatio = img.naturalWidth \/ img.naturalHeight;\n          let canvasRatio = canvas.width \/ canvas.height;\n          let isPortrait = canvasRatio < 1;\n          let drawWidth, drawHeight, offsetX, offsetY;\n\n          if (isPortrait) {\n            if (config.mobileRotate) {\n              ctx.clearRect(0, 0, canvas.width, canvas.height);\n              ctx.save();\n              ctx.translate(canvas.width \/ 2, canvas.height \/ 2);\n              ctx.rotate(Math.PI \/ 2);\n              let scale = Math.max(canvas.width \/ img.naturalHeight, canvas.height \/ img.naturalWidth);\n              let drawW = img.naturalWidth * scale;\n              let drawH = img.naturalHeight * scale;\n              ctx.drawImage(img, -drawW \/ 2, -drawH \/ 2, drawW, drawH);\n              ctx.restore();\n              curFrame = frame;\n              if (onUpdate) {\n                onUpdate.call(this, frame, images[frame]);\n              }\n              return;\n            }\n            if (canvasRatio > imgRatio) {\n              drawWidth  = canvas.width;\n              drawHeight = canvas.width \/ imgRatio;\n              offsetX = 0;\n              offsetY = (canvas.height - drawHeight) \/ 2;\n              ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n            } else {\n              drawHeight = canvas.height;\n              drawWidth  = canvas.height * imgRatio;\n              offsetY = 0;\n              let focusX = config.mobileFocus ?? 0.5;\n              let targetX   = canvas.width * focusX;\n              let imgFocusX = drawWidth * focusX;\n              offsetX = targetX - imgFocusX;\n              let scaleRatio = img.naturalWidth \/ drawWidth;\n              let srcX = (-offsetX) * scaleRatio;\n              let srcW = canvas.width * scaleRatio;\n              srcX = Math.max(0, Math.min(srcX, img.naturalWidth - srcW));\n              srcW = Math.min(srcW, img.naturalWidth - srcX);\n              ctx.drawImage(img, srcX, 0, srcW, img.naturalHeight, 0, 0, canvas.width, canvas.height);\n            }\n          } else {\n            if (canvasRatio > imgRatio) {\n              drawWidth  = canvas.width;\n              drawHeight = canvas.width \/ imgRatio;\n              offsetX = 0;\n              offsetY = (canvas.height - drawHeight) \/ 2;\n              ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n            } else {\n              drawHeight = canvas.height;\n              drawWidth  = canvas.height * imgRatio;\n              offsetY = 0;\n              offsetX = (canvas.width - drawWidth) \/ 2;\n              ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n            }\n          }\n\n          curFrame = frame;\n          if (onUpdate) {\n            onUpdate.call(this, frame, images[frame]);\n          }\n        }\n      };\n\n  canvas.width  = window.innerWidth;\n  canvas.height = window.innerHeight;\n\n  images = config.urls.map((url, i) => {\n    let img = new Image();\n    img.src = url;\n    i || (img.onload = updateImage);\n    return img;\n  });\n\n  gsap.to(playhead, {\n    frame: images.length - 1,\n    ease: \"none\",\n    onUpdate: updateImage,\n    duration: images.length \/ (config.fps || 30),\n    paused: !!config.paused,\n    scrollTrigger: config.scrollTrigger\n  });\n\n  window.addEventListener(\"resize\", () => {\n    canvas.width  = window.innerWidth;\n    canvas.height = window.innerHeight;\n    updateImage();\n  });\n\n  return { updateImage };\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n\n  let frameCount1 = 147;\n  let urls1 = new Array(frameCount1).fill().map((_, i) =>\n    `https:\/\/www.freshfruits.it\/wp-content\/uploads\/camaleonti\/camaleonti${i.toString().padStart(3, '0')}.jpg`\n  );\n\n  imageSequence({\n    urls: urls1,\n    canvas: \"#sequence-1\",\n    mobileFocus: 0.25,\n    scrollTrigger: {\n      trigger: \"#sequence-1\",\n      start: \"top bottom\",\n      end: \"center top\",\n      scrub: true,\n    }\n  });\n\n  let frameCount2 = 165;\n  let urls2 = new Array(frameCount2).fill().map((_, i) =>\n    `https:\/\/www.freshfruits.it\/wp-content\/uploads\/custom-workflows\/custom-workflows${i.toString().padStart(3, '0')}.jpg`\n  );\n\n  imageSequence({\n    urls: urls2,\n    canvas: \"#sequence-2\",\n    fps: 24,\n    mobileRotate: true,\n    scrollTrigger: {\n      trigger: \"#sequence-2\",\n      start: \"center bottom\",\n      end: \"25% top\",\n      scrub: true,\n    }\n  });\n\n});\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbfda27 e-con-full e-flex e-con e-child\" data-id=\"cbfda27\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8b8e35 elementor-widget__width-inherit bastaman animate elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"d8b8e35\" 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\">custom<br>workflows<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f03183a elementor-widget__width-initial animate elementor-widget elementor-widget-heading\" data-id=\"f03183a\" 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\">Fresh Fruits defines timelines, visual styles, formats, and content volumes to match each brand\u2019s operational needs and creative goals. <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4618846 elementor-widget__width-initial animate elementor-widget elementor-widget-text-editor\" data-id=\"4618846\" 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>Then we build <strong>custom AI agents<\/strong> that automate our workflows, built around your specific way of working. They streamline the production chain, ensuring greater speed, consistency, and a reduction in technical errors.<\/p><h2><!-- notionvc: a1bc7f81-4059-4dfb-9c32-0151aa77f1cd --><\/h2><p><!-- notionvc: 8e14544d-ab5a-4206-a8aa-4c74a27c4fc3 --><\/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<\/div>\n\t\t<div class=\"elementor-element elementor-element-5253a71 e-con-full e-flex e-con e-parent\" data-id=\"5253a71\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615fa7c elementor-widget__width-initial bastaman animate elementor-widget elementor-widget-heading\" data-id=\"615fa7c\" 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\">follow us<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f6411bd e-flex e-con-boxed e-con e-parent\" data-id=\"f6411bd\" 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-d7427de elementor-widget elementor-widget-sbi-widget\" data-id=\"d7427de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"sbi-widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<div id=\"sb_instagram\"  class=\"sbi sbi_mob_col_1 sbi_tab_col_2 sbi_col_4 sbi_width_resp\" style=\"padding-bottom: 10px;\"\t data-feedid=\"*3\"  data-res=\"auto\" data-cols=\"4\" data-colsmobile=\"1\" data-colstablet=\"2\" data-num=\"4\" data-nummobile=\"4\" data-item-padding=\"5\"\t data-shortcode-atts=\"{&quot;feed&quot;:&quot;3&quot;}\"  data-postid=\"7019\" data-locatornonce=\"46e32885cd\" data-imageaspectratio=\"1:1\" data-sbi-flags=\"favorLocal\">\n\t<div class=\"sb_instagram_header  sbi_medium\"   >\n\t<a class=\"sbi_header_link\" target=\"_blank\" rel=\"nofollow noopener\" href=\"https:\/\/www.instagram.com\/freshfruits.ai\/\" title=\"@freshfruits.ai\">\n\t\t<div class=\"sbi_header_text\">\n\t\t\t<div class=\"sbi_header_img\"  data-avatar-url=\"https:\/\/scontent-fco2-1.cdninstagram.com\/v\/t51.82787-19\/659228472_17874741426606125_669633099605794215_n.jpg?stp=dst-jpg_s206x206_tt6&amp;_nc_cat=103&amp;ccb=7-5&amp;_nc_sid=bf7eb4&amp;efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&amp;_nc_ohc=d8mxcxmFKeEQ7kNvwEZ2Mf8&amp;_nc_oc=AdqXxys6WOHz8Nf3TmjS7Tv0AZvExtJR6_Lvcn14nJqyAUzl8rkDEAUwTCoIrP8637U&amp;_nc_zt=24&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=AP4hL3IEAAAA&amp;_nc_gid=eBxAlaABxZx49wvJUokM9Q&amp;_nc_tpa=Q5bMBQJ2W4mcBujuzSJp-BZ6X8tB_n1I8TakALAVAXWm30Fa2VmFm2Ye3yUrouOZNULhEe75IR2xsDCcZg&amp;oh=00_AQJUUNEGTLm1enr3DELToJEgJTN8dK84OQgpMKYa0z9D4A&amp;oe=6AAA706F\">\n\t\t\t\t\t\t\t\t\t<div class=\"sbi_header_img_hover\"  ><svg class=\"sbi_new_logo fa-instagram fa-w-14\" aria-hidden=\"true\" data-fa-processed=\"\" aria-label=\"Instagram\" data-prefix=\"fab\" data-icon=\"instagram\" role=\"img\" viewBox=\"0 0 448 512\">\n                    <path fill=\"currentColor\" d=\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"><\/path>\n                <\/svg><\/div>\n\t\t\t\t\t<img decoding=\"async\"  data-src=\"https:\/\/www.freshfruits.it\/wp-content\/uploads\/2026\/05\/cropped-hf_20260506_135640_6e891c5d-3067-42cb-ad7b-6ce3ff56dd4f.png\" alt=\"\" width=\"50\" height=\"50\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 50px; --smush-placeholder-aspect-ratio: 50\/50;\">\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t<div class=\"sbi_feedtheme_header_text\">\n\t\t\t\t<h3 style=\"color: rgb(255,255,255);\">freshfruits.ai<\/h3>\n\t\t\t\t\t\t\t\t\t<p class=\"sbi_bio\" style=\"color: rgb(255,255,255);\">Welcome to Fresh Fruits, a creative AI production studio that brings together expertise rooted in traditional audiovisual industries\ud83c\udf4a\ud83c\udf4e\ud83e\udd5d<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t<\/a>\n<\/div>\n\n\t<div id=\"sbi_images\"  style=\"gap: 10px;\">\n\t\t<div class=\"sbi_item sbi_type_video sbi_new sbi_transition\"\n\tid=\"sbi_17898854157442201\" data-date=\"1778355689\">\n\t<div class=\"sbi_photo_wrap\">\n\t\t<a class=\"sbi_photo\" href=\"https:\/\/www.instagram.com\/reel\/DYIUILNNxXF\/\" target=\"_blank\" rel=\"noopener nofollow\" data-full-res=\"https:\/\/scontent-fco2-1.cdninstagram.com\/v\/t51.71878-15\/684595351_808554242057357_4443812523362492428_n.jpg?stp=dst-jpg_e35_tt6&#038;_nc_cat=110&#038;ccb=7-5&#038;_nc_sid=18de74&#038;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&#038;_nc_ohc=TrM4psOlfnIQ7kNvwGsuP8h&#038;_nc_oc=AdqxtU12pcETEY-vu6nLmEUN3__9yAlfMTr6zlG0IF08-7JCSDp3mL9PD-WuyBSBraE&#038;_nc_zt=23&#038;_nc_ht=scontent-fco2-1.cdninstagram.com&#038;edm=ANo9K5cEAAAA&#038;_nc_gid=KQToktCvTMMBmydeIojHoA&#038;_nc_tpa=Q5bMBQIITqcybtMwQTH79n-yQHzdE_pTU6eePjzgWLfa2RNkXwni4ekPP7VTixAoykwL8GEZp7FWWslgFA&#038;oh=00_AQKsutpH4uRyi-B9iQecoJgQFv5xjT0L7s2DwOhw6t4bmw&#038;oe=6AAA77B3\" data-img-src-set=\"{&quot;d&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/684595351_808554242057357_4443812523362492428_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=110&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=TrM4psOlfnIQ7kNvwGsuP8h&amp;_nc_oc=AdqxtU12pcETEY-vu6nLmEUN3__9yAlfMTr6zlG0IF08-7JCSDp3mL9PD-WuyBSBraE&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQIITqcybtMwQTH79n-yQHzdE_pTU6eePjzgWLfa2RNkXwni4ekPP7VTixAoykwL8GEZp7FWWslgFA&amp;oh=00_AQKsutpH4uRyi-B9iQecoJgQFv5xjT0L7s2DwOhw6t4bmw&amp;oe=6AAA77B3&quot;,&quot;150&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/684595351_808554242057357_4443812523362492428_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=110&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=TrM4psOlfnIQ7kNvwGsuP8h&amp;_nc_oc=AdqxtU12pcETEY-vu6nLmEUN3__9yAlfMTr6zlG0IF08-7JCSDp3mL9PD-WuyBSBraE&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQIITqcybtMwQTH79n-yQHzdE_pTU6eePjzgWLfa2RNkXwni4ekPP7VTixAoykwL8GEZp7FWWslgFA&amp;oh=00_AQKsutpH4uRyi-B9iQecoJgQFv5xjT0L7s2DwOhw6t4bmw&amp;oe=6AAA77B3&quot;,&quot;320&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/684595351_808554242057357_4443812523362492428_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=110&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=TrM4psOlfnIQ7kNvwGsuP8h&amp;_nc_oc=AdqxtU12pcETEY-vu6nLmEUN3__9yAlfMTr6zlG0IF08-7JCSDp3mL9PD-WuyBSBraE&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQIITqcybtMwQTH79n-yQHzdE_pTU6eePjzgWLfa2RNkXwni4ekPP7VTixAoykwL8GEZp7FWWslgFA&amp;oh=00_AQKsutpH4uRyi-B9iQecoJgQFv5xjT0L7s2DwOhw6t4bmw&amp;oe=6AAA77B3&quot;,&quot;640&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/684595351_808554242057357_4443812523362492428_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=110&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=TrM4psOlfnIQ7kNvwGsuP8h&amp;_nc_oc=AdqxtU12pcETEY-vu6nLmEUN3__9yAlfMTr6zlG0IF08-7JCSDp3mL9PD-WuyBSBraE&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQIITqcybtMwQTH79n-yQHzdE_pTU6eePjzgWLfa2RNkXwni4ekPP7VTixAoykwL8GEZp7FWWslgFA&amp;oh=00_AQKsutpH4uRyi-B9iQecoJgQFv5xjT0L7s2DwOhw6t4bmw&amp;oe=6AAA77B3&quot;}\">\n\t\t\t<span class=\"sbi-screenreader\">Our FILM-NARRATIVE 2026 reel:\n\nStorytelling at any<\/span>\n\t\t\t\t\t\t<svg style=\"color: rgba(255,255,255,1)\" class=\"svg-inline--fa fa-play fa-w-14 sbi_playbtn\" aria-label=\"Play\" aria-hidden=\"true\" data-fa-processed=\"\" data-prefix=\"fa\" data-icon=\"play\" role=\"presentation\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"><\/path><\/svg>\t\t\t<img decoding=\"async\" data-src=\"https:\/\/www.freshfruits.it\/wp-content\/plugins\/instagram-feed\/img\/placeholder.png\" alt=\"Our FILM-NARRATIVE 2026 reel:\n\nStorytelling at any scale: shorts, documentaries, and feature films,\nblending creative vision with next-gen synthetic cinematography to\ndeliver stories that feel emotional, coherent, and contemporary.\" aria-hidden=\"true\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/560;\">\n\t\t<\/a>\n\t<\/div>\n<\/div><div class=\"sbi_item sbi_type_video sbi_new sbi_transition\"\n\tid=\"sbi_18182451898347016\" data-date=\"1778355427\">\n\t<div class=\"sbi_photo_wrap\">\n\t\t<a class=\"sbi_photo\" href=\"https:\/\/www.instagram.com\/reel\/DYIT1pNNgZE\/\" target=\"_blank\" rel=\"noopener nofollow\" data-full-res=\"https:\/\/scontent-fco2-1.cdninstagram.com\/v\/t51.71878-15\/692697796_4453820844863707_6532110074195941646_n.jpg?stp=dst-jpg_e35_tt6&#038;_nc_cat=111&#038;ccb=7-5&#038;_nc_sid=18de74&#038;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&#038;_nc_ohc=G7LykIjwDAgQ7kNvwE98hUt&#038;_nc_oc=AdrrWFKabG9O652q5Ga5RRC5sPHP-uqvaqwtpCBh5l9TtNodten-uaIT6bwGrfTMlg8&#038;_nc_zt=23&#038;_nc_ht=scontent-fco2-1.cdninstagram.com&#038;edm=ANo9K5cEAAAA&#038;_nc_gid=KQToktCvTMMBmydeIojHoA&#038;_nc_tpa=Q5bMBQI9fd-LOnJGjGW90PTG4apnKHD0ENYpkrqs8rUyP_zSz9R1u3OZnUXLfg-_ZV-lmpSoH8aFtMqucw&#038;oh=00_AQLFJ5TYbvXDpe6N14e-zGfJv54u7bfSZmAFPWcxXyLAIQ&#038;oe=6AAA7213\" data-img-src-set=\"{&quot;d&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/692697796_4453820844863707_6532110074195941646_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=111&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=G7LykIjwDAgQ7kNvwE98hUt&amp;_nc_oc=AdrrWFKabG9O652q5Ga5RRC5sPHP-uqvaqwtpCBh5l9TtNodten-uaIT6bwGrfTMlg8&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQI9fd-LOnJGjGW90PTG4apnKHD0ENYpkrqs8rUyP_zSz9R1u3OZnUXLfg-_ZV-lmpSoH8aFtMqucw&amp;oh=00_AQLFJ5TYbvXDpe6N14e-zGfJv54u7bfSZmAFPWcxXyLAIQ&amp;oe=6AAA7213&quot;,&quot;150&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/692697796_4453820844863707_6532110074195941646_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=111&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=G7LykIjwDAgQ7kNvwE98hUt&amp;_nc_oc=AdrrWFKabG9O652q5Ga5RRC5sPHP-uqvaqwtpCBh5l9TtNodten-uaIT6bwGrfTMlg8&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQI9fd-LOnJGjGW90PTG4apnKHD0ENYpkrqs8rUyP_zSz9R1u3OZnUXLfg-_ZV-lmpSoH8aFtMqucw&amp;oh=00_AQLFJ5TYbvXDpe6N14e-zGfJv54u7bfSZmAFPWcxXyLAIQ&amp;oe=6AAA7213&quot;,&quot;320&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/692697796_4453820844863707_6532110074195941646_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=111&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=G7LykIjwDAgQ7kNvwE98hUt&amp;_nc_oc=AdrrWFKabG9O652q5Ga5RRC5sPHP-uqvaqwtpCBh5l9TtNodten-uaIT6bwGrfTMlg8&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQI9fd-LOnJGjGW90PTG4apnKHD0ENYpkrqs8rUyP_zSz9R1u3OZnUXLfg-_ZV-lmpSoH8aFtMqucw&amp;oh=00_AQLFJ5TYbvXDpe6N14e-zGfJv54u7bfSZmAFPWcxXyLAIQ&amp;oe=6AAA7213&quot;,&quot;640&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/692697796_4453820844863707_6532110074195941646_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=111&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=G7LykIjwDAgQ7kNvwE98hUt&amp;_nc_oc=AdrrWFKabG9O652q5Ga5RRC5sPHP-uqvaqwtpCBh5l9TtNodten-uaIT6bwGrfTMlg8&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQI9fd-LOnJGjGW90PTG4apnKHD0ENYpkrqs8rUyP_zSz9R1u3OZnUXLfg-_ZV-lmpSoH8aFtMqucw&amp;oh=00_AQLFJ5TYbvXDpe6N14e-zGfJv54u7bfSZmAFPWcxXyLAIQ&amp;oe=6AAA7213&quot;}\">\n\t\t\t<span class=\"sbi-screenreader\">Our beauty reel for \u201cCosmoprof\u201d 2026, Bologna.<\/span>\n\t\t\t\t\t\t<svg style=\"color: rgba(255,255,255,1)\" class=\"svg-inline--fa fa-play fa-w-14 sbi_playbtn\" aria-label=\"Play\" aria-hidden=\"true\" data-fa-processed=\"\" data-prefix=\"fa\" data-icon=\"play\" role=\"presentation\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"><\/path><\/svg>\t\t\t<img decoding=\"async\" data-src=\"https:\/\/www.freshfruits.it\/wp-content\/plugins\/instagram-feed\/img\/placeholder.png\" alt=\"Our beauty reel for \u201cCosmoprof\u201d 2026, Bologna.\" aria-hidden=\"true\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/560;\">\n\t\t<\/a>\n\t<\/div>\n<\/div><div class=\"sbi_item sbi_type_video sbi_new sbi_transition\"\n\tid=\"sbi_18091785061964244\" data-date=\"1778354996\">\n\t<div class=\"sbi_photo_wrap\">\n\t\t<a class=\"sbi_photo\" href=\"https:\/\/www.instagram.com\/reel\/DYIS64ZNKsO\/\" target=\"_blank\" rel=\"noopener nofollow\" data-full-res=\"https:\/\/scontent-fco2-1.cdninstagram.com\/v\/t51.71878-15\/686357072_976178018470201_5997723848639657218_n.jpg?stp=dst-jpg_e35_tt6&#038;_nc_cat=108&#038;ccb=7-5&#038;_nc_sid=18de74&#038;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&#038;_nc_ohc=SE5f8hNjdsMQ7kNvwF1g9SJ&#038;_nc_oc=AdrDjjNhi7VN9SGKcFrTYQc5zWtmKxvxJd7XYu6-xfZohwyjpP_zZrT7ft3oF5rSyx0&#038;_nc_zt=23&#038;_nc_ht=scontent-fco2-1.cdninstagram.com&#038;edm=ANo9K5cEAAAA&#038;_nc_gid=KQToktCvTMMBmydeIojHoA&#038;_nc_tpa=Q5bMBQJ4B6mcB_Los2-6oUVgqW_kjvmxc_WBFB584XJo-lUCn8lTC41Flm8D4xkSVpYt0PPPoXDRZGTMeg&#038;oh=00_AQI1wD8zZTWwrh4CAIAd49TrWgON7w4dsTxxDFrfTK1iPw&#038;oe=6AAA765F\" data-img-src-set=\"{&quot;d&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/686357072_976178018470201_5997723848639657218_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=108&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=SE5f8hNjdsMQ7kNvwF1g9SJ&amp;_nc_oc=AdrDjjNhi7VN9SGKcFrTYQc5zWtmKxvxJd7XYu6-xfZohwyjpP_zZrT7ft3oF5rSyx0&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQJ4B6mcB_Los2-6oUVgqW_kjvmxc_WBFB584XJo-lUCn8lTC41Flm8D4xkSVpYt0PPPoXDRZGTMeg&amp;oh=00_AQI1wD8zZTWwrh4CAIAd49TrWgON7w4dsTxxDFrfTK1iPw&amp;oe=6AAA765F&quot;,&quot;150&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/686357072_976178018470201_5997723848639657218_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=108&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=SE5f8hNjdsMQ7kNvwF1g9SJ&amp;_nc_oc=AdrDjjNhi7VN9SGKcFrTYQc5zWtmKxvxJd7XYu6-xfZohwyjpP_zZrT7ft3oF5rSyx0&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQJ4B6mcB_Los2-6oUVgqW_kjvmxc_WBFB584XJo-lUCn8lTC41Flm8D4xkSVpYt0PPPoXDRZGTMeg&amp;oh=00_AQI1wD8zZTWwrh4CAIAd49TrWgON7w4dsTxxDFrfTK1iPw&amp;oe=6AAA765F&quot;,&quot;320&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/686357072_976178018470201_5997723848639657218_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=108&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=SE5f8hNjdsMQ7kNvwF1g9SJ&amp;_nc_oc=AdrDjjNhi7VN9SGKcFrTYQc5zWtmKxvxJd7XYu6-xfZohwyjpP_zZrT7ft3oF5rSyx0&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQJ4B6mcB_Los2-6oUVgqW_kjvmxc_WBFB584XJo-lUCn8lTC41Flm8D4xkSVpYt0PPPoXDRZGTMeg&amp;oh=00_AQI1wD8zZTWwrh4CAIAd49TrWgON7w4dsTxxDFrfTK1iPw&amp;oe=6AAA765F&quot;,&quot;640&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.71878-15\\\/686357072_976178018470201_5997723848639657218_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=108&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=SE5f8hNjdsMQ7kNvwF1g9SJ&amp;_nc_oc=AdrDjjNhi7VN9SGKcFrTYQc5zWtmKxvxJd7XYu6-xfZohwyjpP_zZrT7ft3oF5rSyx0&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQJ4B6mcB_Los2-6oUVgqW_kjvmxc_WBFB584XJo-lUCn8lTC41Flm8D4xkSVpYt0PPPoXDRZGTMeg&amp;oh=00_AQI1wD8zZTWwrh4CAIAd49TrWgON7w4dsTxxDFrfTK1iPw&amp;oe=6AAA765F&quot;}\">\n\t\t\t<span class=\"sbi-screenreader\">Our ADV reel 2026:\n\nCinematic imagery that defines<\/span>\n\t\t\t\t\t\t<svg style=\"color: rgba(255,255,255,1)\" class=\"svg-inline--fa fa-play fa-w-14 sbi_playbtn\" aria-label=\"Play\" aria-hidden=\"true\" data-fa-processed=\"\" data-prefix=\"fa\" data-icon=\"play\" role=\"presentation\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"><\/path><\/svg>\t\t\t<img decoding=\"async\" data-src=\"https:\/\/www.freshfruits.it\/wp-content\/plugins\/instagram-feed\/img\/placeholder.png\" alt=\"Our ADV reel 2026:\n\nCinematic imagery that defines the brand for product launches,\nidentity campaigns, and large-scale advertising. Beyond production,\nsupport across planning and execution of full social campaigns: creative concepts and multi-format variations tailored to each\nplatform.\n\n#freshfruits #ai #aiartist #aicommunity #aigenerated\" aria-hidden=\"true\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/560;\">\n\t\t<\/a>\n\t<\/div>\n<\/div><div class=\"sbi_item sbi_type_video sbi_new sbi_transition\"\n\tid=\"sbi_17890939614469975\" data-date=\"1778093405\">\n\t<div class=\"sbi_photo_wrap\">\n\t\t<a class=\"sbi_photo\" href=\"https:\/\/www.instagram.com\/reel\/DYAfmjXvpZg\/\" target=\"_blank\" rel=\"noopener nofollow\" data-full-res=\"https:\/\/scontent-fco2-1.cdninstagram.com\/v\/t51.82787-15\/659067386_17874788055606125_139721586028072593_n.jpg?stp=dst-jpg_e35_tt6&#038;_nc_cat=107&#038;ccb=7-5&#038;_nc_sid=18de74&#038;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&#038;_nc_ohc=xvMwbUJGRH4Q7kNvwHqY1KV&#038;_nc_oc=AdqVhmX88TQAK6X8ccUY11m1UI25-IjO6pBRLsl_JlCNm3pFwp9Z0g2V99aqgVR32ec&#038;_nc_zt=23&#038;_nc_ht=scontent-fco2-1.cdninstagram.com&#038;edm=ANo9K5cEAAAA&#038;_nc_gid=KQToktCvTMMBmydeIojHoA&#038;_nc_tpa=Q5bMBQLILziZj6YcGaR3zJd6Y_1TuNrBw7IQlL3QAsKX-BJ5TDeXjhc326D-dgQKRypH4AGKvG1c3zHXUQ&#038;oh=00_AQLdnZ8X4bdy6R9TtmgEfA9i6uwap95_hFkgwwNSy7lTlw&#038;oe=6AAA5515\" data-img-src-set=\"{&quot;d&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.82787-15\\\/659067386_17874788055606125_139721586028072593_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=107&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=xvMwbUJGRH4Q7kNvwHqY1KV&amp;_nc_oc=AdqVhmX88TQAK6X8ccUY11m1UI25-IjO6pBRLsl_JlCNm3pFwp9Z0g2V99aqgVR32ec&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQLILziZj6YcGaR3zJd6Y_1TuNrBw7IQlL3QAsKX-BJ5TDeXjhc326D-dgQKRypH4AGKvG1c3zHXUQ&amp;oh=00_AQLdnZ8X4bdy6R9TtmgEfA9i6uwap95_hFkgwwNSy7lTlw&amp;oe=6AAA5515&quot;,&quot;150&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.82787-15\\\/659067386_17874788055606125_139721586028072593_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=107&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=xvMwbUJGRH4Q7kNvwHqY1KV&amp;_nc_oc=AdqVhmX88TQAK6X8ccUY11m1UI25-IjO6pBRLsl_JlCNm3pFwp9Z0g2V99aqgVR32ec&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQLILziZj6YcGaR3zJd6Y_1TuNrBw7IQlL3QAsKX-BJ5TDeXjhc326D-dgQKRypH4AGKvG1c3zHXUQ&amp;oh=00_AQLdnZ8X4bdy6R9TtmgEfA9i6uwap95_hFkgwwNSy7lTlw&amp;oe=6AAA5515&quot;,&quot;320&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.82787-15\\\/659067386_17874788055606125_139721586028072593_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=107&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=xvMwbUJGRH4Q7kNvwHqY1KV&amp;_nc_oc=AdqVhmX88TQAK6X8ccUY11m1UI25-IjO6pBRLsl_JlCNm3pFwp9Z0g2V99aqgVR32ec&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQLILziZj6YcGaR3zJd6Y_1TuNrBw7IQlL3QAsKX-BJ5TDeXjhc326D-dgQKRypH4AGKvG1c3zHXUQ&amp;oh=00_AQLdnZ8X4bdy6R9TtmgEfA9i6uwap95_hFkgwwNSy7lTlw&amp;oe=6AAA5515&quot;,&quot;640&quot;:&quot;https:\\\/\\\/scontent-fco2-1.cdninstagram.com\\\/v\\\/t51.82787-15\\\/659067386_17874788055606125_139721586028072593_n.jpg?stp=dst-jpg_e35_tt6&amp;_nc_cat=107&amp;ccb=7-5&amp;_nc_sid=18de74&amp;efg=eyJlZmdfdGFnIjoiQ0xJUFMuYmVzdF9pbWFnZV91cmxnZW4uQzMifQ%3D%3D&amp;_nc_ohc=xvMwbUJGRH4Q7kNvwHqY1KV&amp;_nc_oc=AdqVhmX88TQAK6X8ccUY11m1UI25-IjO6pBRLsl_JlCNm3pFwp9Z0g2V99aqgVR32ec&amp;_nc_zt=23&amp;_nc_ht=scontent-fco2-1.cdninstagram.com&amp;edm=ANo9K5cEAAAA&amp;_nc_gid=KQToktCvTMMBmydeIojHoA&amp;_nc_tpa=Q5bMBQLILziZj6YcGaR3zJd6Y_1TuNrBw7IQlL3QAsKX-BJ5TDeXjhc326D-dgQKRypH4AGKvG1c3zHXUQ&amp;oh=00_AQLdnZ8X4bdy6R9TtmgEfA9i6uwap95_hFkgwwNSy7lTlw&amp;oe=6AAA5515&quot;}\">\n\t\t\t<span class=\"sbi-screenreader\">Our FOOD&amp;BEVERAGE 2026 Reel:\n\nWe produce premium f<\/span>\n\t\t\t\t\t\t<svg style=\"color: rgba(255,255,255,1)\" class=\"svg-inline--fa fa-play fa-w-14 sbi_playbtn\" aria-label=\"Play\" aria-hidden=\"true\" data-fa-processed=\"\" data-prefix=\"fa\" data-icon=\"play\" role=\"presentation\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"><\/path><\/svg>\t\t\t<img decoding=\"async\" data-src=\"https:\/\/www.freshfruits.it\/wp-content\/plugins\/instagram-feed\/img\/placeholder.png\" alt=\"Our FOOD&amp;BEVERAGE 2026 Reel:\n\nWe produce premium food &amp; beverage photos and videos with a focus on texture, light, and appetite appeal. We translate traditional production techniques into an AI-first workflow: motion control and robot-arm precision, high-speed capture for micro-actions and fine details, enabling fast variations and multi-format outputs.\" aria-hidden=\"true\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/560;\">\n\t\t<\/a>\n\t<\/div>\n<\/div>\t<\/div>\n\n\t<div id=\"sbi_load\" >\n\n\t\t\t<button class=\"sbi_load_btn\"\n\t\t\ttype=\"button\" >\n\t\t\t<span class=\"sbi_btn_text\" >Carica altro<\/span>\n\t\t\t<span class=\"sbi_loader sbi_hidden\" style=\"background-color: rgb(255, 255, 255);\" aria-hidden=\"true\"><\/span>\n\t\t<\/button>\n\t\n\t\t\t<span class=\"sbi_follow_btn sbi_custom\" >\n\t\t\t<a target=\"_blank\" rel=\"nofollow noopener\" href=\"https:\/\/www.instagram.com\/freshfruits.ai\/\" style=\"background: rgb(64,139,209);\">\n\t\t\t\t<svg class=\"svg-inline--fa fa-instagram fa-w-14\" aria-hidden=\"true\" data-fa-processed=\"\" aria-label=\"Instagram\" data-prefix=\"fab\" data-icon=\"instagram\" role=\"img\" viewBox=\"0 0 448 512\">\n                    <path fill=\"currentColor\" d=\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"><\/path>\n                <\/svg>\t\t\t\t<span>Segui su Instagram<\/span>\n\t\t\t<\/a>\n\t\t<\/span>\n\t\n<\/div>\n\t\t<span class=\"sbi_resized_image_data\" data-feed-id=\"*3\"\n\t\t  data-resized=\"{&quot;17898854157442201&quot;:{&quot;id&quot;:&quot;684595351_808554242057357_4443812523362492428_n&quot;,&quot;ratio&quot;:&quot;2.37&quot;,&quot;sizes&quot;:{&quot;full&quot;:640,&quot;low&quot;:320,&quot;thumb&quot;:150},&quot;extension&quot;:&quot;.webp&quot;},&quot;18182451898347016&quot;:{&quot;id&quot;:&quot;692697796_4453820844863707_6532110074195941646_n&quot;,&quot;ratio&quot;:&quot;2.37&quot;,&quot;sizes&quot;:{&quot;full&quot;:640,&quot;low&quot;:320,&quot;thumb&quot;:150},&quot;extension&quot;:&quot;.webp&quot;},&quot;18091785061964244&quot;:{&quot;id&quot;:&quot;686357072_976178018470201_5997723848639657218_n&quot;,&quot;ratio&quot;:&quot;2.37&quot;,&quot;sizes&quot;:{&quot;full&quot;:640,&quot;low&quot;:320,&quot;thumb&quot;:150},&quot;extension&quot;:&quot;.webp&quot;},&quot;17890939614469975&quot;:{&quot;id&quot;:&quot;659067386_17874788055606125_139721586028072593_n&quot;,&quot;ratio&quot;:&quot;1.78&quot;,&quot;sizes&quot;:{&quot;full&quot;:640,&quot;low&quot;:320,&quot;thumb&quot;:150},&quot;extension&quot;:&quot;.webp&quot;}}\">\n\t<\/span>\n\t<\/div>\n\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-10fdd19 e-flex e-con-boxed e-con e-parent\" data-id=\"10fdd19\" data-element_type=\"container\" data-e-type=\"container\" id=\"contact\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40fe549 elementor-widget__width-inherit bastaman animate elementor-widget elementor-widget-heading\" data-id=\"40fe549\" 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\">contact us<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b209172 animate eael-contact-form-7-button-align-left eael-contact-form-7-button-custom elementor-widget elementor-widget-eael-contact-form-7\" data-id=\"b209172\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-contact-form-7.default\">\n\t\t\t\t\t<div class=\"eael-contact-form-7-wrapper\">\n                <div class=\"eael-contact-form eael-contact-form-7 eael-contact-form-b209172 placeholder-show eael-contact-form-align-default\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f3785-o1\" lang=\"it-IT\" dir=\"ltr\" data-wpcf7-id=\"3785\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/it\/wp-json\/wp\/v2\/pages\/7019#wpcf7-f3785-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Modulo di contatto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"3785\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"it_IT\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f3785-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<p><label> Name<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" autocomplete=\"name\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span> <\/label>\n<\/p>\n<p><label> Email<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" autocomplete=\"email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span> <\/label>\n<\/p>\n<p><label> Message<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" name=\"your-message\"><\/textarea><\/span> <\/label>\n<\/p>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Invia\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n            <\/div>\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-5918f0b e-con-full e-flex e-con e-parent\" data-id=\"5918f0b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a9f0d4 elementor-widget__width-inherit footer-video elementor-widget elementor-widget-html\" data-id=\"7a9f0d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<video width=\"100%\" height=\"100%\" muted autoplay playsinline loop>\n  <source src=\"https:\/\/www.freshfruits.it\/wp-content\/uploads\/2026\/03\/hf_20260227_211724_6b82ae42-f71c-464a-8574-d5c9832e8c43.webm\" type=\"video\/webm\">\n  <source src=\"https:\/\/www.freshfruits.it\/wp-content\/uploads\/2026\/02\/hf_20260227_211724_6b82ae42-f71c-464a-8574-d5c9832e8c43.mp4\" type=\"video\/mp4\">\n<\/video>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-483110e e-flex e-con-boxed e-con e-parent\" data-id=\"483110e\" 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-cc6be97 elementor-widget elementor-widget-html\" data-id=\"cc6be97\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n\/\/ ---- PANELS ----\nlet panelTriggers = [];\n\nfunction initPanels() {\n  panelTriggers.forEach(st => st.kill());\n  panelTriggers = [];\n\n  var panels = gsap.utils.toArray(\".section\");\n  panels.pop();\n\n  panels.forEach((panel) => {\n    panel.style.marginBottom = \"\";\n\n    let innerpanel = panel.querySelector(\".section-inner\");\n    let panelHeight = innerpanel.offsetHeight;\n    let windowHeight = window.innerHeight;\n    let difference = panelHeight - windowHeight;\n    let fakeScrollRatio = difference > 0 ? (difference \/ (difference + windowHeight)) : 0;\n\n    if (fakeScrollRatio) {\n      panel.style.marginBottom = panelHeight * fakeScrollRatio + \"px\";\n    }\n\n    let tl = gsap.timeline({\n      scrollTrigger: {\n        trigger: panel,\n        start: \"bottom bottom\",\n        end: () => fakeScrollRatio ? `+=${innerpanel.offsetHeight}` : `+=${window.innerHeight}`,\n        pinSpacing: false,\n        scrub: true,\n        pin: true,\n      }\n    });\n\n    panelTriggers.push(tl.scrollTrigger);\n    tl.fromTo(panel, { scale: 1, opacity: 1 }, { scale: 0.7, opacity: 0.5, duration: 0.9 })\n      .to(panel, { opacity: 0, duration: 0.1 });\n  });\n}\n\n\/\/ ---- SPLITTEXT ----\nconst splitInstances = [];\n\nfunction initSplitText() {\n  const elements = gsap.utils.toArray(TARGET_CLASS);\n  elements.forEach((el) => {\n    const split = SplitText.create(el, {\n      type: 'words,lines',\n      mask: 'lines',\n      linesClass: 'line',\n      autoSplit: false,\n      onSplit: (instance) => {\n          gsap.set(el, { opacity: 1 });\n          return gsap.fromTo(instance.lines, \n            { yPercent: 115 },  \/\/ \u2190 stato iniziale sempre esplicito\n            {\n              yPercent: 0,\n              stagger: 0.08,\n              ease: 'power3.out',\n              scrollTrigger: {\n                trigger: el,\n                start: 'top 95%',\n                end: 'top 40%',\n                scrub: true,\n              }\n            }\n          );\n        }\n    });\n    splitInstances.push(split);\n  });\n}\n\n\/\/ ---- INIT ----\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  initPanels();\n  initSplitText();\n\n  ScrollTrigger.config({ ignoreMobileResize: true });\n\n  \/\/ GSAP chiama refreshInit prima di ogni refresh:\n  \/\/ \u00e8 il momento giusto per aggiornare il layout\n  ScrollTrigger.addEventListener(\"refreshInit\", () => {\n  initPanels();\n  splitInstances.forEach(split => {\n    split.revert(); \/\/ \u2190 pulisce animazione e DOM\n    split.split();  \/\/ \u2190 ricrea da zero\n  });\n});\n});\n\nwindow.addEventListener(\"load\", () => {\n  ScrollTrigger.refresh();\n});\n\nlet lastWidth = window.innerWidth;\nlet lastHeight = window.innerHeight;\n\nfunction onResizeEnd() {\n  const newWidth = window.innerWidth;\n  const newHeight = window.innerHeight;\n  \n  if (newWidth !== lastWidth || newHeight !== lastHeight) {\n    lastWidth = newWidth;\n    lastHeight = newHeight;\n    initPanels();\n    ScrollTrigger.refresh();\n  }\n}\n\nfunction checkResize() {\n  if (window.innerWidth !== lastWidth || window.innerHeight !== lastHeight) {\n    \/\/ Dimensioni ancora in cambiamento, ricontrolla al prossimo frame\n    requestAnimationFrame(checkResize);\n  } else {\n    \/\/ Dimensioni stabili, aggiorna\n    onResizeEnd();\n  }\n}\n\nwindow.addEventListener(\"resize\", () => {\n  requestAnimationFrame(checkResize);\n});\n<\/script>\n<style>\n    header>div, footer>div {\n        background: transparent !important;\n    }\n    \n    header {\n    \tposition: fixed !important;\n    }\n    footer > div {\n    \tposition: absolute !important;\n    }\n<\/style>\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>fresh fruits We are a creative AI production studio that brings together expertise rooted in traditional audiovisual industries. CONSISTENCY &#8211; REALISM &#8211; SPEED &#8211; ADV &#8211; commercial Cinematic imagery that defines the brand for product launches, identity campaigns, and large-scale advertising. Beyond production, support across planning and execution of full social campaigns: creative concepts and [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-sidebar","meta":{"footnotes":""},"class_list":["post-7019","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/pages\/7019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/comments?post=7019"}],"version-history":[{"count":0,"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/pages\/7019\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.freshfruits.it\/it\/wp-json\/wp\/v2\/media?parent=7019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}