{"id":20,"date":"2025-11-06T13:15:08","date_gmt":"2025-11-06T06:15:08","guid":{"rendered":"https:\/\/wucode.net\/staging\/?page_id=20"},"modified":"2026-04-15T14:38:54","modified_gmt":"2026-04-15T07:38:54","slug":"trang-chu","status":"publish","type":"page","link":"https:\/\/www.wucode.net\/en\/","title":{"rendered":"Home"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"20\" class=\"elementor elementor-20\" data-elementor-post-type=\"page\">\n\t\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-1ca3d69 e-con-full e-flex e-con e-parent\" data-id=\"1ca3d69\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66273ea elementor-widget elementor-widget-particle_hero_section\" data-id=\"66273ea\" data-element_type=\"widget\" data-widget_type=\"particle_hero_section.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<style>\n\t\t\t#container-ph_canvas_66273ea {\n\t\t\t\tposition: relative;\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\t\t\t#canvas-ph_canvas_66273ea {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0; left: 0; right: 0; bottom: 0;\n\t\t\t\tz-index: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t#container-ph_canvas_66273ea .ph-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0; left: 0; right: 0; bottom: 0;\n\t\t\t\tz-index: 5;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t#container-ph_canvas_66273ea .ph-content-wrapper {\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 10;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\ttext-align: center;\n\t\t\t\tpointer-events: none; \n\t\t\t}\n\t\t\t#container-ph_canvas_66273ea .ph-button {\n\t\t\t\tpointer-events: auto;\n\t\t\t\ttext-decoration: none;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t<\/style>\n\n\t\t<div id=\"container-ph_canvas_66273ea\" class=\"ph-container\">\n\t\t\t<canvas id=\"canvas-ph_canvas_66273ea\"><\/canvas>\n\t\t\t<div class=\"ph-overlay\"><\/div> <!-- Th\u00eam Background Overlay -->\n\t\t\t\n\t\t\t<div class=\"ph-content-wrapper\" id=\"content-ph_canvas_66273ea\">\n\t\t\t\t<div class=\"ph-heading-1\"><\/div>\n\t\t\t\t<div class=\"ph-heading-2\"><\/div>\n\t\t\t\t\n\t\t\t\t<a class=\"ph-button\">\n\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<script>\n\t\t(function() {\n\t\t\tconst initCanvasWidget = () => {\n\t\t\t\tconst instanceId = 'ph_canvas_66273ea';\n\t\t\t\tconst config = {\"shapeType\":\"complex-svg\",\"shapeText\":null,\"shapeFontSize\":1200,\"iconPath\":null,\"iconViewBox\":null,\"svgSource\":\"media\",\"svgUrl\":\"https:\\\/\\\/www.wucode.net\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wucode-icon.svg\",\"svgInline\":null,\"shapeThickness\":15,\"particleShape\":\"diamond\",\"colors\":{\"base\":\"#000000\",\"accent1\":\"#000000\",\"accent2\":\"#000000\",\"shape\":null},\"triggerMode\":{\"desktop\":\"scroll\",\"tablet\":\"\",\"mobile\":\"\"},\"shapeSize\":{\"desktop\":70,\"tablet\":\"\",\"mobile\":90},\"totalParticles\":{\"desktop\":2500,\"tablet\":\"\",\"mobile\":1500},\"particleSize\":{\"desktop\":2,\"tablet\":1.2,\"mobile\":1},\"animationSpeed\":{\"desktop\":0.1,\"tablet\":\"\",\"mobile\":0.15},\"shapePositionX\":{\"desktop\":0.5,\"tablet\":\"\",\"mobile\":\"\"},\"shapePositionY\":{\"desktop\":0.5,\"tablet\":\"\",\"mobile\":0.5}};\n\t\t\t\tconst canvas = document.getElementById('canvas-' + instanceId);\n\t\t\t\tconst container = document.getElementById('container-' + instanceId);\n\t\t\t\t\n\t\t\t\tif (!canvas || !container || container.clientWidth === 0 || container.clientHeight === 0) {\n\t\t\t\t\tsetTimeout(initCanvasWidget, 100);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst ctx = canvas.getContext('2d', { willReadFrequently: true });\n\t\t\t\t\n\t\t\t\tlet isHovered = false;\n\t\t\t\tlet animationFrameId;\n\t\t\t\tlet particles = [];\n\t\t\t\tlet targetPoints = [];\n\t\t\t\tlet shapeParticleCount = 0;\n\t\t\t\tlet width = 0;\n\t\t\t\tlet height = 0;\n\t\t\t\tlet hoverTime = 0;\n\t\t\t\tlet isIntersecting = false;\n\t\t\t\tlet isVisible = true; \n\n\t\t\t\tconst getResVal = (valObj, w) => {\n\t\t\t\t\tif (w <= 767 && valObj.mobile !== '') return parseFloat(valObj.mobile);\n\t\t\t\t\tif (w <= 1024 && valObj.tablet !== '') return parseFloat(valObj.tablet);\n\t\t\t\t\treturn parseFloat(valObj.desktop);\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst getResString = (valObj, w) => {\n\t\t\t\t\tif (w <= 767 && valObj.mobile !== '') return valObj.mobile;\n\t\t\t\t\tif (w <= 1024 && valObj.tablet !== '') return valObj.tablet;\n\t\t\t\t\treturn valObj.desktop;\n\t\t\t\t};\n\n\t\t\t\tconst handleHoverIn = () => {\n\t\t\t\t\tif (getResString(config.triggerMode, window.innerWidth) === 'hover') isHovered = true;\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tconst handleHoverOut = () => {\n\t\t\t\t\tif (getResString(config.triggerMode, window.innerWidth) === 'hover') isHovered = false;\n\t\t\t\t};\n\n\t\t\t\tcontainer.addEventListener('mouseenter', handleHoverIn);\n\t\t\t\tcontainer.addEventListener('mouseleave', handleHoverOut);\n\t\t\t\tcontainer.addEventListener('touchstart', handleHoverIn, { passive: true });\n\t\t\t\tcontainer.addEventListener('touchend', handleHoverOut);\n\t\t\t\tcontainer.addEventListener('touchcancel', handleHoverOut);\n\n\t\t\t\tconst observer = new IntersectionObserver((entries) => {\n\t\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\t\tisVisible = entry.isIntersecting; \n\t\t\t\t\t\t\n\t\t\t\t\t\tif (entry.intersectionRatio >= 0.4) {\n\t\t\t\t\t\t\tisIntersecting = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisIntersecting = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (getResString(config.triggerMode, window.innerWidth) === 'scroll') {\n\t\t\t\t\t\t\tisHovered = isIntersecting;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, { threshold: [0, 0.4] });\n\t\t\t\tobserver.observe(container);\n\n\t\t\t\tconst dpr = window.devicePixelRatio || 1;\n\n\t\t\t\tconst initParticles = async () => {\n\t\t\t\t\twidth = container.clientWidth;\n\t\t\t\t\theight = container.clientHeight;\n\n\t\t\t\t\tif (width <= 0 || height <= 0) return false;\n\n\t\t\t\t\tconst currentTrigger = getResString(config.triggerMode, window.innerWidth);\n\t\t\t\t\tif (currentTrigger === 'scroll') {\n\t\t\t\t\t\tisHovered = isIntersecting;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisHovered = false; \n\t\t\t\t\t}\n\n\t\t\t\t\tconst currentParticlesCount = getResVal(config.totalParticles, window.innerWidth);\n\t\t\t\t\tconst currentPSize = getResVal(config.particleSize, window.innerWidth);\n\t\t\t\t\tconst currentSpeed = getResVal(config.animationSpeed, window.innerWidth);\n\t\t\t\t\tconst currentPosX = getResVal(config.shapePositionX, window.innerWidth);\n\t\t\t\t\tconst currentPosY = getResVal(config.shapePositionY, window.innerWidth);\n\t\t\t\t\tconst currentShapeSize = getResVal(config.shapeSize, window.innerWidth);\n\n\t\t\t\t\tcanvas.width = width * dpr;\n\t\t\t\t\tcanvas.height = height * dpr;\n\t\t\t\t\tcanvas.style.width = width + 'px';\n\t\t\t\t\tcanvas.style.height = height + 'px';\n\t\t\t\t\t\n\t\t\t\t\tctx.setTransform(1, 0, 0, 1, 0, 0);\n\t\t\t\t\tctx.scale(dpr, dpr);\n\n\t\t\t\t\tconst offCanvas = document.createElement('canvas');\n\t\t\t\t\tconst offCtx = offCanvas.getContext('2d', { willReadFrequently: true });\n\t\t\t\t\toffCanvas.width = width;\n\t\t\t\t\toffCanvas.height = height;\n\t\t\t\t\t\n\t\t\t\t\tconst maxAllowedWidth = width * (currentShapeSize \/ 100);\n\t\t\t\t\t\n\t\t\t\t\tif (config.shapeType === 'complex-svg') {\n\t\t\t\t\t\tawait new Promise((resolve) => {\n\t\t\t\t\t\t\tconst img = new Image();\n\t\t\t\t\t\t\timg.crossOrigin = \"Anonymous\"; \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\timg.onload = () => {\n\t\t\t\t\t\t\t\tconst imgAspect = img.width \/ (img.height || 1);\n\t\t\t\t\t\t\t\tlet drawWidth = maxAllowedWidth;\n\t\t\t\t\t\t\t\tlet drawHeight = drawWidth \/ imgAspect;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (drawHeight > height * (currentShapeSize \/ 100)) {\n\t\t\t\t\t\t\t\t\tdrawHeight = height * (currentShapeSize \/ 100);\n\t\t\t\t\t\t\t\t\tdrawWidth = drawHeight * imgAspect;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\toffCtx.drawImage(\n\t\t\t\t\t\t\t\t\timg, \n\t\t\t\t\t\t\t\t\twidth * currentPosX - drawWidth \/ 2, \n\t\t\t\t\t\t\t\t\theight * currentPosY - drawHeight \/ 2, \n\t\t\t\t\t\t\t\t\tdrawWidth, \n\t\t\t\t\t\t\t\t\tdrawHeight\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\timg.onerror = resolve; \n\n\t\t\t\t\t\t\tif (config.svgSource === 'media' && config.svgUrl) {\n\t\t\t\t\t\t\t\timg.src = config.svgUrl;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\timg.src = 'data:image\/svg+xml;charset=utf-8,' + encodeURIComponent(config.svgInline);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else if (config.shapeType === 'icon') {\n\t\t\t\t\t\tconst path = new Path2D(config.iconPath);\n\t\t\t\t\t\tconst scale = maxAllowedWidth \/ config.iconViewBox;\n\t\t\t\t\t\t\n\t\t\t\t\t\toffCtx.translate(width * currentPosX, height * currentPosY);\n\t\t\t\t\t\toffCtx.scale(scale, scale);\n\t\t\t\t\t\toffCtx.translate(-config.iconViewBox \/ 2, -config.iconViewBox \/ 2);\n\t\t\t\t\t\t\n\t\t\t\t\t\toffCtx.lineWidth = config.shapeThickness \/ scale; \n\t\t\t\t\t\toffCtx.strokeStyle = 'black';\n\t\t\t\t\t\toffCtx.lineCap = 'round';\n\t\t\t\t\t\toffCtx.lineJoin = 'round';\n\t\t\t\t\t\toffCtx.stroke(path);\n\t\t\t\t\t\t\n\t\t\t\t\t\toffCtx.setTransform(1, 0, 0, 1, 0, 0); \n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet fontSize = config.shapeFontSize;\n\t\t\t\t\t\toffCtx.font = \"bold \" + fontSize + \"px sans-serif\";\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet textWidth = offCtx.measureText(config.shapeText).width;\n\t\t\t\t\t\tif (textWidth > maxAllowedWidth && textWidth > 0) {\n\t\t\t\t\t\t\tfontSize = Math.floor(fontSize * (maxAllowedWidth \/ textWidth));\n\t\t\t\t\t\t\toffCtx.font = \"bold \" + fontSize + \"px sans-serif\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\toffCtx.textAlign = 'center';\n\t\t\t\t\t\toffCtx.textBaseline = 'middle';\n\t\t\t\t\t\toffCtx.lineWidth = config.shapeThickness;\n\t\t\t\t\t\toffCtx.strokeStyle = 'black';\n\t\t\t\t\t\toffCtx.lineCap = 'round';\n\t\t\t\t\t\toffCtx.lineJoin = 'round';\n\t\t\t\t\t\toffCtx.strokeText(config.shapeText, width * currentPosX, height * currentPosY);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst imgData = offCtx.getImageData(0, 0, width, height).data;\n\t\t\t\t\ttargetPoints = [];\n\t\t\t\t\tconst gap = Math.max(Math.floor(width \/ 250), 4); \n\n\t\t\t\t\tfor (let y = 0; y < height; y += gap) {\n\t\t\t\t\t\tfor (let x = 0; x < width; x += gap) {\n\t\t\t\t\t\t\tconst index = (y * width + x) * 4;\n\t\t\t\t\t\t\tconst r = imgData[index];\n\t\t\t\t\t\t\tconst g = imgData[index + 1];\n\t\t\t\t\t\t\tconst b = imgData[index + 2];\n\t\t\t\t\t\t\tconst alpha = imgData[index + 3];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (alpha > 50) {\n\t\t\t\t\t\t\t\tconst originalColor = config.shapeType === 'complex-svg' \n\t\t\t\t\t\t\t\t\t? \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + (alpha \/ 255) + \")\" \n\t\t\t\t\t\t\t\t\t: config.colors.shape;\n\t\t\t\t\t\t\t\ttargetPoints.push({ x: x, y: y, color: originalColor });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (targetPoints.length > currentParticlesCount * 0.85) {\n\t\t\t\t\t\ttargetPoints.sort(() => Math.random() - 0.5);\n\t\t\t\t\t\ttargetPoints = targetPoints.slice(0, Math.floor(currentParticlesCount * 0.85));\n\t\t\t\t\t}\n\n\t\t\t\t\tparticles = [];\n\t\t\t\t\tshapeParticleCount = targetPoints.length;\n\n\t\t\t\t\tfor (let i = 0; i < currentParticlesCount; i++) {\n\t\t\t\t\t\tconst isShapeParticle = i < shapeParticleCount;\n\t\t\t\t\t\tconst target = isShapeParticle ? targetPoints[i] : null;\n\n\t\t\t\t\t\tlet particleType = 'bg-float';\n\t\t\t\t\t\tif (isShapeParticle) {\n\t\t\t\t\t\t\tparticleType = 'shape';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tparticleType = Math.random() < 0.25 ? 'bg-suck' : 'bg-float';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst randomShapeTarget = shapeParticleCount > 0 \n\t\t\t\t\t\t\t? targetPoints[Math.floor(Math.random() * shapeParticleCount)] \n\t\t\t\t\t\t\t: { x: width * currentPosX, y: height * currentPosY };\n\n\t\t\t\t\t\tlet hoverColor = config.colors.base;\n\t\t\t\t\t\tif (isShapeParticle) {\n\t\t\t\t\t\t\thoverColor = target.color; \n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst rand = Math.random();\n\t\t\t\t\t\t\tif (rand > 0.98) hoverColor = config.colors.accent1;\n\t\t\t\t\t\t\telse if (rand > 0.8) hoverColor = config.colors.accent2;\n\t\t\t\t\t\t\telse hoverColor = config.colors.base;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tparticles.push({\n\t\t\t\t\t\t\tx: Math.random() * width,\n\t\t\t\t\t\t\ty: Math.random() * height,\n\t\t\t\t\t\t\toriginX: Math.random() * width,\n\t\t\t\t\t\t\toriginY: Math.random() * height,\n\t\t\t\t\t\t\ttargetX: target ? target.x : Math.random() * width,\n\t\t\t\t\t\t\ttargetY: target ? target.y : Math.random() * height,\n\t\t\t\t\t\t\tmagnetX: randomShapeTarget.x,\n\t\t\t\t\t\t\tmagnetY: randomShapeTarget.y,\n\t\t\t\t\t\t\ttype: particleType,\n\t\t\t\t\t\t\tsize: Math.random() * (currentPSize * 0.8) + (currentPSize * 0.4),\n\t\t\t\t\t\t\tcolorHover: hoverColor,\n\t\t\t\t\t\t\tvx: (Math.random() - 0.5) * 0.3,\n\t\t\t\t\t\t\tvy: (Math.random() - 0.5) * 0.3,\n\t\t\t\t\t\t\tconfigSpeed: currentSpeed\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tparticles.sort((a, b) => a.colorHover.localeCompare(b.colorHover));\n\t\t\t\t\t\n\t\t\t\t\treturn true;\n\t\t\t\t};\n\n\t\t\t\tconst draw = () => {\n\t\t\t\t\tif (!document.body.contains(canvas)) {\n\t\t\t\t\t\tif (animationFrameId) cancelAnimationFrame(animationFrameId);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimationFrameId = requestAnimationFrame(draw);\n\n\t\t\t\t\tif (!isVisible) return; \n\n\t\t\t\t\tif (width > 0 && height > 0) {\n\t\t\t\t\t\tctx.clearRect(0, 0, width, height);\n\n\t\t\t\t\t\tif (isHovered) hoverTime++; else hoverTime = 0;\n\n\t\t\t\t\t\tlet lastColor = null;\n\t\t\t\t\t\tctx.beginPath(); \n\n\t\t\t\t\t\tparticles.forEach(p => {\n\t\t\t\t\t\t\tlet tx, ty;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (isHovered) {\n\t\t\t\t\t\t\t\tif (p.type === 'shape') {\n\t\t\t\t\t\t\t\t\ttx = p.targetX; ty = p.targetY;\n\t\t\t\t\t\t\t\t\tp.x += (tx - p.x) * p.configSpeed;\n\t\t\t\t\t\t\t\t\tp.y += (ty - p.y) * p.configSpeed;\n\t\t\t\t\t\t\t\t} else if (p.type === 'bg-suck' && hoverTime > 40) {\n\t\t\t\t\t\t\t\t\tconst dx = p.magnetX - p.originX;\n\t\t\t\t\t\t\t\t\tconst dy = p.magnetY - p.originY;\n\t\t\t\t\t\t\t\t\tconst dist = Math.sqrt(dx * dx + dy * dy);\n\n\t\t\t\t\t\t\t\t\tif (dist < 20) {\n\t\t\t\t\t\t\t\t\t\tconst angle = Math.random() * Math.PI * 2;\n\t\t\t\t\t\t\t\t\t\tconst radius = Math.max(width, height) * 0.6; \n\t\t\t\t\t\t\t\t\t\tp.originX = width \/ 2 + Math.cos(angle) * radius;\n\t\t\t\t\t\t\t\t\t\tp.originY = height \/ 2 + Math.sin(angle) * radius;\n\t\t\t\t\t\t\t\t\t\tp.x = p.originX; p.y = p.originY;\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tconst newTarget = shapeParticleCount > 0 \n\t\t\t\t\t\t\t\t\t\t\t? targetPoints[Math.floor(Math.random() * shapeParticleCount)] \n\t\t\t\t\t\t\t\t\t\t\t: { x: width \/ 2, y: height \/ 2 };\n\t\t\t\t\t\t\t\t\t\tp.magnetX = newTarget.x;\n\t\t\t\t\t\t\t\t\t\tp.magnetY = newTarget.y;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tp.originX += dx * 0.01; \n\t\t\t\t\t\t\t\t\t\tp.originY += dy * 0.01;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ttx = p.originX; ty = p.originY;\n\t\t\t\t\t\t\t\t\tp.x += (tx - p.x) * p.configSpeed;\n\t\t\t\t\t\t\t\t\tp.y += (ty - p.y) * p.configSpeed;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tp.originX += p.vx; p.originY += p.vy;\n\t\t\t\t\t\t\t\t\tif (p.originX < 0 || p.originX > width) p.vx *= -1;\n\t\t\t\t\t\t\t\t\tif (p.originY < 0 || p.originY > height) p.vy *= -1;\n\t\t\t\t\t\t\t\t\ttx = p.originX; ty = p.originY;\n\t\t\t\t\t\t\t\t\tp.x += (tx - p.x) * p.configSpeed;\n\t\t\t\t\t\t\t\t\tp.y += (ty - p.y) * p.configSpeed;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tp.originX += p.vx; p.originY += p.vy;\n\t\t\t\t\t\t\t\tif (p.originX < 0 || p.originX > width) p.vx *= -1;\n\t\t\t\t\t\t\t\tif (p.originY < 0 || p.originY > height) p.vy *= -1;\n\t\t\t\t\t\t\t\ttx = p.originX; ty = p.originY;\n\t\t\t\t\t\t\t\tp.x += (tx - p.x) * p.configSpeed;\n\t\t\t\t\t\t\t\tp.y += (ty - p.y) * p.configSpeed;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlet currentColor = isHovered ? p.colorHover : config.colors.base;\n\n\t\t\t\t\t\t\tif (currentColor !== lastColor) {\n\t\t\t\t\t\t\t\tif (lastColor !== null) ctx.fill(); \n\t\t\t\t\t\t\t\tctx.fillStyle = currentColor;\n\t\t\t\t\t\t\t\tctx.beginPath();\n\t\t\t\t\t\t\t\tlastColor = currentColor;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\/\/ Thu\u1eadt to\u00e1n v\u1ebd h\u00ecnh d\u1ea1ng (Shape Generator)\n\t\t\t\t\t\t\tif (config.particleShape === 'square') {\n\t\t\t\t\t\t\t\tctx.rect(p.x - p.size, p.y - p.size, p.size * 2, p.size * 2);\n\t\t\t\t\t\t\t} else if (config.particleShape === 'triangle') {\n\t\t\t\t\t\t\t\tctx.moveTo(p.x, p.y - p.size);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x + p.size, p.y + p.size);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x - p.size, p.y + p.size);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x, p.y - p.size);\n\t\t\t\t\t\t\t} else if (config.particleShape === 'diamond') {\n\t\t\t\t\t\t\t\tctx.moveTo(p.x, p.y - p.size);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x + p.size, p.y);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x, p.y + p.size);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x - p.size, p.y);\n\t\t\t\t\t\t\t\tctx.lineTo(p.x, p.y - p.size);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\/\/ Default l\u00e0 Circle (H\u00ecnh tr\u00f2n)\n\t\t\t\t\t\t\t\tctx.moveTo(p.x + p.size, p.y);\n\t\t\t\t\t\t\t\tctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (lastColor !== null) ctx.fill(); \n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst run = async () => {\n\t\t\t\t\tif (document.fonts) {\n\t\t\t\t\t\tawait document.fonts.ready;\n\t\t\t\t\t}\n\t\t\t\t\tawait initParticles();\n\t\t\t\t\tdraw();\n\t\t\t\t};\n\n\t\t\t\trun();\n\n\t\t\t\tlet resizeTimeout;\n\t\t\t\tconst resizeObserver = new ResizeObserver((entries) => {\n\t\t\t\t\tfor (let entry of entries) {\n\t\t\t\t\t\tclearTimeout(resizeTimeout);\n\t\t\t\t\t\tresizeTimeout = setTimeout(async () => {\n\t\t\t\t\t\t\tawait initParticles();\n\t\t\t\t\t\t}, 150);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresizeObserver.observe(container);\n\t\t\t};\n\n\t\t\tif (document.readyState === 'loading') {\n\t\t\t\tdocument.addEventListener('DOMContentLoaded', initCanvasWidget);\n\t\t\t} else {\n\t\t\t\tsetTimeout(initCanvasWidget, 50);\n\t\t\t}\n\t\t})();\n\t\t<\/script>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-f4be04e e-flex e-con-boxed e-con e-child\" data-id=\"f4be04e\" data-element_type=\"container\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5afe366 elementor-widget-mobile__width-inherit elementor-widget elementor-widget-shortcode\" data-id=\"5afe366\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div id=\"wucode-banner-typed-strings\">\n\t\t\t<span>Comprehensive Web, App Solutions<\/span>\n\t\t\t<span>Professional Programming Services<\/span>\n\t\t\t<span>Building Innovative SaaS Platforms<\/span>\n\t\t\t<span>Custom Development<\/span>\n\t\t<\/div>\n\t\t<h1><span id=\"wucode-banner-typed\">Wucode Tech Services Co., Ltd.<\/span><\/h1>\n\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b50741d elementor-widget elementor-widget-heading\" data-id=\"b50741d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Professional web &amp; digital solutions partner, delivering your key projects with precision and efficiency.<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8b65746 elementor-mobile-align-justify elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"8b65746\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/lien-he\/\" aria-label=\"li\u00ean h\u1ec7 d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Get in touch<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-ffc77af e-con-full e-flex e-con e-parent\" data-id=\"ffc77af\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b685c6a elementor-widget-mobile__width-inherit elementor-widget elementor-widget-expanding_cards\" data-id=\"b685c6a\" data-element_type=\"widget\" data-widget_type=\"expanding_cards.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<style>\n\t\t\t\/* Scoped CSS cho Elementor Widget s\u1eed d\u1ee5ng CSS Variables. \n\t\t\t   S\u1eed d\u1ee5ng class (.ec-showcase-xxx) thay v\u00ec ID (#) \u0111\u1ec3 Elementor Typography c\u00f3 th\u1ec3 ghi \u0111\u00e8. *\/\n\t\t\t.ec-showcase-b685c6a {\n\t\t\t\t--ec-container-height-val: var(--ec-container-height, 700px);\n\t\t\t\t--ec-card-radius-val: var(--ec-card-radius, 32px);\n\t\t\t\t--ec-card-padding-val: var(--ec-card-padding, 48px);\n\t\t\t\t--ec-overlay-opacity-val: var(--ec-overlay-opacity, 0.9);\n\t\t\t\t--ec-overlay-opacity-active-val: var(--ec-overlay-opacity-active, 0.7);\n\t\t\t\t--ec-card-gap-val: var(--ec-card-gap, 10px);\n\n\t\t\t\t\/* New Icons Variables *\/\n\t\t\t\t--ec-collapsed-icon-size-val: var(--ec-collapsed-icon-size, 40px);\n\t\t\t\t--ec-collapsed-icon-color-val: var(--ec-collapsed-icon-color, #ffffff);\n\t\t\t\t--ec-collapsed-icon-bg-val: var(--ec-collapsed-icon-bg, rgba(255,255,255,0.1));\n\t\t\t\t--ec-collapsed-icon-radius-val: var(--ec-collapsed-icon-radius, 50%);\n\t\t\t\t--ec-collapsed-icon-border-style-val: var(--ec-collapsed-icon-border-style, solid);\n\t\t\t\t--ec-collapsed-icon-border-width-val: var(--ec-collapsed-icon-border-width, 1px);\n\t\t\t\t--ec-collapsed-icon-border-color-val: var(--ec-collapsed-icon-border-color, rgba(255,255,255,0.3));\n\n\t\t\t\t--ec-nav-icon-size-val: var(--ec-nav-icon-size, 44px);\n\t\t\t\t--ec-nav-icon-color-val: var(--ec-nav-icon-color, #000000);\n\t\t\t\t--ec-nav-icon-bg-val: var(--ec-nav-icon-bg, #ffffff);\n\t\t\t\t--ec-nav-icon-hover-color-val: var(--ec-nav-icon-hover-color, #000000);\n\t\t\t\t--ec-nav-icon-hover-bg-val: var(--ec-nav-icon-hover-bg, #e4e4e7);\n\t\t\t\t--ec-nav-icon-radius-val: var(--ec-nav-icon-radius, 50%);\n\t\t\t\t--ec-nav-icon-border-style-val: var(--ec-nav-icon-border-style, solid);\n\t\t\t\t--ec-nav-icon-border-width-val: var(--ec-nav-icon-border-width, 1px);\n\t\t\t\t--ec-nav-icon-border-color-val: var(--ec-nav-icon-border-color, rgba(0,0,0,0.1));\n\n\t\t\t\t\/* New Button Variables *\/\n\t\t\t\t--ec-btn-color-val: var(--ec-btn-color, #ffffff);\n\t\t\t\t--ec-btn-bg-val: var(--ec-btn-bg, #6366f1);\n\t\t\t\t--ec-btn-hover-color-val: var(--ec-btn-hover-color, #ffffff);\n\t\t\t\t--ec-btn-hover-bg-val: var(--ec-btn-hover-bg, #4f46e5);\n\t\t\t\t--ec-btn-padding-val: var(--ec-btn-padding, 14px 32px);\n\t\t\t\t--ec-btn-radius-val: var(--ec-btn-radius, 50px);\n\n\t\t\t\t--transition-speed: 0.7s;\n\n\t\t\t\tfont-family: 'Inter', sans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\twidth: 100%;\n\t\t\t\tgap: var(--ec-card-gap-val);\n\t\t\t\toverflow: hidden;\n\t\t\t\theight: var(--ec-container-height-val);\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a * {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card {\n\t\t\t\tposition: relative;\n\t\t\t\tflex: 0.6;\n\t\t\t\tborder-radius: var(--ec-card-radius-val);\n\t\t\t\tcursor: pointer;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttransition: flex var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1);\n\t\t\t\tbackground-color: #18181b;\n\t\t\t\t\/* Safari Bug Fixes (Force hardware acceleration & border-radius clipping) *\/\n\t\t\t\t-webkit-transform: translateZ(0);\n\t\t\t\ttransform: translateZ(0);\n\t\t\t\t-webkit-mask-image: -webkit-radial-gradient(white, black);\n\t\t\t\t\n\t\t\t\t\/* FIX: Explicit height ensures children can resolve height: 100% *\/\n\t\t\t\theight: 100%; \n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card.active {\n\t\t\t\tflex: 5;\n\t\t\t\tcursor: default;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-card-bg {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: 0;\n\t\t\t\tbackground-size: cover;\n\t\t\t\tbackground-position: center;\n\t\t\t\ttransition: transform 0.7s ease;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card:hover .ec-card-bg {\n\t\t\t\ttransform: scale(1.05);\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-card-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset: 0;\n\t\t\t\tz-index: 2;\n\t\t\t\topacity: var(--ec-overlay-opacity-val);\n\t\t\t\ttransition: opacity 0.5s ease;\n\t\t\t}\n\n\t\t\t\/* Fallback gradient n\u1ebfu user kh\u00f4ng c\u1ea5u h\u00ecnh overlay background *\/\n\t\t\t.ec-showcase-b685c6a .ec-default-overlay {\n\t\t\t\tbackground: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.4) 100%);\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card.active .ec-card-overlay {\n\t\t\t\topacity: var(--ec-overlay-opacity-active-val);\n\t\t\t}\n\n\t\t\t\/* FIX: Ph\u1ee5c h\u1ed3i \u0111o\u1ea1n CSS quan tr\u1ecdng \u0111\u00e3 b\u1ecb thi\u1ebfu *\/\n\t\t\t.ec-showcase-b685c6a .ec-collapsed-content {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 40px;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tz-index: 3;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 24px;\n\t\t\t\ttransition: opacity 0.3s ease, visibility 0.3s ease;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card.active .ec-collapsed-content {\n\t\t\t\topacity: 0;\n\t\t\t\tvisibility: hidden;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-icon-circle {\n\t\t\t\twidth: var(--ec-collapsed-icon-size-val);\n\t\t\t\theight: var(--ec-collapsed-icon-size-val);\n\t\t\t\tborder-radius: var(--ec-collapsed-icon-radius-val);\n\t\t\t\tborder: var(--ec-collapsed-icon-border-width-val) var(--ec-collapsed-icon-border-style-val) var(--ec-collapsed-icon-border-color-val);\n\t\t\t\tbackground: var(--ec-collapsed-icon-bg-val);\n\t\t\t\tcolor: var(--ec-collapsed-icon-color-val);\n\t\t\t\tbackdrop-filter: blur(4px);\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-icon-circle svg,\n\t\t\t.ec-showcase-b685c6a .ec-icon-circle i {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tfont-size: calc(var(--ec-collapsed-icon-size-val) * 0.45);\n\t\t\t\twidth: calc(var(--ec-collapsed-icon-size-val) * 0.45);\n\t\t\t\theight: calc(var(--ec-collapsed-icon-size-val) * 0.45);\n\t\t\t\tfill: var(--ec-collapsed-icon-color-val);\t\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-vertical-title {\n\t\t\t\twriting-mode: vertical-lr;\n\t\t\t\ttransform: rotate(180deg);\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tletter-spacing: 0.2em;\n\t\t\t\tfont-weight: 700;\n\t\t\t\tfont-size: 14px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tcolor: #ffffff;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-expanded-content {\n\t\t\t\tposition: relative;\n\t\t\t\tz-index: 4;\n\t\t\t\theight: 100%;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\tpadding: var(--ec-card-padding-val);\n\t\t\t\topacity: 0;\n\t\t\t\ttransform: translateY(20px);\n\t\t\t\ttransition: opacity 0.5s ease 0.3s, transform 0.5s ease 0.3s;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-service-card.active .ec-expanded-content {\n\t\t\t\topacity: 1;\n\t\t\t\ttransform: translateY(0);\n\t\t\t\tpointer-events: auto;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-nav-buttons {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\tgap: 12px;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn {\n\t\t\t\tbackground: var(--ec-nav-icon-bg-val);\n\t\t\t\tcolor: var(--ec-nav-icon-color-val);\n\t\t\t\tborder: var(--ec-nav-icon-border-width-val) var(--ec-nav-icon-border-style-val) var(--ec-nav-icon-border-color-val);\n\t\t\t\twidth: var(--ec-nav-icon-size-val);\n\t\t\t\theight: var(--ec-nav-icon-size-val);\n\t\t\t\tborder-radius: var(--ec-nav-icon-radius-val);\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tcursor: pointer;\n\t\t\t\ttransition: background 0.3s, color 0.3s;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn svg,\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn i {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tfont-size: calc(var(--ec-nav-icon-size-val) * 0.4);\n\t\t\t\twidth: calc(var(--ec-nav-icon-size-val) * 0.4);\n\t\t\t\theight: calc(var(--ec-nav-icon-size-val) * 0.4);\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn:hover {\n\t\t\t\tbackground: var(--ec-nav-icon-hover-bg-val);\n\t\t\t\tcolor: var(--ec-nav-icon-hover-color-val);\n\t\t\t}\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn:hover svg,\n\t\t\t.ec-showcase-b685c6a .ec-nav-btn:hover i {\n\t\t\t\tfill: var(--ec-nav-icon-hover-color-val);\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-main-info {\n\t\t\t\tmax-width: 500px;\n\t\t\t\t\/* FIX: \u0110\u1ea3m b\u1ea3o content lu\u00f4n \u00e9p xu\u1ed1ng d\u01b0\u1edbi c\u00f9ng v\u00e0 c\u00e1c n\u00fat \u0111\u01b0\u1ee3c \u0111\u1ea9y l\u00ean top *\/\n\t\t\t\tmargin-top: auto; \n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-line-decorator {\n\t\t\t\twidth: 60px;\n\t\t\t\theight: 4px;\n\t\t\t\tbackground: rgba(255,255,255,0.4);\n\t\t\t\tmargin-bottom: 24px;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-main-title {\n\t\t\t\tfont-size: clamp(2rem, 5vw, 4.5rem);\n\t\t\t\tfont-weight: 900;\n\t\t\t\tline-height: 1;\n\t\t\t\tmargin-bottom: 24px;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-description {\n\t\t\t\tcolor: #e4e4e7;\n\t\t\t\tline-height: 1.6;\n\t\t\t\tmargin-bottom: 32px;\n\t\t\t\tfont-size: 16px;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-learn-more-btn {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcolor: var(--ec-btn-color-val);\n\t\t\t\tbackground-color: var(--ec-btn-bg-val);\n\t\t\t\tpadding: var(--ec-btn-padding-val);\n\t\t\t\tborder-radius: var(--ec-btn-radius-val);\n\t\t\t\ttext-decoration: none;\n\t\t\t\tfont-weight: 700;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tletter-spacing: 0.05em;\n\t\t\t\tcursor: pointer;\n\t\t\t\ttransition: all 0.3s ease;\n\t\t\t\tborder: none;\n\t\t\t}\n\n\t\t\t.ec-showcase-b685c6a .ec-learn-more-btn:hover {\n\t\t\t\ttransform: scale(1.05);\n\t\t\t\tcolor: var(--ec-btn-hover-color-val);\n\t\t\t\tbackground-color: var(--ec-btn-hover-bg-val);\n\t\t\t}\n\n\t\t\t\/* Responsive Tablet & Mobile *\/\n\t\t\t@media (max-width: 767px) {\n\t\t\t\t.ec-showcase-b685c6a {\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\theight: auto !important; \/* Bu\u1ed9c hu\u1ef7 b\u1ecf setting Desktop tr\u00ean mobile *\/\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-service-card {\n\t\t\t\t\tflex: none; \n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tmax-height: 80px;\n\t\t\t\t\tmin-height: 80px;\n\t\t\t\t\theight: auto; \/* Reset explicit height on mobile so max-height can work perfectly *\/\n\t\t\t\t\ttransition: max-height var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1), \n\t\t\t\t\t            min-height var(--transition-speed) cubic-bezier(0.4, 0, 0.2, 1);\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-service-card.active {\n\t\t\t\t\tflex: none;\n\t\t\t\t\tmax-height: 1200px;\n\t\t\t\t\tmin-height: 400px;\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-vertical-title {\n\t\t\t\t\twriting-mode: horizontal-tb;\n\t\t\t\t\ttransform: rotate(0);\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-collapsed-content {\n\t\t\t\t\tflex-direction: row;\n\t\t\t\t\tbottom: 20px;\n\t\t\t\t\tleft: 20px;\n\t\t\t\t\ttransform: none;\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-expanded-content {\n\t\t\t\t\tpadding: var(--ec-card-padding, 24px); \/* Fallback nh\u1ecf h\u01a1n cho mobile n\u1ebfu user ch\u01b0a set *\/\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-main-title {\n\t\t\t\t\tfont-size: 2rem;\n\t\t\t\t}\n\t\t\t\t.ec-showcase-b685c6a .ec-nav-buttons {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t<\/style>\n\n\t\t<!-- \u0110\u00e3 th\u00eam class mang t\u00ean ID \u0111\u1ec3 l\u00e0m css selector an to\u00e0n -->\n\t\t<div class=\"ec-showcase-container ec-showcase-b685c6a\" id=\"ec-showcase-b685c6a\">\n\t\t\t\t\t\t\t<div class=\"ec-service-card active\">\n\t\t\t\t\t<div class=\"ec-card-bg\" style=\"background-image: url('https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/04\/service-1-bg.png');\"><\/div>\n\t\t\t\t\t<div class=\"ec-card-overlay\"><\/div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Th\u1ebb khi \u0111\u00f3ng -->\n\t\t\t\t\t<div class=\"ec-collapsed-content\">\n\t\t\t\t\t\t<div class=\"ec-icon-circle\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-external-link-alt\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"ec-vertical-title\">Web Applications<\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- N\u1ed9i dung chi ti\u1ebft -->\n\t\t\t\t\t<div class=\"ec-expanded-content\">\n\t\t\t\t\t\t<div class=\"ec-nav-buttons\">\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const p = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); p[4].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const n = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); n[1].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ec-main-info\">\n\t\t\t\t\t\t\t<div class=\"ec-line-decorator\"><\/div>\n\t\t\t\t\t\t\t<h2 class=\"ec-main-title translation-block\">Web<br>Applications<\/h2>\n\t\t\t\t\t\t\t<p class=\"ec-description\">We create custom web applications as new systems, or as a backend to existing applications. We can build your application from scratch, or rebuild a previous application into a modern web-based system.<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\" class=\"ec-learn-more-btn\">\n\t\t\t\t\t\t\t\t\tBook a Call!\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"ec-service-card\">\n\t\t\t\t\t<div class=\"ec-card-bg\" style=\"background-image: url('https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/04\/service-2-bg.png');\"><\/div>\n\t\t\t\t\t<div class=\"ec-card-overlay\"><\/div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Th\u1ebb khi \u0111\u00f3ng -->\n\t\t\t\t\t<div class=\"ec-collapsed-content\">\n\t\t\t\t\t\t<div class=\"ec-icon-circle\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-external-link-alt\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"ec-vertical-title\">Mobile Applications<\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- N\u1ed9i dung chi ti\u1ebft -->\n\t\t\t\t\t<div class=\"ec-expanded-content\">\n\t\t\t\t\t\t<div class=\"ec-nav-buttons\">\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const p = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); p[0].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const n = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); n[2].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ec-main-info\">\n\t\t\t\t\t\t\t<div class=\"ec-line-decorator\"><\/div>\n\t\t\t\t\t\t\t<h2 class=\"ec-main-title translation-block\">Mobile<br>Applications<\/h2>\n\t\t\t\t\t\t\t<p class=\"ec-description\">We develop custom mobile apps as experts in both native and hybrid code for iOS and Android. Our senior-level mobile developers have created hundreds of mobile solutions for startups to large corporations.<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\" class=\"ec-learn-more-btn\">\n\t\t\t\t\t\t\t\t\tBook a Call!\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"ec-service-card\">\n\t\t\t\t\t<div class=\"ec-card-bg\" style=\"background-image: url('https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/04\/service-3-bg.png');\"><\/div>\n\t\t\t\t\t<div class=\"ec-card-overlay\"><\/div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Th\u1ebb khi \u0111\u00f3ng -->\n\t\t\t\t\t<div class=\"ec-collapsed-content\">\n\t\t\t\t\t\t<div class=\"ec-icon-circle\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-external-link-alt\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"ec-vertical-title\">Business Platforms<\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- N\u1ed9i dung chi ti\u1ebft -->\n\t\t\t\t\t<div class=\"ec-expanded-content\">\n\t\t\t\t\t\t<div class=\"ec-nav-buttons\">\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const p = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); p[1].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const n = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); n[3].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ec-main-info\">\n\t\t\t\t\t\t\t<div class=\"ec-line-decorator\"><\/div>\n\t\t\t\t\t\t\t<h2 class=\"ec-main-title translation-block\">Business<br>Platforms<\/h2>\n\t\t\t\t\t\t\t<p class=\"ec-description\">Managing your business with a custom application allows you to store and track only the data that matters to your company. Our team will drill down on every detail of your business and build a custom system to your exact specifications.<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\" class=\"ec-learn-more-btn\">\n\t\t\t\t\t\t\t\t\tBook a Call!\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"ec-service-card\">\n\t\t\t\t\t<div class=\"ec-card-bg\" style=\"background-image: url('https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/04\/service-4-bg.png');\"><\/div>\n\t\t\t\t\t<div class=\"ec-card-overlay\"><\/div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Th\u1ebb khi \u0111\u00f3ng -->\n\t\t\t\t\t<div class=\"ec-collapsed-content\">\n\t\t\t\t\t\t<div class=\"ec-icon-circle\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-external-link-alt\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"ec-vertical-title\">Ui\/Ux Design<\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- N\u1ed9i dung chi ti\u1ebft -->\n\t\t\t\t\t<div class=\"ec-expanded-content\">\n\t\t\t\t\t\t<div class=\"ec-nav-buttons\">\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const p = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); p[2].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const n = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); n[4].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ec-main-info\">\n\t\t\t\t\t\t\t<div class=\"ec-line-decorator\"><\/div>\n\t\t\t\t\t\t\t<h2 class=\"ec-main-title translation-block\">UI\/UX<br>Design<\/h2>\n\t\t\t\t\t\t\t<p class=\"ec-description\">The first phase of any project with Essential Designs is the planning phase, and the User Experience and Interface design are often the most important part. We collaborate closely with you on designing the initial wireframes, and ultimately produce the final high-fidelity designs to be used in your application.<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\" class=\"ec-learn-more-btn\">\n\t\t\t\t\t\t\t\t\tBook a Call!\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"ec-service-card\">\n\t\t\t\t\t<div class=\"ec-card-bg\" style=\"background-image: url('https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/04\/service-5-bg.png');\"><\/div>\n\t\t\t\t\t<div class=\"ec-card-overlay\"><\/div>\n\t\t\t\t\t\n\t\t\t\t\t<!-- Th\u1ebb khi \u0111\u00f3ng -->\n\t\t\t\t\t<div class=\"ec-collapsed-content\">\n\t\t\t\t\t\t<div class=\"ec-icon-circle\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-external-link-alt\" viewbox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"ec-vertical-title\">Software Support<\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- N\u1ed9i dung chi ti\u1ebft -->\n\t\t\t\t\t<div class=\"ec-expanded-content\">\n\t\t\t\t\t\t<div class=\"ec-nav-buttons\">\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const p = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); p[3].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-left\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button class=\"ec-nav-btn\" \n\t\t\t\t\t\t\t\tonclick=\"const n = this.closest('.ec-showcase-container').querySelectorAll('.ec-service-card'); n[0].click(); event.stopPropagation();\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-right\" viewbox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"><\/path><\/svg>\t\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ec-main-info\">\n\t\t\t\t\t\t\t<div class=\"ec-line-decorator\"><\/div>\n\t\t\t\t\t\t\t<h2 class=\"ec-main-title translation-block\">Software<br>support<\/h2>\n\t\t\t\t\t\t\t<p class=\"ec-description\">From hosting to maintenance to code support, we can custom-tailor a package that makes sense for your business or project, at a budget you can work with. Our senior-level engineers provide 24\/7 emergency response support, and proactive support to help avoid any costly surprises or downtime.<\/p>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#\" class=\"ec-learn-more-btn\">\n\t\t\t\t\t\t\t\t\tBook a Call!\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<script>\n\t\t\t(function() {\n\t\t\t\tvar containerId = 'ec-showcase-b685c6a';\n\t\t\t\tvar container = document.getElementById(containerId);\n\t\t\t\tif (container) {\n\t\t\t\t\tvar cards = container.querySelectorAll('.ec-service-card');\n\t\t\t\t\tcards.forEach(function(card) {\n\t\t\t\t\t\tcard.addEventListener('click', function() {\n\t\t\t\t\t\t\tcards.forEach(function(c) { c.classList.remove('active'); });\n\t\t\t\t\t\t\tthis.classList.add('active');\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})();\n\t\t<\/script>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-c1556a0 e-flex e-con-boxed e-con e-parent\" data-id=\"c1556a0\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7f2bb09 elementor-widget elementor-widget-heading\" data-id=\"7f2bb09\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default translation-block\">Development, testing, and deployment<br>\n5x faster with AI.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d560d5c elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d560d5c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">We leverage AI expertise to help businesses build products faster without compromising quality.<\/h3>\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-de34ad1 e-con-full e-grid e-con e-child\" data-id=\"de34ad1\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-4724fc7 e-con-full e-flex e-con e-child\" data-id=\"4724fc7\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-01db6ca e-con-full e-flex e-con e-child\" data-id=\"01db6ca\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-362a3ef elementor-widget elementor-widget-heading\" data-id=\"362a3ef\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">In a fast-paced tech world, speed is the ultimate competitive advantage. Our solutions help you accelerate your time-to-market.\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14910c3 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"14910c3\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m423.23-309.85 268.92-268.92L650-620.92 423.23-394.15l-114-114L267.08-466l156.15 156.15ZM480.07-100q-78.84 0-148.21-29.92t-120.68-81.21q-51.31-51.29-81.25-120.63Q100-401.1 100-479.93q0-78.84 29.92-148.21t81.21-120.68q51.29-51.31 120.63-81.25Q401.1-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.84-29.92 148.21t-81.21 120.68q-51.29 51.31-120.63 81.25Q558.9-100 480.07-100Zm-.07-60q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">5x faster product development cycles.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m423.23-309.85 268.92-268.92L650-620.92 423.23-394.15l-114-114L267.08-466l156.15 156.15ZM480.07-100q-78.84 0-148.21-29.92t-120.68-81.21q-51.31-51.29-81.25-120.63Q100-401.1 100-479.93q0-78.84 29.92-148.21t81.21-120.68q51.29-51.31 120.63-81.25Q401.1-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.84-29.92 148.21t-81.21 120.68q-51.29 51.31-120.63 81.25Q558.9-100 480.07-100Zm-.07-60q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">80% reduction in software development workload.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m423.23-309.85 268.92-268.92L650-620.92 423.23-394.15l-114-114L267.08-466l156.15 156.15ZM480.07-100q-78.84 0-148.21-29.92t-120.68-81.21q-51.31-51.29-81.25-120.63Q100-401.1 100-479.93q0-78.84 29.92-148.21t81.21-120.68q51.29-51.31 120.63-81.25Q401.1-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.84-29.92 148.21t-81.21 120.68q-51.29 51.31-120.63 81.25Q558.9-100 480.07-100Zm-.07-60q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Human-AI Collaboration = Better Ideas, Better Code.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m423.23-309.85 268.92-268.92L650-620.92 423.23-394.15l-114-114L267.08-466l156.15 156.15ZM480.07-100q-78.84 0-148.21-29.92t-120.68-81.21q-51.31-51.29-81.25-120.63Q100-401.1 100-479.93q0-78.84 29.92-148.21t81.21-120.68q51.29-51.31 120.63-81.25Q401.1-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.84-29.92 148.21t-81.21 120.68q-51.29 51.31-120.63 81.25Q558.9-100 480.07-100Zm-.07-60q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Enterprise-grade scalability and security.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"m423.23-309.85 268.92-268.92L650-620.92 423.23-394.15l-114-114L267.08-466l156.15 156.15ZM480.07-100q-78.84 0-148.21-29.92t-120.68-81.21q-51.31-51.29-81.25-120.63Q100-401.1 100-479.93q0-78.84 29.92-148.21t81.21-120.68q51.29-51.31 120.63-81.25Q401.1-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.84-29.92 148.21t-81.21 120.68q-51.29 51.31-120.63 81.25Q558.9-100 480.07-100Zm-.07-60q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Multi-platform: Web, Mobile, and API-first Applications.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53e11ef elementor-mobile-align-justify elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"53e11ef\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-size-sm\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Get your AI Roadmap<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5cbccf elementor-widget elementor-widget-sticky_stacking_cards\" data-id=\"b5cbccf\" data-element_type=\"widget\" data-widget_type=\"sticky_stacking_cards.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"stack-cards-container\" id=\"stack-cards-b5cbccf\">\n\t\t\t\t\t\t\t<div class=\"stack-card-wrapper elementor-repeater-item-dbe4677\"\n\t\t\t\t\tstyle=\"--card-index: 0; --rev-index: 3; z-index: 1;\">\n\t\t\t\t\t<div class=\"stack-card-inner\">\n\t\t\t\t\t\t<div class=\"stack-card-content\">\n\n\t\t\t\t\t\t\t<div class=\"stack-card-header\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"stack-card-icon\">\n\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M490-180v-60h300v60H490ZM224.62-340l-42.16-41.77L360.08-560 182.46-738.23 224.62-780l219.99 220-219.99 220Z\"><\/path><\/svg>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3\t\t\t\t\t\t\t\t\tclass=\"stack-card-title\">Revolutionize Coding Productivity with Next-Gen AI Assistants<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"stack-card-desc\"><p data-path-to-node=\"4\">Optimize Full-stack development with real-time code analysis. Our smart tooling ecosystem empowers developers to accelerate speed and achieve absolute precision in every line of code.<\/p><ul data-path-to-node=\"5\"><li><p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Smart Coding:<\/b> Code auto-completion, logic error detection, and instant optimization suggestions.<\/p><\/li><li><p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">End-to-End Automation:<\/b> Maximize efficiency with automated boilerplate generation, test cases, and precise technical documentation.<\/p><\/li><\/ul><\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"stack-card-wrapper elementor-repeater-item-2017954\"\n\t\t\t\t\tstyle=\"--card-index: 1; --rev-index: 2; z-index: 2;\">\n\t\t\t\t\t<div class=\"stack-card-inner\">\n\t\t\t\t\t\t<div class=\"stack-card-content\">\n\n\t\t\t\t\t\t\t<div class=\"stack-card-header\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"stack-card-icon\">\n\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M260-180q-82.92 0-141.46-57.62Q60-295.23 60-378.15q0-73.39 47-130.54 47-57.16 119.92-67.62Q246.15-666 317.12-723q70.96-57 162.88-57 108.54 0 184.27 75.73T740-520v20h12.31q63.23 4.92 105.46 50.85Q900-403.23 900-340q0 66.92-46.54 113.46Q806.92-180 740-180H260Zm0-60h480q42 0 71-29t29-71q0-42-29-71t-71-29h-60v-80q0-83-58.5-141.5T480-720q-83 0-141.5 58.5T280-520h-20q-58 0-99 41t-41 99q0 58 41 99t99 41Zm220-240Z\"><\/path><\/svg>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3\t\t\t\t\t\t\t\t\tclass=\"stack-card-title\">Proactive Systems Management with Predictive DevOps Intelligence<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"stack-card-desc\"><p data-path-to-node=\"4\">Modernize your infrastructure with automated operational workflows and intelligent monitoring. Our AI moves beyond reactive fixes to proactively predict risks, ensuring your systems maintain absolute stability.<\/p><ul data-path-to-node=\"5\"><li><p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">CI\/CD Optimization:<\/b> AI-driven pipeline automation, ensuring secure and high-velocity releases for every software supply chain.<\/p><\/li><li><p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">Smart Resource Management:<\/b> AI-driven auto-scaling based on real-time traffic analysis to optimize cloud infrastructure costs.<\/p><\/li><\/ul><\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"stack-card-wrapper elementor-repeater-item-3eb6320\"\n\t\t\t\t\tstyle=\"--card-index: 2; --rev-index: 1; z-index: 3;\">\n\t\t\t\t\t<div class=\"stack-card-inner\">\n\t\t\t\t\t\t<div class=\"stack-card-content\">\n\n\t\t\t\t\t\t\t<div class=\"stack-card-header\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"stack-card-icon\">\n\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M240-294.23 54.23-480 240-665.77 282.15-624 138.77-480l143.38 144L240-294.23Zm171.46 133.54-56.77-17.85 193.85-620.77 57.15 17.85-194.23 620.77ZM720-294.23 677.85-336l143.38-144-143.38-144L720-665.77 905.77-480 720-294.23Z\"><\/path><\/svg>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3\t\t\t\t\t\t\t\t\tclass=\"stack-card-title\">Intelligent System Architecture Consulting<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"stack-card-desc\"><p data-path-to-node=\"4\">Build a solid enterprise foundation with context-aware, tailored architecture recommendations. We integrate world-class software standards to ensure your systems are not only robust but also future-proof for long-term growth.<\/p><ul data-path-to-node=\"5\"><li><p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Standardized Design:<\/b> Automated design pattern recommendations and optimized tech ecosystems tailored to each specific use case.<\/p><\/li><li><p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">Perfect Balance:<\/b> Enhance operational performance while streamlining infrastructure to minimize technical management overhead.<\/p><\/li><\/ul><\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"stack-card-wrapper elementor-repeater-item-d37f799\"\n\t\t\t\t\tstyle=\"--card-index: 3; --rev-index: 0; z-index: 4;\">\n\t\t\t\t\t<div class=\"stack-card-inner\">\n\t\t\t\t\t\t<div class=\"stack-card-content\">\n\n\t\t\t\t\t\t\t<div class=\"stack-card-header\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"stack-card-icon\">\n\t\t\t\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"24px\" viewbox=\"0 -960 960 960\" width=\"24px\" fill=\"#1f1f1f\"><path d=\"M480-100.77q-129.77-35.39-214.88-152.77Q180-370.92 180-516v-230.15l300-112.31 300 112.31V-516q0 145.08-85.12 262.46Q609.77-136.16 480-100.77Zm0-63.23q104-33 172-132t68-220v-189l-240-89.62L240-705v189q0 121 68 220t172 132Zm0-315.62Zm-79.23 152.7h158.46q15.37 0 25.76-10.4 10.39-10.39 10.39-25.76v-118.46q0-15.36-10.39-25.76-10.39-10.39-25.76-10.39h-3.46v-40q0-31.46-21.96-53.42-21.96-21.97-53.43-21.97-31.46 0-53.42 21.97Q405-589.15 405-557.69v40h-4.23q-15.37 0-25.76 10.39-10.39 10.4-10.39 25.76v118.46q0 15.37 10.39 25.76 10.39 10.4 25.76 10.4Zm39.61-190.77v-40q0-17 11.5-28.5t28.5-11.5q17 0 28.5 11.5t11.5 28.5v40h-80Z\"><\/path><\/svg>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h3\t\t\t\t\t\t\t\t\tclass=\"stack-card-title\">End-to-End Security &amp; Intelligent Infrastructure Optimization<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"stack-card-desc\"><p data-path-to-node=\"4\">Safeguard your digital assets with proactive monitoring and efficient Cloud Financial Management (FinOps). We empower businesses to scale with confidence through automated vulnerability scanning and strategic operational budget optimization.<\/p><ul data-path-to-node=\"5\"><li><p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\">Active Safeguarding:<\/b> Real-time detection and prevention of unauthorized access attempts and intrusions.<\/p><\/li><li><p data-path-to-node=\"5,1,0\" class=\"translation-block\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\">Smart Cost Management:<\/b> Automating analysis and reducing resource waste, helping save up to <b data-path-to-node=\"5,1,0\" data-index-in-node=\"108\">40%<\/b> in Cloud operational costs.<\/p><\/li><\/ul><\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<style>\n\t\t\t#stack-cards-b5cbccf {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-wrapper {\n\t\t\t\tposition: sticky;\n\t\t\t\twidth: 100%;\n\t\t\t\ttransition: top 0.3s ease;\n\t\t\t\t\/* Stacking logic via CSS variables *\/\n\t\t\t\ttop: calc(var(--sticky-top-offset, 80px) + (var(--card-index) * var(--sticky-step-gap, 30px)));\n\t\t\t\tpadding-bottom: calc(var(--rev-index) * var(--sticky-step-gap, 30px));\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-inner {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tmin-height: 400px;\n\t\t\t\t\/* synced by JS *\/\n\t\t\t\toverflow: hidden;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-header {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmargin-bottom: 2rem;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-inner {\n\t\t\t\topacity: 0;\n\t\t\t\ttransform: translateY(24px);\n\t\t\t\ttransition: opacity 0.55s ease, transform 0.55s ease;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-inner.is-visible {\n\t\t\t\topacity: 1;\n\t\t\t\ttransform: translateY(0);\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-icon {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-icon svg {\n\t\t\t\tfill: currentColor;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-title {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-desc {\n\t\t\t\tmargin-bottom: 2rem;\n\t\t\t}\n\n\t\t\t#stack-cards-b5cbccf .stack-card-desc ul {\n\t\t\t\tpadding-left: 20px;\n\t\t\t}\n\t\t<\/style>\n\n\t\t<script>\n\t\t\t(function () {\n\t\t\t\tconst initStacking = () => {\n\t\t\t\t\tconst container = document.getElementById('stack-cards-b5cbccf');\n\t\t\t\t\tif (!container) return;\n\n\t\t\t\t\tconst wrappers = container.querySelectorAll('.stack-card-wrapper');\n\t\t\t\t\tconst inners = container.querySelectorAll('.stack-card-inner');\n\t\t\t\t\tconst total = wrappers.length;\n\n\t\t\t\t\t\/\/ 1. \u0110\u1ed3ng b\u1ed9 chi\u1ec1u cao t\u1ea5t c\u1ea3 c\u00e1c Card\n\t\t\t\t\tlet maxHeight = 0;\n\t\t\t\t\tinners.forEach(inner => {\n\t\t\t\t\t\tinner.style.height = 'auto';\n\t\t\t\t\t\tif (inner.offsetHeight > maxHeight) maxHeight = inner.offsetHeight;\n\t\t\t\t\t});\n\t\t\t\t\tinners.forEach(inner => { inner.style.height = maxHeight + 'px'; });\n\n\t\t\t\t\t\/\/ 2. C\u00e0i \u0111\u1eb7t th\u00f4ng s\u1ed1 (\u0111\u1ecdc t\u1eeb CSS variables \u0111\u1ec3 \u0111\u1ed3ng b\u1ed9 margin th\u1ebb cu\u1ed1i)\n\t\t\t\t\tconst style = getComputedStyle(container);\n\t\t\t\t\tconst topStart = parseInt(style.getPropertyValue('--sticky-top-offset')) || 80;\n\t\t\t\t\tconst step = parseInt(style.getPropertyValue('--sticky-step-gap')) || 30;\n\t\t\t\t\tconst scrollDist = \"0vh\";\n\n\t\t\t\t\twrappers.forEach((wrapper, index) => {\n\t\t\t\t\t\tconst t = topStart + (index * step);\n\n\t\t\t\t\t\t\/\/ T\u00ednh to\u00e1n track cu\u1ed9n\n\t\t\t\t\t\tif (index === total - 1) {\n\t\t\t\t\t\t\t\/\/ Fix bug card cu\u1ed1i k\u1eb9t: B\u00f9 margin \u0111\u1ec3 n\u00f3 tr\u01b0\u1ee3t h\u1ebft t\u1edbi topPos\n\t\t\t\t\t\t\tconst availableSpace = window.innerHeight - t - maxHeight;\n\t\t\t\t\t\t\tconst buffer = window.innerHeight * 0.3; \/\/ 30vh buffer\n\t\t\t\t\t\t\twrapper.style.marginBottom = (availableSpace > 0 ? (availableSpace + buffer) : buffer) + 'px';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twrapper.style.marginBottom = scrollDist;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t\/\/ Fade-in khi card v\u00e0o viewport\n\t\t\t\tconst initFadeIn = () => {\n\t\t\t\t\tconst container = document.getElementById('stack-cards-b5cbccf');\n\t\t\t\t\tif (!container) return;\n\t\t\t\t\tconst observer = new IntersectionObserver(\n\t\t\t\t\t\t(entries) => {\n\t\t\t\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\t\t\t\tentry.target.classList.add('is-visible');\n\t\t\t\t\t\t\t\t\tobserver.unobserve(entry.target);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ threshold: 0.15 }\n\t\t\t\t\t);\n\t\t\t\t\tcontainer.querySelectorAll('.stack-card-inner').forEach(inner => observer.observe(inner));\n\t\t\t\t};\n\n\t\t\t\twindow.addEventListener('load', initStacking);\n\t\t\t\twindow.addEventListener('load', initFadeIn);\n\t\t\t\twindow.addEventListener('resize', initStacking);\n\t\t\t\t\/\/ Cho Elementor Preview\n\t\t\t\tif (window.elementorFrontend) {\n\t\t\t\t\telementorFrontend.hooks.addAction('frontend\/element_ready\/sticky_stacking_cards.default', () => {\n\t\t\t\t\t\tinitStacking();\n\t\t\t\t\t\tinitFadeIn();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})();\n\t\t<\/script>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-3048d87 e-flex e-con-boxed e-con e-parent\" data-id=\"3048d87\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-a5766f9 e-con-full e-flex e-con e-child\" data-id=\"a5766f9\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-dec0d24 e-con-full e-flex e-con e-child\" data-id=\"dec0d24\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-4576805 e-con-full e-flex e-con e-child\" data-id=\"4576805\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-9d037c6 e-con-full e-flex e-con e-child\" data-id=\"9d037c6\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5084519 elementor-widget__width-inherit elementor-widget elementor-widget-essential_process\" data-id=\"5084519\" data-element_type=\"widget\" data-widget_type=\"essential_process.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <style>\n            .ep-container { display: flex; flex-wrap: nowrap; align-items: flex-start; width: 100%; position: relative; }\n            .ep-left { flex-shrink: 0; align-self: stretch; min-width: 0; }\n            \n            .ep-left-sticky { \n                                    position: -webkit-sticky; \n                    position: sticky; \n                    z-index: 10;\n                                height: auto; \n            }\n            \n            .ep-right { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; overflow: visible; }\n            .ep-title, .ep-desc { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; }\n\n            .ep-item { display: flex; flex-wrap: nowrap; align-items: flex-start; transition: color 0.4s ease; }\n            .ep-icon-wrapper { display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.4s; box-sizing: border-box; }\n            .ep-icon-wrapper svg { width: 1em; height: 1em; fill: currentColor; stroke: currentColor; }\n            .ep-text-box { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; }\n            .step-id { font-family: monospace; transition: all 0.4s; margin-left: 10px; }\n            .ep-title { margin: 0; transition: color 0.4s; font-weight: 700; }\n            .ep-desc { transition: color 0.4s; margin: 0; }\n            .ep-content-head { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; }\n            \n            @media (max-width: 1024px) { \n                .ep-container { flex-wrap: wrap; }\n                .ep-left, .ep-right { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; }\n                .ep-left-sticky { position: relative !important; top: 0 !important; }\n            }\n        <\/style>\n\n        <div class=\"ep-container\">\n            <div class=\"ep-left\">\n                <div class=\"ep-left-sticky\">\n                    \t\t<div data-elementor-type=\"section\" data-elementor-id=\"3443\" class=\"elementor elementor-3443\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-2eb60ea e-con-full e-flex e-con e-parent\" data-id=\"2eb60ea\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6957d68 elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"6957d68\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default translation-block\">Product <br><span>Development<\/span> <br class=\"res-mb\">Process<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a5a7618 elementor-mobile-align-justify elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-button\" data-id=\"a5a7618\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/lien-he\/\" aria-label=\"li\u00ean h\u1ec7 d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact Now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t                <\/div>\n            <\/div>\n\n            <div class=\"ep-right ep-items-list\">\n                                    <div class=\"ep-item elementor-repeater-item-c7ea4df\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"M146.46-459.23v228.97-499.48 270.51Zm420.41 333.59q21.26 0 36.04-14.99 14.78-14.99 14.78-36.24 0-21.26-14.7-36.04-14.69-14.78-36.45-14.78-20.92 0-35.91 14.69-14.99 14.7-14.99 36.46 0 20.92 14.99 35.91 14.99 14.99 36.24 14.99ZM805.08-500q21.25 0 36.04-14.99 14.78-14.98 14.78-36.24t-14.7-36.04q-14.7-14.78-36.46-14.78-20.92 0-35.91 14.7-14.98 14.7-14.98 36.45 0 20.93 14.98 35.91Q783.82-500 805.08-500ZM250-539.74h205.39V-590H250v50.26ZM250-370h205.39v-50.26H250V-370Zm-91.23 190q-25.79 0-44.18-18.39-18.38-18.39-18.38-44.18v-474.86q0-25.79 18.38-44.18Q132.98-780 158.77-780h642.46q25.79 0 44.18 18.39 18.38 18.39 18.38 44.18h-50.25q0-4.62-3.85-8.47-3.84-3.84-8.46-3.84H158.77q-4.62 0-8.46 3.84-3.85 3.85-3.85 8.47v474.86q0 4.62 3.85 8.47 3.84 3.84 8.46 3.84h236.36V-180H158.77Zm336.09 75.07q-29.47-29.54-29.47-71.74 0-35.64 21.53-62.61 21.54-26.98 54.62-35.46v-114.23h238.2v-63.98q-33.07-8.49-54.61-35.46t-21.54-62.61q0-42.21 29.57-71.75t71.81-29.54q42.23 0 71.71 29.54 29.47 29.54 29.47 71.75 0 35.64-21.54 62.61-21.53 26.97-54.61 35.46v114.23H591.79v63.98q33.08 8.48 54.62 35.46 21.54 26.97 21.54 62.61 0 42.2-29.57 71.74-29.57 29.54-71.81 29.54t-71.71-29.54Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Planning<\/h3>\n                                <span class=\"step-id\">01<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">At the start of every project, we partner with our clients to build a robust project plan. The initial scope documentation can be provided by the client or synthesized through a combination of collaborative calls and in-person meetings.<\/p>\n                        <\/div>\n                    <\/div>\n                                    <div class=\"ep-item elementor-repeater-item-43a1f5d\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"M716.23-166.8 574.85-308.08l141.38-141.28 35 36.05-80.13 80.1 188.9.67v50.26l-188.9-.67 80.13 80.36-35 35.79ZM162.57-180q-25.79 0-44.18-18.39T100-242.57v-129.28q0-25.79 18.39-44.17 18.39-18.39 44.18-18.39h253.05q25.78 0 44.17 18.39 18.39 18.38 18.39 44.17v129.28q0 25.79-18.39 44.18T415.62-180H162.57Zm0-50.26h253.05q5.12 0 8.71-3.46 3.59-3.46 3.59-8.85v-129.28q0-5.38-3.59-8.84-3.59-3.47-8.71-3.47H162.57q-5.39 0-8.85 3.47-3.46 3.46-3.46 8.84v129.28q0 5.39 3.46 8.85t8.85 3.46Zm81.2-281.84-35-35.39 80.13-80.77H100v-50.25h188.9l-80.13-80.36 35-35 141.38 140.49L243.77-512.1Zm300.61-13.49q-25.78 0-44.17-18.39-18.39-18.38-18.39-44.17v-129.28q0-25.79 18.39-44.18T544.38-780h253.05q25.79 0 44.18 18.39T860-717.43v129.28q0 25.79-18.39 44.17-18.39 18.39-44.18 18.39H544.38Zm0-50.25h253.05q5.39 0 8.85-3.47 3.46-3.46 3.46-8.84v-129.28q0-5.39-3.46-8.85t-8.85-3.46H544.38q-5.12 0-8.71 3.46-3.59 3.46-3.59 8.85v129.28q0 5.38 3.59 8.84 3.59 3.47 8.71 3.47ZM427.92-230.26v-153.9 153.9Zm104.16-345.58v-153.9 153.9Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Wireframing<\/h3>\n                                <span class=\"step-id\">02<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">Once the project plan and scope are finalized, our wireframing team takes over to define the layout of all elements on every screen\u2014whether it's a consumer-facing mobile app or an enterprise admin system. This is a critical phase to achieve final alignment on exactly what will be presented on each page for the user.<\/p>\n                        <\/div>\n                    <\/div>\n                                    <div class=\"ep-item elementor-repeater-item-d77b61b\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"m360.72-501.38 90.59-90.8-78.41-78.61-47.05 47.3-35.39-35.38 47.1-47.05-76.15-75.75-90.8 90.8 190.11 189.49ZM690.08-171l90.79-91.2-76.15-76.16-47.05 47.1-35.39-35.38 46.85-47.05-77.57-77.62-90.59 90.59L690.08-171Zm10.77-598.74 69.51 69.51-69.51-69.51ZM281.31-140H140v-141.31l184.72-184.72L100-690.87l160.74-161.82 226.52 225.72 177.97-178.18q7.82-7.82 17.08-11.34 9.25-3.51 18.97-3.51 9.72 0 18.98 3.51 9.25 3.52 17.07 11.34l67.82 69.18q7.82 7.82 11.14 17.07 3.32 9.26 3.32 18.98t-3.32 18.68q-3.32 8.96-11.14 16.78l-177.2 177.54 224.74 225.51-161.15 161-225.1-224.72L281.31-140Zm-91.05-50.26h69.3l393.06-393.25-69.52-69.52-392.84 393.47v69.3Zm427.64-428.1-34.8-34.67 69.52 69.52-34.72-34.85Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Design<\/h3>\n                                <span class=\"step-id\">03<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">Upon completing the wireframes for all pages, our design team takes over to craft the final look, feel, and functionality of the application. This is an exciting stage of the project where you can see the entire application truly come to life. We will provide you with clickable prototypes, allowing you to fully experience the end-to-end user journey before we officially move into development.<\/p>\n                        <\/div>\n                    <\/div>\n                                    <div class=\"ep-item elementor-repeater-item-cbc32a3\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"M320-254.92 93.85-481.08l227.23-226.97 35.74 36-191.18 191.18 190.15 190.15-35.79 35.8Zm318.92 1.07-35.74-36 191.18-191.18-190.15-190.41L640-707.23l226.15 226.15-227.23 227.23Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Code<\/h3>\n                                <span class=\"step-id\">04<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">With the wireframes and designs finalized, we move into the development phase to make the application fully functional. As an Agile-driven agency, we structure the project into feature sets known as Sprints. This methodology enables our clients to regularly review progress and provide feedback at the conclusion of each Sprint. We highly value your input and active collaboration throughout the entire development lifecycle.<\/p>\n                        <\/div>\n                    <\/div>\n                                    <div class=\"ep-item elementor-repeater-item-c9eb088\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"m396.36-100-17.13-120.77q-19.05-6.46-40.47-18.59-21.43-12.13-37.3-25.77l-112.18 49.85-84.05-147.54L205.16-437q-1.8-10-2.58-21.31-.78-11.31-.78-21.31 0-9.61.78-20.85.78-11.25 2.58-22.53l-99.93-74.44 84.05-146.51 111.8 49.21q17.02-13.77 37.78-25.71 20.76-11.93 39.99-18.11L396.36-860h167.28l17.13 121.15q20.72 7.62 40.29 18.58 19.58 10.96 36.32 25.53l113.59-49.21 83.8 146.51-101.46 74.52q2.56 11.18 3.09 22.04.52 10.85.52 20.88 0 9.64-.72 20.3-.71 10.65-3.1 22.73l100.95 74.15L770-215.28l-112.62-50.23q-17.41 14.41-37 26.29-19.59 11.89-39.61 18.07L563.64-100H396.36Zm41.74-50.26h83.08l14.38-110.12q31.44-8 58.27-23.48 26.84-15.47 51.45-39.45l102.77 44.08 39.8-69.9-90.57-67.28q4.34-17.03 6.48-32.49 2.14-15.46 2.14-31.1 0-16.28-1.94-31.36-1.93-15.08-6.68-31.46l91.34-68.05-39.8-69.9-103.92 44.28q-20.75-22.95-49.94-40.48-29.19-17.54-59.78-22.65L521.9-809.74h-83.59L425.08-700q-32.36 6.82-59.64 22.49-27.29 15.66-51.23 40.43l-103.03-43.69-39.8 69.9 90.44 66.69q-4.59 15.31-6.79 31.31-2.21 16-2.21 33.25 0 16.29 2.21 31.9 2.2 15.62 6.41 31.31l-90.06 67.28 39.8 69.9 102.64-43.9q23.59 24.05 51 39.59Q392.23-268 424.69-260l13.41 109.74Zm41.28-214.61q48.03 0 81.58-33.55T594.51-480q0-48.03-33.55-81.58t-81.58-33.55q-47.97 0-81.55 33.55-33.57 33.55-33.57 81.58t33.57 81.58q33.58 33.55 81.55 33.55ZM480-480Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Testing<\/h3>\n                                <span class=\"step-id\">05<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">Mobile app and software testing is a critical phase in ensuring that the final product is functional, reliable, and user-friendly. Typically, this process encompasses multiple stages, utilizing various techniques and tools to identify defects, bugs, and usability flaws. Our primary objective is to detect and resolve all issues prior to the public release, thereby optimizing the user experience and guaranteeing the product's long-term success.<\/p>\n                        <\/div>\n                    <\/div>\n                                    <div class=\"ep-item elementor-repeater-item-edf6a6f\">\n                        <div class=\"ep-icon-container\">\n                                                        <div  class=\"ep-icon-wrapper\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" height=\"40px\" viewbox=\"0 -960 960 960\" width=\"40px\" fill=\"#1f1f1f\"><path d=\"m197.69-531.36 101.8 43.18q18.2-36.41 39.31-71.29 21.1-34.89 45.89-67.32l-69.92-13.7q-3.08-.77-5.96.2-2.89.96-5.19 3.27L197.69-531.36Zm141.8 74.1 122.94 122.75q51.88-23.57 100.83-56.57 48.94-33 86.82-70.87 72.59-72.59 108.78-151.73 36.19-79.14 39.6-179.99-101.1 3.41-180.03 39.48-78.92 36.06-151.51 108.65-37.87 37.87-70.87 87.02-33 49.14-56.56 101.26Zm198.56-141.02q0-27.18 18.82-46t46.3-18.82q27.47 0 46.29 18.82t18.82 46q0 27.18-18.82 45.87-18.82 18.69-46.29 18.69-27.48 0-46.3-18.69-18.82-18.69-18.82-45.87Zm-2.15 405.51 105.92-105.67q2.31-2.3 3.14-5.32.83-3.01.32-5.83l-13.95-69.92q-32.43 24.53-67.19 45.54-34.76 21-71.42 39.46l43.18 101.74Zm310.89-649.05q7.98 122.8-32.42 225.18-40.4 102.38-130.17 191.9-2.33 2.33-4.41 4.53-2.07 2.21-4.41 4.29l19.16 96.07q2.94 15.77-1.67 30.41-4.62 14.64-15.72 25.75L518.82-105.08l-75.56-177.28-156.36-156.1-177.03-76.21 158.16-157.94q11.36-11.11 26.1-15.91 14.74-4.81 30.51-1.61l96.59 19.29q2.33-2.08 4.22-4.08 1.88-2 4.22-4.08 89.77-89.77 191.92-130.28 102.15-40.51 225.2-32.54ZM177.05-319.05q29.23-29.49 71.14-29.47 41.91.01 71.4 29.24 29.23 29.23 28.92 71.14-.31 41.91-29.54 71.39-23.35 23.11-73.1 38.97-49.74 15.85-133.79 26.03 10.18-84.05 25.9-134.12 15.71-50.08 39.07-73.18Zm35.34 36.18q-12.67 13.33-23.21 42.28-10.54 28.95-16.05 67.56 38.61-5.77 67.56-16.27 28.95-10.5 42.29-23.42 15.38-14.31 15.79-35.24.41-20.94-14.56-36.32-15.39-14.98-36.32-14.48-20.94.5-35.5 15.89Z\"><\/path><\/svg>                            <\/div>\n                        <\/div>\n\n                        <div class=\"ep-text-box\">\n                            <div class=\"ep-content-head\">\n                                <h3 class=\"ep-title text-3xl\">Deployment<\/h3>\n                                <span class=\"step-id\">06<\/span>\n                            <\/div>\n                            <p class=\"ep-desc text-lg\">Once the application is finalized and approved by our internal QA department, Project Managers, and the client, we are ready to deploy the source code to its production environment. Hosting options are flexible, ranging from client-owned on-premise servers to web and cloud-based infrastructure. We provide expert guidance to help our clients choose the optimal path and manage every technical detail of the final rollout.<\/p>\n                        <\/div>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <script>\n            (function() {\n                const handleScroll = () => {\n                    const centerY = window.innerHeight \/ 2;\n                    const items = document.querySelectorAll('.ep-item');\n                    items.forEach(item => {\n                        const rect = item.getBoundingClientRect();\n                        const itemCenter = rect.top + (rect.height \/ 2);\n                        if (Math.abs(itemCenter - centerY) < 120) {\n                            item.classList.add('is-active');\n                        } else {\n                            item.classList.remove('is-active');\n                        }\n                    });\n                };\n                window.addEventListener('scroll', handleScroll);\n                window.addEventListener('load', handleScroll);\n                window.addEventListener('resize', handleScroll);\n                handleScroll();\n            })();\n        <\/script>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-73e76a8 e-flex e-con-boxed e-con e-parent\" data-id=\"73e76a8\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-4791c09 e-con-full e-flex e-con e-child\" data-id=\"4791c09\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-17add07 e-con-full e-flex e-con e-child\" data-id=\"17add07\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-d4e9c1f e-con-full e-flex e-con e-child\" data-id=\"d4e9c1f\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-70759bc e-con-full e-flex e-con e-child\" data-id=\"70759bc\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e92a55 elementor-widget elementor-widget-heading\" data-id=\"4e92a55\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default translation-block\">What Our <br>Clients Say<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-af25d1a e-flex e-con-boxed e-con e-parent\" data-id=\"af25d1a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aabc9f6 elementor-widget__width-inherit elementor-widget elementor-widget-orbit_testimonials\" data-id=\"aabc9f6\" data-element_type=\"widget\" data-widget_type=\"orbit_testimonials.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"orbit-testimonial-wrapper\" id=\"orbit-wrap-aabc9f6\">\n\t\t\t<style>\n\t\t\t\t\/* CSS \u0111\u01b0\u1ee3c Scoped g\u1ecdn nh\u1eb9 theo ID Widget *\/\n\t\t\t\t#orbit-wrap-aabc9f6 {\n\t\t\t\t\t--avatar-active-size: 70px;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .testimonial-section {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 480px;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .arc-col {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\twidth: calc(var(--arc-radius) + var(--arc-col-offset));\n\t\t\t\t\theight: 100%;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .arc-center {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 0; height: 0;\n\t\t\t\t\tleft: -100px;\n\t\t\t\t\ttop: 50%;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .arc-line {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: calc(var(--arc-radius) * 2);\n\t\t\t\t\theight: calc(var(--arc-radius) * 2);\n\t\t\t\t\tborder-radius: 50%;\n\t\t\t\t\tborder: 1px solid transparent;\n\t\t\t\t\tborder-right-color: var(--arc-color);\n\t\t\t\t\tleft: calc(var(--arc-radius) * -1);\n\t\t\t\t\ttop: calc(var(--arc-radius) * -1);\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .text-col {\n\t\t\t\t\tflex: 1;\n\t\t\t\t\tpadding: 40px 60px 40px 20px; \/* Default, overridden by controls *\/\n\t\t\t\t\tposition: relative;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node {\n\t\t\t\t\tposition: absolute; left: 0; top: 0;\n\t\t\t\t\twidth: var(--avatar-active-size); height: var(--avatar-active-size);\n\t\t\t\t\tmargin-left: calc(var(--avatar-active-size) \/ -2);\n\t\t\t\t\tmargin-top: calc(var(--avatar-active-size) \/ -2);\n\t\t\t\t\ttransform-origin: 50% 50%;\n\t\t\t\t\twill-change: transform, opacity;\n\t\t\t\t\tcursor: pointer; user-select: none;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-img-wrapper {\n\t\t\t\t\twidth: 100%; height: 100%;\n\t\t\t\t\tdisplay: flex; justify-content: center; align-items: center;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-img {\n\t\t\t\t\twidth: 100%; height: 100%;\n\t\t\t\t\tborder-radius: 50%; object-fit: cover;\n\t\t\t\t\ttransition: transform 0.4s ease, filter 0.4s ease;\n\t\t\t\t\tbox-shadow: 0 4px 12px rgba(0,0,0,0.1);\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .user-info {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\tleft: calc(var(--avatar-active-size) + 15px);\n\t\t\t\t\ttop: 50%; transform: translateY(-50%);\n\t\t\t\t\twidth: 250px; display: flex; flex-direction: column;\n\t\t\t\t\ttransition: opacity 0.4s ease, transform 0.4s ease;\n\t\t\t\t}\n\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.active { z-index: 5; }\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.inactive { z-index: 2; }\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.active .avatar-img { transform: scale(1); filter: grayscale(0%); }\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.inactive .avatar-img { transform: scale(0.714); filter: grayscale(40%); }\n\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.inactive .user-info { opacity: 0.5; transform: translateY(-50%) scale(0.9); transform-origin: left center; }\n\n\t\t\t\t#orbit-wrap-aabc9f6 .progress-ring-container {\n\t\t\t\t\tposition: absolute; left: 0; top: 0; width: 90px; height: 90px;\n\t\t\t\t\tmargin-left: -45px; margin-top: -45px; pointer-events: none; z-index: 10;\n\t\t\t\t}\n\t\t\t\t#orbit-wrap-aabc9f6 .progress-ring__circle {\n\t\t\t\t\tstroke-dasharray: 264; stroke-dashoffset: 264;\n\t\t\t\t\ttransform: rotate(-90deg); transform-origin: 50% 50%;\n\t\t\t\t\tstroke: var(--progress-bar-color, var(--primary-color));\n\t\t\t\t}\n\t\t\t\t#orbit-wrap-aabc9f6 .progress-ring__circle.animate {\n\t\t\t\t\tanimation: progressFill_aabc9f6 5000ms linear forwards;\n\t\t\t\t}\n\t\t\t\t@keyframes progressFill_aabc9f6 { 0% { stroke-dashoffset: 264; } 100% { stroke-dashoffset: 0; } }\n\n\t\t\t\t#orbit-wrap-aabc9f6 .quote-icon svg { width: var(--quote-icon-size, 50px); height: auto; fill: var(--quote-icon-color, var(--primary-color)); opacity: 0.8;}\n\t\t\t\t#orbit-wrap-aabc9f6 .quote-icon { font-size: var(--quote-icon-size, 50px); color: var(--quote-icon-color, var(--primary-color)); margin-bottom: 10px;}\n\t\t\t\t#orbit-wrap-aabc9f6 .review-text-wrapper { transition: opacity 0.4s ease, transform 0.4s ease; }\n\t\t\t\t#orbit-wrap-aabc9f6 .review-text-wrapper.fade-out { opacity: 0; transform: translateY(10px); }\n\t\t\t\t#orbit-wrap-aabc9f6 .star { font-size: var(--star-icon-size, 14px); color: var(--star-icon-color, var(--primary-color)); line-height: 1; }\n\t\t\t\t#orbit-wrap-aabc9f6 .star svg { width: var(--star-icon-size, 14px); fill: var(--star-icon-color, var(--primary-color)); display: inline-block;}\n\n\t\t\t\t@media (max-width: 767px) {\n\t\t\t\t\t#orbit-wrap-aabc9f6 .testimonial-section { flex-direction: column; height: auto; min-height: var(--mobile-section-min-height, 520px); }\n\t\t\t\t\t#orbit-wrap-aabc9f6 .arc-col { width: 100%; height: var(--mobile-arc-col-height, 220px); overflow: hidden; }\n\t\t\t\t\t#orbit-wrap-aabc9f6 .arc-center { left: 50%; top: var(--mobile-arc-center-top, 400px); }\n\t\t\t\t\t#orbit-wrap-aabc9f6 .arc-line { border-top-color: var(--arc-color); border-right-color: transparent; }\n\t\t\t\t\t#orbit-wrap-aabc9f6 .user-info {\n\t\t\t\t\t\tleft: 50%; top: calc(var(--avatar-active-size) + 15px);\n\t\t\t\t\t\ttransform: translateX(-50%) !important; text-align: center; align-items: center; width: 200px;\n\t\t\t\t\t}\n\t\t\t\t\t#orbit-wrap-aabc9f6 .avatar-node.inactive .user-info { opacity: 0; pointer-events: none; }\n\t\t\t\t\t#orbit-wrap-aabc9f6 .text-col { padding: 0 20px 40px 20px; text-align: center; }\n\t\t\t\t}\n\t\t\t<\/style>\n\n\t\t\t<div class=\"testimonial-section\" data-reviews=\"[{&quot;id&quot;:&quot;53f1449&quot;,&quot;name&quot;:&quot;Dr Martina Paglia&quot;,&quot;rating&quot;:5,&quot;date&quot;:&quot;CEO &amp; Founder @ Expat Therapy 4U&quot;,&quot;img&quot;:&quot;https:\\\/\\\/www.wucode.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/testimonial-1.jpeg&quot;,&quot;text&quot;:&quot;H\\u1ee3p t\\u00e1c v\\u1edbi WTS lu\\u00f4n l\\u00e0 m\\u1ed9t tr\\u1ea3i nghi\\u1ec7m tuy\\u1ec7t v\\u1eddi. Trong su\\u1ed1t v\\u00e0i n\\u0103m qua, t\\u00f4i \\u0111\\u00e3 c\\u00f3 c\\u01a1 h\\u1ed9i l\\u00e0m vi\\u1ec7c c\\u00f9ng c\\u00f4ng ty v\\u00e0 c\\u00f3 th\\u1ec3 kh\\u1eb3ng \\u0111\\u1ecbnh v\\u1ec1 s\\u1ef1 chuy\\u00ean nghi\\u1ec7p, \\u0111\\u00e1ng tin c\\u1eady v\\u00e0 \\u0111\\u00fang gi\\u1edd c\\u1ee7a h\\u1ecd. T\\u00f4i ch\\u00e2n th\\u00e0nh gi\\u1edbi thi\\u1ec7u WTS \\u0111\\u1ebfn b\\u1ea5t k\\u1ef3 ai \\u0111ang t\\u00ecm ki\\u1ebfm m\\u1ed9t l\\u1eadp tr\\u00ecnh vi\\u00ean xu\\u1ea5t s\\u1eafc cho d\\u1ef1 \\u00e1n c\\u1ee7a m\\u00ecnh.&quot;},{&quot;id&quot;:&quot;c9cf387&quot;,&quot;name&quot;:&quot;Nick Sfikas&quot;,&quot;rating&quot;:5,&quot;date&quot;:&quot;Founder @ SFKsystems&quot;,&quot;img&quot;:&quot;https:\\\/\\\/www.wucode.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/testimonial-2.jpg&quot;,&quot;text&quot;:&quot;L\\u00e0m vi\\u1ec7c c\\u1ef1c k\\u1ef3 chuy\\u00ean nghi\\u1ec7p, nh\\u00e0 ph\\u00e1t tri\\u1ec3n WooCommerce s\\u1ed1 m\\u1ed9t!&quot;},{&quot;id&quot;:&quot;e4ce1ad&quot;,&quot;name&quot;:&quot;Linh Uyen Nguyen&quot;,&quot;rating&quot;:5,&quot;date&quot;:&quot;CEO &amp; Founder @ Coweli GmbH&quot;,&quot;img&quot;:&quot;https:\\\/\\\/www.wucode.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/testimonial-3.jpeg&quot;,&quot;text&quot;:&quot;C\\u1ea3m \\u01a1n r\\u1ea5t nhi\\u1ec1u v\\u00ec s\\u1ef1 gi\\u00fap \\u0111\\u1ee1 t\\u1eadn t\\u00e2m v\\u00e0 nh\\u1eefng l\\u1eddi khuy\\u00ean qu\\u00fd b\\u00e1u! Ch\\u00fang t\\u00f4i th\\u1ef1c s\\u1ef1 \\u0111\\u00e1nh gi\\u00e1 cao s\\u1ef1 chuy\\u00ean nghi\\u1ec7p v\\u00e0 t\\u1eadn t\\u1ee5y c\\u1ee7a WTS. Ch\\u00fac c\\u00f4ng ty m\\u1ecdi \\u0111i\\u1ec1u t\\u1ed1t \\u0111\\u1eb9p nh\\u1ea5t! M\\u1ed9t l\\u1ea7n n\\u1eefa, c\\u1ea3m \\u01a1n!&quot;},{&quot;id&quot;:&quot;dd3eb6b&quot;,&quot;name&quot;:&quot;Konstantin&quot;,&quot;rating&quot;:5,&quot;date&quot;:&quot;GUTSCHEINLAB Website&quot;,&quot;img&quot;:&quot;https:\\\/\\\/www.wucode.net\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/testimonial-4.jpeg&quot;,&quot;text&quot;:&quot;S\\u1ef1 t\\u1ec9 m\\u1ec9 trong t\\u1eebng chi ti\\u1ebft m\\u00e0 WTS th\\u1ec3 hi\\u1ec7n th\\u1eadt s\\u1ef1 \\u0111\\u00e1ng tr\\u00e2n tr\\u1ecdng. T\\u1eebng y\\u1ebfu t\\u1ed1 c\\u1ee7a d\\u1ef1 \\u00e1n, t\\u1eeb ph\\u1ea7n thi\\u1ebft k\\u1ebf \\u0111\\u1ebfn t\\u00ednh n\\u0103ng, \\u0111\\u1ec1u \\u0111\\u01b0\\u1ee3c th\\u1ef1c hi\\u1ec7n v\\u1edbi \\u0111\\u1ed9 ch\\u00ednh x\\u00e1c v\\u00e0 tinh th\\u1ea7n tr\\u00e1ch nhi\\u1ec7m cao. Nh\\u1edd \\u0111\\u00f3, s\\u1ea3n ph\\u1ea9m cu\\u1ed1i c\\u00f9ng l\\u00e0 m\\u1ed9t trang web v\\u1eeba \\u0111\\u1eb9p m\\u1eaft v\\u1eeba d\\u1ec5 s\\u1eed d\\u1ee5ng.&quot;}]\" data-timer=\"5000\" data-radius=\"200\" data-angle-step=\"30\">\n\t\t\t\t\n\t\t\t\t<div class=\"arc-col\">\n\t\t\t\t\t<div class=\"arc-center\">\n\t\t\t\t\t\t<div class=\"arc-line\"><\/div>\n\t\t\t\t\t\t<div class=\"progress-ring-container\">\n\t\t\t\t\t\t\t<svg width=\"90\" height=\"90\"><circle class=\"progress-ring__circle\" stroke-width=\"3\" fill=\"transparent\" r=\"42\" cx=\"45\" cy=\"45\"\/><\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<!-- 5 Virtual DOM Nodes -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"avatar-node\" id=\"node-aabc9f6-0\">\n\t\t\t\t\t\t\t<div class=\"avatar-img-wrapper\"><img decoding=\"async\" src=\"\" class=\"avatar-img\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\"><\/div>\n\t\t\t\t\t\t\t<div class=\"user-info\">\n\t\t\t\t\t\t\t\t<div class=\"user-name\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"user-meta\"><span class=\"star\"><i aria-hidden=\"true\" class=\"fas fa-star\"><\/i><\/span> <span class=\"rating-text\"><\/span><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"avatar-node\" id=\"node-aabc9f6-1\">\n\t\t\t\t\t\t\t<div class=\"avatar-img-wrapper\"><img decoding=\"async\" src=\"\" class=\"avatar-img\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\"><\/div>\n\t\t\t\t\t\t\t<div class=\"user-info\">\n\t\t\t\t\t\t\t\t<div class=\"user-name\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"user-meta\"><span class=\"star\"><i aria-hidden=\"true\" class=\"fas fa-star\"><\/i><\/span> <span class=\"rating-text\"><\/span><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"avatar-node\" id=\"node-aabc9f6-2\">\n\t\t\t\t\t\t\t<div class=\"avatar-img-wrapper\"><img decoding=\"async\" src=\"\" class=\"avatar-img\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\"><\/div>\n\t\t\t\t\t\t\t<div class=\"user-info\">\n\t\t\t\t\t\t\t\t<div class=\"user-name\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"user-meta\"><span class=\"star\"><i aria-hidden=\"true\" class=\"fas fa-star\"><\/i><\/span> <span class=\"rating-text\"><\/span><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"avatar-node\" id=\"node-aabc9f6-3\">\n\t\t\t\t\t\t\t<div class=\"avatar-img-wrapper\"><img decoding=\"async\" src=\"\" class=\"avatar-img\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\"><\/div>\n\t\t\t\t\t\t\t<div class=\"user-info\">\n\t\t\t\t\t\t\t\t<div class=\"user-name\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"user-meta\"><span class=\"star\"><i aria-hidden=\"true\" class=\"fas fa-star\"><\/i><\/span> <span class=\"rating-text\"><\/span><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"avatar-node\" id=\"node-aabc9f6-4\">\n\t\t\t\t\t\t\t<div class=\"avatar-img-wrapper\"><img decoding=\"async\" src=\"\" class=\"avatar-img\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\"><\/div>\n\t\t\t\t\t\t\t<div class=\"user-info\">\n\t\t\t\t\t\t\t\t<div class=\"user-name\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"user-meta\"><span class=\"star\"><i aria-hidden=\"true\" class=\"fas fa-star\"><\/i><\/span> <span class=\"rating-text\"><\/span><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"text-col\">\n\t\t\t\t\t<div class=\"quote-icon\"><i aria-hidden=\"true\" class=\"fas fa-quote-left\"><\/i><\/div>\n\t\t\t\t\t<div class=\"review-text-wrapper\" id=\"review-wrapper-aabc9f6\">\n\t\t\t\t\t\t<p class=\"quote-text\" id=\"quote-text-aabc9f6\"><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<script>\n\t\t(function() {\n\t\t\t'use strict';\n\t\t\tvar WID      = 'aabc9f6';\n\t\t\tvar INST_KEY = '_orbit_' + WID;\n\n\t\t\tfunction initOrbitTestimonial($scope) {\n\t\t\t\t\/\/ Cleanup previous instance \u0111\u1ec3 h\u1ed7 tr\u1ee3 Elementor live-preview refresh\n\t\t\t\tif (window[INST_KEY]) {\n\t\t\t\t\tclearInterval(window[INST_KEY].autoplayTimer);\n\t\t\t\t\tif (window[INST_KEY].resizeHandler) {\n\t\t\t\t\t\twindow.removeEventListener('resize', window[INST_KEY].resizeHandler);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar instance = { autoplayTimer: null, resizeHandler: null };\n\t\t\t\twindow[INST_KEY] = instance;\n\n\t\t\t\tvar container = $scope\n\t\t\t\t\t? $scope[0].querySelector('#orbit-wrap-' + WID + ' .testimonial-section')\n\t\t\t\t\t: document.querySelector('#orbit-wrap-' + WID + ' .testimonial-section');\n\t\t\t\tif (!container) return;\n\n\t\t\t\tvar rawData = container.getAttribute('data-reviews');\n\t\t\t\tif (!rawData) return;\n\t\t\t\tvar reviews = JSON.parse(rawData);\n\t\t\t\tif (reviews.length === 0) return;\n\n\t\t\t\tvar TOTAL             = reviews.length;\n\t\t\t\tvar RADIUS            = parseInt(container.getAttribute('data-radius'))     || 250;\n\t\t\t\tvar ANGLE_STEP        = parseInt(container.getAttribute('data-angle-step')) || 20;\n\t\t\t\tvar AUTOPLAY_INTERVAL = parseInt(container.getAttribute('data-timer'))      || 5000;\n\n\t\t\t\tvar currentIndex = 0;\n\t\t\t\tvar baseAngle    = window.innerWidth <= 767 ? -90 : 0;\n\n\t\t\t\tvar domNodes = [];\n\t\t\t\tfor (var i = 0; i < 5; i++) {\n\t\t\t\t\tdomNodes.push({\n\t\t\t\t\t\tel:      container.querySelector('#node-' + WID + '-' + i),\n\t\t\t\t\t\tpos:     i - 2,\n\t\t\t\t\t\tdataIdx: getCircularIdx(currentIndex + (i - 2))\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tvar quoteTextEl   = container.querySelector('#quote-text-'      + WID);\n\t\t\t\tvar reviewWrapper = container.querySelector('#review-wrapper-'  + WID);\n\t\t\t\tvar progressRing  = container.querySelector('.progress-ring__circle');\n\t\t\t\tvar ringContainer = container.querySelector('.progress-ring-container');\n\n\t\t\t\tfunction getCircularIdx(idx) { return ((idx % TOTAL) + TOTAL) % TOTAL; }\n\n\t\t\t\tfunction updateDOM(animate) {\n\t\t\t\t\tanimate = (animate !== false);\n\t\t\t\t\tringContainer.style.transform = 'rotate(' + baseAngle + 'deg) translateX(' + RADIUS + 'px) rotate(' + (-baseAngle) + 'deg)';\n\n\t\t\t\t\tdomNodes.forEach(function(node) {\n\t\t\t\t\t\tvar el = node.el;\n\t\t\t\t\t\tif (!el) return;\n\t\t\t\t\t\tvar data = reviews[node.dataIdx];\n\n\t\t\t\t\t\tel.style.transition = animate\n\t\t\t\t\t\t\t? 'transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.5s ease'\n\t\t\t\t\t\t\t: 'none';\n\n\t\t\t\t\t\tvar totalAngle = baseAngle + node.pos * ANGLE_STEP;\n\t\t\t\t\t\tel.style.transform = 'rotate(' + totalAngle + 'deg) translateX(' + RADIUS + 'px) rotate(' + (-totalAngle) + 'deg)';\n\n\t\t\t\t\t\tif (node.pos === 0) {\n\t\t\t\t\t\t\tel.style.opacity = 1; el.classList.add('active'); el.classList.remove('inactive'); el.style.pointerEvents = 'auto';\n\t\t\t\t\t\t} else if (Math.abs(node.pos) === 1) {\n\t\t\t\t\t\t\tel.style.opacity = 1; el.classList.remove('active'); el.classList.add('inactive'); el.style.pointerEvents = 'auto';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.style.opacity = 0; el.classList.remove('active', 'inactive'); el.style.pointerEvents = 'none';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (el.dataset.currentIdx != node.dataIdx) {\n\t\t\t\t\t\t\tvar imgEl = el.querySelector('.avatar-img');\n\t\t\t\t\t\t\tif (imgEl) imgEl.src = data.img;\n\t\t\t\t\t\t\tel.querySelector('.user-name').textContent = data.name;\n\t\t\t\t\t\t\tel.querySelector('.rating-text').textContent = data.rating + ' on ' + data.date;\n\t\t\t\t\t\t\tel.dataset.currentIdx = node.dataIdx;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tel.onclick = (function(n) {\n\t\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\t\tif (n.pos === -1) prevReview();\n\t\t\t\t\t\t\t\tif (n.pos === 1)  nextReview();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})(node);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfunction updateQuoteText() {\n\t\t\t\t\tif (TOTAL === 0) return;\n\t\t\t\t\treviewWrapper.classList.add('fade-out');\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tquoteTextEl.innerHTML = reviews[currentIndex].text.replace(\/\\n\/g, '<br>');\n\t\t\t\t\t\treviewWrapper.classList.remove('fade-out');\n\t\t\t\t\t}, 300);\n\t\t\t\t}\n\n\t\t\t\tfunction resetProgressBar() {\n\t\t\t\t\tprogressRing.classList.remove('animate');\n\t\t\t\t\t\/\/ Snap to start without transition, then clear inline style so the\n\t\t\t\t\t\/\/ @keyframes animation (not an inline style) owns stroke-dashoffset.\n\t\t\t\t\tprogressRing.setAttribute('stroke-dashoffset', '264');\n\t\t\t\t\tvoid progressRing.getBoundingClientRect(); \/\/ force reflow\n\t\t\t\t\tprogressRing.removeAttribute('stroke-dashoffset');\n\t\t\t\t\tprogressRing.classList.add('animate');\n\t\t\t\t}\n\n\t\t\t\tfunction nextReview() {\n\t\t\t\t\tif (TOTAL <= 1) return;\n\t\t\t\t\tcurrentIndex = getCircularIdx(currentIndex - 1);\n\t\t\t\t\tvar nodeToRecycle = domNodes.find(function(n) { return n.pos === -2; });\n\t\t\t\t\tnodeToRecycle.pos     = 3;\n\t\t\t\t\tnodeToRecycle.dataIdx = getCircularIdx(currentIndex - 2);\n\t\t\t\t\tupdateDOM(false);\n\t\t\t\t\tvoid container.offsetHeight;\n\t\t\t\t\tdomNodes.forEach(function(n) { n.pos -= 1; });\n\t\t\t\t\tupdateDOM(true);\n\t\t\t\t\tupdateQuoteText();\n\t\t\t\t\tresetProgressBar();\n\t\t\t\t\tresetAutoplay();\n\t\t\t\t}\n\n\t\t\t\tfunction prevReview() {\n\t\t\t\t\tif (TOTAL <= 1) return;\n\t\t\t\t\tcurrentIndex = getCircularIdx(currentIndex + 1);\n\t\t\t\t\tvar nodeToRecycle = domNodes.find(function(n) { return n.pos === 2; });\n\t\t\t\t\tnodeToRecycle.pos     = -3;\n\t\t\t\t\tnodeToRecycle.dataIdx = getCircularIdx(currentIndex + 2);\n\t\t\t\t\tupdateDOM(false);\n\t\t\t\t\tvoid container.offsetHeight;\n\t\t\t\t\tdomNodes.forEach(function(n) { n.pos += 1; });\n\t\t\t\t\tupdateDOM(true);\n\t\t\t\t\tupdateQuoteText();\n\t\t\t\t\tresetProgressBar();\n\t\t\t\t\tresetAutoplay();\n\t\t\t\t}\n\n\t\t\t\tfunction startAutoplay() {\n\t\t\t\t\tif (TOTAL <= 1) return;\n\t\t\t\t\tinstance.autoplayTimer = setInterval(nextReview, AUTOPLAY_INTERVAL);\n\t\t\t\t\tprogressRing.style.animationPlayState = 'running';\n\t\t\t\t}\n\n\t\t\t\tfunction resetAutoplay() {\n\t\t\t\t\tclearInterval(instance.autoplayTimer);\n\t\t\t\t\tstartAutoplay();\n\t\t\t\t}\n\n\t\t\t\tinstance.resizeHandler = function() {\n\t\t\t\t\tvar newBaseAngle = window.innerWidth <= 767 ? -90 : 0;\n\t\t\t\t\tif (newBaseAngle !== baseAngle) {\n\t\t\t\t\t\tbaseAngle = newBaseAngle;\n\t\t\t\t\t\tupdateDOM(false);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\twindow.addEventListener('resize', instance.resizeHandler);\n\n\t\t\t\t\/\/ Kh\u1edfi ch\u1ea1y\n\t\t\t\tupdateDOM(false);\n\t\t\t\tupdateQuoteText();\n\t\t\t\tif (TOTAL > 1) {\n\t\t\t\t\tresetProgressBar();\n\t\t\t\t\tstartAutoplay();\n\t\t\t\t} else {\n\t\t\t\t\tprogressRing.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ Always store the latest init function so the delegator hook calls the freshest version\n\t\t\twindow['_orbitInitFn_' + WID] = initOrbitTestimonial;\n\n\t\t\t\/\/ \u0110\u0103ng k\u00fd v\u1edbi Elementor ho\u1eb7c init tr\u1ef1c ti\u1ebfp \u2014 kh\u00f4ng d\u00f9ng jQuery\n\t\t\tfunction registerHook() {\n\t\t\t\tif (window.elementorFrontend && window.elementorFrontend.hooks) {\n\t\t\t\t\t\/\/ Register only ONCE per widget ID to avoid stacking duplicate handlers\n\t\t\t\t\t\/\/ on every editor re-render. The delegator always calls the freshest init.\n\t\t\t\t\tif (!window['_orbitHooked_' + WID]) {\n\t\t\t\t\t\twindow.elementorFrontend.hooks.addAction(\n\t\t\t\t\t\t\t'frontend\/element_ready\/orbit_testimonials.default',\n\t\t\t\t\t\t\tfunction($scope) {\n\t\t\t\t\t\t\t\tif (window['_orbitInitFn_' + WID]) {\n\t\t\t\t\t\t\t\t\twindow['_orbitInitFn_' + WID]($scope);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\twindow['_orbitHooked_' + WID] = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!registerHook()) {\n\t\t\t\tif (document.readyState !== 'loading') {\n\t\t\t\t\tif (!registerHook()) initOrbitTestimonial(null);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener('DOMContentLoaded', function() {\n\t\t\t\t\t\tif (!registerHook()) initOrbitTestimonial(null);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t\t<\/script>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-085f1d5 e-flex e-con-boxed e-con e-parent\" data-id=\"085f1d5\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-6c69f57 e-con-full e-flex e-con e-child\" data-id=\"6c69f57\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-b91b73e e-con-full e-flex e-con e-child\" data-id=\"b91b73e\" data-element_type=\"container\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-99fd768 e-con-full e-flex e-con e-child\" data-id=\"99fd768\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-36af829 e-con-full e-flex e-con e-child\" data-id=\"36af829\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afc8a58 elementor-widget elementor-widget-heading\" data-id=\"afc8a58\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span>\/\/<\/span>Our Featured Projects<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1472e0 elementor-widget elementor-widget-heading\" data-id=\"d1472e0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Featured Work<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f045c5 elementor-grid-1 elementor-grid-tablet-1 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"4f045c5\" data-element_type=\"widget\" data-settings=\"{&quot;template_id&quot;:544,&quot;columns&quot;:1,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:120,&quot;sizes&quot;:[]},&quot;columns_tablet&quot;:1,&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:50,&quot;sizes&quot;:[]},&quot;_skin&quot;:&quot;post&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\">\n\t\t<style id=\"loop-544\">.elementor-544 .elementor-element.elementor-element-0ee8b6f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-card{background-color:#FFFFFF;padding:10px 10px 10px 10px;border-radius:20px;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.5);}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-graphic{--gradient-1:var( --e-global-color-primary );--gradient-2:#000000;background:linear-gradient(to bottom right, var(--gradient-1), var(--gradient-2));height:300px;}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-title{color:#0F0F0F;}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-title{color:#000000;}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-desc{color:#000000;}.elementor-544 .elementor-element.elementor-element-dc6c0c5 .ew-cs-client{color:#000000;}.elementor-544 .elementor-element.elementor-element-2defc87{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-544 .elementor-element.elementor-element-d63aad6{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-544 .elementor-element.elementor-element-b52ff6a{width:auto;max-width:auto;}.elementor-544 .elementor-element.elementor-element-b52ff6a .elementor-heading-title{font-size:0px;}.elementor-544 .elementor-element.elementor-element-34a5f50 .elementor-button{background-color:#02010100;fill:var( --e-global-color-primary );color:var( --e-global-color-primary );padding:0px 0px 0px 0px;}.elementor-544 .elementor-element.elementor-element-34a5f50{width:auto;max-width:auto;}.elementor-544 .elementor-element.elementor-element-34a5f50 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-544 .elementor-element.elementor-element-34a5f50 .elementor-button .elementor-button-content-wrapper{gap:15px;}.elementor-544 .elementor-element.elementor-element-57f40cc{width:100%;max-width:100%;padding:20px 0px 40px 0px;}.elementor-544 .elementor-element.elementor-element-b2a3a60{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:5px 25px;--row-gap:5px;--column-gap:25px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-544 .elementor-element.elementor-element-a285b04 img{width:3em;}.elementor-544 .elementor-element.elementor-element-b5e45d8 img{width:3em;}.elementor-544 .elementor-element.elementor-element-26697b0 img{width:3em;}.elementor-544 .elementor-element.elementor-element-4cd9402 img{width:3em;}.elementor-544 .elementor-element.elementor-element-8849ac6 img{width:3em;}.elementor-544 .elementor-element.elementor-element-ad8af96 img{width:3em;}.elementor-544 .elementor-element.elementor-element-d4284df img{width:3em;}.elementor-544 .elementor-element.elementor-element-fa283b0 img{width:3em;}.elementor-544 .elementor-element.elementor-element-d1450ce{width:100%;max-width:100%;text-align:right;}.elementor-544 .elementor-element.elementor-element-d1450ce img{width:34em;}@media(min-width:768px){.elementor-544 .elementor-element.elementor-element-d63aad6{--width:50%;}}@media(max-width:1024px) and (min-width:768px){.elementor-544 .elementor-element.elementor-element-d63aad6{--width:100%;}}@media(max-width:1024px){.elementor-544 .elementor-element.elementor-element-2defc87{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-544 .elementor-element.elementor-element-d63aad6{--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;}.elementor-544 .elementor-element.elementor-element-34a5f50 .elementor-button{font-size:2em;}.elementor-544 .elementor-element.elementor-element-57f40cc{padding:20px 0px 30px 0px;font-size:1.2em;}.elementor-544 .elementor-element.elementor-element-d1450ce{text-align:center;}.elementor-544 .elementor-element.elementor-element-d1450ce img{width:30em;}}@media(max-width:767px){.elementor-544 .elementor-element.elementor-element-d63aad6{--margin-top:0px;--margin-bottom:35px;--margin-left:0px;--margin-right:0px;}.elementor-544 .elementor-element.elementor-element-34a5f50 .elementor-button{font-size:1.1em;}.elementor-544 .elementor-element.elementor-element-57f40cc{font-size:1em;}.elementor-544 .elementor-element.elementor-element-b2a3a60{--gap:5px 20px;--row-gap:5px;--column-gap:20px;}.elementor-544 .elementor-element.elementor-element-d1450ce img{width:100%;}}\/* Start custom CSS for button, class: .elementor-element-34a5f50 *\/.elementor-544 .elementor-element.elementor-element-34a5f50 a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 2.5em;\n    font-weight: 700;\n}\n.elementor-544 .elementor-element.elementor-element-34a5f50 a .elementor-button-text {\n    display: flex;\n    align-items: center;\n}\n.elementor-544 .elementor-element.elementor-element-34a5f50 a .elementor-button-icon {\n    width: 35px;\n}\n.elementor-544 .elementor-element.elementor-element-34a5f50 a .elementor-button-icon svg {\n    fill: ;\n}\n\n@media screen and (max-width: 1024px) {\n    .elementor-544 .elementor-element.elementor-element-34a5f50 a .elementor-button-icon {\n        width: 30px;\n    }\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-a285b04 *\/.elementor-544 .elementor-element.elementor-element-a285b04 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-b5e45d8 *\/.elementor-544 .elementor-element.elementor-element-b5e45d8 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-26697b0 *\/.elementor-544 .elementor-element.elementor-element-26697b0 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-4cd9402 *\/.elementor-544 .elementor-element.elementor-element-4cd9402 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-8849ac6 *\/.elementor-544 .elementor-element.elementor-element-8849ac6 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-ad8af96 *\/.elementor-544 .elementor-element.elementor-element-ad8af96 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-d4284df *\/.elementor-544 .elementor-element.elementor-element-d4284df img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-fa283b0 *\/.elementor-544 .elementor-element.elementor-element-fa283b0 img {\n    filter: grayscale(1) contrast(0.8);\n    opacity: .8;\n    -webkit-transition: all .2s \n    ease;\n    transition: all .2s \n    ease;\n}\/* End custom CSS *\/\n\/* Start custom CSS for container, class: .elementor-element-b2a3a60 *\/.elementor-544 .elementor-element.elementor-element-b2a3a60 img:hover {\n    filter: unset;\n    opacity: 1;\n}\/* End custom CSS *\/\n\/* Start custom CSS for image, class: .elementor-element-d1450ce *\/.elementor-544 .elementor-element.elementor-element-d1450ce img {\n    image-rendering: -webkit-optimize-contrast; \/* Gi\u00fap \u1ea3nh bitmap r\u00f5 n\u00e9t h\u01a1n khi co gi\u00e3n *\/\n    backface-visibility: hidden;\n    -webkit-font-smoothing: antialiased;\n}\/* End custom CSS *\/<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"544\" class=\"elementor elementor-544 e-loop-item e-loop-item-3028 post-3028 case-studies type-case-studies status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-0ee8b6f e-flex e-con-boxed e-con e-parent\" data-id=\"0ee8b6f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc6c0c5 elementor-widget elementor-widget-pro_case_study_card\" data-id=\"dc6c0c5\" data-element_type=\"widget\" data-widget_type=\"pro_case_study_card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<!-- STYLES SCOPED CHO WIDGET N\u00c0Y: Trong plugin th\u1eadt, ph\u1ea7n n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0a v\u00e0o CSS file ri\u00eang. -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card {\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tborder-radius: 2rem;\n\t\t\t\tborder: 1px solid #f1f5f9;\n\t\t\t\tpadding: 0.75rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: all 500ms ease-out;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 20rem;\n\t\t\t\tborder-radius: 1.5rem;\n\t\t\t\tbackground: linear-gradient(to bottom right, #3b82f6, #4f46e5); \/* Overwritten by controls *\/\n\t\t\t\toverflow: hidden;\n\t\t\t\tmargin-bottom: 1.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-overlay {\n\t\t\t\tposition: absolute; inset: 0;\n\t\t\t\tbackground: radial-gradient(circle at top right, white, transparent 70%);\n\t\t\t\topacity: 0.2; mix-blend-mode: overlay; pointer-events: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-blur {\n\t\t\t\tposition: absolute; bottom: -2.5rem; right: -2.5rem;\n\t\t\t\twidth: 10rem; height: 10rem; background: rgba(255,255,255,0.1);\n\t\t\t\tborder-radius: 50%; filter: blur(24px); pointer-events: none;\n\t\t\t}\n\t\t\t\/* Typography & Content Structure *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-content { padding: 0 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-client { font-size: 0.875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: #475569;}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric { display: flex; align-items: center; gap: 0.375rem; color: #4f46e5; background: #eef2ff; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 600; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric svg { width: 1.125rem; height: 1.125rem; fill: currentColor; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.75rem; color: #0f172a; transition: color 300ms ease; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-desc { color: #475569; line-height: 1.625; margin-bottom: 1.5rem; flex: 1; }\n\t\t\t\n\t\t\t\/* Footer Tags *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #f1f5f9; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tag { font-size: 0.75rem; font-weight: 500; color: #475569; background: #f1f5f9; padding: 0.25rem 0.625rem; border-radius: 0.375rem; }\n\t\t\t\n\t\t\t\/* View Project Button Overlay *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-overlay { position: absolute; inset: 0; z-index: 30; background: transparent; transition: background-color 800ms cubic-bezier(0.25, 1, 0.5, 1); display: flex; align-items: center; justify-content: center; pointer-events: none; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-overlay { background: rgba(15, 23, 42, 0.2); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-btn { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(4px); color: #0f172a; padding: 0.75rem 1.5rem; border-radius: 9999px; font-weight: 600; font-size: 0.875rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); display: flex; align-items: center; gap: 0.5rem; opacity: 0; transform: translateY(1rem); transition: all 500ms ease-out; transition-delay: 150ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-btn { opacity: 1; transform: translateY(0); }\n\n\t\t\t\/* DOLLY ZOOM MOCKUP PARALLAX CSS *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mockup-wrapper { position: relative; width: 90%; max-width: 24rem; margin: 0 auto; transform: translateY(3rem); transform-origin: bottom; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); z-index: 10; display: flex; align-items: flex-end; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mockup-wrapper { transform: translateY(-0.5rem) scale(0.85); }\n\t\t\t\n\t\t\t\/* Laptop *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop { position: relative; width: 85%; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop { transform: translateY(-0.5rem); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-lid { background: #121212; padding: 0.625rem; border-radius: 1.5rem 1.5rem 0 0; position: relative; border-left: 2px solid #2a2a2a; border-right: 2px solid #2a2a2a; border-top: 2px solid #2a2a2a; box-shadow: 0 0 0 1px rgba(0,0,0,0.5); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-screen { background: #0f172a; aspect-ratio: 16\/10; border-radius: 0.5rem; overflow: hidden; position: relative; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-base { position: relative; height: 0.625rem; background: linear-gradient(to bottom, #d9d9d9, #999999); width: 116%; margin-left: -8%; border-radius: 0 0 0.75rem 0.75rem; border-top: 1px solid rgba(255,255,255,0.5); box-shadow: 0 20px 40px rgba(0,0,0,0.5); display: flex; justify-content: center; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-trackpad { width: 20%; height: 0.25rem; background: #b3b3b3; border-radius: 0 0 0.375rem 0.375rem; }\n\t\t\t\n\t\t\t\/* Mobile *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile { position: absolute; bottom: -1.5rem; right: -0.5rem; width: 35%; z-index: 20; border-radius: 1.75rem; box-shadow: 0 15px 30px rgba(0,0,0,0.5); transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1) 75ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile { transform: translateY(-2rem) scale(1.1); box-shadow: 0 30px 60px rgba(0,0,0,0.7); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-frame { background: linear-gradient(to bottom right, #e4e4e7, #a1a1aa, #e4e4e7); padding: 2px; border-radius: 1.75rem; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-inner { background: #0a0a0a; padding: 0.375rem; border-radius: 1.65rem; position: relative; overflow: hidden; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-screen { background: #0f172a; aspect-ratio: 9\/19; border-radius: 1.25rem; overflow: hidden; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-notch { position: absolute; top: 0.5rem; left: 50%; transform: translateX(-50%); width: 35%; height: 0.625rem; background: black; border-radius: 9999px; z-index: 20; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-home { position: absolute; bottom: 0.375rem; left: 50%; transform: translateX(-50%); width: 33%; height: 0.25rem; background: rgba(255,255,255,0.9); mix-blend-mode: screen; border-radius: 9999px; z-index: 20; }\n\t\t\t\n\t\t\t\/* Images & Glare *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-img { width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0.95; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop-screen .ew-cs-img { opacity: 1; transform: scale(1.05); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile-screen .ew-cs-img { opacity: 1; transform: scale(1.1); }\n\t\t\t\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-glare { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 25%, transparent 30%); background-size: 200% 100%; pointer-events: none; z-index: 10; }\n\t\t\t@keyframes glare-sweep-dc6c0c5 { 0% { background-position: 200% 0; } 100% { background-position: -100% 0; } }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-glare { animation: glare-sweep-dc6c0c5 1.5s ease-in-out forwards; }\n\t\t\t\n\t\t\t\/* Category Badge *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,0.2); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.3); color: white; font-size: 0.75rem; font-weight: 600; padding: 0.375rem 0.75rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.05em; z-index: 20; }\n\t\t<\/style>\n\n\t\t<a href=\"#\" class=\"ew-cs-card\">\n\t\t\t\n\t\t\t<!-- Graphic Header -->\n\t\t\t<div class=\"ew-cs-graphic\">\n\t\t\t\t<div class=\"ew-cs-graphic-overlay\"><\/div>\n\t\t\t\t<div class=\"ew-cs-graphic-blur\"><\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-badge\">Fintech<\/div>\n\t\t\t\t\n\t\t\t\t<!-- Dolly Zoom Mockup Group -->\n\t\t\t\t<div class=\"ew-cs-mockup-wrapper\">\n\t\t\t\t\t<!-- Laptop -->\n\t\t\t\t\t<div class=\"ew-cs-laptop\">\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-lid\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-camera\"><\/div>\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/foyuan-amulet-desktop.png\" alt=\"Laptop Screenshot\" class=\"ew-cs-img\" data-no-translation=\"\" data-no-auto-translation=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-base\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-trackpad\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- Mobile -->\n\t\t\t\t\t<div class=\"ew-cs-mobile\">\n\t\t\t\t\t\t<div class=\"ew-cs-mobile-frame\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-inner\">\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-notch\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/foyuan-amulet-mobile.png\" alt=\"Mobile Screenshot\" class=\"ew-cs-img\" data-no-translation=\"\" data-no-auto-translation=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-home\"><\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Overlay Button -->\n\t\t\t\t<div class=\"ew-cs-view-overlay\">\n\t\t\t\t\t<div class=\"ew-cs-view-btn\">\n\t\t\t\t\t\tView Project\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<!-- Content Area -->\n\t\t\t<div class=\"ew-cs-content\">\n\t\t\t\t<div class=\"ew-cs-header\">\n\t\t\t\t\t<span  class=\"ew-cs-client\">\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<h3  class=\"ew-cs-title\">\n\t\t\t\t\tFoyuan Amulet\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t<div  class=\"ew-cs-desc\">\n\t\t\t\t\tD\u1ef1 \u00e1n Foyuan Amulet \u0111\u01b0\u1ee3c b\u1eaft \u0111\u1ea7u v\u1edbi y\u00eau c\u1ea7u x\u00e2y d\u1ef1ng m\u1ed9t n\u1ec1n t\u1ea3ng tr\u1ef1c tuy\u1ebfn chuy\u00ean nghi\u1ec7p cho c\u00e1c s\u1ea3n ph\u1ea9m t\u00e2m linh v\u00e0 h\u1ed9 th\u00e2n. Ch\u00fang t\u00f4i \u0111\u00e3 ti\u1ebfp c\u1eadn th\u1eed th\u00e1ch b\u1eb1ng s\u1ef1 t\u1ec9 m\u1ec9 trong thi\u1ebft k\u1ebf v\u00e0 t\u1ed1i \u01b0u h\u00f3a tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng, Mang \u0111\u1ebfn m\u1ed9t kh\u00f4ng gian mua s\u1eafm an t\u00e2m v\u00e0 trang tr\u1ecdng cho kh\u00e1ch h\u00e0ng, c\u00f3 th\u1ec3 truy c\u1eadp t\u1ea1i https:\/\/foyuan-amulet.com\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Footer Tags -->\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-footer\">\n\t\t\t\t\t<div class=\"ew-cs-tags\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ew-cs-tag elementor-repeater-item-41bfe3f\">\n\t\t\t\t\t\t\t\tAWS\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"ew-cs-arrow\" style=\"width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: center; color: #94a3b8; transition: all 300ms ease;\">\n\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/a>\n\n\t\t<!-- JavaScript Snippet required to handle arrow hover strictly bounded via CSS wrapper -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-arrow { background-color: #4f46e5; border-color: #4f46e5; color: white; transform: rotate(-45deg); }\n\t\t<\/style>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-2defc87 e-flex e-con-boxed e-con e-parent\" data-id=\"2defc87\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-d63aad6 e-con-full e-flex e-con e-child\" data-id=\"d63aad6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b52ff6a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b52ff6a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Foyuan Amulet<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34a5f50 elementor-widget__width-auto elementor-widget elementor-widget-button\" data-id=\"34a5f50\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/du-an\/foyuan-amulet\/\" aria-label=\"d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Layer_1\" x=\"0px\" y=\"0px\" viewbox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512; fill: #00308f\" xml:space=\"preserve\"><g id=\"XMLID_5_\">\t<path id=\"XMLID_9_\" d=\"M455.3,455.3H56.7V56.7H256V0H56.7C25.4,0,0,25.4,0,56.7v398.7C0,486.6,25.4,512,56.7,512h398.7  c31.3,0,56.7-25.4,56.7-56.7V256h-56.7C455.3,256,455.3,455.3,455.3,455.3z M312.7,0v56.7h102.6L134.8,337.1l40.1,40.1L455.3,96.7  v102.6H512V0H312.7z\"><\/path><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Foyuan Amulet<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57f40cc elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"57f40cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tD\u1ef1 \u00e1n Foyuan Amulet \u0111\u01b0\u1ee3c b\u1eaft \u0111\u1ea7u v\u1edbi y\u00eau c\u1ea7u x\u00e2y d\u1ef1ng m\u1ed9t n\u1ec1n t\u1ea3ng tr\u1ef1c tuy\u1ebfn chuy\u00ean nghi\u1ec7p cho c\u00e1c s\u1ea3n ph\u1ea9m t\u00e2m linh v\u00e0 h\u1ed9 th\u00e2n. Ch\u00fang t\u00f4i \u0111\u00e3 ti\u1ebfp c\u1eadn th\u1eed th\u00e1ch b\u1eb1ng s\u1ef1 t\u1ec9 m\u1ec9 trong thi\u1ebft k\u1ebf v\u00e0 t\u1ed1i \u01b0u h\u00f3a tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng, Mang \u0111\u1ebfn m\u1ed9t kh\u00f4ng gian mua s\u1eafm an t\u00e2m v\u00e0 trang tr\u1ecdng cho kh\u00e1ch h\u00e0ng, c\u00f3 th\u1ec3 truy c\u1eadp t\u1ea1i https:\/\/foyuan-amulet.com\t\t\t\t\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-b2a3a60 e-con-full e-flex e-con e-child\" data-id=\"b2a3a60\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a285b04 elementor-widget elementor-widget-image\" data-id=\"a285b04\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"84\" height=\"114\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/html-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2744\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e45d8 elementor-widget elementor-widget-image\" data-id=\"b5e45d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/css-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2750\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26697b0 elementor-widget elementor-widget-image\" data-id=\"26697b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/js-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2754\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cd9402 elementor-widget elementor-widget-image\" data-id=\"4cd9402\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/wordpress-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2746\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8849ac6 elementor-widget elementor-widget-image\" data-id=\"8849ac6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/php-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2748\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad8af96 elementor-widget elementor-widget-image\" data-id=\"ad8af96\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/python-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2747\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4284df elementor-widget elementor-widget-image\" data-id=\"d4284df\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/woocommerce-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2749\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa283b0 elementor-widget elementor-widget-image\" data-id=\"fa283b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/elementor-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2753\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1450ce elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"d1450ce\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.wucode.net\/en\/du-an\/foyuan-amulet\/\" aria-label=\"h\u00ecnh \u1ea3nh d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"430\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/foyuan-amulet-desktop.png\" class=\"attachment-medium_large size-medium_large wp-image-4238\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"544\" class=\"elementor elementor-544 e-loop-item e-loop-item-2525 post-2525 case-studies type-case-studies status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-0ee8b6f e-flex e-con-boxed e-con e-parent\" data-id=\"0ee8b6f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc6c0c5 elementor-widget elementor-widget-pro_case_study_card\" data-id=\"dc6c0c5\" data-element_type=\"widget\" data-widget_type=\"pro_case_study_card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<!-- STYLES SCOPED CHO WIDGET N\u00c0Y: Trong plugin th\u1eadt, ph\u1ea7n n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0a v\u00e0o CSS file ri\u00eang. -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card {\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tborder-radius: 2rem;\n\t\t\t\tborder: 1px solid #f1f5f9;\n\t\t\t\tpadding: 0.75rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: all 500ms ease-out;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 20rem;\n\t\t\t\tborder-radius: 1.5rem;\n\t\t\t\tbackground: linear-gradient(to bottom right, #3b82f6, #4f46e5); \/* Overwritten by controls *\/\n\t\t\t\toverflow: hidden;\n\t\t\t\tmargin-bottom: 1.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-overlay {\n\t\t\t\tposition: absolute; inset: 0;\n\t\t\t\tbackground: radial-gradient(circle at top right, white, transparent 70%);\n\t\t\t\topacity: 0.2; mix-blend-mode: overlay; pointer-events: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-blur {\n\t\t\t\tposition: absolute; bottom: -2.5rem; right: -2.5rem;\n\t\t\t\twidth: 10rem; height: 10rem; background: rgba(255,255,255,0.1);\n\t\t\t\tborder-radius: 50%; filter: blur(24px); pointer-events: none;\n\t\t\t}\n\t\t\t\/* Typography & Content Structure *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-content { padding: 0 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-client { font-size: 0.875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: #475569;}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric { display: flex; align-items: center; gap: 0.375rem; color: #4f46e5; background: #eef2ff; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 600; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric svg { width: 1.125rem; height: 1.125rem; fill: currentColor; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.75rem; color: #0f172a; transition: color 300ms ease; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-desc { color: #475569; line-height: 1.625; margin-bottom: 1.5rem; flex: 1; }\n\t\t\t\n\t\t\t\/* Footer Tags *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #f1f5f9; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tag { font-size: 0.75rem; font-weight: 500; color: #475569; background: #f1f5f9; padding: 0.25rem 0.625rem; border-radius: 0.375rem; }\n\t\t\t\n\t\t\t\/* View Project Button Overlay *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-overlay { position: absolute; inset: 0; z-index: 30; background: transparent; transition: background-color 800ms cubic-bezier(0.25, 1, 0.5, 1); display: flex; align-items: center; justify-content: center; pointer-events: none; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-overlay { background: rgba(15, 23, 42, 0.2); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-btn { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(4px); color: #0f172a; padding: 0.75rem 1.5rem; border-radius: 9999px; font-weight: 600; font-size: 0.875rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); display: flex; align-items: center; gap: 0.5rem; opacity: 0; transform: translateY(1rem); transition: all 500ms ease-out; transition-delay: 150ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-btn { opacity: 1; transform: translateY(0); }\n\n\t\t\t\/* DOLLY ZOOM MOCKUP PARALLAX CSS *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mockup-wrapper { position: relative; width: 90%; max-width: 24rem; margin: 0 auto; transform: translateY(3rem); transform-origin: bottom; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); z-index: 10; display: flex; align-items: flex-end; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mockup-wrapper { transform: translateY(-0.5rem) scale(0.85); }\n\t\t\t\n\t\t\t\/* Laptop *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop { position: relative; width: 85%; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop { transform: translateY(-0.5rem); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-lid { background: #121212; padding: 0.625rem; border-radius: 1.5rem 1.5rem 0 0; position: relative; border-left: 2px solid #2a2a2a; border-right: 2px solid #2a2a2a; border-top: 2px solid #2a2a2a; box-shadow: 0 0 0 1px rgba(0,0,0,0.5); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-screen { background: #0f172a; aspect-ratio: 16\/10; border-radius: 0.5rem; overflow: hidden; position: relative; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-base { position: relative; height: 0.625rem; background: linear-gradient(to bottom, #d9d9d9, #999999); width: 116%; margin-left: -8%; border-radius: 0 0 0.75rem 0.75rem; border-top: 1px solid rgba(255,255,255,0.5); box-shadow: 0 20px 40px rgba(0,0,0,0.5); display: flex; justify-content: center; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-trackpad { width: 20%; height: 0.25rem; background: #b3b3b3; border-radius: 0 0 0.375rem 0.375rem; }\n\t\t\t\n\t\t\t\/* Mobile *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile { position: absolute; bottom: -1.5rem; right: -0.5rem; width: 35%; z-index: 20; border-radius: 1.75rem; box-shadow: 0 15px 30px rgba(0,0,0,0.5); transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1) 75ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile { transform: translateY(-2rem) scale(1.1); box-shadow: 0 30px 60px rgba(0,0,0,0.7); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-frame { background: linear-gradient(to bottom right, #e4e4e7, #a1a1aa, #e4e4e7); padding: 2px; border-radius: 1.75rem; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-inner { background: #0a0a0a; padding: 0.375rem; border-radius: 1.65rem; position: relative; overflow: hidden; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-screen { background: #0f172a; aspect-ratio: 9\/19; border-radius: 1.25rem; overflow: hidden; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-notch { position: absolute; top: 0.5rem; left: 50%; transform: translateX(-50%); width: 35%; height: 0.625rem; background: black; border-radius: 9999px; z-index: 20; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-home { position: absolute; bottom: 0.375rem; left: 50%; transform: translateX(-50%); width: 33%; height: 0.25rem; background: rgba(255,255,255,0.9); mix-blend-mode: screen; border-radius: 9999px; z-index: 20; }\n\t\t\t\n\t\t\t\/* Images & Glare *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-img { width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0.95; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop-screen .ew-cs-img { opacity: 1; transform: scale(1.05); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile-screen .ew-cs-img { opacity: 1; transform: scale(1.1); }\n\t\t\t\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-glare { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 25%, transparent 30%); background-size: 200% 100%; pointer-events: none; z-index: 10; }\n\t\t\t@keyframes glare-sweep-dc6c0c5 { 0% { background-position: 200% 0; } 100% { background-position: -100% 0; } }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-glare { animation: glare-sweep-dc6c0c5 1.5s ease-in-out forwards; }\n\t\t\t\n\t\t\t\/* Category Badge *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,0.2); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.3); color: white; font-size: 0.75rem; font-weight: 600; padding: 0.375rem 0.75rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.05em; z-index: 20; }\n\t\t<\/style>\n\n\t\t<a href=\"#\" class=\"ew-cs-card\">\n\t\t\t\n\t\t\t<!-- Graphic Header -->\n\t\t\t<div class=\"ew-cs-graphic\">\n\t\t\t\t<div class=\"ew-cs-graphic-overlay\"><\/div>\n\t\t\t\t<div class=\"ew-cs-graphic-blur\"><\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-badge\">Fintech<\/div>\n\t\t\t\t\n\t\t\t\t<!-- Dolly Zoom Mockup Group -->\n\t\t\t\t<div class=\"ew-cs-mockup-wrapper\">\n\t\t\t\t\t<!-- Laptop -->\n\t\t\t\t\t<div class=\"ew-cs-laptop\">\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-lid\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-camera\"><\/div>\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-seirbeautyschool.png\" alt=\"Laptop Screenshot\" class=\"ew-cs-img\" data-no-translation=\"\" data-no-auto-translation=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-base\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-trackpad\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- Mobile -->\n\t\t\t\t\t<div class=\"ew-cs-mobile\">\n\t\t\t\t\t\t<div class=\"ew-cs-mobile-frame\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-inner\">\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-notch\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-home\"><\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Overlay Button -->\n\t\t\t\t<div class=\"ew-cs-view-overlay\">\n\t\t\t\t\t<div class=\"ew-cs-view-btn\">\n\t\t\t\t\t\tView Project\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<!-- Content Area -->\n\t\t\t<div class=\"ew-cs-content\">\n\t\t\t\t<div class=\"ew-cs-header\">\n\t\t\t\t\t<span  class=\"ew-cs-client\">\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<h3  class=\"ew-cs-title\">\n\t\t\t\t\tSeirbeautyschool\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t<div  class=\"ew-cs-desc\">\n\t\t\t\t\tSamantha b\u1eaft \u0111\u1ea7u d\u1ef1 \u00e1n n\u00e0y v\u1edbi k\u1ef9 n\u0103ng k\u1ef9 thu\u1eadt h\u1ea1n ch\u1ebf v\u00e0 ban \u0111\u1ea7u ch\u1ec9 cung c\u1ea5p cho ch\u00fang t\u00f4i r\u1ea5t \u00edt th\u00f4ng tin. D\u1ef1a tr\u00ean chuy\u00ean m\u00f4n c\u1ee7a m\u00ecnh, ch\u00fang t\u00f4i \u0111\u00e3 ti\u1ebfp c\u1eadn th\u1eed th\u00e1ch v\u1edbi s\u1ef1 ki\u00ean nh\u1eabn v\u00e0 c\u1ea7n c\u00f9, thu th\u1eadp th\u00f4ng tin c\u1ea7n thi\u1ebft m\u1ed9t c\u00e1ch c\u00f3 h\u1ec7 th\u1ed1ng. N\u1ed7 l\u1ef1c n\u00e0y \u0111\u00e3 d\u1eabn \u0111\u1ebfn vi\u1ec7c ho\u00e0n th\u00e0nh th\u00e0nh c\u00f4ng d\u1ef1 \u00e1n, t\u1ea1o ra trang web uy t\u00edn \"H\u1ecdc vi\u1ec7n Th\u1ea9m m\u1ef9 \u0110o\u1ea1t Gi\u1ea3i th\u01b0\u1edfng | Tr\u01b0\u1eddng Th\u1ea9m m\u1ef9 SEIR | \u00dac\", c\u00f3 th\u1ec3 truy c\u1eadp t\u1ea1i https:\/\/seirbeautyschool.com\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Footer Tags -->\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-footer\">\n\t\t\t\t\t<div class=\"ew-cs-tags\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ew-cs-tag elementor-repeater-item-41bfe3f\">\n\t\t\t\t\t\t\t\tAWS\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"ew-cs-arrow\" style=\"width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: center; color: #94a3b8; transition: all 300ms ease;\">\n\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/a>\n\n\t\t<!-- JavaScript Snippet required to handle arrow hover strictly bounded via CSS wrapper -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-arrow { background-color: #4f46e5; border-color: #4f46e5; color: white; transform: rotate(-45deg); }\n\t\t<\/style>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-2defc87 e-flex e-con-boxed e-con e-parent\" data-id=\"2defc87\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-d63aad6 e-con-full e-flex e-con e-child\" data-id=\"d63aad6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b52ff6a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b52ff6a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Seirbeautyschool<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34a5f50 elementor-widget__width-auto elementor-widget elementor-widget-button\" data-id=\"34a5f50\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/du-an\/2525-2\/\" aria-label=\"d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Layer_1\" x=\"0px\" y=\"0px\" viewbox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512; fill: #00308f\" xml:space=\"preserve\"><g id=\"XMLID_5_\">\t<path id=\"XMLID_9_\" d=\"M455.3,455.3H56.7V56.7H256V0H56.7C25.4,0,0,25.4,0,56.7v398.7C0,486.6,25.4,512,56.7,512h398.7  c31.3,0,56.7-25.4,56.7-56.7V256h-56.7C455.3,256,455.3,455.3,455.3,455.3z M312.7,0v56.7h102.6L134.8,337.1l40.1,40.1L455.3,96.7  v102.6H512V0H312.7z\"><\/path><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Seirbeautyschool<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57f40cc elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"57f40cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tSamantha b\u1eaft \u0111\u1ea7u d\u1ef1 \u00e1n n\u00e0y v\u1edbi k\u1ef9 n\u0103ng k\u1ef9 thu\u1eadt h\u1ea1n ch\u1ebf v\u00e0 ban \u0111\u1ea7u ch\u1ec9 cung c\u1ea5p cho ch\u00fang t\u00f4i r\u1ea5t \u00edt th\u00f4ng tin. D\u1ef1a tr\u00ean chuy\u00ean m\u00f4n c\u1ee7a m\u00ecnh, ch\u00fang t\u00f4i \u0111\u00e3 ti\u1ebfp c\u1eadn th\u1eed th\u00e1ch v\u1edbi s\u1ef1 ki\u00ean nh\u1eabn v\u00e0 c\u1ea7n c\u00f9, thu th\u1eadp th\u00f4ng tin c\u1ea7n thi\u1ebft m\u1ed9t c\u00e1ch c\u00f3 h\u1ec7 th\u1ed1ng. N\u1ed7 l\u1ef1c n\u00e0y \u0111\u00e3 d\u1eabn \u0111\u1ebfn vi\u1ec7c ho\u00e0n th\u00e0nh th\u00e0nh c\u00f4ng d\u1ef1 \u00e1n, t\u1ea1o ra trang web uy t\u00edn &#8220;H\u1ecdc vi\u1ec7n Th\u1ea9m m\u1ef9 \u0110o\u1ea1t Gi\u1ea3i th\u01b0\u1edfng | Tr\u01b0\u1eddng Th\u1ea9m m\u1ef9 SEIR | \u00dac&#8221;, c\u00f3 th\u1ec3 truy c\u1eadp t\u1ea1i https:\/\/seirbeautyschool.com\t\t\t\t\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-b2a3a60 e-con-full e-flex e-con e-child\" data-id=\"b2a3a60\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a285b04 elementor-widget elementor-widget-image\" data-id=\"a285b04\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"84\" height=\"114\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/html-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2744\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e45d8 elementor-widget elementor-widget-image\" data-id=\"b5e45d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/css-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2750\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26697b0 elementor-widget elementor-widget-image\" data-id=\"26697b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/js-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2754\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cd9402 elementor-widget elementor-widget-image\" data-id=\"4cd9402\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/wordpress-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2746\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8849ac6 elementor-widget elementor-widget-image\" data-id=\"8849ac6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/php-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2748\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad8af96 elementor-widget elementor-widget-image\" data-id=\"ad8af96\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/python-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2747\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4284df elementor-widget elementor-widget-image\" data-id=\"d4284df\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/woocommerce-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2749\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa283b0 elementor-widget elementor-widget-image\" data-id=\"fa283b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/elementor-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2753\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1450ce elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"d1450ce\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.wucode.net\/en\/du-an\/2525-2\/\" aria-label=\"h\u00ecnh \u1ea3nh d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"538\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-seirbeautyschool.png\" class=\"attachment-medium_large size-medium_large wp-image-2512\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"544\" class=\"elementor elementor-544 e-loop-item e-loop-item-2506 post-2506 case-studies type-case-studies status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-0ee8b6f e-flex e-con-boxed e-con e-parent\" data-id=\"0ee8b6f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc6c0c5 elementor-widget elementor-widget-pro_case_study_card\" data-id=\"dc6c0c5\" data-element_type=\"widget\" data-widget_type=\"pro_case_study_card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<!-- STYLES SCOPED CHO WIDGET N\u00c0Y: Trong plugin th\u1eadt, ph\u1ea7n n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0a v\u00e0o CSS file ri\u00eang. -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card {\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tborder-radius: 2rem;\n\t\t\t\tborder: 1px solid #f1f5f9;\n\t\t\t\tpadding: 0.75rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: all 500ms ease-out;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 20rem;\n\t\t\t\tborder-radius: 1.5rem;\n\t\t\t\tbackground: linear-gradient(to bottom right, #3b82f6, #4f46e5); \/* Overwritten by controls *\/\n\t\t\t\toverflow: hidden;\n\t\t\t\tmargin-bottom: 1.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-overlay {\n\t\t\t\tposition: absolute; inset: 0;\n\t\t\t\tbackground: radial-gradient(circle at top right, white, transparent 70%);\n\t\t\t\topacity: 0.2; mix-blend-mode: overlay; pointer-events: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-blur {\n\t\t\t\tposition: absolute; bottom: -2.5rem; right: -2.5rem;\n\t\t\t\twidth: 10rem; height: 10rem; background: rgba(255,255,255,0.1);\n\t\t\t\tborder-radius: 50%; filter: blur(24px); pointer-events: none;\n\t\t\t}\n\t\t\t\/* Typography & Content Structure *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-content { padding: 0 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-client { font-size: 0.875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: #475569;}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric { display: flex; align-items: center; gap: 0.375rem; color: #4f46e5; background: #eef2ff; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 600; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric svg { width: 1.125rem; height: 1.125rem; fill: currentColor; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.75rem; color: #0f172a; transition: color 300ms ease; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-desc { color: #475569; line-height: 1.625; margin-bottom: 1.5rem; flex: 1; }\n\t\t\t\n\t\t\t\/* Footer Tags *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #f1f5f9; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tag { font-size: 0.75rem; font-weight: 500; color: #475569; background: #f1f5f9; padding: 0.25rem 0.625rem; border-radius: 0.375rem; }\n\t\t\t\n\t\t\t\/* View Project Button Overlay *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-overlay { position: absolute; inset: 0; z-index: 30; background: transparent; transition: background-color 800ms cubic-bezier(0.25, 1, 0.5, 1); display: flex; align-items: center; justify-content: center; pointer-events: none; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-overlay { background: rgba(15, 23, 42, 0.2); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-btn { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(4px); color: #0f172a; padding: 0.75rem 1.5rem; border-radius: 9999px; font-weight: 600; font-size: 0.875rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); display: flex; align-items: center; gap: 0.5rem; opacity: 0; transform: translateY(1rem); transition: all 500ms ease-out; transition-delay: 150ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-btn { opacity: 1; transform: translateY(0); }\n\n\t\t\t\/* DOLLY ZOOM MOCKUP PARALLAX CSS *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mockup-wrapper { position: relative; width: 90%; max-width: 24rem; margin: 0 auto; transform: translateY(3rem); transform-origin: bottom; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); z-index: 10; display: flex; align-items: flex-end; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mockup-wrapper { transform: translateY(-0.5rem) scale(0.85); }\n\t\t\t\n\t\t\t\/* Laptop *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop { position: relative; width: 85%; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop { transform: translateY(-0.5rem); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-lid { background: #121212; padding: 0.625rem; border-radius: 1.5rem 1.5rem 0 0; position: relative; border-left: 2px solid #2a2a2a; border-right: 2px solid #2a2a2a; border-top: 2px solid #2a2a2a; box-shadow: 0 0 0 1px rgba(0,0,0,0.5); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-screen { background: #0f172a; aspect-ratio: 16\/10; border-radius: 0.5rem; overflow: hidden; position: relative; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-base { position: relative; height: 0.625rem; background: linear-gradient(to bottom, #d9d9d9, #999999); width: 116%; margin-left: -8%; border-radius: 0 0 0.75rem 0.75rem; border-top: 1px solid rgba(255,255,255,0.5); box-shadow: 0 20px 40px rgba(0,0,0,0.5); display: flex; justify-content: center; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-trackpad { width: 20%; height: 0.25rem; background: #b3b3b3; border-radius: 0 0 0.375rem 0.375rem; }\n\t\t\t\n\t\t\t\/* Mobile *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile { position: absolute; bottom: -1.5rem; right: -0.5rem; width: 35%; z-index: 20; border-radius: 1.75rem; box-shadow: 0 15px 30px rgba(0,0,0,0.5); transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1) 75ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile { transform: translateY(-2rem) scale(1.1); box-shadow: 0 30px 60px rgba(0,0,0,0.7); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-frame { background: linear-gradient(to bottom right, #e4e4e7, #a1a1aa, #e4e4e7); padding: 2px; border-radius: 1.75rem; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-inner { background: #0a0a0a; padding: 0.375rem; border-radius: 1.65rem; position: relative; overflow: hidden; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-screen { background: #0f172a; aspect-ratio: 9\/19; border-radius: 1.25rem; overflow: hidden; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-notch { position: absolute; top: 0.5rem; left: 50%; transform: translateX(-50%); width: 35%; height: 0.625rem; background: black; border-radius: 9999px; z-index: 20; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-home { position: absolute; bottom: 0.375rem; left: 50%; transform: translateX(-50%); width: 33%; height: 0.25rem; background: rgba(255,255,255,0.9); mix-blend-mode: screen; border-radius: 9999px; z-index: 20; }\n\t\t\t\n\t\t\t\/* Images & Glare *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-img { width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0.95; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop-screen .ew-cs-img { opacity: 1; transform: scale(1.05); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile-screen .ew-cs-img { opacity: 1; transform: scale(1.1); }\n\t\t\t\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-glare { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 25%, transparent 30%); background-size: 200% 100%; pointer-events: none; z-index: 10; }\n\t\t\t@keyframes glare-sweep-dc6c0c5 { 0% { background-position: 200% 0; } 100% { background-position: -100% 0; } }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-glare { animation: glare-sweep-dc6c0c5 1.5s ease-in-out forwards; }\n\t\t\t\n\t\t\t\/* Category Badge *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,0.2); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.3); color: white; font-size: 0.75rem; font-weight: 600; padding: 0.375rem 0.75rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.05em; z-index: 20; }\n\t\t<\/style>\n\n\t\t<a href=\"#\" class=\"ew-cs-card\">\n\t\t\t\n\t\t\t<!-- Graphic Header -->\n\t\t\t<div class=\"ew-cs-graphic\">\n\t\t\t\t<div class=\"ew-cs-graphic-overlay\"><\/div>\n\t\t\t\t<div class=\"ew-cs-graphic-blur\"><\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-badge\">Fintech<\/div>\n\t\t\t\t\n\t\t\t\t<!-- Dolly Zoom Mockup Group -->\n\t\t\t\t<div class=\"ew-cs-mockup-wrapper\">\n\t\t\t\t\t<!-- Laptop -->\n\t\t\t\t\t<div class=\"ew-cs-laptop\">\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-lid\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-camera\"><\/div>\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-colourstyle.png\" alt=\"Laptop Screenshot\" class=\"ew-cs-img\" data-no-translation=\"\" data-no-auto-translation=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-base\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-trackpad\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- Mobile -->\n\t\t\t\t\t<div class=\"ew-cs-mobile\">\n\t\t\t\t\t\t<div class=\"ew-cs-mobile-frame\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-inner\">\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-notch\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-home\"><\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Overlay Button -->\n\t\t\t\t<div class=\"ew-cs-view-overlay\">\n\t\t\t\t\t<div class=\"ew-cs-view-btn\">\n\t\t\t\t\t\tView Project\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<!-- Content Area -->\n\t\t\t<div class=\"ew-cs-content\">\n\t\t\t\t<div class=\"ew-cs-header\">\n\t\t\t\t\t<span  class=\"ew-cs-client\">\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<h3  class=\"ew-cs-title\">\n\t\t\t\t\tColourstyle\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t<div  class=\"ew-cs-desc\">\n\t\t\t\t\tT\u1eeb giao di\u1ec7n WordPress t\u00f9y ch\u1ec9nh kh\u00f4ng d\u00f9ng theme c\u00f3 s\u1eb5n \u0111\u1ebfn c\u00f4ng c\u1ee5 t\u00ednh to\u00e1n t\u00e0i ch\u00ednh th\u00f4ng minh, https:\/\/www.colourstyle.com.hk l\u00e0 minh ch\u1ee9ng cho s\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa th\u1ea9m m\u1ef9 th\u1ee7 c\u00f4ng v\u00e0 hi\u1ec7u su\u1ea5t k\u1ef9 thu\u1eadt t\u1ed1i \u01b0u.\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Footer Tags -->\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-footer\">\n\t\t\t\t\t<div class=\"ew-cs-tags\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ew-cs-tag elementor-repeater-item-41bfe3f\">\n\t\t\t\t\t\t\t\tAWS\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"ew-cs-arrow\" style=\"width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: center; color: #94a3b8; transition: all 300ms ease;\">\n\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/a>\n\n\t\t<!-- JavaScript Snippet required to handle arrow hover strictly bounded via CSS wrapper -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-arrow { background-color: #4f46e5; border-color: #4f46e5; color: white; transform: rotate(-45deg); }\n\t\t<\/style>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-2defc87 e-flex e-con-boxed e-con e-parent\" data-id=\"2defc87\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-d63aad6 e-con-full e-flex e-con e-child\" data-id=\"d63aad6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b52ff6a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b52ff6a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Colourstyle<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34a5f50 elementor-widget__width-auto elementor-widget elementor-widget-button\" data-id=\"34a5f50\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/du-an\/colour-style-enterprise-limited\/\" aria-label=\"d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Layer_1\" x=\"0px\" y=\"0px\" viewbox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512; fill: #00308f\" xml:space=\"preserve\"><g id=\"XMLID_5_\">\t<path id=\"XMLID_9_\" d=\"M455.3,455.3H56.7V56.7H256V0H56.7C25.4,0,0,25.4,0,56.7v398.7C0,486.6,25.4,512,56.7,512h398.7  c31.3,0,56.7-25.4,56.7-56.7V256h-56.7C455.3,256,455.3,455.3,455.3,455.3z M312.7,0v56.7h102.6L134.8,337.1l40.1,40.1L455.3,96.7  v102.6H512V0H312.7z\"><\/path><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Colourstyle<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57f40cc elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"57f40cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tT\u1eeb giao di\u1ec7n WordPress t\u00f9y ch\u1ec9nh kh\u00f4ng d\u00f9ng theme c\u00f3 s\u1eb5n \u0111\u1ebfn c\u00f4ng c\u1ee5 t\u00ednh to\u00e1n t\u00e0i ch\u00ednh th\u00f4ng minh, https:\/\/www.colourstyle.com.hk l\u00e0 minh ch\u1ee9ng cho s\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa th\u1ea9m m\u1ef9 th\u1ee7 c\u00f4ng v\u00e0 hi\u1ec7u su\u1ea5t k\u1ef9 thu\u1eadt t\u1ed1i \u01b0u.\t\t\t\t\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-b2a3a60 e-con-full e-flex e-con e-child\" data-id=\"b2a3a60\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a285b04 elementor-widget elementor-widget-image\" data-id=\"a285b04\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"84\" height=\"114\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/html-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2744\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e45d8 elementor-widget elementor-widget-image\" data-id=\"b5e45d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/css-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2750\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26697b0 elementor-widget elementor-widget-image\" data-id=\"26697b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/js-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2754\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cd9402 elementor-widget elementor-widget-image\" data-id=\"4cd9402\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/wordpress-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2746\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8849ac6 elementor-widget elementor-widget-image\" data-id=\"8849ac6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/php-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2748\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad8af96 elementor-widget elementor-widget-image\" data-id=\"ad8af96\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/python-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2747\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4284df elementor-widget elementor-widget-image\" data-id=\"d4284df\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/woocommerce-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2749\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa283b0 elementor-widget elementor-widget-image\" data-id=\"fa283b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/elementor-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2753\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1450ce elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"d1450ce\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.wucode.net\/en\/du-an\/colour-style-enterprise-limited\/\" aria-label=\"h\u00ecnh \u1ea3nh d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"704\" height=\"538\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-colourstyle.png\" class=\"attachment-medium_large size-medium_large wp-image-2513\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"544\" class=\"elementor elementor-544 e-loop-item e-loop-item-2498 post-2498 case-studies type-case-studies status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div role=\"main\" class=\"elementor-element elementor-element-0ee8b6f e-flex e-con-boxed e-con e-parent\" data-id=\"0ee8b6f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc6c0c5 elementor-widget elementor-widget-pro_case_study_card\" data-id=\"dc6c0c5\" data-element_type=\"widget\" data-widget_type=\"pro_case_study_card.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<!-- STYLES SCOPED CHO WIDGET N\u00c0Y: Trong plugin th\u1eadt, ph\u1ea7n n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0a v\u00e0o CSS file ri\u00eang. -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card {\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tborder-radius: 2rem;\n\t\t\t\tborder: 1px solid #f1f5f9;\n\t\t\t\tpadding: 0.75rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tposition: relative;\n\t\t\t\ttransition: all 500ms ease-out;\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic {\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 20rem;\n\t\t\t\tborder-radius: 1.5rem;\n\t\t\t\tbackground: linear-gradient(to bottom right, #3b82f6, #4f46e5); \/* Overwritten by controls *\/\n\t\t\t\toverflow: hidden;\n\t\t\t\tmargin-bottom: 1.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-overlay {\n\t\t\t\tposition: absolute; inset: 0;\n\t\t\t\tbackground: radial-gradient(circle at top right, white, transparent 70%);\n\t\t\t\topacity: 0.2; mix-blend-mode: overlay; pointer-events: none;\n\t\t\t}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-graphic-blur {\n\t\t\t\tposition: absolute; bottom: -2.5rem; right: -2.5rem;\n\t\t\t\twidth: 10rem; height: 10rem; background: rgba(255,255,255,0.1);\n\t\t\t\tborder-radius: 50%; filter: blur(24px); pointer-events: none;\n\t\t\t}\n\t\t\t\/* Typography & Content Structure *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-content { padding: 0 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-client { font-size: 0.875rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: #475569;}\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric { display: flex; align-items: center; gap: 0.375rem; color: #4f46e5; background: #eef2ff; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 600; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-metric svg { width: 1.125rem; height: 1.125rem; fill: currentColor; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.75rem; color: #0f172a; transition: color 300ms ease; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-desc { color: #475569; line-height: 1.625; margin-bottom: 1.5rem; flex: 1; }\n\t\t\t\n\t\t\t\/* Footer Tags *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #f1f5f9; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-tag { font-size: 0.75rem; font-weight: 500; color: #475569; background: #f1f5f9; padding: 0.25rem 0.625rem; border-radius: 0.375rem; }\n\t\t\t\n\t\t\t\/* View Project Button Overlay *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-overlay { position: absolute; inset: 0; z-index: 30; background: transparent; transition: background-color 800ms cubic-bezier(0.25, 1, 0.5, 1); display: flex; align-items: center; justify-content: center; pointer-events: none; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-overlay { background: rgba(15, 23, 42, 0.2); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-view-btn { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(4px); color: #0f172a; padding: 0.75rem 1.5rem; border-radius: 9999px; font-weight: 600; font-size: 0.875rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); display: flex; align-items: center; gap: 0.5rem; opacity: 0; transform: translateY(1rem); transition: all 500ms ease-out; transition-delay: 150ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-view-btn { opacity: 1; transform: translateY(0); }\n\n\t\t\t\/* DOLLY ZOOM MOCKUP PARALLAX CSS *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mockup-wrapper { position: relative; width: 90%; max-width: 24rem; margin: 0 auto; transform: translateY(3rem); transform-origin: bottom; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); z-index: 10; display: flex; align-items: flex-end; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mockup-wrapper { transform: translateY(-0.5rem) scale(0.85); }\n\t\t\t\n\t\t\t\/* Laptop *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop { position: relative; width: 85%; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop { transform: translateY(-0.5rem); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-lid { background: #121212; padding: 0.625rem; border-radius: 1.5rem 1.5rem 0 0; position: relative; border-left: 2px solid #2a2a2a; border-right: 2px solid #2a2a2a; border-top: 2px solid #2a2a2a; box-shadow: 0 0 0 1px rgba(0,0,0,0.5); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-screen { background: #0f172a; aspect-ratio: 16\/10; border-radius: 0.5rem; overflow: hidden; position: relative; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-base { position: relative; height: 0.625rem; background: linear-gradient(to bottom, #d9d9d9, #999999); width: 116%; margin-left: -8%; border-radius: 0 0 0.75rem 0.75rem; border-top: 1px solid rgba(255,255,255,0.5); box-shadow: 0 20px 40px rgba(0,0,0,0.5); display: flex; justify-content: center; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-laptop-trackpad { width: 20%; height: 0.25rem; background: #b3b3b3; border-radius: 0 0 0.375rem 0.375rem; }\n\t\t\t\n\t\t\t\/* Mobile *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile { position: absolute; bottom: -1.5rem; right: -0.5rem; width: 35%; z-index: 20; border-radius: 1.75rem; box-shadow: 0 15px 30px rgba(0,0,0,0.5); transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1) 75ms; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile { transform: translateY(-2rem) scale(1.1); box-shadow: 0 30px 60px rgba(0,0,0,0.7); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-frame { background: linear-gradient(to bottom right, #e4e4e7, #a1a1aa, #e4e4e7); padding: 2px; border-radius: 1.75rem; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-inner { background: #0a0a0a; padding: 0.375rem; border-radius: 1.65rem; position: relative; overflow: hidden; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-screen { background: #0f172a; aspect-ratio: 9\/19; border-radius: 1.25rem; overflow: hidden; position: relative; }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-notch { position: absolute; top: 0.5rem; left: 50%; transform: translateX(-50%); width: 35%; height: 0.625rem; background: black; border-radius: 9999px; z-index: 20; box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-mobile-home { position: absolute; bottom: 0.375rem; left: 50%; transform: translateX(-50%); width: 33%; height: 0.25rem; background: rgba(255,255,255,0.9); mix-blend-mode: screen; border-radius: 9999px; z-index: 20; }\n\t\t\t\n\t\t\t\/* Images & Glare *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-img { width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: 0.95; transition: all 800ms cubic-bezier(0.25, 1, 0.5, 1); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-laptop-screen .ew-cs-img { opacity: 1; transform: scale(1.05); }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-mobile-screen .ew-cs-img { opacity: 1; transform: scale(1.1); }\n\t\t\t\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-glare { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 25%, transparent 30%); background-size: 200% 100%; pointer-events: none; z-index: 10; }\n\t\t\t@keyframes glare-sweep-dc6c0c5 { 0% { background-position: 200% 0; } 100% { background-position: -100% 0; } }\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-glare { animation: glare-sweep-dc6c0c5 1.5s ease-in-out forwards; }\n\t\t\t\n\t\t\t\/* Category Badge *\/\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-badge { position: absolute; top: 1rem; left: 1rem; background: rgba(255,255,255,0.2); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.3); color: white; font-size: 0.75rem; font-weight: 600; padding: 0.375rem 0.75rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: 0.05em; z-index: 20; }\n\t\t<\/style>\n\n\t\t<a href=\"#\" class=\"ew-cs-card\">\n\t\t\t\n\t\t\t<!-- Graphic Header -->\n\t\t\t<div class=\"ew-cs-graphic\">\n\t\t\t\t<div class=\"ew-cs-graphic-overlay\"><\/div>\n\t\t\t\t<div class=\"ew-cs-graphic-blur\"><\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-badge\">Fintech<\/div>\n\t\t\t\t\n\t\t\t\t<!-- Dolly Zoom Mockup Group -->\n\t\t\t\t<div class=\"ew-cs-mockup-wrapper\">\n\t\t\t\t\t<!-- Laptop -->\n\t\t\t\t\t<div class=\"ew-cs-laptop\">\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-lid\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-camera\"><\/div>\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-imperialprop.png\" alt=\"Laptop Screenshot\" class=\"ew-cs-img\" data-no-translation=\"\" data-no-auto-translation=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"ew-cs-laptop-base\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-laptop-trackpad\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<!-- Mobile -->\n\t\t\t\t\t<div class=\"ew-cs-mobile\">\n\t\t\t\t\t\t<div class=\"ew-cs-mobile-frame\">\n\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-inner\">\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-notch\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-screen\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-glare\"><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"ew-cs-mobile-home\"><\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Overlay Button -->\n\t\t\t\t<div class=\"ew-cs-view-overlay\">\n\t\t\t\t\t<div class=\"ew-cs-view-btn\">\n\t\t\t\t\t\tView Project\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<!-- Content Area -->\n\t\t\t<div class=\"ew-cs-content\">\n\t\t\t\t<div class=\"ew-cs-header\">\n\t\t\t\t\t<span  class=\"ew-cs-client\">\n\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<h3  class=\"ew-cs-title\">\n\t\t\t\t\tImperial\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t<div  class=\"ew-cs-desc\">\n\t\t\t\t\tCh\u00fang t\u00f4i \u0111\u00e3 ph\u00e1t tri\u1ec3n m\u1ed9t n\u1ec1n t\u1ea3ng b\u1ea5t \u0111\u1ed9ng s\u1ea3n to\u00e0n di\u1ec7n \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ri\u00eang cho m\u1ed9t c\u00f4ng ty m\u00f4i gi\u1edbi, \u0111i\u1ec3n h\u00ecnh l\u00e0 trang web https:\/\/www.imperialprop.com.hk\t\t\t\t<\/div>\n\n\t\t\t\t<!-- Footer Tags -->\n\t\t\t\t\t\t\t\t<div class=\"ew-cs-footer\">\n\t\t\t\t\t<div class=\"ew-cs-tags\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"ew-cs-tag elementor-repeater-item-41bfe3f\">\n\t\t\t\t\t\t\t\tAWS\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"ew-cs-arrow\" style=\"width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: center; color: #94a3b8; transition: all 300ms ease;\">\n\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"18\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\n\t\t<\/a>\n\n\t\t<!-- JavaScript Snippet required to handle arrow hover strictly bounded via CSS wrapper -->\n\t\t<style>\n\t\t\t.elementor-element-dc6c0c5 .ew-cs-card:hover .ew-cs-arrow { background-color: #4f46e5; border-color: #4f46e5; color: white; transform: rotate(-45deg); }\n\t\t<\/style>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-2defc87 e-flex e-con-boxed e-con e-parent\" data-id=\"2defc87\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-d63aad6 e-con-full e-flex e-con e-child\" data-id=\"d63aad6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b52ff6a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b52ff6a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Imperial<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34a5f50 elementor-widget__width-auto elementor-widget elementor-widget-button\" data-id=\"34a5f50\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/du-an\/imperial-real-estate-agency\/\" aria-label=\"d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" id=\"Layer_1\" x=\"0px\" y=\"0px\" viewbox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512; fill: #00308f\" xml:space=\"preserve\"><g id=\"XMLID_5_\">\t<path id=\"XMLID_9_\" d=\"M455.3,455.3H56.7V56.7H256V0H56.7C25.4,0,0,25.4,0,56.7v398.7C0,486.6,25.4,512,56.7,512h398.7  c31.3,0,56.7-25.4,56.7-56.7V256h-56.7C455.3,256,455.3,455.3,455.3,455.3z M312.7,0v56.7h102.6L134.8,337.1l40.1,40.1L455.3,96.7  v102.6H512V0H312.7z\"><\/path><\/g><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Imperial<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57f40cc elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"57f40cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tCh\u00fang t\u00f4i \u0111\u00e3 ph\u00e1t tri\u1ec3n m\u1ed9t n\u1ec1n t\u1ea3ng b\u1ea5t \u0111\u1ed9ng s\u1ea3n to\u00e0n di\u1ec7n \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ri\u00eang cho m\u1ed9t c\u00f4ng ty m\u00f4i gi\u1edbi, \u0111i\u1ec3n h\u00ecnh l\u00e0 trang web https:\/\/www.imperialprop.com.hk\t\t\t\t\t\t\t\t<\/div>\n\t\t<div role=\"main\" class=\"elementor-element elementor-element-b2a3a60 e-con-full e-flex e-con e-child\" data-id=\"b2a3a60\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a285b04 elementor-widget elementor-widget-image\" data-id=\"a285b04\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"84\" height=\"114\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/html-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2744\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5e45d8 elementor-widget elementor-widget-image\" data-id=\"b5e45d8\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/css-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2750\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26697b0 elementor-widget elementor-widget-image\" data-id=\"26697b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/js-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2754\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cd9402 elementor-widget elementor-widget-image\" data-id=\"4cd9402\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/wordpress-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2746\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8849ac6 elementor-widget elementor-widget-image\" data-id=\"8849ac6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/php-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2748\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad8af96 elementor-widget elementor-widget-image\" data-id=\"ad8af96\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/python-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2747\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4284df elementor-widget elementor-widget-image\" data-id=\"d4284df\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/woocommerce-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2749\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa283b0 elementor-widget elementor-widget-image\" data-id=\"fa283b0\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"92\" height=\"130\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2025\/11\/elementor-icon.png\" class=\"attachment-thumbnail size-thumbnail wp-image-2753\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d1450ce elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"d1450ce\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.wucode.net\/en\/du-an\/imperial-real-estate-agency\/\" aria-label=\"h\u00ecnh \u1ea3nh d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"586\" height=\"448\" src=\"https:\/\/www.wucode.net\/wp-content\/uploads\/2026\/03\/website-imperialprop.png\" class=\"attachment-medium_large size-medium_large wp-image-2505\" alt=\"\" data-no-translation=\"\" data-no-auto-translation=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-805091f elementor-widget elementor-widget-button\" data-id=\"805091f\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.wucode.net\/en\/du-an\/\" aria-label=\"xem th\u00eam d\u1ef1 \u00e1n\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Work With Us!<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0110\u1ed1i t\u00e1c ph\u00e1t tri\u1ec3n website v\u00e0 gi\u1ea3i ph\u00e1p s\u1ed1 chuy\u00ean nghi\u1ec7p, \u0111\u1ea3m b\u1ea3o m\u1ecdi d\u1ef1 \u00e1n quan tr\u1ecdng c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n ch\u00ednh x\u00e1c v\u00e0 hi\u1ec7u qu\u1ea3 H\u00e3y n\u00f3i v\u1edbi ch\u00fang t\u00f4i \u1ee8ng d\u1ee5ng web \u1ee8ng d\u1ee5ngweb Ch\u00fang t\u00f4i t\u1ea1o ra c\u00e1c \u1ee9ng d\u1ee5ng web t\u00f9y ch\u1ec9nh d\u01b0\u1edbi d\u1ea1ng h\u1ec7 th\u1ed1ng m\u1edbi ho\u1eb7c l\u00e0m [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-20","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/pages\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":1240,"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/pages\/20\/revisions"}],"predecessor-version":[{"id":4218,"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/pages\/20\/revisions\/4218"}],"wp:attachment":[{"href":"https:\/\/www.wucode.net\/en\/wp-json\/wp\/v2\/media?parent=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}