{"id":15015,"date":"2025-10-13T09:47:04","date_gmt":"2025-10-13T09:47:04","guid":{"rendered":"https:\/\/staging.cruisepal.com\/%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8\/"},"modified":"2026-04-20T05:02:01","modified_gmt":"2026-04-20T05:02:01","slug":"%e3%83%9b%e3%83%bc%e3%83%a0%e3%83%9a%e3%83%bc%e3%82%b8","status":"publish","type":"page","link":"https:\/\/staging.cruisepal.com\/ja\/","title":{"rendered":"\u30db\u30fc\u30e0\u30da\u30fc\u30b8"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;Banner&#8221; module_class=&#8221;homepage-banner animation-node&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/staging.cruisepal.com\/wp-content\/uploads\/banner-background.webp&#8221; height=&#8221;100vh&#8221; animation_style=&#8221;fade&#8221; custom_css_main_element=&#8221;display:flex;&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/staging.cruisepal.com\/wp-content\/uploads\/main-banner-logo.webp&#8221; title_text=&#8221;\u30e1\u30a4\u30f3\u30d0\u30ca\u30fc\u30ed\u30b4&#8221; align=&#8221;center&#8221; disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_text module_class=&#8221;ba&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1 style=\"text-align: center;\">Predict. Prevent. Perform.<\/h1>\n<h5 style=\"text-align: center;\">AI\u642d\u8f09\u306e\u8239\u8236\u7ba1\u7406\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u52b9\u7387\u6027\u30fb\u5b89\u5168\u6027\u30fb\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u3092\u5411\u4e0a\u3002<\/h5>\n<p style=\"text-align: center;\"><a href=\"#products\">\u8a73\u7d30\u3092\u898b\u308b<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;Ship Scroll Section&#8221; module_class=&#8221;digitalise-ship&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#000000&#8243; background_image=&#8221;https:\/\/staging.cruisepal.com\/wp-content\/uploads\/about-banner-background.webp&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; module_class=&#8221;ship-scroll-row&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;off|off|off&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;|300|||||||&#8221; text_text_color=&#8221;#FFFFFF&#8221; text_font_size=&#8221;20px&#8221; header_font=&#8221;||||||||&#8221; header_text_color=&#8221;#FFFFFF&#8221; header_2_font=&#8221;|700|||||||&#8221; header_2_text_color=&#8221;#FFFFFF&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>\u6d77\u4e8b\u30a4\u30ce\u30d9\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3081\u306eAI\u306e\u529b\u3092\u6d3b\u7528<\/h2>\n<p>MariApps\u30b0\u30eb\u30fc\u30d7\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308bOceanAI\u306f\u3001\u5148\u9032\u7684\u306a\u4eba\u5de5\u77e5\u80fd\u3092\u901a\u3058\u3066\u6d77\u4e8b\u696d\u754c\u306b\u9769\u547d\u3092\u3082\u305f\u3089\u3059\u3053\u3068\u306b\u5c02\u5ff5\u3057\u3066\u3044\u307e\u3059\u3002\u79c1\u305f\u3061\u306e\u4f7f\u547d\u306f\u3001AI\u6280\u8853\u3092MariApps\u306e\u4e3b\u529b\u30c7\u30b8\u30bf\u30eb\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30b9\u30a4\u30fc\u30c8\u3067\u3042\u308b<em>smart<\/em>PAL\u306b\u30b7\u30fc\u30e0\u30ec\u30b9\u306b\u7d71\u5408\u3057\u3001\u304a\u5ba2\u69d8\u306b\u6bd4\u985e\u306e\u306a\u3044\u4fa1\u5024\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\u3059\u3002 <\/p>\n<div class=\"stats-wrap\">\n<div class=\"stat\">\n<div class=\"value\" data-target=\"99\">99%+<\/div>\n<div class=\"label\">\u5fdc\u7b54\u7cbe\u5ea6<\/div>\n<\/div>\n<div class=\"stat\">\n<div class=\"value\" data-target=\"50\">50+<\/div>\n<div class=\"label\">\u7a3c\u50cd\u4e2d\u306eAI\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8<\/div>\n<\/div>\n<div class=\"stat\">\n<div class=\"value\" data-target=\"10\">10+<\/div>\n<div class=\"label\">\u5229\u7528\u53ef\u80fd\u306aAPI\u7d71\u5408<\/div>\n<\/div>\n<div class=\"stat\">\n<div class=\"value\" data-target=\"30\">30%+<\/div>\n<div class=\"label\">\u904b\u7528\u6642\u9593\u306e\u524a\u6e1b<\/div>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][et_pb_code disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;\u6570\u5024\u5897\u5206\u30b9\u30af\u30ea\u30d7\u30c8&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<script><!-- [et_pb_line_break_holder] -->document.addEventListener(\"DOMContentLoaded\", () => {<!-- [et_pb_line_break_holder] -->  const counters = document.querySelectorAll(\".value\");<!-- [et_pb_line_break_holder] -->  const animateCounter = (el) => {<!-- [et_pb_line_break_holder] -->    const target = parseFloat(el.dataset.target);<!-- [et_pb_line_break_holder] -->    const isDecimal = target % 1 !== 0;<!-- [et_pb_line_break_holder] -->    const duration = 2000;<!-- [et_pb_line_break_holder] -->    const startTime = performance.now();<!-- [et_pb_line_break_holder] -->    const originalText = el.textContent;<!-- [et_pb_line_break_holder] -->    const midSuffix = originalText.includes('%') ? '%' : '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const update = (currentTime) => {<!-- [et_pb_line_break_holder] -->      const progress = Math.min((currentTime - startTime) \/ duration, 1);<!-- [et_pb_line_break_holder] -->      let value = target * progress;<!-- [et_pb_line_break_holder] -->      value = isDecimal ? value.toFixed(1) : Math.floor(value);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (progress < 1) {        el.textContent = value + midSuffix;        requestAnimationFrame(update);      } else {        el.textContent = value + midSuffix + '+';      }    };    requestAnimationFrame(update);  };  const observer = new IntersectionObserver((entries, obs) => {<!-- [et_pb_line_break_holder] -->    entries.forEach(entry => {<!-- [et_pb_line_break_holder] -->      if (entry.isIntersecting) {<!-- [et_pb_line_break_holder] -->        animateCounter(entry.target);<!-- [et_pb_line_break_holder] -->        obs.unobserve(entry.target);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }, { threshold: 0.4 });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  counters.forEach(counter => observer.observe(counter));<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][et_pb_code admin_label=&#8221;\u6570\u5024\u5897\u5206\u30b9\u30af\u30ea\u30d7\u30c8&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->@keyframes bounceIn {<!-- [et_pb_line_break_holder] -->  0%   { transform: scale(0); opacity: 0; }<!-- [et_pb_line_break_holder] -->  60%  { transform: scale(1.4); opacity: 1; }<!-- [et_pb_line_break_holder] -->  80%  { transform: scale(0.9); }<!-- [et_pb_line_break_holder] -->  100% { transform: scale(1); opacity: 1; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->.plus-sign {<!-- [et_pb_line_break_holder] -->  display: inline-block;<!-- [et_pb_line_break_holder] -->  animation: bounceIn 0.5s ease forwards;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->document.addEventListener(\"DOMContentLoaded\", () => {<!-- [et_pb_line_break_holder] -->  const counters = document.querySelectorAll(\".value\");<!-- [et_pb_line_break_holder] -->  const animateCounter = (el) => {<!-- [et_pb_line_break_holder] -->    const target = parseFloat(el.dataset.target);<!-- [et_pb_line_break_holder] -->    const isDecimal = target % 1 !== 0;<!-- [et_pb_line_break_holder] -->    const duration = 2000;<!-- [et_pb_line_break_holder] -->    const startTime = performance.now();<!-- [et_pb_line_break_holder] -->    const originalText = el.textContent;<!-- [et_pb_line_break_holder] -->    const midSuffix = originalText.includes('%') ? '%' : '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const update = (currentTime) => {<!-- [et_pb_line_break_holder] -->      const progress = Math.min((currentTime - startTime) \/ duration, 1);<!-- [et_pb_line_break_holder] -->      let value = target * progress;<!-- [et_pb_line_break_holder] -->      value = isDecimal ? value.toFixed(1) : Math.floor(value);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (progress < 1) {        el.textContent = value + midSuffix;        requestAnimationFrame(update);      } else {        el.innerHTML = value + midSuffix + '<span class=\"plus-sign\">+<\/span>';<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    requestAnimationFrame(update);<!-- [et_pb_line_break_holder] -->  };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const observer = new IntersectionObserver((entries, obs) => {<!-- [et_pb_line_break_holder] -->    entries.forEach(entry => {<!-- [et_pb_line_break_holder] -->      if (entry.isIntersecting) {<!-- [et_pb_line_break_holder] -->        animateCounter(entry.target);<!-- [et_pb_line_break_holder] -->        obs.unobserve(entry.target);<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  }, { threshold: 0.4 });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  counters.forEach(counter => observer.observe(counter));<!-- [et_pb_line_break_holder] -->});<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n  <style>  \n\t.digitalise-ship, .ship-scroll-row {\t\t\n\t\tpadding: 0 !important;\n\t}\n  .image-container {\n    position: sticky;\n    top: 0;\n    height: 100vh;\n    width: 100%;\n    overflow: hidden;\n    margin: auto;\n    background: transparent;\n  }\n\n  .image-container img {\n    position: absolute;\n    width: auto;\n    left: 50%;\n    transform: translateX(-50%);\n    object-fit: contain;\n  }\n\n  .ship2 {\n    clip-path: inset(0 0 100% 0);\n    position: relative;\n    z-index: 5;\n  }\n\n  .line-logo {\n    position: absolute;\n    left: 50%;\n    width: 70% !important;\n    max-width: 900px;\n    transform: translateX(-50%);\n    top: 0;\n    z-index: 15;\n    height: auto !important;\n    cursor: grab;\n    touch-action: none;\n  }\n\n  .line-logo:active {\n    cursor: grabbing;\n  }\n  <\/style>\n\n\n<div class=\"image-container\">\n   <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ship-normal.png\" class=\"ship1\">\n   <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ship-digital.png\" class=\"ship2\">\n   <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ship-change-design.png\" class=\"line-logo\">\n<\/div>\n\n  <script>\n  (function() {\n    const ship2 = document.querySelector('.ship2');\n    const ship1 = document.querySelector('.ship1');\n    const logo  = document.querySelector('.line-logo');\n    const container = document.querySelector('.image-container');\n\n    if (!ship2 || !logo || !container || !ship1) return;\n\n    let progress = 0;\n    let isDragging = false;\n    let dragStartY = 0;\n    let startProgress = 0;\n\n    const DRAG_SENSITIVITY = 400;\n    const START_POINT = 0.3;\n\n    function clamp(v) {\n      return Math.max(0, Math.min(1, v));\n    }\n\n    function getImageHeight() {\n      return ship1.getBoundingClientRect().height;\n    }\n\n    function computeProgress() {\n      const rect = container.getBoundingClientRect();\n      const viewport = window.innerHeight;\n      const triggerPoint = viewport * START_POINT;\n\n      if (rect.top > triggerPoint) return 0;\n\n      const distance = triggerPoint - rect.top;\n      const maxDistance = viewport - triggerPoint;\n\n      return clamp(distance \/ maxDistance);\n    }\n\n    function applyProgress() {\n\t  const imgRect = ship1.getBoundingClientRect();\n\t  const containerRect = container.getBoundingClientRect();\n\n\t  const height = imgRect.height;\n\t  const revealPx = progress * height;\n\t  const revealPercent = 100 - (revealPx \/ height) * 100;\n\n\t  ship2.style.clipPath = `inset(0 0 ${revealPercent}% 0)`;\n\n\t  \/\/ Offset = image top relative to container + reveal distance\n\t  const imgTopInContainer = imgRect.top - containerRect.top;\n\t  const halfLogo = logo.offsetHeight \/ 2;\n\t  logo.style.top = `${imgTopInContainer + revealPx - halfLogo}px`;\n\n\t  let logoOpacity = 1;\n\t  if (progress < 0.05) logoOpacity = progress \/ 0.05;\n\t  if (progress > 0.95) logoOpacity = (1 - progress) \/ 0.05;\n\t  logo.style.opacity = logoOpacity;\n\t}\n\n    window.addEventListener('scroll', () => {\n      if (isDragging) return;\n      progress = computeProgress();\n      applyProgress();\n    });\n\n    function startDrag(e) {\n      e.preventDefault();\n      isDragging = true;\n      dragStartY = e.touches ? e.touches[0].clientY : e.clientY;\n      startProgress = progress;\n\n      document.addEventListener('mousemove', onDrag);\n      document.addEventListener('mouseup', stopDrag);\n      document.addEventListener('touchmove', onDrag, { passive: false });\n      document.addEventListener('touchend', stopDrag);\n    }\n\n    function onDrag(e) {\n      if (!isDragging) return;\n\n      const currentY = e.touches ? e.touches[0].clientY : e.clientY;\n      const delta = currentY - dragStartY;\n\n      progress = clamp(startProgress + delta \/ DRAG_SENSITIVITY);\n      applyProgress();\n    }\n\n    function stopDrag() {\n      isDragging = false;\n\n      document.removeEventListener('mousemove', onDrag);\n      document.removeEventListener('mouseup', stopDrag);\n      document.removeEventListener('touchmove', onDrag);\n      document.removeEventListener('touchend', stopDrag);\n    }\n\n    logo.addEventListener('mousedown', startDrag);\n    logo.addEventListener('touchstart', startDrag, { passive: false });\n\n    window.addEventListener('load', applyProgress);\n    window.addEventListener('resize', applyProgress);\n  })();\n  <\/script>\n  \n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;What We Do&#8221; module_class=&#8221;what-we-do&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/staging.cruisepal.com\/wp-content\/uploads\/whatwedo-section-background.webp&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"section-title-homepage\" style=\"text-align: center;\">\u79c1\u305f\u3061\u306e\u4e8b\u696d<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;AI Integration Image&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><a href=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/AI-Integration.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13539 alignnone size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/AI-Integration.svg\" alt=\"\" width=\"191\" height=\"221\"><\/a><\/p>\n<p>[\/et_pb_text][et_pb_text disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;AI Integration Gif&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-14480 size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/AI-Integration.gif\" alt=\"\" width=\"191\" height=\"221\"><\/p>\n<p>[\/et_pb_text][et_pb_text admin_label=&#8221;AI Integration Content&#8221; module_class=&#8221;what-we-do-content&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; header_3_font_size=&#8221;30px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 style=\"text-align: center;\">AI\u7d71\u5408<\/h3>\n<p style=\"text-align: center;\">\u5f53\u793e\u306f\u3001MariApps Marine Solutions\u304a\u3088\u3073cruisePAL\u3068\u7dca\u5bc6\u306b\u9023\u643a\u3057\u3001\u6d77\u4e0a\u304a\u3088\u3073\u30af\u30eb\u30fc\u30ba\u904b\u822a\u3092\u6700\u9069\u5316\u3057\u3001\u610f\u601d\u6c7a\u5b9a\u3092\u6539\u5584\u3059\u308b\u6700\u5148\u7aef\u306eAI\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;Customized Solutions Image&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><a href=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Customized-Solutions.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13542 size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Customized-Solutions.svg\" alt=\"\" width=\"183\" height=\"177\"><\/a><\/p>\n<p>[\/et_pb_text][et_pb_text disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;Customized Solutions Gif&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-14483 size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Customized-Solutions.gif\" alt=\"\" width=\"191\" height=\"222\"><\/p>\n<p>[\/et_pb_text][et_pb_text admin_label=&#8221;Customized Solutions Content&#8221; module_class=&#8221;what-we-do-content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font_size=&#8221;30px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 style=\"text-align: center;\">\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3055\u308c\u305f\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3<\/h3>\n<p style=\"text-align: center;\">\u304a\u5ba2\u69d8\u306e\u7279\u5b9a\u306e\u8981\u4ef6\u306b\u5408\u308f\u305b\u3066AI\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u3001\u6700\u5927\u9650\u306e\u4fa1\u5024\u3068\u52b9\u7387\u6027\u3092\u78ba\u4fdd\u3057\u307e\u3059\u3002<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;Beyond Maritime Image&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><a href=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Beyond-Maritime.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13544 size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Beyond-Maritime.svg\" alt=\"\" width=\"228\" height=\"179\"><\/a><\/p>\n<p>[\/et_pb_text][et_pb_text disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;Beyond Maritime Gif&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-14484 size-full aligncenter\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/Beyond-Maritime-.gif\" alt=\"\" width=\"228\" height=\"212\"><\/p>\n<p>[\/et_pb_text][et_pb_text admin_label=&#8221;Beyond Maritime Content&#8221; module_class=&#8221;what-we-do-content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; header_3_font_size=&#8221;30px&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 style=\"text-align: center;\">\u6d77\u4e8b\u696d\u754c\u3092\u8d85\u3048\u3066<\/h3>\n<p style=\"text-align: center;\">\u79c1\u305f\u3061\u306e\u5c02\u9580\u77e5\u8b58\u306f\u6d77\u4e8b\u696d\u754c\u306b\u3068\u3069\u307e\u308a\u307e\u305b\u3093\u3002\u3055\u307e\u3056\u307e\u306a\u5206\u91ce\u306e\u304a\u5ba2\u69d8\u306b\u9769\u65b0\u7684\u306aAI\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3057\u3001\u6210\u9577\u3068\u30a4\u30ce\u30d9\u30fc\u30b7\u30e7\u30f3\u3092\u63a8\u9032\u3057\u3066\u3044\u307e\u3059\u3002 <\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;Logo and products&#8221; module_class=&#8221;logo-product&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_enable_color=&#8221;off&#8221; background_image=&#8221;https:\/\/staging.cruisepal.com\/wp-content\/uploads\/banner-background.webp&#8221; height=&#8221;100vh&#8221; disabled=&#8221;on&#8221; collapsed=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;\u30ce\u30fc\u30c9\u306a\u3057&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  .animation-container {<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    max-width: 1200px;<!-- [et_pb_line_break_holder] -->    height: 500px;<!-- [et_pb_line_break_holder] -->    margin: 100px auto;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo-container {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo {<!-- [et_pb_line_break_holder] -->    width: 30vw;<!-- [et_pb_line_break_holder] -->    height: auto;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) scale(0.05);<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    transition:<!-- [et_pb_line_break_holder] -->      transform 1.2s cubic-bezier(0.23, 1, 0.32, 1),<!-- [et_pb_line_break_holder] -->      opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.animate {<!-- [et_pb_line_break_holder] -->    opacity: 1;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1);<!-- [et_pb_line_break_holder] -->    transition: transform 0.3s ease, opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.animate:hover {<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1.1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .product-icon {<!-- [et_pb_line_break_holder] -->    width: 70px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.left-1.animate { --x: -450px; --y: -160px; }<!-- [et_pb_line_break_holder] -->  .icon.left-2.animate { --x: -700px; --y: -80px; }<!-- [et_pb_line_break_holder] -->  .icon.left-3.animate { --x: -520px; --y: 0px; }<!-- [et_pb_line_break_holder] -->  .icon.left-4.animate { --x: -350px; --y: 80px; }<!-- [et_pb_line_break_holder] -->  .icon.left-5.animate { --x: -600px; --y: 160px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Right Icons *\/<!-- [et_pb_line_break_holder] -->  .icon.right-1.animate { --x: 475px; --y: -160px; }<!-- [et_pb_line_break_holder] -->  .icon.right-2.animate { --x: 600px; --y: -80px; }<!-- [et_pb_line_break_holder] -->  .icon.right-3.animate { --x: 400px; --y: 0px; }<!-- [et_pb_line_break_holder] -->  .icon.right-4.animate { --x: 650px; --y: 80px; }<!-- [et_pb_line_break_holder] -->  .icon.right-5.animate { --x: 325px; --y: 160px; }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<section id=\"animation-section\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"animation-container\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"logo-container\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"logo\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/oceanai-product-logo.png\" alt=\"\u4f01\u696d\u30ed\u30b4\" class=\"logo-img\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-1\"><!-- [et_pb_line_break_holder] -->             <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" title=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\" alt=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-1\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew.png\" title=\"Intellicrew\" alt=\"Intellicrew\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-2\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system.png\" title=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\" alt=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-2\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai.png\" title=\"Scav AI\" alt=\"Scav AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-3\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai.png\" title=\"Fault Sense AI\" alt=\"Fault Sense AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-3\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/detention-ai.png\" title=\"Detention AI\" alt=\"Detention AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-4\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware.png\" title=\"Smart Aware\" alt=\"Smart Aware\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-4\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot.png\" title=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\" alt=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-5\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-ai-search.png\" title=\"QDMS AI\u691c\u7d22\" alt=\"QDMS AI\u691c\u7d22\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-5\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot.png\" title=\"Fin Bot\" alt=\"Fin Bot\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"height: 500px;\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', function() {<!-- [et_pb_line_break_holder] -->        const animationSection = document.getElementById('animation-section');<!-- [et_pb_line_break_holder] -->        const icons = document.querySelectorAll('.icon');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function isInViewport(element) {<!-- [et_pb_line_break_holder] -->            const rect = element.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->            return (<!-- [et_pb_line_break_holder] -->                rect.top <= (window.innerHeight || document.documentElement.clientHeight) * 0.8 &#038;&#038;                rect.bottom >= (window.innerHeight || document.documentElement.clientHeight) * 0.2<!-- [et_pb_line_break_holder] -->            );<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function handleScroll() {<!-- [et_pb_line_break_holder] -->            if (isInViewport(animationSection)) {<!-- [et_pb_line_break_holder] -->                icons.forEach((icon, index) => {<!-- [et_pb_line_break_holder] -->                    setTimeout(() => {<!-- [et_pb_line_break_holder] -->                        icon.classList.add('animate');<!-- [et_pb_line_break_holder] -->                    }, index * 100); \/\/manage speed of flow<!-- [et_pb_line_break_holder] -->                });<!-- [et_pb_line_break_holder] -->            } else {<!-- [et_pb_line_break_holder] -->                icons.forEach(icon => {<!-- [et_pb_line_break_holder] -->                    icon.classList.remove('animate');<!-- [et_pb_line_break_holder] -->                });<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        window.addEventListener('scroll', handleScroll);<!-- [et_pb_line_break_holder] -->        handleScroll();<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;\u30ce\u30fc\u30c9\u3042\u308a&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  .logo-product{<!-- [et_pb_line_break_holder] -->    overflow: hidden;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .animation-container {<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    height: 50vh;<!-- [et_pb_line_break_holder] -->    margin: 100px auto;<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo-container {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 50%;<!-- [et_pb_line_break_holder] -->    left: 50%;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%);<!-- [et_pb_line_break_holder] -->    z-index: 10;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .logo {<!-- [et_pb_line_break_holder] -->    width: 30vw;<!-- [et_pb_line_break_holder] -->    height: auto;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) scale(0.05);<!-- [et_pb_line_break_holder] -->    opacity: 0;<!-- [et_pb_line_break_holder] -->    transition:<!-- [et_pb_line_break_holder] -->      transform 1.2s cubic-bezier(0.23, 1, 0.32, 1),<!-- [et_pb_line_break_holder] -->      opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->    z-index: 10;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.animate {<!-- [et_pb_line_break_holder] -->    opacity: 1;<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1);<!-- [et_pb_line_break_holder] -->    transition: transform 0.3s ease, opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.animate:hover {<!-- [et_pb_line_break_holder] -->    transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1.1);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .product-icon {<!-- [et_pb_line_break_holder] -->    width: 70px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  .icon.left-1.animate { --x: -450px; --y: -160px; }<!-- [et_pb_line_break_holder] -->  .icon.left-2.animate { --x: -700px; --y: -80px; }<!-- [et_pb_line_break_holder] -->  .icon.left-3.animate { --x: -520px; --y: 0px; }<!-- [et_pb_line_break_holder] -->  .icon.left-4.animate { --x: -350px; --y: 80px; }<!-- [et_pb_line_break_holder] -->  .icon.left-5.animate { --x: -600px; --y: 160px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Right Icons *\/<!-- [et_pb_line_break_holder] -->  .icon.right-1.animate { --x: 475px; --y: -160px; }<!-- [et_pb_line_break_holder] -->  .icon.right-2.animate { --x: 600px; --y: -80px; }<!-- [et_pb_line_break_holder] -->  .icon.right-3.animate { --x: 400px; --y: 0px; }<!-- [et_pb_line_break_holder] -->  .icon.right-4.animate { --x: 650px; --y: 80px; }<!-- [et_pb_line_break_holder] -->  .icon.right-5.animate { --x: 325px; --y: 160px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Network Canvas *\/<!-- [et_pb_line_break_holder] -->  #networkCanvas {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    top: 0;<!-- [et_pb_line_break_holder] -->    left: 0;<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    height: 100%;<!-- [et_pb_line_break_holder] -->    z-index: 1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<section id=\"animation-section\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"animation-container\"><!-- [et_pb_line_break_holder] -->        <canvas id=\"networkCanvas\"><\/canvas><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"logo-container\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"logo\"><!-- [et_pb_line_break_holder] -->              <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/oceanai-product-logo.png\" alt=\"\u4f01\u696d\u30ed\u30b4\" class=\"logo-img\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-1\"><!-- [et_pb_line_break_holder] -->             <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" title=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\" alt=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-1\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew.png\" title=\"Intellicrew\" alt=\"Intellicrew\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-2\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system.png\" title=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\" alt=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-2\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai.png\" title=\"Scav AI\" alt=\"Scav AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-3\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai.png\" title=\"Fault Sense AI\" alt=\"Fault Sense AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-3\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/detention-ai.png\" title=\"Detention AI\" alt=\"Detention AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-4\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware.png\" title=\"Smart Aware\" alt=\"Smart Aware\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-4\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot.png\" title=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\" alt=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon left-5\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-ai-search.png\" title=\"QDMS AI\u691c\u7d22\" alt=\"QDMS AI\u691c\u7d22\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"icon right-5\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot.png\" title=\"Fin Bot\" alt=\"Fin Bot\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"height: 500px;\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->    document.addEventListener('DOMContentLoaded', function() {<!-- [et_pb_line_break_holder] -->        const animationSection = document.getElementById('animation-section');<!-- [et_pb_line_break_holder] -->        const icons = document.querySelectorAll('.icon');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function isInViewport(element) {<!-- [et_pb_line_break_holder] -->            const rect = element.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->            return (<!-- [et_pb_line_break_holder] -->                rect.top <= (window.innerHeight || document.documentElement.clientHeight) * 0.8 &#038;&#038;                rect.bottom >= (window.innerHeight || document.documentElement.clientHeight) * 0.2<!-- [et_pb_line_break_holder] -->            );<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function handleScroll() {<!-- [et_pb_line_break_holder] -->            if (isInViewport(animationSection)) {<!-- [et_pb_line_break_holder] -->                icons.forEach((icon, index) => {<!-- [et_pb_line_break_holder] -->                    setTimeout(() => {<!-- [et_pb_line_break_holder] -->                        icon.classList.add('animate');<!-- [et_pb_line_break_holder] -->                    }, index * 100); \/\/manage speed of flow<!-- [et_pb_line_break_holder] -->                });<!-- [et_pb_line_break_holder] -->            } else {<!-- [et_pb_line_break_holder] -->                icons.forEach(icon => {<!-- [et_pb_line_break_holder] -->                    icon.classList.remove('animate');<!-- [et_pb_line_break_holder] -->                });<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        window.addEventListener('scroll', handleScroll);<!-- [et_pb_line_break_holder] -->        handleScroll();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Network Background Functionality<!-- [et_pb_line_break_holder] -->        const canvas = document.getElementById('networkCanvas');<!-- [et_pb_line_break_holder] -->        const ctx = canvas.getContext('2d');<!-- [et_pb_line_break_holder] -->        const animationContainer = document.querySelector('.animation-container');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        let particles = [];<!-- [et_pb_line_break_holder] -->        const particleCount = 100;<!-- [et_pb_line_break_holder] -->        const particleSize = 2;<!-- [et_pb_line_break_holder] -->        const lineDistance = 120;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Resize canvas to fit animation container<!-- [et_pb_line_break_holder] -->        function resizeCanvas() {<!-- [et_pb_line_break_holder] -->            const rect = animationContainer.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->            canvas.width = rect.width;<!-- [et_pb_line_break_holder] -->            canvas.height = rect.height;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        resizeCanvas();<!-- [et_pb_line_break_holder] -->        window.addEventListener('resize', resizeCanvas);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Particle Class<!-- [et_pb_line_break_holder] -->        class Particle {<!-- [et_pb_line_break_holder] -->            constructor() {<!-- [et_pb_line_break_holder] -->                this.x = Math.random() * canvas.width;<!-- [et_pb_line_break_holder] -->                this.y = Math.random() * canvas.height;<!-- [et_pb_line_break_holder] -->                this.vx = (Math.random() - 0.5) * 0.8;<!-- [et_pb_line_break_holder] -->                this.vy = (Math.random() - 0.5) * 0.8;<!-- [et_pb_line_break_holder] -->                this.size = particleSize;<!-- [et_pb_line_break_holder] -->                this.opacity = Math.random() * 0.5 + 0.2;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            draw() {<!-- [et_pb_line_break_holder] -->                ctx.fillStyle = `rgba(100, 150, 255, ${this.opacity})`;<!-- [et_pb_line_break_holder] -->                ctx.beginPath();<!-- [et_pb_line_break_holder] -->                ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);<!-- [et_pb_line_break_holder] -->                ctx.fill();<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            update() {<!-- [et_pb_line_break_holder] -->                if (this.x > canvas.width || this.x < 0) {                    this.vx *= -1;                }                if (this.y > canvas.height || this.y < 0) {                    this.vy *= -1;                }                this.x += this.vx;                this.y += this.vy;            }        }        \/\/ Animation Loop        function animate() {            ctx.clearRect(0, 0, canvas.width, canvas.height);                        particles.forEach(p => {<!-- [et_pb_line_break_holder] -->                p.update();<!-- [et_pb_line_break_holder] -->                p.draw();<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            drawLines();<!-- [et_pb_line_break_holder] -->            requestAnimationFrame(animate);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function createParticles() {<!-- [et_pb_line_break_holder] -->            for (let i = 0; i < particleCount; i++) {                particles.push(new Particle());            }        }        function drawLines() {            for (let i = 0; i < particles.length; i++) {                for (let j = i; j < particles.length; j++) {                    const p1 = particles[i];                    const p2 = particles[j];                                        const dx = p1.x - p2.x;                    const dy = p1.y - p2.y;                    const distance = Math.sqrt(dx * dx + dy * dy);                    if (distance < lineDistance) {                        ctx.beginPath();                        ctx.strokeStyle = `rgba(100, 150, 255, ${0.3 - distance \/ lineDistance * 0.3})`;                        ctx.lineWidth = 1.5;                        ctx.moveTo(p1.x, p1.y);                        ctx.lineTo(p2.x, p2.y);                        ctx.stroke();                    }                }            }        }        \/\/ Start network animation        createParticles();        animate();    });<\/script>[\/et_pb_code][et_pb_code disabled_on=\"off|off|off\" admin_label=\"\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30ce\u30fc\u30c9\" _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"]<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n<style>\n.logo-product{ overflow:hidden; }\n\n.animation-container {\n  position: relative;\n  width: 100%;\n  height: 50vh;\n  margin: 100px auto;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n.logo-container {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  z-index: 10;\n}\n\n.logo { width: 30vw; height: auto; }\n\n.icon {\n  position: absolute;\n  transform: translate(-50%, -50%) scale(0.05);\n  opacity: 0;\n  transition: transform 1.2s cubic-bezier(0.23,1,0.32,1), opacity 0.8s ease-out;\n  z-index: 10;\n}\n\n.icon.animate {\n  opacity: 1;\n  transform: translate(-50%, -50%) translateX(var(--x,0)) translateY(var(--y,0)) scale(1);\n  transition: transform 0.3s ease, opacity 0.8s ease-out;\n}\n\n.icon.animate:hover {\n  transform: translate(-50%, -50%) translateX(var(--x,0)) translateY(var(--y,0)) scale(1.1);\n}\n\n.product-icon { width:70px!important; height:auto!important; }\n\n.icon.left-1.animate { --x:-450px; --y:-160px; }\n.icon.left-2.animate { --x:-700px; --y:-80px; }\n.icon.left-3.animate { --x:-520px; --y:0px; }\n.icon.left-4.animate { --x:-350px; --y:80px; }\n.icon.left-5.animate { --x:-600px; --y:160px; }\n\n.icon.right-1.animate { --x:475px; --y:-160px; }\n.icon.right-2.animate { --x:600px; --y:-80px; }\n.icon.right-3.animate { --x:400px; --y:0px; }\n.icon.right-4.animate { --x:650px; --y:80px; }\n.icon.right-5.animate { --x:325px; --y:160px; }\n\n#networkCanvas {\n  position:absolute;\n  top:0;\n  left:0;\n  width:100%;\n  height:100%;\n  z-index:1;\n  cursor:pointer;\n}\n<\/style>\n\n<section id=\"animation-section\">\n  <div class=\"animation-container\">\n    <canvas id=\"networkCanvas\"><\/canvas>\n\n    <div class=\"logo-container\">\n      <div class=\"logo\">\n        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/ja\/wp-content\/uploads\/oceanai-product-logo.webp\" alt=\"Company Logo\" class=\"logo-img\">\n      <\/div>\n    <\/div>\n\n            <a href=\"https:\/\/staging.cruisepal.com\/products\/intellicrew\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-1\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew.png\" alt=\"IntelliCrew\" title=\"IntelliCrew\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/qdms-ai-search-chatbot\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-1\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-ai-search.png\" alt=\"QDMS AI Search &amp; Chatbot\" title=\"QDMS AI Search &amp; Chatbot\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/faultsenseai\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-2\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai.png\" alt=\"FaultSenseAI\" title=\"FaultSenseAI\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/finbot\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-2\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot.png\" alt=\"FinBot\" title=\"FinBot\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/supportbot\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-3\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot.png\" alt=\"SupportBot\" title=\"SupportBot\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/scavai\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-3\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai.png\" alt=\"ScavAI\" title=\"ScavAI\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/smartaware\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-4\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware.png\" alt=\"smartAware\" title=\"smartAware\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/ai-assisted-vessel-inspection\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-4\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"InspectAI\" title=\"InspectAI\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/qa-agent\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-5\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/QA-Agent-Icon.svg\" alt=\"QA Agent\" title=\"QA Agent\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"https:\/\/staging.cruisepal.com\/products\/issue-tracker-system\/\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-5\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system.png\" alt=\"IssuTrax AI Dashboard Assistant \" title=\"IssuTrax AI Dashboard Assistant \" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-6\">\n            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/detention-ai.png\" alt=\"Detention AI\" title=\"Detention AI\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon right-6\">\n            <img decoding=\"async\" src=\"\" alt=\"MS-AI\" title=\"MS-AI\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n                <a href=\"\" target=\"_self\" class=\"icon-link\">\n          <div class=\"icon left-7\">\n            <img decoding=\"async\" src=\"\" alt=\"Mailing Agent\" title=\"Mailing Agent\" class=\"product-icon\">\n          <\/div>\n        <\/a>\n          <\/div>\n<\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  const animationSection = document.getElementById('animation-section');\n  const icons = document.querySelectorAll('.icon');\n  const canvas = document.getElementById('networkCanvas');\n  const ctx = canvas.getContext('2d');\n  const animationContainer = document.querySelector('.animation-container');\n\n  function isInViewport(el) {\n    const r = el.getBoundingClientRect();\n    return r.top <= window.innerHeight * 0.8 && r.bottom >= window.innerHeight * 0.2;\n  }\n\n  function handleScroll() {\n    if (isInViewport(animationSection)) {\n      icons.forEach((icon, i) => setTimeout(() => icon.classList.add('animate'), i * 100));\n    } else {\n      icons.forEach(icon => icon.classList.remove('animate'));\n    }\n  }\n\n  window.addEventListener('scroll', handleScroll);\n  handleScroll();\n\n  let particles = [];\n  const particleCount = 100;\n  const particleSize = 2;\n  const lineDistance = 120;\n\n  let draggedParticle = null;\n  let mouseX = 0;\n  let mouseY = 0;\n\n  function resizeCanvas() {\n    const rect = animationContainer.getBoundingClientRect();\n    if (rect.width === 0 || rect.height === 0) return false;\n    canvas.width = rect.width;\n    canvas.height = rect.height;\n    return true;\n  }\n\n  function initNetwork() {\n    if (!resizeCanvas()) {\n      requestAnimationFrame(initNetwork);\n      return;\n    }\n\n    window.addEventListener('resize', resizeCanvas);\n\n    class Particle {\n      constructor() {\n        this.x = Math.random() * canvas.width;\n        this.y = Math.random() * canvas.height;\n        this.vx = (Math.random() - 0.5) * 0.8;\n        this.vy = (Math.random() - 0.5) * 0.8;\n        this.size = particleSize;\n        this.opacity = Math.random() * 0.5 + 0.2;\n      }\n      draw() {\n        ctx.fillStyle = `rgba(100,150,255,${this.opacity})`;\n        ctx.beginPath();\n        ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);\n        ctx.fill();\n      }\n      update() {\n        if (this === draggedParticle) return;\n        if (this.x > canvas.width || this.x < 0) this.vx *= -1;\n        if (this.y > canvas.height || this.y < 0) this.vy *= -1;\n        this.x += this.vx;\n        this.y += this.vy;\n      }\n    }\n\n    function createParticles() {\n      for (let i = 0; i < particleCount; i++) particles.push(new Particle());\n    }\n\n    function drawLines() {\n      for (let i = 0; i < particles.length; i++) {\n        for (let j = i; j < particles.length; j++) {\n          const dx = particles[i].x - particles[j].x;\n          const dy = particles[i].y - particles[j].y;\n          const d = Math.sqrt(dx*dx + dy*dy);\n          if (d < lineDistance) {\n            ctx.beginPath();\n            ctx.strokeStyle = `rgba(100,150,255,${0.3 - d\/lineDistance*0.3})`;\n            ctx.lineWidth = 1.5;\n            ctx.moveTo(particles[i].x, particles[i].y);\n            ctx.lineTo(particles[j].x, particles[j].y);\n            ctx.stroke();\n          }\n        }\n      }\n    }\n\n    function animate() {\n      ctx.clearRect(0,0,canvas.width,canvas.height);\n      particles.forEach(p => { p.update(); p.draw(); });\n      drawLines();\n      requestAnimationFrame(animate);\n    }\n\n    function getParticleAt(x, y) {\n      for (let i = particles.length - 1; i >= 0; i--) {\n        const p = particles[i];\n        const dx = p.x - x;\n        const dy = p.y - y;\n        if (Math.sqrt(dx*dx + dy*dy) < 20) return p;\n      }\n      return null;\n    }\n\n    function handleMouseDown(e) {\n      const rect = canvas.getBoundingClientRect();\n      mouseX = e.clientX - rect.left;\n      mouseY = e.clientY - rect.top;\n      draggedParticle = getParticleAt(mouseX, mouseY);\n    }\n\n    function handleMouseMove(e) {\n      if (!draggedParticle) return;\n      const rect = canvas.getBoundingClientRect();\n      mouseX = e.clientX - rect.left;\n      mouseY = e.clientY - rect.top;\n      draggedParticle.x = mouseX;\n      draggedParticle.y = mouseY;\n    }\n\n    function handleMouseUp() {\n      draggedParticle = null;\n    }\n\n    function handleTouchStart(e) {\n      e.preventDefault();\n      const rect = canvas.getBoundingClientRect();\n      mouseX = e.touches[0].clientX - rect.left;\n      mouseY = e.touches[0].clientY - rect.top;\n      draggedParticle = getParticleAt(mouseX, mouseY);\n    }\n\n    function handleTouchMove(e) {\n      e.preventDefault();\n      if (!draggedParticle) return;\n      const rect = canvas.getBoundingClientRect();\n      mouseX = e.touches[0].clientX - rect.left;\n      mouseY = e.touches[0].clientY - rect.top;\n      draggedParticle.x = mouseX;\n      draggedParticle.y = mouseY;\n    }\n\n    function handleTouchEnd() {\n      draggedParticle = null;\n    }\n\n    canvas.addEventListener('mousedown', handleMouseDown);\n    canvas.addEventListener('mousemove', handleMouseMove);\n    canvas.addEventListener('mouseup', handleMouseUp);\n    canvas.addEventListener('mouseleave', handleMouseUp);\n\n    canvas.addEventListener('touchstart', handleTouchStart);\n    canvas.addEventListener('touchmove', handleTouchMove);\n    canvas.addEventListener('touchend', handleTouchEnd);\n\n    createParticles();\n    animate();\n  }\n\n  initNetwork();\n});\n<\/script>\n[\/et_pb_code][et_pb_code disabled_on=\"on|on|on\" _builder_version=\"4.27.4\" _module_preset=\"default\" disabled=\"on\" global_colors_info=\"{}\"]<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->.logo-product{ overflow: hidden; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.animation-container {<!-- [et_pb_line_break_holder] -->  position: relative;<!-- [et_pb_line_break_holder] -->  width: 100%;<!-- [et_pb_line_break_holder] -->  height: 50vh;<!-- [et_pb_line_break_holder] -->  margin: 100px auto;<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  justify-content: center;<!-- [et_pb_line_break_holder] -->  align-items: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.logo-container {<!-- [et_pb_line_break_holder] -->  position: absolute;<!-- [et_pb_line_break_holder] -->  top: 50%;<!-- [et_pb_line_break_holder] -->  left: 50%;<!-- [et_pb_line_break_holder] -->  transform: translate(-50%, -50%);<!-- [et_pb_line_break_holder] -->  z-index: 10;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.logo {<!-- [et_pb_line_break_holder] -->  width: 30vw;<!-- [et_pb_line_break_holder] -->  height: auto;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.icon {<!-- [et_pb_line_break_holder] -->  position: absolute;<!-- [et_pb_line_break_holder] -->  transform: translate(-50%, -50%) scale(0.05);<!-- [et_pb_line_break_holder] -->  opacity: 0;<!-- [et_pb_line_break_holder] -->  transition: transform 1.2s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->  z-index: 10;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.icon.animate {<!-- [et_pb_line_break_holder] -->  opacity: 1;<!-- [et_pb_line_break_holder] -->  transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1);<!-- [et_pb_line_break_holder] -->  transition: transform 0.3s ease, opacity 0.8s ease-out;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.icon.animate:hover {<!-- [et_pb_line_break_holder] -->  transform: translate(-50%, -50%) translateX(var(--x, 0)) translateY(var(--y, 0)) scale(1.1);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.product-icon {<!-- [et_pb_line_break_holder] -->  width: 70px !important;<!-- [et_pb_line_break_holder] -->  height: auto !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.icon.left-1.animate { --x: -450px; --y: -160px; }<!-- [et_pb_line_break_holder] -->.icon.left-2.animate { --x: -700px; --y: -80px; }<!-- [et_pb_line_break_holder] -->.icon.left-3.animate { --x: -520px; --y: 0px; }<!-- [et_pb_line_break_holder] -->.icon.left-4.animate { --x: -350px; --y: 80px; }<!-- [et_pb_line_break_holder] -->.icon.left-5.animate { --x: -600px; --y: 160px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.icon.right-1.animate { --x: 475px; --y: -160px; }<!-- [et_pb_line_break_holder] -->.icon.right-2.animate { --x: 600px; --y: -80px; }<!-- [et_pb_line_break_holder] -->.icon.right-3.animate { --x: 400px; --y: 0px; }<!-- [et_pb_line_break_holder] -->.icon.right-4.animate { --x: 650px; --y: 80px; }<!-- [et_pb_line_break_holder] -->.icon.right-5.animate { --x: 325px; --y: 160px; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#networkCanvas {<!-- [et_pb_line_break_holder] -->  position: absolute;<!-- [et_pb_line_break_holder] -->  top: 0;<!-- [et_pb_line_break_holder] -->  left: 0;<!-- [et_pb_line_break_holder] -->  width: 100%;<!-- [et_pb_line_break_holder] -->  height: 100%;<!-- [et_pb_line_break_holder] -->  z-index: 1;<!-- [et_pb_line_break_holder] -->  cursor: pointer;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<section id=\"animation-section\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"animation-container\"><!-- [et_pb_line_break_holder] -->    <canvas id=\"networkCanvas\"><\/canvas><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"logo-container\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"logo\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/oceanai-product-logo.png\" alt=\"\u4f01\u696d\u30ed\u30b4\" class=\"logo-img\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon left-1\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" title=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\" alt=\"AI\u652f\u63f4\u8239\u8236\u691c\u67fb\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon right-1\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew.png\" title=\"Intellicrew\" alt=\"Intellicrew\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon left-2\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system.png\" title=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\" alt=\"\u554f\u984c\u8ffd\u8de1\u30b7\u30b9\u30c6\u30e0\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon right-2\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai.png\" title=\"Scav AI\" alt=\"Scav AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon left-3\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai.png\" title=\"Fault Sense AI\" alt=\"Fault Sense AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon right-3\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/detention-ai.png\" title=\"Detention AI\" alt=\"Detention AI\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon left-4\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware.png\" title=\"Smart Aware\" alt=\"Smart Aware\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon right-4\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot.png\" title=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\" alt=\"\u30b5\u30dd\u30fc\u30c8\u30dc\u30c3\u30c8\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon left-5\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-ai-search.png\" title=\"QDMS AI\u691c\u7d22\" alt=\"QDMS AI\u691c\u7d22\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <a href=\"https:\/\/www.google.com\" target=\"_blank\" class=\"icon-link\" rel=\"noopener\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"icon right-5\"><!-- [et_pb_line_break_holder] -->        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot.png\" title=\"Fin Bot\" alt=\"Fin Bot\u30a2\u30a4\u30b3\u30f3\" class=\"product-icon\"><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/a><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/section>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div style=\"height: 500px;\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->document.addEventListener('DOMContentLoaded', function() {<!-- [et_pb_line_break_holder] -->  const animationSection = document.getElementById('animation-section');<!-- [et_pb_line_break_holder] -->  const icons = document.querySelectorAll('.icon');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function isInViewport(element) {<!-- [et_pb_line_break_holder] -->    const rect = element.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->    return (<!-- [et_pb_line_break_holder] -->      rect.top <= (window.innerHeight || document.documentElement.clientHeight) * 0.8 &#038;&#038;      rect.bottom >= (window.innerHeight || document.documentElement.clientHeight) * 0.2<!-- [et_pb_line_break_holder] -->    );<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function handleScroll() {<!-- [et_pb_line_break_holder] -->    if (isInViewport(animationSection)) {<!-- [et_pb_line_break_holder] -->      icons.forEach((icon, index) => {<!-- [et_pb_line_break_holder] -->        setTimeout(() => {<!-- [et_pb_line_break_holder] -->          icon.classList.add('animate');<!-- [et_pb_line_break_holder] -->        }, index * 100);<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    } else {<!-- [et_pb_line_break_holder] -->      icons.forEach(icon => {<!-- [et_pb_line_break_holder] -->        icon.classList.remove('animate');<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  window.addEventListener('scroll', handleScroll);<!-- [et_pb_line_break_holder] -->  handleScroll();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const canvas = document.getElementById('networkCanvas');<!-- [et_pb_line_break_holder] -->  const ctx = canvas.getContext('2d');<!-- [et_pb_line_break_holder] -->  const animationContainer = document.querySelector('.animation-container');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let particles = [];<!-- [et_pb_line_break_holder] -->  const particleCount = 100;<!-- [et_pb_line_break_holder] -->  const particleSize = 2;<!-- [et_pb_line_break_holder] -->  const lineDistance = 120;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  let draggedParticle = null;<!-- [et_pb_line_break_holder] -->  let mouseX = 0;<!-- [et_pb_line_break_holder] -->  let mouseY = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function resizeCanvas() {<!-- [et_pb_line_break_holder] -->    const rect = animationContainer.getBoundingClientRect();<!-- [et_pb_line_break_holder] -->    canvas.width = rect.width;<!-- [et_pb_line_break_holder] -->    canvas.height = rect.height;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  resizeCanvas();<!-- [et_pb_line_break_holder] -->  window.addEventListener('resize', resizeCanvas);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  class Particle {<!-- [et_pb_line_break_holder] -->    constructor() {<!-- [et_pb_line_break_holder] -->      this.x = Math.random() * canvas.width;<!-- [et_pb_line_break_holder] -->      this.y = Math.random() * canvas.height;<!-- [et_pb_line_break_holder] -->      this.vx = (Math.random() - 0.5) * 0.8;<!-- [et_pb_line_break_holder] -->      this.vy = (Math.random() - 0.5) * 0.8;<!-- [et_pb_line_break_holder] -->      this.size = particleSize;<!-- [et_pb_line_break_holder] -->      this.opacity = Math.random() * 0.5 + 0.2;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    draw() {<!-- [et_pb_line_break_holder] -->      ctx.fillStyle = `rgba(100, 150, 255, ${this.opacity})`;<!-- [et_pb_line_break_holder] -->      ctx.beginPath();<!-- [et_pb_line_break_holder] -->      ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);<!-- [et_pb_line_break_holder] -->      ctx.fill();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    update() {<!-- [et_pb_line_break_holder] -->      if (this === draggedParticle) return;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      if (this.x > canvas.width || this.x < 0) this.vx *= -1;      if (this.y > canvas.height || this.y < 0) this.vy *= -1;      this.x += this.vx;      this.y += this.vy;    }  }  function animate() {    ctx.clearRect(0, 0, canvas.width, canvas.height);    particles.forEach(p => {<!-- [et_pb_line_break_holder] -->      p.update();<!-- [et_pb_line_break_holder] -->      p.draw();<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->    drawLines();<!-- [et_pb_line_break_holder] -->    requestAnimationFrame(animate);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function createParticles() {<!-- [et_pb_line_break_holder] -->    for (let i = 0; i < particleCount; i++) {      particles.push(new Particle());    }  }  function drawLines() {    for (let i = 0; i < particles.length; i++) {      for (let j = i; j < particles.length; j++) {        const p1 = particles[i];        const p2 = particles[j];        const dx = p1.x - p2.x;        const dy = p1.y - p2.y;        const distance = Math.sqrt(dx * dx + dy * dy);        if (distance < lineDistance) {          ctx.beginPath();          ctx.strokeStyle = `rgba(100, 150, 255, ${0.3 - (distance \/ lineDistance) * 0.3})`;          ctx.lineWidth = 1.5;          ctx.moveTo(p1.x, p1.y);          ctx.lineTo(p2.x, p2.y);          ctx.stroke();        }      }    }  }  canvas.addEventListener('mousedown', handleMouseDown);  canvas.addEventListener('mousemove', handleMouseMove);  canvas.addEventListener('mouseup', handleMouseUp);  canvas.addEventListener('mouseleave', handleMouseUp);  canvas.addEventListener('touchstart', handleTouchStart);  canvas.addEventListener('touchmove', handleTouchMove);  canvas.addEventListener('touchend', handleTouchEnd);  function handleMouseDown(e) {    const rect = canvas.getBoundingClientRect();    mouseX = e.clientX - rect.left;    mouseY = e.clientY - rect.top;    draggedParticle = getParticleAt(mouseX, mouseY);  }  function handleMouseMove(e) {    const rect = canvas.getBoundingClientRect();    mouseX = e.clientX - rect.left;    mouseY = e.clientY - rect.top;    if (draggedParticle) {      draggedParticle.x = mouseX;      draggedParticle.y = mouseY;    }  }  function handleMouseUp() {    draggedParticle = null;  }  function handleTouchStart(e) {    e.preventDefault();    const rect = canvas.getBoundingClientRect();    mouseX = e.touches[0].clientX - rect.left;    mouseY = e.touches[0].clientY - rect.top;    draggedParticle = getParticleAt(mouseX, mouseY);  }  function handleTouchMove(e) {    e.preventDefault();    const rect = canvas.getBoundingClientRect();    mouseX = e.touches[0].clientX - rect.left;    mouseY = e.touches[0].clientY - rect.top;    if (draggedParticle) {      draggedParticle.x = mouseX;      draggedParticle.y = mouseY;    }  }  function handleTouchEnd() {    draggedParticle = null;  }  function getParticleAt(x, y) {    for (let i = particles.length - 1; i >= 0; i--) {<!-- [et_pb_line_break_holder] -->      const p = particles[i];<!-- [et_pb_line_break_holder] -->      const dx = p.x - x;<!-- [et_pb_line_break_holder] -->      const dy = p.y - y;<!-- [et_pb_line_break_holder] -->      const distance = Math.sqrt(dx * dx + dy * dy);<!-- [et_pb_line_break_holder] -->      if (distance < 20) return p;    }    return null;  }  createParticles();  animate();});<\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\" disabled_on=\"off|off|off\" admin_label=\"Product Tab\" module_id=\"\u88fd\u54c1\" module_class=\"product-tab-section\" _builder_version=\"4.27.4\" _module_preset=\"default\" background_enable_image=\"off\" collapsed=\"off\" global_colors_info=\"{}\"][et_pb_row module_class=\"product-tab-row\" _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n    <style>\n      .tab-wrapper {\n        position: relative;\n        width: 100%;\n        height: 100vh;\n        overflow: hidden;\n        padding: 60px 0;\n        box-sizing: border-box;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        color: white;\n      }\n      .bg-color {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100vh;\n        opacity: 0;\n        transition: opacity 0.5s ease;\n        z-index: -1;\n      }\n      .bg-color.active {\n        opacity: 1 !important;\n      }\n      .tabs {\n        display: flex;\n        justify-content: center;\n        gap: 28px;\n        width: 100%;\n        padding: 0 0 100px;\n        z-index: 5;\n      }\n      .tabs .tab {\n        background: transparent;\n        border: none;\n        padding: 0;\n        cursor: pointer;\n        opacity: 0.5;\n\/*         transition: 0.3s ease; *\/\n      }\n      .tabs .tab img {\n        width: auto;\n        height: 40px;\n        padding-bottom: 6px;\n      }\n      .tabs .tab.active {\n        opacity: 1;\n        border-bottom: 3px solid white;\n      }\n      .tab-content-container {\n        width: 80%;\n        text-align: left;\n        margin-top: 10px;\n        position: relative;\n        z-index: 10;\n      }\n      .tab-content {\n        display: none;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n      }\n      .tab-content.active {\n        display: block;\n        opacity: 1;\n      }\n      .tab-content h2 {\n        font-size: 80px;\n        font-weight: 700;\n        color: #fff;\n      }\n      .tab-content h3 {\n        font-size: 18px;\n        font-weight: 400;\n        color: #fff;\n        padding-bottom: 20px;\n      }\n      .tab-content p {\n        font-size: 18px;\n        font-weight: 100;\n        color: #fff;\n        margin-bottom: 25px;\n      }\n      .product-icon{\n        height: 100px;\n        padding-bottom: 25px;\n      }\n      .tab-left {\n        flex: 1 1 50%;\n        position: relative;\n        box-sizing: border-box;\n        padding: 20px;\n      }\n      .tab-left .icon-bottom-right {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n        width: 50%;\n        object-fit: contain;\n        opacity: 0.1;\n      }\n      .product-explore-button{\n        display: inline-block;\n        padding: 10px 30px; \n        background-color: #3b2fa6; \n        color: #ffffff;        \n        font-weight: 600;\n        text-transform: uppercase;\n        text-decoration: none;\n        border-radius: 50px;    \n        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);\n        transition: all 0.3s ease;\n      }\n      .product-explore-button:hover {\n        background-color: #2e2380; \n        transform: translateY(-2px);\n        box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3);\n      }\n\n      .product-images img{\n        border-radius: 20px;\n        height: 50vh;\n        width: auto !important;\n        margin: auto;\n      }\n      \n    <\/style>\n    <div class=\"tab-wrapper\">\n                <div class=\"tabs\">\n            \t\t\t\t                <div id=\"bg1\"\n                    class=\"bg-color active\"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #6E68E2;\">\n                <\/div>\n                <button class=\"tab active\" \n                        data-tab=\"tab1\" \n                        data-bg=\"bg1\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew-icon.svg\" title=\"IntelliCrew\" alt=\"IntelliCrew Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg2\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #9c1b37;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab2\" \n                        data-bg=\"bg2\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-icon.svg\" title=\"QDMS AI Search & Chatbot\" alt=\"QDMS AI Search & Chatbot Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg3\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #c73059;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab3\" \n                        data-bg=\"bg3\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai-icon.svg\" title=\"FaultSenseAI\" alt=\"FaultSenseAI Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg4\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #c80330;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab4\" \n                        data-bg=\"bg4\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot-icon.svg\" title=\"FinBot\" alt=\"FinBot Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg5\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #a31492;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab5\" \n                        data-bg=\"bg5\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot-icon.svg\" title=\"SupportBot\" alt=\"SupportBot Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg6\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #0c59f5;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab6\" \n                        data-bg=\"bg6\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai-icon.svg\" title=\"ScavAI\" alt=\"ScavAI Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg7\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #050581;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab7\" \n                        data-bg=\"bg7\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware-icon.svg\" title=\"smartAware\" alt=\"smartAware Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg8\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #7f3dc3;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab8\" \n                        data-bg=\"bg8\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inpection-icon.svg\" title=\"InspectAI\" alt=\"InspectAI Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t                <div id=\"bg9\"\n                    class=\"bg-color \"\n                    style=\"background: url('https:\/\/staging.cruisepal.com\/wp-content\/uploads\/swril-background.webp') center\/cover no-repeat, #191826;\">\n                <\/div>\n                <button class=\"tab \" \n                        data-tab=\"tab9\" \n                        data-bg=\"bg9\">\n                    <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/QA-Agent-Icon-white-1.svg\" title=\"QA Agent\" alt=\"QA Agent Icon\">\n                <\/button>\t\t\t\t\n            \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t        <\/div>\n                        <div class=\"tab-content-container\">\n                            <div id=\"tab1\" \n                     class=\"tab-content active\">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew-icon.svg\" class=\"product-icon\" title=\"IntelliCrew\" alt=\"IntelliCrew Icon\">\n                            <h2>IntelliCrew<\/h2>\n                            <h3>Experience the Future of Crew Management<\/h3>\n                            <p>IntelliCrew harnesses the power of AI to enhance crew management, ensuring optimal crew selection, reduced operational costs, and improved performance. <\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/intellicrew\/\" target=\"_self\">\n                                   IntelliCrew                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew-1.webp\" \n                                                 alt=\"IntelliCrew crew intelligence solution for fleet planning\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab2\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-icon.svg\" class=\"product-icon\" title=\"QDMS AI Search & Chatbot\" alt=\"QDMS AI Search & Chatbot Icon\">\n                            <h2>QDMS AI Search &amp; Chatbot<\/h2>\n                            <h3>Effortless AI-driven Document Search<\/h3>\n                            <p>QDMS AI Search &amp; Chatbot is an intelligent, AI-enhanced extension of smartPAL\u2019s Quality\r\nDocument Management System, designed to streamline access to critical maritime\r\ndocuments, procedures, forms, and circulars.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/qdms-ai-search-chatbot\/\" target=\"_self\">\n                                   QDMS AI Search &amp;  Chatbot                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms_ai_search_chatbot.webp\" \n                                                 alt=\"QDMS AI search and chatbot for document retrieval\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab3\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai-icon.svg\" class=\"product-icon\" title=\"FaultSenseAI\" alt=\"FaultSenseAI Icon\">\n                            <h2>FaultSenseAI<\/h2>\n                            <h3>AI-driven Proactive Engine Health Monitoring<\/h3>\n                            <p>FaultSenseAI revolutionizes maritime maintenance by leveraging advanced AI\r\nto detect, diagnose, and predict equipment faults with unparalleled accuracy.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/faultsenseai\/\" target=\"_self\">\n                                   FaultSenseAI                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/faultsenseAI.webp\" \n                                                 alt=\"FaultSenseAI predictive maintenance monitoring solution\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab4\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot-icon.svg\" class=\"product-icon\" title=\"FinBot\" alt=\"FinBot Icon\">\n                            <h2>FinBot<\/h2>\n                            <h3>Your AI Financial Assistant<\/h3>\n                            <p>FinBot is an AI-powered virtual financial assistant designed to simplify interaction\r\nwith financial data for maritime businesses.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/finbot\/\" target=\"_self\">\n                                   FinBot                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/finbot.webp\" \n                                                 alt=\"FinBot AI-powered financial assistant product image\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab5\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot-icon.svg\" class=\"product-icon\" title=\"SupportBot\" alt=\"SupportBot Icon\">\n                            <h2>SupportBot<\/h2>\n                            <h3>Meet Your Efficient AI Assistant<\/h3>\n                            <p>SupportBot redefines maritime support by delivering an intelligent, AI-powered\r\nsolution that eliminates the inefficiencies of traditional ticket-based systems.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/supportbot\/\" target=\"_self\">\n                                   SupportBot                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/supportBot.webp\" \n                                                 alt=\"SupportBot AI assistant for maritime support queries\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab6\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai-icon.svg\" class=\"product-icon\" title=\"ScavAI\" alt=\"ScavAI Icon\">\n                            <h2>ScavAI<\/h2>\n                            <h3>AI-Powered Scavenge Inspections <\/h3>\n                            <p>ScavAI is an advanced AI-powered solution designed to optimize the\r\nperformance of scavenging systems in maritime engines.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/scavai\/\" target=\"_self\">\n                                   ScavAI                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scavAI.webp\" \n                                                 alt=\"ScaVAI AI analytics solution for maritime operations\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab7\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware-icon.svg\" class=\"product-icon\" title=\"smartAware\" alt=\"smartAware Icon\">\n                            <h2>smartAware<\/h2>\n                            <h3>Real-Time Surveillance for Safer Navigation<\/h3>\n                            <p>smartAware transforms maritime situational awareness by harnessing AI to\r\ndeliver real-time insights and predictive analytics.<\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/smartaware\/\" target=\"_self\">\n                                   SmartAware                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smartAware.webp\" \n                                                 alt=\"SmartAware AI-powered computer vision system\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab8\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inpection-icon.svg\" class=\"product-icon\" title=\"InspectAI\" alt=\"InspectAI Icon\">\n                            <h2>InspectAI<\/h2>\n                            <h3>AI-Enabled Vessel Inspections<\/h3>\n                            <p>InspectAI is a fleet-level AI solution that continuously evaluates crewing, maintenance, safety, and procurement data to highlight operational gaps before they escalate. It creates tailored inspection questions and assigns structured vessel risk ratings based on real-time inputs. <\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/ai-assisted-vessel-inspection\/\" target=\"_self\">\n                                   Explore                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inpection-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/inspectAI.webp\" \n                                                 alt=\"InspectAI maritime risk intelligence platform\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab9\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/QA-Agent-Icon-white-1.svg\" class=\"product-icon\" title=\"QA Agent\" alt=\"QA Agent Icon\">\n                            <h2>QA Agent<\/h2>\n                            <h3>QA Agent- Smart AI for testing<\/h3>\n                            <p>QA Agent is an AI-powered testing assistant that generate end-to-end test artifacts using natural language, functional specifications, and user manuals. Users can simply provide inputs in text or document formats and receive structured outputs such as test cases, viewpoints, release notes, and automation scripts. <\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/qa-agent\/\" target=\"_self\">\n                                   QA Agent                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/QA-Agent-Icon-white-1.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai_assisted_vessel_inspection-1.webp\" \n                                                 alt=\"AI-assisted vessel inspection feature image. AI-powered testing assistant generating automated test cases and QA artifacts\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab10\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system-icon.svg\" class=\"product-icon\" title=\"IssuTrax AI Dashboard Assistant \" alt=\"IssuTrax AI Dashboard Assistant  Icon\">\n                            <h2>IssuTrax AI Dashboard Assistant <\/h2>\n                            <h3>Improve Reliability by Utilizing AI-driven Vessel Issue Management<\/h3>\n                            <p>The IssuTrax AI Dashboard Assistant enhances cruisePAL\u2019s IssuTrax module. By enabling natural language interaction directly within the dashboard, users can quickly search issue records, uncover trends, and filter operational data without navigating complex reports.  <\/p>\n                                                            <a class=\"product-explore-button\" href=\"https:\/\/staging.cruisepal.com\/products\/issue-tracker-system\/\" target=\"_self\">\n                                   Explore                                <\/a>\n                                                        <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/issue-tracker-system-icon.svg\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                            <div class=\"product-images\" style=\"display:flex; flex-wrap:wrap; gap:10px;\">\n                                                                                <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/IssuTraxAI.webp\" \n                                                 alt=\"IssuTraxAI dashboard assistant for issue tracking\">\n                                                                                                            <\/div>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab11\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"\" class=\"product-icon\" title=\"Detention AI\" alt=\"Detention AI Icon\">\n                            <h2>Detention AI<\/h2>\n                            <h3><\/h3>\n                            <p><\/p>\n                                                            <a class=\"product-explore-button\" \n                                   href=\"\" \n                                   target=\"_self\">\n                                                                   <\/a>\n                                                        <img decoding=\"async\" src=\"\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab12\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"\" class=\"product-icon\" title=\"MS-AI\" alt=\"MS-AI Icon\">\n                            <h2>MS-AI<\/h2>\n                            <h3><\/h3>\n                            <p><\/p>\n                                                            <a class=\"product-explore-button\" \n                                   href=\"\" \n                                   target=\"_self\">\n                                                                   <\/a>\n                                                        <img decoding=\"async\" src=\"\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                            <div id=\"tab13\" \n                     class=\"tab-content \">\n                    <div class=\"tab-content-inner\" style=\"display: flex; flex-wrap: wrap;\">\n                        <div class=\"tab-left\">\n                            <img decoding=\"async\" src=\"\" class=\"product-icon\" title=\"Mailing Agent\" alt=\"Mailing Agent Icon\">\n                            <h2>Mailing Agent<\/h2>\n                            <h3><\/h3>\n                            <p><\/p>\n                                                            <a class=\"product-explore-button\" \n                                   href=\"\" \n                                   target=\"_self\">\n                                                                   <\/a>\n                                                        <img decoding=\"async\" src=\"\" \n                                 class=\"icon-bottom-right\">\n                        <\/div>\n                        <div class=\"tab-right\" style=\"flex: 1 1 50%;\">\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n                    <\/div>\n            <\/div>\n\n    <script>\n      const tabs = document.querySelectorAll(\".tab\");\n      const contents = document.querySelectorAll(\".tab-content\");\n      const backgrounds = document.querySelectorAll(\".bg-color\");\n      let currentIndex = 0;\n\n      function activateTab(index) {\n        tabs.forEach(t => t.classList.remove(\"active\"));\n        contents.forEach(c => c.classList.remove(\"active\"));\n        backgrounds.forEach(bg => bg.classList.remove(\"active\"));\n\n        tabs[index].classList.add(\"active\");\n        contents[index].classList.add(\"active\");\n        backgrounds[index].classList.add(\"active\");\n\n        currentIndex = index;\n      }\n\n      tabs.forEach((tab, index) => {\n        tab.addEventListener(\"click\", () => {\n          activateTab(index);\n        });\n      });\n\n      \/\/ Auto-scroll every 8 seconds\n      setInterval(() => {\n        let nextIndex = (currentIndex + 1) % tabs.length;\n        activateTab(nextIndex);\n      }, 800000);\n    <\/script>\n\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=\"1\" admin_label=\"Year Slider\" module_class=\"year-slider-section\" _builder_version=\"4.27.4\" _module_preset=\"default\" background_enable_color=\"off\" collapsed=\"off\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_code disabled_on=\"on|on|on\" admin_label=\"\u65e7\u30b3\u30fc\u30c9\" _builder_version=\"4.27.4\" _module_preset=\"default\" disabled=\"on\" global_colors_info=\"{}\"]<\/p>\n<style><!-- [et_pb_line_break_holder] -->.timeline-wrapper {<!-- [et_pb_line_break_holder] -->  height: calc(100vh * 4);<!-- [et_pb_line_break_holder] -->  position: relative;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-sticky {<!-- [et_pb_line_break_holder] -->  position: sticky;<!-- [et_pb_line_break_holder] -->  top: 0;<!-- [et_pb_line_break_holder] -->  height: 100vh;<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  background: #fff;<!-- [et_pb_line_break_holder] -->  overflow: hidden;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-years {<!-- [et_pb_line_break_holder] -->  width: 30%;<!-- [et_pb_line_break_holder] -->  padding: 80px;<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-direction: column;<!-- [et_pb_line_break_holder] -->  justify-content: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-year {<!-- [et_pb_line_break_holder] -->  font-size: 42px;<!-- [et_pb_line_break_holder] -->  color: #cfcfcf;<!-- [et_pb_line_break_holder] -->  transition: 0.3s;<!-- [et_pb_line_break_holder] -->  margin: 15px 0;<!-- [et_pb_line_break_holder] -->  font-weight: 400;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-year.active {<!-- [et_pb_line_break_holder] -->  font-size: 150px;<!-- [et_pb_line_break_holder] -->  color: #4b4b4b;<!-- [et_pb_line_break_holder] -->  font-weight: 700;<!-- [et_pb_line_break_holder] -->  margin: 50px 0;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-content {<!-- [et_pb_line_break_holder] -->  width: 70%;<!-- [et_pb_line_break_holder] -->  position: relative;<!-- [et_pb_line_break_holder] -->  overflow: hidden;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-slides {<!-- [et_pb_line_break_holder] -->  position: absolute;<!-- [et_pb_line_break_holder] -->  inset: 0;<!-- [et_pb_line_break_holder] -->  transition: transform 0.35s ease-out;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.timeline-slide {<!-- [et_pb_line_break_holder] -->  height: 100vh;<!-- [et_pb_line_break_holder] -->  padding: 80px;<!-- [et_pb_line_break_holder] -->  display: grid;<!-- [et_pb_line_break_holder] -->  grid-template-columns: repeat(2, 1fr);<!-- [et_pb_line_break_holder] -->  gap: 30px 10px;<!-- [et_pb_line_break_holder] -->  align-content: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.feature {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  flex-direction: column;<!-- [et_pb_line_break_holder] -->  align-items: flex-start;<!-- [et_pb_line_break_holder] -->  width: 80%;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.feature img {<!-- [et_pb_line_break_holder] -->  width: 56px;<!-- [et_pb_line_break_holder] -->  height: 56px;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px;<!-- [et_pb_line_break_holder] -->  object-fit: contain;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.feature h4 {<!-- [et_pb_line_break_holder] -->  margin: 0 0 8px;<!-- [et_pb_line_break_holder] -->  font-size: 18px;<!-- [et_pb_line_break_holder] -->  font-weight: 600;<!-- [et_pb_line_break_holder] -->  color: #222;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.feature p {<!-- [et_pb_line_break_holder] -->  margin: 0;<!-- [et_pb_line_break_holder] -->  font-size: 14px;<!-- [et_pb_line_break_holder] -->  color: #666;<!-- [et_pb_line_break_holder] -->  line-height: 1.5;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"timeline-wrapper\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"timeline-sticky\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- YEARS --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"timeline-years\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"timeline-year active\">2025<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"timeline-year\">2024<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"timeline-year\">2023<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"timeline-year\">2022<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"timeline-content\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"timeline-slides\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"timeline-slide\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>IntelliCrew<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>Smart Aware<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>QDMS\u30dc\u30c3\u30c8<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>AI\u99c6\u52d5\u306e\u54c1\u8cea\u30a4\u30f3\u30b5\u30a4\u30c8<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>Fault Sense<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u8a3a\u65ad<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"timeline-slide\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3\u30b3\u30a2<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u30d7\u30ed\u30bb\u30b9\u30aa\u30fc\u30b1\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30a2\u30ca\u30ea\u30c6\u30a3\u30af\u30b9\u30cf\u30d6<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30ef\u30fc\u30af\u30d5\u30ed\u30fcAI<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u9069\u5fdc\u578b\u5b9f\u884c\u30a8\u30f3\u30b8\u30f3<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u4e88\u6e2c\u30aa\u30da\u30ec\u30fc\u30b7\u30e7\u30f3<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u4e88\u6e2c\u99c6\u52d5\u578b\u904b\u7528<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"timeline-slide\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30af\u30e9\u30a6\u30c9\u540c\u671f<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u30de\u30eb\u30c1\u30ea\u30fc\u30b8\u30e7\u30f3\u53ef\u7528\u6027<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30e1\u30c3\u30b7\u30e5<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u30bc\u30ed\u30c8\u30e9\u30b9\u30c8\u5b9f\u65bd<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u7d71\u5408\u30cf\u30d6<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>API\u30d5\u30a1\u30fc\u30b9\u30c8\u63a5\u7d9a<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u76e3\u67fb\u8a3c\u8de1<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u898f\u5236\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"timeline-slide\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30ec\u30ac\u30b7\u30fc\u30b9\u30a4\u30fc\u30c8<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u9577\u671f\u7684\u306a\u5b89\u5b9a\u6027<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30ec\u30dd\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u69cb\u9020\u5316\u3055\u308c\u305f\u30a4\u30f3\u30b5\u30a4\u30c8<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u30ed\u30fc\u30eb\u30d9\u30fc\u30b9\u306e\u6a29\u9650<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"feature\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<h4>\u30c7\u30fc\u30bf\u30a2\u30fc\u30ab\u30a4\u30d6<\/h4>\n<p><!-- [et_pb_line_break_holder] -->            <pee>\u5b89\u5168\u306a\u9577\u671f\u4fdd\u5b58<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  (() => {<!-- [et_pb_line_break_holder] -->    const wrapper = document.querySelector(\".timeline-wrapper\");<!-- [et_pb_line_break_holder] -->    const slides = document.querySelector(\".timeline-slides\");<!-- [et_pb_line_break_holder] -->    const years = [...document.querySelectorAll(\".timeline-year\")];<!-- [et_pb_line_break_holder] -->    const total = years.length;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    window.addEventListener(<!-- [et_pb_line_break_holder] -->      \"scroll\",<!-- [et_pb_line_break_holder] -->      () => {<!-- [et_pb_line_break_holder] -->        const progress = Math.min(<!-- [et_pb_line_break_holder] -->          Math.max(<!-- [et_pb_line_break_holder] -->            -wrapper.getBoundingClientRect().top \/<!-- [et_pb_line_break_holder] -->              (wrapper.offsetHeight - innerHeight),<!-- [et_pb_line_break_holder] -->            0<!-- [et_pb_line_break_holder] -->          ),<!-- [et_pb_line_break_holder] -->          1<!-- [et_pb_line_break_holder] -->        );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        const index = Math.min(<!-- [et_pb_line_break_holder] -->          total - 1,<!-- [et_pb_line_break_holder] -->          Math.floor(progress * total)<!-- [et_pb_line_break_holder] -->        );<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        slides.style.transform = `translateY(-${index * 100}vh)`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        years.forEach((y, i) =><!-- [et_pb_line_break_holder] -->          y.classList.toggle(\"active\", i === index)<!-- [et_pb_line_break_holder] -->        );<!-- [et_pb_line_break_holder] -->      },<!-- [et_pb_line_break_holder] -->      { passive: true }<!-- [et_pb_line_break_holder] -->    );<!-- [et_pb_line_break_holder] -->  })();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text disabled_on=\"off|off|off\" _builder_version=\"4.27.4\" _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n  <style>\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       DESKTOP  (base styles, > 767px)\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    .tl-wrapper {\n      height: calc(45vh * 4);\n      position: relative;\n    }\n    .tl-sticky {\n      position: sticky;\n      top: 0;\n      height: 100vh;\n      display: flex;\n      background: #fff;\n      overflow: hidden;\n    }\n    .tl-years {\n      width: 30%;\n      padding: 80px 40px 80px 80px;\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      flex-shrink: 0;\n    }\n    .tl-year {\n      font-size: 38px;\n      color: #cfcfcf;\n      transition: font-size .3s, color .3s, margin .3s, text-shadow .3s;\n      margin: 12px 0;\n      font-weight: 400;\n      cursor: pointer;\n      user-select: none;\n      line-height: 1;\n      white-space: nowrap;\n    }\n    .tl-year.active {\n      font-size: 130px;\n      color: #4b4b4b;\n      font-weight: 700;\n      margin: 0 0;\n      text-shadow: 5px 7px 0 #ededed;\n    }\n    .tl-content {\n      flex: 1;\n      position: relative;\n      overflow: hidden;\n      margin-left: 40px;\n    }\n    .tl-slides {\n      position: absolute;\n      inset: 0;\n      transition: transform .35s ease-out;\n      width: 100%;\n    }\n    .tl-slide {\n      height: 100vh;\n      padding: 80px 20px 40px;\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 30px 20px;\n      align-content: center;\n      box-sizing: border-box;\n    }\n    .tl-feature {\n      display: flex;\n      flex-direction: column;\n      align-items: flex-start;\n      width: 90%;\n    }\n    .tl-feature img {\n      width: 60px;\n      height: 60px;\n      margin-bottom: 14px;\n      object-fit: contain;\n    }\n    .tl-feature h4 {\n      font-size: 20px;\n      font-weight: 600;\n      color: #222;\n      margin: 0 0 6px;\n    }\n    .tl-feature p {\n      margin: 0;\n      font-size: 15px;\n      color: #666;\n      line-height: 1.5;\n    }\n    .tl-feature-text { flex: 1; }\n    .tl-title {\n\t  width: 100%;\n      font-size: 22px;\n      text-align: center;\n      position: absolute;\n      top: 16px;\n      left: 50%;\n      transform: translateX(-50%);\n      z-index: 20;\n      background: #fff;\n      padding: 0 16px;\n      white-space: nowrap;\n      margin: 0;\n      font-weight: 600;\n      color: #333;\n    }\n    #page-container, body, .et-boc, .et-l,\n    .et_builder_inner_content, .et_pb_section,\n    .et_pb_row, .et_pb_column, .entry-content {\n      overflow: visible !important;\n    }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       TABLET  (768px \u2013 1024px)\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    @media (max-width: 1024px) and (min-width: 768px) {\n      .tl-years {\n        width: 30%;\n        padding: 80px 20px 80px 40px;\n      }\n      .tl-year {\n        font-size: 26px;\n        margin: 10px 0;\n      }\n      .tl-year.active {\n        font-size: 72px;\n        margin: 36px 0;\n        text-shadow: 3px 5px 0 #ededed;\n      }\n      .tl-content {\n        margin-left: 20px;\n      }\n      .tl-slide {\n        padding: 80px 10px 40px;\n        gap: 24px 12px;\n      }\n      .tl-feature h4 {\n        font-size: 17px;\n      }\n      .tl-feature p {\n        font-size: 13px;\n      }\n      .tl-feature img {\n        width: 50px;\n        height: 50px;\n      }\n    }\n\n    \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n       MOBILE  (\u2264 767px)\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n    @media (max-width: 767px) {\n      .tl-wrapper {\n        height: auto !important;\n        min-height: 0 !important;\n      }\n      .tl-sticky {\n        position: static !important;\n        height: auto !important;\n        flex-direction: column !important;\n        overflow: visible !important;\n        padding-top: 50px;\n      }\n      .tl-years {\n        width: 100% !important;\n        flex-direction: row !important;\n        flex-wrap: wrap !important;\n        justify-content: center !important;\n        padding: 12px 16px !important;\n        gap: 8px !important;\n        border-bottom: 2px solid #f0f0f0;\n        box-sizing: border-box !important;\n      }\n      .tl-year {\n        font-size: 13px !important;\n        margin: 0 !important;\n        padding: 6px 14px !important;\n        border: 1.5px solid #d0d0d0 !important;\n        border-radius: 999px !important;\n        background: #fff !important;\n        color: #888 !important;\n        text-shadow: none !important;\n        white-space: nowrap;\n        transition: background .2s, color .2s, border-color .2s !important;\n      }\n      .tl-year.active {\n        font-size: 13px !important;\n        font-weight: 700 !important;\n        color: #fff !important;\n        background: #4b4b4b !important;\n        border-color: #4b4b4b !important;\n        text-shadow: none !important;\n        margin: 0 !important;\n      }\n      .tl-content {\n        width: 100% !important;\n        margin-left: 0 !important;\n        position: static !important;\n        overflow: visible !important;\n        flex: none !important;\n      }\n      .tl-slides {\n        position: static !important;\n        transform: none !important;\n        transition: none !important;\n        inset: auto !important;\n        width: 100% !important;\n      }\n      .tl-slide {\n        display: none !important;\n        height: auto !important;\n        padding: 24px 16px !important;\n        grid-template-columns: 1fr !important;\n        gap: 20px !important;\n        align-content: start !important;\n        box-sizing: border-box !important;\n      }\n      .tl-slide.mob-active {\n        display: grid !important;\n      }\n      .tl-feature {\n        width: 100% !important;\n        flex-direction: row !important;\n        align-items: flex-start !important;\n        gap: 14px !important;\n      }\n      .tl-feature img {\n        width: 42px !important;\n        height: 42px !important;\n        margin-bottom: 0 !important;\n        flex-shrink: 0 !important;\n      }\n      .tl-feature h4 {\n        font-size: 15px !important;\n        margin: 0 0 4px !important;\n      }\n      .tl-feature p {\n        font-size: 13px !important;\n      }\n      .tl-title {\n        font-size: 16px;\n        top: 10px;\n      }   \n\t\t.footer-section::before {\n\t\t  top: -4vh;\n\t\t}\n\t }\n  <\/style>\n  <div class=\"tl-wrapper\">\n    <div class=\"tl-sticky\">\n      <h3 class=\"tl-title\">Road Map<\/h3>\n      <div class=\"tl-years\">\n                  <div class=\"tl-year active\" data-index=\"0\">\n            2024          <\/div>\n                  <div class=\"tl-year\" data-index=\"1\">\n            2025          <\/div>\n                  <div class=\"tl-year\" data-index=\"2\">\n            2026          <\/div>\n                  <div class=\"tl-year\" data-index=\"3\">\n            2027          <\/div>\n              <\/div>\n      <div class=\"tl-content\">\n        <div class=\"tl-slides\">\n                      <div class=\"tl-slide mob-active\" data-slide=\"0\">\n              \t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/smartaware\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/smart-aware.png\" alt=\"Smart Aware\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Smart Aware<\/h4>\n                    <p><\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/scavai\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/scav-ai.png\" alt=\"Scav AI\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Scav AI<\/h4>\n                    <p><\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/faultsenseai\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fault-sense-ai.png\" alt=\"Fault Sense AI\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Fault Sense AI<\/h4>\n                    <p><\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t                          <\/div>\n                      <div class=\"tl-slide\" data-slide=\"1\">\n              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/inspectai\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/ai-assisted-vessel-inspection.png\" alt=\"Inspect AI\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Inspect AI<\/h4>\n                    <p>An AI-powered system that provides proactive risk insights and inspection support to improve safety and compliance.<\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/finbot\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/fin-bot.png\" alt=\"FinBot\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>FinBot<\/h4>\n                    <p>An AI-driven finance assistant that turns questions into insights, reports, and actionable intelligence.<\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/qa-agent\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/QA-Agent-Icon.svg\" alt=\"QA Agent\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>QA Agent<\/h4>\n                    <p>An AI-driven assistant that converts requirements into structured test artifacts for faster, accurate testing.<\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/supportbot\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/support-bot.png\" alt=\"Support Bot\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Support Bot<\/h4>\n                    <p>An AI-driven assistant that delivers real-time support, resolves queries, and streamlines ticket management.<\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/qdms-ai-search-chatbot\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/qdms-ai-search.png\" alt=\"QDMS AI\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>QDMS AI<\/h4>\n                    <p>An intelligent assistant for fast, context-based search and retrieval of compliance documents.<\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t                          <\/div>\n                      <div class=\"tl-slide\" data-slide=\"2\">\n              \t\t\t\t                <div class=\"tl-feature\">\n                  <a href=\"https:\/\/staging.cruisepal.com\/products\/intellicrew\/\" target=\"_self\"><img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/intellicrew.png\" alt=\"Intellicrew\"><\/a>                  <div class=\"tl-feature-text\">\n                    <h4>Intellicrew<\/h4>\n                    <p><\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t              \t\t\t\t              \t\t\t\t                          <\/div>\n                      <div class=\"tl-slide\" data-slide=\"3\">\n              \t\t\t\t                <div class=\"tl-feature\">\n                  <img decoding=\"async\" src=\"https:\/\/staging.cruisepal.com\/wp-content\/uploads\/product-dummy.png\" alt=\"Timeline Icon\">                  <div class=\"tl-feature-text\">\n                    <h4><\/h4>\n                    <p>By 2027, mini AI systems will enable real-time operations and insights on crew wearables. Prototypes launch by Q2 2027 for cost-effective, scalable performance. <\/p>\n                  <\/div>\n                <\/div>\n\t\t\t\t                          <\/div>\n                  <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  <script>\n    (() => {\n      const BP = 767;\n      const isMobile = () => window.innerWidth <= BP;\n      const wrapper    = document.querySelector('.tl-wrapper');\n      const sticky     = document.querySelector('.tl-sticky');\n      const slidesWrap = document.querySelector('.tl-slides');\n      const years      = [...document.querySelectorAll('.tl-year')];\n      const slides     = [...document.querySelectorAll('.tl-slide')];\n      if (!wrapper || !sticky || !slidesWrap || !years.length) return;\n      const total = years.length;\n      let activeIdx = 0;\n      function mobileActivate(idx) {\n        activeIdx = idx;\n        years.forEach((y, i)  => y.classList.toggle('active',     i === idx));\n        slides.forEach((s, i) => s.classList.toggle('mob-active', i === idx));\n      }\n      function getHeaderOffset() {\n        const h = document.querySelector('.main-header');\n        return (h ? h.offsetHeight : 0) + 20;\n      }\n      function applyDesktopOffset() {\n        const off = getHeaderOffset();\n        sticky.style.top    = off + 'px';\n        sticky.style.height = 'calc(100vh - ' + off + 'px)';\n        slides.forEach(s => { s.style.height = 'calc(100vh - ' + off + 'px)'; });\n      }\n      function clearDesktopStyles() {\n        sticky.style.top    = '';\n        sticky.style.height = '';\n        slides.forEach(s => { s.style.height = ''; s.style.display = ''; });\n        slidesWrap.style.transform = '';\n      }\n      function desktopScroll() {\n        if (isMobile()) return;\n        const rect      = wrapper.getBoundingClientRect();\n        const wrapperH  = wrapper.offsetHeight;\n        const viewportH = window.innerHeight;\n        const scrolled  = -rect.top;\n        const progress  = Math.min(Math.max(scrolled \/ (wrapperH - viewportH), 0), 1);\n        const idx       = Math.min(total - 1, Math.floor(progress * total));\n        if (idx !== activeIdx) {\n          activeIdx = idx;\n          slidesWrap.style.transform = 'translateY(-' + (idx * sticky.offsetHeight) + 'px)';\n          years.forEach((y, i)  => y.classList.toggle('active',     i === idx));\n          slides.forEach((s, i) => s.classList.toggle('mob-active', i === idx));\n        }\n      }\n      function desktopScrollTo(idx) {\n        const progress   = total <= 1 ? 0 : idx \/ (total - 1);\n        const wrapperTop = wrapper.getBoundingClientRect().top + window.pageYOffset;\n        window.scrollTo({\n          top: wrapperTop + progress * (wrapper.offsetHeight - window.innerHeight),\n          behavior: 'smooth'\n        });\n      }\n      function initMobile() {\n        clearDesktopStyles();\n        mobileActivate(activeIdx);\n      }\n      function initDesktop() {\n        slides.forEach(s => s.classList.remove('mob-active'));\n        applyDesktopOffset();\n        desktopScroll();\n      }\n      years.forEach(y => {\n        y.addEventListener('click', () => {\n          const idx = parseInt(y.dataset.index, 10);\n          if (isMobile()) {\n            mobileActivate(idx);\n          } else {\n            desktopScrollTo(idx);\n          }\n        });\n      });\n      window.addEventListener('scroll', desktopScroll, { passive: true });\n      window.addEventListener('resize', () => {\n        isMobile() ? initMobile() : initDesktop();\n      });\n      isMobile() ? initMobile() : initDesktop();\n    })();\n  <\/script>\n\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Predict. Prevent. Perform. AI\u642d\u8f09\u306e\u8239\u8236\u7ba1\u7406\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u52b9\u7387\u6027\u30fb\u5b89\u5168\u6027\u30fb\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u3092\u5411\u4e0a\u3002 \u8a73\u7d30\u3092\u898b\u308b\u6d77\u4e8b\u30a4\u30ce\u30d9\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3081\u306eAI\u306e\u529b\u3092\u6d3b\u7528 MariApps\u30b0\u30eb\u30fc\u30d7\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308bOceanAI\u306f\u3001\u5148\u9032\u7684\u306a\u4eba\u5de5\u77e5\u80fd\u3092\u901a\u3058\u3066\u6d77\u4e8b\u696d\u754c\u306b\u9769\u547d\u3092\u3082\u305f\u3089\u3059\u3053\u3068\u306b\u5c02\u5ff5\u3057\u3066\u3044\u307e\u3059\u3002\u79c1\u305f\u3061\u306e\u4f7f\u547d\u306f\u3001AI\u6280\u8853\u3092MariApps\u306e\u4e3b\u529b\u30c7\u30b8\u30bf\u30eb\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30b9\u30a4\u30fc [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":15109,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-15015","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/pages\/15015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/comments?post=15015"}],"version-history":[{"count":18,"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/pages\/15015\/revisions"}],"predecessor-version":[{"id":15357,"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/pages\/15015\/revisions\/15357"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/media\/15109"}],"wp:attachment":[{"href":"https:\/\/staging.cruisepal.com\/ja\/wp-json\/wp\/v2\/media?parent=15015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}