{"id":3811,"date":"2026-10-24T21:00:00","date_gmt":"2026-10-24T21:00:00","guid":{"rendered":"https:\/\/glennabraas.com\/?p=3811"},"modified":"2026-10-24T23:32:02","modified_gmt":"2026-10-24T23:32:02","slug":"elsewhere-the-odyssey","status":"publish","type":"post","link":"https:\/\/glennabraas.com\/nl\/elsewhere-the-odyssey\/","title":{"rendered":"The Odyssey"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3811\" class=\"elementor elementor-3811\">\n\t\t\t\t<div class=\"elementor-element elementor-element-213e98e e-con-full e-flex e-con e-parent\" data-id=\"213e98e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-834ed98 elementor-widget elementor-widget-html\" data-id=\"834ed98\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style id=\"ga-pt-css\">div.ga-pt[aria-hidden=\"true\"]{position:fixed;inset:0;z-index:2147483000;pointer-events:none;background-image:linear-gradient(90deg,#FDBA74,#DD99DD)}div.ga-pt[aria-hidden=\"true\"]{clip-path:inset(0 0 0 0);animation:ga-pt-in 465ms cubic-bezier(.65,0,.35,1) 90ms both}@keyframes ga-pt-in{to{clip-path:inset(0 0 0 100%)}}div.ga-pt.ga-pt-noin[aria-hidden=\"true\"]{animation:none;clip-path:inset(0 0 0 100%)}div.ga-pt.ga-pt-go[aria-hidden=\"true\"]{animation:ga-pt-out 255ms cubic-bezier(.65,0,.35,1) both}@keyframes ga-pt-out{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@view-transition{navigation:auto}:active-view-transition-type(ga-page)::view-transition-group(*),:active-view-transition-type(ga-page)::view-transition-image-pair(*),:active-view-transition-type(ga-page)::view-transition-new(*){animation:none}:active-view-transition-type(ga-page)::view-transition-old(*){display:none}@media (prefers-reduced-motion:reduce){div.ga-pt[aria-hidden=\"true\"]{display:none!important}@view-transition{navigation:none}}<\/style>\n<div class=\"ga-pt\" aria-hidden=\"true\"><\/div>\n<script id=\"ga-pt-js\">\n(function () {\n  var el = document.querySelector(\"div.ga-pt[aria-hidden='true']\");\n  if (!el) return;\n  var reduce = false;\n  try { reduce = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches; } catch (e) {}\n  if (reduce) return;\n  \/* Native: the browser can hold the old page and swap to the new one itself\n     (cross-document view transitions, with types). Then a click is never\n     held back - the sweep starts as the browser starts fetching, and the\n     navigation is the browser's own from the first millisecond. Without it\n     (Firefox today), the old way: the click waits for the sweep, 375ms at\n     the most. *\/\n  var native = !!(window.CSSViewTransitionRule && window.PageSwapEvent);\n  if (native) {\n    var tag = function (e) {\n      var vt = e.viewTransition;\n      if (!vt) return;\n      if (vt.types) vt.types.add(\"ga-page\");\n      \/* A transition the browser skips - the next page painted before this\n         rule was parsed, or it took too long - rejects its promises. That is\n         not a fault: the navigation still happens, only without the held\n         frame. Caught, so it is not reported as one. *\/\n      var hush = function () {};\n      if (vt.ready) vt.ready.catch(hush);\n      if (vt.finished) vt.finished.catch(hush);\n      if (vt.updateCallbackDone) vt.updateCallbackDone.catch(hush);\n    };\n    window.addEventListener(\"pageswap\", tag);\n    window.addEventListener(\"pagereveal\", tag);\n  }\n  \/* Coming back through the bfcache restores the DOM as it was when you left\n     \u2014 which is mid-sweep, fully covered. Clear it or the page stays behind a\n     wall of peach. *\/\n  window.addEventListener(\"pageshow\", function (e) {\n    if (e.persisted) el.classList.remove(\"ga-pt-go\");\n  });\n  window.addEventListener(\"pagehide\", function () { el.classList.remove(\"ga-pt-go\"); });\n  document.addEventListener(\"click\", function (e) {\n    if (e.defaultPrevented || e.button !== 0) return;\n    if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;\n    var a = e.target && e.target.closest ? e.target.closest(\"a\") : null;\n    if (!a || !a.href) return;\n    if (a.target && a.target !== \"_self\") return;\n    if (a.hasAttribute(\"download\") || a.getAttribute(\"rel\") === \"external\") return;\n    var raw = a.getAttribute(\"href\") || \"\";\n    if (!raw || raw.charAt(0) === \"#\") return;\n    if (\/^(mailto:|tel:|javascript:)\/i.test(raw)) return;\n    var u;\n    try { u = new URL(a.href, location.href); } catch (err) { return; }\n    if (u.origin !== location.origin) return;\n    \/* an in-page jump is not a page change *\/\n    if (u.pathname === location.pathname && u.search === location.search) return;\n    \/* anything the browser will hand to a download or a viewer, leave alone *\/\n    if (\/\\.(zip|pdf|jpe?g|png|gif|webp|svg|mp4|mp3|docx?|xlsx?)$\/i.test(u.pathname)) return;\n    if (native) {\n      \/* The click goes through untouched. If the navigation never happens -\n         a stopped load, a response with no page - the curtain lifts again\n         rather than leaving the reader behind it. *\/\n      el.classList.add(\"ga-pt-go\");\n      setTimeout(function () { el.classList.remove(\"ga-pt-go\"); }, 6000);\n      return;\n    }\n    e.preventDefault();\n    el.classList.add(\"ga-pt-go\");\n    \/* Navigate twice over: when the sweep finishes, and on a timer regardless.\n       The timer is the one that matters \u2014 it means a click is never lost, no\n       matter what the animation does or does not do. *\/\n    var gone = false;\n    var leave = function () { if (gone) return; gone = true; location.href = a.href; };\n    el.addEventListener(\"animationend\", leave, { once: true });\n    setTimeout(leave, 375);\n  }, true);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-08a2236 e-con-full e-flex e-con e-parent\" data-id=\"08a2236\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5deb21 elementor-widget elementor-widget-html\" data-id=\"a5deb21\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script id=\"ga-x-js\" data-kit=\"a03b2c0233\">(function () {\n\"use strict\";\nvar root = document.documentElement;\nvar reduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nroot.classList.add(\"ga-js\");\nvar NL = \/^nl\/i.test(root.getAttribute(\"lang\") || \"\");\nfunction say(en, nl) { return NL ? nl : en; }\nvar CREDIT = \/\u00a9\\s*\\d{4}\/;\nfunction ready(fn) {\nif (document.readyState !== \"loading\") fn();\nelse document.addEventListener(\"DOMContentLoaded\", fn);\n}\nvar host = null;\nfunction markHost() {\nvar tag = document.getElementById(\"ga-x-css\") || document.getElementById(\"ga-x-js\");\nhost = tag ? tag.closest(\".e-con\") : null;\nif (host) host.classList.add(\"ga-x-host\");\nreturn host;\n}\nfunction isMine(el) {\nif (host && (el === host || host.contains(el))) return true;\nreturn !!(el && el.closest && el.closest(\".ga-tpl-page\"));\n}\nfunction findHeader() {\nvar el = null;\nvar marked = [].filter.call(document.querySelectorAll(\".she-header-yes\"), function (c) { return !isMine(c); });\nfor (var mi = 0; mi < marked.length; mi++) {\nif (window.getComputedStyle(marked[mi]).display !== \"none\") { el = marked[mi]; break; }\n}\nif (!el && marked.length) el = marked[0];\nif (!el) el = document.querySelector(\".ehf-header .e-con, .elementor-location-header .e-con\");\nif (!el) {\nvar cons = document.querySelectorAll(\".e-con\");\nfor (var i = 0; i < cons.length; i++) {\nif (!isMine(cons[i])) { el = cons[i]; break; }\n}\n}\nreturn el && !isMine(el) ? el : null;\n}\nfunction findArticle() {\nvar best = null, bestCount = 0;\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con)) return;\nvar n = con.querySelectorAll(\":scope > .elementor-widget-text-editor\").length;\nif (n > bestCount) { bestCount = n; best = con; }\n});\nreturn bestCount >= 2 ? best : null;\n}\nvar STAGGER = 60, STAGGER_MAX = 6;\nfunction token(name, fallback) {\nvar v = parseFloat(window.getComputedStyle(root).getPropertyValue(name));\nreturn isNaN(v) ? fallback : v;\n}\nfunction staggerOf(i) { return Math.min(i, STAGGER_MAX) * STAGGER; }\nvar breathe = !reduced && \"IntersectionObserver\" in window;\nvar scrollV = 0, scrollY0 = window.scrollY || window.pageYOffset || 0, scrollT0 = 0, scrollRaf = 0, restT = 0;\nwindow.addEventListener(\"scroll\", function () {\nif (scrollRaf || !window.requestAnimationFrame) return;\nscrollRaf = requestAnimationFrame(function (t) {\nscrollRaf = 0;\nvar y = window.scrollY || window.pageYOffset || 0;\nvar dt = Math.max(1, t - scrollT0), v = Math.abs(y - scrollY0) \/ dt;\nscrollV = dt > 120 ? v : scrollV * 0.6 + v * 0.4;\nscrollY0 = y; scrollT0 = t;\nif (!root.classList.contains(\"ga-scrolling\")) root.classList.add(\"ga-scrolling\");\nclearTimeout(restT);\nrestT = setTimeout(function () { root.classList.remove(\"ga-scrolling\"); }, 200);\n});\n}, { passive: true });\nfunction flying() { return scrollV > 1.2 && performance.now() - scrollT0 < 160; }\nvar REACH = \"100000px 0px 0px 0px\";\nfunction quickOf(e) { return flying() || e.boundingClientRect.bottom < 0; }\nvar watched = new Map();\nvar motionIO = (!reduced && \"IntersectionObserver\" in window) ? new IntersectionObserver(function (entries) {\nentries.forEach(function (e) {\nif (!e.isIntersecting || !watched.has(e.target)) return;\nmotionIO.unobserve(e.target);\nvar fns = watched.get(e.target), quick = quickOf(e);\nwatched.delete(e.target);\nif (quick) e.target.classList.add(\"ga-quick\");\nfns.forEach(function (fn) { fn(false, quick); });\n});\n}, { threshold: 0.2, rootMargin: REACH }) : null;\nfunction onIn(el, fn) {\nif (!el) return;\nif (!motionIO) { fn(true, false); return; }\nif (watched.has(el)) { watched.get(el).push(fn); return; }\nwatched.set(el, [fn]);\nmotionIO.observe(el);\n}\nfunction countTo(node, to, delay) {\nvar dec = (String(to).split(\".\")[1] || \"\").length;\nvar show = function (v) { node.textContent = dec ? v.toFixed(dec) : String(Math.round(v)); };\nif (reduced || !window.requestAnimationFrame) { show(to); return; }\nvar D = token(\"--ga-t-count\", 1000), t0 = null;\nshow(0);\nsetTimeout(function () {\nrequestAnimationFrame(function tick(now) {\nif (t0 === null) t0 = now;\nvar p = Math.min(1, (now - t0) \/ D);\nshow((1 - Math.pow(1 - p, 3)) * to);\nif (p < 1) requestAnimationFrame(tick);\n});\n}, delay || 0);\nsetTimeout(function () { show(to); }, (delay || 0) + D + 120);\n}\nfunction transition(update) {\nif (!reduced && document.startViewTransition) {\ntry { document.startViewTransition(update); return; } catch (e) {  }\n}\nupdate();\n}\nvar MON_EN = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"];\nvar MON_NL = [\"JAN\", \"FEB\", \"MRT\", \"APR\", \"MEI\", \"JUN\", \"JUL\", \"AUG\", \"SEP\", \"OKT\", \"NOV\", \"DEC\"];\nfunction saidDate(t) {\nvar m = String(t).trim().match(\/^(\\d{1,2})-(\\d{1,2})-(\\d{4})$\/);\nif (!m || +m[2] < 1 || +m[2] > 12) return null;\nreturn (+m[1]) + \" \" + (NL ? MON_NL : MON_EN)[+m[2] - 1] + \" \" + m[3];\n}\nwindow.gaMotion = { onIn: onIn, countTo: countTo, transition: transition, reduced: reduced };\nready(function () {\nmarkHost();\nvar STRAY = \"b,i,em,strong,u,s,small,span,mark,sub,sup\";\nfor (var pass = 0; pass < 4; pass++) {\nvar wrapped = [].filter.call(document.querySelectorAll(STRAY), function (n) {\nreturn n.querySelector(\".elementor-widget, .e-con\");\n});\nif (!wrapped.length) break;\nwrapped.forEach(function (n) {\nvar par = n.parentNode;\nif (!par) return;\nwhile (n.firstChild) par.insertBefore(n.firstChild, n);\npar.removeChild(n);\n});\n}\nvar header = findHeader();\nvar logo = null;\nif (header) {\nheader.classList.add(\"ga-x-header\");\nlogo = header.querySelector(\".elementor-widget-heading\");\nif (logo) logo.classList.add(\"ga-x-logo\");\nvar isDesktopHeader = !header.classList.contains(\"elementor-hidden-desktop\");\nvar links = [];\nheader.querySelectorAll(\".elementor-widget-heading\").forEach(function (w) {\nif (w === logo) return;\nif (\/^(NOTES|NOTITIES)$\/i.test(w.textContent.trim())) { w.classList.add(\"ga-h-hide\"); return; }\nlinks.push(w);\n});\nvar sc = header.querySelector(\".elementor-widget-shortcode\");\nvar realGrid = header.querySelector(\":scope > .ga-h-grid\");\nif (isDesktopHeader && realGrid) {\n} else if (isDesktopHeader && logo && links.length >= 4) {\nvar grid = document.createElement(\"div\");\ngrid.className = \"ga-h-grid\";\n[].forEach.call(header.children, function (c) { c.classList.add(\"ga-h-old\"); });\n[links[0], links[1], logo, links[2], links[3]].forEach(function (w) { grid.appendChild(w); });\nvar other = sc ? sc.querySelector(\".trp-switcher-dropdown-list a[href], .trp-ls-shortcode-language a[href]:not(.trp-ls-shortcode-disabled-language)\") : null;\nif (other) {\nvar cur = (document.documentElement.lang || \"en\").slice(0, 2).toUpperCase();\nvar m = (other.getAttribute(\"href\") || \"\").match(\/^https?:\\\/\\\/[^\\\/]+\\\/([a-z]{2})(?:\\\/|$)\/i);\nvar alt = m ? m[1].toUpperCase() : (cur === \"EN\" ? \"NL\" : \"EN\");\nvar box = document.createElement(\"div\"); box.className = \"ga-lang\";\nvar curEl = document.createElement(\"span\"); curEl.className = \"ga-lang-cur\"; curEl.textContent = cur; curEl.setAttribute(\"aria-current\", \"true\");\nvar altEl = document.createElement(\"a\"); altEl.className = \"ga-lang-alt\"; altEl.href = other.href; altEl.textContent = alt;\naltEl.setAttribute(\"lang\", alt.toLowerCase());\naltEl.setAttribute(\"hreflang\", alt.toLowerCase());\nvar img = other.querySelector(\"img\"); if (img && img.alt) altEl.title = img.alt;\n(cur < alt ? [curEl, altEl] : [altEl, curEl]).forEach(function (n) { box.appendChild(n); });\ngrid.appendChild(box);\nsc.classList.add(\"ga-h-hide\");\n} else if (sc) {\ngrid.appendChild(sc);\n}\nheader.appendChild(grid);\nheader.classList.add(\"ga-h-centred\");\n}\nheader.classList.add(\"ga-h-done\");\n}\ndocument.querySelectorAll(\".she-header-yes\").forEach(function (h) { h.classList.add(\"ga-h-done\"); });\ndocument.querySelectorAll(\".hfe-nav-menu .menu-item\").forEach(function (li) {\nvar a = li.querySelector(\"a\");\nif (a && \/^(NOTES|NOTITIES)$\/i.test(a.textContent.trim())) li.classList.add(\"ga-h-hide\");\n});\ndocument.querySelectorAll(\"div.hfe-nav-menu.hfe-nav-menu-layout\").forEach(function (wrap) {\nif (isMine(wrap) || wrap.hasAttribute(\"data-ga-mnav\")) return;\nvar ul = wrap.querySelector(\"ul.hfe-nav-menu\");\nvar toggle = wrap.querySelector(\".hfe-nav-menu__toggle\");\nif (!ul || !toggle) return;\nwrap.classList.add(\"ga-mnav\"); wrap.setAttribute(\"data-ga-mnav\", \"1\");\nvar here = location.pathname.replace(\/\\\/+$\/, \"\") || \"\/\";\nul.querySelectorAll(\"a.hfe-menu-item\").forEach(function (a) {\nif (!a.querySelector(\".ga-nav-label\")) {\nvar lab = document.createElement(\"span\");\nlab.className = \"ga-nav-label\";\nwhile (a.firstChild) lab.appendChild(a.firstChild);\na.appendChild(lab);\n}\nvar href = a.getAttribute(\"href\") || \"\";\nvar m = href.match(\/^(?:https?:\\\/\\\/[^\\\/]+)?(\\\/[^?#]*)\/);\nvar path = m ? m[1].replace(\/\\\/+$\/, \"\") || \"\/\" : null;\nif (path && path === here) {\na.classList.add(\"ga-nav-here\");\na.setAttribute(\"aria-current\", \"page\");\n}\n});\nvar tpItem = ul.querySelector(\"li.trp-language-switcher-container, li.trp-menu-ls-item\");\nvar tpLink = tpItem ? tpItem.querySelector(\"a[href]\") : null;\nif (tpLink && !ul.querySelector(\".ga-mnav-lang\")) {\nvar cur = (document.documentElement.lang || \"en\").slice(0, 2).toUpperCase();\nvar mm = (tpLink.getAttribute(\"href\") || \"\").match(\/^https?:\\\/\\\/[^\\\/]+\\\/([a-z]{2})(?:\\\/|$)\/i);\nvar alt = mm ? mm[1].toUpperCase() : (cur === \"EN\" ? \"NL\" : \"EN\");\nvar li = document.createElement(\"li\");\nli.className = \"ga-mnav-lang\";\nvar box = document.createElement(\"div\");\nbox.className = \"ga-lang\";\nvar curEl = document.createElement(\"span\");\ncurEl.className = \"ga-lang-cur\"; curEl.textContent = cur; curEl.setAttribute(\"aria-current\", \"true\");\nvar altEl = document.createElement(\"a\");\naltEl.className = \"ga-lang-alt\"; altEl.href = tpLink.href; altEl.textContent = alt;\n(cur < alt ? [curEl, altEl] : [altEl, curEl]).forEach(function (n) { box.appendChild(n); });\nli.appendChild(box);\nul.appendChild(li);\n}\nvar scrim = document.querySelector(\".ga-mnav-scrim\");\nif (!scrim) {\nscrim = document.createElement(\"div\");\nscrim.className = \"ga-mnav-scrim\";\nscrim.setAttribute(\"aria-hidden\", \"true\");\ndocument.body.appendChild(scrim);\n}\nvar bar = wrap.closest(\".she-header-yes\") || wrap.closest(\".e-con\");\nfunction measure() {\nif (!bar) return;\nvar b = Math.round(bar.getBoundingClientRect().bottom);\ndocument.documentElement.style.setProperty(\"--ga-hh\", (b > 0 ? b : 0) + \"px\");\n}\nfunction setOpen(on) {\nmeasure();\nvar was = document.documentElement.classList.contains(\"ga-menu-open\");\ndocument.documentElement.classList.toggle(\"ga-menu-open\", !!on);\ntoggle.setAttribute(\"aria-expanded\", on ? \"true\" : \"false\");\nclearTimeout(setOpen.t);\nif (was && !on) {\ndocument.documentElement.classList.add(\"ga-menu-out\");\nsetOpen.t = setTimeout(function () { document.documentElement.classList.remove(\"ga-menu-out\"); }, 420);\nif (ul.contains(document.activeElement)) toggle.focus({ preventScroll: true });\n} else if (on && !was) {\ndocument.documentElement.classList.remove(\"ga-menu-out\");\nvar firstLink = ul.querySelector(\"a[href]\");\nif (firstLink) setOpen.t = setTimeout(function () { firstLink.focus({ preventScroll: true }); }, 360);\n}\n}\nvar fresh = toggle.cloneNode(true);\ntoggle.parentNode.replaceChild(fresh, toggle);\ntoggle = fresh;\ntoggle.setAttribute(\"aria-haspopup\", \"true\");\nmeasure();\nsetOpen(false);\nwindow.addEventListener(\"resize\", measure);\nvar measureRaf = 0;\nwindow.addEventListener(\"scroll\", function () {\nif (measureRaf || !document.documentElement.classList.contains(\"ga-menu-open\")) return;\nmeasureRaf = requestAnimationFrame(function () { measureRaf = 0; measure(); });\n}, { passive: true });\ntoggle.addEventListener(\"click\", function (e) {\ne.preventDefault();\nsetOpen(!document.documentElement.classList.contains(\"ga-menu-open\"));\n});\ntoggle.addEventListener(\"keydown\", function (e) {\nif (e.key === \"Enter\" || e.key === \" \" || e.key === \"Spacebar\") {\ne.preventDefault();\nsetOpen(!document.documentElement.classList.contains(\"ga-menu-open\"));\n}\n});\nscrim.addEventListener(\"click\", function () { setOpen(false); });\nscrim.addEventListener(\"touchmove\", function (e) { e.preventDefault(); }, { passive: false });\ndocument.addEventListener(\"keydown\", function (e) {\nif (e.key === \"Escape\") setOpen(false);\n});\nul.addEventListener(\"click\", function (e) {\nif (e.target.closest(\"a\")) setOpen(false);\n});\n});\nvar form = document.querySelector(\".wpcf7\");\nif (form) {\nvar fc = form.closest(\".e-con\") || form.parentElement;\nif (fc) fc.classList.add(\"ga-x-form\");\n}\nvar article = findArticle();\nif (article) article.classList.add(\"ga-article\");\nvar hero = null;\nvar DO = \/^(SEND|CONTACT|VERSTUREN|VERZENDEN)$\/i;\nfunction tagButton(el) {\nif (!el || isMine(el)) return;\nvar label = (el.value || el.textContent || \"\").trim();\nvar href = el.getAttribute(\"href\");\nvar bg = window.getComputedStyle(el).backgroundColor.replace(\/\\s\/g, \"\");\nel.classList.add(\"ga-btn\");\nel.classList.add(DO.test(label) ? \"ga-btn-do\" : \"ga-btn-go\");\nif (\/^(SOON|BINNENKORT)$\/i.test(label) || (el.tagName === \"A\" && (!href || href === \"#\" || href === \"\"))) {\nel.classList.add(\"ga-btn-off\");\nel.removeAttribute(\"href\");\nel.setAttribute(\"aria-disabled\", \"true\");\n} else if (bg === \"rgb(221,153,221)\" || bg === \"rgba(221,153,221,1)\") {\nel.classList.add(\"ga-btn-2\");\n}\nvar wrap = el.closest(\".elementor-widget\");\nif (wrap) wrap.classList.add(\"ga-btn-wrap\");\n}\ndocument.querySelectorAll(\"a.elementskit-btn, a.ekit-double-btn, .ekit-btn, a.elementor-button, input.wpcf7-submit\").forEach(tagButton);\nvar scoreEl = null, scoreVal = 0;\ndocument.querySelectorAll(\".elementor-heading-title\").forEach(function (h) {\nif (scoreEl || isMine(h)) return;\nvar m = h.textContent.trim().match(\/^(\\d{1,3})\\\/100$\/);\nif (m) { scoreEl = h; scoreVal = parseInt(m[1], 10); }\n});\nvar slateEl = null;\nif (scoreEl) {\nvar numW = scoreEl.closest(\".elementor-widget\");\nvar cell = numW && numW.closest(\".e-con\");\nslateEl = cell && cell.parentElement ? cell.parentElement.closest(\".e-con\") : null;\nif (numW && cell && slateEl && !isMine(slateEl)) {\nnumW.classList.add(\"ga-score-num\");\ncell.classList.add(\"ga-score-cell\");\nslateEl.classList.add(\"ga-score\");\n[].forEach.call(slateEl.children, function (k) {\nif (k !== cell && k.classList && k.classList.contains(\"e-con\")) k.classList.add(\"ga-score-verdict\");\n});\nslateEl.querySelectorAll(\".elementor-widget-heading\").forEach(function (w) {\nif (\/^(FINAL SCORE|VERDICT|EINDSCORE|CONCLUSIE)$\/i.test(w.textContent.trim())) w.classList.add(\"ga-slate-label\");\n});\nscoreEl.innerHTML = '<span class=\"ga-num\">' + scoreVal + '<\/span><span class=\"ga-suffix\">\/100<\/span>';\n}\n}\nif (article) {\narticle.querySelectorAll(\".elementor-widget-heading\").forEach(function (w) {\nif (w.classList.contains(\"ga-slate-label\") || w.classList.contains(\"ga-score-num\")) return;\nvar t = w.querySelector(\".elementor-heading-title\");\nif (!t) return;\nvar st = window.getComputedStyle(t);\nif (parseInt(st.fontSize, 10) >= 28 && \/Courier\/i.test(st.fontFamily)) w.classList.add(\"ga-subhead\");\n});\n}\ndocument.querySelectorAll(\".elementor-widget-heading .elementor-heading-title\").forEach(function (t) {\nif (isMine(t) || t.tagName === \"H1\") return;\nvar st2 = window.getComputedStyle(t);\nvar txt = t.textContent.trim();\nvar onTimeline = \/timeline\/i.test(location.pathname) || \/Timeline\/i.test(document.title || \"\");\nif (!onTimeline && parseInt(st2.fontSize, 10) >= 40 && \/Sora\/i.test(st2.fontFamily) && txt === txt.toUpperCase()) {\nvar w2 = t.closest(\".elementor-widget\");\nif (w2 && !(hero && hero.contains(w2))) {\nw2.classList.add(\"ga-section-title\");\nif (st2.textAlign === \"center\") w2.classList.add(\"ga-section-title--c\");\n}\n}\n});\ndocument.querySelectorAll(\".elementor-widget-text-editor\").forEach(function (w) {\nif (isMine(w)) return;\nvar q = w.querySelector(\"blockquote\");\nif (q && w.textContent.trim() === q.textContent.trim()) w.classList.add(\"ga-pull\");\n});\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-callout\")) return;\nvar kids = [].filter.call(con.children, function (k) { return k.classList && k.classList.contains(\"elementor-widget\"); });\nif (kids.length !== 2) return;\nif (!kids[0].classList.contains(\"elementor-widget-heading\")) return;\nif (!\/^(WARNING|WAARSCHUWING|BELANGRIJK)$\/.test(kids[0].textContent.trim().toUpperCase())) return;\nif (!kids[1].classList.contains(\"elementor-widget-text-editor\")) return;\ncon.classList.add(\"ga-callout\"); con.setAttribute(\"data-ga-callout\", \"1\");\nkids[0].classList.add(\"ga-callout-tab\");\nkids[1].classList.add(\"ga-callout-box\");\n});\nfunction emptyCell(label, status, body, lit) {\nvar e = document.createElement(\"div\");\ne.className = \"ga-empty\" + (lit ? \" is-lit\" : \"\");\ne.innerHTML = '<div class=\"ga-empty-bay\"><span class=\"ga-empty-lab\"><\/span><span class=\"ga-empty-status\"><\/span><\/div><div class=\"ga-empty-body\"><\/div>';\ne.querySelector(\".ga-empty-lab\").textContent = label;\ne.querySelector(\".ga-empty-status\").textContent = status;\ne.querySelector(\".ga-empty-body\").textContent = body;\nreturn e;\n}\ndocument.querySelectorAll(\".eael-post-grid\").forEach(function (g) {\nif (isMine(g)) return;\nif (g.querySelectorAll(\".eael-grid-post\").length === 0 && !g.querySelector(\".ga-empty\")) {\ng.appendChild(emptyCell(say(\"STATUS\", \"STATUS\"), say(\"SOON\", \"BINNENKORT\"),\nsay(\"Nothing else in this category yet.\",\n\"Nog niets anders in deze categorie.\"), false));\n}\n});\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.querySelector(\".ga-empty\")) return;\nvar hs = con.querySelectorAll(\":scope > .elementor-widget-heading\");\nif (hs.length !== 1) return;\nif (!\/^(ALL PROJECTS|ALLE PROJECTEN)$\/.test(hs[0].textContent.trim().toUpperCase())) return;\nif (con.querySelector(\".elementor-widget-image, .ga-prow\")) return;\ncon.appendChild(emptyCell(say(\"STATUS\", \"STATUS\"), say(\"SOON\", \"BINNENKORT\"),\nsay(\"The only project so far is the one above.\",\n\"Het enige project tot nu toe is het project hierboven.\"), false));\n});\ndocument.querySelectorAll(\"body .e-con\").forEach(function (con) {\nif (isMine(con) || con === header || (con.parentElement && con.parentElement.closest(\".e-con\"))) return;\nvar bg = window.getComputedStyle(con).backgroundImage;\nif (bg && bg !== \"none\" && \/url\\(\/.test(bg) && !CREDIT.test(con.textContent)) con.classList.add(\"ga-band\");\n});\ndocument.querySelectorAll(\".elementor-widget-heading\").forEach(function (w) {\nif (isMine(w)) return;\nvar t = w.textContent.trim();\nif (\/(\u2192|->|&rarr;)\\s*$\/.test(t) && w.querySelector(\"a\")) w.classList.add(\"ga-textlink\");\n});\nif (header) {\nvar here = location.pathname.replace(\/\\\/+$\/, \"\") || \"\/\";\nvar draftTitle = \/GA-X \u00b7 (.+)$\/.exec(document.title || \"\");\nvar SECTION = {\n\"\/project-hail-mary\": \"news\",\n\"\/project-hail-mary-spoilers\": \"news\",\n\"\/the-drama\": \"news\",\n\"\/the-drama-spoilers\": \"news\",\n\"\/narcopop\": \"news\",\n\"\/narcopop-mula-b-review\": \"news\",\n\"\/pokemon-the-first-movie\": \"news\",\n\"\/scoreboard\": \"news\",\n\"\/timeline\": \"about\"\n};\nvar nlPre = \/^\\\/nl(?=\\\/|$)\/.test(here) ? \"\/nl\" : \"\";\nvar rawHere = here.replace(\/^\\\/nl(?=\\\/|$)\/, \"\") || \"\/\";\nvar onBeta = \/^\\\/beta(-|$)\/.test(rawHere);\nvar slug = onBeta\n? (rawHere === \"\/beta\" ? \"\/\" : rawHere.replace(\/^\\\/beta-\/, \"\/\"))\n: rawHere;\nvar sect = SECTION[slug];\nvar wantPath = sect\n? nlPre + (onBeta ? \"\/beta-\" + sect : \"\/\" + sect)\n: null;\nheader.querySelectorAll(\".elementor-widget-heading\").forEach(function (w) {\nvar a = w.querySelector(\"a\");\nif (!a) return;\nvar path = (a.getAttribute(\"href\") || \"\").replace(\/^https?:\\\/\\\/[^\\\/]+\/, \"\").replace(\/\\\/+$\/, \"\") || \"\/\";\nvar hit = here !== \"\/\" && path === here;\nif (!hit && wantPath) hit = path === wantPath;\nif (!hit && draftTitle) hit = w.textContent.trim().toUpperCase() === draftTitle[1].trim().toUpperCase();\nif (hit) w.classList.add(\"ga-nav-current\");\n});\n}\n(function () {\nvar tops = [];\ndocument.querySelectorAll(\"body > .e-con, .elementor-section-wrap > .e-con, .elementor > .e-con\").forEach(function (c) {\nif (!isMine(c)) tops.push(c);\n});\nvar isDate = function (w) { return \/^\\d{1,2}-\\d{1,2}-\\d{4}$\/.test(w.textContent.trim()); };\nvar isLong = function (w) { return w.textContent.trim().length > 80; };\nvar rh = null, idx = -1;\nvar named = [].filter.call(document.querySelectorAll(\".ga-rhero\"), function (c) {\nreturn !isMine(c);\n})[0];\nif (named) {\nrh = named;\nidx = tops.indexOf(rh);\n} else {\ntops.forEach(function (c, i) {\nif (rh) return;\nif (!c.querySelector(\"h1.elementor-heading-title\")) return;\nvar hh = [].slice.call(c.querySelectorAll(\".elementor-widget-heading\"));\nif (!hh.some(isDate) || !hh.some(isLong)) return;\nrh = c; idx = i;\n});\n}\nif (!rh || rh.hasAttribute(\"data-ga-rhero\")) return;\nhero = rh;\nrh.classList.add(\"ga-rhero\"); rh.setAttribute(\"data-ga-rhero\", \"1\");\nvar hs = [].slice.call(rh.querySelectorAll(\".elementor-widget-heading\"));\nvar title = rh.querySelector(\"h1.elementor-heading-title\").closest(\".elementor-widget\");\nvar date = hs.filter(isDate)[0];\nvar lede = hs.filter(isLong).sort(function (x, y) {\nreturn y.textContent.length - x.textContent.length;\n})[0];\nvar kind = hs.filter(function (w) {\nvar t = w.textContent.trim();\nreturn w !== title && w !== date && w !== lede && t === t.toUpperCase() && \/REVIEW|RECENSIE\/.test(t);\n})[0];\nvar artist = hs.filter(function (w) {\nreturn w !== title && w !== date && w !== lede && w !== kind;\n})[0];\nvar art = rh.querySelector(\".elementor-widget-image\");\nif (!art && idx > 0) {\nvar imgs = tops[idx - 1].querySelectorAll(\".elementor-widget-image\");\nif (imgs.length === 1) {\nart = imgs[0];\nrh.appendChild(art);\ntops[idx - 1].classList.add(\"ga-rhero-empty\");\n}\n}\nif (art) {\nvar artImg = art.querySelector(\"img\");\nif (artImg) artImg.setAttribute(\"sizes\", \"(min-width: 768px) 300px, 240px\");\n}\nif (title) title.classList.add(\"ga-rh-title\");\nif (kind) kind.classList.add(\"ga-rh-kind\");\nif (lede) lede.classList.add(\"ga-rh-lede\");\nif (art) art.classList.add(\"ga-rh-art\");\nif (date) { date.classList.add(\"ga-rh-date\"); date.classList.add(\"ga-meta-date\"); }\nif (artist) artist.classList.add(\"ga-rh-artist\");\nvar meta = rh.querySelector(\":scope > .ga-rh-meta\");\nif (!meta && artist && date) {\nmeta = document.createElement(\"div\");\nmeta.className = \"ga-rh-meta\";\nmeta.appendChild(artist);\nmeta.appendChild(date);\nrh.appendChild(meta);\n}\n[title, kind, lede, art].forEach(function (w) {\nif (!w) return;\nvar up = w.parentElement ? w.parentElement.closest(\".e-con\") : null;\nwhile (up && up !== rh) {\nup.classList.add(\"ga-rhero-pass\");\nup = up.parentElement ? up.parentElement.closest(\".e-con\") : null;\n}\n});\n})();\n(function () {\nvar hp = location.pathname.replace(\/^\\\/nl(?=\\\/|$)\/, \"\").replace(\/\\\/+$\/, \"\");\nvar isHome = hp === \"\" || hp === \"\/beta\" || \/GA-X\\s*\u00b7\\s*Home\/.test(document.title || \"\");\nif (!isHome) return;\nvar intro = null;\ndocument.querySelectorAll(\"body > .e-con, .elementor-section-wrap > .e-con, .elementor > .e-con\").forEach(function (con) {\nif (intro || isMine(con) || con === header) return;\nif (!con.querySelector(\"h1.elementor-heading-title\")) return;\nif (!con.querySelector(\".elementor-widget-image img\")) return;\nif (!con.querySelector(\".ekit-btn, .elementskit-btn\")) return;\nintro = con;\n});\nif (!intro || intro.hasAttribute(\"data-ga-intro\")) return;\nintro.classList.add(\"ga-intro\"); intro.setAttribute(\"data-ga-intro\", \"1\");\nvar col = intro.querySelector(\"h1.elementor-heading-title\").closest(\".e-con\");\nwhile (col && col !== intro && !col.querySelector(\".ekit-btn, .elementskit-btn\")) {\ncol = col.parentElement ? col.parentElement.closest(\".e-con\") : null;\n}\nif (col && col !== intro) col.classList.add(\"ga-intro-col\");\nvar realPlate = intro.querySelector(\":scope > .ga-intro-plate\");\nif (realPlate) {\n[].forEach.call(realPlate.children, function (c) {\nif (c === col || (c.classList && c.classList.contains(\"ga-intro-col\"))) return;\nif (c.classList && c.classList.contains(\"e-con\")\n&& c.querySelector(\".elementor-widget-image img\")) {\nc.classList.add(\"ga-intro-art\");\n}\n});\n} else {\nvar artCol = null;\n[].forEach.call(intro.children, function (c) {\nif (artCol || c === col || !c.classList || !c.classList.contains(\"e-con\")) return;\nif (c.querySelector(\".elementor-widget-image img\")) artCol = c;\n});\nif (col && artCol && artCol !== col && col.parentElement === intro) {\nvar plate = document.createElement(\"div\");\nplate.className = \"ga-intro-plate\";\nintro.insertBefore(plate, col);\nplate.appendChild(artCol);\nplate.appendChild(col);\nartCol.classList.add(\"ga-intro-art\");\n}\n}\nvar wash = document.createElement(\"div\");\nwash.className = \"ga-intro-wash\";\nwash.setAttribute(\"aria-hidden\", \"true\");\nintro.insertBefore(wash, intro.firstChild);\nvar track = document.createElement(\"div\");\ntrack.className = \"ga-intro-track\";\ntrack.setAttribute(\"aria-hidden\", \"true\");\nvar fill = document.createElement(\"i\");\ntrack.appendChild(fill);\nintro.insertBefore(track, intro.firstChild);\nvar tick = function () {\nvar r = intro.getBoundingClientRect();\nvar run = Math.max(1, r.height * 0.45);\nvar p = (0 - r.top) \/ run;\np = p < 0 ? 0 : (p > 1 ? 1 : p);\nfill.style.height = (12 + p * 88) + \"%\";\n};\ntick();\nwindow.addEventListener(\"scroll\", tick, { passive: true });\nwindow.addEventListener(\"resize\", tick);\n})();\nif (article) {\narticle.querySelectorAll(\".elementor-widget-text-editor img\").forEach(function (img) {\nif (img.closest(\".ga-figure\")) return;\nvar fig = document.createElement(\"figure\");\nfig.className = \"ga-figure\";\nimg.parentNode.insertBefore(fig, img);\nfig.appendChild(img);\nvar cap = (img.getAttribute(\"alt\") || \"\").trim();\nif (cap) {\nvar fc2 = document.createElement(\"figcaption\");\nfc2.textContent = cap;\nfig.appendChild(fc2);\n}\n});\n}\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-twin\")) return;\nvar tc = [].filter.call(con.children, function (c) {\nreturn c.classList && c.classList.contains(\"e-con\");\n});\nif (tc.length !== 2) return;\nvar hs = [tc[0].querySelectorAll(\".elementor-widget-heading\"),\ntc[1].querySelectorAll(\".elementor-widget-heading\")];\nif (hs[0].length !== 2 || hs[1].length !== 2) return;\nif (!\/^(READING|JE LEEST)$\/.test(hs[0][0].textContent.trim().toUpperCase())) return;\nif (!\/^(SWITCH TO|WISSEL NAAR)$\/.test(hs[1][0].textContent.trim().toUpperCase())) return;\ncon.classList.add(\"ga-twin\"); con.setAttribute(\"data-ga-twin\", \"1\");\ntc.forEach(function (cell, i) {\ncell.classList.add(\"ga-twin-cell\");\nhs[i][0].classList.add(\"ga-twin-lab\");\nhs[i][1].classList.add(\"ga-twin-name\");\n});\ntc[0].classList.add(\"ga-twin-current\");\n});\nif (document.querySelector(\".ga-twin\") && slateEl) {\nslateEl.querySelectorAll(\".ga-textlink\").forEach(function (w) { w.classList.add(\"ga-twin-dupe\"); });\n}\nvar ramp = null;\nvar theirs = document.querySelector(\".eael-reading-progress\");\nif (article && !theirs) {\nramp = document.createElement(\"div\");\nramp.className = \"ga-read\";\nramp.appendChild(document.createElement(\"i\"));\ndocument.body.appendChild(ramp);\n}\nvar ticking = false;\nvar band = null;\nfunction onScroll() {\nif (ticking) return;\nticking = true;\nrequestAnimationFrame(function () {\nvar y = window.scrollY || window.pageYOffset;\nroot.classList.toggle(\"ga-scrolled\", y > 80);\nif (header) {\nvar hb = header.getBoundingClientRect().bottom;\nvar wrap = document.querySelector(\".eael-reading-progress-wrap\") || ramp;\nif (wrap && hb > 0 && hb < 200) wrap.style.top = hb + \"px\";\n}\nif (article) {\nvar box = article.getBoundingClientRect();\nif (ramp) {\nvar total = box.height - window.innerHeight;\nvar done = total > 0 ? (-box.top) \/ total : 0;\ndone = Math.max(0, Math.min(1, done));\nramp.firstChild.style.transform = \"scaleX(\" + done.toFixed(4) + \")\";\n}\nif (rail) {\nif (!band) band = document.querySelector(\".ga-rh-band\");\nrail.style.left = Math.max(12, box.left - 96) + \"px\";\nvar railTop = rail.getBoundingClientRect().top;\nvar bandClear = !band\n|| band.getBoundingClientRect().bottom <= railTop;\nvar onScreen = box.top < window.innerHeight * 0.5\n&& box.bottom > 220 && bandClear;\nrail.classList.toggle(\"is-on\", onScreen);\n}\n}\nticking = false;\n});\n}\nwindow.addEventListener(\"scroll\", onScroll, { passive: true });\nwindow.addEventListener(\"resize\", onScroll, { passive: true });\nonScroll();\n(function () {\nvar hero = document.querySelector(\".ga-rhero\");\nif (!hero || hero.querySelector(\":scope > .ga-rh-band\")) return;\nvar band = document.createElement(\"div\");\nband.className = \"ga-rh-band\";\nband.setAttribute(\"aria-hidden\", \"true\");\nhero.insertBefore(band, hero.firstChild);\n})();\n(function () {\nvar lede = document.querySelector(\".ga-rh-lede\");\nvar art = document.querySelector(\".ga-article\");\nif (lede && art && !art.contains(lede)) {\nart.insertBefore(lede, art.firstChild);\nlede.classList.add(\"ga-rh-lede-moved\");\n}\n})();\nif (article) {\narticle.querySelectorAll(\".ga-subhead\").forEach(function (h) {\nvar n = h.nextElementSibling;\nwhile (n && !n.classList.contains(\"elementor-widget-text-editor\")) {\nif (n.classList.contains(\"ga-subhead\")) { n = null; break; }\nn = n.nextElementSibling;\n}\nwhile (n && (n.classList.contains(\"ga-pull\") || n.classList.contains(\"ga-callout\"))) {\nn = n.nextElementSibling;\nwhile (n && !n.classList.contains(\"elementor-widget-text-editor\")) {\nif (n.classList.contains(\"ga-subhead\")) { n = null; break; }\nn = n.nextElementSibling;\n}\n}\nif (!n) return;\nvar host = n.querySelector(\".elementor-widget-container\");\nif (!host) return;\nfor (;;) {\nvar kid = null;\nfor (var i = 0; i < host.children.length; i++) {\nvar k = host.children[i];\nif (\/^(P|DIV)$\/.test(k.tagName) && k.textContent.trim().length >= 80) { kid = k; break; }\n}\nif (!kid) break;\nhost = kid;\n}\nif (host.closest(\"blockquote\")) return;\nif (host.textContent.trim().length < 80) return;\nhost.classList.add(\"ga-dropcap\");\n});\n}\nvar rail = null;\nvar heads = [];\nif (article) {\narticle.querySelectorAll(\".ga-subhead .elementor-heading-title\").forEach(function (h) { heads.push(h); });\n}\nif (heads.length >= 3 && article) {\nrail = document.createElement(\"nav\");\nrail.className = \"ga-rail\";\nrail.setAttribute(\"aria-label\", say(\"Sections\", \"Secties\"));\nheads.forEach(function (h, i) {\nvar id = \"ga-sec-\" + (i + 1);\nh.id = id;\nvar a = document.createElement(\"a\");\na.href = \"#\" + id;\na.textContent = String(i + 1).padStart(2, \"0\");\na.title = h.textContent.trim();\nrail.appendChild(a);\n});\ndocument.body.appendChild(rail);\nvar links = rail.querySelectorAll(\"a\");\nvar spy = new IntersectionObserver(function (entries) {\nentries.forEach(function (e) {\nif (!e.isIntersecting) return;\nvar idx = heads.indexOf(e.target);\nlinks.forEach(function (l, i) { l.classList.toggle(\"is-current\", i === idx); });\n});\n}, { rootMargin: \"-120px 0px -70% 0px\" });\nheads.forEach(function (h) { spy.observe(h); });\n}\ndocument.querySelectorAll(\".eael-post-grid\").forEach(function (grid) {\nvar up = grid.parentElement;\nwhile (up && up !== document.body) {\nif (up.classList.contains(\"e-con\") || up.classList.contains(\"elementor-widget\")) {\nup.classList.add(\"ga-nozoom\");\n}\nup = up.parentElement;\n}\n});\nvar CHAPTER_SERIES = [[\"ai101\", \"AI 101\"], [\"ai-agency\", \"AI & Agency\"]];\nvar CHAPTER_NO = {\"3338\":\"01\",\"3393\":\"03\",\"3407\":\"02\",\"3410\":\"04\",\"3412\":\"05\",\"3414\":\"06\",\"3416\":\"07\",\"3418\":\"08\",\"3420\":\"09\",\"3490\":\"01\",\"3492\":\"02\",\"3494\":\"03\",\"3496\":\"04\",\"3498\":\"05\",\"3500\":\"06\",\"3502\":\"07\",\"3504\":\"08\",\"3506\":\"09\",\"3508\":\"10\"};\nvar CHAPTER_TOTAL = {\"ai101\":9,\"ai-agency\":10};\nvar CHAPTER_PARTS = {\"ai101\":[[3338,\"what-ai-is\",\"What AI Actually Is\"],[3407,\"where-ai-came-from-and-the-hype-around-it\",\"Where AI Came From and the Hype Around It\"],[3393,\"the-different-kinds-of-ai\",\"The Different Kinds of AI\"],[3410,\"a-closer-look-at-the-language-model\",\"A Closer Look at the Language Model\"],[3412,\"a-closer-look-at-image-generators\",\"A Closer Look at Image Generators\"],[3414,\"a-closer-look-at-agents\",\"A Closer Look at Agents\"],[3416,\"what-it-can-do-when-you-guide-it\",\"What It Can Do When You Guide It\"],[3418,\"youre-not-behind\",\"You're Not Behind\"],[3420,\"the-last-word-is-yours\",\"The Last Word Is Yours\"]],\"ai-agency\":[[3490,\"the-ai-mindset\",\"The AI Mindset\"],[3492,\"the-ethics-of-using-it\",\"The Ethics of Using It\"],[3494,\"keeping-your-own-mind\",\"Keeping Your Own Mind\"],[3496,\"the-machine-that-talks-back\",\"The Machine That Talks Back\"],[3498,\"the-workplace-revolution\",\"The Workplace Revolution\"],[3500,\"whos-steering-you\",\"Who's Steering You\"],[3502,\"judged-by-a-machine\",\"Judged by a Machine\"],[3504,\"the-dark-side\",\"The Dark Side\"],[3506,\"when-the-tool-acts-on-its-own\",\"When the Tool Acts on Its Own\"],[3508,\"where-you-land\",\"Where You Land\"]]};\ndocument.querySelectorAll(\".eael-post-appender\").forEach(function (grid) {\nvar posts = grid.querySelectorAll(\".eael-grid-post\");\nif (posts.length <= 3) return;\ngrid.classList.add(\"ga-rows\");\nvar panel = grid.closest(\".e-con\");\nif (panel) panel.classList.add(\"ga-rows-panel\");\nposts.forEach(function (row) {\nvar link = row.querySelector(\".eael-grid-post-link\");\nif (!link) return;\nvar wrap = row.querySelector(\".eael-entry-wrapper\");\nif (wrap && !wrap.querySelector(\".ga-row-kind\")) {\nvar cls = row.className;\nvar kind = \"\";\nif (\/music-review\/.test(cls)) kind = say(\"MUSIC REVIEW\", \"MUZIEK RECENSIE\");\nelse if (\/movie-review\/.test(cls)) kind = say(\"MOVIE REVIEW\", \"FILM RECENSIE\");\nelse {\nfor (var si = 0; si < CHAPTER_SERIES.length; si++) {\nif (cls.indexOf(\"category-\" + CHAPTER_SERIES[si][0]) > -1 ||\ncls.indexOf(\"-\" + CHAPTER_SERIES[si][0]) > -1) {\nkind = say(\"CHAPTER\", \"HOOFDSTUK\") + \"  \u00b7  \" + CHAPTER_SERIES[si][1];\nbreak;\n}\n}\nif (!kind && \/category-[\\w-]*\\barticle\\b|category-article\/.test(cls)) kind = say(\"ARTICLE\", \"ARTIKEL\");\nif (!kind && \/category-[\\w-]*essay\/.test(cls)) kind = say(\"ESSAY\", \"ESSAY\");\n}\nif (kind) {\nvar k = document.createElement(\"span\"); k.className = \"ga-row-kind\"; k.textContent = kind;\nwrap.insertBefore(k, wrap.firstChild);\n}\nvar pid = (cls.match(\/eael-pg-post-(\\d+)\/) || [])[1];\nvar no = pid && CHAPTER_NO[pid];\nvar tLink = row.querySelector(\".eael-entry-title a\");\nif (no && tLink && !tLink.querySelector(\".ga-row-no\")) {\nvar nEl = document.createElement(\"span\");\nnEl.className = \"ga-row-no\";\nnEl.textContent = no;\ntLink.insertBefore(nEl, tLink.firstChild);\n}\nvar rb = document.createElement(\"a\");\nrb.className = \"ga-row-read ga-btn ga-btn-go\"; rb.href = link.href; rb.textContent = say(\"READ NOW\", \"NU LEZEN\");\nwrap.appendChild(rb);\n}\nrow.addEventListener(\"click\", function (e) {\nif (e.target.closest(\"a\")) return;\nwindow.location.href = link.href;\n});\n});\n});\nvar boardStats = null;\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-board\")) return;\nvar rows = [].filter.call(con.children, function (c) {\nreturn c.classList && c.classList.contains(\"e-con\");\n});\nif (rows.length < 2) return;\nvar hi = -1, headCells = null;\nrows.forEach(function (r, i) {\nif (hi > -1) return;\nvar hc = r.querySelectorAll(\":scope > .elementor-widget-heading\");\nif (hc.length !== 4) return;\nvar labs = [];\nhc.forEach(function (h) { labs.push(h.textContent.trim().toUpperCase()); });\nvar j = labs.join(\"|\");\nif (j === \"TITLE|KIND|FILED|SCORE\" || j === \"TITEL|SOORT|DATUM|SCORE\") { hi = i; headCells = hc; }\n});\nif (hi < 0) return;\ncon.classList.add(\"ga-board\"); con.setAttribute(\"data-ga-board\", \"1\");\nvar head = rows[hi];\nhead.classList.add(\"ga-board-row\", \"ga-board-head\");\nvar body = rows.slice(hi + 1);\nbody.forEach(function (r) { r.classList.add(\"ga-board-row\"); });\nfunction cellText(row, i) {\nvar c = row.querySelectorAll(\":scope > .elementor-widget-heading\")[i];\nreturn c ? c.textContent.trim() : \"\";\n}\nfunction dateKey(t) {\nvar m = t.match(\/^(\\d{1,2})-(\\d{1,2})-(\\d{4})$\/);\nif (!m) return 0;\nreturn (+m[3]) * 10000 + (+m[2]) * 100 + (+m[1]);\n}\nbody.forEach(function (r, ri) {\nr.setAttribute(\"data-ga-score\", String(parseInt(cellText(r, 3), 10) || 0));\nr.setAttribute(\"data-ga-when\", String(dateKey(cellText(r, 2))));\nr.style.viewTransitionName = \"ga-row-\" + ri;\n});\ncon.classList.add(\"ga-board-scored\");\nbody.forEach(function (r, ri) {\nvar sc = r.querySelectorAll(\":scope > .elementor-widget-heading\")[3];\nvar n = +r.getAttribute(\"data-ga-score\");\nif (!sc) return;\nsc.classList.add(\"ga-board-score\");\nsc.style.setProperty(\"--ga-s\", String(Math.max(0, Math.min(100, n)) \/ 100));\nsc.style.setProperty(\"--ga-i\", String(Math.min(ri, STAGGER_MAX)));\nvar t = sc.querySelector(\".elementor-heading-title\");\nvar leaf = t;\nwhile (leaf && leaf.children.length === 1) leaf = leaf.children[0];\nif (leaf && leaf.children.length === 0 && \/^\\d{1,3}$\/.test(leaf.textContent.trim())) {\nleaf.classList.add(\"ga-board-n\");\n}\n});\nonIn(con, function (still) {\ncon.classList.add(\"is-in\");\nif (still) return;\nbody.forEach(function (r, ri) {\nvar leaf = r.querySelector(\".ga-board-n\");\nif (leaf) countTo(leaf, +r.getAttribute(\"data-ga-score\"), staggerOf(ri) * 2 \/ 3);\n});\n});\nvar sum = document.createElement(\"div\");\nsum.className = \"ga-board-sum\";\n[[\"n\", say(\"REVIEWS\", \"REVIEWS\")], [\"avg\", say(\"AVERAGE\", \"GEMIDDELD\")],\n[\"hi\", say(\"HIGHEST\", \"HOOGSTE\")], [\"lo\", say(\"LOWEST\", \"LAAGSTE\")]].forEach(function (c) {\nvar cellS = document.createElement(\"div\");\ncellS.className = \"ga-board-sum-cell\" + (c[0] === \"avg\" ? \" is-lit\" : \"\");\nvar lab = document.createElement(\"span\");\nlab.className = \"ga-board-sum-l\";\nlab.textContent = c[1];\nvar val = document.createElement(\"span\");\nval.className = \"ga-board-sum-v\";\nval.setAttribute(\"data-k\", c[0]);\ncellS.appendChild(lab);\ncellS.appendChild(val);\nsum.appendChild(cellS);\n});\ncon.insertBefore(sum, rows[0]);\nboardStats = function (animate) {\nvar shown = body.filter(function (r) { return !r.classList.contains(\"ga-filtered-out\"); });\nvar sc = shown.map(function (r) { return +r.getAttribute(\"data-ga-score\"); });\nvar vals = {\nn: sc.length,\navg: sc.length ? Math.round(sc.reduce(function (x, y) { return x + y; }, 0) \/ sc.length) : 0,\nhi: sc.length ? Math.max.apply(null, sc) : 0,\nlo: sc.length ? Math.min.apply(null, sc) : 0\n};\nsum.querySelectorAll(\".ga-board-sum-v\").forEach(function (v, vi) {\nvar to = vals[v.getAttribute(\"data-k\")];\nif (animate) countTo(v, to, staggerOf(vi));\nelse v.textContent = String(to);\n});\n};\nboardStats(false);\nonIn(sum, function (still) { if (!still) boardStats(true); });\nvar dir = {};\n[0, 1, 2, 3].forEach(function (col) {\nvar cell = headCells[col];\ncell.classList.add(\"ga-sortable\");\ncell.setAttribute(\"role\", \"button\");\ncell.setAttribute(\"tabindex\", \"0\");\ncell.setAttribute(\"aria-label\", say(\"Sort by \", \"Sorteer op \") + cell.textContent.trim().toLowerCase());\nfunction sort() {\ndir[col] = dir[col] === \"asc\" ? \"desc\" : \"asc\";\nvar sign = dir[col] === \"asc\" ? 1 : -1;\nvar sorted = body.slice().sort(function (a, b) {\nif (col === 3) return (a.getAttribute(\"data-ga-score\") - b.getAttribute(\"data-ga-score\")) * sign;\nif (col === 2) return (a.getAttribute(\"data-ga-when\") - b.getAttribute(\"data-ga-when\")) * sign;\nreturn cellText(a, col).localeCompare(cellText(b, col)) * sign;\n});\ntransition(function () {\nsorted.forEach(function (r) { con.appendChild(r); });\nheadCells.forEach(function (h) { h.classList.remove(\"is-sorted\", \"is-asc\", \"is-desc\"); });\ncell.classList.add(\"is-sorted\", dir[col] === \"asc\" ? \"is-asc\" : \"is-desc\");\n});\n}\ncell.addEventListener(\"click\", sort);\ncell.addEventListener(\"keydown\", function (e) {\nif (e.key === \"Enter\" || e.key === \" \") { e.preventDefault(); sort(); }\n});\n});\nheadCells[3].classList.add(\"is-sorted\", \"is-desc\");\ndir[3] = \"asc\";\nvar h1b = con.querySelector(\":scope > .elementor-widget-heading\");\nif (h1b) h1b.classList.add(\"ga-board-title\");\nvar ldb = con.querySelector(\":scope > .elementor-widget-text-editor\");\nif (ldb) ldb.classList.add(\"ga-board-lede\");\ncon.classList.add(\"ga-board-body\");\n});\nvar isNum100 = function (w) { return \/^\\d{1,3}\\\/100$\/.test(w.textContent.trim()); };\nvar isCardDate = function (w) { return \/^\\d{1,2}-\\d{1,2}-\\d{4}$\/.test(w.textContent.trim()); };\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-ledgerrow\")) return;\nif (con.parentElement\n&& con.parentElement.closest(\".ga-ledger, .ga-score, .ga-board\")) return;\nvar hs = [].slice.call(con.querySelectorAll(\".elementor-widget-heading\"));\nvar num = hs.filter(isNum100)[0];\nvar date = hs.filter(isCardDate)[0];\nvar title = hs.filter(function (w) { return w !== num && w !== date && w.querySelector(\"a\"); })[0];\nvar art = con.querySelector(\".elementor-widget-image img\");\nif (!num || !date || !title || !art) return;\ncon.setAttribute(\"data-ga-ledgerrow\", \"1\");\nvar inner = [].filter.call(con.children, function (k) { return k.classList && k.classList.contains(\"e-con\"); });\nif (inner.some(function (k) {\nreturn k.contains(num) && k.contains(date) && k.contains(title) && k.contains(art);\n})) return;\ncon.classList.add(\"ga-ledger\");\nnum.classList.add(\"ga-card-num\");\ndate.classList.add(\"ga-card-date\");\ntitle.classList.add(\"ga-card-title\");\nhs.forEach(function (w) {\nvar t = w.textContent.trim();\nif (w !== num && w !== date && w !== title && t === t.toUpperCase() && \/REVIEW|RECENSIE\/.test(t)) {\nw.classList.add(\"ga-card-kind\");\n}\n});\nvar verdict = con.querySelector(\".elementor-widget-text-editor\");\nif (verdict) verdict.classList.add(\"ga-card-verdict\");\nvar imgw = art.closest(\".elementor-widget-image\");\nif (imgw) imgw.classList.add(\"ga-card-art\");\nart.setAttribute(\"sizes\", \"(min-width: 1025px) 360px, 110px\");\nvar head = num.closest(\".e-con\"); if (head && head !== con) head.classList.add(\"ga-card-head\");\nvar body = imgw ? imgw.closest(\".e-con\") : null; if (body && body !== con) body.classList.add(\"ga-card-body\");\nvar words = title.closest(\".e-con\"); if (words && words !== con && words !== body) words.classList.add(\"ga-card-words\");\nvar foot = date.closest(\".e-con\"); if (foot && foot !== con) foot.classList.add(\"ga-card-foot\");\nif (con.parentElement && con.parentElement.classList.contains(\"e-con\")) {\ncon.parentElement.classList.add(\"ga-ledger-row\");\n}\nvar a = title.querySelector(\"a\");\nif (a) con.addEventListener(\"click\", function (e) {\nif (e.target.closest(\"a\")) return;\nwindow.location.href = a.href;\n});\ncon.style.cursor = \"pointer\";\n});\nvar isNum = function (w) { return \/^\\d{1,3}$\/.test(w.textContent.trim()); };\nvar isDate = function (w) { return \/^\\d{1,2}-\\d{1,2}-\\d{4}$\/.test(w.textContent.trim()); };\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-card\")) return;\nif (con.parentElement\n&& con.parentElement.closest(\".ga-lid, .ga-ledger, .ga-score, .ga-board\")) return;\nvar hs = [].slice.call(con.querySelectorAll(\".elementor-widget-heading\"));\nvar num = hs.filter(isNum)[0], date = hs.filter(isDate)[0];\nvar title = hs.filter(function (w) { return !isNum(w) && !isDate(w) && w.querySelector(\"a\"); })[0];\nif (!num || !date || !title) return;\nvar inner = [].filter.call(con.children, function (k) { return k.classList && k.classList.contains(\"e-con\"); });\nvar holdsAll = function (k) { return k.contains(num) && k.contains(date) && k.contains(title); };\nvar directImg = [].filter.call(con.children, function (k) { return k.classList && k.classList.contains(\"elementor-widget-image\"); })[0];\nif (inner.some(holdsAll) && !directImg) return;\nvar img = directImg ? directImg.querySelector(\"img\") : null;\ncon.classList.add(img ? \"ga-lid\" : \"ga-ledger\");\ncon.setAttribute(\"data-ga-card\", \"1\");\nnum.classList.add(\"ga-card-num\"); date.classList.add(\"ga-card-date\"); title.classList.add(\"ga-card-title\");\nvar verdict = con.querySelector(\".elementor-widget-text-editor\");\nif (verdict) verdict.classList.add(\"ga-card-verdict\");\nhs.forEach(function (w) {\nvar t = w.textContent.trim();\nif (w !== num && w !== date && w !== title && t === t.toUpperCase() && \/REVIEW|RECENSIE\/.test(t)) w.classList.add(\"ga-card-kind\");\n});\nif (img) {\nvar row = num.closest(\".e-con\"); if (row) row.classList.add(\"ga-card-score\");\nvar row2 = row && row.parentElement ? row.parentElement.closest(\".e-con\") : null;\nif (row2 && row2 !== con) row2.classList.add(\"ga-card-row\");\nif (con.parentElement && con.parentElement.classList.contains(\"e-con\")) {\ncon.parentElement.classList.add(\"ga-lid-row\");\n}\n} else {\nvar foot = num.closest(\".e-con\"); if (foot && foot !== con) foot.classList.add(\"ga-card-foot\");\n}\nvar a = title.querySelector(\"a\");\nif (a) con.addEventListener(\"click\", function (e) {\nif (e.target.closest(\"a\")) return;\nwindow.location.href = a.href;\n});\ncon.style.cursor = \"pointer\";\n});\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-feature\") || con.closest(\"[data-ga-feature]\")) return;\nvar kids = [].filter.call(con.children, function (k) { return k.classList && (k.classList.contains(\"e-con\") || k.classList.contains(\"elementor-widget\")); });\nif (kids.length !== 2) return;\nvar art = kids.filter(function (k) { return k.classList.contains(\"elementor-widget-image\"); })[0];\nvar body = kids.filter(function (k) { return k.classList.contains(\"e-con\"); })[0];\nif (!art || !body) return;\nvar status = [].filter.call(body.querySelectorAll(\".ga-btn\"), function (b) { return \/^(SOON|LIVE|BINNENKORT)$\/i.test((b.textContent || \"\").trim()); })[0];\nif (!status) return;\ncon.classList.add(\"ga-feature\"); con.setAttribute(\"data-ga-feature\", \"1\");\nart.classList.add(\"ga-feature-art\");\nbody.classList.add(\"ga-feature-body\");\nstatus.classList.add(\"ga-status\");\nvar fh = [].slice.call(body.querySelectorAll(\":scope > .elementor-widget-heading\"));\nvar fd = fh.filter(isDate)[0];\nif (fd) fd.classList.add(\"ga-feature-date\");\nvar frest = fh.filter(function (w) { return w !== fd; });\nif (frest[0]) frest[0].classList.add(\"ga-feature-lab\");\nif (frest[1]) frest[1].classList.add(\"ga-feature-title\");\nvar ft = body.querySelector(\":scope > .elementor-widget-text-editor\");\nif (ft) ft.classList.add(\"ga-feature-text\");\nvar fs = status.closest(\".elementor-widget\");\nif (fs) fs.classList.add(\"ga-feature-status\");\nvar go = [].filter.call(con.querySelectorAll(\".ga-btn\"), function (bt) {\nreturn !bt.classList.contains(\"ga-btn-off\");\n})[0];\nif (go) {\nvar homeCell = go.parentNode;\nvar cta = document.createElement(\"div\");\ncta.className = \"ga-feature-cta\";\nvar mq = window.matchMedia(\"(max-width: 767px)\");\nvar place = function () {\nif (mq.matches) {\nif (go.parentNode !== cta) {\ncta.appendChild(go);\nif (cta.parentNode !== con.parentNode) con.parentNode.insertBefore(cta, con.nextSibling);\n}\n} else if (go.parentNode === cta) {\nhomeCell.appendChild(go);\nif (cta.parentNode) cta.parentNode.removeChild(cta);\n}\n};\nplace();\nif (mq.addEventListener) mq.addEventListener(\"change\", place);\n}\n});\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-skills\")) return;\nvar cells = [].filter.call(con.children, function (k) {\nreturn k.classList && k.classList.contains(\"e-con\");\n});\nif (cells.length < 4) return;\nvar ok = cells.every(function (cell) {\nvar kids = [].filter.call(cell.children, function (k) {\nreturn k.classList && k.classList.contains(\"elementor-widget\");\n});\nreturn kids.length === 2 &&\nkids[0].classList.contains(\"elementor-widget-image\") &&\nkids[1].classList.contains(\"elementor-widget-heading\");\n});\nif (ok) { con.classList.add(\"ga-skills\"); con.setAttribute(\"data-ga-skills\", \"1\"); }\n});\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-404\")) return;\nvar hs404 = con.querySelectorAll(\":scope > .elementor-widget-heading\");\nif (!hs404.length || hs404[0].textContent.trim() !== \"404\") return;\ncon.classList.add(\"ga-404\"); con.setAttribute(\"data-ga-404\", \"1\");\nif (hs404[1]) hs404[1].classList.add(\"ga-404-label\");\nfor (var oi = 2; oi < hs404.length; oi++) hs404[oi].classList.add(\"ga-404-out\");\n});\nvar skipTo = article;\nif (!skipTo) {\nvar cons2 = document.querySelectorAll(\".e-con\");\nfor (var si = 0; si < cons2.length; si++) {\nif (!isMine(cons2[si]) && cons2[si] !== header) { skipTo = cons2[si]; break; }\n}\n}\nif (skipTo) {\nif (!skipTo.id) skipTo.id = \"ga-main\";\nvar skip = document.createElement(\"a\");\nskip.className = \"ga-skip\";\nskip.href = \"#\" + skipTo.id;\nskip.textContent = say(\"Skip to content\", \"Naar de inhoud\");\nskip.addEventListener(\"click\", function () {\nskipTo.setAttribute(\"tabindex\", \"-1\");\nskipTo.focus();\n});\ndocument.body.insertBefore(skip, document.body.firstChild);\n}\nvar credit = null;\ndocument.querySelectorAll(\".elementor-widget-text-editor\").forEach(function (w) {\nif (!credit && !isMine(w) && CREDIT.test(w.textContent)) credit = w;\n});\nif (credit) {\nvar foot = credit.closest(\".e-con\");\nwhile (foot && foot.parentElement) {\nvar upf = foot.parentElement.closest(\".e-con\");\nif (!upf || isMine(upf)) break;\nfoot = upf;\n}\nif (foot && !isMine(foot)) {\nfoot.classList.add(\"ga-foot\");\ncredit.classList.add(\"ga-foot-credit\");\nvar rules = foot.querySelectorAll(\".elementor-widget-divider\");\nfor (var ri = 0; ri < rules.length; ri++) {\nrules[ri].classList.add(ri === 0 ? \"ga-foot-rule\" : \"ga-foot-hair\");\n}\nvar navBest = null, navN = 0;\nfoot.querySelectorAll(\".e-con\").forEach(function (c) {\nvar n = c.querySelectorAll(\":scope > .elementor-widget-heading\").length;\nif (n > navN) { navN = n; navBest = c; }\n});\nif (navBest && navN >= 3) navBest.classList.add(\"ga-foot-nav\");\n}\n}\nvar CH_RE = \/ai101|ai-agency\/;\nvar FILTERS = {\nALL: null, MOVIES: \"movie-review\", MUSIC: \"music-review\", CHAPTERS: CH_RE,\nALLE: null, FILMS: \"movie-review\", MUZIEK: \"music-review\", HOOFDSTUKKEN: CH_RE\n};\nvar FILTER_SETS = [\n\"ALL|MOVIES|MUSIC\", \"ALLE|FILMS|MUZIEK\",\n\"ALL|MOVIES|MUSIC|CHAPTERS\", \"ALLE|FILMS|MUZIEK|HOOFDSTUKKEN\"\n];\ndocument.querySelectorAll(\".e-con\").forEach(function (con) {\nif (isMine(con) || con.hasAttribute(\"data-ga-filter\")) return;\nvar fc = [].filter.call(con.children, function (c) {\nreturn c.classList && c.classList.contains(\"e-con\");\n});\nif (fc.length !== 3 && fc.length !== 4) return;\nvar labels = fc.map(function (c) {\nvar h = c.querySelectorAll(\".elementor-widget-heading\");\nreturn h.length === 1 ? h[0].textContent.trim().toUpperCase() : null;\n});\nif (FILTER_SETS.indexOf(labels.join(\"|\")) < 0) return;\nvar grids = [];\ndocument.querySelectorAll(\".eael-post-appender\").forEach(function (g) {\nif (g.querySelectorAll(\".eael-grid-post\").length > 3) grids.push(g);\n});\nvar boardRows = [].slice.call(document.querySelectorAll(\".ga-board .ga-board-row:not(.ga-board-head)\"));\nif (!grids.length && !boardRows.length) return;\ncon.classList.add(\"ga-filter\"); con.setAttribute(\"data-ga-filter\", \"1\");\nif (fc.length === 4) con.classList.add(\"ga-filter-4\");\nif (grids.length) {\nvar gridBox = grids[0].closest(\".e-con\");\nwhile (gridBox && gridBox.parentElement !== con.parentElement) {\ngridBox = gridBox.parentElement ? gridBox.parentElement.closest(\".e-con\") : null;\n}\nvar below = gridBox &&\n(con.compareDocumentPosition(gridBox) & Node.DOCUMENT_POSITION_PRECEDING);\nif (below) gridBox.parentNode.insertBefore(con, gridBox);\n}\nvar pill = document.createElement(\"span\");\npill.className = \"ga-filter-pill\";\npill.setAttribute(\"aria-hidden\", \"true\");\ncon.appendChild(pill);\ncon.classList.add(\"ga-filter--pill\");\nfunction placePill(target, moving) {\npill.classList.toggle(\"is-moving\", !!moving);\npill.style.width = target.offsetWidth + \"px\";\npill.style.height = target.offsetHeight + \"px\";\npill.style.transform = \"translate(\" + target.offsetLeft + \"px,\" + target.offsetTop + \"px)\";\n}\nif (window.ResizeObserver) {\nnew ResizeObserver(function () {\nvar cur = con.querySelector(\".ga-filter-cell.is-current\");\nif (cur) placePill(cur, false);\n}).observe(con);\n}\ngrids.forEach(function (g, gi) {\n[].forEach.call(g.querySelectorAll(\".eael-grid-post\"), function (card, ci) {\ncard.style.viewTransitionName = \"ga-card-\" + gi + \"-\" + ci;\n});\n});\nfc.forEach(function (cell, i) {\ncell.classList.add(\"ga-filter-cell\");\ncell.setAttribute(\"role\", \"button\");\ncell.setAttribute(\"tabindex\", \"0\");\nvar want = FILTERS[labels[i]];\ncell.setAttribute(\"aria-pressed\", i === 0 ? \"true\" : \"false\");\nfunction apply() {\nplacePill(cell, true);\ntransition(update);\n}\nfunction update() {\nfc.forEach(function (c) { c.classList.remove(\"is-current\"); c.setAttribute(\"aria-pressed\", \"false\"); });\ncell.classList.add(\"is-current\");\ncell.setAttribute(\"aria-pressed\", \"true\");\ngrids.forEach(function (g) {\ng.querySelectorAll(\".eael-grid-post\").forEach(function (card) {\nvar hit = !want || (want instanceof RegExp\n? want.test(card.className) : card.className.indexOf(want) > -1);\ncard.classList.toggle(\"ga-filtered-out\", !hit);\n});\n});\nboardRows.forEach(function (r) {\nvar kc = r.querySelectorAll(\":scope > .elementor-widget-heading\")[1];\nvar kind = kc ? kc.textContent.trim().toUpperCase() : \"\";\nvar hitR = !want ? true\n: want === \"movie-review\" ? \/^(MOVIE|FILM)$\/.test(kind)\n: want === \"music-review\" ? \/^(MUSIC|MUZIEK)$\/.test(kind)\n: false;\nr.classList.toggle(\"ga-filtered-out\", !hitR);\n});\nif (boardRows.length && boardStats) boardStats(false);\n}\ncell.addEventListener(\"click\", apply);\ncell.addEventListener(\"keydown\", function (e) {\nif (e.key === \"Enter\" || e.key === \" \") { e.preventDefault(); apply(); }\n});\nif (i === 0) { cell.classList.add(\"is-current\"); placePill(cell, false); }\n});\n});\nvar pagePath = location.pathname.replace(\/^\\\/nl(?=\\\/|$)\/, \"\").replace(\/\\\/+$\/, \"\");\nvar curtain = document.querySelector(\"div.ga-pt[aria-hidden='true']:not(.ga-pt-noin):not(.e-con)\");\nif (curtain && !reduced) root.style.setProperty(\"--ga-arrive\", \"480ms\");\nfunction printIt(title) {\nif (!title || title.hasAttribute(\"data-ga-print\")) return;\ntitle.setAttribute(\"data-ga-print\", \"1\");\nvar plain = title.children.length === 0 && title.textContent.trim().split(\/\\s+\/).length > 1;\nif (!plain) { title.classList.add(\"ga-print\"); return; }\nvar words = title.textContent.trim().split(\/\\s+\/);\ntitle.textContent = \"\";\nwords.forEach(function (w, wi) {\nvar s = document.createElement(\"span\");\ns.className = \"ga-print ga-pw\";\ns.style.setProperty(\"--ga-i\", String(Math.min(wi, STAGGER_MAX)));\ns.textContent = w;\ntitle.appendChild(s);\nif (wi < words.length - 1) title.appendChild(document.createTextNode(\" \"));\n});\n}\ndocument.querySelectorAll(\".ga-intro h1.elementor-heading-title\").forEach(function (t) {\nif (!isMine(t)) printIt(t);\n});\ndocument.querySelectorAll(\".ga-404 .elementor-widget-heading:first-of-type .elementor-heading-title\").forEach(printIt);\ndocument.querySelectorAll(\".ga-intro .elementor-widget-image\").forEach(function (w) {\nvar box = w.closest(\".ga-intro-art\") || w.querySelector(\".elementor-widget-container\");\nif (box) box.classList.add(\"ga-duo\");\n});\n(function () {\nif (pagePath !== \"\" && pagePath !== \"\/beta\") return;\nvar marks = [].slice.call(document.querySelectorAll(\".ga-skills .elementor-widget-image\"));\ndocument.querySelectorAll(\".ga-section-title\").forEach(function (h) {\nif (!\/^(SKILLS|VAARDIGHEDEN)$\/i.test(h.textContent.trim())) return;\nvar band = h.closest(\".e-con\");\nband = band && band.parentElement ? band.parentElement.closest(\".e-con\") || band : band;\nif (!band) return;\nband.querySelectorAll(\".e-con > .elementor-widget-image\").forEach(function (w) {\nif (marks.indexOf(w) < 0) marks.push(w);\n});\n});\nmarks.forEach(function (w, mi) {\nif (isMine(w)) return;\nw.classList.add(\"ga-mark\");\nw.style.setProperty(\"--ga-i\", String(mi % 3));\nonIn(w, function () { w.classList.add(\"is-in\"); });\n});\n})();\nif (pagePath === \"\/about\") {\nvar aboutImg = null;\ndocument.querySelectorAll(\".elementor-widget-image img\").forEach(function (im) {\nif (!aboutImg && !isMine(im) && !im.closest(\".ga-x-header, .ga-foot\")) aboutImg = im;\n});\nif (aboutImg && !aboutImg.parentElement.querySelector(\":scope > .ga-ring\")) {\nvar ring = document.createElement(\"span\");\nring.className = \"ga-ring\";\nring.setAttribute(\"aria-hidden\", \"true\");\nvar host = aboutImg.parentElement;\nhost.classList.add(\"ga-ring-host\");\nhost.appendChild(ring);\nvar fitRing = function () {\nring.style.left = aboutImg.offsetLeft + \"px\";\nring.style.top = aboutImg.offsetTop + \"px\";\nring.style.width = aboutImg.offsetWidth + \"px\";\nring.style.height = aboutImg.offsetHeight + \"px\";\n};\nfitRing();\nif (window.ResizeObserver) new ResizeObserver(fitRing).observe(aboutImg);\nelse window.addEventListener(\"resize\", fitRing);\naboutImg.addEventListener(\"load\", fitRing);\nonIn(ring, function () { ring.classList.add(\"is-in\"); });\n}\n}\ndocument.querySelectorAll(\".ga-x-form .wpcf7\").forEach(function (wrap) {\nvar form = wrap.querySelector(\"form\");\nif (!form || form.hasAttribute(\"data-ga-form\")) return;\nform.setAttribute(\"data-ga-form\", \"1\");\nvar submit = form.querySelector(\"input.wpcf7-submit\");\nvar label = submit ? submit.value : \"\", held = 0;\nfunction word(v) { if (submit && v) submit.value = v; }\nfunction state(s) {\nform.classList.remove(\"ga-is-sending\", \"ga-is-sent\", \"ga-is-invalid\");\nif (s) form.classList.add(s);\n}\nwrap.addEventListener(\"wpcf7beforesubmit\", function () { clearTimeout(held); state(\"ga-is-sending\"); word(say(\"SENDING\", \"VERZENDEN\")); });\nwrap.addEventListener(\"wpcf7mailsent\", function () {\nstate(\"ga-is-sent\"); word(say(\"SENT \u2713\", \"VERZONDEN \u2713\"));\nheld = setTimeout(function () { state(null); word(label); }, 3000);\n});\nwrap.addEventListener(\"wpcf7invalid\", function () { state(\"ga-is-invalid\"); word(label); });\nwrap.addEventListener(\"wpcf7spam\", function () { state(null); word(label); });\nwrap.addEventListener(\"wpcf7mailfailed\", function () { state(null); word(label); });\n});\n(function () {\nif (pagePath !== \"\/projects\" || !window.fetch) return;\nvar SERIES_OF = { \"\/projects\/ai-101\": \"ai101\", \"\/projects\/ai-and-agency\": \"ai-agency\" };\nvar rows = [];\ndocument.querySelectorAll(\".ga-prow, .ga-feature\").forEach(function (row) {\nif (isMine(row)) return;\nvar a = row.querySelector(\"a.ga-btn[href], a[href]\");\nif (!a) return;\nvar p = (a.pathname || \"\").replace(\/^\\\/nl(?=\\\/|$)\/, \"\").replace(\/\\\/+$\/, \"\");\nvar slug = SERIES_OF[p];\nif (slug && CHAPTER_TOTAL[slug]) rows.push({ row: row, slug: slug });\n});\nif (!rows.length) return;\nfetch(\"\/wp-json\/wp\/v2\/categories?slug=ai101,ai-agency&_fields=slug,count\", { credentials: \"omit\" })\n.then(function (r) { return r.ok ? r.json() : []; })\n.then(function (cats) {\nvar live = {};\n(cats || []).forEach(function (c) { live[c.slug] = c.count; });\nrows.forEach(function (o, oi) {\nif (!(o.slug in live)) return;\nvar total = CHAPTER_TOTAL[o.slug], n = Math.min(live[o.slug], total);\nvar text = o.row.querySelector(\".ga-feature-text\") ||\n[].slice.call(o.row.querySelectorAll(\".elementor-widget-text-editor\")).pop();\nif (!text || o.row.querySelector(\".ga-prog\")) return;\nvar line = document.createElement(\"div\");\nline.className = \"ga-prog\" + (n === 0 ? \" is-soon\" : \"\");\nvar num = document.createElement(\"span\");\nnum.className = \"ga-prog-n\";\nnum.textContent = String(n);\nline.appendChild(num);\nline.appendChild(document.createTextNode(\nsay(\" of \", \" van \") + total + (n === 0 ? say(\" \u00b7 coming\", \" \u00b7 komt eraan\") : say(\" live\", \" live\"))));\nvar bar = document.createElement(\"i\");\nbar.style.setProperty(\"--ga-s\", String(n \/ total));\nline.appendChild(bar);\n(text.querySelector(\".elementor-widget-container\") || text).appendChild(line);\nonIn(line, function (still) {\nline.classList.add(\"is-in\");\nif (!still && n) countTo(num, n, staggerOf(oi));\n});\n});\n})\n.catch(function () {  });\n})();\nfunction lightArt(box) {\nif (!box || isMine(box) || box.hasAttribute(\"data-ga-art\")) return;\nvar img = box.querySelector(\"img\");\nif (!img) return;\nbox.setAttribute(\"data-ga-art\", \"1\");\nfunction set() {\nvar src = img.currentSrc || img.src;\nif (!src) return;\nbox.style.setProperty(\"--ga-art\", 'url(\"' + src.replace(\/\"\/g, \"%22\") + '\")');\nbox.classList.add(\"ga-art-lit\");\n}\nif (img.complete && img.naturalWidth) set();\nelse img.addEventListener(\"load\", set, { once: true });\n}\ndocument.querySelectorAll(\".ga-rows .eael-entry-media, \" +\n\".ga-lid > .elementor-widget-image > .elementor-widget-container, \" +\n\".ga-ledger .ga-card-art > .elementor-widget-container\").forEach(lightArt);\ndocument.querySelectorAll(\".ga-rhero\").forEach(function (hero) {\nif (isMine(hero) || hero.querySelector(\".ga-rh-glow\")) return;\nvar art = hero.querySelector(\".ga-rh-art img\");\nif (!art) return;\nvar glow = document.createElement(\"span\");\nglow.className = \"ga-rh-glow\";\nglow.setAttribute(\"aria-hidden\", \"true\");\nvar band = hero.querySelector(\".ga-rh-band\") || hero;\nband.insertBefore(glow, band.firstChild);\nfunction lit() {\nvar src = art.currentSrc || art.src;\nif (!src) return;\nglow.style.setProperty(\"--ga-art\", 'url(\"' + src.replace(\/\"\/g, \"%22\") + '\")');\nhero.classList.add(\"ga-rh-lit\");\n}\nif (art.complete && art.naturalWidth) lit(); else art.addEventListener(\"load\", lit, { once: true });\n});\n(function () {\nvar KEY = \"ga-series-read\", store = {};\ntry { store = JSON.parse(window.localStorage.getItem(KEY) || \"{}\") || {}; } catch (e) { store = {}; }\nfunction save() { try { window.localStorage.setItem(KEY, JSON.stringify(store)); } catch (e) {  } }\nvar bySlug = {}, seriesOf = {};\nObject.keys(CHAPTER_PARTS).forEach(function (cat) {\n(CHAPTER_PARTS[cat] || []).forEach(function (part) {\nbySlug[part[1]] = String(part[0]);\nseriesOf[String(part[0])] = cat;\n});\n});\nfunction idOf(href) {\nvar m = String(href || \"\").replace(\/^https?:\\\/\\\/[^\\\/]+\/, \"\").replace(\/^\\\/nl(?=\\\/)\/, \"\").match(\/^\\\/([^\\\/?#]+)\\\/?$\/);\nreturn m ? bySlug[m[1]] : null;\n}\ndocument.querySelectorAll(\".ga-ch-spine a.is-soon[href]\").forEach(function (a) {\na.classList.remove(\"is-soon\");\na.classList.add(\"is-done\");\n});\nfunction mark() {\ndocument.querySelectorAll(\".ga-ch-spine a[href], .ga-bs-tile\").forEach(function (el) {\nvar a = el.matches(\"a\") ? el : el.querySelector(\"a[href]\");\nvar id = a && idOf(a.getAttribute(\"href\"));\nif (!id) return;\nel.classList.toggle(\"ga-was-read\", !!store[id] && !el.classList.contains(\"is-now\"));\n});\n}\nmark();\nvar pm = (document.body.className || \"\").match(\/postid-(\\d+)\/);\nvar here = pm && pm[1];\nvar bodyP = document.querySelectorAll(\".ga-ch-body p\");\nvar end = bodyP.length ? bodyP[bodyP.length - 1] : null;\nif (here && seriesOf[here] && end && \"IntersectionObserver\" in window) {\nvar eo = new IntersectionObserver(function (es) {\nes.forEach(function (e) {\nif (!e.isIntersecting) return;\nstore[here] = Date.now();\nsave();\neo.disconnect();\nmark();\n});\n});\neo.observe(end);\n}\ndocument.querySelectorAll(\".ga-feature\").forEach(function (feat) {\nif (isMine(feat) || feat.querySelector(\".ga-continue\")) return;\nvar link = feat.querySelector(\"a[href*='\/projects\/']\");\nvar pp = link && (link.pathname || \"\").replace(\/^\\\/nl(?=\\\/|$)\/, \"\").replace(\/\\\/+$\/, \"\");\nvar cat = pp === \"\/projects\/ai-101\" ? \"ai101\" : pp === \"\/projects\/ai-and-agency\" ? \"ai-agency\" : null;\nvar parts = cat && CHAPTER_PARTS[cat];\nif (!parts || !window.fetch) return;\nvar readN = parts.filter(function (p) { return store[String(p[0])]; }).length;\nif (!readN) return;\nvar ids = parts.map(function (p) { return p[0]; }).join(\",\");\nfetch(\"\/wp-json\/wp\/v2\/posts?include=\" + ids + \"&per_page=20&_fields=id\", { credentials: \"omit\" })\n.then(function (r) { return r.ok ? r.json() : []; })\n.then(function (live) {\nvar out = {};\n(live || []).forEach(function (p) { out[String(p.id)] = true; });\nvar next = parts.filter(function (p) { return out[String(p[0])] && !store[String(p[0])]; })[0];\nvar text = feat.querySelector(\".ga-feature-text\") || feat.querySelector(\".elementor-widget-text-editor\");\nif (!text || feat.querySelector(\".ga-continue\")) return;\nvar line;\nif (next) {\nline = document.createElement(\"a\");\nline.href = \"\/\" + (NL ? \"nl\/\" : \"\") + next[1] + \"\/\";\nvar no = String(parts.indexOf(next) + 1);\nline.textContent = say(\"CONTINUE \u00b7 \", \"VERDER \u00b7 \") + (no.length < 2 ? \"0\" + no : no) + \"  \" + next[2] + \" \u2192\";\n} else {\nline = document.createElement(\"span\");\nline.textContent = say(\"UP TO DATE \u00b7 \", \"BIJ \u00b7 \") + readN + say(\" READ\", \" GELEZEN\");\n}\nline.className = \"ga-continue\";\n(text.querySelector(\".elementor-widget-container\") || text).appendChild(line);\n})\n.catch(function () {  });\n});\n})();\nvar cards = document.querySelectorAll(\".eael-grid-post, .ga-score, .ga-lid, .ga-ledger, .ga-feature, .ga-prow\");\ncards.forEach(function (c, i) {\nif (breathe && c.closest(\".ga-rows\")) return;\nc.classList.add(\"ga-reveal\", \"ga-ruled\");\nc.style.setProperty(\"--ga-delay\", (i % 6) * 60 + \"ms\");\n});\nif (!reduced && \"IntersectionObserver\" in window) {\nvar io = new IntersectionObserver(function (entries) {\nentries.forEach(function (e) {\nif (!e.isIntersecting) return;\nvar card = e.target, quick = quickOf(e);\nif (quick) card.classList.add(\"ga-quick\");\ncard.classList.add(\"is-in\");\nio.unobserve(card);\nsetTimeout(function () {\ncard.style.setProperty(\"--ga-delay\", \"0ms\");\ncard.classList.add(\"ga-settled\");\n}, quick ? 260 : 1200);\n});\n}, { threshold: 0.2, rootMargin: REACH });\ndocument.querySelectorAll(\".ga-reveal\").forEach(function (el) { io.observe(el); });\n} else {\ndocument.querySelectorAll(\".ga-reveal\").forEach(function (el) { el.classList.add(\"is-in\"); });\n}\nvar numSpan = scoreEl ? scoreEl.querySelector(\".ga-num\") : null;\nif (numSpan && !breathe) {\nvar slateBox = scoreEl.closest(\".ga-score\") || scoreEl;\nonIn(slateBox, function (still) {\nif (still) { slateBox.classList.add(\"is-counted\"); return; }\ncountTo(numSpan, scoreVal, 200);\nsetTimeout(function () { slateBox.classList.add(\"is-counted\"); }, 200 + token(\"--ga-t-count\", 1000));\n});\n}\nvar slot = document.querySelector(\"[data-ga-meta]\");\nif (!slot) {\nvar dwrap = document.querySelector(\".ga-meta-date\");\nvar dateEl = null;\nif (dwrap) {\ndateEl = [].slice.call(dwrap.querySelectorAll(\".elementor-heading-title\")).filter(function (t) {\nreturn \/\\d{1,2}-\\d{1,2}-\\d{4}\/.test(t.textContent);\n})[0] || dwrap.querySelector(\".elementor-heading-title\");\n}\nif (dateEl) {\nslot = document.createElement(\"span\");\nslot.className = \"ga-meta-derived\";\ndateEl.appendChild(slot);\n}\n}\nif (slot && article) {\nvar words = article.textContent.trim().split(\/\\s+\/).length;\nvar mins = Math.max(1, Math.round(words \/ 220));\nvar pre = slot.className === \"ga-meta-derived\" ? \"  \u00b7  \" : \"\";\nslot.textContent = \"\";\nvar mEl = document.createElement(\"span\");\nmEl.className = \"ga-meta-min\";\nmEl.textContent = pre + mins + \" MIN\";\nslot.appendChild(mEl);\nvar sEl = document.createElement(\"span\");\nsEl.className = \"ga-meta-sections\";\nsEl.textContent = \"  \u00b7  \" + (heads.length || 1) + say(\" SECTIONS\", \" SECTIES\");\nslot.appendChild(sEl);\n}\ndocument.querySelectorAll(\".elementor-heading-title\").forEach(function (t) {\nif (isMine(t) || t.hasAttribute(\"data-ga-date\")) return;\nvar walk = document.createTreeWalker(t, NodeFilter.SHOW_TEXT, null), node;\nwhile ((node = walk.nextNode())) {\nvar said = saidDate(node.nodeValue);\nif (!said) continue;\nt.setAttribute(\"data-ga-date\", node.nodeValue.trim());\nnode.nodeValue = node.nodeValue.replace(node.nodeValue.trim(), said);\nbreak;\n}\n});\n(function () {\nif (!document.createTreeWalker || !document.body) return;\nvar walkM = document.createTreeWalker(document.body, 4, null), tn;\nvar hits = [];\nwhile ((tn = walkM.nextNode())) {\nvar v = tn.nodeValue;\nif (v.indexOf(\"\u00b7\") < 0 || !\/\\d{1,2}-\\d{1,2}-\\d{4}\/.test(v)) continue;\nvar pe = tn.parentElement;\nif (!pe || isMine(pe) || pe.closest(\"script, style, textarea, input\")) continue;\nhits.push(tn);\n}\nhits.forEach(function (node) {\nnode.nodeValue = node.nodeValue.replace(\/(^|\u00b7\\s*)(\\d{1,2}-\\d{1,2}-\\d{4})(?=\\s*(\u00b7|$))\/g, function (all, pre, d) {\nreturn pre + (saidDate(d) || d);\n});\n});\n})();\nvar MONTHS = [\"january|januari\", \"february|februari\", \"march|maart\", \"april\", \"may|mei\", \"june|juni\",\n\"july|juli\", \"august|augustus\", \"september\", \"october|oktober\", \"november\", \"december\"];\ndocument.querySelectorAll(\".eael-grid-post time\").forEach(function (tm) {\nif (tm.hasAttribute(\"data-ga-date\") || tm.children.length) return;\nvar d = tm.textContent.trim().match(\/^(\\d{1,2})\\s+([A-Za-z]+)\\s+(\\d{4})$\/);\nif (!d) return;\nvar mi = -1;\nMONTHS.forEach(function (names, i) { if (names.split(\"|\").indexOf(d[2].toLowerCase()) > -1) mi = i; });\nif (mi < 0) return;\ntm.setAttribute(\"data-ga-date\", tm.textContent.trim());\ntm.textContent = saidDate(d[1] + \"-\" + (mi + 1) + \"-\" + d[3]);\nvar age = (Date.now() - new Date(+d[3], mi, +d[1]).getTime()) \/ 864e5;\nvar kindEl = tm.closest(\".eael-grid-post\");\nkindEl = kindEl && kindEl.querySelector(\".ga-row-kind\");\nif (age >= 0 && age < 10 && kindEl && !kindEl.querySelector(\".ga-new\")) {\nvar nw = document.createElement(\"span\");\nnw.className = \"ga-new\";\nnw.textContent = say(\"NEW\", \"NIEUW\");\nkindEl.appendChild(nw);\n}\n});\nif (breathe) root.classList.add(\"ga-breathe\");\nvar breathers = [];\nvar awakeIO = breathe ? new IntersectionObserver(function (es) {\nes.forEach(function (e) { e.target.classList.toggle(\"ga-awake\", e.isIntersecting); });\n}, { threshold: 0 }) : null;\nfunction whileSeen(el) {\nif (!awakeIO || !el || isMine(el) || breathers.indexOf(el) > -1) return;\nbreathers.push(el);\nawakeIO.observe(el);\n}\nif (breathe) {\ndocument.addEventListener(\"visibilitychange\", function () {\nroot.classList.toggle(\"ga-tab-hidden\", document.hidden);\nbreathers.forEach(function (el) {\nif (document.hidden) { el.classList.remove(\"ga-awake\"); return; }\nawakeIO.unobserve(el);\nawakeIO.observe(el);\n});\n});\n}\nvar seenIOs = {}, seenFns = new Map();\nfunction onSeen(el, share, fn) {\nif (!el) return;\nif (!breathe) { fn(true, false); return; }\nvar key = String(share);\nif (!seenIOs[key]) {\nseenIOs[key] = new IntersectionObserver(function (es) {\nes.forEach(function (e) {\nif (!e.isIntersecting || !seenFns.has(e.target)) return;\nseenIOs[key].unobserve(e.target);\nvar f = seenFns.get(e.target), quick = quickOf(e);\nseenFns.delete(e.target);\nif (quick) e.target.classList.add(\"ga-quick\");\nf(false, quick);\n});\n}, { threshold: share, rootMargin: REACH });\n}\nseenFns.set(el, fn);\nseenIOs[key].observe(el);\n}\nfunction wordsOf(box, masked) {\nvar out = [];\nif (!box || !document.createTreeWalker) return out;\nvar walk = document.createTreeWalker(box, 4, null), tn, nodes = [];\nwhile ((tn = walk.nextNode())) nodes.push(tn);\nnodes.forEach(function (node) {\nif (!node.nodeValue.trim() || !node.parentNode) return;\nif (node.parentElement && node.parentElement.closest(\"script, style, .ga-lw, .ga-mw\")) return;\nvar frag = document.createDocumentFragment();\nnode.nodeValue.split(\/(\\s+)\/).forEach(function (part) {\nif (!part) return;\nif (!part.trim()) { frag.appendChild(document.createTextNode(part)); return; }\nvar w = document.createElement(\"span\");\nif (masked) {\nw.className = \"ga-mw\";\nvar inner = document.createElement(\"span\");\ninner.className = \"ga-mi\";\ninner.textContent = part;\nw.appendChild(inner);\n} else {\nw.className = \"ga-lw\";\nw.textContent = part;\n}\nfrag.appendChild(w);\nout.push(w);\n});\nnode.parentNode.replaceChild(frag, node);\n});\nreturn out;\n}\nfunction lineIndex(words) {\nvar top = null, n = -1;\nwords.forEach(function (w) {\nvar t = w.offsetTop;\nif (top === null || t > top + 2) { n++; top = t; }\nw.style.setProperty(\"--ga-ln\", String(n));\n});\nreturn n + 1;\n}\nfunction measured(words, then) {\nvar go = function () { var lines = lineIndex(words); if (then) then(lines); };\ngo();\nif (document.fonts && document.fonts.ready) document.fonts.ready.then(go);\n}\nfunction linesIn(w, dek) {\nif (!breathe || !w || isMine(w) || w.hasAttribute(\"data-ga-lines\")) return;\nvar box = w.classList.contains(\"elementor-widget\") ? (w.querySelector(\".elementor-widget-container\") || w) : w;\nvar words = wordsOf(box, false);\nif (!words.length) return;\nw.setAttribute(\"data-ga-lines\", \"1\");\nw.classList.add(\"ga-lines\");\nif (dek) w.classList.add(\"ga-lines--dek\");\nmeasured(words);\n}\nfunction typeIt(el, start) {\nif (!breathe || !el || isMine(el) || el.hasAttribute(\"data-ga-type\") || el.children.length) return;\nvar txt = el.textContent;\nif (!txt.trim() || txt.trim().length > 64) return;\nel.setAttribute(\"data-ga-type\", \"1\");\nvar heading = \/^H[1-6]$\/.test(el.tagName);\nif (heading) el.setAttribute(\"aria-label\", txt.trim());\nel.textContent = \"\";\nvar box = document.createElement(\"span\");\nif (heading) box.setAttribute(\"aria-hidden\", \"true\");\nvar n = 0;\nfor (var ci = 0; ci < txt.length; ci++) {\nvar ch = txt.charAt(ci);\nif (\/\\s\/.test(ch)) { box.appendChild(document.createTextNode(ch)); continue; }\nvar s = document.createElement(\"span\");\ns.className = \"ga-tw\";\ns.style.setProperty(\"--ga-c\", String(n++));\ns.textContent = ch;\nbox.appendChild(s);\n}\nel.appendChild(box);\nel.style.setProperty(\"--ga-tw0\", start + \"ms\");\nel.style.setProperty(\"--ga-tws\", Math.min(26, 700 \/ Math.max(1, n)).toFixed(1) + \"ms\");\n}\nfunction wordRise(title) {\nif (!breathe || !title || title.hasAttribute(\"data-ga-wr\")) return;\ntitle.setAttribute(\"data-ga-wr\", \"1\");\nvar plain = title.children.length === 0;\nif (!plain) { title.classList.add(\"ga-wr\"); return; }\nvar words = title.textContent.trim().split(\/\\s+\/);\ntitle.textContent = \"\";\nwords.forEach(function (w, wi) {\nvar s = document.createElement(\"span\");\ns.className = \"ga-wr\";\ns.style.setProperty(\"--ga-i\", String(wi));\ns.textContent = w;\ntitle.appendChild(s);\nif (wi < words.length - 1) title.appendChild(document.createTextNode(\" \"));\n});\n}\nvar homeHero = document.querySelector(\".elementor-3554 > .ga-hh\");\nif (homeHero) {\nwhileSeen(homeHero);\nvar cue = homeHero.querySelector(\".ga-hh-cue\");\nif (cue && breathe) {\nvar cueOff = function () {\nif ((window.scrollY || window.pageYOffset || 0) < 4) return;\ncue.classList.add(\"ga-cue-done\");\nwindow.removeEventListener(\"scroll\", cueOff);\n};\nwindow.addEventListener(\"scroll\", cueOff, { passive: true });\n}\n}\nvar homeShelfSec = document.querySelector(\".elementor-3554 > .ga-hs\");\nif (homeShelfSec) onSeen(homeShelfSec, 0.2, function () { homeShelfSec.classList.add(\"is-in\"); });\ndocument.querySelectorAll(\".ga-shelf\").forEach(function (sh) {\nif (isMine(sh) || sh.hasAttribute(\"data-ga-shelf\")) return;\nsh.setAttribute(\"data-ga-shelf\", \"1\");\nvar strip = sh.querySelector(\".ga-shelf-strip\");\nif (!strip) return;\n[\"is-l\", \"is-r\"].forEach(function (k) {\nvar f = document.createElement(\"i\");\nf.className = \"ga-shelf-fade \" + k;\nf.setAttribute(\"aria-hidden\", \"true\");\nsh.appendChild(f);\n});\nsh.querySelectorAll(\".ga-shelf-bay img\").forEach(function (im) {\nvar bay = im.parentNode;\nvar lit = function () {\nvar src = im.currentSrc || im.src;\nif (!src) return;\nbay.style.setProperty(\"--ga-art\", 'url(\"' + src.replace(\/\"\/g, \"%22\") + '\")');\nif (im.naturalWidth && Math.abs(im.naturalWidth - im.naturalHeight) < 4) bay.classList.add(\"is-full\");\n};\nif (im.complete && im.naturalWidth) lit(); else im.addEventListener(\"load\", lit, { once: true });\n});\nif (!breathe || !window.requestAnimationFrame) return;\nvar items = [].slice.call(strip.children);\nif (!items.length) return;\nitems.forEach(function (li) {\nvar c = li.cloneNode(true);\nc.setAttribute(\"aria-hidden\", \"true\");\nc.classList.add(\"ga-shelf-clone\");\nc.querySelectorAll(\"a\").forEach(function (a) { a.setAttribute(\"tabindex\", \"-1\"); });\nstrip.appendChild(c);\n});\nif (!strip.animate) return;\nsh.classList.add(\"ga-drift\");\nsh.style.touchAction = \"pan-y\";\nvar lap = 0, anim = null, want = true, seen = false, ramp = 0, resumeT = 0, drag = null, moved = false;\nvar lapMs = function () { return window.innerWidth <= 767 ? 60000 : 40000; };\nvar mod = function (t, d) { return ((t % d) + d) % d; };\nfunction build() {\nvar dur = lapMs(), frac = 0, rate = 1, held = false;\nif (anim) {\nvar od = anim.effect.getTiming().duration;\nfrac = mod(anim.currentTime || 0, od) \/ od;\nrate = anim.playbackRate;\nheld = anim.playState === \"paused\";\nanim.cancel();\n}\nlap = strip.children[items.length].offsetLeft - items[0].offsetLeft;\nanim = strip.animate([{ transform: \"translate3d(0, 0, 0)\" }, { transform: \"translate3d(\" + (-lap) + \"px, 0, 0)\" }],\n{ duration: dur, iterations: Infinity });\nanim.currentTime = frac * dur;\nanim.playbackRate = rate;\nif (held || !seen) anim.pause();\n}\nbuild();\nvar rebuildT = 0;\nwindow.addEventListener(\"resize\", function () { clearTimeout(rebuildT); rebuildT = setTimeout(build, 150); });\nfunction rateTo(target, ms, shape) {\ncancelAnimationFrame(ramp);\nvar from = anim.playbackRate, t0 = performance.now();\nif (target > 0) { if (anim.playState === \"paused\") anim.play(); }\n(function step(now) {\nvar p = Math.min(1, Math.max(0, (now - t0) \/ ms));\nanim.playbackRate = from + (target - from) * shape(p);\nif (p < 1) ramp = requestAnimationFrame(step);\nelse if (target === 0) anim.pause();\n})(t0);\n}\nfunction stop() { clearTimeout(resumeT); want = false; rateTo(0, 800, function (p) { return 1 - Math.pow(1 - p, 2.5); }); }\nfunction resumeLater() {\nclearTimeout(resumeT);\nresumeT = setTimeout(function () { want = true; if (seen) rateTo(1, 800, function (p) { return p * p; }); }, 800);\n}\nnew IntersectionObserver(function (es) {\nes.forEach(function (e) {\nseen = e.isIntersecting;\nif (!seen) { cancelAnimationFrame(ramp); anim.pause(); }\nelse if (want && !document.hidden) { anim.playbackRate = 1; anim.play(); }\n});\n}, { threshold: 0 }).observe(sh);\ndocument.addEventListener(\"visibilitychange\", function () {\nif (document.hidden) anim.pause(); else if (seen && want) anim.play();\n});\nfunction shiftBy(px) { var d = anim.effect.getTiming().duration; anim.currentTime = mod((anim.currentTime || 0) + px \/ lap * d, d); }\nsh.addEventListener(\"pointerenter\", function (e) { if (e.pointerType === \"mouse\") stop(); });\nsh.addEventListener(\"pointerleave\", function (e) { if (e.pointerType === \"mouse\") resumeLater(); });\nsh.addEventListener(\"focusin\", function (e) {\nstop();\nvar tile = e.target.closest ? e.target.closest(\"li\") : null;\nif (!tile) return;\nvar r = tile.getBoundingClientRect(), b = sh.getBoundingClientRect();\nif (r.left < b.left + 40) shiftBy(-(b.left + 40 - r.left));\nelse if (r.right > b.right - 60) shiftBy(r.right - (b.right - 60));\n});\nsh.addEventListener(\"focusout\", function (e) { if (!sh.contains(e.relatedTarget)) resumeLater(); });\nsh.addEventListener(\"pointerdown\", function (e) {\nif (e.pointerType === \"mouse\") return;\nclearTimeout(resumeT); cancelAnimationFrame(ramp);\nwant = false; anim.pause(); anim.playbackRate = 0;\ndrag = { x0: e.clientX, t: anim.currentTime || 0 };\nmoved = false;\n});\nsh.addEventListener(\"pointermove\", function (e) {\nif (!drag) return;\nvar dx = e.clientX - drag.x0, d = anim.effect.getTiming().duration;\nif (Math.abs(dx) > 6) moved = true;\nanim.currentTime = mod(drag.t - dx \/ lap * d, d);\n});\nvar release = function () { if (!drag) return; drag = null; resumeLater(); };\nsh.addEventListener(\"pointerup\", release);\nsh.addEventListener(\"pointercancel\", release);\nsh.addEventListener(\"click\", function (e) { if (moved) { e.preventDefault(); moved = false; } }, true);\n});\nvar breathTitles = [];\ndocument.querySelectorAll(\"h1.elementor-heading-title, h1.ga-ch-title\").forEach(function (t) {\nif (isMine(t) || t.closest(\".she-header-yes, .ga-x-header, footer, .ga-hh\")) return;\nbreathTitles.push(t);\nwhileSeen(t);\n});\nfunction arriveSkip(w) {\nreturn isMine(w) || !!w.querySelector(\"h1\") || !!w.closest(\".ga-reveal, .ga-arrive\")\n|| w.classList.contains(\"elementor-invisible\")\n|| w.matches(\".elementor-widget-image, .elementor-widget-html, .ga-rh-kind, .ga-rh-lede, .ga-section-title\");\n}\nbreathTitles.forEach(function (t) {\nif (t.classList.contains(\"ga-ch-title\")) { wordRise(t); return; }\nif (t.closest(\".ga-rh-title\")) { wordRise(t); return; }\nif (t.classList.contains(\"ga-pc-title\") || t.classList.contains(\"ga-ph-name\")) return;\nprintIt(t);\nif (!breathe) return;\nvar hero = t.closest(\".ga-band\");\nvar own = t.closest(\".elementor-widget\");\nvar list = [];\nif (hero) {\nif (hero.hasAttribute(\"data-ga-arrive\")) return;\nhero.setAttribute(\"data-ga-arrive\", \"1\");\nlist = [].slice.call(hero.querySelectorAll(\".elementor-widget\"));\n} else if (own) {\nfor (var nx = own.nextElementSibling; nx && list.length < 3; nx = nx.nextElementSibling) {\nif (nx.classList.contains(\"elementor-widget\")) list.push(nx);\n}\nlist.unshift(own);\n}\nvar seenT = false, above = 0, under = 0, acts = 0;\nlist.forEach(function (w) {\nif (w.contains(t)) { seenT = true; return; }\nif (arriveSkip(w)) return;\nvar act = w.matches(\".elementor-widget-button, .elementor-widget-elementskit-dual-button, .elementor-widget-elementskit-button\") || !!w.querySelector(\"a.ga-btn\");\nvar d = !seenT ? 250 + Math.min(above++, 3) * 80\n: act ? 1110 + Math.min(acts++, 3) * 80\n: 1030 + Math.min(under++, 4) * 80;\nw.classList.add(\"ga-arrive\");\nw.style.setProperty(\"--ga-d\", d + \"ms\");\n});\nif (hero && !hero.querySelector(\":scope > .ga-air\")) {\nvar air = document.createElement(\"i\");\nair.className = \"ga-air\";\nair.setAttribute(\"aria-hidden\", \"true\");\nhero.insertBefore(air, hero.firstChild);\nwhileSeen(hero);\n}\n});\nvar leaners = [];\nif (breathe) {\nvar leanStart = performance.now() + (curtain ? 480 : 0) + 2600;\nvar breathOf = function (p) { return (1 - Math.cos(Math.PI * Math.max(0, Math.min(1, p)))) \/ 2; };\nvar swell = function (p, a, b) { return p <= a ? 0 : p <= b ? breathOf((p - a) \/ (b - a)) : breathOf((1 - p) \/ (1 - b)); };\nbreathTitles.forEach(function (t) {\nvar parts = t.classList.contains(\"ga-print\") ? [t] : [].slice.call(t.querySelectorAll(\".ga-print\"));\nif (parts.length) leaners.push({ el: t, set: function (p) { var k = (0.35 * swell(p, 0, 0.5)).toFixed(3); parts.forEach(function (x) { x.style.setProperty(\"--ga-k\", k); }); } });\n});\nvar hhTitle = homeHero && homeHero.querySelector(\".ga-hh-title .elementor-heading-title\");\nif (hhTitle) leaners.push({ el: homeHero, set: function (p) {\nhhTitle.style.setProperty(\"--ga-l4\", swell(p, 0, 0.5).toFixed(3));\nhhTitle.style.setProperty(\"--ga-l3\", swell(p, 0.075, 0.575).toFixed(3));\nhhTitle.style.setProperty(\"--ga-l2\", swell(p, 0.15, 0.65).toFixed(3));\n} });\nif (leaners.length) setInterval(function () {\nif (document.hidden || root.classList.contains(\"ga-scrolling\")) return;\nvar t = performance.now() - leanStart;\nif (t < 0) return;\nvar p = (t % 16000) \/ 16000;\nleaners.forEach(function (L) { if (L.el.classList.contains(\"ga-awake\")) L.set(p); });\n}, 250);\n}\ndocument.querySelectorAll(\".ga-ch-kick\").forEach(function (k) { typeIt(k, 200); });\ndocument.querySelectorAll(\".ga-ch-lede\").forEach(function (l) { linesIn(l, true); });\nif (breathe) document.querySelectorAll(\".ga-ch-onward\").forEach(function (o) { o.classList.add(\"ga-wayon\"); });\ndocument.querySelectorAll(\".ga-rh-kind .elementor-heading-title\").forEach(function (k) { typeIt(k, 200); });\ndocument.querySelectorAll(\".ga-rh-meta\").forEach(function (m) { linesIn(m, true); });\nvar lightBand = document.querySelector(\".ga-rh-band\");\nif (lightBand) whileSeen(lightBand);\nif (breathe) document.querySelectorAll(\".ga-section-title\").forEach(function (st) {\nif (isMine(st) || st.closest(\".ga-reveal, .ga-feature, .ga-lid, .ga-hh, .ga-hs\") || st.classList.contains(\"ga-arrive\")) return;\nvar ht = st.querySelector(\".elementor-heading-title\");\nif (ht && !ht.querySelector(\".ga-st-t\")) {\nvar sp = document.createElement(\"span\");\nsp.className = \"ga-st-t\";\nwhile (ht.firstChild) sp.appendChild(ht.firstChild);\nht.appendChild(sp);\n}\nst.classList.add(\"ga-rise\");\nvar group = [];\nfor (var sx = st.nextElementSibling; sx && group.length < 4; sx = sx.nextElementSibling) {\nif (!sx.classList.contains(\"elementor-widget\") || sx.classList.contains(\"ga-section-title\")\n|| sx.classList.contains(\"ga-reveal\") || sx.classList.contains(\"ga-arrive\")\n|| sx.querySelector(\".ga-reveal, .ga-mark, img\")) break;\ngroup.push(sx);\n}\ngroup.forEach(function (g) {\nif (g.matches(\".elementor-widget-text-editor\")) { linesIn(g, false); return; }\nvar act = g.matches(\".elementor-widget-button, .elementor-widget-elementskit-dual-button\") || !!g.querySelector(\"a.ga-btn\");\ng.classList.add(\"ga-rise\");\ng.style.setProperty(\"--ga-d\", act ? \"1200ms\" : \"480ms\");\n});\nonIn(st, function (still, quick) {\nst.classList.add(\"is-in\");\ngroup.forEach(function (g) { if (quick) g.classList.add(\"ga-quick\"); g.classList.add(\"is-in\"); });\n});\n});\nif (breathe) document.querySelectorAll(\".ga-rh-lede, .ga-pull\").forEach(function (sm) {\nif (isMine(sm) || !sm.classList.contains(\"elementor-widget\") || sm.hasAttribute(\"data-ga-stmt\")) return;\nvar box = sm.querySelector(\".elementor-widget-container\") || sm;\nvar words = wordsOf(box, true);\nif (!words.length) return;\nsm.setAttribute(\"data-ga-stmt\", \"1\");\nsm.classList.add(\"ga-stmt2\");\nvar lines = 1;\nmeasured(words, function (n) {\nlines = n;\nwords.forEach(function (w) {\nw.classList.toggle(\"ga-echo\", +w.style.getPropertyValue(\"--ga-ln\") === n - 1);\n});\n});\nwhileSeen(sm);\nonSeen(sm, 0.4, function (still, quick) {\nsm.classList.add(\"is-in\");\nsetTimeout(function () { sm.classList.add(\"ga-landed\"); }, quick ? 260 : 200 + lines * 120 + 640);\nvar echo = [].slice.call(sm.querySelectorAll(\".ga-echo > .ga-mi\"));\nif (!echo.length) return;\nvar spent = quick ? 740 : 0, last = performance.now();\nvar reveal = function (x) { var u = 1 - Math.max(0, Math.min(1, x)); return 1 - u * u * u; };\nvar iv = setInterval(function () {\nvar now = performance.now(), dt = now - last;\nlast = now;\nif (document.hidden || root.classList.contains(\"ga-scrolling\") || !sm.classList.contains(\"ga-awake\")) return;\nspent += dt;\nvar ea = reveal((spent - 740) \/ 500), dr = Math.max(0, Math.min(1, (spent - 740) \/ 5260));\necho.forEach(function (w) {\nw.style.setProperty(\"--ga-ea\", ea.toFixed(3));\nw.style.setProperty(\"--ga-echo\", dr.toFixed(3));\n});\nif (dr >= 1) clearInterval(iv);\n}, 100);\n});\n});\nfunction rollIn(slate, num, val) {\nvar txt = num.textContent.trim();\nif (!\/^\\d{1,3}$\/.test(txt)) return false;\nvar cs = window.getComputedStyle(num.parentNode || num);\nvar lh = parseFloat(cs.lineHeight);\nif (isNaN(lh)) lh = parseFloat(cs.fontSize) * 1.2;\nvar sr = document.createElement(\"span\");\nsr.className = \"ga-sr\";\nsr.textContent = txt;\nvar roll = document.createElement(\"span\");\nroll.className = \"ga-roll\";\nroll.setAttribute(\"aria-hidden\", \"true\");\nroll.style.setProperty(\"--ga-lh\", lh.toFixed(2) + \"px\");\ntxt.split(\"\").forEach(function (d) {\nvar rd = document.createElement(\"span\");\nrd.className = \"ga-rd\";\nvar rs = document.createElement(\"span\");\nrs.className = \"ga-rs\";\nfor (var k = 0; k < 20; k++) {\nvar s = document.createElement(\"span\");\ns.textContent = String(k % 10);\nrs.appendChild(s);\n}\nrs.style.setProperty(\"--ga-rt\", String(10 + +d));\nrd.style.setProperty(\"--ga-di\", String(roll.children.length));\nrd.style.setProperty(\"--ga-dn\", String(txt.length));\nrd.appendChild(rs);\nroll.appendChild(rd);\n});\nnum.textContent = \"\";\nnum.appendChild(sr);\nnum.appendChild(roll);\nslate.style.setProperty(\"--ga-sf\", String(Math.max(0, Math.min(1, val \/ 100))));\nonSeen(slate, 0.5, function () {\nslate.classList.add(\"is-counting\");\nsetTimeout(function () { slate.classList.add(\"is-counted\"); }, 1300);\n});\nreturn true;\n}\nif (breathe && numSpan) {\nvar slate6 = scoreEl.closest(\".ga-score\") || scoreEl;\nif (!slate6.hasAttribute(\"data-ga-roll\")) {\nslate6.setAttribute(\"data-ga-roll\", \"1\");\nrollIn(slate6, numSpan, scoreVal);\n}\n}\nvar DEVELOP = \".ga-rows .eael-entry-media, .ga-lid > .elementor-widget-image > .elementor-widget-container, \" +\n\".ga-ledger .ga-card-art > .elementor-widget-container, .ga-rh-art > .elementor-widget-container, \" +\n\".ga-ch-square, .ga-pt-cover, .ga-prow > .elementor-widget-image > .elementor-widget-container\";\nif (breathe) document.querySelectorAll(DEVELOP).forEach(function (m, mi) {\nif (isMine(m) || m.hasAttribute(\"data-ga-dev\")) return;\nvar img = m.querySelector(\"img\");\nif (!img) return;\nm.setAttribute(\"data-ga-dev\", \"1\");\nm.classList.add(\"ga-develop\", \"ga-art-x\");\nm.style.setProperty(\"--ga-h\", String(mi % 7));\nif (m.matches(\".ga-rh-art > .elementor-widget-container, .ga-ch-square, .ga-pt-cover\")) m.classList.add(\"ga-breath4\");\nvar dev = document.createElement(\"i\");\ndev.className = \"ga-dev\";\ndev.setAttribute(\"aria-hidden\", \"true\");\nm.appendChild(dev);\nvar done = function () {\nonSeen(m, 1 \/ 3, function (still, quick) {\nm.classList.add(\"is-in\");\nsetTimeout(function () { m.classList.add(\"ga-developed\"); }, quick ? 420 : 1400);\n});\n};\nif (img.decode) img.decode().then(done, done);\nelse if (img.complete) done();\nelse img.addEventListener(\"load\", done, { once: true });\nif (!m.closest(\".ga-rows\")) whileSeen(m);\n});\nvar depthEls = [];\nif (breathe) document.querySelectorAll(\".ga-rh-art > .elementor-widget-container, .ga-pt-cover\").forEach(function (d) {\nif (isMine(d)) return;\nd.classList.add(\"ga-depth\");\ndepthEls.push(d);\n});\nfunction depthMeasure() {\nvar phone = window.innerWidth <= 767, f = phone ? 0.05 : 0.1, cap = phone ? 24 : 48;\ndepthEls.forEach(function (d) { d.style.setProperty(\"--ga-dr\", Math.min(cap, Math.round((window.innerHeight + d.offsetHeight) * f)) + \"px\"); });\n}\nif (depthEls.length) { depthMeasure(); window.addEventListener(\"resize\", depthMeasure); }\nvar IX = \".ga-rows .eael-grid-post, .ga-board-row, .ga-pt-prow, .ga-ch-spine a\";\nvar ixBatch = [], ixTimer = 0;\nvar ixIO = breathe ? new IntersectionObserver(function (es) {\nes.forEach(function (e) {\nif (!e.isIntersecting) return;\nixIO.unobserve(e.target);\nif (quickOf(e)) { e.target.classList.add(\"ga-quick\", \"is-in\"); return; }\nixBatch.push({ row: e.target, top: e.boundingClientRect.top });\n});\nclearTimeout(ixTimer);\nixTimer = setTimeout(function () {\nixBatch.sort(function (a, b) { return a.top - b.top; });\nixBatch.forEach(function (o, i) { o.row.style.setProperty(\"--ga-xn\", String(Math.min(i, 12))); o.row.classList.add(\"is-in\"); });\nixBatch = [];\n}, 16);\n}, { threshold: 0.2, rootMargin: REACH }) : null;\nvar finePointer = window.matchMedia(\"(hover: hover) and (pointer: fine)\").matches;\nif (breathe) document.querySelectorAll(IX).forEach(function (row) {\nif (isMine(row) || row.classList.contains(\"ga-board-head\") || row.hasAttribute(\"data-ga-ix\")) return;\nrow.setAttribute(\"data-ga-ix\", \"1\");\nrow.classList.add(\"ga-ix\");\nrow.classList.remove(\"ga-reveal\");\nvar spine = row.matches(\".ga-ch-spine a\");\nif (!spine) {\nvar hair = document.createElement(\"i\");\nhair.className = \"ga-ix-hair\";\nhair.setAttribute(\"aria-hidden\", \"true\");\nrow.appendChild(hair);\nvar plate = document.createElement(\"i\");\nplate.className = \"ga-ix-plate\";\nplate.setAttribute(\"aria-hidden\", \"true\");\nrow.insertBefore(plate, row.firstChild);\nrow.classList.add(\"ga-ix-p\");\nvar ttl = row.querySelector(\".eael-entry-title, .elementor-widget-heading:first-of-type .elementor-heading-title\");\nif (ttl) ttl.classList.add(\"ga-ix-title\");\nif (finePointer) {\nrow.addEventListener(\"pointerenter\", function () { if (!flying()) row.classList.add(\"ga-ix-hover\"); });\nrow.addEventListener(\"pointermove\", function () { if (!flying() && !row.classList.contains(\"ga-ix-hover\")) row.classList.add(\"ga-ix-hover\"); }, { passive: true });\nrow.addEventListener(\"pointerleave\", function () { row.classList.remove(\"ga-ix-hover\"); });\n}\nrow.addEventListener(\"focusin\", function () { row.classList.add(\"ga-ix-hover\"); });\nrow.addEventListener(\"focusout\", function () { row.classList.remove(\"ga-ix-hover\"); });\n}\nixIO.observe(row);\n});\ndocument.querySelectorAll(\".ga-bs-tile\").forEach(function (tile) {\nvar sib = tile.parentNode ? [].slice.call(tile.parentNode.children).indexOf(tile) : 0;\ntile.style.setProperty(\"--ga-xn\", String(Math.min(Math.max(sib, 0), 12)));\n});\nif (breathe) document.querySelectorAll(\".ga-ledger, .ga-prow, .ga-feature, .ga-lid, .eael-grid-post\").forEach(function (card) {\nif (isMine(card) || card.closest(\".ga-rows\") || card.hasAttribute(\"data-ga-card\")) return;\ncard.setAttribute(\"data-ga-card\", \"1\");\ncard.classList.add(\"ga-card-x\");\nvar t = null;\n[\".ga-card-title .elementor-heading-title\", \".eael-entry-title\", \"h3.elementor-heading-title\", \"h2.elementor-heading-title\"].some(function (q) { t = card.querySelector(q); return !!t; });\nif (t && !t.querySelector(\".ga-card-ul\")) {\nif (window.getComputedStyle(t).position === \"static\") t.style.position = \"relative\";\nvar ul = document.createElement(\"i\");\nul.className = \"ga-card-ul\";\nul.setAttribute(\"aria-hidden\", \"true\");\nt.appendChild(ul);\n}\n});\ndocument.querySelectorAll(\"a.ga-btn, .ga-ch-btn, .ga-card-x a\").forEach(function (a) {\nif (isMine(a) || a.querySelector(\".ga-arw, .ga-card-arw\") || !document.createTreeWalker) return;\nvar walk = document.createTreeWalker(a, 4, null), tn, hit = null;\nwhile ((tn = walk.nextNode())) { if (\/\u2192\\s*$\/.test(tn.nodeValue)) hit = tn; }\nif (!hit) return;\nvar i = hit.nodeValue.lastIndexOf(\"\u2192\");\nvar tail = hit.splitText(i);\ntail.nodeValue = tail.nodeValue.replace(\/\\s+$\/, \"\");\nvar s = document.createElement(\"span\");\ns.className = a.classList.contains(\"ga-btn\") || a.classList.contains(\"ga-ch-btn\") ? \"ga-arw\" : \"ga-card-arw\";\ns.setAttribute(\"aria-hidden\", \"true\");\nvar host = tail.parentNode;\nhost.replaceChild(s, tail);\ns.appendChild(tail);\nif (host === a && \/flex|grid\/.test(window.getComputedStyle(a).display)) {\nvar lbl = document.createElement(\"span\");\nlbl.className = \"ga-lbl\";\nwhile (a.firstChild) lbl.appendChild(a.firstChild);\na.appendChild(lbl);\n}\n});\nvar LIGHT = \".ga-ledger, .ga-prow, .ga-feature, .ga-score, .eael-grid-post-holder, .ga-board-row, .ga-pt-prow\";\nfunction glowIn(card) {\nvar g = card.querySelector(\":scope > .ga-glow\");\nif (!g) {\ng = document.createElement(\"i\");\ng.className = \"ga-glow\";\ng.setAttribute(\"aria-hidden\", \"true\");\ncard.insertBefore(g, card.firstChild);\ncard.classList.add(\"ga-glow-host\");\n}\ncard.gaGlow = g;\nreturn g;\n}\nif (breathe && finePointer) {\nvar litGrid = null, litCards = [], rects = null, gx = 0, gy = 0, tx = 0, ty = 0, glowRaf = 0, inGrid = false;\nvar REACH_PX = 380;\nwindow.addEventListener(\"scroll\", function () { rects = null; }, { passive: true });\nwindow.addEventListener(\"resize\", function () { rects = null; });\nvar glowTick = function () {\nglowRaf = 0;\ngx += (tx - gx) * 0.12;\ngy += (ty - gy) * 0.12;\nif (!rects) rects = litCards.map(function (c) { return c.getBoundingClientRect(); });\nfor (var gi = 0; gi < litCards.length; gi++) {\nvar r = rects[gi], g = litCards[gi].gaGlow;\nif (!g || gx < r.left - REACH_PX || gx > r.right + REACH_PX || gy < r.top - REACH_PX || gy > r.bottom + REACH_PX) continue;\ng.style.setProperty(\"--ga-mx\", Math.round(gx - r.left) + \"px\");\ng.style.setProperty(\"--ga-my\", Math.round(gy - r.top) + \"px\");\n}\nif (inGrid || Math.abs(tx - gx) + Math.abs(ty - gy) > 0.5) glowRaf = requestAnimationFrame(glowTick);\n};\ndocument.addEventListener(\"pointermove\", function (e) {\nvar c = e.target && e.target.closest ? e.target.closest(LIGHT) : null;\nif (c && isMine(c)) c = null;\nvar grid = c ? (c.matches(\".eael-grid-post-holder\") ? c.closest(\".eael-post-grid, .eael-post-grid-container\") || c.parentNode : c.parentNode) : null;\ntx = e.clientX; ty = e.clientY;\nif (grid !== litGrid) {\nlitCards.forEach(function (k) { k.classList.remove(\"ga-glow-on\"); });\nlitGrid = grid;\nlitCards = grid ? [].filter.call(grid.querySelectorAll(LIGHT), function (k) { return !isMine(k); }) : [];\nrects = null;\nif (litCards.length) { gx = tx; gy = ty; }\nlitCards.forEach(function (k) { glowIn(k); k.classList.add(\"ga-glow-on\"); });\n}\ninGrid = !!grid;\nif (!glowRaf && litCards.length) glowRaf = requestAnimationFrame(glowTick);\n}, { passive: true });\nroot.addEventListener(\"pointerleave\", function () {\nlitCards.forEach(function (k) { k.classList.remove(\"ga-glow-on\"); });\nlitGrid = null; litCards = []; inGrid = false;\n});\n} else if (breathe) {\ndocument.addEventListener(\"pointerdown\", function (e) {\nvar c = e.target && e.target.closest ? e.target.closest(LIGHT) : null;\nif (!c || isMine(c)) return;\nvar g = glowIn(c);\nvar r = c.getBoundingClientRect();\ng.style.setProperty(\"--ga-mx\", Math.round(e.clientX - r.left) + \"px\");\ng.style.setProperty(\"--ga-my\", Math.round(e.clientY - r.top) + \"px\");\nc.classList.remove(\"ga-bloom\");\nvoid c.offsetWidth;\nc.classList.add(\"ga-bloom\");\nsetTimeout(function () { c.classList.remove(\"ga-bloom\"); }, 560);\n}, { passive: true });\n}\nvar WAIT = \".ga-btn-off, .ga-prog.is-soon, .ga-bs-tile.is-soon, .ga-ch-spine .is-soon, span.ga-ch-btn, .ga-pt-prow.is-soon, .ga-pt-entry.is-soon\";\nif (breathe) {\nvar waitN = new Map();\ndocument.querySelectorAll(WAIT).forEach(function (w) {\nif (isMine(w)) return;\nvar p = w.parentNode, n = waitN.get(p) || 0;\nwaitN.set(p, n + 1);\nw.classList.add(\"ga-wait\");\nw.style.setProperty(\"--ga-wn\", String(n % 8));\nwhileSeen(w);\n});\n}\nvar breathHeads = [].filter.call(document.querySelectorAll(\".she-header-yes\"), function (h) { return !isMine(h); });\nif (breathe && breathHeads.length) {\nvar headY = window.scrollY || window.pageYOffset || 0, headTick = false;\nwindow.addEventListener(\"scroll\", function () {\nif (headTick) return;\nheadTick = true;\nrequestAnimationFrame(function () {\nheadTick = false;\nvar y = window.scrollY || window.pageYOffset || 0, dy = y - headY;\nif (Math.abs(dy) < 8) return;\nheadY = y;\nvar fe = document.activeElement;\nvar focusIn = !!fe && fe !== document.body && fe.matches && fe.matches(\":focus-visible\")\n&& breathHeads.some(function (h) { return h.contains(fe); });\nvar away = dy > 0 && y > 120 && !focusIn && !root.classList.contains(\"ga-menu-open\");\nif (away === root.classList.contains(\"ga-head-away\")) return;\nroot.classList.toggle(\"ga-head-away\", away);\nsetTimeout(function () {\nvar bar = document.querySelector(\".eael-reading-progress-wrap, .ga-read\");\nif (root.classList.contains(\"ga-head-away\")) { if (bar) bar.style.top = \"0px\"; }\nelse onScroll();\n}, 260);\n});\n}, { passive: true });\ndocument.addEventListener(\"focusin\", function (e) {\nvar kb = e.target && e.target.matches && e.target.matches(\":focus-visible\");\nif (kb && breathHeads.some(function (h) { return h.contains(e.target); })) root.classList.remove(\"ga-head-away\");\n});\n}\ndocument.querySelectorAll(\".ga-mnav nav li\").forEach(function (li, li2) {\nli.style.setProperty(\"--ga-li\", String(Math.min(li2, 8)));\n});\nonScroll();\n});\n})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-be70520 e-con-full she-header-yes elementor-hidden-mobile ga-h-centred ga-x-header e-flex e-con e-parent\" data-id=\"be70520\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;transparent&quot;:&quot;yes&quot;,&quot;scroll_distance&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;scroll_distance_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;transparent_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;scroll_distance_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_offset_top&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;she_offset_top_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_offset_top_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_width&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;she_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:0,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:0,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;she_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;she_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\">\n\t\t<div class=\"elementor-element elementor-element-c87e6ee e-con-full e-flex e-con e-child\" data-id=\"c87e6ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-2007f52 ga-x-logo elementor-widget elementor-widget-heading\" data-id=\"2007f52\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/\">GLENNABRAAS<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-23e819e e-grid e-con-full e-transform e-con e-child\" data-id=\"23e819e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_transform_scale_effect_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1.01,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_hover_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_scale_effect_hover_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-2f9ef0c elementor-widget elementor-widget-heading\" data-id=\"2f9ef0c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/projects\/\">PROJECTS<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-daade9b elementor-widget elementor-widget-heading\" data-id=\"daade9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/news\/\">NEWS<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-8f09b74 elementor-widget elementor-widget-heading\" data-id=\"8f09b74\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/contact\/\">CONTACT<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-c825b0b elementor-widget elementor-widget-heading\" data-id=\"c825b0b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/about\/\" rel=\"nofollow\">ABOUT<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-ebf9db7 elementor-widget elementor-widget-heading\" data-id=\"ebf9db7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.online\/\" target=\"_blank\" rel=\"nofollow\">NOTES<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16b626c elementor-widget elementor-widget-shortcode\" data-id=\"16b626c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div class=\"trp-shortcode-switcher__wrapper\"\r\n     style=\"--bg:#060813;--bg-hover:#000000;--text:#f8fafc;--text-hover:#f8fafc;--border:none;--border-width:0px;--border-color:#060813;--border-radius:0px;--flag-radius:2px;--flag-size:18px;--aspect-ratio:1;--font-size:14px;--transition-duration:0s\"\r\n     role=\"group\"\r\n     data-open-mode=\"hover\">\r\n\r\n    \r\n        <!-- ANCHOR (in-flow only; sizing\/borders; inert) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-anchor trp-open-on-hover\"\r\n             aria-hidden=\"true\"\r\n             inert\r\n             data-no-translation>\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <a class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation href=\"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811#TRPLINKPROCESSED\" title=\"\"><img decoding=\"async\" src=\"https:\/\/glennabraas.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/1x1\/nl_NL.svg\" class=\"trp-flag-image trp-flag-square\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><\/a>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewBox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n            <\/div>\r\n\r\n        <!-- OVERLAY (positioned; interactive surface) -->\r\n        <div class=\"trp-language-switcher trp-ls-dropdown trp-shortcode-switcher trp-shortcode-overlay trp-open-on-hover\"\r\n             role=\"navigation\"\r\n             aria-label=\"Site taalkiezer\"\r\n             data-no-translation\r\n        >\r\n                <div class=\"trp-current-language-item__wrapper\">\r\n        <div class=\"trp-language-item trp-language-item__default trp-language-item__current\" data-no-translation role=\"button\" aria-expanded=\"false\" tabindex=\"0\" aria-label=\"Taal wijzigen\" aria-controls=\"trp-shortcode-dropdown-6adfb93071519\"><img decoding=\"async\" src=\"https:\/\/glennabraas.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/1x1\/nl_NL.svg\" class=\"trp-flag-image trp-flag-square\" alt=\"\" role=\"presentation\" loading=\"lazy\" \/><\/div>                    <svg class=\"trp-shortcode-arrow\" width=\"20\" height=\"20\" viewBox=\"0 0 20 21\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                <path d=\"M5 8L10 13L15 8\" stroke=\"var(--text)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n            <\/svg>\r\n            <\/div>\r\n    \r\n            <div class=\"trp-switcher-dropdown-list\"\r\n                 id=\"trp-shortcode-dropdown-6adfb93071519\"\r\n                 role=\"group\"\r\n                 aria-label=\"Beschikbare talen\"\r\n                 hidden\r\n                 inert\r\n            >\r\n                                                            <a class=\"trp-language-item\" href=\"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811#TRPLINKPROCESSED\" title=\"\">\r\n                            <img decoding=\"async\" src=\"https:\/\/glennabraas.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/1x1\/en_US.svg\" class=\"trp-flag-image trp-flag-square\" alt=\"Taal wijzigen naar English\" loading=\"lazy\" \/>                                                                                <\/a>\r\n                                                <\/div>\r\n        <\/div>\r\n\r\n    <\/div>\r\n<\/div>\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-f21feac e-con-full she-header-yes elementor-hidden-desktop elementor-hidden-tablet she-header-hide-on-scroll-yes e-flex e-con e-parent\" data-id=\"f21feac\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;transparent&quot;:&quot;yes&quot;,&quot;hide_header&quot;:&quot;yes&quot;,&quot;scroll_distance_hide_header_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:60,&quot;sizes&quot;:[]},&quot;scroll_distance_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;transparent_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;scroll_distance&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:60,&quot;sizes&quot;:[]},&quot;scroll_distance_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_offset_top&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;she_offset_top_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_offset_top_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_width&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;she_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;she_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:0,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:0,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;she_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;she_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;scroll_distance_hide_header&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:500,&quot;sizes&quot;:[]},&quot;scroll_distance_hide_header_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\">\n\t\t<div class=\"elementor-element elementor-element-1d25930 e-grid e-con-full e-con e-child\" data-id=\"1d25930\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa8cca5 elementor-widget elementor-widget-heading\" data-id=\"fa8cca5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/\">GLENNABRAAS<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b412f77 hfe-nav-menu__align-right hfe-submenu-animation-slide_up hfe-nav-menu__breakpoint-mobile hfe-submenu-icon-arrow hfe-link-redirect-child elementor-widget elementor-widget-navigation-menu\" data-id=\"b412f77\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;padding_horizontal_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;menu_space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;menu_row_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:11,&quot;sizes&quot;:[]},&quot;width_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:25,&quot;sizes&quot;:[]},&quot;distance_from_menu_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;toggle_size_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:30,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_row_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_row_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;dropdown_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;width_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;220&quot;,&quot;sizes&quot;:[]},&quot;width_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"navigation-menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"hfe-nav-menu hfe-layout-horizontal hfe-nav-menu-layout horizontal hfe-pointer__framed hfe-animation__fade\" data-layout=\"horizontal\">\n\t\t\t\t<div role=\"button\" class=\"hfe-nav-menu__toggle elementor-clickable\" tabindex=\"0\" aria-label=\"Menu toggle\">\n\t\t\t\t\t<span class=\"screen-reader-text\">Menu<\/span>\n\t\t\t\t\t<div class=\"hfe-nav-menu-icon\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\"  class=\"e-font-icon-svg e-fas-align-justify\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<nav class=\"hfe-nav-menu__layout-horizontal hfe-nav-menu__submenu-arrow\" data-toggle-icon=\"&lt;svg aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;e-font-icon-svg e-fas-align-justify&quot; viewBox=&quot;0 0 448 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-close-icon=\"&lt;svg aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;e-font-icon-svg e-far-window-close&quot; viewBox=&quot;0 0 512 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-full-width=\"yes\">\n\t\t\t\t\t<ul id=\"menu-1-b412f77\" class=\"hfe-nav-menu\"><li id=\"menu-item-2510\" class=\"trp-language-switcher-container trp-menu-ls-item trp-menu-ls-desktop menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item parent hfe-creative-menu\"><a href=\"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811#TRPLINKPROCESSED\" class = \"hfe-menu-item\"><span class=\"trp-menu-ls-label\" data-no-translation title=\"English\"><img loading=\"lazy\" src=\"https:\/\/glennabraas.com\/wp-content\/plugins\/translatepress-multilingual\/assets\/flags\/1x1\/en_US.svg\" class=\"trp-flag-image trp-flag-rounded\" alt=\"\" role=\"presentation\" loading=\"lazy\" decoding=\"async\" width=\"18\" height=\"14\" \/> <span class=\"trp-ls-language-name\">English<\/span><\/span><\/a><\/li>\n<li id=\"menu-item-3627\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/glennabraas.com\/nl\/projects\/\" class = \"hfe-menu-item\">Projects<\/a><\/li>\n<li id=\"menu-item-3628\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/glennabraas.com\/nl\/news\/\" class = \"hfe-menu-item\">News<\/a><\/li>\n<li id=\"menu-item-3629\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/glennabraas.com\/nl\/contact\/\" class = \"hfe-menu-item\">Contact<\/a><\/li>\n<li id=\"menu-item-3630\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/glennabraas.com\/nl\/about\/\" class = \"hfe-menu-item\">About<\/a><\/li>\n<li id=\"menu-item-2330\" class=\"menu-item menu-item-type-custom menu-item-object-custom parent hfe-creative-menu\"><a href=\"https:\/\/Glennabraas.Online\" class = \"hfe-menu-item\">Notes<\/a><\/li>\n<\/ul> \n\t\t\t\t<\/nav>\n\t\t\t<\/div>\n\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>\n\t\t<div class=\"elementor-element elementor-element-e915b1b e-con-full ga-ep-page e-flex e-con e-parent\" data-id=\"e915b1b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e1af04 elementor-widget elementor-widget-html\" data-id=\"2e1af04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style id=\"ga-ep-css\">body{background-color:#060813}.ga-ep{--ink:#060813;--plate:#0B0E1C;--ghost:#F8FAFC;--peach:#FDBA74;--lilac:#DD99DD;--steel:#68768A;--ramp:linear-gradient(90deg,#FDBA74,#DD99DD);--ease:cubic-bezier(.2,.7,.2,1);--sora:\"Sora\",sans-serif;--mono:\"Courier Prime\",monospace;--body:\"Outfit\",system-ui,sans-serif;background:var(--ink);color:var(--ghost);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip;padding-bottom:80px}.ga-ep *{box-sizing:border-box}.ga-ep :where(p,h1,h2,ol,li,figure,blockquote){margin:0;padding:0}.ga-ep :where(ol){list-style:none}.ga-ep a{color:inherit!important;-webkit-text-fill-color:currentColor;text-decoration:none!important}.ga-ep-wide{max-width:1092px;margin:0 auto;padding:0 20px}.ga-ep-col{max-width:730px;margin:0 auto;padding:0 20px}.ga-ep-mono{font-family:var(--mono);font-weight:700;font-size:12px;line-height:18px;letter-spacing:.16em;text-transform:uppercase}\/* the ticket *\/.ga-ep-ticket{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;margin-top:24px;background:var(--plate);border:1px solid rgba(253,186,116,.55);min-height:43px}.ga-ep-stub{position:relative;padding:0 22px;color:var(--peach);font-size:11px;letter-spacing:.2em;border-right:1px dashed rgba(253,186,116,.55);align-self:stretch;display:flex;align-items:center}.ga-ep-who{display:flex;align-items:baseline;gap:18px;padding:0 26px}.ga-ep .ga-ep-who a{font-family:var(--sora);font-weight:800;font-size:16px;letter-spacing:0;color:var(--peach)!important;text-transform:uppercase}.ga-ep-who span{color:var(--ghost)}.ga-ep-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:0 10px}.ga-ep-strip i{height:4px;background:rgba(104,118,138,.45)}.ga-ep-strip i.is-past{background:var(--peach)}.ga-ep-strip i.is-now{background:var(--ramp)}.ga-ep-steps{display:flex;gap:22px;padding:0 22px;color:var(--peach)}\/* the masthead *\/.ga-ep-mast{display:grid;grid-template-columns:150px minmax(0,1fr);gap:40px;padding-top:64px;align-items:start}.ga-ep-flap{display:grid;gap:8px;color:var(--peach);font-size:11px}.ga-ep-flap b{position:relative;display:block;height:96px;background:var(--plate);border:1px solid rgba(104,118,138,.45);text-align:center;font-family:var(--mono);font-weight:700;font-size:96px;line-height:96px;letter-spacing:0;background-image:var(--ramp);-webkit-background-clip:text;background-clip:text;color:transparent}.ga-ep-flap b::after{content:\"\";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(6,8,19,.9)}.ga-ep .ga-ep-title{font-family:var(--sora);font-weight:800;font-size:64px;line-height:68px;letter-spacing:-1.5px;color:var(--ghost);margin:0;text-transform:none}.ga-ep-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:16px;color:var(--peach)}.ga-ep-meta span:first-child{color:var(--lilac)}.ga-ep-meta i{font-style:normal}\/* the poster *\/.ga-ep-bay{position:relative;height:460px;margin-top:48px;overflow:hidden;background:var(--ink);isolation:isolate}.ga-ep-bay .ga-ep-back{position:absolute;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);max-width:none;object-fit:cover;filter:blur(40px);z-index:-2}.ga-ep-bay::before{content:\"\";position:absolute;inset:0;background:rgba(6,8,19,.6);z-index:-1}.ga-ep-bay .ga-ep-poster{position:absolute;left:50%;top:50%;width:280px;height:420px;max-width:none;translate:-50% -50%;object-fit:cover;border-radius:0;box-shadow:0 12px 32px rgba(0,0,0,.45)}\/* previously *\/.ga-ep-prev{display:grid;gap:8px;margin-top:40px;padding:18px 22px;background:rgba(253,186,116,.06);border-left:2px solid var(--peach)}.ga-ep-prev .ga-ep-mono{font-size:11px;color:var(--peach)}.ga-ep .ga-ep-prev p:last-child{font-weight:300;font-size:16px;line-height:26px;color:var(--ghost)}\/* the reading *\/.ga-ep-body{display:grid;gap:22px;margin-top:40px}.ga-ep .ga-ep-body p{font-weight:400;font-size:16px;line-height:30px;letter-spacing:.01em;color:var(--ghost);text-wrap:pretty}.ga-ep .ga-ep-body>p:first-child::first-letter{float:left;font-family:var(--sora);font-weight:800;font-size:86px;line-height:70px;margin:2px 14px 0 0;background:var(--ramp);-webkit-background-clip:text;background-clip:text;color:transparent}.ga-ep .ga-ep-quote{position:relative;margin:18px 0;max-width:640px;padding:8px 0 8px 34px}.ga-ep-quote::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--peach),var(--lilac))}.ga-ep .ga-ep-quote p{font-family:var(--mono);font-weight:700;font-style:italic;font-size:22px;line-height:30px;letter-spacing:1px;color:var(--ghost)}\/* onward *\/.ga-ep-next{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;margin-top:56px;padding:30px 34px;background:var(--peach);color:var(--ink)!important;transition:translate .24s var(--ease)}.ga-ep-next:hover{translate:0 -3px}.ga-ep-next b{font-family:var(--mono);font-weight:700;font-size:56px;line-height:50px;color:var(--ink)}.ga-ep-next .ga-ep-mono{font-size:11px;line-height:11px;color:var(--ink)}.ga-ep-next strong{display:block;margin-top:6px;font-family:var(--sora);font-weight:800;font-size:24px;line-height:28px;color:var(--ink)}.ga-ep-next i{font-style:normal;font-family:var(--sora);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--peach);background:var(--ink);padding:11px 22px;border-radius:22px}.ga-ep-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:24px}.ga-ep-tiles a{display:block;padding:12px 0;text-align:center;border:1px solid rgba(104,118,138,.45);color:var(--peach)!important;font-family:var(--mono);font-weight:700;font-size:13px;line-height:13px;transition:border-color .22s var(--ease)}.ga-ep-tiles a:hover{border-color:var(--peach)}.ga-ep-tiles a.is-now{background:var(--ramp);border-color:transparent;color:var(--ink)!important}.ga-ep-tilehead{display:none}\/* the essay *\/.ga-ep-es{max-width:660px;margin:0 auto;padding:0 20px}\/* the spoiler note,as on the project page *\/.ga-ep-note{margin-top:48px}.ga-ep-note>span{display:inline-block;padding:5px 10px;background:var(--peach);color:var(--ink);font-family:var(--mono);font-weight:700;font-size:11px;line-height:11px;letter-spacing:2px;text-transform:uppercase}.ga-ep .ga-ep-note p{border:1px solid var(--peach);padding:14px 18px 16px;font-size:16px;line-height:30px;color:var(--ghost)}.ga-ep-note+.ga-ep-bay{margin-top:32px}.ga-ep-es .ga-ep-note{margin-top:40px}.ga-ep-es .ga-ep-note+.ga-ep-fig{margin-top:40px}.ga-ep-sign1{display:grid;gap:14px;padding-top:104px}.ga-ep-sign1::before{content:\"\";width:90px;height:2px;background:var(--ramp)}.ga-ep .ga-ep-es h1.ga-ep-title{font-family:var(--mono);font-weight:700;font-size:26px;line-height:32px;letter-spacing:0}.ga-ep-sign1 .ga-ep-mono{color:var(--steel);font-weight:700}.ga-ep-fig{margin-top:56px}.ga-ep-fig img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:0}.ga-ep-es .ga-ep-body{margin-top:56px}.ga-ep .ga-ep-es .ga-ep-body p{font-size:17px;line-height:32px;letter-spacing:0}.ga-ep .ga-ep-es .ga-ep-body>p:first-child::first-letter{font-size:70px;line-height:62px;padding:6px 12px 4px;margin:4px 16px 0 0;border:1px solid rgba(253,186,116,.55)}.ga-ep-rule{display:block;width:120px;height:2px;margin:16px auto;background:var(--ramp)}.ga-ep-after{display:grid;justify-items:end;gap:14px;margin-top:64px;padding-top:16px;border-top:2px solid transparent;border-image:var(--ramp) 1;text-align:right}.ga-ep .ga-ep-after .ga-ep-last{max-width:520px;font-family:var(--mono);font-weight:400;font-size:14px;line-height:24px;color:var(--ghost)}.ga-ep .ga-ep-after .ga-ep-sig{font-family:var(--sora);font-weight:800;font-size:30px;line-height:38px;background:var(--ramp);-webkit-background-clip:text;background-clip:text;color:transparent}.ga-ep .ga-ep-after .ga-ep-mono{color:var(--peach)}.ga-ep-more{margin-top:80px}.ga-ep-more .ga-ep-mono{font-size:11px;color:var(--peach);padding-bottom:10px;border-bottom:1px solid rgba(104,118,138,.45)}.ga-ep-more a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid rgba(104,118,138,.45);transition:padding .24s var(--ease)}.ga-ep-more a:hover{padding-left:8px}.ga-ep-more strong{font-family:var(--mono);font-weight:700;font-size:18px;line-height:26px;color:var(--ghost)}.ga-ep-more a span{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}.ga-ep-more a span+span{color:var(--lilac);font-weight:700}@media (max-width:767px){.ga-ep-wide,.ga-ep-col,.ga-ep-es{padding:0 20px}.ga-ep-ticket{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;margin-top:0;border-width:0 0 1px;min-height:0;padding:14px 20px;gap:12px;margin-left:-20px;margin-right:-20px}.ga-ep-stub{display:none}.ga-ep-who{display:contents}.ga-ep .ga-ep-who a{font-size:15px}.ga-ep-who span{justify-self:end;font-size:11px}.ga-ep-strip{grid-column:1\/-1;padding:0}.ga-ep-steps{grid-column:1\/-1;justify-content:space-between;padding:0}.ga-ep-mast{grid-template-columns:minmax(0,1fr);gap:10px;padding-top:36px}.ga-ep-flap{display:flex;align-items:center;gap:14px}.ga-ep-flap b{height:auto;background-color:transparent;border:0;font-size:44px;line-height:40px;text-align:left}.ga-ep-flap b::after{display:none}.ga-ep .ga-ep-title{font-size:38px;line-height:42px;letter-spacing:-1px}.ga-ep-meta{margin-top:10px}.ga-ep-dot2{display:none}.ga-ep-credit{flex-basis:100%}.ga-ep-bay{height:320px;margin-top:28px}.ga-ep-bay .ga-ep-poster{width:180px;height:270px}.ga-ep-prev{margin-top:22px}.ga-ep-body{margin-top:34px;gap:20px}.ga-ep .ga-ep-body p{font-size:16px;line-height:28px}.ga-ep .ga-ep-body>p:first-child::first-letter{font-size:62px;line-height:50px;margin:4px 10px 0 0}.ga-ep .ga-ep-quote{padding-left:24px}.ga-ep .ga-ep-quote p{font-size:18px;line-height:28px}.ga-ep-next{grid-template-columns:auto minmax(0,1fr);gap:12px 14px;padding:22px 20px;margin-top:40px}.ga-ep-next b{font-size:40px;line-height:40px}.ga-ep-next i{grid-column:1\/-1;justify-self:start}.ga-ep-tilehead{display:flex;justify-content:space-between;align-items:baseline;margin-top:40px}.ga-ep-tilehead strong{font-family:var(--sora);font-weight:800;font-size:22px;line-height:26px;color:var(--peach)}.ga-ep-tilehead span{color:var(--steel);font-size:10px}.ga-ep-tiles{margin-top:14px}.ga-ep .ga-ep-es h1.ga-ep-title{font-size:20px;line-height:26px}.ga-ep-sign1{padding-top:52px;gap:12px}.ga-ep-note,.ga-ep-es .ga-ep-note{margin-top:28px}.ga-ep .ga-ep-note p{font-size:15px;line-height:26px;padding:12px 14px 14px}.ga-ep-note+.ga-ep-bay,.ga-ep-es .ga-ep-note+.ga-ep-fig{margin-top:28px}.ga-ep-fig{margin-top:36px}.ga-ep-es .ga-ep-body{margin-top:36px}.ga-ep .ga-ep-es .ga-ep-body p{font-size:16px;line-height:29px}.ga-ep .ga-ep-es .ga-ep-body>p:first-child::first-letter{font-size:52px;line-height:46px;padding:4px 9px 2px}.ga-ep-after{margin-top:44px}.ga-ep .ga-ep-after .ga-ep-last{font-size:13px;line-height:22px;max-width:300px}.ga-ep-more{margin-top:52px}.ga-ep-more a{grid-template-columns:minmax(0,1fr) auto;gap:6px 16px}.ga-ep-more a span+span{display:none}.ga-ep-more strong{font-size:17px;line-height:24px}}\/* the desktop header lies over the page;the phone header is in the flow *\/@media (min-width:768px){.ga-ep{padding-top:60px}}@media (prefers-reduced-motion:reduce){.ga-ep *{transition:none!important}}<\/style><div class=\"ga-ep\"><div class=\"ga-ep-wide\"><nav class=\"ga-ep-ticket ga-ep-mono\" aria-label=\"Elsewhere\"><span class=\"ga-ep-stub\" aria-hidden=\"true\">Admit<\/span><span class=\"ga-ep-who\"><a href=\"https:\/\/glennabraas.com\/projects\/elsewhere\/\">Elsewhere<\/a><span>Part 01 of 03<\/span><\/span><span class=\"ga-ep-strip\" aria-hidden=\"true\"><i class=\"is-now\"><\/i><i class=\"\"><\/i><i class=\"\"><\/i><\/span><span class=\"ga-ep-steps\"><a href=\"https:\/\/glennabraas.com\/projects\/elsewhere\/\">\u2190 Intro<\/a><a href=\"https:\/\/glennabraas.com\/elsewhere-paris-texas\/\">02 \u2192<\/a><\/span><\/nav><header class=\"ga-ep-mast\"><p class=\"ga-ep-flap ga-ep-mono\">Part<b aria-hidden=\"true\">01<\/b><\/p><div><h1 class=\"ga-ep-title\">The Odyssey<\/h1><p class=\"ga-ep-meta ga-ep-mono\"><span>24-10-2026<\/span><i aria-hidden=\"true\">\u00b7<\/i><span>3 min<\/span><i class=\"ga-ep-dot2\" aria-hidden=\"true\">\u00b7<\/i><span class=\"ga-ep-credit\">Film \u00b7 2026 \u00b7 Christopher Nolan<\/span><\/p><\/div><\/header><\/div><div class=\"ga-ep-col\"><div class=\"ga-ep-note\"><span>Note<\/span><p>Full spoilers for The Odyssey, including the ending.<\/p><\/div><div class=\"ga-ep-bay\"><img fetchpriority=\"high\" class=\"ga-ep-back\" src=\"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp\" alt=\"\" width=\"600\" height=\"900\" decoding=\"async\"><img class=\"ga-ep-poster\" src=\"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp\" alt=\"The Odyssey film poster, Christopher Nolan (2026)\" width=\"600\" height=\"900\" decoding=\"async\"><\/div><a class=\"ga-ep-prev\" href=\"https:\/\/glennabraas.com\/projects\/elsewhere\/\"><p class=\"ga-ep-mono\">Previously \u00b7 Introduction<\/p><p>You can be homesick for a place you still live in.<\/p><\/a><div class=\"ga-ep-body\"><p>The Odyssey is the oldest story we have about going home, and Christopher Nolan understands that the sea was never the hard part. A war, twenty years, monsters and gods: all of it leads to a smaller and harder question. What happens when the man who comes back is not the man who left?<\/p><p>Nolan could have let this become pure spectacle. The scale is enormous, but it never becomes the point, and that is what lifts the film to a masterpiece. Every mythical encounter works as a moral test. The crew keeps failing in very human ways, through greed, impatience and temptation. Odysseus is expected to be more than that, and to carry the weight of leading them while he is.<\/p><p>What stays with me most is the guilt underneath. Odysseus is the man who thought of the Horse. He knows exactly what happened inside Troy once it was through the gates, and he carries that across the sea. The film lets you suspect that the obstacles are not only in his way. Some of them are places to hide. As long as there is another island, he does not have to arrive and face what peace will ask of him.<\/p><p>That is where the film meets this project. At one point, Odysseus sits on the stairs with Penelope and tells her he did not want to come home after what he had done. It is a quiet moment in a loud film, and it is the one I walked out with. His fear is not that home is gone. It is still there. His fear is that he is no longer someone who belongs in it.<\/p><blockquote class=\"ga-ep-quote ga-reveal\"><p>After all that effort to reclaim a house, what he leaves with is a person.<\/p><\/blockquote><p>Ithaca has not waited for him either. His house is full of suitors who eat his food and court his wife as if he were already dead. They stand for everything Odysseus had to resist on the way: greed, contempt, appetite without limit. The house went on without him and filled up with the wrong things. He cannot simply walk back in. He has to take it back before he can live in it again.<\/p><p>So the ending is a victory, and Nolan stages it as one. Odysseus restores order and proves he is worthy of the place he left. Then he and Penelope take each other by the hand and leave together. I find that last image more telling than the fight before it. After all that effort to reclaim a house, what he leaves with is a person.<\/p><p>That is Odysseus's answer to feeling like a stranger in your own life: you earn your way back. You become someone who belongs again, and then you claim what is yours. It is the answer you want to be true. It is not the only one.<\/p><\/div><a class=\"ga-ep-next\" href=\"https:\/\/glennabraas.com\/elsewhere-paris-texas\/\"><b aria-hidden=\"true\">02<\/b><span><span class=\"ga-ep-mono\">Next in Elsewhere<\/span><strong>Paris, Texas<\/strong><\/span><i>Read<\/i><\/a><p class=\"ga-ep-tilehead\"><strong>All three parts<\/strong><span class=\"ga-ep-mono\">You are at 01<\/span><\/p><nav class=\"ga-ep-tiles\" aria-label=\"The three parts\"><a class=\"is-now\" href=\"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/\" aria-current=\"page\">01<\/a><a class=\"\" href=\"https:\/\/glennabraas.com\/elsewhere-paris-texas\/\">02<\/a><a class=\"\" href=\"https:\/\/glennabraas.com\/i-just-do-not-live-there-now\/\">03<\/a><\/nav><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d525b16 e-con-full e-flex e-con e-parent\" data-id=\"d525b16\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8e599f2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8e599f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f242763 e-con-full e-flex e-con e-child\" data-id=\"f242763\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a25b249 e-grid e-con-full e-con e-child\" data-id=\"a25b249\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a2cc335 elementor-widget elementor-widget-heading\" data-id=\"a2cc335\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/projects\/\">PROJECTS<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-64bc4a9 elementor-widget elementor-widget-heading\" data-id=\"64bc4a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/news\/\">NEWS<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-5ddf898 elementor-widget elementor-widget-heading\" data-id=\"5ddf898\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/contact\/\">CONTACT<\/a><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div data-eael_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" data-eael_opacity_hover=\"{&quot;opacity&quot;:0.5}\" data-eael_hover_duration=\"{&quot;transitionDuration&quot;:1000}\" data-eael_hover_easing=\"{&quot;transitionEasing&quot;:&quot;ease&quot;}\" class=\"eael_hover_effect elementor-element elementor-element-40fdaba elementor-widget elementor-widget-heading\" data-id=\"40fdaba\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_hover_effect_opacity_popover_hover&quot;:&quot;yes&quot;,&quot;eael_hover_effect_opacity_hover&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0.5,&quot;sizes&quot;:[]},&quot;eael_hover_effect_general_settings_easing&quot;:&quot;ease&quot;,&quot;eael_hover_effect_general_settings_hover_easing&quot;:&quot;ease&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/glennabraas.com\/about\/\">ABOUT<\/a><\/h2>\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-3878d20 elementor-widget elementor-widget-elementskit-social-media\" data-id=\"3878d20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementskit-social-media.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" >\t\t\t <ul class=\"ekit_social_media\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"elementor-repeater-item-5adc4e4\">\n\t\t\t\t\t    <a\n\t\t\t\t\t\thref=\"https:\/\/www.facebook.com\/GlennAbraas\" aria-label=\"Facebook\" class=\"facebook\" >\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"icon icon-facebook\"><\/i>\n                                                                                                            <\/a>\n                    <\/li>\n                    \t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"elementor-repeater-item-cbf5f84\">\n\t\t\t\t\t    <a\n\t\t\t\t\t\thref=\"https:\/\/www.instagram.com\/_glenn046\/\" aria-label=\"Instagram\" class=\"instagram\" >\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fab-instagram\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"><\/path><\/svg>\n                                                                                                            <\/a>\n                    <\/li>\n                    \t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"elementor-repeater-item-e54712e\">\n\t\t\t\t\t    <a\n\t\t\t\t\t\thref=\"https:\/\/www.linkedin.com\/in\/glenn-abraas\/\" aria-label=\"LinkedIn\" class=\"linkedin\" >\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"icon icon-linkedin\"><\/i>\n                                                                                                            <\/a>\n                    <\/li>\n                    \t\t\t\t\t\t\t<\/ul>\n\t\t<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b2a996 e-con-full e-flex e-con e-child\" data-id=\"5b2a996\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b284e68 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b284e68\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c69db2f elementor-widget elementor-widget-text-editor\" data-id=\"c69db2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-path-to-node=\"5,0,0\">Copyright \u00a9 2026 GlennAbraas. <br \/>All rights reserved.<\/p>\n<p class=\"ga-foot-legal\"><a href=\"https:\/\/glennabraas.com\/privacybeleid\/\">Privacy<\/a><\/p>\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>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>The Odyssey is het oudste verhaal dat we hebben over naar huis gaan, en Christopher Nolan begrijpt dat de zee nooit het moeilijkste deel was.<\/p>","protected":false},"author":1,"featured_media":3800,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_canvas","format":"standard","meta":{"_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","footnotes":""},"categories":[138,150],"tags":[],"post_folder":[],"class_list":["post-3811","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-article","category-elsewhere"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Odyssey \u00b7 Elsewhere 01 | GlennAbraas<\/title>\n<meta name=\"description\" content=\"The Odyssey is the oldest story we have about going home, and Christopher Nolan understands that the sea was never the hard part.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/glennabraas.com\/nl\/elsewhere-the-odyssey\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Odyssey \u00b7 Elsewhere 01 | GlennAbraas\" \/>\n<meta property=\"og:description\" content=\"The Odyssey is the oldest story we have about going home, and Christopher Nolan understands that the sea was never the hard part.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/glennabraas.com\/nl\/elsewhere-the-odyssey\/\" \/>\n<meta property=\"og:site_name\" content=\"GlennAbraas\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-24T21:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-24T23:32:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Glenn Abraas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Glenn Abraas\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/\"},\"author\":{\"name\":\"Glenn Abraas\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/#\\\/schema\\\/person\\\/aea1340d247c708ca5de9c94df0c96d8\"},\"headline\":\"The Odyssey\",\"datePublished\":\"2026-10-24T21:00:00+00:00\",\"dateModified\":\"2026-10-24T23:32:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/\"},\"wordCount\":2,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/glennabraas.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/elsewhere-the-odyssey.webp\",\"articleSection\":[\"Article\",\"Elsewhere\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/\",\"url\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/\",\"name\":\"The Odyssey \u00b7 Elsewhere 01 | GlennAbraas\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/glennabraas.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/elsewhere-the-odyssey.webp\",\"datePublished\":\"2026-10-24T21:00:00+00:00\",\"dateModified\":\"2026-10-24T23:32:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/#\\\/schema\\\/person\\\/aea1340d247c708ca5de9c94df0c96d8\"},\"description\":\"The Odyssey is the oldest story we have about going home, and Christopher Nolan understands that the sea was never the hard part.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#primaryimage\",\"url\":\"https:\\\/\\\/glennabraas.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/elsewhere-the-odyssey.webp\",\"contentUrl\":\"https:\\\/\\\/glennabraas.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/elsewhere-the-odyssey.webp\",\"width\":600,\"height\":900,\"caption\":\"The Odyssey film poster, Christopher Nolan (2026)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/elsewhere-the-odyssey\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/glennabraas.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Odyssey\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/#website\",\"url\":\"https:\\\/\\\/glennabraas.com\\\/\",\"name\":\"GlennAbraas\",\"description\":\"Glenn Abraas is een creatief die zich toelegt op copywriting, concepting, storytelling en AI-experimenten.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/glennabraas.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/glennabraas.com\\\/#\\\/schema\\\/person\\\/aea1340d247c708ca5de9c94df0c96d8\",\"name\":\"Glenn Abraas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g\",\"caption\":\"Glenn Abraas\"},\"sameAs\":[\"https:\\\/\\\/glennabraas.com\"],\"url\":\"https:\\\/\\\/glennabraas.com\\\/nl\\\/author\\\/glenn-abraas\\\/\",\"address\":{\"@type\":\"PostalAddress\",\"addressCountry\":\"NL\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Odyssey \u00b7 Elsewhere 01 | GlennAbraas","description":"The Odyssey is het oudste verhaal dat we hebben over naar huis gaan, en Christopher Nolan begrijpt dat de zee nooit het moeilijkste deel was.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/glennabraas.com\/nl\/elsewhere-the-odyssey\/","og_locale":"nl_NL","og_type":"article","og_title":"The Odyssey \u00b7 Elsewhere 01 | GlennAbraas","og_description":"The Odyssey is the oldest story we have about going home, and Christopher Nolan understands that the sea was never the hard part.","og_url":"https:\/\/glennabraas.com\/nl\/elsewhere-the-odyssey\/","og_site_name":"GlennAbraas","article_published_time":"2026-10-24T21:00:00+00:00","article_modified_time":"2026-10-24T23:32:02+00:00","og_image":[{"width":600,"height":900,"url":"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp","type":"image\/webp"}],"author":"Glenn Abraas","twitter_card":"summary_large_image","twitter_misc":{"Geschreven door":"Glenn Abraas"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#article","isPartOf":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/"},"author":{"name":"Glenn Abraas","@id":"https:\/\/glennabraas.com\/#\/schema\/person\/aea1340d247c708ca5de9c94df0c96d8"},"headline":"The Odyssey","datePublished":"2026-10-24T21:00:00+00:00","dateModified":"2026-10-24T23:32:02+00:00","mainEntityOfPage":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/"},"wordCount":2,"commentCount":0,"image":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#primaryimage"},"thumbnailUrl":"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp","articleSection":["Article","Elsewhere"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/","url":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/","name":"The Odyssey \u00b7 Elsewhere 01 | GlennAbraas","isPartOf":{"@id":"https:\/\/glennabraas.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#primaryimage"},"image":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#primaryimage"},"thumbnailUrl":"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp","datePublished":"2026-10-24T21:00:00+00:00","dateModified":"2026-10-24T23:32:02+00:00","author":{"@id":"https:\/\/glennabraas.com\/#\/schema\/person\/aea1340d247c708ca5de9c94df0c96d8"},"description":"The Odyssey is het oudste verhaal dat we hebben over naar huis gaan, en Christopher Nolan begrijpt dat de zee nooit het moeilijkste deel was.","breadcrumb":{"@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/glennabraas.com\/elsewhere-the-odyssey\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#primaryimage","url":"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp","contentUrl":"https:\/\/glennabraas.com\/wp-content\/uploads\/2026\/10\/elsewhere-the-odyssey.webp","width":600,"height":900,"caption":"The Odyssey film poster, Christopher Nolan (2026)"},{"@type":"BreadcrumbList","@id":"https:\/\/glennabraas.com\/elsewhere-the-odyssey\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/glennabraas.com\/"},{"@type":"ListItem","position":2,"name":"The Odyssey"}]},{"@type":"WebSite","@id":"https:\/\/glennabraas.com\/#website","url":"https:\/\/glennabraas.com\/","name":"GlennAbraas","description":"Glenn Abraas is een creatief die zich toelegt op copywriting, concepting, storytelling en AI-experimenten.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/glennabraas.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Person","@id":"https:\/\/glennabraas.com\/#\/schema\/person\/aea1340d247c708ca5de9c94df0c96d8","name":"Glenn Abraas","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc2b0bcc701c8fe4f82bd419809de6677282d6a1f42fbc43faffbda3d81106e0?s=96&d=mm&r=g","caption":"Glenn Abraas"},"sameAs":["https:\/\/glennabraas.com"],"url":"https:\/\/glennabraas.com\/nl\/author\/glenn-abraas\/","address":{"@type":"PostalAddress","addressCountry":"NL"}}]}},"_links":{"self":[{"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/comments?post=3811"}],"version-history":[{"count":1,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811\/revisions"}],"predecessor-version":[{"id":3814,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/posts\/3811\/revisions\/3814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/media\/3800"}],"wp:attachment":[{"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/media?parent=3811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/categories?post=3811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/tags?post=3811"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/glennabraas.com\/nl\/wp-json\/wp\/v2\/post_folder?post=3811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}