{"id":2220,"date":"2026-08-20T13:07:24","date_gmt":"2026-08-20T13:07:24","guid":{"rendered":"https:\/\/michalplebaniak.com\/?page_id=2220"},"modified":"2026-09-02T09:13:25","modified_gmt":"2026-09-02T09:13:25","slug":"talent-complete","status":"publish","type":"page","link":"https:\/\/michalplebaniak.com\/en\/talent-complete\/","title":{"rendered":"Talent Complete"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2220\" class=\"elementor elementor-2220\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3fc254e e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"3fc254e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ddab9c elementor-widget elementor-widget-html\" data-id=\"8ddab9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n\n<meta\n  name=\"viewport\"\n  content=\"width=device-width, initial-scale=1, viewport-fit=cover\"\n>\n\n<title>Talent Complete \u2014 Your IT matchmaker.<\/title>\n\n<meta\n  name=\"description\"\n  content=\"Specialist recruitment for SAP, Workday, ServiceNow, Data, AI, Cloud and Engineering teams across Europe.\"\n>\n\n<style>\n\n\/* =========================================================\n   TOKENS\n========================================================= *\/\n\n:root{\n  --purple:#5323AB;\n  --purple-dark:#35116F;\n\n  --yellow:#FBBC05;\n  --blue:#4285F4;\n  --red:#EA4335;\n  --pink:#FF5AA5;\n  --green:#B7FF00;\n\n  --black:#111111;\n  --white:#FFFFFF;\n\n  --placeholder:#F6F6F6;\n  --grey:#EEEEEE;\n  --grey-border:#E6E6E6;\n  --grey-text:#707070;\n\n  --page:clamp(18px,3vw,58px);\n  --section:clamp(100px,10vw,165px);\n\n  --ease:cubic-bezier(.2,.7,.2,1);\n}\n\n\n\/* =========================================================\n   RESET\n========================================================= *\/\n\n*,\n*::before,\n*::after{\n  box-sizing:border-box;\n}\n\nhtml{\n  width:100%;\n  max-width:100%;\n\n  overflow-x:hidden;\n\n  scroll-behavior:smooth;\n\n  -webkit-text-size-adjust:100%;\n}\n\nbody{\n  margin:0;\n\n  width:100%;\n  max-width:100%;\n\n  min-width:0;\n\n  overflow-x:hidden;\n\n  background:#fff;\n  color:#181818;\n\n  font-family:\n    Inter,\n    -apple-system,\n    BlinkMacSystemFont,\n    \"Segoe UI\",\n    Arial,\n    Helvetica,\n    sans-serif;\n\n  -webkit-font-smoothing:antialiased;\n  text-rendering:geometricPrecision;\n}\n\nbody.menu-open{\n  overflow:hidden;\n}\n\nmain{\n  width:100%;\n  max-width:100%;\n}\n\nmain,\nsection,\ndiv,\narticle,\naside,\nnav,\nfooter,\nheader{\n  min-width:0;\n}\n\na{\n  color:inherit;\n\n  text-decoration:none;\n}\n\nimg,\nsvg{\n  display:block;\n\n  max-width:100%;\n}\n\nbutton,\ninput,\ntextarea,\nselect{\n  font:inherit;\n}\n\nbutton{\n  margin:0;\n  padding:0;\n\n  border:0;\n\n  background:none;\n  color:inherit;\n\n  cursor:pointer;\n}\n\n::selection{\n  background:var(--yellow);\n  color:#111;\n}\n\n.select-purple *::selection{\n  background:var(--purple);\n  color:#fff;\n}\n\n.select-black *::selection{\n  background:#111;\n  color:#fff;\n}\n\n\n\/* =========================================================\n   GLOBAL\n========================================================= *\/\n\n.section{\n  position:relative;\n\n  width:100%;\n  max-width:100%;\n\n  padding-left:var(--page);\n  padding-right:var(--page);\n\n  background:#fff;\n}\n\n.section-label{\n  display:inline-flex;\n\n  align-items:center;\n\n  gap:8px;\n\n  padding:7px 12px;\n\n  border:1px solid var(--grey-border);\n  border-radius:999px;\n\n  background:#fff;\n\n  color:var(--purple);\n\n  font-size:10px;\n  font-weight:750;\n\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n\n.section-label::before{\n  content:\"\";\n\n  width:7px;\n  height:7px;\n\n  flex:0 0 auto;\n\n  border-radius:50%;\n\n  background:var(--purple);\n}\n\n.section-title{\n  margin:0;\n\n  color:#111;\n\n  font-size:clamp(42px,5.2vw,86px);\n  line-height:.95;\n\n  font-weight:560;\n\n  letter-spacing:-.06em;\n}\n\n.large-copy{\n  margin:0;\n\n  font-size:clamp(21px,2vw,31px);\n  line-height:1.38;\n\n  letter-spacing:-.03em;\n}\n\n.button{\n  min-height:48px;\n\n  display:inline-flex;\n\n  align-items:center;\n  justify-content:center;\n\n  padding:0 20px;\n\n  border-radius:999px;\n\n  font-size:13px;\n  font-weight:720;\n\n  white-space:nowrap;\n\n  transition:\n    transform .25s var(--ease),\n    background .2s ease,\n    color .2s ease,\n    border-color .2s ease;\n}\n\n.button:hover{\n  transform:translateY(-2px);\n}\n\n.button-primary{\n  background:var(--purple);\n  color:#fff;\n}\n\n.button-primary:hover{\n  background:var(--purple-dark);\n}\n\n.button-outline{\n  border:1px solid #ddd;\n\n  background:#fff;\n  color:#111;\n}\n\n.button-outline:hover{\n  border-color:var(--purple);\n\n  color:var(--purple);\n}\n\n\n\/* =========================================================\n   ENTRY\n========================================================= *\/\n\n.section-enter{\n  opacity:0;\n\n  transform:translateY(22px);\n\n  transition:\n    opacity .72s var(--ease),\n    transform .72s var(--ease);\n}\n\n.section-enter.section-visible{\n  opacity:1;\n\n  transform:none;\n}\n\n\n\/* =========================================================\n   HEADER\n========================================================= *\/\n\n.site-header{\n  position:fixed;\n\n  z-index:300;\n\n  top:0;\n  left:0;\n  right:0;\n\n  height:0;\n\n  pointer-events:none;\n}\n\n.glass-control{\n  position:absolute;\n\n  top:max(16px,env(safe-area-inset-top));\n\n  width:64px;\n  height:64px;\n\n  display:grid;\n\n  place-items:center;\n\n  overflow:hidden;\n\n  border:.5px solid rgba(255,255,255,.72);\n  border-radius:21px;\n\n  background:\n    linear-gradient(\n      145deg,\n      rgba(255,255,255,.68),\n      rgba(255,255,255,.39) 42%,\n      rgba(255,255,255,.26)\n    );\n\n  box-shadow:\n    inset 0 .5px 0 rgba(255,255,255,.95),\n    inset 0 -.5px 0 rgba(255,255,255,.18),\n    inset 5px 0 10px rgba(255,255,255,.09),\n    inset -5px 0 10px rgba(255,255,255,.055);\n\n  backdrop-filter:\n    blur(22px)\n    saturate(1.7);\n\n  -webkit-backdrop-filter:\n    blur(22px)\n    saturate(1.7);\n\n  isolation:isolate;\n\n  pointer-events:auto;\n\n  -webkit-tap-highlight-color:transparent;\n\n  transition:\n    transform .28s var(--ease),\n    background .28s ease;\n}\n\n.glass-control::before{\n  content:\"\";\n\n  position:absolute;\n\n  z-index:-2;\n\n  inset:0;\n\n  border-radius:inherit;\n\n  background:\n    radial-gradient(\n      circle at 18% 8%,\n      rgba(255,255,255,.9),\n      rgba(255,255,255,.32) 22%,\n      transparent 46%\n    ),\n    radial-gradient(\n      circle at 85% 96%,\n      rgba(255,255,255,.25),\n      transparent 39%\n    );\n}\n\n.glass-control::after{\n  content:\"\";\n\n  position:absolute;\n\n  z-index:-1;\n\n  inset:1px;\n\n  border:3px solid rgba(255,255,255,.05);\n  border-radius:19px;\n\n  box-shadow:\n    inset 3px 0 7px rgba(255,255,255,.11),\n    inset -3px 0 7px rgba(255,255,255,.07),\n    inset 0 3px 6px rgba(255,255,255,.10),\n    inset 0 -2px 5px rgba(255,255,255,.035);\n\n  pointer-events:none;\n}\n\n@media(hover:hover){\n\n  .glass-control:hover{\n    transform:\n      translateY(-2px)\n      scale(1.025);\n  }\n\n}\n\n.header-logo-control{\n  left:max(var(--page),env(safe-area-inset-left));\n}\n\n.header-logo-control img{\n  position:relative;\n\n  z-index:3;\n\n  width:49px;\n  height:49px;\n\n  object-fit:contain;\n\n  pointer-events:none;\n}\n\n.menu-toggle{\n  right:max(var(--page),env(safe-area-inset-right));\n}\n\n.menu-plus{\n  position:relative;\n\n  z-index:3;\n\n  width:25px;\n  height:25px;\n}\n\n.menu-plus::before,\n.menu-plus::after{\n  content:\"\";\n\n  position:absolute;\n\n  left:50%;\n  top:50%;\n\n  width:24px;\n  height:2px;\n\n  border-radius:999px;\n\n  background:#111;\n\n  transform:translate(-50%,-50%);\n\n  transition:\n    transform .34s var(--ease);\n}\n\n.menu-plus::after{\n  transform:\n    translate(-50%,-50%)\n    rotate(90deg);\n}\n\n.site-header.is-open .menu-plus::before{\n  transform:\n    translate(-50%,-50%)\n    rotate(45deg);\n}\n\n.site-header.is-open .menu-plus::after{\n  transform:\n    translate(-50%,-50%)\n    rotate(-45deg);\n}\n\n\n\/* =========================================================\n   MENU\n========================================================= *\/\n\n.menu-overlay{\n  position:fixed;\n\n  z-index:250;\n\n  inset:0;\n\n  padding:\n    calc(112px + env(safe-area-inset-top))\n    var(--page)\n    34px;\n\n  overflow-y:auto;\n  overflow-x:hidden;\n\n  overscroll-behavior:contain;\n\n  background:rgba(255,255,255,.975);\n\n  opacity:0;\n  visibility:hidden;\n\n  transform:translateY(-12px);\n\n  transition:\n    opacity .3s ease,\n    visibility .3s ease,\n    transform .35s var(--ease);\n}\n\n.menu-overlay.open{\n  opacity:1;\n  visibility:visible;\n\n  transform:none;\n}\n\n.menu-body{\n  min-height:calc(100dvh - 150px);\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(280px,.48fr);\n\n  gap:60px;\n\n  align-items:center;\n}\n\n.menu-links{\n  display:grid;\n}\n\n.menu-links a{\n  width:fit-content;\n  max-width:100%;\n\n  color:#111;\n\n  font-size:clamp(44px,6.1vw,92px);\n  line-height:.98;\n\n  font-weight:550;\n\n  letter-spacing:-.065em;\n\n  overflow-wrap:anywhere;\n\n  transition:\n    color .2s ease,\n    transform .25s var(--ease);\n}\n\n.menu-links a:hover{\n  color:var(--purple);\n\n  transform:translateX(8px);\n}\n\n.menu-side-label{\n  margin-bottom:16px;\n\n  color:#888;\n\n  font-size:10px;\n  font-weight:700;\n\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n\n.menu-side p{\n  max-width:390px;\n\n  margin:0 0 28px;\n\n  color:#686868;\n\n  font-size:15px;\n  line-height:1.6;\n}\n\n.socials{\n  display:flex;\n\n  flex-wrap:wrap;\n\n  gap:7px;\n}\n\n.social-icon{\n  width:42px;\n  height:42px;\n\n  flex:0 0 auto;\n\n  display:grid;\n\n  place-items:center;\n\n  border:1px solid #E2E2E2;\n  border-radius:50%;\n\n  background:#fff;\n\n  transition:\n    transform .2s ease,\n    background .2s ease,\n    color .2s ease;\n}\n\n.social-icon:hover{\n  transform:translateY(-2px);\n\n  background:var(--purple);\n  color:#fff;\n}\n\n.social-icon svg{\n  width:15px;\n  height:15px;\n\n  fill:currentColor;\n}\n\n\n\/* =========================================================\n   HERO\n========================================================= *\/\n\n.hero{\n  position:relative;\n\n  width:100%;\n  max-width:100%;\n\n  min-height:920px;\n\n  padding:150px 0 80px;\n\n  overflow:hidden;\n\n  background:#fff;\n}\n\n.hero-copy{\n  position:relative;\n\n  z-index:3;\n\n  width:min(1050px,90vw);\n\n  margin:0 auto;\n\n  padding:0 16px;\n\n  text-align:center;\n}\n\n.hero-kicker{\n  width:100%;\n\n  margin:0 auto 18px;\n\n  color:var(--purple);\n\n  text-align:center;\n\n  font-size:clamp(17px,1.45vw,25px);\n  line-height:1.2;\n\n  font-weight:520;\n\n  letter-spacing:-.035em;\n}\n\n.hero-title{\n  margin:0;\n\n  color:#080808;\n\n  font-size:clamp(70px,9vw,145px);\n  line-height:.88;\n\n  font-weight:620;\n\n  letter-spacing:-.082em;\n\n  text-align:center;\n}\n\n.hero-title span{\n  display:block;\n}\n\n.hero-description{\n  max-width:640px;\n\n  margin:22px auto 0;\n\n  color:#686868;\n\n  font-size:clamp(16px,1.35vw,21px);\n  line-height:1.5;\n}\n\n.hero-actions{\n  margin-top:25px;\n\n  display:flex;\n\n  justify-content:center;\n\n  gap:9px;\n\n  flex-wrap:wrap;\n}\n\n\n\/* =========================================================\n   HERO LOOP\n========================================================= *\/\n\n.hero-loop{\n  --loop-gap:18px;\n  --square-size:clamp(220px,19vw,340px);\n\n  position:relative;\n\n  width:100%;\n\n  margin-top:70px;\n\n  overflow:hidden;\n\n  cursor:grab;\n\n  touch-action:pan-y;\n\n  user-select:none;\n  -webkit-user-select:none;\n}\n\n.hero-loop.is-dragging{\n  cursor:grabbing;\n}\n\n.hero-loop-track{\n  display:flex;\n\n  width:max-content;\n\n  will-change:transform;\n}\n\n.hero-loop-set{\n  display:flex;\n\n  flex:0 0 auto;\n\n  gap:var(--loop-gap);\n\n  padding-right:var(--loop-gap);\n}\n\n.hero-square{\n  width:var(--square-size);\n  height:var(--square-size);\n\n  flex:0 0 var(--square-size);\n\n  border-radius:28px;\n\n  background:var(--placeholder);\n\n  pointer-events:none;\n}\n\n\n\/* =========================================================\n   CLIENTS\n========================================================= *\/\n\n.clients{\n  padding-top:35px;\n  padding-bottom:35px;\n}\n\n.clients-label{\n  margin-bottom:22px;\n\n  color:#888;\n\n  font-size:10px;\n  font-weight:720;\n\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n\n.clients-band{\n  padding:30px 0;\n\n  border-top:1px solid #E7E7E7;\n  border-bottom:1px solid #E7E7E7;\n}\n\n.client-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(6,minmax(0,1fr));\n\n  gap:28px;\n\n  align-items:center;\n}\n\n.client-logo{\n  height:62px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:center;\n}\n\n.client-logo img{\n  width:auto;\n  height:auto;\n\n  max-width:130px;\n  max-height:38px;\n\n  object-fit:contain;\n\n  filter:\n    grayscale(1)\n    contrast(1.08);\n}\n\n.client-fallback{\n  display:none;\n\n  font-size:20px;\n  font-weight:700;\n}\n\n\n\/* =========================================================\n   PATH SYSTEM\n========================================================= *\/\n\n.path-section{\n  position:relative;\n\n  overflow:visible;\n}\n\n.path-art{\n  position:absolute;\n\n  z-index:1;\n\n  left:50%;\n\n  max-width:none;\n\n  overflow:visible;\n\n  pointer-events:none;\n\n  will-change:transform;\n}\n\n.desktop-art{\n  width:170vw;\n\n  margin-left:-85vw;\n}\n\n.mobile-art{\n  display:none;\n}\n\n.desktop-scroll-art,\n.mobile-scroll-art{\n  visibility:hidden;\n}\n\n.desktop-scroll-art.path-ready,\n.mobile-scroll-art.path-ready{\n  visibility:visible;\n}\n\n.path-art path{\n  fill:none;\n\n  stroke-linecap:round;\n  stroke-linejoin:round;\n\n  vector-effect:non-scaling-stroke;\n}\n\n.path-section > *:not(.path-art){\n  position:relative;\n\n  z-index:2;\n}\n\n\n\/* =========================================================\n   PRINCIPLES\n========================================================= *\/\n\n.principles{\n  min-height:900px;\n\n  padding-top:125px;\n  padding-bottom:125px;\n\n  display:flex;\n\n  align-items:center;\n}\n\n.principles-line{\n  top:-8%;\n\n  height:112%;\n}\n\n.principles-line path{\n  stroke-width:84;\n}\n\n.principles-inner{\n  width:min(100%,1080px);\n\n  margin:0 auto;\n}\n\n.principles-code{\n  margin-bottom:28px;\n\n  color:#777;\n\n  font-family:\n    \"SFMono-Regular\",\n    Consolas,\n    monospace;\n\n  font-size:11px;\n\n  letter-spacing:.08em;\n}\n\n.principles-title{\n  max-width:920px;\n\n  margin:0;\n\n  font-size:clamp(64px,8.5vw,138px);\n  line-height:.92;\n\n  font-weight:520;\n\n  letter-spacing:-.068em;\n}\n\n.principles-copy{\n  max-width:630px;\n\n  margin:72px 0 0 auto;\n\n  color:#5E5E5E;\n\n  font-size:clamp(20px,2vw,31px);\n  line-height:1.42;\n\n  letter-spacing:-.03em;\n}\n\n\n\/* =========================================================\n   VALUES\n========================================================= *\/\n\n.values{\n  padding-top:20px;\n  padding-bottom:var(--section);\n}\n\n.value-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(3,minmax(0,1fr));\n\n  gap:10px;\n}\n\n.value-card{\n  min-height:380px;\n\n  padding:34px;\n\n  display:flex;\n\n  flex-direction:column;\n  justify-content:space-between;\n\n  border:0;\n  border-radius:34px;\n\n  background:#111;\n  color:#fff;\n\n  cursor:pointer;\n\n  -webkit-tap-highlight-color:transparent;\n\n  transition:\n    background .38s var(--ease),\n    color .38s var(--ease),\n    transform .32s var(--ease);\n}\n\n.value-code{\n  color:rgba(255,255,255,.48);\n\n  font-family:\n    \"SFMono-Regular\",\n    Consolas,\n    monospace;\n\n  font-size:10px;\n\n  letter-spacing:.1em;\n\n  transition:color .38s var(--ease);\n}\n\n.value-card h3{\n  margin:0 0 16px;\n\n  color:inherit;\n\n  font-size:clamp(30px,3vw,46px);\n  line-height:1.03;\n\n  font-weight:520;\n\n  letter-spacing:-.05em;\n}\n\n.value-card p{\n  margin:0;\n\n  color:rgba(255,255,255,.67);\n\n  font-size:18px;\n  line-height:1.46;\n\n  transition:color .38s var(--ease);\n}\n\n@media(hover:hover){\n\n  .value-card:hover{\n    transform:translateY(-5px);\n\n    background:#fff;\n    color:#111;\n  }\n\n  .value-card:hover .value-code{\n    color:#888;\n  }\n\n  .value-card:hover p{\n    color:#666;\n  }\n\n}\n\n.value-card.is-inverted{\n  background:#fff;\n  color:#111;\n}\n\n.value-card.is-inverted .value-code{\n  color:#888;\n}\n\n.value-card.is-inverted p{\n  color:#666;\n}\n\n\n\/* =========================================================\n   INTRO\n========================================================= *\/\n\n.intro{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,.95fr)\n    minmax(0,1.05fr);\n\n  gap:clamp(60px,8vw,135px);\n\n  align-items:center;\n}\n\n.intro-proof{\n  width:100%;\n\n  border-top:1px solid #DDD;\n}\n\n.intro-proof-row{\n  min-height:150px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(155px,.72fr)\n    minmax(0,1.28fr);\n\n  gap:34px;\n\n  align-items:center;\n\n  border-bottom:1px solid #E7E7E7;\n}\n\n.intro-proof-value{\n  color:#111;\n\n  font-size:clamp(35px,4vw,65px);\n  line-height:.94;\n\n  font-weight:540;\n\n  letter-spacing:-.065em;\n\n  white-space:nowrap;\n}\n\n.intro-proof-label{\n  max-width:340px;\n\n  color:#707070;\n\n  font-size:16px;\n  line-height:1.5;\n}\n\n.intro-copy p{\n  margin:24px 0 0;\n}\n\n\n\/* =========================================================\n   SOLUTIONS\n========================================================= *\/\n\n.solutions{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.solution-line{\n  top:-105px;\n\n  height:820px;\n}\n\n.solution-line path{\n  stroke-width:76;\n}\n\n.two-column-heading{\n  margin-bottom:82px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(0,.75fr);\n\n  gap:65px;\n\n  align-items:end;\n}\n\n.two-column-heading p{\n  max-width:610px;\n\n  margin:0;\n\n  color:#707070;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.solution-layout{\n  max-width:1450px;\n\n  margin:0 auto;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,.76fr)\n    minmax(0,1.24fr);\n\n  gap:clamp(50px,8vw,125px);\n}\n\n.solution-visual-wrap{\n  position:sticky;\n\n  top:100px;\n}\n\n.solution-visual{\n  width:100%;\n  max-width:455px;\n\n  aspect-ratio:1;\n\n  border-radius:34px;\n\n  background:var(--placeholder);\n}\n\n.solution-list{\n  display:flex;\n\n  flex-direction:column;\n}\n\n.solution-button{\n  width:fit-content;\n  max-width:100%;\n\n  color:#D0D0D4;\n\n  text-align:left;\n\n  font-size:clamp(36px,4.5vw,72px);\n  line-height:1.08;\n\n  font-weight:600;\n\n  letter-spacing:-.057em;\n\n  overflow-wrap:anywhere;\n\n  transition:\n    color .2s ease,\n    transform .3s var(--ease);\n}\n\n.solution-button + .solution-button{\n  margin-top:7px;\n}\n\n.solution-button:hover{\n  color:#171717;\n\n  transform:translateX(7px);\n}\n\n.solution-button.active{\n  color:#171717;\n}\n\n.solution-description{\n  max-width:720px;\n\n  min-height:90px;\n\n  margin:48px 0 0;\n\n  color:#666;\n\n  font-size:clamp(18px,1.7vw,27px);\n  line-height:1.38;\n\n  letter-spacing:-.025em;\n}\n\n\n\/* =========================================================\n   FOLDERS\n========================================================= *\/\n\n.folder-section{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.folder-heading{\n  max-width:950px;\n\n  margin-bottom:74px;\n}\n\n.folder-heading p{\n  max-width:650px;\n\n  margin:28px 0 0;\n\n  color:#686868;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.folder-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(4,minmax(0,1fr));\n\n  gap:16px;\n}\n\n.folder-card{\n  --folder:#EEEEEE;\n  --folder-text:#111;\n  --folder-muted:#666;\n\n  position:relative;\n\n  aspect-ratio:.76;\n\n  overflow:hidden;\n\n  border-radius:30px;\n\n  background:transparent;\n\n  cursor:pointer;\n\n  -webkit-tap-highlight-color:transparent;\n\n  touch-action:manipulation;\n\n  transition:transform .35s var(--ease);\n}\n\n.folder-card:hover{\n  transform:translateY(-6px);\n}\n\n.folder-inner{\n  position:relative;\n\n  width:100%;\n  height:100%;\n\n  overflow:hidden;\n\n  border-radius:30px;\n\n  background:var(--placeholder);\n}\n\n.folder-media{\n  position:absolute;\n\n  inset:0;\n\n  background:var(--placeholder);\n}\n\n.folder-front{\n  position:absolute;\n\n  z-index:4;\n\n  left:0;\n  right:0;\n  top:17%;\n\n  height:83%;\n\n  transition:transform .65s var(--ease);\n}\n\n.folder-card:hover .folder-front,\n.folder-card.open .folder-front{\n  transform:translateY(39%);\n}\n\n.folder-front-svg{\n  position:absolute;\n\n  inset:0;\n\n  width:100%;\n  height:100%;\n\n  pointer-events:none;\n}\n\n.folder-front-svg path{\n  fill:var(--folder);\n}\n\n.folder-front-content{\n  position:absolute;\n\n  inset:0;\n\n  padding:\n    clamp(58px,4.8vw,84px)\n    clamp(24px,1.8vw,34px)\n    clamp(25px,2vw,34px);\n\n  display:flex;\n\n  flex-direction:column;\n  justify-content:space-between;\n\n  color:var(--folder-text);\n}\n\n.folder-top{\n  display:flex;\n\n  align-items:flex-start;\n  justify-content:space-between;\n}\n\n.folder-number{\n  font-size:clamp(50px,4.4vw,76px);\n  line-height:1;\n\n  font-weight:400;\n\n  letter-spacing:-.06em;\n}\n\n.folder-arrow{\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:25px;\n  font-variant-emoji:text;\n  line-height:1;\n\n  transition:transform .4s var(--ease);\n}\n\n.folder-card.open .folder-arrow{\n  transform:rotate(45deg);\n}\n\n.folder-copy h3{\n  margin:0 0 9px;\n\n  font-size:clamp(17px,1.3vw,22px);\n  line-height:1.1;\n\n  font-weight:530;\n}\n\n.folder-copy p{\n  margin:0;\n\n  color:var(--folder-muted);\n\n  font-size:clamp(12px,.95vw,15px);\n  line-height:1.42;\n}\n\n.folder-card.grey{\n  --folder:#EEEEEE;\n}\n\n.folder-card.purple{\n  --folder:#5323AB;\n  --folder-text:#fff;\n  --folder-muted:rgba(255,255,255,.7);\n}\n\n.folder-card.black{\n  --folder:#111;\n  --folder-text:#fff;\n  --folder-muted:rgba(255,255,255,.63);\n}\n\n.folder-card.yellow{\n  --folder:#FBBC05;\n  --folder-text:#111;\n  --folder-muted:#604E13;\n}\n\n\n\/* =========================================================\n   TECHNOLOGIES\n========================================================= *\/\n\n.technologies{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.tech-header{\n  max-width:1000px;\n\n  margin-bottom:72px;\n}\n\n.tech-header p{\n  max-width:680px;\n\n  margin:28px 0 0;\n\n  color:#717171;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.tech-swipe-hint{\n  display:none;\n}\n\n.tech-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(3,minmax(0,1fr));\n\n  gap:8px;\n}\n\n.tech-card{\n  position:relative;\n\n  min-height:310px;\n\n  padding:28px;\n\n  display:flex;\n\n  flex-direction:column;\n  justify-content:flex-end;\n\n  border:1px solid #ECECEC;\n  border-radius:20px;\n\n  background:#fff;\n\n  transition:\n    transform .28s var(--ease),\n    border-color .2s ease;\n}\n\n.tech-card:hover{\n  transform:translateY(-4px);\n\n  border-color:rgba(83,35,171,.32);\n}\n\n.tech-index{\n  position:absolute;\n\n  top:23px;\n  right:24px;\n\n  color:#C4C4C4;\n\n  font-family:\n    \"SFMono-Regular\",\n    Consolas,\n    monospace;\n\n  font-size:9px;\n\n  letter-spacing:.14em;\n}\n\n.tech-title-row{\n  margin-bottom:15px;\n\n  display:flex;\n\n  align-items:center;\n\n  gap:12px;\n}\n\n.tech-icon{\n  width:34px;\n  height:34px;\n\n  flex:0 0 auto;\n\n  display:grid;\n\n  place-items:center;\n}\n\n.tech-icon svg{\n  width:30px;\n  height:30px;\n}\n\n.tech-title-row h3{\n  margin:0;\n\n  font-size:28px;\n  line-height:1.05;\n\n  font-weight:520;\n\n  letter-spacing:-.045em;\n}\n\n.tech-card p{\n  margin:0;\n\n  color:#717171;\n\n  font-size:13px;\n  line-height:1.55;\n}\n\n.tech-tags{\n  margin-top:20px;\n\n  display:flex;\n\n  flex-wrap:wrap;\n\n  gap:6px;\n}\n\n.tech-tag{\n  display:inline-flex;\n\n  align-items:center;\n\n  min-height:27px;\n\n  padding:5px 9px;\n\n  border:1px solid #DDD;\n  border-radius:999px;\n\n  color:#666;\n\n  font-size:10px;\n\n  white-space:nowrap;\n}\n\n\n\/* =========================================================\n   TEAM\n========================================================= *\/\n\n.team{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.team-header{\n  margin-bottom:72px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(0,.75fr);\n\n  gap:60px;\n\n  align-items:end;\n}\n\n.team-header p{\n  max-width:580px;\n\n  margin:0;\n\n  color:#747474;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.team-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(4,minmax(0,1fr));\n\n  gap:8px;\n}\n\n.team-card{\n  position:relative;\n\n  min-height:500px;\n\n  overflow:hidden;\n\n  border-radius:22px;\n\n  background:var(--placeholder);\n}\n\n.team-card::after{\n  content:\"\";\n\n  position:absolute;\n\n  left:0;\n  right:0;\n  bottom:0;\n\n  height:42%;\n\n  background:\n    linear-gradient(\n      180deg,\n      transparent,\n      rgba(0,0,0,.7)\n    );\n}\n\n.team-info{\n  position:absolute;\n\n  z-index:3;\n\n  left:22px;\n  right:22px;\n  bottom:22px;\n\n  color:#fff;\n}\n\n.team-info span{\n  color:rgba(255,255,255,.65);\n\n  font-size:10px;\n\n  letter-spacing:.07em;\n\n  text-transform:uppercase;\n}\n\n.team-info h3{\n  margin:7px 0 0;\n\n  font-size:23px;\n\n  font-weight:520;\n}\n\n\n\/* =========================================================\n   PROCESS\n========================================================= *\/\n\n.process{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.process-line{\n  top:-45px;\n\n  height:880px;\n}\n\n.process-line path{\n  stroke-width:68;\n}\n\n.process-header{\n  margin-bottom:88px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(0,.75fr);\n\n  gap:60px;\n\n  align-items:end;\n}\n\n.process-header p{\n  max-width:570px;\n\n  margin:0;\n\n  color:#727272;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.process-list{\n  width:100%;\n\n  border-top:1px solid var(--grey-border);\n}\n\n.process-row{\n  width:100%;\n\n  padding:34px 0;\n\n  display:grid;\n\n  grid-template-columns:\n    52px\n    minmax(220px,390px)\n    minmax(0,1fr);\n\n  column-gap:38px;\n\n  align-items:start;\n\n  border-bottom:1px solid var(--grey-border);\n\n  background:transparent;\n}\n\n.process-number{\n  padding-top:7px;\n\n  color:#AAA;\n\n  font-family:\n    \"SFMono-Regular\",\n    Consolas,\n    monospace;\n\n  font-size:10px;\n}\n\n.process-row h3{\n  margin:0;\n\n  font-size:clamp(27px,3vw,45px);\n  line-height:1.06;\n\n  font-weight:520;\n\n  letter-spacing:-.045em;\n}\n\n.process-row p{\n  width:100%;\n  max-width:680px;\n\n  margin:0;\n\n  color:#777;\n\n  font-size:14px;\n  line-height:1.6;\n}\n\n\n\/* =========================================================\n   BLOG\n========================================================= *\/\n\n.blog{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.blog-header{\n  margin-bottom:70px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(0,.68fr);\n\n  gap:60px;\n\n  align-items:end;\n}\n\n.blog-header-copy{\n  max-width:600px;\n\n  margin:0;\n\n  color:#707070;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.blog-grid{\n  display:grid;\n\n  grid-template-columns:\n    repeat(3,minmax(0,1fr));\n\n  gap:12px;\n}\n\n.blog-card{\n  min-height:560px;\n\n  display:flex;\n\n  flex-direction:column;\n\n  overflow:hidden;\n\n  border:1px solid #E9E9E9;\n  border-radius:28px;\n\n  background:#fff;\n\n  transition:\n    transform .3s var(--ease),\n    border-color .2s ease;\n}\n\n.blog-card:hover{\n  transform:translateY(-5px);\n\n  border-color:rgba(83,35,171,.28);\n}\n\n.blog-media{\n  width:100%;\n\n  aspect-ratio:1.35;\n\n  background:var(--placeholder);\n}\n\n.blog-media::before,\n.blog-media::after{\n  display:none !important;\n\n  content:none !important;\n}\n\n.blog-content{\n  flex:1;\n\n  padding:26px;\n\n  display:flex;\n\n  flex-direction:column;\n}\n\n.blog-meta{\n  margin-bottom:22px;\n\n  display:flex;\n\n  justify-content:space-between;\n\n  gap:12px;\n\n  color:#888;\n\n  font-size:10px;\n\n  text-transform:uppercase;\n}\n\n.blog-category{\n  color:var(--purple);\n\n  font-weight:700;\n}\n\n.blog-card h3{\n  margin:0;\n\n  font-size:clamp(28px,2.7vw,43px);\n  line-height:1.04;\n\n  font-weight:520;\n\n  letter-spacing:-.05em;\n}\n\n.blog-excerpt{\n  margin:18px 0 0;\n\n  color:#707070;\n\n  font-size:14px;\n  line-height:1.6;\n}\n\n.blog-read{\n  margin-top:auto;\n\n  padding-top:34px;\n\n  display:flex;\n\n  align-items:center;\n  justify-content:space-between;\n\n  gap:20px;\n\n  font-size:12px;\n  font-weight:700;\n}\n\n.blog-read-arrow{\n  width:38px;\n  height:38px;\n\n  display:grid;\n\n  place-items:center;\n\n  border:1px solid #E5E5E5;\n  border-radius:50%;\n\n  font-family:Arial,Helvetica,sans-serif;\n  font-variant-emoji:text;\n  line-height:1;\n}\n\n.blog-card:hover .blog-read-arrow{\n  background:var(--purple);\n\n  color:#fff;\n}\n\n\n\/* =========================================================\n   FAQ\n========================================================= *\/\n\n.faq{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.faq-layout{\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,.72fr)\n    minmax(0,1.28fr);\n\n  gap:clamp(55px,8vw,130px);\n}\n\n.faq-intro{\n  position:sticky;\n\n  top:110px;\n\n  align-self:start;\n}\n\n.faq-intro p{\n  max-width:430px;\n\n  margin:28px 0 0;\n\n  color:#707070;\n\n  font-size:16px;\n  line-height:1.6;\n}\n\n.faq-list{\n  border-top:1px solid #E4E4E4;\n}\n\n.faq-item{\n  border-bottom:1px solid #E4E4E4;\n}\n\n.faq-question{\n  width:100%;\n\n  padding:27px 0;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    38px;\n\n  gap:20px;\n\n  align-items:center;\n\n  text-align:left;\n}\n\n.faq-question span:first-child{\n  font-size:clamp(20px,2vw,29px);\n}\n\n.faq-icon{\n  width:34px;\n  height:34px;\n\n  display:grid;\n\n  place-items:center;\n\n  border:1px solid #E7E7E7;\n  border-radius:50%;\n\n  color:var(--purple);\n\n  transition:\n    transform .3s var(--ease),\n    background .2s ease,\n    color .2s ease;\n}\n\n.faq-item.open .faq-icon{\n  transform:rotate(45deg);\n\n  background:var(--purple);\n  color:#fff;\n}\n\n.faq-answer{\n  max-height:0;\n\n  overflow:hidden;\n\n  transition:\n    max-height .4s var(--ease);\n}\n\n.faq-answer-inner{\n  max-width:740px;\n\n  padding:0 55px 28px 0;\n\n  color:#696969;\n\n  font-size:15px;\n  line-height:1.65;\n}\n\n\n\/* =========================================================\n   CONTACT\n========================================================= *\/\n\n.contact{\n  padding-top:var(--section);\n  padding-bottom:var(--section);\n}\n\n.contact-layout{\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,.82fr)\n    minmax(0,1.18fr);\n\n  gap:clamp(60px,9vw,140px);\n}\n\n.contact-copy{\n  position:sticky;\n\n  top:110px;\n\n  align-self:start;\n}\n\n.contact-copy p{\n  max-width:520px;\n\n  margin:28px 0 0;\n\n  color:#666;\n\n  font-size:17px;\n  line-height:1.6;\n}\n\n.contact-points{\n  margin-top:38px;\n\n  display:grid;\n\n  gap:12px;\n}\n\n.contact-point{\n  display:flex;\n\n  align-items:center;\n\n  gap:10px;\n\n  color:#666;\n\n  font-size:13px;\n}\n\n.contact-point::before{\n  content:\"\";\n\n  width:7px;\n  height:7px;\n\n  flex:0 0 auto;\n\n  border-radius:50%;\n\n  background:var(--purple);\n}\n\n.contact-form{\n  display:grid;\n\n  gap:13px;\n}\n\n.form-row{\n  display:grid;\n\n  grid-template-columns:\n    minmax(0,1fr)\n    minmax(0,1fr);\n\n  gap:13px;\n}\n\n.field{\n  display:grid;\n\n  gap:8px;\n}\n\n.field label{\n  color:#777;\n\n  font-size:10px;\n  font-weight:700;\n\n  text-transform:uppercase;\n}\n\n.field input,\n.field select,\n.field textarea{\n  width:100%;\n\n  padding:17px 18px;\n\n  border:1px solid #E2E2E2;\n  outline:0;\n\n  border-radius:14px;\n\n  background:#fff;\n  color:#111;\n\n  font-size:16px;\n}\n\n.field input:focus,\n.field select:focus,\n.field textarea:focus{\n  border-color:var(--purple);\n}\n\n.field textarea{\n  min-height:165px;\n\n  resize:vertical;\n}\n\n.form-submit-row{\n  margin-top:8px;\n\n  display:flex;\n\n  align-items:center;\n\n  gap:18px;\n\n  flex-wrap:wrap;\n}\n\n.form-demo-note{\n  color:#999;\n\n  font-size:11px;\n}\n\n\n\/* =========================================================\n   FOOTER\n========================================================= *\/\n\n.footer{\n  padding:54px var(--page) 24px;\n\n  background:#111;\n  color:#fff;\n}\n\n.footer-grid{\n  padding-bottom:54px;\n\n  display:grid;\n\n  grid-template-columns:\n    minmax(260px,1.7fr)\n    repeat(3,minmax(120px,1fr));\n\n  gap:42px;\n}\n\n.footer-logo{\n  width:52px;\n  height:52px;\n\n  margin-bottom:18px;\n}\n\n.footer-logo img{\n  width:52px;\n  height:52px;\n\n  object-fit:contain;\n}\n\n.footer-brand p{\n  max-width:350px;\n\n  margin:0;\n\n  color:#858585;\n\n  font-size:12px;\n  line-height:1.6;\n}\n\n.footer-socials{\n  margin-top:20px;\n}\n\n.footer .social-icon{\n  border-color:#2A2A2A;\n\n  background:#191919;\n  color:#fff;\n}\n\n.footer .social-icon:hover{\n  background:#fff;\n\n  color:#111;\n}\n\n.footer-column h4{\n  margin:0 0 16px;\n\n  color:#6C6C6C;\n\n  font-size:10px;\n\n  text-transform:uppercase;\n}\n\n.footer-column a{\n  display:block;\n\n  width:fit-content;\n\n  margin-bottom:8px;\n\n  color:#C8C8C8;\n\n  font-size:12px;\n}\n\n.footer-column a:hover{\n  color:#fff;\n}\n\n.footer-bottom{\n  padding-top:18px;\n\n  display:flex;\n\n  justify-content:space-between;\n\n  gap:20px;\n\n  border-top:1px solid #292929;\n\n  color:#676767;\n\n  font-size:10px;\n}\n\n\n\/* =========================================================\n   TABLET\n========================================================= *\/\n\n@media(max-width:1180px){\n\n  .folder-grid,\n  .team-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr));\n  }\n\n  .tech-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr));\n  }\n\n  .value-grid{\n    grid-template-columns:1fr;\n  }\n\n  .blog-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr));\n  }\n\n  .blog-card:last-child{\n    grid-column:1\/-1;\n  }\n\n  .client-grid{\n    grid-template-columns:\n      repeat(3,minmax(0,1fr));\n  }\n\n}\n\n\n\/* =========================================================\n   SMALL TABLET\n========================================================= *\/\n\n@media(max-width:920px){\n\n  .menu-body{\n    grid-template-columns:1fr;\n\n    align-items:start;\n  }\n\n  .hero{\n    min-height:auto;\n  }\n\n  .hero-loop{\n    --square-size:clamp(190px,31vw,270px);\n  }\n\n  .intro,\n  .two-column-heading,\n  .team-header,\n  .process-header,\n  .blog-header,\n  .faq-layout,\n  .contact-layout{\n    grid-template-columns:1fr;\n\n    gap:34px;\n  }\n\n  .solution-layout{\n    grid-template-columns:1fr;\n  }\n\n  .solution-visual-wrap,\n  .faq-intro,\n  .contact-copy{\n    position:relative;\n\n    top:auto;\n  }\n\n  .process-row{\n    grid-template-columns:\n      44px\n      minmax(0,1fr);\n\n    column-gap:18px;\n    row-gap:16px;\n  }\n\n  .process-row p{\n    grid-column:2;\n\n    max-width:none;\n  }\n\n  .desktop-art{\n    width:220vw;\n\n    margin-left:-110vw;\n  }\n\n}\n\n\n\/* =========================================================\n   TOUCH\n========================================================= *\/\n\n@media(hover:none){\n\n  .folder-card:hover{\n    transform:none;\n  }\n\n  .folder-card:hover .folder-front{\n    transform:none;\n  }\n\n  .folder-card.open .folder-front{\n    transform:translateY(39%);\n  }\n\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media(max-width:620px){\n\n  :root{\n    --page:16px;\n    --section:88px;\n  }\n\n\n  \/* =====================================================\n     HEADER\n  ===================================================== *\/\n\n  .glass-control{\n    top:max(11px,env(safe-area-inset-top));\n\n    width:60px;\n    height:60px;\n\n    border-radius:20px;\n\n    box-shadow:\n      0 7px 20px rgba(0,0,0,.075),\n      inset 0 .5px 0 rgba(255,255,255,.95),\n      inset 0 -.5px 0 rgba(255,255,255,.18),\n      inset 5px 0 10px rgba(255,255,255,.09),\n      inset -5px 0 10px rgba(255,255,255,.055);\n  }\n\n  .glass-control::after{\n    border-width:3px;\n\n    border-radius:18px;\n  }\n\n  .header-logo-control{\n    left:max(11px,env(safe-area-inset-left));\n  }\n\n  .menu-toggle{\n    right:max(11px,env(safe-area-inset-right));\n  }\n\n  .header-logo-control img{\n    width:46px;\n    height:46px;\n  }\n\n\n  \/* =====================================================\n     MENU\n  ===================================================== *\/\n\n  .menu-overlay{\n    padding:\n      calc(92px + env(safe-area-inset-top))\n      18px\n      calc(26px + env(safe-area-inset-bottom));\n  }\n\n  .menu-body{\n    min-height:auto;\n\n    gap:28px;\n  }\n\n  .menu-links a{\n    font-size:clamp(38px,11.5vw,50px);\n    line-height:1.02;\n\n    letter-spacing:-.055em;\n  }\n\n  .menu-side{\n    margin-top:18px;\n  }\n\n\n  \/* =====================================================\n     HERO\n  ===================================================== *\/\n\n  .hero{\n    min-height:auto;\n\n    padding:\n      calc(105px + env(safe-area-inset-top))\n      0\n      72px;\n  }\n\n  .hero-copy{\n    width:100%;\n    max-width:100%;\n\n    margin:0 auto;\n\n    padding:0 18px;\n\n    text-align:center;\n  }\n\n  .hero-kicker{\n    display:block;\n\n    width:100%;\n\n    margin:0 auto 14px;\n\n    padding:0;\n\n    text-align:center;\n\n    font-size:14px;\n    line-height:1.25;\n\n    font-weight:520;\n\n    letter-spacing:-.015em;\n  }\n\n  .hero-title{\n    width:100%;\n    max-width:100%;\n\n    margin:0 auto;\n\n    display:flex;\n\n    flex-direction:column;\n\n    align-items:center;\n    justify-content:center;\n\n    text-align:center;\n\n    font-size:clamp(\n      50px,\n      15.2vw,\n      70px\n    );\n\n    line-height:.93;\n\n    font-weight:620;\n\n    letter-spacing:-.05em;\n\n    transform:translateX(-0.045em);\n  }\n\n  .hero-title span{\n    display:block;\n\n    width:max-content;\n    max-width:100%;\n\n    margin-inline:auto;\n\n    white-space:nowrap;\n\n    text-align:center;\n  }\n\n  .hero-title span + span{\n    margin-top:.015em;\n  }\n\n  .hero-description{\n    width:100%;\n    max-width:350px;\n\n    margin:20px auto 0;\n\n    text-align:center;\n\n    font-size:15px;\n    line-height:1.5;\n  }\n\n  .hero-actions{\n    width:100%;\n\n    justify-content:center;\n  }\n\n  .hero-actions .button{\n    flex:1 1 145px;\n\n    min-width:0;\n\n    padding:0 14px;\n\n    font-size:12px;\n  }\n\n  .hero-loop{\n    --loop-gap:12px;\n    --square-size:min(67vw,255px);\n\n    margin-top:48px;\n  }\n\n  .hero-square{\n    border-radius:22px;\n  }\n\n\n  \/* =====================================================\n     CLIENTS\n  ===================================================== *\/\n\n  .clients{\n    padding-top:22px;\n    padding-bottom:22px;\n  }\n\n  .clients-band{\n    padding:22px 0;\n  }\n\n  .client-grid{\n    grid-template-columns:\n      repeat(2,minmax(0,1fr));\n\n    gap:22px 12px;\n  }\n\n  .client-logo{\n    height:45px;\n  }\n\n  .client-logo img{\n    max-width:105px;\n    max-height:29px;\n  }\n\n\n  \/* =====================================================\n     MOBILE PATH SYSTEM\n  ===================================================== *\/\n\n  .path-section{\n    width:100%;\n    max-width:100%;\n\n    overflow-x:hidden;\n    overflow-y:visible;\n  }\n\n  @supports(overflow:clip){\n\n    .path-section{\n      overflow-x:clip;\n    }\n\n  }\n\n  .desktop-art{\n    display:none;\n  }\n\n  .mobile-art{\n    display:block;\n\n    left:50%;\n\n    width:100vw;\n    max-width:100vw;\n\n    margin-left:-50vw;\n\n    overflow:visible;\n  }\n\n  .mobile-art.principles-line,\n  .mobile-art.solution-line,\n  .mobile-art.process-line{\n    top:0;\n\n    \/* Desktop-like proportion, compressed for a phone viewport. *\/\n    height:clamp(500px,72svh,640px);\n  }\n\n  .principles-line path{\n    stroke-width:32;\n  }\n\n  .solution-line path{\n    stroke-width:30;\n  }\n\n  .process-line path{\n    stroke-width:30;\n  }\n\n\n  \/* =====================================================\n     PRINCIPLES\n  ===================================================== *\/\n\n  .principles{\n    min-height:760px;\n\n    padding-top:105px;\n    padding-bottom:105px;\n  }\n\n  .principles-title{\n    font-size:clamp(56px,16.5vw,82px);\n  }\n\n  .principles-copy{\n    margin-top:44px;\n\n    font-size:20px;\n  }\n\n\n  \/* =====================================================\n     VALUES\n  ===================================================== *\/\n\n  .value-grid{\n    grid-template-columns:1fr;\n\n    gap:9px;\n  }\n\n  .value-card{\n    min-height:290px;\n\n    padding:27px;\n\n    border-radius:27px;\n  }\n\n  .value-card h3{\n    font-size:clamp(31px,10vw,43px);\n  }\n\n  .value-card p{\n    font-size:16px;\n  }\n\n\n  \/* =====================================================\n     INTRO\n  ===================================================== *\/\n\n  .intro{\n    gap:56px;\n  }\n\n  .intro-proof-row{\n    min-height:0;\n\n    padding:25px 0;\n\n    grid-template-columns:1fr;\n\n    gap:12px;\n\n    align-items:start;\n  }\n\n  .intro-proof-value{\n    width:100%;\n\n    font-size:clamp(47px,16vw,68px);\n    line-height:.93;\n\n    white-space:normal;\n  }\n\n  .intro-proof-label{\n    width:100%;\n    max-width:360px;\n\n    font-size:14px;\n    line-height:1.45;\n  }\n\n\n  \/* =====================================================\n     SOLUTIONS\n  ===================================================== *\/\n\n  .solution-button{\n    font-size:clamp(31px,10vw,45px);\n  }\n\n\n  \/* =====================================================\n     FOLDERS\n  ===================================================== *\/\n\n  .folder-grid{\n    grid-template-columns:1fr;\n\n    gap:14px;\n  }\n\n  .folder-card{\n    width:100%;\n\n    aspect-ratio:.86;\n  }\n\n  .folder-front-content{\n    padding:58px 25px 26px;\n  }\n\n  .folder-number{\n    font-size:58px;\n  }\n\n  .folder-copy h3{\n    font-size:21px;\n  }\n\n  .folder-copy p{\n    max-width:300px;\n\n    font-size:14px;\n  }\n\n\n  \/* =====================================================\n     TECHNOLOGIES\n  ===================================================== *\/\n\n  .technologies{\n    overflow:visible;\n  }\n\n  .tech-header{\n    margin-bottom:28px;\n  }\n\n  .tech-swipe-hint{\n    margin-bottom:18px;\n\n    display:flex;\n\n    align-items:center;\n\n    gap:8px;\n\n    color:#999;\n\n    font-size:11px;\n  }\n\n  .tech-swipe-hint::after{\n    content:\"\u2192\ufe0e\";\n\n    color:var(--purple);\n\n    font-family:Arial,Helvetica,sans-serif;\n    font-size:18px;\n    font-variant-emoji:text;\n    line-height:1;\n  }\n\n  .tech-grid{\n    width:auto;\n\n    margin-right:calc(var(--page) * -1);\n\n    padding-right:var(--page);\n    padding-bottom:10px;\n\n    display:flex;\n\n    gap:12px;\n\n    overflow-x:auto;\n    overflow-y:visible;\n\n    scroll-snap-type:x mandatory;\n\n    overscroll-behavior-x:contain;\n\n    -webkit-overflow-scrolling:touch;\n\n    scrollbar-width:none;\n\n    touch-action:pan-x pan-y;\n  }\n\n  .tech-grid::-webkit-scrollbar{\n    display:none;\n  }\n\n  .tech-card{\n    min-height:330px;\n\n    flex:0 0 min(84vw,350px);\n\n    padding:24px;\n\n    scroll-snap-align:start;\n  }\n\n  .tech-title-row h3{\n    font-size:25px;\n  }\n\n  .tech-card p{\n    font-size:14px;\n  }\n\n\n  \/* =====================================================\n     TEAM\n  ===================================================== *\/\n\n  .team-grid{\n    grid-template-columns:1fr;\n  }\n\n  .team-card{\n    min-height:390px;\n  }\n\n\n  \/* =====================================================\n     PROCESS\n  ===================================================== *\/\n\n  .process-header{\n    margin-bottom:50px;\n  }\n\n  .process-row{\n    padding:25px 0;\n\n    grid-template-columns:\n      34px\n      minmax(0,1fr);\n\n    column-gap:14px;\n    row-gap:12px;\n  }\n\n  .process-row h3{\n    font-size:clamp(25px,8vw,34px);\n  }\n\n  .process-row p{\n    grid-column:2;\n\n    font-size:14px;\n  }\n\n\n  \/* =====================================================\n     BLOG\n  ===================================================== *\/\n\n  .blog-grid{\n    grid-template-columns:1fr;\n  }\n\n  .blog-card:last-child{\n    grid-column:auto;\n  }\n\n  .blog-card{\n    min-height:510px;\n  }\n\n  .blog-content{\n    padding:22px;\n  }\n\n  .blog-card h3{\n    font-size:clamp(28px,9vw,38px);\n  }\n\n\n  \/* =====================================================\n     FAQ\n  ===================================================== *\/\n\n  .faq-question{\n    padding:22px 0;\n\n    grid-template-columns:\n      minmax(0,1fr)\n      34px;\n\n    gap:14px;\n  }\n\n  .faq-answer-inner{\n    padding:0 0 24px;\n  }\n\n\n  \/* =====================================================\n     FORM\n  ===================================================== *\/\n\n  .form-row{\n    grid-template-columns:1fr;\n  }\n\n  .field input,\n  .field select,\n  .field textarea{\n    font-size:16px;\n  }\n\n\n  \/* =====================================================\n     FOOTER\n  ===================================================== *\/\n\n  .footer{\n    padding:\n      22px\n      16px\n      calc(13px + env(safe-area-inset-bottom));\n  }\n\n  .footer-grid{\n    padding-bottom:17px;\n\n    display:grid;\n\n    grid-template-columns:\n      repeat(3,minmax(0,1fr));\n\n    gap:18px 10px;\n  }\n\n  .footer-brand{\n    grid-column:1\/-1;\n\n    display:grid;\n\n    grid-template-columns:\n      40px\n      minmax(0,1fr)\n      auto;\n\n    gap:10px;\n\n    align-items:center;\n  }\n\n  .footer-logo{\n    width:40px;\n    height:40px;\n\n    margin:0;\n  }\n\n  .footer-logo img{\n    width:40px;\n    height:40px;\n  }\n\n  .footer-brand p{\n    max-width:none;\n\n    margin:0;\n\n    font-size:9px;\n    line-height:1.4;\n  }\n\n  .footer-socials{\n    margin:0;\n\n    display:grid;\n\n    grid-template-columns:\n      repeat(2,28px);\n\n    gap:4px;\n  }\n\n  .footer-socials .social-icon{\n    width:28px;\n    height:28px;\n  }\n\n  .footer-socials .social-icon svg{\n    width:10px;\n    height:10px;\n  }\n\n  .footer-column h4{\n    margin:0 0 8px;\n\n    font-size:8px;\n  }\n\n  .footer-column a{\n    margin-bottom:4px;\n\n    font-size:9px;\n    line-height:1.25;\n  }\n\n  .footer-bottom{\n    padding-top:11px;\n\n    display:flex;\n\n    align-items:center;\n    justify-content:space-between;\n\n    gap:8px;\n\n    font-size:8px;\n    line-height:1.25;\n  }\n\n}\n\n\n\/* =========================================================\n   VERY SMALL PHONES\n========================================================= *\/\n\n@media(max-width:370px){\n\n  .glass-control{\n    width:56px;\n    height:56px;\n\n    border-radius:18px;\n  }\n\n  .header-logo-control img{\n    width:43px;\n    height:43px;\n  }\n\n  .hero-kicker{\n    font-size:13.5px;\n  }\n\n  .hero-title{\n    font-size:49px;\n\n    letter-spacing:-.045em;\n\n    transform:translateX(-0.04em);\n  }\n\n  .hero-actions{\n    flex-direction:column;\n  }\n\n  .hero-actions .button{\n    width:100%;\n  }\n\n  .principles-line path{\n    stroke-width:30;\n  }\n\n  .solution-line path,\n  .process-line path{\n    stroke-width:28;\n  }\n\n  .tech-card{\n    flex-basis:86vw;\n  }\n\n  .footer-brand{\n    grid-template-columns:\n      36px\n      minmax(0,1fr);\n  }\n\n  .footer-logo,\n  .footer-logo img{\n    width:36px;\n    height:36px;\n  }\n\n  .footer-socials{\n    grid-column:2;\n\n    grid-template-columns:\n      repeat(4,26px);\n\n    justify-content:start;\n  }\n\n  .footer-socials .social-icon{\n    width:26px;\n    height:26px;\n  }\n\n  .footer-bottom{\n    flex-direction:column;\n\n    align-items:flex-start;\n  }\n\n}\n\n\n\/* =========================================================\n   REDUCED MOTION\n========================================================= *\/\n\n@media(prefers-reduced-motion:reduce){\n\n  *,\n  *::before,\n  *::after{\n    animation-duration:.01ms !important;\n    animation-iteration-count:1 !important;\n    transition-duration:.01ms !important;\n  }\n\n  .section-enter{\n    opacity:1;\n\n    transform:none;\n  }\n\n}\n\n<\/style>\n<\/head>\n\n\n<body>\n\n\n<!-- =========================================================\n     HEADER\n========================================================= -->\n\n<header\n  class=\"site-header\"\n  id=\"siteHeader\"\n>\n\n  <a\n    href=\"#top\"\n    class=\"glass-control header-logo-control\"\n    aria-label=\"Talent Complete home\"\n  >\n\n    <img decoding=\"async\"\n      src=\"https:\/\/michalplebaniak.com\/wp-content\/uploads\/2026\/08\/Profilowe.png\"\n      alt=\"Talent Complete\"\n    >\n\n  <\/a>\n\n\n  <button\n    class=\"glass-control menu-toggle\"\n    id=\"menuToggle\"\n    type=\"button\"\n    aria-label=\"Open menu\"\n    aria-expanded=\"false\"\n  >\n\n    <span class=\"menu-plus\"><\/span>\n\n  <\/button>\n\n<\/header>\n\n\n<!-- =========================================================\n     MENU\n========================================================= -->\n\n<div\n  class=\"menu-overlay\"\n  id=\"menuOverlay\"\n>\n\n  <div class=\"menu-body\">\n\n    <nav class=\"menu-links\">\n\n      <a href=\"#solutions\">Solutions<\/a>\n      <a href=\"#expertise\">Expertise<\/a>\n      <a href=\"#technologies\">Technologies<\/a>\n      <a href=\"#team\">Team<\/a>\n      <a href=\"#blog\">Blog<\/a>\n      <a href=\"#faq\">FAQ<\/a>\n      <a href=\"#contact\">Contact<\/a>\n\n    <\/nav>\n\n\n    <aside class=\"menu-side\">\n\n      <div class=\"menu-side-label\">\n        Talent Complete\n      <\/div>\n\n      <p>\n        Specialist technology recruitment across Europe for SAP,\n        Workday, ServiceNow, Data, AI, Cloud and Engineering teams.\n      <\/p>\n\n\n      <div class=\"socials\">\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"LinkedIn\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M5.3 7.8H1.7V22h3.6V7.8zM3.5 2C2.3 2 1.4 3 1.4 4.1c0 1.2.9 2.1 2.1 2.1s2.1-.9 2.1-2.1C5.6 3 4.7 2 3.5 2zM22.6 13.8c0-4.3-2.3-6.3-5.4-6.3-2.5 0-3.6 1.4-4.2 2.3v-2h-3.6V22H13v-7c0-1.8.3-3.6 2.6-3.6 2.3 0 2.3 2.1 2.3 3.7V22h3.6l1.1-8.2z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"Facebook\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M14 8.5V6.7c0-.8.5-1 1-1h2.6V2.1L14.3 2C10.9 2 10 4.5 10 6.3v2.2H7.6V12H10v10h4V12h3l.5-3.5H14z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"Instagram\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M7.2 2h9.6A5.2 5.2 0 0 1 22 7.2v9.6a5.2 5.2 0 0 1-5.2 5.2H7.2A5.2 5.2 0 0 1 2 16.8V7.2A5.2 5.2 0 0 1 7.2 2zm0 2A3.2 3.2 0 0 0 4 7.2v9.6A3.2 3.2 0 0 0 7.2 20h9.6a3.2 3.2 0 0 0 3.2-3.2V7.2A3.2 3.2 0 0 0 16.8 4H7.2zm10.2 1.5a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4zM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"YouTube\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31.7 31.7 0 0 0 0 12a31.7 31.7 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31.7 31.7 0 0 0 24 12a31.7 31.7 0 0 0-.5-5.8zM9.6 15.6V8.4l6.3 3.6-6.3 3.6z\"\/>\n          <\/svg>\n        <\/a>\n\n      <\/div>\n\n    <\/aside>\n\n  <\/div>\n\n<\/div>\n\n\n<main id=\"top\">\n\n\n<!-- =========================================================\n     HERO\n========================================================= -->\n\n<section class=\"hero select-purple\">\n\n  <div class=\"hero-copy\">\n\n    <div class=\"hero-kicker\">\n      Gateway to programming talents.\n    <\/div>\n\n    <h1 class=\"hero-title\">\n      <span>Your IT<\/span>\n      <span>matchmaker.<\/span>\n    <\/h1>\n\n    <p class=\"hero-description\">\n      Specialist recruitment for SAP, Workday, ServiceNow,\n      Data, AI, Cloud and Engineering teams across Europe.\n    <\/p>\n\n    <div class=\"hero-actions\">\n\n      <a\n        href=\"#contact\"\n        class=\"button button-primary\"\n      >\n        Start a conversation\n      <\/a>\n\n      <a\n        href=\"#solutions\"\n        class=\"button button-outline\"\n      >\n        Explore solutions\n      <\/a>\n\n    <\/div>\n\n  <\/div>\n\n\n  <div\n    class=\"hero-loop\"\n    id=\"heroLoop\"\n  >\n\n    <div\n      class=\"hero-loop-track\"\n      id=\"heroLoopTrack\"\n    >\n\n      <div class=\"hero-loop-set\">\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n      <\/div>\n\n      <div\n        class=\"hero-loop-set\"\n        aria-hidden=\"true\"\n      >\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n      <\/div>\n\n      <div\n        class=\"hero-loop-set\"\n        aria-hidden=\"true\"\n      >\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n        <div class=\"hero-square\"><\/div>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     CLIENTS\n========================================================= -->\n\n<section class=\"section clients section-enter\">\n\n  <div class=\"clients-label\">\n    Trusted by international companies\n  <\/div>\n\n  <div class=\"clients-band\">\n\n    <div class=\"client-grid\">\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/roche.com?size=256\"\n          alt=\"Roche\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          Roche\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/nestle.com?size=256\"\n          alt=\"Nestl\u00e9\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          Nestl\u00e9\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/hilti.com?size=256\"\n          alt=\"Hilti\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          Hilti\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/holcim.com?size=256\"\n          alt=\"Holcim\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          Holcim\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/lonza.com?size=256\"\n          alt=\"Lonza\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          Lonza\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"client-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/logo.clearbit.com\/abb.com?size=256\"\n          alt=\"ABB\"\n          onerror=\"this.style.display='none';this.nextElementSibling.style.display='block';\"\n        >\n\n        <span class=\"client-fallback\">\n          ABB\n        <\/span>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     PRINCIPLES\n========================================================= -->\n\n<section\n  class=\"section principles path-section section-enter select-black\"\n>\n\n  <!-- DESKTOP PATH -->\n\n  <svg\n    class=\"path-art principles-line desktop-art desktop-scroll-art\"\n\n    data-start=\"1.58\"\n    data-end=\"-0.88\"\n\n    data-rotate-from=\"-3\"\n    data-rotate-to=\"2\"\n\n    data-scale-from=\".97\"\n    data-scale-to=\"1.03\"\n\n    viewBox=\"0 0 2600 1050\"\n\n    preserveAspectRatio=\"xMidYMid slice\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-principles-desktop\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"120\" x2=\"2600\" y2=\"690\">\n        <stop offset=\"0%\" stop-color=\"#5323AB\" \/>\n        <stop offset=\"100%\" stop-color=\"#35116F\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"desktop-scroll-path\"\n      stroke=\"url(#grad-principles-desktop)\"\n\n      d=\"\n        M -600 735\n        C -240 705,20 650,260 475\n        C 480 315,540 100,780 90\n        C 1030 80,1165 260,1080 425\n        C 1010 560,760 570,720 405\n        C 680 230,980 135,1255 330\n        C 1500 505,1650 680,1910 625\n        C 2170 570,2350 385,3020 430\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <!-- MOBILE PATH -->\n\n  <svg\n    class=\"path-art principles-line mobile-art mobile-scroll-art\"\n\n    viewBox=\"0 0 1000 760\"\n\n    preserveAspectRatio=\"none\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-principles-mobile\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"145\" x2=\"1000\" y2=\"575\">\n        <stop offset=\"0%\" stop-color=\"#5323AB\" \/>\n        <stop offset=\"100%\" stop-color=\"#35116F\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"mobile-scroll-path\"\n      stroke=\"url(#grad-principles-mobile)\"\n\n      d=\"\n        M -120 145\n        C 95 145,250 185,390 280\n        C 505 360,625 410,715 355\n        C 790 310,765 245,700 250\n        C 630 255,620 325,690 365\n        C 790 420,900 500,1120 575\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <div class=\"principles-inner\">\n\n    <div class=\"principles-code\">\n      TC \/ 001\n    <\/div>\n\n    <h2 class=\"principles-title\">\n      The right match matters.\n    <\/h2>\n\n    <p class=\"principles-copy\">\n      We align experience, availability, working style and project\n      context so every introduction makes sense for both sides.\n    <\/p>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     VALUES\n========================================================= -->\n\n<section class=\"section values section-enter\">\n\n  <div class=\"value-grid\">\n\n    <article\n      class=\"value-card\"\n      tabindex=\"0\"\n    >\n\n      <div class=\"value-code\">\n        TC \/ 01\n      <\/div>\n\n      <div>\n\n        <h3>\n          Teams That Last\n        <\/h3>\n\n        <p>\n          We look beyond keywords to understand how experience,\n          communication and expectations fit the team you are building.\n        <\/p>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article\n      class=\"value-card\"\n      tabindex=\"0\"\n    >\n\n      <div class=\"value-code\">\n        TC \/ 02\n      <\/div>\n\n      <div>\n\n        <h3>\n          The Right Match\n        <\/h3>\n\n        <p>\n          Market knowledge helps us identify specialists who fit the\n          role, environment and pace of delivery.\n        <\/p>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article\n      class=\"value-card\"\n      tabindex=\"0\"\n    >\n\n      <div class=\"value-code\">\n        TC \/ 03\n      <\/div>\n\n      <div>\n\n        <h3>\n          Faster Momentum\n        <\/h3>\n\n        <p>\n          Focused shortlists and clear communication reduce wasted\n          interview time and keep strong candidates engaged.\n        <\/p>\n\n      <\/div>\n\n    <\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     INTRO\n========================================================= -->\n\n<section class=\"section intro section-enter select-purple\">\n\n  <div class=\"intro-proof\">\n\n    <div class=\"intro-proof-row\">\n\n      <div class=\"intro-proof-value\">\n        48\u201372h\n      <\/div>\n\n      <div class=\"intro-proof-label\">\n        Initial focused shortlist for clearly defined specialist roles.\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"intro-proof-row\">\n\n      <div class=\"intro-proof-value\">\n        10,000+\n      <\/div>\n\n      <div class=\"intro-proof-label\">\n        Technology specialists across our wider European network.\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"intro-proof-row\">\n\n      <div class=\"intro-proof-value\">\n        EU-wide\n      <\/div>\n\n      <div class=\"intro-proof-label\">\n        Recruitment delivery for remote, hybrid and onsite teams.\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n\n  <div class=\"intro-copy\">\n\n    <div class=\"section-label\">\n      Specialist recruitment\n    <\/div>\n\n    <p\n      class=\"large-copy\"\n      style=\"margin-top:24px;\"\n    >\n      Technology hiring works better when your recruitment partner\n      understands the work. We focus on defined technology markets,\n      qualify carefully and present people worth meeting.\n    <\/p>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     SOLUTIONS\n========================================================= -->\n\n<section\n  class=\"section solutions path-section section-enter\"\n  id=\"solutions\"\n>\n\n  <!-- DESKTOP PATH -->\n\n  <svg\n    class=\"path-art solution-line desktop-art desktop-scroll-art\"\n\n    data-start=\"1.58\"\n    data-end=\"-0.90\"\n\n    data-rotate-from=\"2\"\n    data-rotate-to=\"-2\"\n\n    data-scale-from=\".96\"\n    data-scale-to=\"1.04\"\n\n    viewBox=\"0 0 2700 900\"\n\n    preserveAspectRatio=\"xMidYMid slice\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-solutions-desktop\" gradientUnits=\"userSpaceOnUse\" x1=\"2700\" y1=\"100\" x2=\"0\" y2=\"620\">\n        <stop offset=\"0%\" stop-color=\"#FBBC05\" \/>\n        <stop offset=\"100%\" stop-color=\"#D99C00\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"desktop-scroll-path\"\n      stroke=\"url(#grad-solutions-desktop)\"\n\n      d=\"\n        M 3200 90\n        C 2760 100,2460 180,2200 370\n        C 1970 540,1730 690,1490 615\n        C 1260 545,1280 320,1480 275\n        C 1700 225,1845 440,1650 565\n        C 1440 700,1110 650,820 470\n        C 560 310,280 300,-80 470\n        C -320 585,-500 625,-800 590\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <!-- MOBILE PATH -->\n\n  <svg\n    class=\"path-art solution-line mobile-art mobile-scroll-art\"\n\n    viewBox=\"0 0 1000 760\"\n\n    preserveAspectRatio=\"none\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-solutions-mobile\" gradientUnits=\"userSpaceOnUse\" x1=\"1000\" y1=\"150\" x2=\"0\" y2=\"590\">\n        <stop offset=\"0%\" stop-color=\"#FBBC05\" \/>\n        <stop offset=\"100%\" stop-color=\"#D99C00\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"mobile-scroll-path\"\n      stroke=\"url(#grad-solutions-mobile)\"\n\n      d=\"\n        M 1120 150\n        C 920 155,790 205,665 290\n        C 545 370,455 385,365 335\n        C 275 285,190 305,105 405\n        C 15 505,-40 545,-120 590\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <div class=\"two-column-heading\">\n\n    <div>\n\n      <div class=\"section-label\">\n        Recruitment solutions\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        Hire in the way<br>\n        the work requires.\n      <\/h2>\n\n    <\/div>\n\n    <p>\n      Recruit one permanent specialist, bring in contractors for a\n      project, extend an existing team or add dedicated recruitment\n      capacity.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"solution-layout\">\n\n    <div class=\"solution-visual-wrap\">\n      <div class=\"solution-visual\"><\/div>\n    <\/div>\n\n\n    <div>\n\n      <div class=\"solution-list\">\n\n        <button\n          class=\"solution-button active\"\n          data-description=\"Hire specialists across SAP, Workday, ServiceNow and the enterprise platforms behind major transformation programmes.\"\n        >\n          Enterprise Applications\n        <\/button>\n\n        <button\n          class=\"solution-button\"\n          data-description=\"Build capability across data engineering, analytics, AI, machine learning and modern cloud data platforms.\"\n        >\n          Data & AI\n        <\/button>\n\n        <button\n          class=\"solution-button\"\n          data-description=\"Find software engineers and cloud professionals for product, platform and technical delivery teams.\"\n        >\n          Software Engineering\n        <\/button>\n\n        <button\n          class=\"solution-button\"\n          data-description=\"Add experienced contractors when a project needs more capacity, specialist knowledge or faster execution.\"\n        >\n          Contract Recruitment\n        <\/button>\n\n        <button\n          class=\"solution-button\"\n          data-description=\"Extend an existing team with qualified specialists who can work remotely, onsite or in a hybrid setup.\"\n        >\n          Team Extension\n        <\/button>\n\n        <button\n          class=\"solution-button\"\n          data-description=\"Add dedicated recruitment capacity with structured pipelines, consistent communication and clearer hiring visibility.\"\n        >\n          Embedded Recruitment\n        <\/button>\n\n      <\/div>\n\n\n      <p\n        class=\"solution-description\"\n        id=\"solutionDescription\"\n      >\n        Hire specialists across SAP, Workday, ServiceNow and the\n        enterprise platforms behind major transformation programmes.\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     FOLDERS\n========================================================= -->\n\n<section\n  class=\"section folder-section section-enter\"\n  id=\"expertise\"\n>\n\n  <div class=\"folder-heading\">\n\n    <div class=\"section-label\">\n      Where we add value\n    <\/div>\n\n    <h2\n      class=\"section-title\"\n      style=\"margin-top:20px;\"\n    >\n      Built for real<br>\n      delivery pressure.\n    <\/h2>\n\n    <p>\n      Tap a folder on mobile or hover on desktop to reveal the\n      hiring challenge behind it.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"folder-grid\">\n\n    <article\n      class=\"folder-card grey\"\n      tabindex=\"0\"\n      role=\"button\"\n      aria-expanded=\"false\"\n    >\n\n      <div class=\"folder-inner\">\n\n        <div class=\"folder-media\"><\/div>\n\n        <div class=\"folder-front\">\n\n          <svg\n            class=\"folder-front-svg\"\n            viewBox=\"0 0 400 500\"\n            preserveAspectRatio=\"none\"\n          >\n            <path d=\"\n              M0 64\n              C0 37 17 17 43 17\n              L111 17\n              C128 17 139 23 152 36\n              L175 58\n              C181 64 190 67 201 67\n              L370 67\n              C388 67 400 79 400 96\n              L400 470\n              C400 488 388 500 370 500\n              L30 500\n              C12 500 0 488 0 470\n              Z\n            \"\/>\n          <\/svg>\n\n          <div class=\"folder-front-content\">\n\n            <div class=\"folder-top\">\n              <span class=\"folder-number\">01<\/span>\n              <span class=\"folder-arrow\">\u2197\ufe0e<\/span>\n            <\/div>\n\n            <div class=\"folder-copy\">\n\n              <h3>\n                Enterprise Change\n              <\/h3>\n\n              <p>\n                Specialists for implementations, rollouts,\n                migrations and transformation programmes.\n              <\/p>\n\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article\n      class=\"folder-card purple\"\n      tabindex=\"0\"\n      role=\"button\"\n      aria-expanded=\"false\"\n    >\n\n      <div class=\"folder-inner\">\n\n        <div class=\"folder-media\"><\/div>\n\n        <div class=\"folder-front\">\n\n          <svg\n            class=\"folder-front-svg\"\n            viewBox=\"0 0 400 500\"\n            preserveAspectRatio=\"none\"\n          >\n            <path d=\"\n              M0 64\n              C0 37 17 17 43 17\n              L111 17\n              C128 17 139 23 152 36\n              L175 58\n              C181 64 190 67 201 67\n              L370 67\n              C388 67 400 79 400 96\n              L400 470\n              C400 488 388 500 370 500\n              L30 500\n              C12 500 0 488 0 470\n              Z\n            \"\/>\n          <\/svg>\n\n          <div class=\"folder-front-content\">\n\n            <div class=\"folder-top\">\n              <span class=\"folder-number\">02<\/span>\n              <span class=\"folder-arrow\">\u2197\ufe0e<\/span>\n            <\/div>\n\n            <div class=\"folder-copy\">\n\n              <h3>\n                Data & AI Delivery\n              <\/h3>\n\n              <p>\n                Talent across data engineering, analytics,\n                AI and modern data platforms.\n              <\/p>\n\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article\n      class=\"folder-card black\"\n      tabindex=\"0\"\n      role=\"button\"\n      aria-expanded=\"false\"\n    >\n\n      <div class=\"folder-inner\">\n\n        <div class=\"folder-media\"><\/div>\n\n        <div class=\"folder-front\">\n\n          <svg\n            class=\"folder-front-svg\"\n            viewBox=\"0 0 400 500\"\n            preserveAspectRatio=\"none\"\n          >\n            <path d=\"\n              M0 64\n              C0 37 17 17 43 17\n              L111 17\n              C128 17 139 23 152 36\n              L175 58\n              C181 64 190 67 201 67\n              L370 67\n              C388 67 400 79 400 96\n              L400 470\n              C400 488 388 500 370 500\n              L30 500\n              C12 500 0 488 0 470\n              Z\n            \"\/>\n          <\/svg>\n\n          <div class=\"folder-front-content\">\n\n            <div class=\"folder-top\">\n              <span class=\"folder-number\">03<\/span>\n              <span class=\"folder-arrow\">\u2197\ufe0e<\/span>\n            <\/div>\n\n            <div class=\"folder-copy\">\n\n              <h3>\n                Project Team Scaling\n              <\/h3>\n\n              <p>\n                Add specialist contract capacity when delivery\n                pressure rises.\n              <\/p>\n\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article\n      class=\"folder-card yellow\"\n      tabindex=\"0\"\n      role=\"button\"\n      aria-expanded=\"false\"\n    >\n\n      <div class=\"folder-inner\">\n\n        <div class=\"folder-media\"><\/div>\n\n        <div class=\"folder-front\">\n\n          <svg\n            class=\"folder-front-svg\"\n            viewBox=\"0 0 400 500\"\n            preserveAspectRatio=\"none\"\n          >\n            <path d=\"\n              M0 64\n              C0 37 17 17 43 17\n              L111 17\n              C128 17 139 23 152 36\n              L175 58\n              C181 64 190 67 201 67\n              L370 67\n              C388 67 400 79 400 96\n              L400 470\n              C400 488 388 500 370 500\n              L30 500\n              C12 500 0 488 0 470\n              Z\n            \"\/>\n          <\/svg>\n\n          <div class=\"folder-front-content\">\n\n            <div class=\"folder-top\">\n              <span class=\"folder-number\">04<\/span>\n              <span class=\"folder-arrow\">\u2197\ufe0e<\/span>\n            <\/div>\n\n            <div class=\"folder-copy\">\n\n              <h3>\n                Embedded Recruitment\n              <\/h3>\n\n              <p>\n                Dedicated recruitment capacity, structured\n                pipelines and clear hiring reporting.\n              <\/p>\n\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     TECHNOLOGIES\n========================================================= -->\n\n<section\n  class=\"section technologies section-enter\"\n  id=\"technologies\"\n>\n\n  <div class=\"tech-header\">\n\n    <div class=\"section-label\">\n      Technology expertise\n    <\/div>\n\n    <h2\n      class=\"section-title\"\n      style=\"margin-top:20px;\"\n    >\n      The ecosystems your<br>\n      teams depend on.\n    <\/h2>\n\n    <p>\n      We recruit within technology markets where specific platform\n      knowledge matters, from enterprise applications to cloud\n      infrastructure and modern data stacks.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"tech-swipe-hint\">\n    Swipe technologies\n  <\/div>\n\n\n  <div class=\"tech-grid\">\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        01\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n              <path d=\"M8 16h48v31H23L8 55V16Z\" fill=\"#009DE0\"\/>\n              <path d=\"M19 27h7c5 0 8 2 8 6s-3 6-8 6h-3v6h-4V27Zm4 4v4h3c2 0 3-.7 3-2s-1-2-3-2h-3Z\" fill=\"#fff\"\/>\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            SAP\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Functional, technical and programme talent across transformation,\n          S\/4HANA, migrations, rollouts and support.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">S\/4HANA<\/span>\n          <span class=\"tech-tag\">FICO<\/span>\n          <span class=\"tech-tag\">SD\/MM<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        02\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 36 36\">\n\n              <path\n                d=\"M7 22 C7 14.2 11.9 8 18 8 C24.1 8 29 14.2 29 22\"\n                fill=\"none\"\n                stroke=\"#F36C21\"\n                stroke-width=\"4\"\n                stroke-linecap=\"round\"\n              \/>\n\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Workday\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Specialists across HCM, finance, integrations, reporting,\n          implementation and platform optimisation.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">HCM<\/span>\n          <span class=\"tech-tag\">Finance<\/span>\n          <span class=\"tech-tag\">Integrations<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        03\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 36 36\">\n\n              <circle\n                cx=\"18\"\n                cy=\"18\"\n                r=\"11\"\n                fill=\"none\"\n                stroke=\"#81B441\"\n                stroke-width=\"5\"\n              \/>\n\n              <rect\n                x=\"16\"\n                y=\"5\"\n                width=\"12\"\n                height=\"8\"\n                fill=\"#fff\"\n              \/>\n\n              <circle\n                cx=\"25.5\"\n                cy=\"9.5\"\n                r=\"2.5\"\n                fill=\"#81B441\"\n              \/>\n\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            ServiceNow\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Developers, architects and consultants supporting workflow,\n          ITSM and enterprise platform programmes.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">ITSM<\/span>\n          <span class=\"tech-tag\">CSM<\/span>\n          <span class=\"tech-tag\">Architecture<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        04\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n              <path d=\"M34 6 L11 49 H25 L30 39 H46 L34 6 Z\" fill=\"#0078D4\"\/>\n              <path d=\"M31 39 L22 55 H54 L47 39 Z\" fill=\"#50A9F9\"\/>\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Microsoft Azure\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Cloud engineers, architects, DevOps professionals and data\n          specialists across the Microsoft cloud ecosystem.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">Cloud<\/span>\n          <span class=\"tech-tag\">DevOps<\/span>\n          <span class=\"tech-tag\">Data<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        05\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n\n              <text\n                x=\"8\"\n                y=\"38\"\n                font-size=\"23\"\n                font-family=\"Arial,sans-serif\"\n                font-weight=\"700\"\n                fill=\"#111\"\n              >\n                aws\n              <\/text>\n\n              <path\n                d=\"M15 45 C26 52 40 53 50 47\"\n                fill=\"none\"\n                stroke=\"#FF9900\"\n                stroke-width=\"3\"\n                stroke-linecap=\"round\"\n              \/>\n\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            AWS\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Engineering and architecture talent for cloud migration,\n          infrastructure, platforms and cloud-native development.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">Architecture<\/span>\n          <span class=\"tech-tag\">DevOps<\/span>\n          <span class=\"tech-tag\">Migration<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        06\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n\n              <g\n                stroke=\"#29B5E8\"\n                stroke-width=\"4\"\n                stroke-linecap=\"round\"\n              >\n                <path d=\"M32 8v48\"\/>\n                <path d=\"M11 20l42 24\"\/>\n                <path d=\"M11 44l42-24\"\/>\n              <\/g>\n\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Snowflake\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Data engineers, architects and analytics professionals\n          building scalable cloud data platforms.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">Engineering<\/span>\n          <span class=\"tech-tag\">Analytics<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        07\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n              <path d=\"M32 8 54 19 32 30 10 19 32 8Z\" fill=\"none\" stroke=\"#FF3621\" stroke-width=\"4\"\/>\n              <path d=\"M10 28 32 39 54 28\" fill=\"none\" stroke=\"#FF3621\" stroke-width=\"4\"\/>\n              <path d=\"M10 37 32 48 54 37\" fill=\"none\" stroke=\"#FF3621\" stroke-width=\"4\"\/>\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Databricks\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Specialists building lakehouse environments,\n          production pipelines and machine-learning workflows.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">Lakehouse<\/span>\n          <span class=\"tech-tag\">ML<\/span>\n          <span class=\"tech-tag\">Data<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        08\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 64 64\">\n              <rect x=\"9\" y=\"25\" width=\"10\" height=\"29\" rx=\"3\" fill=\"#F2C811\"\/>\n              <rect x=\"24\" y=\"16\" width=\"10\" height=\"38\" rx=\"3\" fill=\"#F2C811\"\/>\n              <rect x=\"39\" y=\"8\" width=\"10\" height=\"46\" rx=\"3\" fill=\"#F2C811\"\/>\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Power BI\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          BI developers and analysts transforming complex data into\n          useful reporting and decision support.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">Dashboards<\/span>\n          <span class=\"tech-tag\">Reporting<\/span>\n          <span class=\"tech-tag\">DAX<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"tech-card\">\n\n      <span class=\"tech-index\">\n        09\n      <\/span>\n\n      <div>\n\n        <div class=\"tech-title-row\">\n\n          <span class=\"tech-icon\">\n\n            <svg viewBox=\"0 0 36 36\">\n\n              <rect\n                x=\"7\"\n                y=\"8\"\n                width=\"22\"\n                height=\"20\"\n                rx=\"5\"\n                fill=\"none\"\n                stroke=\"#111\"\n                stroke-width=\"2.5\"\n              \/>\n\n              <circle\n                cx=\"14\"\n                cy=\"15\"\n                r=\"2\"\n                fill=\"#111\"\n              \/>\n\n              <circle\n                cx=\"22\"\n                cy=\"15\"\n                r=\"2\"\n                fill=\"#111\"\n              \/>\n\n              <path\n                d=\"M13 22h10\"\n                fill=\"none\"\n                stroke=\"#111\"\n                stroke-width=\"2.5\"\n                stroke-linecap=\"round\"\n              \/>\n\n            <\/svg>\n\n          <\/span>\n\n          <h3>\n            Data & AI\n          <\/h3>\n\n        <\/div>\n\n        <p>\n          Engineers, scientists and AI specialists across data platforms,\n          machine learning and production AI.\n        <\/p>\n\n        <div class=\"tech-tags\">\n          <span class=\"tech-tag\">ML<\/span>\n          <span class=\"tech-tag\">GenAI<\/span>\n          <span class=\"tech-tag\">Engineering<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     TEAM\n========================================================= -->\n\n<section\n  class=\"section team section-enter\"\n  id=\"team\"\n>\n\n  <div class=\"team-header\">\n\n    <div>\n\n      <div class=\"section-label\">\n        The team\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        Recruitment is still<br>\n        a people business.\n      <\/h2>\n\n    <\/div>\n\n    <p>\n      Specialist markets need recruiters who understand the roles,\n      know how to qualify talent and stay close to the process from\n      first conversation to start date.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"team-grid\">\n\n    <article class=\"team-card\">\n\n      <div class=\"team-info\">\n\n        <span>\n          Recruitment Lead\n        <\/span>\n\n        <h3>\n          Enterprise Applications\n        <\/h3>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"team-card\">\n\n      <div class=\"team-info\">\n\n        <span>\n          Talent Partner\n        <\/span>\n\n        <h3>\n          Software & Cloud\n        <\/h3>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"team-card\">\n\n      <div class=\"team-info\">\n\n        <span>\n          Specialist Recruiter\n        <\/span>\n\n        <h3>\n          Data & AI\n        <\/h3>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"team-card\">\n\n      <div class=\"team-info\">\n\n        <span>\n          Delivery Partner\n        <\/span>\n\n        <h3>\n          Contract & RPO\n        <\/h3>\n\n      <\/div>\n\n    <\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     PROCESS\n========================================================= -->\n\n<section\n  class=\"section process path-section section-enter\"\n>\n\n  <!-- DESKTOP PATH -->\n\n  <svg\n    class=\"path-art process-line desktop-art desktop-scroll-art\"\n\n    data-start=\"1.52\"\n    data-end=\"-0.92\"\n\n    data-rotate-from=\"-2\"\n    data-rotate-to=\"2\"\n\n    data-scale-from=\".97\"\n    data-scale-to=\"1.03\"\n\n    viewBox=\"0 0 2800 900\"\n\n    preserveAspectRatio=\"xMidYMid slice\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-process-desktop\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"120\" x2=\"2800\" y2=\"560\">\n        <stop offset=\"0%\" stop-color=\"#4285F4\" \/>\n        <stop offset=\"100%\" stop-color=\"#256DE8\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"desktop-scroll-path\"\n      stroke=\"url(#grad-process-desktop)\"\n\n      d=\"\n        M -700 470\n        C -270 480,30 400,320 245\n        C 550 120,800 95,940 240\n        C 1060 365,960 530,775 520\n        C 600 510,540 340,665 240\n        C 840 100,1160 185,1320 380\n        C 1470 565,1680 640,1900 515\n        C 2110 395,2260 255,2480 315\n        C 2680 370,2860 460,3300 410\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <!-- MOBILE PATH -->\n\n  <svg\n    class=\"path-art process-line mobile-art mobile-scroll-art\"\n\n    viewBox=\"0 0 1000 760\"\n\n    preserveAspectRatio=\"none\"\n\n    aria-hidden=\"true\"\n  >\n\n    <defs>\n      <linearGradient id=\"grad-process-mobile\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"155\" x2=\"1000\" y2=\"605\">\n        <stop offset=\"0%\" stop-color=\"#4285F4\" \/>\n        <stop offset=\"100%\" stop-color=\"#256DE8\" \/>\n      <\/linearGradient>\n    <\/defs>\n\n    <path\n      class=\"mobile-scroll-path\"\n      stroke=\"url(#grad-process-mobile)\"\n\n      d=\"\n        M -120 155\n        C 70 145,215 190,345 285\n        C 465 375,560 420,650 385\n        C 745 350,825 390,900 475\n        C 970 555,1035 575,1120 605\n      \"\n    \/>\n\n  <\/svg>\n\n\n  <div class=\"process-header\">\n\n    <div>\n\n      <div class=\"section-label\">\n        How we work\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        Clear from brief<br>\n        to placement.\n      <\/h2>\n\n    <\/div>\n\n    <p>\n      A focused process keeps hiring moving. We agree the requirement,\n      search the right market, qualify carefully and stay close to both\n      sides until the person starts.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"process-list\">\n\n    <div class=\"process-row\">\n\n      <span class=\"process-number\">\n        01\n      <\/span>\n\n      <h3>\n        Define the requirement\n      <\/h3>\n\n      <p>\n        We clarify responsibilities, technology, working model,\n        budget and timeline before search begins.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"process-row\">\n\n      <span class=\"process-number\">\n        02\n      <\/span>\n\n      <h3>\n        Search the right market\n      <\/h3>\n\n      <p>\n        We target relevant specialists through our network and\n        direct technology-specific search.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"process-row\">\n\n      <span class=\"process-number\">\n        03\n      <\/span>\n\n      <h3>\n        Qualify before presenting\n      <\/h3>\n\n      <p>\n        We confirm experience, motivation, availability,\n        location and expectations first.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"process-row\">\n\n      <span class=\"process-number\">\n        04\n      <\/span>\n\n      <h3>\n        Keep momentum\n      <\/h3>\n\n      <p>\n        We coordinate interviews, feedback and candidate\n        communication between stages.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"process-row\">\n\n      <span class=\"process-number\">\n        05\n      <\/span>\n\n      <h3>\n        Support the start\n      <\/h3>\n\n      <p>\n        We stay involved through offer, notice period,\n        onboarding and the beginning of the role.\n      <\/p>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     BLOG\n========================================================= -->\n\n<section\n  class=\"section blog section-enter\"\n  id=\"blog\"\n>\n\n  <div class=\"blog-header\">\n\n    <div>\n\n      <div class=\"section-label\">\n        Ideas & insights\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        Better hiring<br>\n        starts with context.\n      <\/h2>\n\n    <\/div>\n\n    <p class=\"blog-header-copy\">\n      Practical thinking on specialist recruitment, technology\n      teams and the decisions that shape successful hiring.\n    <\/p>\n\n  <\/div>\n\n\n  <div class=\"blog-grid\">\n\n    <article class=\"blog-card\">\n\n      <div class=\"blog-media\"><\/div>\n\n      <div class=\"blog-content\">\n\n        <div class=\"blog-meta\">\n\n          <span class=\"blog-category\">\n            Recruiting\n          <\/span>\n\n          <span>\n            7 min read\n          <\/span>\n\n        <\/div>\n\n        <h3>\n          Why your shortlist should get smaller, not bigger.\n        <\/h3>\n\n        <p class=\"blog-excerpt\">\n          More candidates rarely create better decisions. A focused\n          shortlist makes the trade-offs clearer, keeps interviews\n          meaningful and protects everyone\u2019s time.\n        <\/p>\n\n        <div class=\"blog-read\">\n\n          <span>\n            Read article\n          <\/span>\n\n          <span class=\"blog-read-arrow\">\n            \u2197\ufe0e\n          <\/span>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"blog-card\">\n\n      <div class=\"blog-media\"><\/div>\n\n      <div class=\"blog-content\">\n\n        <div class=\"blog-meta\">\n\n          <span class=\"blog-category\">\n            Team building\n          <\/span>\n\n          <span>\n            6 min read\n          <\/span>\n\n        <\/div>\n\n        <h3>\n          Building an IT team around the work that actually exists.\n        <\/h3>\n\n        <p class=\"blog-excerpt\">\n          Strong technology teams are shaped around delivery needs,\n          not fashionable job titles. Start with the problems, then\n          design the capability around them.\n        <\/p>\n\n        <div class=\"blog-read\">\n\n          <span>\n            Read article\n          <\/span>\n\n          <span class=\"blog-read-arrow\">\n            \u2197\ufe0e\n          <\/span>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n\n    <article class=\"blog-card\">\n\n      <div class=\"blog-media\"><\/div>\n\n      <div class=\"blog-content\">\n\n        <div class=\"blog-meta\">\n\n          <span class=\"blog-category\">\n            Leadership\n          <\/span>\n\n          <span>\n            9 min read\n          <\/span>\n\n        <\/div>\n\n        <h3>\n          The hidden cost of waiting too long to hire specialist talent.\n        <\/h3>\n\n        <p class=\"blog-excerpt\">\n          An open role affects more than recruitment metrics. It changes\n          team workload, project velocity and the decisions people make\n          around delivery risk.\n        <\/p>\n\n        <div class=\"blog-read\">\n\n          <span>\n            Read article\n          <\/span>\n\n          <span class=\"blog-read-arrow\">\n            \u2197\ufe0e\n          <\/span>\n\n        <\/div>\n\n      <\/div>\n\n    <\/article>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     FAQ\n========================================================= -->\n\n<section\n  class=\"section faq section-enter\"\n  id=\"faq\"\n>\n\n  <div class=\"faq-layout\">\n\n    <div class=\"faq-intro\">\n\n      <div class=\"section-label\">\n        FAQ\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        Common<br>\n        questions.\n      <\/h2>\n\n      <p>\n        A quick overview of how we work with hiring teams,\n        projects and technology specialists.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"faq-list\">\n\n      <div class=\"faq-item open\">\n\n        <button\n          class=\"faq-question\"\n          type=\"button\"\n        >\n\n          <span>\n            How quickly can you present candidates?\n          <\/span>\n\n          <span class=\"faq-icon\">\n            +\n          <\/span>\n\n        <\/button>\n\n        <div class=\"faq-answer\">\n\n          <div class=\"faq-answer-inner\">\n            For a clearly defined specialist requirement, we typically\n            aim to present an initial focused shortlist within 48 to 72 hours.\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"faq-item\">\n\n        <button\n          class=\"faq-question\"\n          type=\"button\"\n        >\n\n          <span>\n            Do you recruit across Europe?\n          <\/span>\n\n          <span class=\"faq-icon\">\n            +\n          <\/span>\n\n        <\/button>\n\n        <div class=\"faq-answer\">\n\n          <div class=\"faq-answer-inner\">\n            Yes. We support remote, hybrid and onsite technology hiring\n            across European markets.\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"faq-item\">\n\n        <button\n          class=\"faq-question\"\n          type=\"button\"\n        >\n\n          <span>\n            Can you support contract and permanent hiring?\n          <\/span>\n\n          <span class=\"faq-icon\">\n            +\n          <\/span>\n\n        <\/button>\n\n        <div class=\"faq-answer\">\n\n          <div class=\"faq-answer-inner\">\n            Yes. We provide permanent recruitment, contract recruitment,\n            team extension and embedded recruitment.\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"faq-item\">\n\n        <button\n          class=\"faq-question\"\n          type=\"button\"\n        >\n\n          <span>\n            Which technology markets do you cover?\n          <\/span>\n\n          <span class=\"faq-icon\">\n            +\n          <\/span>\n\n        <\/button>\n\n        <div class=\"faq-answer\">\n\n          <div class=\"faq-answer-inner\">\n            SAP, Workday, ServiceNow, Azure, AWS, Snowflake,\n            Databricks, Power BI, Data, AI and Software Engineering.\n          <\/div>\n\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/section>\n\n\n<!-- =========================================================\n     CONTACT\n========================================================= -->\n\n<section\n  class=\"section contact section-enter\"\n  id=\"contact\"\n>\n\n  <div class=\"contact-layout\">\n\n    <div class=\"contact-copy\">\n\n      <div class=\"section-label\">\n        Start a conversation\n      <\/div>\n\n      <h2\n        class=\"section-title\"\n        style=\"margin-top:20px;\"\n      >\n        What do you<br>\n        need to hire?\n      <\/h2>\n\n      <p>\n        Tell us about the role, project or hiring challenge.\n        We can help you understand the market and choose\n        the right recruitment approach.\n      <\/p>\n\n      <div class=\"contact-points\">\n\n        <div class=\"contact-point\">\n          Permanent recruitment\n        <\/div>\n\n        <div class=\"contact-point\">\n          Contract specialists\n        <\/div>\n\n        <div class=\"contact-point\">\n          Team extension\n        <\/div>\n\n        <div class=\"contact-point\">\n          Embedded recruitment\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n\n    <form\n      class=\"contact-form\"\n      action=\"javascript:void(0)\"\n      onsubmit=\"return false;\"\n    >\n\n      <div class=\"form-row\">\n\n        <div class=\"field\">\n\n          <label for=\"name\">\n            Name\n          <\/label>\n\n          <input\n            id=\"name\"\n            type=\"text\"\n            placeholder=\"Your name\"\n          >\n\n        <\/div>\n\n\n        <div class=\"field\">\n\n          <label for=\"company\">\n            Company\n          <\/label>\n\n          <input\n            id=\"company\"\n            type=\"text\"\n            placeholder=\"Company name\"\n          >\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"form-row\">\n\n        <div class=\"field\">\n\n          <label for=\"email\">\n            Work email\n          <\/label>\n\n          <input\n            id=\"email\"\n            type=\"email\"\n            placeholder=\"you@company.com\"\n          >\n\n        <\/div>\n\n\n        <div class=\"field\">\n\n          <label for=\"hiringType\">\n            Hiring type\n          <\/label>\n\n          <select id=\"hiringType\">\n\n            <option value=\"\">\n              Select one\n            <\/option>\n\n            <option>\n              Permanent recruitment\n            <\/option>\n\n            <option>\n              Contract recruitment\n            <\/option>\n\n            <option>\n              Team extension\n            <\/option>\n\n            <option>\n              Embedded recruitment\n            <\/option>\n\n          <\/select>\n\n        <\/div>\n\n      <\/div>\n\n\n      <div class=\"field\">\n\n        <label for=\"message\">\n          What are you hiring for?\n        <\/label>\n\n        <textarea\n          id=\"message\"\n          placeholder=\"Tell us about the role, project, location and skills you need.\"\n        ><\/textarea>\n\n      <\/div>\n\n\n      <div class=\"form-submit-row\">\n\n        <button\n          type=\"button\"\n          class=\"button button-primary\"\n        >\n          Send enquiry\n        <\/button>\n\n        <span class=\"form-demo-note\">\n          Form preview\n        <\/span>\n\n      <\/div>\n\n    <\/form>\n\n  <\/div>\n\n<\/section>\n\n\n<\/main>\n\n\n<!-- =========================================================\n     FOOTER\n========================================================= -->\n\n<footer class=\"footer\">\n\n  <div class=\"footer-grid\">\n\n    <div class=\"footer-brand\">\n\n      <div class=\"footer-logo\">\n\n        <img decoding=\"async\"\n          src=\"https:\/\/michalplebaniak.com\/wp-content\/uploads\/2026\/08\/Profilowe_01.png\"\n          alt=\"Talent Complete\"\n        >\n\n      <\/div>\n\n      <p>\n        Specialist recruitment for SAP, Data, AI, Cloud and\n        Engineering teams across Europe.\n      <\/p>\n\n\n      <div class=\"footer-socials socials\">\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"LinkedIn\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M5.3 7.8H1.7V22h3.6V7.8zM3.5 2C2.3 2 1.4 3 1.4 4.1c0 1.2.9 2.1 2.1 2.1s2.1-.9 2.1-2.1C5.6 3 4.7 2 3.5 2zM22.6 13.8c0-4.3-2.3-6.3-5.4-6.3-2.5 0-3.6 1.4-4.2 2.3v-2h-3.6V22H13v-7c0-1.8.3-3.6 2.6-3.6 2.3 0 2.3 2.1 2.3 3.7V22h3.6l1.1-8.2z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"Facebook\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M14 8.5V6.7c0-.8.5-1 1-1h2.6V2.1L14.3 2C10.9 2 10 4.5 10 6.3v2.2H7.6V12H10v10h4V12h3l.5-3.5H14z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"Instagram\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M7.2 2h9.6A5.2 5.2 0 0 1 22 7.2v9.6a5.2 5.2 0 0 1-5.2 5.2H7.2A5.2 5.2 0 0 1 2 16.8V7.2A5.2 5.2 0 0 1 7.2 2zm0 2A3.2 3.2 0 0 0 4 7.2v9.6A3.2 3.2 0 0 0 7.2 20h9.6a3.2 3.2 0 0 0 3.2-3.2V7.2A3.2 3.2 0 0 0 16.8 4H7.2zm10.2 1.5a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4zM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6z\"\/>\n          <\/svg>\n        <\/a>\n\n        <a\n          href=\"#\"\n          class=\"social-icon\"\n          aria-label=\"YouTube\"\n        >\n          <svg viewBox=\"0 0 24 24\">\n            <path d=\"M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31.7 31.7 0 0 0 0 12a31.7 31.7 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31.7 31.7 0 0 0 24 12a31.7 31.7 0 0 0-.5-5.8zM9.6 15.6V8.4l6.3 3.6-6.3 3.6z\"\/>\n          <\/svg>\n        <\/a>\n\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"footer-column\">\n\n      <h4>\n        Explore\n      <\/h4>\n\n      <a href=\"#solutions\">Solutions<\/a>\n      <a href=\"#expertise\">Expertise<\/a>\n      <a href=\"#technologies\">Technologies<\/a>\n      <a href=\"#team\">Team<\/a>\n      <a href=\"#blog\">Blog<\/a>\n\n    <\/div>\n\n\n    <div class=\"footer-column\">\n\n      <h4>\n        Company\n      <\/h4>\n\n      <a href=\"#faq\">FAQ<\/a>\n      <a href=\"#contact\">Contact<\/a>\n      <a href=\"#top\">Back to top<\/a>\n\n    <\/div>\n\n\n    <div class=\"footer-column\">\n\n      <h4>\n        Focus\n      <\/h4>\n\n      <a href=\"#technologies\">SAP<\/a>\n      <a href=\"#technologies\">Data & AI<\/a>\n      <a href=\"#technologies\">Cloud<\/a>\n      <a href=\"#technologies\">Engineering<\/a>\n\n    <\/div>\n\n  <\/div>\n\n\n  <div class=\"footer-bottom\">\n\n    <span>\n      \u00a9 2026 Talent Complete\n    <\/span>\n\n    <span>\n      Technology talent across Europe.\n    <\/span>\n\n  <\/div>\n\n<\/footer>\n\n\n<script>\n\n\/* =========================================================\n   HELPERS\n========================================================= *\/\n\nconst clamp=(\n  value,\n  min,\n  max\n)=>{\n\n  return Math.min(\n    Math.max(\n      value,\n      min\n    ),\n    max\n  );\n\n};\n\n\nconst lerp=(\n  a,\n  b,\n  t\n)=>{\n\n  return a+(b-a)*t;\n\n};\n\n\n\/* =========================================================\n   MENU\n========================================================= *\/\n\nconst siteHeader=\n  document.getElementById(\n    \"siteHeader\"\n  );\n\n\nconst menuToggle=\n  document.getElementById(\n    \"menuToggle\"\n  );\n\n\nconst menuOverlay=\n  document.getElementById(\n    \"menuOverlay\"\n  );\n\n\nfunction setMenu(\n  open\n){\n\n  menuOverlay\n    .classList\n    .toggle(\n      \"open\",\n      open\n    );\n\n\n  siteHeader\n    .classList\n    .toggle(\n      \"is-open\",\n      open\n    );\n\n\n  document.body\n    .classList\n    .toggle(\n      \"menu-open\",\n      open\n    );\n\n\n  menuToggle\n    .setAttribute(\n      \"aria-expanded\",\n      String(open)\n    );\n\n\n  menuToggle\n    .setAttribute(\n      \"aria-label\",\n      open\n        ? \"Close menu\"\n        : \"Open menu\"\n    );\n\n}\n\n\nmenuToggle.addEventListener(\n  \"click\",\n  ()=>{\n\n    setMenu(\n      !menuOverlay\n        .classList\n        .contains(\n          \"open\"\n        )\n    );\n\n  }\n);\n\n\ndocument\n  .querySelectorAll(\n    \".menu-links a\"\n  )\n  .forEach(\n    link=>{\n\n      link.addEventListener(\n        \"click\",\n        ()=>{\n\n          setMenu(\n            false\n          );\n\n        }\n      );\n\n    }\n  );\n\n\ndocument.addEventListener(\n  \"keydown\",\n  event=>{\n\n    if(\n      event.key===\n      \"Escape\"\n    ){\n\n      setMenu(\n        false\n      );\n\n    }\n\n  }\n);\n\n\n\/* =========================================================\n   SECTION ENTRY\n========================================================= *\/\n\nconst entrySections=\n  document.querySelectorAll(\n    \".section-enter\"\n  );\n\n\nconst entryObserver=\n  new IntersectionObserver(\n    entries=>{\n\n      entries.forEach(\n        entry=>{\n\n          if(\n            entry.isIntersecting\n          ){\n\n            entry.target\n              .classList\n              .add(\n                \"section-visible\"\n              );\n\n\n            entryObserver\n              .unobserve(\n                entry.target\n              );\n\n          }\n\n        }\n      );\n\n    },\n    {\n\n      threshold:.07,\n\n      rootMargin:\n        \"0px 0px -4% 0px\"\n\n    }\n  );\n\n\nentrySections.forEach(\n  section=>{\n\n    entryObserver.observe(\n      section\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   HERO LOOP\n========================================================= *\/\n\nconst heroLoop=\n  document.getElementById(\n    \"heroLoop\"\n  );\n\n\nconst heroLoopTrack=\n  document.getElementById(\n    \"heroLoopTrack\"\n  );\n\n\nconst heroLoopSets=\n  heroLoopTrack\n    .querySelectorAll(\n      \".hero-loop-set\"\n    );\n\n\nlet loopSegmentWidth=0;\n\nlet loopX=0;\n\nlet loopDragging=false;\n\nlet loopPointerId=null;\n\nlet loopLastPointerX=0;\n\nlet loopLastPointerTime=0;\n\nlet loopVelocity=0;\n\nlet loopLastFrame=\n  performance.now();\n\n\nconst loopAutoSpeed=.035;\n\n\nfunction measureHeroLoop(){\n\n  const oldWidth=\n    loopSegmentWidth;\n\n\n  const oldProgress=\n    oldWidth\n      ?\n      (\n        (\n          (\n            -loopX\n          )%\n          oldWidth\n        )+\n        oldWidth\n      )%\n      oldWidth\/\n      oldWidth\n      :\n      0;\n\n\n  loopSegmentWidth=\n    heroLoopSets[0]\n      .getBoundingClientRect()\n      .width;\n\n\n  if(\n    loopSegmentWidth<=0\n  ){\n\n    return;\n\n  }\n\n\n  loopX=\n    -loopSegmentWidth*\n    (\n      1+\n      oldProgress\n    );\n\n\n  normalizeLoopPosition();\n\n\n  updateHeroLoopTransform();\n\n}\n\n\nfunction normalizeLoopPosition(){\n\n  if(\n    !loopSegmentWidth\n  ){\n\n    return;\n\n  }\n\n\n  while(\n    loopX<=\n    -2*\n    loopSegmentWidth\n  ){\n\n    loopX+=\n      loopSegmentWidth;\n\n  }\n\n\n  while(\n    loopX>0\n  ){\n\n    loopX-=\n      loopSegmentWidth;\n\n  }\n\n}\n\n\nfunction updateHeroLoopTransform(){\n\n  heroLoopTrack.style.transform=\n    `translate3d(${loopX}px,0,0)`;\n\n}\n\n\nfunction heroLoopFrame(\n  now\n){\n\n  const delta=\n    Math.min(\n      now-\n      loopLastFrame,\n      40\n    );\n\n\n  loopLastFrame=\n    now;\n\n\n  if(\n    !loopDragging &&\n    loopSegmentWidth>0\n  ){\n\n    loopX-=\n      loopAutoSpeed*\n      delta;\n\n\n    loopX+=\n      loopVelocity*\n      delta;\n\n\n    loopVelocity*=\n      Math.pow(\n        .90,\n        delta\/\n        16.667\n      );\n\n\n    if(\n      Math.abs(\n        loopVelocity\n      )<\n      .002\n    ){\n\n      loopVelocity=0;\n\n    }\n\n\n    normalizeLoopPosition();\n\n\n    updateHeroLoopTransform();\n\n  }\n\n\n  requestAnimationFrame(\n    heroLoopFrame\n  );\n\n}\n\n\nheroLoop.addEventListener(\n  \"pointerdown\",\n  event=>{\n\n    if(\n      event.pointerType===\n      \"mouse\" &&\n      event.button!==0\n    ){\n\n      return;\n\n    }\n\n\n    loopDragging=true;\n\n\n    loopPointerId=\n      event.pointerId;\n\n\n    loopLastPointerX=\n      event.clientX;\n\n\n    loopLastPointerTime=\n      performance.now();\n\n\n    loopVelocity=0;\n\n\n    heroLoop\n      .classList\n      .add(\n        \"is-dragging\"\n      );\n\n\n    try{\n\n      heroLoop\n        .setPointerCapture(\n          event.pointerId\n        );\n\n    }catch(error){}\n\n  }\n);\n\n\nheroLoop.addEventListener(\n  \"pointermove\",\n  event=>{\n\n    if(\n      !loopDragging ||\n      event.pointerId!==\n      loopPointerId\n    ){\n\n      return;\n\n    }\n\n\n    const now=\n      performance.now();\n\n\n    const deltaX=\n      event.clientX-\n      loopLastPointerX;\n\n\n    const deltaTime=\n      Math.max(\n        now-\n        loopLastPointerTime,\n        1\n      );\n\n\n    loopX+=\n      deltaX;\n\n\n    loopVelocity=\n      deltaX\/\n      deltaTime;\n\n\n    loopLastPointerX=\n      event.clientX;\n\n\n    loopLastPointerTime=\n      now;\n\n\n    normalizeLoopPosition();\n\n\n    updateHeroLoopTransform();\n\n  }\n);\n\n\nfunction releaseHeroLoop(\n  event\n){\n\n  if(\n    !loopDragging\n  ){\n\n    return;\n\n  }\n\n\n  if(\n    event &&\n    event.pointerId!==\n    undefined &&\n    loopPointerId!==\n    null &&\n    event.pointerId!==\n    loopPointerId\n  ){\n\n    return;\n\n  }\n\n\n  loopDragging=false;\n\n\n  loopPointerId=null;\n\n\n  heroLoop\n    .classList\n    .remove(\n      \"is-dragging\"\n    );\n\n}\n\n\nheroLoop.addEventListener(\n  \"pointerup\",\n  releaseHeroLoop\n);\n\n\nheroLoop.addEventListener(\n  \"pointercancel\",\n  releaseHeroLoop\n);\n\n\nheroLoop.addEventListener(\n  \"lostpointercapture\",\n  releaseHeroLoop\n);\n\n\n\/* =========================================================\n   PATH SYSTEM\n========================================================= *\/\n\nconst desktopPathItems=[];\n\nconst mobilePathItems=[];\n\n\n\/* =========================================================\n   PREPARE DESKTOP PATH\n\n   This restores the original desktop logic:\n   actual SVG length, matching dash length, exact scroll offset.\n========================================================= *\/\n\nfunction prepareDesktopPath(\n  art\n){\n\n  if(\n    art.dataset.prepared===\n    \"true\"\n  ){\n\n    return;\n\n  }\n\n\n  const path=\n    art.querySelector(\n      \".desktop-scroll-path\"\n    );\n\n\n  if(\n    !path\n  ){\n\n    return;\n\n  }\n\n\n  let length=0;\n\n\n  try{\n\n    length=\n      path.getTotalLength();\n\n  }catch(error){\n\n    return;\n\n  }\n\n\n  if(\n    !Number.isFinite(\n      length\n    ) ||\n    length<=0\n  ){\n\n    return;\n\n  }\n\n\n  path.style.strokeDasharray=\n    `${length} ${length*2}`;\n\n\n  path.style.strokeDashoffset=\n    `${length}`;\n\n\n  art.dataset.prepared=\n    \"true\";\n\n\n  art.classList.add(\n    \"path-ready\"\n  );\n\n\n  desktopPathItems.push({\n\n    art,\n    path,\n    length\n\n  });\n\n}\n\n\n\/* =========================================================\n   PREPARE MOBILE PATH\n========================================================= *\/\n\nfunction prepareMobilePath(\n  art\n){\n\n  if(\n    art.dataset.prepared===\n    \"true\"\n  ){\n\n    return;\n\n  }\n\n\n  const path=\n    art.querySelector(\n      \".mobile-scroll-path\"\n    );\n\n\n  if(\n    !path\n  ){\n\n    return;\n\n  }\n\n\n  let length=0;\n\n\n  try{\n\n    length=\n      path.getTotalLength();\n\n  }catch(error){\n\n    return;\n\n  }\n\n\n  if(\n    !Number.isFinite(\n      length\n    ) ||\n    length<=0\n  ){\n\n    return;\n\n  }\n\n\n  path.style.strokeDasharray=\n    `${length} ${length*2}`;\n\n\n  path.style.strokeDashoffset=\n    `${length}`;\n\n\n  \/*\n    Prevent a rounded line-cap from peeking out at the hidden endpoint\n    before the scroll reveal has actually started.\n  *\/\n  path.style.opacity=\n    \"0\";\n\n\n  art.dataset.prepared=\n    \"true\";\n\n\n  art.classList.add(\n    \"path-ready\"\n  );\n\n\n  let startRatio=0;\n  let endRatio=1;\n\n\n  try{\n\n    const startPoint=\n      path.getPointAtLength(0);\n\n    const endPoint=\n      path.getPointAtLength(length);\n\n    const viewBoxHeight=\n      art.viewBox &&\n      art.viewBox.baseVal\n        ?\n        art.viewBox.baseVal.height\n        :\n        0;\n\n\n    if(\n      viewBoxHeight>0\n    ){\n\n      const measuredStart=\n        startPoint.y\/\n        viewBoxHeight;\n\n      const measuredEnd=\n        endPoint.y\/\n        viewBoxHeight;\n\n\n      if(\n        Number.isFinite(\n          measuredStart\n        )\n      ){\n\n        startRatio=\n          measuredStart;\n\n      }\n\n\n      if(\n        Number.isFinite(\n          measuredEnd\n        )\n      ){\n\n        endRatio=\n          measuredEnd;\n\n      }\n\n    }\n\n  }catch(error){\n\n    startRatio=0;\n    endRatio=1;\n\n  }\n\n\n  mobilePathItems.push({\n\n    art,\n    path,\n    length,\n    startRatio,\n    endRatio\n\n  });\n\n}\n\n\n\/* =========================================================\n   PREPARE CURRENT BREAKPOINT\n\n   We only measure SVGs that are actually displayed.\n\n   This avoids getTotalLength() edge cases on display:none SVGs.\n========================================================= *\/\n\nfunction prepareVisiblePaths(){\n\n  const mobile=\n    window.matchMedia(\n      \"(max-width:620px)\"\n    ).matches;\n\n\n  if(\n    mobile\n  ){\n\n    document\n      .querySelectorAll(\n        \".mobile-scroll-art\"\n      )\n      .forEach(\n        prepareMobilePath\n      );\n\n  }else{\n\n    document\n      .querySelectorAll(\n        \".desktop-scroll-art\"\n      )\n      .forEach(\n        prepareDesktopPath\n      );\n\n  }\n\n}\n\n\n\/* =========================================================\n   DESKTOP PATH UPDATE\n========================================================= *\/\n\nfunction updateDesktopPaths(){\n\n  const viewportHeight=\n    window.innerHeight;\n\n\n  desktopPathItems.forEach(\n    item=>{\n\n      const section=\n        item.art.closest(\n          \".path-section\"\n        );\n\n\n      if(\n        !section\n      ){\n\n        return;\n\n      }\n\n\n      const rect=\n        section.getBoundingClientRect();\n\n\n      const startMultiplier=\n        parseFloat(\n          item.art.dataset.start\n        );\n\n\n      const endMultiplier=\n        parseFloat(\n          item.art.dataset.end\n        );\n\n\n      const start=\n        viewportHeight*\n        startMultiplier;\n\n\n      const end=\n        rect.height*\n        endMultiplier;\n\n\n      const raw=\n        clamp(\n          (\n            start-\n            rect.top\n          )\/\n          (\n            start-\n            end\n          ),\n          0,\n          1\n        );\n\n\n      const progress=\n        raw<.5\n          ?\n          2*\n          raw*\n          raw\n          :\n          1-\n          Math.pow(\n            -2*\n            raw+\n            2,\n            2\n          )\/\n          2;\n\n\n      item.path.style.strokeDashoffset=\n        item.length*\n        (\n          1-\n          progress\n        );\n\n\n      const rotateFrom=\n        parseFloat(\n          item.art.dataset.rotateFrom\n        );\n\n\n      const rotateTo=\n        parseFloat(\n          item.art.dataset.rotateTo\n        );\n\n\n      const scaleFrom=\n        parseFloat(\n          item.art.dataset.scaleFrom\n        );\n\n\n      const scaleTo=\n        parseFloat(\n          item.art.dataset.scaleTo\n        );\n\n\n      item.art.style.transform=\n        `\n          rotate(\n            ${lerp(\n              rotateFrom,\n              rotateTo,\n              progress\n            )}deg\n          )\n          scale(\n            ${lerp(\n              scaleFrom,\n              scaleTo,\n              progress\n            )}\n          )\n        `;\n\n    }\n  );\n\n}\n\n\n\/* =========================================================\n   MOBILE PATH UPDATE\n\n   Paths reveal in a stable top-to-bottom direction.\n   The SVG stays anchored so the dash animation cannot appear to loop.\n========================================================= *\/\n\nfunction updateMobilePaths(){\n\n  const viewportHeight=\n    Math.max(\n      window.innerHeight,\n      1\n    );\n\n\n  mobilePathItems.forEach(\n    item=>{\n\n      const section=\n        item.art.closest(\n          \".path-section\"\n        );\n\n\n      if(\n        !section\n      ){\n\n        return;\n\n      }\n\n\n      const artRect=\n        item.art.getBoundingClientRect();\n\n\n      \/*\n        Use BOTH path endpoints for the scroll range.\n\n        Start just before the first point reaches the viewport, then keep\n        revealing until the final point has travelled almost completely\n        through the viewport. This prevents the reveal from bunching up\n        around the middle of the curve.\n      *\/\n\n      const startPointOffset=\n        artRect.height*\n        item.startRatio;\n\n\n      const endPointOffset=\n        artRect.height*\n        item.endRatio;\n\n\n      const startPointTrigger=\n        viewportHeight*\n        1.10;\n\n\n      const endPointTrigger=\n        viewportHeight*\n        .08;\n\n\n      const artTopAtStart=\n        startPointTrigger-\n        startPointOffset;\n\n\n      const artTopAtFinish=\n        endPointTrigger-\n        endPointOffset;\n\n\n      const travel=\n        Math.max(\n          artTopAtStart-\n          artTopAtFinish,\n          1\n        );\n\n\n      const progress=\n        clamp(\n          (\n            artTopAtStart-\n            artRect.top\n          )\/\n          travel,\n          0,\n          1\n        );\n\n\n      item.path.style.strokeDashoffset=\n        item.length*\n        (\n          1-\n          progress\n        );\n\n\n      item.path.style.opacity=\n        progress>0.001\n          ?\n          \"1\"\n          :\n          \"0\";\n\n\n      \/*\n        Keep the SVG anchored to the document. The path itself now has\n        a clean, monotonic top-to-bottom geometry and exits beyond the\n        bottom edge, so normal page scrolling carries it fully away.\n      *\/\n\n      item.art.style.transform=\n        \"translate3d(0,0,0)\";\n\n    }\n  );\n\n}\n\n\/* =========================================================\n   PATH SCROLL LOOP\n========================================================= *\/\n\nlet pathPending=false;\n\n\nfunction updatePaths(){\n\n  const mobile=\n    window.matchMedia(\n      \"(max-width:620px)\"\n    ).matches;\n\n\n  if(\n    mobile\n  ){\n\n    updateMobilePaths();\n\n  }else{\n\n    updateDesktopPaths();\n\n  }\n\n\n  pathPending=false;\n\n}\n\n\nfunction requestPathUpdate(){\n\n  if(\n    pathPending\n  ){\n\n    return;\n\n  }\n\n\n  pathPending=true;\n\n\n  requestAnimationFrame(\n    updatePaths\n  );\n\n}\n\n\nwindow.addEventListener(\n  \"scroll\",\n  requestPathUpdate,\n  {\n    passive:true\n  }\n);\n\n\n\/* =========================================================\n   SOLUTIONS\n========================================================= *\/\n\nconst solutionButtons=\n  document.querySelectorAll(\n    \".solution-button\"\n  );\n\n\nconst solutionDescription=\n  document.getElementById(\n    \"solutionDescription\"\n  );\n\n\nfunction activateSolution(\n  button\n){\n\n  solutionButtons\n    .forEach(\n      item=>{\n\n        item\n          .classList\n          .remove(\n            \"active\"\n          );\n\n      }\n    );\n\n\n  button\n    .classList\n    .add(\n      \"active\"\n    );\n\n\n  solutionDescription.textContent=\n    button.dataset.description;\n\n}\n\n\nsolutionButtons.forEach(\n  button=>{\n\n    button.addEventListener(\n      \"mouseenter\",\n      ()=>{\n\n        activateSolution(\n          button\n        );\n\n      }\n    );\n\n\n    button.addEventListener(\n      \"focus\",\n      ()=>{\n\n        activateSolution(\n          button\n        );\n\n      }\n    );\n\n\n    button.addEventListener(\n      \"click\",\n      ()=>{\n\n        activateSolution(\n          button\n        );\n\n      }\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   FOLDERS\n========================================================= *\/\n\nconst folders=\n  document.querySelectorAll(\n    \".folder-card\"\n  );\n\n\nfunction setFolderOpen(\n  folder,\n  open\n){\n\n  folder\n    .classList\n    .toggle(\n      \"open\",\n      open\n    );\n\n\n  folder\n    .setAttribute(\n      \"aria-expanded\",\n      String(open)\n    );\n\n}\n\n\nfunction toggleFolder(\n  folder\n){\n\n  const willOpen=\n    !folder\n      .classList\n      .contains(\n        \"open\"\n      );\n\n\n  folders.forEach(\n    other=>{\n\n      if(\n        other!==\n        folder\n      ){\n\n        setFolderOpen(\n          other,\n          false\n        );\n\n      }\n\n    }\n  );\n\n\n  setFolderOpen(\n    folder,\n    willOpen\n  );\n\n}\n\n\nfolders.forEach(\n  folder=>{\n\n    folder.addEventListener(\n      \"click\",\n      event=>{\n\n        event.preventDefault();\n\n\n        toggleFolder(\n          folder\n        );\n\n      }\n    );\n\n\n    folder.addEventListener(\n      \"keydown\",\n      event=>{\n\n        if(\n          event.key===\n          \"Enter\" ||\n          event.key===\n          \" \"\n        ){\n\n          event.preventDefault();\n\n\n          toggleFolder(\n            folder\n          );\n\n        }\n\n      }\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   VALUE CARDS\n========================================================= *\/\n\nconst valueCards=\n  document.querySelectorAll(\n    \".value-card\"\n  );\n\n\nfunction toggleValueCard(\n  card\n){\n\n  if(\n    !window.matchMedia(\n      \"(hover:none), (pointer:coarse)\"\n    ).matches\n  ){\n\n    return;\n\n  }\n\n\n  const willInvert=\n    !card\n      .classList\n      .contains(\n        \"is-inverted\"\n      );\n\n\n  valueCards.forEach(\n    other=>{\n\n      if(\n        other!==\n        card\n      ){\n\n        other\n          .classList\n          .remove(\n            \"is-inverted\"\n          );\n\n      }\n\n    }\n  );\n\n\n  card\n    .classList\n    .toggle(\n      \"is-inverted\",\n      willInvert\n    );\n\n}\n\n\nvalueCards.forEach(\n  card=>{\n\n    card.addEventListener(\n      \"click\",\n      ()=>{\n\n        toggleValueCard(\n          card\n        );\n\n      }\n    );\n\n\n    card.addEventListener(\n      \"keydown\",\n      event=>{\n\n        if(\n          event.key===\n          \"Enter\" ||\n          event.key===\n          \" \"\n        ){\n\n          event.preventDefault();\n\n\n          toggleValueCard(\n            card\n          );\n\n        }\n\n      }\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   FAQ\n========================================================= *\/\n\nconst faqItems=\n  document.querySelectorAll(\n    \".faq-item\"\n  );\n\n\nfunction updateFaq(\n  item\n){\n\n  const answer=\n    item.querySelector(\n      \".faq-answer\"\n    );\n\n\n  const inner=\n    item.querySelector(\n      \".faq-answer-inner\"\n    );\n\n\n  if(\n    item\n      .classList\n      .contains(\n        \"open\"\n      )\n  ){\n\n    answer.style.maxHeight=\n      (\n        inner.scrollHeight+\n        40\n      )+\n      \"px\";\n\n  }else{\n\n    answer.style.maxHeight=\n      \"0px\";\n\n  }\n\n}\n\n\nfaqItems.forEach(\n  item=>{\n\n    const button=\n      item.querySelector(\n        \".faq-question\"\n      );\n\n\n    button.addEventListener(\n      \"click\",\n      ()=>{\n\n        const wasOpen=\n          item\n            .classList\n            .contains(\n              \"open\"\n            );\n\n\n        faqItems.forEach(\n          other=>{\n\n            other\n              .classList\n              .remove(\n                \"open\"\n              );\n\n\n            updateFaq(\n              other\n            );\n\n          }\n        );\n\n\n        if(\n          !wasOpen\n        ){\n\n          item\n            .classList\n            .add(\n              \"open\"\n            );\n\n        }\n\n\n        updateFaq(\n          item\n        );\n\n      }\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   RESIZE\n========================================================= *\/\n\nlet previousMobileState=\n  window.matchMedia(\n    \"(max-width:620px)\"\n  ).matches;\n\n\nlet resizeTimer=null;\n\n\nfunction handleResize(){\n\n  clearTimeout(\n    resizeTimer\n  );\n\n\n  resizeTimer=\n    setTimeout(\n      ()=>{\n\n        measureHeroLoop();\n\n\n        const currentMobileState=\n          window.matchMedia(\n            \"(max-width:620px)\"\n          ).matches;\n\n\n        \/*\n          If breakpoint changed, the newly visible SVGs\n          can now be safely measured.\n        *\/\n\n        if(\n          currentMobileState!==\n          previousMobileState\n        ){\n\n          previousMobileState=\n            currentMobileState;\n\n\n          requestAnimationFrame(\n            ()=>{\n\n              prepareVisiblePaths();\n\n              updatePaths();\n\n            }\n          );\n\n        }else{\n\n          updatePaths();\n\n        }\n\n\n        faqItems.forEach(\n          updateFaq\n        );\n\n      },\n      80\n    );\n\n}\n\n\nwindow.addEventListener(\n  \"resize\",\n  handleResize\n);\n\n\nwindow.addEventListener(\n  \"orientationchange\",\n  handleResize\n);\n\n\n\/* =========================================================\n   INITIAL PATH SETUP\n========================================================= *\/\n\nrequestAnimationFrame(\n  ()=>{\n\n    prepareVisiblePaths();\n\n    updatePaths();\n\n  }\n);\n\n\n\/* =========================================================\n   INITIAL FAQ\n========================================================= *\/\n\nfaqItems.forEach(\n  updateFaq\n);\n\n\n\/* =========================================================\n   LOAD\n========================================================= *\/\n\nwindow.addEventListener(\n  \"load\",\n  ()=>{\n\n    measureHeroLoop();\n\n\n    \/*\n      Run path measurement again after layout and assets settle.\n      Already prepared paths are ignored.\n    *\/\n\n    prepareVisiblePaths();\n\n\n    updatePaths();\n\n\n    faqItems.forEach(\n      updateFaq\n    );\n\n\n    requestAnimationFrame(\n      heroLoopFrame\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   CONTACT\n\n   Visual only.\n   No submission logic.\n========================================================= *\/\n\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Talent Complete \u2014 Your IT matchmaker. Solutions Expertise Technologies Team Blog FAQ Contact Talent Complete Specialist technology recruitment across Europe for SAP, Workday, ServiceNow, Data, AI, Cloud and Engineering teams. Gateway to programming talents. Your IT matchmaker. Specialist recruitment for SAP, Workday, ServiceNow, Data, AI, Cloud and Engineering teams across Europe. Start a conversation Explore solutions Trusted by international companies Roche Nestl\u00e9 Hilti Holcim Lonza ABB TC \/ 001 The right match matters. We align experience, availability, working style and project context so every introduction makes sense for both sides. TC \/ 01 Teams That Last We look beyond keywords to understand how experience, communication and expectations fit the team you are building. TC \/ 02 The Right Match Market knowledge helps us identify specialists who fit the role, environment and pace of delivery. TC \/ 03 Faster Momentum Focused shortlists and clear communication reduce wasted interview time and keep strong candidates engaged. 48\u201372h Initial focused shortlist for clearly defined specialist roles. 10,000+ Technology specialists across our wider European network. EU-wide Recruitment delivery for remote, hybrid and onsite teams. Specialist recruitment Technology hiring works better when your recruitment partner understands the work. We focus on defined technology markets, qualify carefully and present people worth meeting. Recruitment solutions Hire in the way the work requires. Recruit one permanent specialist, bring in contractors for a project, extend an existing team or add dedicated recruitment capacity. Enterprise Applications Data &#038; AI Software Engineering Contract Recruitment Team Extension Embedded Recruitment Hire specialists across SAP, Workday, ServiceNow and the enterprise platforms behind major transformation programmes. Where we add value Built for real delivery pressure. Tap a folder on mobile or hover on desktop to reveal the hiring challenge behind it. 01 \u2197\ufe0e Enterprise Change Specialists for implementations, rollouts, migrations and transformation programmes. 02 \u2197\ufe0e Data &#038; AI Delivery Talent across data engineering, analytics, AI and modern data platforms. 03 \u2197\ufe0e Project Team Scaling Add specialist contract capacity when delivery pressure rises. 04 \u2197\ufe0e Embedded Recruitment Dedicated recruitment capacity, structured pipelines and clear hiring reporting. Technology expertise The ecosystems your teams depend on. We recruit within technology markets where specific platform knowledge matters, from enterprise applications to cloud infrastructure and modern data stacks. Swipe technologies 01 SAP Functional, technical and programme talent across transformation, S\/4HANA, migrations, rollouts and support. S\/4HANA FICO SD\/MM 02 Workday Specialists across HCM, finance, integrations, reporting, implementation and platform optimisation. HCM Finance Integrations 03 ServiceNow Developers, architects and consultants supporting workflow, ITSM and enterprise platform programmes. ITSM CSM Architecture 04 Microsoft Azure Cloud engineers, architects, DevOps professionals and data specialists across the Microsoft cloud ecosystem. Cloud DevOps Data 05 aws AWS Engineering and architecture talent for cloud migration, infrastructure, platforms and cloud-native development. Architecture DevOps Migration 06 Snowflake Data engineers, architects and analytics professionals building scalable cloud data platforms. Engineering Analytics 07 Databricks Specialists building lakehouse environments, production pipelines and machine-learning workflows. Lakehouse ML Data 08 Power BI BI developers and analysts transforming complex data into useful reporting and decision support. Dashboards Reporting DAX 09 Data &#038; AI Engineers, scientists and AI specialists across data platforms, machine learning and production AI. ML GenAI Engineering The team Recruitment is still a people business. Specialist markets need recruiters who understand the roles, know how to qualify talent and stay close to the process from first conversation to start date. Recruitment Lead Enterprise Applications Talent Partner Software &#038; Cloud Specialist Recruiter Data &#038; AI Delivery Partner Contract &#038; RPO How we work Clear from brief to placement. A focused process keeps hiring moving. We agree the requirement, search the right market, qualify carefully and stay close to both sides until the person starts. 01 Define the requirement We clarify responsibilities, technology, working model, budget and timeline before search begins. 02 Search the right market We target relevant specialists through our network and direct technology-specific search. 03 Qualify before presenting We confirm experience, motivation, availability, location and expectations first. 04 Keep momentum We coordinate interviews, feedback and candidate communication between stages. 05 Support the start We stay involved through offer, notice period, onboarding and the beginning of the role. Ideas &#038; insights Better hiring starts with context. Practical thinking on specialist recruitment, technology teams and the decisions that shape successful hiring. Recruiting 7 min read Why your shortlist should get smaller, not bigger. More candidates rarely create better decisions. A focused shortlist makes the trade-offs clearer, keeps interviews meaningful and protects everyone\u2019s time. Read article \u2197\ufe0e Team building 6 min read Building an IT team around the work that actually exists. Strong technology teams are shaped around delivery needs, not fashionable job titles. Start with the problems, then design the capability around them. Read article \u2197\ufe0e Leadership 9 min read The hidden cost of waiting too long to hire specialist talent. An open role affects more than recruitment metrics. It changes team workload, project velocity and the decisions people make around delivery risk. Read article \u2197\ufe0e FAQ Common questions. A quick overview of how we work with hiring teams, projects and technology specialists. How quickly can you present candidates? + For a clearly defined specialist requirement, we typically aim to present an initial focused shortlist within 48 to 72 hours. Do you recruit across Europe? + Yes. We support remote, hybrid and onsite technology hiring across European markets. Can you support contract and permanent hiring? + Yes. We provide permanent recruitment, contract recruitment, team extension and embedded recruitment. Which technology markets do you cover? + SAP, Workday, ServiceNow, Azure, AWS, Snowflake, Databricks, Power BI, Data, AI and Software Engineering. Start a conversation What do you need to hire? Tell us about the role, project or hiring challenge. We can help you understand the market and choose the right recruitment approach. Permanent recruitment Contract specialists Team extension Embedded recruitment Name Company Work email Hiring type Select one Permanent recruitment Contract recruitment Team extension Embedded recruitment What are you hiring for? Send enquiry Form preview Specialist recruitment for SAP, Data, AI, Cloud and Engineering teams across Europe.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-2220","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/pages\/2220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/comments?post=2220"}],"version-history":[{"count":166,"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/pages\/2220\/revisions"}],"predecessor-version":[{"id":2853,"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/pages\/2220\/revisions\/2853"}],"wp:attachment":[{"href":"https:\/\/michalplebaniak.com\/en\/wp-json\/wp\/v2\/media?parent=2220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}