PageSourceSearch

https://t4d.de/

html t4d.de collected 2026-10-09 04:23:00 UTC 112,078 bytes, 708 lines download raw bytes

1<!DOCTYPE html><html lang="en" dir="ltr" class="2xl:text-[20px]"> <head><!-- Google Consent Mode + GTM nur nach Cookiebot-Consent laden -->
1<script>
2      /* eslint-disable prefer-rest-params, no-var */
3      // Basis: Data Layer & gtag-Helfer (nur lokales State, kein Netzwerkaufruf ohne GTM)
4      window.dataLayer = window.dataLayer || [];
5      function gtag() {
6        window.dataLayer.push(arguments);
7      }
8
9      // GTM-Lade-Funktion, wird erst nach Consent aufgerufen
10      function loadGtm() {
11        if (window.__t4dGtmLoaded) return;
12        window.__t4dGtmLoaded = true;
13
14        (function (w, d, s, l, i) {
15          w[l] = w[l] || [];
16          w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
17          var f = d.getElementsByTagName(s)[0];
18          var j = d.createElement(s);
19          var dl = l != 'dataLayer' ? '&l=' + l : '';
20          j.async = true;
21          j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
22          f.parentNode.insertBefore(j, f);
23        })(window, document, 'script', 'dataLayer', 'GTM-KZ4CNR6G');
24      }
25
26      // Default-Consent: alles denied, bis Cookiebot signalisiert, was erlaubt ist
27      gtag('consent', 'default', {
28        ad_storage: 'denied',
29        ad_personalization: 'denied',
30        ad_user_data: 'denied',
31        analytics_storage: 'denied',
32        functionality_storage: 'denied',
33        personalization_storage: 'denied',
34        security_storage: 'granted',
35        wait_for_update: 500,
36      });
37      gtag('set', 'ads_data_redaction', true);
38      gtag('set', 'url_passthrough', true);
39
40      // Cookiebot-Event auswerten, Consent Mode updaten und GTM ggf. nachladen
41      // CookiebotOnAccept wird gefeuert, wenn User Consent gibt (Accept/Allow selection)
42      window.addEventListener('CookiebotOnAccept', function () {
43        if (!window.Cookiebot || typeof gtag !== 'function') return;
44
45        var c = window.Cookiebot.consent || {};
46
47        gtag('consent', 'update', {
48          ad_storage: c.marketing ? 'granted' : 'denied',
49          ad_user_data: c.marketing ? 'granted' : 'denied',
50          ad_personalization: c.marketing ? 'granted' : 'denied',
51          analytics_storage: c.statistics ? 'granted' : 'denied',
52          personalization_storage: c.preferences ? 'granted' : 'denied',
53          functionality_storage: 'granted',
54          security_storage: 'granted',
55        });
56
57        // Nur wenn Statistik ODER Marketing erlaubt ist, GTM wirklich laden
58        if (c.statistics || c.marketing) {
59          loadGtm();
60        }
61      });
62    </script>
62<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="sitemap" href="/sitemap-index.xml"><!-- Core favicons for modern browsers --><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"><link rel="shortcut icon" href="/favicon.ico"><!-- Apple / iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><!-- PWA / Android --><link rel="manifest" href="/site.webmanifest"><!-- Safari pinned tab (re-using main SVG); color matches T4D dark brand --><link rel="mask-icon" href="/favicon.svg" color="#030620"><!-- Browser UI theme color --><meta name="theme-color" content="#030620"><style>
63  :root {
64    --aw-font-sans: 'Lato';
65    --aw-font-serif: 'Lato';
66    --aw-font-heading: 'Lato';
67
68    --aw-color-primary: #00afeb;
69    --aw-color-secondary: #0083b0;
70    --aw-color-accent: #f39638;
71    --aw-color-accent-700: #b85f00; /* hover shade for accent */
72    --aw-color-accent-800: #8c4800; /* AA-compliant dark accent for solid buttons */
73    /* Status tokens (brand-aligned) */
74    --aw-color-success: #19b3b8; /* teal-cyan from palette */
75    --aw-color-info: #00afeb; /* alias primary */
76    --aw-color-warning: #f39638; /* alias accent */
77
78    --aw-color-text-heading: #000000;
79    --aw-color-text-default: rgb(16 16 16);
80    --aw-color-text-muted: rgb(16 16 16 / 66%);
81    --aw-color-bg-page: #ffffff;
82
83    --aw-color-bg-page-dark: rgb(3 6 32);
84
85    ::selection {
86      background-color: lavender;
87    }
88  }
89
90  .dark {
91    --aw-font-sans: 'Lato';
92    --aw-font-serif: 'Lato';
93    --aw-font-heading: 'Lato';
94
95    --aw-color-primary: #00afeb;
96    --aw-color-secondary: #0083b0;
97    --aw-color-accent: #f39638;
98    --aw-color-accent-700: #b85f00;
99    --aw-color-accent-800: #8c4800;
100
101    --aw-color-text-heading: rgb(247, 248, 248);
102    --aw-color-text-default: rgb(229 236 246);
103    --aw-color-text-muted: rgb(255 255 255);
104    --aw-color-bg-page: rgb(3 6 32);
105
106    ::selection {
107      background-color: black;
108      color: snow;
109    }
110  }
111  /* Utilities */
112  .clamp-2 {
113    display: -webkit-box;
114    -webkit-box-orient: vertical;
115    -webkit-line-clamp: 2;
116    overflow: hidden;
117  }
118</style>
118<script>(function(){const defaultTheme = "dark";
119
120  function applyTheme(theme) {
121    if (theme === 'dark') {
122      document.documentElement.classList.add('dark');
123    } else {
124      document.documentElement.classList.remove('dark');
125    }
126    const matches = document.querySelectorAll('[data-aw-toggle-color-scheme] > input');
127
128    if (matches && matches.length) {
129      matches.forEach((elem) => {
130        elem.checked = theme !== 'dark';
131      });
132    }
133  }
134
135  if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) {
136    applyTheme(defaultTheme.replace(':only', ''));
137  } else if (
138    localStorage.theme === 'dark' ||
139    (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
140  ) {
141    applyTheme('dark');
142  } else {
143    applyTheme('light');
144  }
145})();</script>
145<title>T4D Consulting - Digital Transformation, AI Readiness, Data &amp; MLOps - T4D Consulting</title>
146<meta name="description" content="We remove friction in digital transformations—AI readiness, data &amp; MLOps, and cloud modernization—fast, secure, and human-centered.">
147<meta name="robots" content="index,follow">
148<link rel="canonical" href="https://www.t4d.de">
149<meta property="og:title" content="T4D Consulting - Digital Transformation, AI Readiness, Data &amp; MLOps">
150<meta property="og:description" content="We remove friction in digital transformations—AI readiness, data &amp; MLOps, and cloud modernization—fast, secure, and human-centered.">
151<meta property="og:url" content="https://www.t4d.de">
152<meta property="og:type" content="website">
153<meta property="og:image" content="https://www.t4d.de/.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&amp;fm=jpg&amp;w=1200&amp;h=700">
154<meta property="og:image:width" content="1200">
155<meta property="og:image:height" content="700">
156
157<meta property="og:locale" content="en">
158<meta property="og:site_name" content="T4D Consulting">
159<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://www.t4d.de/.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&fm=jpg&w=1200&h=700"><meta name="google-site-verification" content="orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M">
159<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"T4D Consulting","legalName":"T4D Consulting GmbH","url":"https://www.t4d.de","logo":"https://www.t4d.de/logos/t4d-on-light.svg","foundingDate":"2019","vatID":"DE370070227","address":{"@type":"PostalAddress","streetAddress":"Steinkopfstraße 6–8","postalCode":"61231","addressLocality":"Bad Nauheim","addressCountry":"DE"},"founders":[{"@type":"Person","name":"David Rohrberg","jobTitle":"Managing Director","url":"https://www.linkedin.com/in/david-rohrberg-b524a028/"}],"sameAs":["https://www.linkedin.com/company/t4d-consulting-gmbh/","https://www.youtube.com/@t4d-consulting"]}</script>
159<!-- Cookiebot CMP (automatic cookie blocking) -->
159<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="a5d6c7d6-6c9a-4ca2-bf2b-e9a2e50a9c1b" data-blockingmode="auto" type="text/javascript"></script>
159<!-- End Cookiebot CMP --><!-- Additional head tags injected per-page (e.g. article:modified_time) --><!-- Comment the line below to disable View Transitions --><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="swap">
159<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.DZnDNxNb.js"></script>
159<link rel="stylesheet" href="/_astro/impressum.CMxBFzun.css">
160<style>#floating-header #floating-center{max-width:var(--centerMax, 9999px);transition:max-width .3s ease-out,opacity .3s ease-out}#floating-header.is-condensed #floating-center{max-width:0px;opacity:0;pointer-events:none}@media (prefers-reduced-motion: reduce){#floating-header #floating-center{transition:none}}
161</style>
162<link rel="stylesheet" href="/_astro/impressum.DWW4n7yf.css">
163<style>[data-no-scrollbar]{scrollbar-width:none;-ms-overflow-style:none}[data-no-scrollbar]::-webkit-scrollbar{display:none}@media (min-width: 1024px){[data-team-centered=true]{justify-content:center}[data-team-centered=true]>li{width:18rem;flex-basis:18rem}}
164</style></head> <body class="antialiased text-default bg-page tracking-tight overflow-x-clip"> <!-- Muss vor Header und Inhalt stehen, damit der Skip-Link der erste
165         fokussierbare Knoten ist. Leer, solange keine Seite ihn befuellt. -->       <!-- Floating pill header: Logo (left) - Center links - Contact (right) --><nav class="sticky top-4 z-50 w-full px-3 flex justify-center max-w-7xl mx-auto" id="floating-header" data-astro-cid-prj4z4ss> <div class="group inline-flex w-fit mx-auto items-center gap-2 rounded-2xl bg-white/90 dark:bg-[#030621e6] ring-1 ring-black/5 dark:ring-white/10 backdrop-blur-md px-2 py-2 md:px-3 md:py-2 text-default transition-all duration-300" data-astro-cid-prj4z4ss> <!-- Left: Logo --> <a href="/" class="shrink-0 inline-flex items-center px-3 py-2" data-astro-cid-prj4z4ss> <!-- Responsive, theme-aware logo (expects SVGs in /public/logos) --><span aria-label="T4D Consulting" class="flex items-center gap-2 shrink-0 ml-2 rtl:ml-0 rtl:mr-2"> <!-- Compact logo (no claim) for small/medium screens --> <span class="block lg:hidden"> <img src="/logos/t4d-on-light.svg" alt="T4D Consulting" class="block dark:hidden h-8 md:h-8 w-auto" width="144" height="66"> <img src="/logos/t4d-on-dark.svg" alt="T4D Consulting" class="hidden dark:block h-8 md:h-8 w-auto" width="144" height="66"> </span> <!-- Full logo with claim for large screens and up --> <span class="hidden lg:block"> <img src="/logos/t4d-on-light.svg" alt="T4D Consulting – Shaping your digital future" class="block dark:hidden h-9 w-auto" width="220" height="110"> <img src="/logos/t4d-on-dark.svg" alt="T4D Consulting – Shaping your digital future" class="hidden dark:block h-9 w-auto" width="220" height="110"> </span> </span> </a> <!--
166      Center: Links (collapsible)
167
168      Schwelle lg (1024px), nicht sm (640px): darunter passt die Linkgruppe nicht
169      kollisionsfrei in die Pille. Sie laeuft dann aus diesem zentrierten Flex-
170      Container symmetrisch nach beiden Seiten heraus und legt sich ueber Logo und
171      Theme-Schalter (gemessen 720px: 65px/64px · 834px: 36px/36px · 900px: 3px/3px).
172      Ab 930px liegen konstant 8px Luft zwischen allen Elementen; lg gibt dazu
173      Reserve fuer Schriftladevarianz und laengere CTA-Beschriftungen.
174    --> <div id="floating-center" class="hidden lg:flex items-center justify-center gap-1 md:gap-2 transition-all duration-300 ease-out min-w-0 overflow-hidden whitespace-nowrap" data-astro-cid-prj4z4ss> <ul class="flex items-center gap-1 md:gap-2 text-sm md:text-[0.9375rem] font-medium" data-astro-cid-prj4z4ss> <li data-astro-cid-prj4z4ss> <a href="/#approach" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss> Approach </a> </li><li data-astro-cid-prj4z4ss> <a href="/#services" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss> Services </a> </li><li data-astro-cid-prj4z4ss> <a href="/#use-cases" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss> Use Cases </a> </li><li data-astro-cid-prj4z4ss> <a href="/resources" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss>
174 Resources </a> </li><li data-astro-cid-prj4z4ss> <a href="/#insights" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss> Insights </a> </li><li data-astro-cid-prj4z4ss> <a href="/#about" data-fh-link class="px-3 py-2 rounded-lg hover:bg-primary/10 dark:hover:bg-primary/20 transition-colors whitespace-nowrap data-[active=true]:bg-primary data-[active=true]:text-white" data-astro-cid-prj4z4ss> About Us </a> </li> </ul> </div> <!-- Theme Toggle: always visible, between center and actions --> <div class="shrink-0 flex items-center" data-astro-cid-prj4z4ss> <button type="button" class="inline-flex items-center justify-center rounded-xl text-muted dark:text-gray-400 hover:bg-black/5 dark:hover:bg-white/10 focus:outline-none focus:ring-2 focus:ring-primary/40 transition-colors duration-200 ease-out h-11 w-11 p-0" aria-label="Toggle between Dark and Light mode" data-aw-toggle-color-scheme><svg width="1em" height="1em" class="w-5 h-5 md:w-5 md:h-5" data-icon="tabler:sun">   <symbol id="ai:tabler:sun" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7l-.7.7m0 11.4l.7.7m-12.1-.7l-.7.7"/></symbol><use href="#ai:tabler:sun"></use>  </svg></button> </div> <!-- Right: Actions (Contact) --> <div class="shrink-0 flex items-center" data-astro-cid-prj4z4ss> <span class="ml-1 md:ml-2" data-astro-cid-prj4z4ss> <a class="btn-secondary ml-2 h-11 px-5.5 md:px-6 font-semibold shadow-none text-sm w-auto" href="/#cta" data-astro-cid-prj4z4ss="true">Book CEO-Call</a> </span> </div> </div>  </nav>  <main class="pb-20 md:pb-0">   <section class="relative not-prose overflow-hidden"> <div class="absolute inset-0 pointer-events-none z-0" aria-hidden="true">  <img src="/_astro/hero-image_1_live.DLcwLn3K.jpg" crossorigin="anonymous" referrerpolicy="no-referrer" width="1920" height="1080" srcset="/.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=360&#38;h=210 360w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=640&#38;h=373 640w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=768&#38;h=448 768w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=1024&#38;h=597 1024w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=1440&#38;h=840 1440w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=1920&#38;h=1120 1920w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=2560&#38;h=1493 2560w, /.netlify/images?url=_astro%2Fhero-image_1_live.DLcwLn3K.jpg&#38;w=3840&#38;h=2239 3840w" sizes="(min-width: 2560px) 2560px, (min-width: 1920px) 1920px, (min-width: 1440px) 1440px, (min-width: 1024px) 1024px, 100vw" style="object-fit: cover; object-position: center; max-width: 1920px; max-height: 1080px; aspect-ratio: 1.7777777777777777; width: 100%;" class="absolute left-1/2 -translate-x-1/2 w-full h-full object-contain md:object-cover object-[50%_35%]" loading="eager" alt="T4D - Digital transformation" decoding="async">  </div> <div class="relative z-10 w-full"> <div class="max-w-7xl mx-auto px-4 sm:px-6"> <div class="py-12 md:py-20 lg:py-0 lg:flex lg:items-center lg:h-screen lg:gap-8"> <div class="basis-1/2 text-left pb-10 md:pb-16 mx-auto">  <h1 class="text-[clamp(2rem,6vw,3.5rem)] leading-tight md:leading-[1.15] font-bold tracking-tighter mb-4 font-heading text-white dark:text-gray-200 intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter">
175From Friction to <span class="text-white block sm:inline">Value<sup class="text-[0.5em] align-super">®</sup></span> </h1> <div class="max-w-3xl mx-auto lg:max-w-none hidden lg:block"> <p class="text-base md:text-lg lg:text-xl leading-relaxed text-white mb-6 dark:text-slate-300 xl:max-w-3xl intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter">
176We make transformations frictionless and measurable
177<br>
178- fast, secure, human-centered.
179 <br>
180Get Transparency in 1 Day with our Friction Assessment
181</p> <div class="max-w-xs sm:max-w-md m-auto md:flex flex-nowrap flex-col sm:flex-row sm:justify-center gap-4 lg:justify-start lg:m-0 lg:max-w-7xl intersect-once motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 intersect-quarter"> <div class="flex w-full sm:w-auto"> <a class="btn-primary w-full sm:mb-0" href="#cta">Get clarity in 20 min</a> </div><div class="flex w-full sm:w-auto"> <a class="btn-secondary text-white hover:text-black dark:text-white dark:hover:text-black dark:hover:bg-white dark:hover:border-gray-300 w-full sm:mb-0" href="#services">Explore our services</a> </div> </div> </div>  </div> <div class="basis-1/2">  </div> </div> </div> </div> </section>  <div class="lg:hidden max-w-7xl mx-auto px-4 sm:px-6 mt-6"> <p class="max-w-3xl mx-auto text-center sm:text-center text-xl text-muted dark:text-slate-400">
182We make transformations frictionless and measurable<br>
183- fast, secure, human-centered.<br>
184Get Transparency in 1 Day with our Friction Assessment
185</p> <div class="mt-4 max-w-xs sm:max-w-md m-auto flex flex-nowrap flex-col sm:flex-row sm:justify-center gap-4"> <div class="flex w-full sm:w-auto"> <a class="btn-primary w-full sm:mb-0" href="#cta">Get clarity in 20 min</a> </div> <div class="flex w-full sm:w-auto"> <a class="btn-secondary w-full sm:mb-0 text-black dark:text-white hover:text-black dark:hover:text-black dark:hover:bg-white dark:hover:border-gray-300" href="#services">Explore our services</a> </div> </div> </div>  <section class="relative not-prose scroll-mt-[72px]" id="approach"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  <div class="absolute inset-0 bg-white dark:bg-transparent"></div>  </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade max-w-7xl mx-auto scroll-mt-24 md:scroll-mt-28">  <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-xl sm:mx-auto lg:max-w-2xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Our approach:<br /> expose friction, remove root causes, prove impact</h2><p class="mt-4 max-w-3xl mx-auto sm:text-center text-xl text-muted dark:text-slate-400">The T4D Friction to Value® Framework maps Human, Organizational, Process, and Ecosystem frictions.</p></div> <div class="mx-auto max-w-7xl p-4 md:px-8"> <div class="md:flex  md:gap-16"> <div class="md:basis-1/2 self-center">   <div class="grid mx-auto gap-8 gap-y-4 md:gap-y-8"><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row transition-all duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 max-w-none"><div class="flex"><svg width="1em" height="1em" class="mr-2 rtl:mr-0 rtl:ml-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-secondary dark:bg-secondary text-white p-1 shrink-0 basis-7" data-icon="tabler:check">   <symbol id="ai:tabler:check" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m5 12l5 5L20 7"/></symbol><use href="#ai:tabler:check"></use>  </svg><div class="mt-0.5"><h3 class="text-lg font-medium leading-6 dark:text-white ml-2 rtl:ml-0 rtl:mr-2">Identify – Surface critical frictions &amp; KPIs</h3></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row transition-all duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 max-w-none"><div class="flex"><svg width="1em" height="1em" viewBox="0 0 24 24" class="mr-2 rtl:mr-0 rtl:ml-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-secondary dark:bg-secondary text-white p-1 shrink-0 basis-7" data-icon="tabler:check">   <use href="#ai:tabler:check"></use>  </svg><div class="mt-0.5"><h3 class="text-lg font-medium leading-6 dark:text-white ml-2 rtl:ml-0 rtl:mr-2">Understand – Diagnose root causes and rank the biggest value levers</h3></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row transition-all duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 max-w-none"><div class="flex"><svg width="1em" height="1em" viewBox="0 0 24 24" class="mr-2 rtl:mr-0 rtl:ml-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-secondary dark:bg-secondary text-white p-1 shrink-0 basis-7" data-icon="tabler:check">   <use href="#ai:tabler:check"></use>  </svg><div class="mt-0.5"><h3 class="text-lg font-medium leading-6 dark:text-white ml-2 rtl:ml-0 rtl:mr-2">Design – Define actions, ownership, and success metrics</h3></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row transition-all duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 max-w-none"><div class="flex"><svg width="1em" height="1em" viewBox="0 0 24 24" class="mr-2 rtl:mr-0 rtl:ml-2 inline-flex h-7 w-7 items-center justify-center rounded-full bg-secondary dark:bg-secondary text-white p-1 shrink-0 basis-7" data-icon="tabler:check">   <use href="#ai:tabler:check"></use>  </svg><div class="mt-0.5"><h3 class="text-lg font-medium leading-6 dark:text-white ml-2 rtl:ml-0 rtl:mr-2">Realize Value – Execute, scale, and evidence outcomes</h3></div></div></div></div></div> </div> <div aria-hidden="true" class="mt-10 md:mt-0 md:basis-1/2 mx-auto"> <div class="relative m-auto max-w-4xl intersect-once intersect-quarter motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"> <img src="/_astro/approach_hope_map.CEzznvY9.png" crossorigin="anonymous" referrerpolicy="no-referrer" width="1200" height="675" srcset="/.netlify/images?url=_astro%2Fapproach_hope_map.CEzznvY9.png&#38;w=400&#38;h=228 400w, /.netlify/images?url=_astro%2Fapproach_hope_map.CEzznvY9.png&#38;w=768&#38;h=439 768w, /.netlify/images?url=_astro%2Fapproach_hope_map.CEzznvY9.png&#38;w=1200&#38;h=685 1200w" sizes="(min-width: 1280px) 640px, (min-width: 1024px) 560px, (min-width: 768px) 512px, 100vw" style="object-fit: cover; object-position: center; width: 100%; height: auto; aspect-ratio: 1.7777777777777777;" class="mx-auto w-full rounded-lg bg-gray-500 shadow-lg transition-transform duration-300 will-change-transform motion-safe:hover:scale-[1.01]" alt="T4D approach" loading="lazy" decoding="async"> </div> </div> </div> </div>  </div> </section>  <section class="relative not-prose scroll-mt-[72px]" id="stats"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  <div class="absolute inset-0">  </div>  </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade mx-auto max-w-6xl scroll-mt-24 md:scroll-mt-28">
185  <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Proven impact</h2><p class="mt-4 text-muted text-xl">Evidence from transformations in industries; selected highlights:</p></div> <div class="flex flex-wrap justify-center -m-4 text-center"> <div class="p-4 md:w-1/4 sm:w-1/2 w-full min-w-[220px] text-center md:border-r md:last:border-none dark:md:border-slate-500 intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade intersect-quarter transition-transform duration-300 will-change-transform motion-safe:hover:scale-[1.02]">  <div class="font-heading text-primary text-[2.6rem] font-bold dark:text-white lg:text-5xl xl:text-6xl"> 20+ </div> <div class="text-sm md:text-base font-medium uppercase tracking-widest text-gray-800 dark:text-slate-400"> Digital pioneers </div> </div><div class="p-4 md:w-1/4 sm:w-1/2 w-full min-w-[220px] text-center md:border-r md:last:border-none dark:md:border-slate-500 intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade intersect-quarter transition-transform duration-300 will-change-transform motion-safe:hover:scale-[1.02]">  <div class="font-heading text-primary text-[2.6rem] font-bold dark:text-white lg:text-5xl xl:text-6xl"> 50+ </div> <div class="text-sm md:text-base font-medium uppercase tracking-widest text-gray-800 dark:text-slate-400"> Projects delivered </div> </div><div class="p-4 md:w-1/4 sm:w-1/2 w-full min-w-[220px] text-center md:border-r md:last:border-none dark:md:border-slate-500 intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade intersect-quarter transition-transform duration-300 will-change-transform motion-safe:hover:scale-[1.02]">  <div class="font-heading text-primary text-[2.6rem] font-bold dark:text-white lg:text-5xl xl:text-6xl"> 15+ </div> <div class="text-sm md:text-base font-medium uppercase tracking-widest text-gray-800 dark:text-slate-400"> Customers empowered </div> </div><div class="p-4 md:w-1/4 sm:w-1/2 w-full min-w-[220px] text-center md:border-r md:last:border-none dark:md:border-slate-500 intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade intersect-quarter transition-transform duration-300 will-change-transform motion-safe:hover:scale-[1.02]">  <div class="font-heading text-primary text-[2.6rem] font-bold dark:text-white lg:text-5xl xl:text-6xl"> 100+ </div> <div class="text-sm md:text-base font-medium uppercase tracking-widest text-gray-800 dark:text-slate-400"> Countries experienced </div> </div> </div>  </div> </section>  <section class="relative not-prose scroll-mt-[72px]" id="services"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  </div> <div class="relative mx-auto px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade scroll-mt-24 md:scroll-mt-28 max-w-5xl overflow-x-clip">   <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Consulting Services</h2><p class="mt-4 text-muted text-xl">Outcome-driven by design: we remove friction so value flows.</p></div> <div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8 md:gap-10 xl:gap-12"> <!-- Gruppe 1: Strategic/Advisory (2) --> <section aria-labelledby="services-strategic" class="md:col-span-1 xl:col-span-1"> <h3 id="services-strategic" class="text-sm md:text-base font-semibold uppercase tracking-wide text-left text-slate-600 dark:text-slate-300 mb-3 md:mb-4">
186Strategic Services
187</h3> <div class="grid mx-auto gap-8 md:gap-y-12 sm:grid-cols-2"><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row max-w-md"><div class="flex"><div class="mt-0.5"><h3 class="font-bold text-lg md:text-xl text-[#00AFEB] leading-snug md:h-[3.6em]">Transformation Advisory &amp; Management</h3><p class="mt-3 text-muted">Reveal hidden frictions, prioritize 3–5 levers, shorten time-to-impact.</p></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row max-w-md"><div class="flex"><div class="mt-0.5"><h3 class="font-bold text-lg md:text-xl text-[#00AFEB] leading-snug md:h-[3.6em]">Transformation Enablement </h3><p class="mt-3 text-muted">
187We equip teams with roles, routines, and playbooks so adoption rises, and value is realized fast.</p></div></div></div></div></div> </section> <!-- Gruppe 2: Implementation/Technical (3) --> <section aria-labelledby="services-implementation" class="mt-10 md:mt-0 md:col-span-1 xl:col-span-2 md:border-l md:border-slate-200 dark:md:border-white/10 md:pl-10 xl:pl-12"> <h3 id="services-implementation" class="text-sm md:text-base font-semibold uppercase tracking-wide text-left text-slate-600 dark:text-slate-300 mb-3 md:mb-4">
188Implementation Services
189</h3> <div class="grid mx-auto gap-8 md:gap-y-12 lg:grid-cols-3 sm:grid-cols-2"><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row max-w-md"><div class="flex"><div class="mt-0.5"><h3 class="font-bold text-lg md:text-xl text-[#00AFEB] leading-snug md:h-[3.6em]">Compliance Transformation</h3><p class="mt-3 text-muted">We implement business-centric controls (e.g., Zero Trust) to minimize daily friction and reduce risk exposure.</p></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row max-w-md"><div class="flex"><div class="mt-0.5"><h3 class="font-bold text-lg md:text-xl text-[#00AFEB] leading-snug md:h-[3.6em]">Cyber Security Controls Implementation</h3><p class="mt-3 text-muted">Rollouts with adoption built-in: guided change, minimal disruption.</p></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row max-w-md"><div class="flex"><div class="mt-0.5"><h3 class="font-bold text-lg md:text-xl text-[#00AFEB] leading-snug md:h-[3.6em]">AI Operating Model Enablement</h3><p class="mt-3 text-muted">We identify use cases that drive direct value contribution, adapt operation models in a way AI can sustain.</p></div></div></div></div></div> </section> </div>  </div> </section>  <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <img src="/_astro/Divider_1_live.Cgezq9Q1.jpg" crossorigin="anonymous" referrerpolicy="no-referrer" width="1600" height="500" srcset="/.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=360&#38;h=113 360w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=640&#38;h=200 640w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=768&#38;h=240 768w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=1024&#38;h=320 1024w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=1440&#38;h=450 1440w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=1600&#38;h=500 1600w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=1920&#38;h=600 1920w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=2560&#38;h=800 2560w, /.netlify/images?url=_astro%2FDivider_1_live.Cgezq9Q1.jpg&#38;w=3200&#38;h=1000 3200w" sizes="(min-width: 1280px) 1280px, 100vw" style="object-fit: cover; object-position: center; max-width: 1600px; max-height: 500px; aspect-ratio: 3.2; width: 100%;" class="absolute left-1/2 -translate-x-1/2 w-full h-full object-contain md:object-contain lg:object-cover" loading="lazy" alt decoding="async"> </div> <div class="relative mx-auto max-w-7xl px-4 md:px-6 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade py-0"> <div aria-hidden="true" class="w-full aspect-[16/5] md:aspect-[16/5] lg:aspect-auto lg:h-[500px]"></div> </div> </section>   <section class="relative not-prose scroll-mt-[72px]" id="use-cases"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  <div class="absolute inset-0">  </div>  </div> <div class="relative mx-auto px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade scroll-mt-24 md:scroll-mt-28 max-w-6xl">  <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl h2">Use Cases</h2><p class="mt-4 text-muted text-xl">Learn how we removed friction from our client's transformations</p></div> <div class="grid mx-auto gap-8 md:gap-y-12 lg:grid-cols-3 sm:grid-cols-2 justify-items-center"><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 group w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow"><div class="flex"><div class="mt-0.5"><h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">Network Modernization</h3>
189<p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Accelerating Digital Transformation Through Global Network Modernization.</p><div class="mt-4 text-primary text-sm font-medium"><a class="cursor-pointer hover:text-primary" href="/use-cases/network-modernization">Explore →</a></div></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 group w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow"><div class="flex"><div class="mt-0.5"><h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">OT Security Transformation</h3><p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">OT Security developed to the next level to ensure continuous operations and secure data.</p><div class="mt-4 text-primary text-sm font-medium"><a class="cursor-pointer hover:text-primary" href="/use-cases/ot-security">Explore →</a></div></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"><div class="flex flex-row duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 group w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow"><div class="flex"><div class="mt-0.5"><h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">Disaster Recovery</h3><p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Ensuring Business Continuity through Incident & Disaster Recovery Planning.</p><div class="mt-4 text-primary text-sm font-medium"><a class="cursor-pointer hover:text-primary" href="/use-cases/disaster-recovery">Explore →</a></div></div></div></div></div><div class="intersect-once motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade lg:col-start-2 hidden lg:block"><div class="flex flex-row duration-300 will-change-transform motion-safe:hover:-translate-y-0.5 motion-safe:hover:shadow-lg motion-safe:hover:ring-1 motion-safe:hover:ring-black/5 dark:motion-safe:hover:ring-white/10 group w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow"><div class="flex"><div class="mt-0.5"><h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">HR Operations Transformation</h3><p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Scaling HR Operations Through Agile Operating Model and Digital Enablement.</p><div class="mt-4 text-primary text-sm font-medium"><a class="cursor-pointer hover:text-primary" href="/use-cases/hr-operations-transformation">Explore →</a></div></div></div></div></div></div> <div class="mt-6 text-center"> <a class="btn-secondary" href="/use-cases">View More</a> </div>  </div> </section>   <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <img src="/_astro/Divider_2_live.BBYZQnU9.jpg" crossorigin="anonymous" referrerpolicy="no-referrer" width="1600" height="500" srcset="/.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=360&#38;h=113 360w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=640&#38;h=200 640w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=768&#38;h=240 768w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=1024&#38;h=320 1024w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=1440&#38;h=450 1440w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=1600&#38;h=500 1600w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=1920&#38;h=600 1920w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=2560&#38;h=800 2560w, /.netlify/images?url=_astro%2FDivider_2_live.BBYZQnU9.jpg&#38;w=3200&#38;h=1000 3200w" sizes="(min-width: 1280px) 1280px, 100vw" style="object-fit: cover; object-position: center; max-width: 1600px; max-height: 500px; aspect-ratio: 3.2; width: 100%;" class="absolute left-1/2 -translate-x-1/2 w-full h-full object-contain md:object-contain lg:object-cover" loading="lazy" alt decoding="async"> </div> <div class="relative mx-auto max-w-7xl px-4 md:px-6 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade py-0"> <div aria-hidden="true" class="w-full aspect-[16/5] md:aspect-[16/5] lg:aspect-auto lg:h-[500px]"></div> </div> </section>  <section id="insights" class="section py-16 sm:py-20 lg:py-24 scroll-mt-24 md:scroll-mt-28"> <div class="container mx-auto max-w-6xl"> <div class="md:mx-auto md:mb-12 mx-auto max-w-2xl text-center mb-10 sm:mb-12"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Insights & perspectives</h2><p class="mt-4 text-muted text-xl">Lessons learned: friction KPIs, playbooks, and outcomes.</p></div> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8 justify-items-center"> <a href="/insights/friction-is-more-than-resistance" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow "> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">Friction Is More Than Resistance</h3>
189 <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Many change programs fight resistance while leaving the underlying system untouched. This article distinguishes friction from resistance and shows why redesigning workflows, tools, and coordination patterns is more powerful than motivating people to tolerate broken ways of working.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a><a href="/insights/from-diagnosis-to-value" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow "> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">From Diagnosis to Value</h3> <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Organizations invest heavily in assessments and readiness checks, but struggle to convert them into measurable outcomes. This article introduces a four phase approach that links friction diagnostics to focused interventions, value experiments, and a repeatable operating model for transformation.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a><a href="/insights/the-four-dimensions-of-transformation-friction" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow "> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">The Four Dimensions of Transformation Friction</h3> <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Friction builds across four dimensions: human, process, organizational, and ecosystem. This article provides a structured map of sixteen friction types and how they interact, giving leaders a common language to diagnose where transformation will stall before it appears in the P&amp;L.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a><a href="/insights/the-hidden-cost-of-waiting" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow hidden lg:block"> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">The Hidden Cost of Waiting</h3> <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Choosing to delay transformation decisions often looks prudent, yet it quietly multiplies direct, indirect, and opportunity costs. This article describes how friction compounds over time and offers a simple way to compare the price of prevention with the far higher cost of remediation.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a><a href="/insights/when-good-people-cant-make-change-happen" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow hidden lg:block"> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">When Good People Can&#39;t Make Change Happen</h3> <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Even highly capable leaders and teams still get stuck when expectations, workload, and incentives conflict. This article explains how human friction shows up in inertia, emotion, and reactance, and what leaders can change in the environment so good people can actually make change happen.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a><a href="/insights/why-seven-out-of-ten-digital-transformations-fail" target="_blank" rel="noopener noreferrer" class="group block w-full max-w-md rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-shadow hidden lg:block"> <h3 class="text-lg md:text-xl font-bold text-primary dark:text-primary group-hover:text-black dark:group-hover:text-white transition-colors">Why Seven Out of Ten Digital Transformations Fail</h3>
189 <p class="text-sm text-slate-600 dark:text-white/90 mt-2 clamp-2">Most digital transformations fail not because of technology, but because human, process, organizational, and ecosystem frictions remain invisible until they surface as resistance. This article shows how to detect those frictions early and redesign the path so value realization becomes the rule, not the exception.</p> <div class="mt-4 text-primary text-sm font-medium">Explore →</div> </a> </div> </div> <div class="mt-6 text-center"> <a class="btn-secondary" href="/insights">View More</a> </div> </section>  <section class="relative not-prose scroll-mt-[72px]" id="about"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  </div> <div class="relative mx-auto px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade max-w-6xl">   <div class="mb-8 md:mx-auto md:mb-12 text-center scroll-mt-24 md:scroll-mt-28"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">About Us</h2><p class="mt-4 text-muted text-xl">We at T4D turn friction into measurable value</p></div> <section aria-labelledby="team-heading" class="relative"><h3 id="team-heading" class="sr-only">
190Our Team
191</h3><button type="button" class="group items-center justify-center absolute left-1 md:left-2 top-1/2 -translate-y-1/2 z-10 w-11 h-11 md:w-12 md:h-12 rounded-full bg-white/80 dark:bg-slate-900/80 ring-1 ring-primary text-primary shadow-sm backdrop-blur focus:outline-none focus-visible:ring-2 focus-visible:ring-primary disabled:opacity-40 disabled:cursor-not-allowed hidden md:inline-flex" aria-label="Scroll previous team members" aria-controls="team-scroller" data-team-prev><svg aria-hidden="true" viewBox="0 0 24 24" class="h-5 w-5"><path d="M15 19l-7-7 7-7" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><ul id="team-scroller" data-no-scrollbar role="list" class="flex overflow-x-auto gap-8 snap-x snap-proximity px-1 md:px-2" style="scrollbar-gutter: stable;"><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dark:bg-slate-800"> <img src="/.netlify/images?url=%2Fteam%2FDavid_Rohrberg.PNG&#38;w=480&#38;h=600&#38;fit=cover&#38;fm=webp&#38;q=80" alt="Headshot of David Rohrberg" class="absolute inset-0 h-full w-full object-cover" loading="lazy" decoding="async"> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">David Rohrberg</h4> <div class="min-h-[3.5rem]"> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2">Managing Director</p> <p class="text-xs leading-5 text-slate-500 dark:text-slate-300">Transformation Advisory</p>  </div>  <p class="mt-2 min-h-[34px]"> <a href="https://www.linkedin.com/in/david-rohrberg-b524a028/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-primary hover:text-primary/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" aria-hidden="true" data-icon="tabler:brand-linkedin">   <use href="#ai:tabler:brand-linkedin"></use>  </svg> <span class="sr-only">profile of David Rohrberg</span> </a> </p> </div> </article> </li><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dar
191k:bg-slate-800"> <img src="/.netlify/images?url=%2Fteam%2FJulia-Maxie_Zelfel.jpeg&#38;w=480&#38;h=600&#38;fit=cover&#38;fm=webp&#38;q=80" alt="Headshot of Julia Maxie Zelfel" class="absolute inset-0 h-full w-full object-cover" loading="lazy" decoding="async"> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">Julia Maxie Zelfel</h4> <div class="min-h-[3.5rem]"> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2">Associate Partner</p> <p class="text-xs leading-5 text-slate-500 dark:text-slate-300">Transformation Enablement</p>  </div>  <p class="mt-2 min-h-[34px]"> <a href="https://www.linkedin.com/in/julia-maxie-z-563324190/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-primary hover:text-primary/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" aria-hidden="true" data-icon="tabler:brand-linkedin">   <use href="#ai:tabler:brand-linkedin"></use>  </svg> <span class="sr-only">profile of Julia Maxie Zelfel</span> </a> </p> </div> </article> </li><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dark:bg-slate-800"> <img src="/.netlify/images?url=%2Fteam%2FJoachim_Kohl.jpg&#38;w=480&#38;h=600&#38;fit=cover&#38;fm=webp&#38;q=80" alt="Headshot of Joachim Kohl" class="absolute inset-0 h-full w-full object-cover" loading="lazy" decoding="async"> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">Joachim Kohl</h4> <div class="min-h-[3.5rem]"> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2">Senior Expert, AI Transformation</p> <p class="text-xs leading-5 text-slate-500 dark:text-slate-300">AI Operating Model Enablement</p>  </div>  <p class="mt-2 min-h-[34px]"> <a href="https://www.linkedin.com/in/joachimkohl/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-primary hover:text-primary/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" aria-hidden="true" data-icon="tabler:brand-linkedin">   <use href="#ai:tabler:brand-linkedin"></use>  </svg> <span class="sr-only">profile of Joachim Kohl</span> </a> </p> </div> </article> </li><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dark:bg-slate-800"> <img src="/.netlify/images?url=%2Fteam%2FGordon_Leipold.jpeg&#38;w=480&#38;h=600&#38;fit=cover&#38;fm=webp&#38;q=80" alt="Headshot of Gordon Leipold" class="absolute inset-0 h-full w-full object-cover" loading="lazy" decoding="async"> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">Gordon Leipold</h4> <div class="min-h-[3.5rem]"> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2">Principal Consultant</p> <p class="text-xs leading-5 text-slate-500 dark:text-slate-300">Compliance Transformation</p> <p class="text-[11px] font-semibold uppercase tracking-wide text-primary">Network Partner</p> </div>  <p class="mt-2 min-h-[34px]"> <a href="https://www.linkedin.com/in/gordon-leipold-8a4900117/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-primary hover:text-primary/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" aria-hidden="true" data-icon="tabler:brand-linkedin">   <use href="#ai:tabler:brand-linkedin"></use>  </svg> <span class="sr-only">profile of Gordon Leipold</span> </a> </p> </div> </article> </li><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dar
191k:bg-slate-800"> <img src="/.netlify/images?url=%2Fteam%2FMatthias_Nachtigal.jpg&#38;w=480&#38;h=600&#38;fit=cover&#38;fm=webp&#38;q=80" alt="Headshot of Matthias Nachtigal" class="absolute inset-0 h-full w-full object-cover" loading="lazy" decoding="async"> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">Matthias Nachtigal</h4> <div class="min-h-[3.5rem]"> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2">Principal Consultant</p> <p class="text-xs leading-5 text-slate-500 dark:text-slate-300">Cyber Security Controls Implementation</p> <p class="text-[11px] font-semibold uppercase tracking-wide text-primary">Network Partner</p> </div>  <p class="mt-2 min-h-[34px]"> <a href="https://www.linkedin.com/in/matthias-nachtigal/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-primary hover:text-primary/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" aria-hidden="true" data-icon="tabler:brand-linkedin">   <use href="#ai:tabler:brand-linkedin"></use>  </svg> <span class="sr-only">profile of Matthias Nachtigal</span> </a> </p> </div> </article> </li><li class="snap-start flex-none h-full w-[82%] sm:w-[48%] md:w-[32%] xl:w-[24%] min-w-0"> <article class="group relative flex flex-col h-full bg-white dark:bg-slate-900 rounded-xl overflow-hidden transition-colors border border-slate-200 dark:border-white/10 ring-1 ring-transparent group-hover:ring-primary"> <div class="relative aspect-[4/5] w-full overflow-hidden bg-slate-100 dark:bg-slate-800"> <div class="absolute inset-0 flex flex-col items-center justify-center text-center px-4"> <span class="text-[11px] uppercase tracking-wide font-semibold text-primary dark:text-primary">
192Network Partners
193</span> <span class="mt-1 text-lg font-semibold text-slate-900 dark:text-white" role="heading" aria-level="4">
194+20 Management Consultants
195</span> <span class="mt-3 text-xs text-slate-600 dark:text-slate-300">
196Transformation · Cybersecurity · Change & PMO · Data & AI
197</span> </div> </div> <div class="p-3 flex flex-col flex-1">  <h4 class="text-base md:text-lg font-semibold text-slate-900 dark:text-white">Network Partners</h4> <p class="text-sm leading-5 text-slate-600 dark:text-slate-300 line-clamp-2 min-h-[3.25rem]">
198Senior Specialists Transformation
199</p>  <div class="mt-2 min-h-[34px]" aria-hidden="true"></div> </div> </article> </li></ul><button type="button" class="group items-center justify-center absolute right-1 md:right-2 top-1/2 -translate-y-1/2 z-10 w-11 h-11 md:w-12 md:h-12 rounded-full bg-white/80 dark:bg-slate-900/80 ring-1 ring-primary text-primary shadow-sm backdrop-blur focus:outline-none focus-visible:ring-2 focus-visible:ring-primary disabled:opacity-40 disabled:cursor-not-allowed hidden md:inline-flex" aria-label="Scroll next team members" aria-controls="team-scroller" data-team-next><svg aria-hidden="true" viewBox="0 0 24 24" class="h-5 w-5"><path d="M9 5l7 7-7 7" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></section>
199<script type="module">(()=>{const e=document.getElementById("team-scroller"),t=document.querySelector("[data-team-prev]"),o=document.querySelector("[data-team-next]");if(!e||!(t instanceof HTMLButtonElement)||!(o instanceof HTMLButtonElement))return;const l=window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth",c=()=>{const r=e.scrollLeft;e.scrollTo({left:0,behavior:"auto"});const s=e.scrollLeft;e.scrollTo({left:e.scrollWidth,behavior:"auto"});const f=e.scrollLeft;return e.scrollTo({left:r,behavior:"auto"}),{minLeft:s,maxLeft:f}};let{minLeft:a,maxLeft:i}=c();const d=2,n=()=>{const r=e.scrollLeft<=a+d,s=e.scrollLeft>=i-d;t.disabled=r,o.disabled=s,t.setAttribute("aria-disabled",String(r)),o.setAttribute("aria-disabled",String(s))},u=()=>e.clientWidth;t.addEventListener("click",()=>e.scrollBy({left:-u(),behavior:l})),o.addEventListener("click",()=>e.scrollBy({left:u(),behavior:l})),e.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",()=>{({minLeft:a,maxLeft:i}=c()),n()}),n()})();</script>
199<section class="about qa mt-8 md:mt-10" aria-label="About Us"> <div class="mx-auto max-w-5xl"> <nav class="anchor-chips mt-10 md:mt-12 flex items-center gap-2 lg:hidden" aria-label="Section navigation"> <a href="#who" class="chip is-active inline-flex items-center rounded-full border border-slate-200 dark:border-white/10 bg-white/60 dark:bg-slate-900/40 px-3 py-1 text-sm text-slate-700 dark:text-slate-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2" aria-current="true">Who we are</a> <a href="#why" class="chip inline-flex items-center rounded-full border border-slate-200 dark:border-white/10 bg-white/60 dark:bg-slate-900/40 px-3 py-1 text-sm text-slate-700 dark:text-slate-200 focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2">Why T4D</a> </nav> <div class="mt-8 lg:mt-10 grid gap-8 lg:gap-12 lg:grid-cols-12"> <!-- Left column: Who we are --> <section id="who" class="who scroll-mt-24 md:scroll-mt-28 lg:col-span-7" aria-labelledby="who-title"> <h3 id="who-title" class="text-sm font-semibold uppercase tracking-wide text-primary mb-4"> <span>Who we are</span> </h3> <div class="prose prose-slate dark:prose-invert max-w-none text-pretty prose-p:text-base md:prose-p:text-lg prose-p:leading-9 md:prose-p:leading-[44px] prose-p:mt-1 md:prose-p:mt-2 prose-p:mb-12 md:prose-p:mb-16 first:prose-p:mt-0 last:prose-p:mb-0"> <div class="text-xs md:text-sm font-semibold uppercase tracking-wide text-primary mb-1">Partner</div> <p> <strong>We are the trusted partner for high‑stakes digital transformation</strong> in regulated industries.
200</p> <div class="text-xs md:text-sm font-semibold uppercase tracking-wide text-primary mb-1 mt-2 md:mt-3">
201Pressure‑ready
202</div> <p> <strong>We step in when programs are complex or stalling</strong>—stabilizing, de‑risking and delivering
203                fast, safely and human‑centered.
204</p> <div class="text-xs md:text-sm font-semibold uppercase tracking-wide text-primary mb-1 mt-2 md:mt-3">
205Data‑driven
206</div> <p> <strong>Our data‑driven Friction to Value® Framework exposes and eliminates the real blockers</strong>—behavioral, system and structural frictions—so the technology you've chosen actually lands, scales and
207                sticks.
208</p> </div> </section> <!-- Right column: Why T4D --> <section id="why" class="why scroll-mt-24 md:scroll-mt-28 lg:col-span-5 lg:border-l lg:border-slate-200 dark:lg:border-slate-800 lg:pl-10" aria-labelledby="why-title"> <h3 id="why-title" class="text-sm font-semibold uppercase tracking-wide text-primary mb-4"> <span>Why T4D</span> </h3> <ol class="value-list relative space-y-5" role="list"> <li class="value-item relative pl-10"> <span class="num absolute left-0 top-0 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full ring-1 ring-primary text-primary text-xs font-bold select-none z-10" aria-hidden="true">1</span> <div class="text"> <h4 class="text-base font-semibold text-default">Outcome‑driven:</h4> <p class="text-sm text-slate-700 dark:text-slate-300 max-w-[55ch]">
209We measure impact and link fees to results—not effort.
210</p> </div> </li> <li class="value-item relative pl-10"> <span class="num absolute left-0 top-0 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full ring-1 ring-primary text-primary text-xs font-bold select-none" aria-hidden="true">2</span> <div class="text"> <h4 class="text-base font-semibold text-default">Independent partner:</h4> <p class="text-sm text-slate-700 dark:text-slate-300 max-w-[55ch]">
211Partner, not staff augmentation. No body‑leasing.
212</p> </div> </li> <li class="value-item relative pl-10"> <span class="num absolute left-0 top-0 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full ring-1 ring-primary text-primary text-xs font-bold select-none" aria-hidden="true">3</span> <div class="text"> <h4 class="text-base font-semibold text-default">Built for pressure:</h4> <p class="text-sm text-slate-700 dark:text-slate-300 max-w-[55ch]">
213Friction‑minded, turnaround‑capable, with repeatable clusters and playbooks.
214</p> </div> </li> <li class="value-item relative pl-10"> <span class="num absolute left-0 top-0 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full ring-1 ring-primary text-primary text-xs font-bold select-none" aria-hidden="true">4</span> <div class="text"> <h4 class="text-base font-semibold text-default">People-first:</h4> <p class="text-sm text-slate-700 dark:text-slate-300 max-w-[55ch]">
215Substance over formalism; we enable teams to move.
216</p> </div> </li> <li class="value-item relative pl-10"> <span class="num absolute left-0 top-0 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full ring-1 ring-primary text-primary text-xs font-bold select-none" aria-hidden="true">5</span> <div class="text"> <h4 class="text-base font-semibold text-default">End-to-end accountability:</h4> <p class="text-sm text-slate-700 dark:text-slate-300 max-w-[55ch]">
217We own the outcome from design to run.
218</p> </div> </li> </ol> </section> </div> </div> 
218<script type="module">(function(){let c=!1;function d(){try{const t=document.getElementById("calendly-status");if(!t)return;t.classList.remove("sr-only"),t.classList.add("text-xs","text-slate-600","dark:text-slate-300","mt-2"),t.textContent="To open Calendly, please enable marketing cookies. ";const n=document.createElement("button");n.type="button",n.className="underline",n.textContent="Open cookie settings",n.addEventListener("click",function(){try{window.Cookiebot?.show?.()}catch{}}),t.appendChild(n)}catch{}try{window.dataLayer?.push({event:"calendly_blocked_by_consent",component:"cta_calendly",consent_state:"denied",page_path:location.pathname})}catch{}}async function i(){if(c)return Promise.resolve();const t=new Promise(function(o,a){const e=document.createElement("script");e.src="https://assets.calendly.com/assets/external/widget.js",e.async=!0,e.onload=o,e.onerror=a,document.head.appendChild(e)}),n=new Promise(function(o,a){const e=document.createElement("link");e.rel="stylesheet",e.href="https://assets.calendly.com/assets/external/widget.css",e.onload=o,e.onerror=a,document.head.appendChild(e)});return Promise.all([t,n]).then(function(){c=!0})}function u(t,n){const o=new URL(t);return o.searchParams.set("hide_gdpr_banner","1"),o.toString()}document.addEventListener("click",async function(t){const n=t.target;if(!(n instanceof HTMLElement))return;const o=n.closest("[data-calendly-trigger]");if(!o)return;t.preventDefault();const a=!!window.Cookiebot;if(!(!a||window.Cookiebot?.consent?.marketing===!0)){d();return}try{await i();const m=document.documentElement.classList.contains("dark")?"dark":"light",l=o.getAttribute("data-calendly-url")||"";if(!l)return;const r=u(l,{useCustomColor:!1}),s=window.Calendly;s&&typeof s.initPopupWidget=="function"&&s.initPopupWidget({url:r}),window.dataLayer?.push({event:"calendly_open",component:"cta_calendly",url:r,theme:m,consent_state:a?"granted":"unknown",button_text:"Talk to our CEO",page_path:location.pathname})}catch{}})})();</script>
218 </section>  </div> </section>  <section class="relative not-prose scroll-mt-[72px]" id="cta"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  </div> <div class="relative mx-auto px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade max-w-4xl text-center">   <div class="group mx-auto w-full rounded-2xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-6 md:p-10"> <div class="md:mx-auto text-center mb-6 md:mb-8"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Start: Friction → Value</h2><p class="mt-4 text-muted text-xl">Talk to our CEO to map your objectives, discuss hotspots, and choose the fastest path to measurable impact. Assessment only if it's the right first move.</p></div> <div class="mx-auto max-w-2xl"> <div class="flex items-start gap-4 md:gap-6 justify-center"> <img src="/.netlify/images?url=%2Fteam%2FDavid_Rohrberg.PNG&w=128&h=128&fit=cover&fm=webp&q=80" alt="Portrait of David Rohrberg, CEO" class="w-16 h-16 rounded-full object-cover ring-1 ring-slate-200 dark:ring-slate-700" loading="lazy" decoding="async"> <div class="text-left flex flex-col items-start gap-3 md:gap-4"> <p class="text-sm text-slate-600 dark:text-slate-300 max-w-[38ch] md:max-w-[46ch]">
219Get clarity on your top transformation levers in a 20‑minute call. No sales pitch — just concrete next
220              steps, directly from our CEO.
221</p> <button type="button" class="btn-primary" data-calendly-trigger="true" data-calendly-url="https://calendly.com/david-rohrberg-t4d/20-min-get-to-know-t4d" aria-label="Open Calendly scheduling dialog (20-minute call with CEO)">Talk to our CEO<svg width="1em" height="1em" class="w-5 h-5 ml-1 -mr-1.5 rtl:mr-1 rtl:-ml-1.5 inline-block " data-icon="tabler:calendar">   <symbol id="ai:tabler:calendar" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3"/></symbol><use href="#ai:tabler:calendar"></use>  </svg></button> </div> </div> <p id="calendly-status" class="sr-only" role="status" aria-live="polite"></p> </div> </div> 
221<script type="module">(function(){const o=document.getElementById("about");if(!o)return;const c=o.querySelectorAll(".anchor-chips a");function a(r){c.forEach(n=>{const e=n.getAttribute("href")==="#"+r;n.classList.toggle("is-active",!!e),e?n.setAttribute("aria-current","true"):n.removeAttribute("aria-current")})}c.forEach(r=>r.addEventListener("click",function(n){const e=r.getAttribute("href")||"";if(!e.startsWith("#"))return;n.preventDefault();const t=o.querySelector(e);t&&"scrollIntoView"in t&&t.scrollIntoView({behavior:"smooth",block:"start"}),a(e.slice(1))}));const f=["who","why"].map(r=>o.querySelector("#"+r)).filter(Boolean);if("IntersectionObserver"in window){const r=new IntersectionObserver(e=>{e.forEach(t=>{if(!t.isIntersecting)return;const s=t.target;s instanceof HTMLElement&&a(s.id)})},{rootMargin:"-40% 0px -50% 0px",threshold:.1});if(f.forEach(e=>{e&&r.observe(e)}),!window.matchMedia("(prefers-reduced-motion: reduce)").matches){const e=Array.from(o.querySelectorAll("#why .value-item")),t=new IntersectionObserver(s=>{s.some(i=>i.isIntersecting)&&(e.forEach((i,l)=>{i instanceof HTMLElement&&(i.style.animationDelay=`${100+l*80}ms`,i.classList.add("animate-fade"))}),t.disconnect())},{threshold:.2});e[0]&&t.observe(e[0])}}})();</script>
221  </div> </section>  <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true">  <div class="absolute inset-0 bg-white dark:bg-transparent"></div>  </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade mx-auto max-w-6xl">  <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">Frequently asked questions</h2></div> <div class="grid mx-auto gap-8 md:gap-y-12 sm:grid-cols-2  max-w-6xl">  <details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> Who is T4D and what do you actually do? </h3> <svg width="1em" height="1em" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <symbol id="ai:tabler:chevrons-right" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m7 7l5 5l-5 5m6-10l5 5l-5 5"/></symbol><use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">T4D is a boutique consulting firm that makes digital, cybersecurity and AI transformations frictionless and measurable – fast, secure, human-centered. We work with senior executives, program leaders and expert teams to expose real blockers, remove root causes, and prove impact with clear metrics.</p> </div> </div> </details><details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> In which areas do you help organizations most? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">Clients usually come to us for one of five clusters: Transformation Advisory & Management, Transformation Enablement, Compliance Transformation, Cyber Security Controls Implementation, and AI Operating Model Enablement. Whether you are a CxO, program owner or domain expert, you will find a relevant entry point here.</p> </div> </div> </details>  <details class="hidden md:block group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How do engagements typically start? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">Regardless of topic, we start with a short call (around 20 minutes) with our CEO, David Rohrberg, together with the relevant sponsor or program owner on your side. Based on this, we propose a short, fixed-scope engagement (e.g. 1-day workshop or 2–3 week sprint) tailored to your case – cyber, OT security, network, disaster recovery, HR, AI, or a Friction Management starter.</p> </div> </div> </details>
221<details class="hidden md:block group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> What do we get out of the first short engagement? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">You receive a clear view of your current situation, 3–5 prioritized levers with owners and success metrics, and a 30/60-day action plan. This lets you evaluate fit and trust while already moving the needle – no matter if you are a CxO, program lead or specialist.</p> </div> </div> </details> </div> <div id="faqs-more" data-faqs-more data-expanded="false" aria-hidden="true" class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] opacity-0 data-[expanded=true]:grid-rows-[1fr] data-[expanded=true]:opacity-100"> <div class="min-h-0"> <div class="mt-6 grid mx-auto gap-8 md:gap-y-12 sm:grid-cols-2  max-w-6xl">  <details class="md:hidden group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How do engagements typically start? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">Regardless of topic, we start with a short call (around 20 minutes) with our CEO, David Rohrberg, together with the relevant sponsor or program owner on your side. Based on this, we propose a short, fixed-scope engagement (e.g. 1-day workshop or 2–3 week sprint) tailored to your case – cyber, OT security, network, disaster recovery, HR, AI, or a Friction Management starter.</p> </div> </div> </details><details class="md:hidden group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> What do we get out of the first short engagement? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">You receive a clear view of your current situation, 3–5 prioritized levers with owners and success metrics, and a 30/60-day action plan. This lets you evaluate fit and trust while already moving the needle – no matter if you are a CxO, program lead or specialist.</p> </div> </div> </details>  <details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> Do we need to commit to a big transformation program upfront? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">No. We deliberately start small, focused and fixed-price. Only if the initial engagement delivers value for you do we scale into a broader program. Otherwise, you still keep a useful roadmap for your internal teams and partners.</p> </div> </div> </details>
221<details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> In which use cases and industries do you have a proven track record? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">We work mainly in regulated and complex environments such as pharma, chemicals, energy, manufacturing and financial services, with use cases like network modernization, OT security, disaster recovery/BCM and HR/people operating model transformation.</p> </div> </div> </details><details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How do you work with our internal teams and existing partners? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">We embed into your structures. Your teams and partners bring domain and platform depth, while T4D leads method, orchestration and friction analytics. We leave behind operating models, roles, routines and playbooks your teams can run and scale.</p> </div> </div> </details><details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How do you measure success? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">We use friction KPIs and outcome metrics such as effort, adoption, incidents, risk and business value. Our Friction Management Approach looks across Human, Organizational, Process and Ecosystem domains and follows Identify → Understand → Design → Realize Value to focus on measurable outcomes, not just activities.</p> </div> </div> </details><details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How do you price your work? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">Pricing starts with fixed-price entry offers such as 1-day workshops or assessments and continues with transparent project/program models tied to clear scope, milestones and value indicators. You always know what you are paying for.</p> </div> </div> </details>
221<details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> Who is T4D a good fit for? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">We are a good fit for leaders and experts who own or drive transformations, want clarity, focus and measurable progress, and value a hands-on, low-ego partner who works with their teams instead of around them.</p> </div> </div> </details><details class="group max-w-none rounded-xl border border-slate-200 dark:border-slate-800 bg-white/80 dark:bg-slate-900/60 p-5 hover:shadow-lg transition-all group" data-accordion data-single="true"> <summary class="flex items-start justify-between cursor-pointer select-none focus:outline-none focus-visible:ring focus-visible:ring-primary/40 rounded-md -mx-2 px-2"> <h3 class="text-lg md:text-xl font-bold text-black dark:text-white text-lg md:text-xl font-bold text-black dark:text-white"> How can we quickly assess if T4D is the right partner? </h3> <svg width="1em" height="1em" viewBox="0 0 24 24" class="ml-4 mt-1 w-5 h-5 text-primary transition-transform group-open:rotate-90" data-icon="tabler:chevrons-right">   <use href="#ai:tabler:chevrons-right"></use>  </svg> </summary> <div class="grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 grid-rows-[0fr] group-open:grid-rows-[1fr]"> <div class="min-h-0"> <p class="mt-2 text-sm text-black dark:text-white ">A short call with our CEO, David Rohrberg, is usually enough. If we see a clear value case, we suggest a short, low-risk engagement with very clear outcomes. If not, we say so openly and do not waste your time.</p> </div> </div> </details> </div> </div> </div><div class="mt-6 text-center"> <button type="button" class="btn-secondary" data-faqs-toggle="true" aria-controls="faqs-more" aria-expanded="false">View All FAQs</button> </div>
221<script>
222    (() => {
223      const root =
224        document.currentScript && document.currentScript.parentElement
225          ? document.currentScript.parentElement
226          : document;
227      const detailsList = root.querySelectorAll('details[data-accordion]');
228      detailsList.forEach((d) => {
229        d.addEventListener('toggle', () => {
230          const single = d.getAttribute('data-single') === 'true';
231          if (single && d.open) {
232            detailsList.forEach((other) => {
233              if (other !== d) other.open = false;
234            });
235          }
236        });
237      });
238
239      const more = root.querySelector('[data-faqs-more]');
240      const toggle = root.querySelector('[data-faqs-toggle]');
241      if (more && toggle) {
242        // ensure initial a11y state
243        more.setAttribute('aria-hidden', 'true');
244        toggle.addEventListener('click', () => {
245          const expanded = more.getAttribute('data-expanded') === 'true';
246          const next = expanded ? 'false' : 'true';
247          more.setAttribute('data-expanded', next);
248          more.setAttribute('aria-hidden', next === 'true' ? 'false' : 'true');
249          toggle.setAttribute('aria-expanded', next);
250          toggle.textContent = next === 'true' ? 'Show Less' : 'View All FAQs';
251        });
252      }
253    })();
254  </script>
254  </div> </section>  <button id="back-to-top" aria-label="Back to top" class="hidden md:hidden fixed bottom-16 right-4 z-40 rounded-full bg-secondary text-white p-3 shadow-lg focus:outline-none focus:ring-2 focus:ring-primary transition-opacity">
255↑
256</button> 
256<script>
257  const btn = document.getElementById('back-to-top');
258  const showThreshold = 600; // px
259  const onScroll = () => {
260    const y = window.scrollY || window.pageYOffset;
261    if (y > showThreshold) {
262      btn?.classList.remove('hidden');
263      btn?.classList.add('opacity-100');
264    } else {
265      btn?.classList.add('hidden');
266      btn?.classList.remove('opacity-100');
267    }
268  };
269  window.addEventListener('scroll', onScroll, { passive: true });
270  onScroll();
271
272  btn?.addEventListener('click', () => {
273    try {
274      window.scrollTo({ top: 0, behavior: 'smooth' });
275    } catch {
276      window.scrollTo(0, 0);
277    }
278  });
279</script>
279  </main> <nav aria-label="Quick sections" class="fixed inset-x-0 bottom-0 z-40 md:hidden"> <div class="mx-auto max-w-7xl"> <ul class="grid grid-cols-4 border-t border-slate-200 dark:border-white/10 bg-white/95 dark:bg-slate-900/95 backdrop-blur supports-[backdrop-filter]:bg-white/80 supports-[backdrop-filter]:dark:bg-slate-900/80"> <li> <a href="#about" aria-label="Go to About Us" class="flex h-14 flex-col items-center justify-center gap-0.5 text-xs font-medium text-slate-700 dark:text-slate-200 hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-primary transition-colors"> <svg width="1em" height="1em" class="w-5 h-5" aria-hidden="true" data-icon="tabler:users">   <symbol id="ai:tabler:users" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 7a4 4 0 1 0 8 0a4 4 0 1 0-8 0M3 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2m1-17.87a4 4 0 0 1 0 7.75M21 21v-2a4 4 0 0 0-3-3.85"/></symbol><use href="#ai:tabler:users"></use>  </svg> <span>About Us</span> </a> </li> <li> <a href="#services" aria-label="Go to Services" class="flex h-14 flex-col items-center justify-center gap-0.5 text-xs font-medium text-slate-700 dark:text-slate-200 hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-primary transition-colors"> <svg width="1em" height="1em" class="w-5 h-5" aria-hidden="true" data-icon="tabler:tools">   <symbol id="ai:tabler:tools" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 21h4L20 8a1.5 1.5 0 0 0-4-4L3 17zM14.5 5.5l4 4"/><path d="M12 8L7 3L3 7l5 5M7 8L5.5 9.5M16 12l5 5l-4 4l-5-5m4 1l-1.5 1.5"/></g></symbol><use href="#ai:tabler:tools"></use>  </svg> <span>Services</span> </a> </li> <li> <a href="#use-cases" aria-label="Go to Use Cases" class="flex h-14 flex-col items-center justify-center gap-0.5 text-xs font-medium text-slate-700 dark:text-slate-200 hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-primary transition-colors"> <svg width="1em" height="1em" class="w-5 h-5" aria-hidden="true" data-icon="tabler:layout-grid">   <symbol id="ai:tabler:layout-grid" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1zM4 15a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zm10 0a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1z"/></symbol><use href="#ai:tabler:layout-grid"></use>  </svg> <span>Use Cases</span> </a> </li> <li> <a href="#insights" aria-label="Go to Insights" class="flex h-14 flex-col items-center justify-center gap-0.5 text-xs font-medium text-slate-700 dark:text-slate-200 hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-primary transition-colors"> <svg width="1em" height="1em" class="w-5 h-5" aria-hidden="true" data-icon="tabler:bulb">   <symbol id="ai:tabler:bulb" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12h1m8-9v1m8 8h1M5.6 5.6l.7.7m12.1-.7l-.7.7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0-1 3a2 2 0 0 1-4 0a3.5 3.5 0 0 0-1-3m.7 1h4.6"/></symbol><use href="#ai:tabler:bulb"></use>  </svg> <span>Insights</span> </a> </li> </ul> </div> </nav> <footer class="relative border-t border-gray-200 dark:border-slate-800 not-prose"> <div class="dark:bg-dark absolute inset-0 pointer-events-none" aria-hidden="true"></div> <div class="relative max-w-7xl mx-auto px-4 sm:px-6 dark:text-slate-300 intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"> <div class="grid grid-cols-12 gap-4 gap-y-8 sm:gap-8 py-8 md:py-12"> <div class="col-span-12 lg:col-span-4"> <div class="mb-2"> <a class="inline-flex items-center" href="/"><!-- Responsive, theme-aware logo (expects SVGs in /public/logos) --><span aria-label="T4D Consulting" class="flex items-center gap-2 shrink-0 ml-2 rtl:ml-0 rtl:mr-2"> <!-- Compact logo (no claim) for small/medium screens --> <span class="block lg:hidden"> <img src="/logos/t4d-on-light.svg" alt="T4D Consulting" class="block dark:hidden h-8 md:h-8 w-auto" width="144" height="66"> <img src="/logos/t4d-on-dark.svg" alt="T4D Consulting" class="hidden dark:block h-8 md:h-8 w-auto" width="144" height="66"> </span> <!-- Full logo with claim for large screens and up --> <span class="hidden lg:block"> <img src="/logos/t4d-on-light.svg" alt="T4D Consulting – Shaping your digital future" class="block dark:hidden h-9 w-auto" width="220" height="110"> <img src="/logos/t4d-on-dark.svg" alt="T4D Consulting – Shaping your digital future" class="hidden dark:block h-9 w-auto" width="220" height="110"> </span> </span></a> </div>
279  <address class="not-italic text-sm text-muted leading-relaxed"> <div>T4D Consulting GmbH</div> <div>Steinkopfstraße 6-8, 61231 Bad Nauheim</div> </address> <div class="text-sm text-muted flex gap-1 mt-2"> <a class="inline-flex items-center -mx-2 py-2 px-2 rounded text-muted hover:text-gray-700 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 ease-out" href="/impressum">Imprint</a>  · <a class="inline-flex items-center -mx-2 py-2 px-2 rounded text-muted hover:text-gray-700 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors duration-200 ease-out" href="/privacy">Privacy Policy</a>  </div> </div> <div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="dark:text-gray-300 font-medium mb-2">T4D</div> <ul class="text-sm"> <li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#approach"> Approach </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#services"> Services </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#use-cases"> Use Cases </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#insights"> Insights </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#about"> About Us </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/#cta"> Contact </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/careers" aria-label="Careers" data-nav-id="career_intern"> Careers </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/resources">
279 Resources </a> </li> </ul> </div> </div> <div class="md:flex md:items-center md:justify-between py-6 md:py-8"> <ul class="flex mb-4 md:order-1 -ml-2 md:ml-4 md:mb-0 rtl:ml-0 rtl:-mr-2 rtl:md:ml-0 rtl:md:mr-4"> <li> <a class="text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="LinkedIn" href="https://www.linkedin.com/company/t4d-consulting-gmbh/posts/?feedView=all" target="_blank" rel="noopener noreferrer"> <svg width="1em" height="1em" class="w-5 h-5" data-icon="tabler:brand-linkedin">   <symbol id="ai:tabler:brand-linkedin" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M8 11v5m0-8v.01M12 16v-5m4 5v-3a2 2 0 1 0-4 0"/><path d="M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z"/></g></symbol><use href="#ai:tabler:brand-linkedin"></use>  </svg>  </a> </li> </ul> <div class="text-sm mr-4 dark:text-muted"> 
280    © 2026 T4D Consulting · All rights reserved. · Friction to Value® is a registered trademark of T4D Consulting GmbH.
281   </div> </div> </div> </footer>   
281<script>(function(){const defaultTheme = "dark";
282
283  if (window.basic_script) {
284    return;
285  }
286
287  window.basic_script = true;
288
289  function applyTheme(theme) {
290    if (theme === 'dark') {
291      document.documentElement.classList.add('dark');
292    } else {
293      document.documentElement.classList.remove('dark');
294    }
295  }
296
297  const initTheme = function () {
298    if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) {
299      applyTheme(defaultTheme.replace(':only', ''));
300    } else if (
301      localStorage.theme === 'dark' ||
302      (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
303    ) {
304      applyTheme('dark');
305    } else {
306      applyTheme('light');
307    }
308  };
309  initTheme();
310
311  function attachEvent(selector, event, fn) {
312    const matches = typeof selector === 'string' ? document.querySelectorAll(selector) : selector;
313    if (matches && matches.length) {
314      matches.forEach((elem) => {
315        elem.addEventListener(event, (e) => fn(e, elem), false);
316      });
317    }
318  }
319
320  const onLoad = function () {
321    let lastKnownScrollPosition = window.scrollY;
322    let ticking = true;
323
324    // Floating header scroll state (expanded <-> condensed)
325    let lastScrollY = window.scrollY;
326    const getFloatingHeader = () => document.getElementById('floating-header');
327    const getFloatingCenter = () => document.getElementById('floating-center');
328
329    function setFloatingCondensed(condensed) {
330      const fh = getFloatingHeader();
331      const center = getFloatingCenter();
332      if (!fh || !center) return;
333
334      fh.classList.toggle('is-condensed', condensed);
335
336      // Also adjust inner pill container gap to avoid any visible space in condensed
337      const pill = fh.querySelector(':scope > div');
338      if (pill) {
339        if (condensed) {
340          pill.classList.add('gap-0');
341          pill.classList.remove('gap-2');
342        } else {
343          pill.classList.remove('gap-0');
344          pill.classList.add('gap-2');
345        }
346      }
347
348      if (condensed) {
349        // Width is controlled by CSS using the .is-condensed state
350        center.classList.add('opacity-0', 'pointer-events-none', 'flex-none', 'overflow-hidden');
351        center.classList.remove('opacity-100');
352        center.setAttribute('aria-hidden', 'true');
353        center.setAttribute('inert', '');
354      } else {
355        // Measure the natural width and expose via CSS variable for smooth transition
356        measureCenterWidth();
357        center.style.setProperty('--centerMax', centerMax ? centerMax + 'px' : '9999px');
358        center.classList.remove('opacity-0', 'pointer-events-none', 'flex-none', 'overflow-hidden');
359        center.classList.add('opacity-100');
360        center.removeAttribute('aria-hidden');
361        center.removeAttribute('inert');
362      }
363    }
364
365    function updateFloatingHeaderOnScroll() {
366      const fh = getFloatingHeader();
367      if (!fh) return;
368      const y = window.scrollY;
369      if (y < 80) {
370        setFloatingCondensed(false);
371      } else if (y > lastScrollY + 4) {
372        setFloatingCondensed(true);
373      } else if (y < lastScrollY - 4) {
374        setFloatingCondensed(false);
375      }
376      lastScrollY = y;
377    }
378
379    // Measure and animate center menu width for smooth shrink/expand
380    let centerMax = 0;
381    function measureCenterWidth() {
382      const c = getFloatingCenter();
383      if (!c) return;
384      // Temporarily allow measuring full width without leaving inline styles behind
385      const prev = c.style.maxWidth;
386      c.style.maxWidth = 'none';
387      centerMax = c.scrollWidth;
388      // restore previous inline value exactly as it was (or clear it)
389      if (prev) c.style.maxWidth = prev;
390      else c.style.removeProperty('max-width');
391    }
392
393    const debounce = (fn, ms = 150) => {
394      let t;
395      return (...a) => {
396        clearTimeout(t);
397        t = setTimeout(() => fn(...a), ms);
398      };
399    };
400    measureCenterWidth();
401
402    const onResize = debounce(() => {
403      setFloatingCondensed(false);
404      measureCenterWidth();
405    }, 200);
406    window.addEventListener('resize', onResize, { passive: true });
407
408    attachEvent('#header nav', 'click', function () {
409      document.querySelector('[data-aw-toggle-menu]')?.classList.remove('expanded');
410      document.body.classList.remove('overflow-hidden');
411      document.getElementById('header')?.classList.remove('h-screen');
412      document.getElementById('header')?.classList.remove('expanded');
413      document.getElementById('header')?.classList.remove('bg-page');
414      document.querySelector('#header nav')?.classList.add('hidden');
415      document.querySelector('#header > div > div:last-child')?.classList.add('hidden');
416    });
417
418    attachEvent('[data-aw-toggle-menu]', 'click', function (_, elem) {
419      elem.classList.toggle('expanded');
420      document.body.classList.toggle('overflow-hidden');
421      document.getElementById('header')?.classList.toggle('h-screen');
422      document.getElementById('header')?.classList.toggle('expanded');
423      document.getElementById('header')?.classList.toggle('bg-page');
424      document.querySelector('#header nav')?.classList.toggle('hidden');
425      document.querySelector('#header > div > div:last-child')?.classList.toggle('hidden');
426    });
427
428    attachEvent('[data-aw-toggle-color-scheme]', 'click', function () {
429      if (defaultTheme.endsWith(':only')) {
430        return;
431      }
432
433      Observer.removeAnimationDelay();
434
435      document.documentElement.classList.toggle('dark');
436      localStorage.theme = document.documentElement.classList.contains('dark') ? 'dark' : 'light';
437    });
438
439    attachEvent('[data-aw-social-share]', 'click', function (_, elem) {
440      const network = elem.getAttribute('data-aw-social-share');
441      const url = encodeURIComponent(elem.getAttribute('data-aw-url'));
442      const text = encodeURIComponent(elem.getAttribute('data-aw-text'));
443
444      let href;
445      switch (network) {
446        case 'facebook':
447          href = `https://www.facebook.com/sharer.php?u=${url}`;
448          break;
449        case 'twitter':
450          href = `https://twitter.com/intent/tweet?url=${url}&text=${text}`;
451          break;
452        case 'linkedin':
453          href = `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${text}`;
454          break;
455        case 'whatsapp':
456          href = `https://wa.me/?text=${text}%20${url}`;
457          break;
458        case 'mail':
459          href = `mailto:?subject=%22${text}%22&body=${text}%20${url}`;
460          break;
461
462        default:
463          return;
464      }
465
466      const newlink = document.createElement('a');
467      newlink.target = '_blank';
468      newlink.href = href;
469      newlink.click();
470    });
471
472    const screenSize = window.matchMedia('(max-width: 767px)');
473    screenSize.addEventListener('change', function () {
474      document.querySelector('[data-aw-toggle-menu]')?.classList.remove('expanded');
475      document.body.classList.remove('overflow-hidden');
476      document.getElementById('header')?.classList.remove('h-screen');
477      document.getElementById('header')?.classList.remove('expanded');
478      document.getElementById('header')?.classList.remove('bg-page');
479      document.querySelector('#header nav')?.classList.add('hidden');
480      document.querySelector('#header > div > div:last-child')?.classList.add('hidden');
481    });
482
483    function applyHeaderStylesOnScroll() {
484      const header = document.querySelector('#header[data-aw-sticky-header]');
485      if (!header) return;
486      if (lastKnownScrollPosition > 60 && !header.classList.contains('scroll')) {
487        header.classList.add('scroll');
488      } else if (lastKnownScrollPosition <= 60 && header.classList.contains('scroll')) {
489        header.classList.remove('scroll');
490      }
491      ticking = false;
492    }
493
494    // Active section highlighting for FloatingHeader links
495    function initFloatingActiveObserver() {
496      const links = Array.from(document.querySelectorAll('#floating-header [data-fh-link]'));
497      if (!links.length) return;
498      const items = links
499        .map((a) => {
500          const raw = a.getAttribute('href') || '';
501          const hashIndex = raw.indexOf('#');
502          if (hashIndex === -1) return null;
503          const id = raw.slice(hashIndex + 1);
504          if (!id) return null;
505          const el = document.getElementById(id);
506          return el ? { id, el, a } : null;
507        })
508        .filter(Boolean);
509      if (!items.length) return;
510
511      let current = '';
512      function setActive(id) {
513        if (id === current) return;
514        current = id;
515        items.forEach(({ id: i, a }) => {
516          const active = i === id;
517          a.setAttribute('data-active', active ? 'true' : 'false');
518          // Fallback for environments where arbitrary data-* variants are not built
519          a.classList.toggle('bg-primary', active);
520          a.classList.toggle('text-white', active);
521          if (active) a.setAttribute('aria-current', 'page');
522          else a.removeAttribute('aria-current');
523        });
524      }
525
526      const io = new IntersectionObserver(
527        (entries) => {
528          entries.forEach((entry) => {
529            if (entry.isIntersecting) {
530              const it = items.find((x) => x.el === entry.target);
531              if (it) setActive(it.id);
532            }
533          });
534        },
535        { rootMargin: '-40% 0px -50% 0px', threshold: 0.01 }
536      );
537      items.forEach(({ el }) => io.observe(el));
538
539      // initialize
540      const firstVisible = items.find(({ el }) => {
541        const r = el.getBoundingClientRect();
542        return r.top >= 0 && r.top < window.innerHeight * 0.6;
543      });
544      if (firstVisible) setActive(firstVisible.id);
545    }
546
547    applyHeaderStylesOnScroll();
548    updateFloatingHeaderOnScroll();
549    initFloatingActiveObserver();
550
551    window.addEventListener(
552      'scroll',
553      function () {
554        lastKnownScrollPosition = window.scrollY;
555
556        // Ensure FloatingHeader state updates immediately (cheap), independent of RAF/ticking
557        try {
558          updateFloatingHeaderOnScroll();
559        } catch {
560          // Ignore header scroll update errors
561        }
562
563        if (!ticking) {
564          window.requestAnimationFrame(() => {
565            applyHeaderStylesOnScroll();
566            // updateFloatingHeaderOnScroll(); // already called above for snappy UX
567          });
568          ticking = true;
569        }
570      },
571      { passive: true }
572    );
573  };
574  const onPageShow = function () {
575    document.documentElement.classList.add('motion-safe:scroll-smooth');
576    const elem = document.querySelector('[data-aw-toggle-menu]');
577    if (elem) {
578      elem.classList.remove('expanded');
579    }
580    document.body.classList.remove('overflow-hidden');
581    document.getElementById('header')?.classList.remove('h-screen');
582    document.getElementById('header')?.classList.remove('expanded');
583    document.querySelector('#header nav')?.classList.add('hidden');
584
585    // Reset floating header state on page show
586    try {
587      setFloatingCondensed(false);
588    } catch {
589      // Ignore initial floating header state issues
590    }
591  };
592
593  onLoad();
594  window.onpageshow = onPageShow;
595
596  document.addEventListener('astro:after-swap', () => {
597    initTheme();
598    onLoad();
599    onPageShow();
600  });
601})();</script>
601 
601<script>
602  /* Inspired by: https://github.com/heidkaemper/tailwindcss-intersect */
603  const Observer = {
604    observer: null,
605    delayBetweenAnimations: 100,
606    animationCounter: 0,
607    elements: null,
608
609    start() {
610      const selectors = [
611        '[class*=" intersect:"]',
612        '[class*=":intersect:"]',
613        '[class^="intersect:"]',
614        '[class="intersect"]',
615        '[class*=" intersect "]',
616        '[class^="intersect "]',
617        '[class$=" intersect"]',
618      ];
619
620      this.elements = Array.from(document.querySelectorAll(selectors.join(',')));
621
622      const getThreshold = (element) => {
623        if (element.classList.contains('intersect-full')) return 0.99;
624        if (element.classList.contains('intersect-half')) return 0.5;
625        if (element.classList.contains('intersect-quarter')) return 0.25;
626        return 0;
627      };
628
629      this.elements.forEach((el) => {
630        el.setAttribute('no-intersect', '');
631        el._intersectionThreshold = getThreshold(el);
632      });
633
634      const callback = (entries) => {
635        entries.forEach((entry) => {
636          requestAnimationFrame(() => {
637            const target = entry.target;
638            const intersectionRatio = entry.intersectionRatio;
639            const threshold = target._intersectionThreshold;
640
641            if (target.classList.contains('intersect-no-queue')) {
642              if (entry.isIntersecting) {
643                target.removeAttribute('no-intersect');
644                if (target.classList.contains('intersect-once')) {
645                  this.observer.unobserve(target);
646                }
647              } else {
648                target.setAttribute('no-intersect', '');
649              }
650              return;
651            }
652
653            if (intersectionRatio >= threshold) {
654              if (!target.hasAttribute('data-animated')) {
655                target.removeAttribute('no-intersect');
656                target.setAttribute('data-animated', 'true');
657
658                const delay = this.animationCounter * this.delayBetweenAnimations;
659                this.animationCounter++;
660
661                target.style.transitionDelay = `${delay}ms`;
662                target.style.animationDelay = `${delay}ms`;
663
664                if (target.classList.contains('intersect-once')) {
665                  this.observer.unobserve(target);
666                }
667              }
668            } else {
669              target.setAttribute('no-intersect', '');
670              target.removeAttribute('data-animated');
671              target.style.transitionDelay = '';
672              target.style.animationDelay = '';
673
674              this.animationCounter = 0;
675            }
676          });
677        });
678      };
679
680      this.observer = new IntersectionObserver(callback.bind(this), { threshold: [0, 0.25, 0.5, 0.99] });
681
682      this.elements.forEach((el) => {
683        this.observer.observe(el);
684      });
685    },
686
687    /*
688      REF: #643;
689      We need to remove the delay to fix flickering/delay
690      when toggling the theme. Observer only removes them
691      after data-animated is gone (out of view).
692    */
693    removeAnimationDelay() {
694      this.elements.forEach((el) => {
695        if (el.getAttribute('data-animated') === 'true') {
696          el.style.transitionDelay = '';
697          el.style.animationDelay = '';
698        }
699      });
700    },
701  };
702
703  Observer.start();
704
705  document.addEventListener('astro:after-swap', () => {
706    Observer.start();
707  });
708</script>
708 </body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.