{"id":3274,"date":"2026-01-14T17:39:24","date_gmt":"2026-01-14T17:39:24","guid":{"rendered":"https:\/\/test.innovacore.group\/?post_type=portfolio&#038;p=3274"},"modified":"2026-01-15T12:07:55","modified_gmt":"2026-01-15T12:07:55","slug":"ubc","status":"publish","type":"portfolio","link":"https:\/\/test.innovacore.group\/zh-hans\/portfolio\/ubc\/","title":{"rendered":"UBC: Your Fast-Track to US Success"},"content":{"rendered":"\n<p><strong>Company Description<\/strong> UBC acts as a comprehensive strategic launchpad for international companies aiming to conquer the US market. Far beyond simple administration, they combine formalist legal compliance with high-level strategic planning and investment structuring. By offering an all-in-one ecosystem, UBC allows businesses to navigate complex American regulations while simultaneously securing the funding and strategy needed for aggressive growth.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Master the US market with expert legal, strategic, and investment guidance.<\/p>\n","protected":false},"featured_media":2369,"parent":0,"template":"","meta":{"inline_featured_image":false,"company_name":"USA BUSINESS CLUB","summary":"Your Fast-Track to <span class=\"ic-nycd\">US Success<\/span>","mission":"<p>UBC\u2019s mission is to de-risk and accelerate US market entry for foreign entities. They strive to bridge the gap between international ambition and American reality by providing the essential legal frameworks, strategic insights, and capital access required for sustainable success.<\/p>\n","impact":"<p>UBC is reshaping the landscape of foreign direct investment in the USA. By integrating legal structure with investment strategy, they significantly lower the barrier to entry, enabling a diverse range of international firms to disrupt local sectors and stimulating cross-border economic growth.<\/p>\n","company_logo":"https:\/\/test.innovacore.group\/wp-content\/uploads\/ubc-logo-core-innovacore-optimized-1.jpg","website_url":"https:\/\/usa-business.club","linkedin_url":"https:\/\/www.linkedin.com\/company\/usabusinessclub\/","location":"Cheyenne, WY, USA","founded_year":"2025","key_numbers":{"item-0":{"metric_label":"+ Companies Supported","metric_value":"200"},"item-1":{"metric_label":"% Annual Growth","metric_value":"+50"},"item-2":{"metric_label":"Unified Ecosystem","metric_value":"1"}},"hiring_status":"hiring","sector":"other","company_type":"sme","audience":["b2b"],"geo_scope":["global"],"business_model":["services"],"funding_stage":"undisclosed","partnership_type":"creation","logo_animation":"<div id=\"ubc-particle-root\">\r\n    <canvas id=\"ubcCanvas\"><\/canvas>\r\n<\/div>\r\n\r\n<style>\r\n    #ubc-particle-root {\r\n        width: 100%;\r\n        height: 300px; \/* Hauteur fixe respect\u00e9e *\/\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        background: transparent; \/* Fond transparent *\/\r\n        overflow: hidden;\r\n        cursor: crosshair; \/* Invite \u00e0 l'interaction *\/\r\n    }\r\n<\/style>\r\n\r\n<script>\r\n(function() {\r\n    const canvas = document.getElementById('ubcCanvas');\r\n    const ctx = canvas.getContext('2d', { willReadFrequently: true });\r\n    const root = document.getElementById('ubc-particle-root');\r\n    \r\n    let width, height;\r\n    let particles = [];\r\n    let mouse = { x: -1000, y: -1000 };\r\n    \r\n    \/\/ --- CORRECTION COULEUR ICI ---\r\n    const particleColor = '#f5f5f5'; \/\/ La bonne couleur claire\r\n    \r\n    let time = 0;\r\n\r\n    function init() {\r\n        width = root.offsetWidth;\r\n        height = 300;\r\n        \r\n        const dpr = window.devicePixelRatio || 1;\r\n        canvas.width = width * dpr;\r\n        canvas.height = height * dpr;\r\n        canvas.style.width = width + 'px';\r\n        canvas.style.height = height + 'px';\r\n        ctx.scale(dpr, dpr);\r\n\r\n        createLogoParticles();\r\n    }\r\n\r\n    function createLogoParticles() {\r\n        particles = [];\r\n        \r\n        \/\/ 1. Configuration du texte \"ubc\"\r\n        \/\/ Taille adaptative : plus petit sur mobile (80px) vs desktop (150px)\r\n        const fontSize = width < 600 ? 80 : 150; \r\n        \r\n        \/\/ Police sans-serif tr\u00e8s grasse pour correspondre au logo ubc\r\n        ctx.font = `900 ${fontSize}px Arial, Helvetica, sans-serif`;\r\n        ctx.fillStyle = 'white'; \/\/ Couleur technique pour le scan (invisible \u00e0 la fin)\r\n        ctx.textAlign = 'center';\r\n        ctx.textBaseline = 'middle';\r\n        \r\n        \/\/ Dessin au centre exact\r\n        ctx.fillText('ubc', width \/ 2, height \/ 2);\r\n\r\n        \/\/ 2. Scan des pixels\r\n        const density = 4; \/\/ \u00c9chantillonnage\r\n        const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height).data;\r\n        const dataWidth = canvas.width; \r\n\r\n        for (let y = 0; y < canvas.height; y += density) {\r\n            for (let x = 0; x < canvas.width; x += density) {\r\n                \/\/ Si le pixel n'est pas transparent\r\n                if (imageData[(y * dataWidth + x) * 4 + 3] > 128) {\r\n                    const dpr = window.devicePixelRatio || 1;\r\n                    particles.push({\r\n                        x: x \/ dpr,\r\n                        y: y \/ dpr,\r\n                        originX: x \/ dpr,\r\n                        originY: y \/ dpr,\r\n                        vx: 0, \r\n                        vy: 0,\r\n                        size: Math.random() * 1.5 + 0.5, \/\/ Taille variable naturelle\r\n                        force: Math.random() \/\/ Variation individuelle\r\n                    });\r\n                }\r\n            }\r\n        }\r\n        \r\n        \/\/ Nettoyage imm\u00e9diat du texte statique\r\n        ctx.clearRect(0, 0, width, height);\r\n    }\r\n\r\n    function draw() {\r\n        ctx.clearRect(0, 0, width, height);\r\n        time += 0.05;\r\n\r\n        ctx.fillStyle = particleColor;\r\n        \r\n        particles.forEach(p => {\r\n            \/\/ --- 1. Mouvement naturel (Respiration) ---\r\n            const waveX = Math.sin(time * 0.5 + p.y * 0.05) * 2;\r\n            const waveY = Math.cos(time * 0.3 + p.x * 0.05) * 2;\r\n            \r\n            \/\/ --- 2. Interaction Souris ---\r\n            const dx = mouse.x - p.x;\r\n            const dy = mouse.y - p.y;\r\n            const dist = Math.sqrt(dx*dx + dy*dy);\r\n            const radius = 80;\r\n            \r\n            let repelX = 0;\r\n            let repelY = 0;\r\n\r\n            if (dist < radius) {\r\n                const force = (radius - dist) \/ radius;\r\n                const angle = Math.atan2(dy, dx);\r\n                repelX = -Math.cos(angle) * force * 20;\r\n                repelY = -Math.sin(angle) * force * 20;\r\n            }\r\n\r\n            \/\/ --- 3. Physique (Retour \u00e9lastique) ---\r\n            const targetX = p.originX + waveX;\r\n            const targetY = p.originY + waveY;\r\n\r\n            const ax = (targetX - p.x) * 0.08;\r\n            const ay = (targetY - p.y) * 0.08;\r\n\r\n            p.vx += ax;\r\n            p.vy += ay;\r\n            p.vx += repelX * 0.5;\r\n            p.vy += repelY * 0.5;\r\n            p.vx *= 0.85; \/\/ Friction\r\n            p.vy *= 0.85;\r\n\r\n            p.x += p.vx;\r\n            p.y += p.vy;\r\n\r\n            ctx.beginPath();\r\n            ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\r\n            ctx.fill();\r\n        });\r\n\r\n        requestAnimationFrame(draw);\r\n    }\r\n\r\n    const updateMouse = (e) => {\r\n        const r = canvas.getBoundingClientRect();\r\n        const cx = e.touches ? e.touches[0].clientX : e.clientX;\r\n        const cy = e.touches ? e.touches[0].clientY : e.clientY;\r\n        mouse.x = cx - r.left;\r\n        mouse.y = cy - r.top;\r\n    };\r\n\r\n    window.addEventListener('resize', init);\r\n    canvas.addEventListener('mousemove', updateMouse);\r\n    canvas.addEventListener('touchmove', updateMouse, {passive: true});\r\n    canvas.addEventListener('mouseleave', () => { mouse.x = -1000; mouse.y = -1000; });\r\n    canvas.addEventListener('touchend', () => { mouse.x = -1000; mouse.y = -1000; });\r\n\r\n    \/\/ Petit d\u00e9lai pour assurer le chargement de la police\r\n    setTimeout(init, 50);\r\n    draw();\r\n})();\r\n<\/script>"},"pt":[],"pipeline":[33,58],"class_list":["post-3274","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry","pipeline-core","pipeline-global-development"],"_links":{"self":[{"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/portfolio\/3274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/types\/portfolio"}],"version-history":[{"count":3,"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/portfolio\/3274\/revisions"}],"predecessor-version":[{"id":3279,"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/portfolio\/3274\/revisions\/3279"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/media\/2369"}],"wp:attachment":[{"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/media?parent=3274"}],"wp:term":[{"taxonomy":"pt","embeddable":true,"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/pt?post=3274"},{"taxonomy":"pipeline","embeddable":true,"href":"https:\/\/test.innovacore.group\/zh-hans\/wp-json\/wp\/v2\/pipeline?post=3274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}