{"id":140,"date":"2026-07-09T04:42:33","date_gmt":"2026-07-09T10:12:33","guid":{"rendered":"https:\/\/vcorehomes.com\/?page_id=140"},"modified":"2026-08-19T12:16:40","modified_gmt":"2026-08-19T17:46:40","slug":"home","status":"publish","type":"page","link":"https:\/\/vcorehomes.com\/","title":{"rendered":"HOME"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"140\" class=\"elementor elementor-140\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b22c4c2 e-flex e-con-boxed e-con e-parent\" data-id=\"b22c4c2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-05f9420 e-con e-atomic-element e-flexbox-base e-a7acd24 \" data-id=\"05f9420\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"05f9420\">\n    <div class=\"elementor-element elementor-element-255d044 e-con e-atomic-element e-flexbox-base e-a6e1880 \" data-id=\"255d044\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"255d044\">\n    \t\t\t<img fetchpriority=\"high\" decoding=\"async\" class=\"e-image-base \" data-interaction-id=\"40adb5b\" id=\"382\" src=\"https:\/\/vcorehomes.com\/wp-content\/uploads\/2026\/07\/Construction-planing-2-1.webp\" width=\"887\" height=\"1263\" srcset=\"https:\/\/vcorehomes.com\/wp-content\/uploads\/2026\/07\/Construction-planing-2-1.webp 887w, https:\/\/vcorehomes.com\/wp-content\/uploads\/2026\/07\/Construction-planing-2-1-211x300.webp 211w, https:\/\/vcorehomes.com\/wp-content\/uploads\/2026\/07\/Construction-planing-2-1-719x1024.webp 719w, https:\/\/vcorehomes.com\/wp-content\/uploads\/2026\/07\/Construction-planing-2-1-768x1094.webp 768w\" alt=\"\"\/>\t\t\n<\/div>\n\t\t<div class=\"elementor-element elementor-element-8859308 elementor-widget elementor-widget-html\" data-id=\"8859308\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<canvas id=\"vcore-bubble-canvas\" style=\"position:fixed;top:0;left:0;width:100%;height:100%;z-index:999999;pointer-events:none;\"><\/canvas>\r\n\r\n<script>\r\n(function () {\r\n  const canvas = document.getElementById('vcore-bubble-canvas');\r\n  const ctx = canvas.getContext('2d');\r\n\r\n  function resize() {\r\n    canvas.width = window.innerWidth;\r\n    canvas.height = window.innerHeight;\r\n  }\r\n  resize();\r\n  window.addEventListener('resize', resize);\r\n\r\n  \/\/ ---- CONFIGURABLE SETTINGS ----\r\n  const TEXT = 'V-core Homes';\r\n  const SPAWN_INTERVAL_MS = 70;     \/\/ how often a new letter-bubble spawns while moving\r\n  const LIFESPAN = 550;             \/\/ total bubble lifetime (ms)\r\n  const MAX_DISTANCE = 22;          \/\/ max random distance a bubble spawns from the cursor (px)\r\n  const BUBBLE_RADIUS = 16;         \/\/ base bubble size (px)\r\n  const FONT_SIZE = 15;\r\n  const FONT_FAMILY = 'Arial, sans-serif';\r\n  const BUBBLE_COLOR = '150, 220, 255';  \/\/ aqua bubble tint\r\n  const TEXT_COLOR = '255, 255, 255';\r\n  \/\/ --------------------------------\r\n\r\n  let letterIndex = 0;\r\n  let bubbles = [];\r\n  let lastSpawn = 0;\r\n  let mouseX = -999, mouseY = -999;\r\n  let lastMouseX = mouseX, lastMouseY = mouseY;\r\n\r\n  window.addEventListener('mousemove', function (e) {\r\n    mouseX = e.clientX;\r\n    mouseY = e.clientY;\r\n  });\r\n  window.addEventListener('touchmove', function (e) {\r\n    if (e.touches.length > 0) {\r\n      mouseX = e.touches[0].clientX;\r\n      mouseY = e.touches[0].clientY;\r\n    }\r\n  }, { passive: true });\r\n\r\n  function easeOutBack(t) {\r\n    const c1 = 1.70158;\r\n    const c3 = c1 + 1;\r\n    return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);\r\n  }\r\n\r\n  function spawnBubble(x, y) {\r\n    const angle = Math.random() * Math.PI * 2;\r\n    const dist = Math.random() * MAX_DISTANCE;\r\n    const ch = TEXT[letterIndex % TEXT.length];\r\n    letterIndex++;\r\n    bubbles.push({\r\n      char: ch,\r\n      x: x + Math.cos(angle) * dist,\r\n      y: y + Math.sin(angle) * dist,\r\n      born: performance.now()\r\n    });\r\n  }\r\n\r\n  function loop(now) {\r\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n    const moved = Math.abs(mouseX - lastMouseX) + Math.abs(mouseY - lastMouseY);\r\n    if (moved > 2 && now - lastSpawn > SPAWN_INTERVAL_MS) {\r\n      spawnBubble(mouseX, mouseY);\r\n      lastSpawn = now;\r\n      lastMouseX = mouseX;\r\n      lastMouseY = mouseY;\r\n    }\r\n\r\n    bubbles = bubbles.filter(b => (now - b.born) < LIFESPAN);\r\n\r\n    for (const b of bubbles) {\r\n      const age = now - b.born;\r\n      const t = age \/ LIFESPAN;\r\n\r\n      let scale, opacity;\r\n\r\n      if (t < 0.55) {\r\n        const gt = t \/ 0.55;\r\n        scale = easeOutBack(gt);\r\n        opacity = 1;\r\n      } else {\r\n        const pt = (t - 0.55) \/ 0.45;\r\n        scale = (1 - pt * 0.9) * 1.0;\r\n        opacity = 1 - pt;\r\n      }\r\n\r\n      if (scale < 0) scale = 0;\r\n\r\n      const r = BUBBLE_RADIUS * scale;\r\n\r\n      ctx.save();\r\n      ctx.translate(b.x, b.y);\r\n\r\n      const grad = ctx.createRadialGradient(-r * 0.3, -r * 0.3, r * 0.1, 0, 0, r);\r\n      grad.addColorStop(0, `rgba(255,255,255,${0.9 * opacity})`);\r\n      grad.addColorStop(0.4, `rgba(${BUBBLE_COLOR}, ${0.55 * opacity})`);\r\n      grad.addColorStop(1, `rgba(${BUBBLE_COLOR}, ${0.05 * opacity})`);\r\n\r\n      ctx.beginPath();\r\n      ctx.arc(0, 0, r, 0, Math.PI * 2);\r\n      ctx.fillStyle = grad;\r\n      ctx.fill();\r\n\r\n      ctx.lineWidth = 1;\r\n      ctx.strokeStyle = `rgba(${BUBBLE_COLOR}, ${0.6 * opacity})`;\r\n      ctx.stroke();\r\n\r\n      ctx.font = `${FONT_SIZE * scale}px ${FONT_FAMILY}`;\r\n      ctx.textAlign = 'center';\r\n      ctx.textBaseline = 'middle';\r\n      ctx.fillStyle = `rgba(${TEXT_COLOR}, ${opacity})`;\r\n      ctx.fillText(b.char === ' ' ? '' : b.char, 0, 0);\r\n\r\n      ctx.restore();\r\n    }\r\n\r\n    requestAnimationFrame(loop);\r\n  }\r\n\r\n  requestAnimationFrame(loop);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-471f874 elementor-widget-tablet__width-initial elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"471f874\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  \/* Keep header fixed at top on every page *\/\r\n  #masthead,\r\n  .site-header,\r\n  .ast-header-wrap {\r\n    position: fixed !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n    width: 100% !important;\r\n    z-index: 999999 !important;\r\n    background-color: rgba(255, 255, 255, 1) !important;\r\n    transition: background-color 0.35s ease;\r\n  }\r\n\r\n  \/* Prevent page content from hiding behind the fixed header *\/\r\n  body {\r\n    padding-top: 90px !important;\r\n  }\r\n\r\n  \/* Keep header below WordPress admin bar when logged in *\/\r\n  body.admin-bar #masthead,\r\n  body.admin-bar .site-header,\r\n  body.admin-bar .ast-header-wrap {\r\n    top: 32px !important;\r\n  }\r\n\r\n  \/* Class added by script once user scrolls down *\/\r\n  .vcore-header-scrolled {\r\n    background-color: rgba(255, 255, 255, 0.5) !important;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  function applyStickyHeader() {\r\n    const header = document.querySelector('#masthead, .site-header, .ast-header-wrap');\r\n    if (!header) return;\r\n\r\n    window.addEventListener('scroll', function () {\r\n      if (window.scrollY > 30) {\r\n        header.classList.add('vcore-header-scrolled');\r\n      } else {\r\n        header.classList.remove('vcore-header-scrolled');\r\n      }\r\n    });\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', applyStickyHeader);\r\n  } else {\r\n    applyStickyHeader();\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8b7da00 e-con e-atomic-element e-flexbox-base e-ea0ea92 \" data-id=\"8b7da00\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"8b7da00\">\n    \t\t\t<p class=\"e-paragraph-base\" data-interaction-id=\"a8f1b4c\"><\/p>\n\t\t\t\t<div class=\"elementor-element elementor-element-52c5e69 animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"52c5e69\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:5}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Wayanad\u2019s Most Trusted Builder \u2014 Crafting Homes Across Kerala<\/h4>\t\t\t\t<\/div>\n\t\t\t\t\t<h6 data-interaction-id=\"b88d872\" class=\"e-b88d872-61aa72d responsive e-heading-base\">V-Core Homes is a trusted construction company in Wayanad with over 25 years of experience. We specialize in residential homes, commercial buildings, renovations, and turnkey construction projects across Kerala. <\/h6>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wayanad\u2019s Most Trusted Builder \u2014 Crafting Homes Across Kerala V-Core Homes is a trusted construction company in Wayanad with over [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-140","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/pages\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vcorehomes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=140"}],"version-history":[{"count":122,"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/pages\/140\/revisions"}],"predecessor-version":[{"id":477,"href":"https:\/\/vcorehomes.com\/index.php?rest_route=\/wp\/v2\/pages\/140\/revisions\/477"}],"wp:attachment":[{"href":"https:\/\/vcorehomes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}