{"id":14630,"date":"2026-11-03T13:45:10","date_gmt":"2026-11-03T12:45:10","guid":{"rendered":"https:\/\/skyeredtechnology.de\/homepage-test\/projekte-techops-fuer-release-optimierung\/"},"modified":"2026-11-03T14:49:42","modified_gmt":"2026-11-03T13:49:42","slug":"projekte-techops-fuer-release-optimierung","status":"publish","type":"page","link":"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte-techops-fuer-release-optimierung\/","title":{"rendered":"\u00d6ffentlicher Dienst Branche | Sky-E Red Technology"},"content":{"rendered":"<meta name=\"robots\" content=\"noindex, nofollow\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600;700&#038;family=Barlow:wght@400;500;600&#038;display=swap\">\n<style>\nbutton,[type=button],[type=submit],[type=reset]{color:inherit;background:none;border:0;\npadding:0;border-radius:0;font:inherit;line-height:inherit;text-transform:none;letter-spacing:inherit;\nbox-shadow:none;white-space:normal}\nbutton:hover,button:focus,[type=button]:hover,[type=button]:focus,[type=submit]:hover,[type=submit]:focus{\nbackground-color:transparent;color:inherit;text-decoration:none}\n\/* ==========================================================================\n   Sky-E Red Education \u2014 design system (\"Tonal\")\n   Style reference: more-nutrition.webflow.io, in our brand colours.\n   One hue in tones: a light red-tinted ground, a mid tint for cards and the\n   hero, wine for text and dark buttons, red as the accent. Condensed grotesk\n   headings (Barlow Condensed), Barlow for text. Pill buttons with a small\n   arrow circle, round badges, rounded cards, centred sections, lots of air.\n   One motion: buttons change colour on hover. Nothing animates on scroll.\n   Mobile-first. Components with snippets: COMPONENTS.md.\n   Order: tokens, base, layout, buttons, header\/nav, footer, heroes,\n   components, utilities.\n   ========================================================================== *\/\n\n\/* ---------- Tokens ---------- *\/\n:root {\n  --ground: #ffffff;     \/* page ground: white (Ilyas 2026-11-03: more white; tint only as accent) *\/\n  --tint: #ebd3d6;       \/* mid tint: hero, cards on ground *\/\n  --tint-soft: #f1e2e4;  \/* alternate section ground *\/\n  --tint-deep: #ddb6bc;  \/* hover on tint, hairlines (decorative only) *\/\n  --white: #ffffff;      \/* cards on tint, photo borders *\/\n  --wine: #000000;       \/* brand black (2026-11-02): text, headings, dark buttons, dark band *\/\n  --red: #950900;        \/* brand red #950900: markers, active states, focus, button hover *\/\n  --rose: #008c95;       \/* brand turquoise: second tone of a display headline (large text only) *\/\n  --teal: #008c95;       \/* brand turquoise #008C95; white on it ~4.1:1 (large\/bold only), black on it 5.2:1 *\/\n  --muted: #5a3a40;      \/* secondary text *\/\n  --on-wine: #ffffff;\n  --on-wine-soft: #d6d6d6;\n  \/* Contrast (WCAG): wine on ground 14.4, on tint 11.5, on white 16.3; muted on ground 7.5,\n     on tint 6.0; red on ground 6.5, on tint 5.2; rose on ground 4.2, on tint 3.4 (display\n     sizes only); white on wine 16.3, on red 7.4; #f2c9cf on wine 10.9. *\/\n\n  --font: \"Barlow\", \"Helvetica Neue\", Arial, sans-serif;\n  --font-display: \"Barlow Condensed\", \"Arial Narrow\", \"Helvetica Neue\", Arial, sans-serif;\n  --fs-sm: 0.875rem;\n  --fs-base: 1.0625rem;\n  --fs-md: 1.25rem;\n  --fs-lg: clamp(1.1875rem, 1.1rem + 0.4vw, 1.4375rem);\n  --fs-h3: clamp(1.5rem, 1.35rem + 0.6vw, 1.875rem);\n  --fs-h2: clamp(2.25rem, 1.4rem + 3.4vw, 4.25rem);\n  --fs-h1: clamp(2.75rem, 1.6rem + 4.8vw, 5.5rem);\n  --fs-display: clamp(3.25rem, 1.4rem + 7.6vw, 7rem);\n\n  --gutter: 16px;\n  --container: 72rem;\n  --gap: clamp(1rem, 2.4vw, 1.75rem);\n  --section-y: clamp(4rem, 2.5rem + 6vw, 8rem);\n  --r-card: 12px;\n  --r-pill: 999px;\n  --header-h: 72px;\n  --measure: 66ch;\n  --arrow-wine: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23490009' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 11 5M6.5 5H11v4.5'\/%3E%3C\/svg%3E\");\n  --arrow-white: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 11 5M6.5 5H11v4.5'\/%3E%3C\/svg%3E\");\n}\n@media (min-width: 768px) { :root { --gutter: 32px; --header-h: 84px; } }\n\n\/* ---------- Base ---------- *\/\n*, *::before, *::after { box-sizing: border-box; }\nhtml { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }\n@media (min-width: 1024px) { html { font-size: 105.88%; } } \/* 18px body on desktop *\/\nbody {\n  margin: 0; font-family: var(--font); font-size: var(--fs-base); line-height: 1.6;\n  color: var(--wine); background: var(--ground);\n  -webkit-font-smoothing: antialiased; overflow-x: clip;\n}\nimg, svg, video, iframe { max-width: 100%; }\nimg { height: auto; display: block; }\nh1, h2, h3, h4 {\n  margin: 0 0 0.5em; font-family: var(--font-display); font-weight: 700; color: var(--wine);\n  line-height: 0.98; letter-spacing: -0.015em; overflow-wrap: break-word; text-wrap: balance;\n  hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 12 6 6;\n}\nh1 { font-size: var(--fs-h1); letter-spacing: -0.025em; line-height: 0.92; }\nh2 { font-size: var(--fs-h2); letter-spacing: -0.02em; line-height: 0.95; }\nh3 { font-size: var(--fs-h3); font-weight: 600; line-height: 1.05; }\nh4 { font-size: var(--fs-md); font-weight: 600; }\np { margin: 0 0 1em; max-width: var(--measure); }\np:last-child { margin-bottom: 0; }\na { color: var(--wine); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }\na:hover { color: var(--red); }\nstrong { font-weight: 600; }\nul, ol { margin: 0 0 1em; padding-left: 1.25em; }\nli { max-width: var(--measure); }\n:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }\n.section--dark :focus-visible, .footer-cta :focus-visible { outline-color: var(--white); } \/* red on wine is too faint *\/\n::selection { background: var(--wine); color: #fff; }\n\n.tone { color: var(--rose); display: block; } \/* second tone of a display headline: max 1\u20132 per site page *\/\n.skip-link {\n  position: absolute; left: 12px; top: -60px; z-index: 200; border-radius: var(--r-pill);\n  background: var(--wine); color: #fff; padding: 10px 18px; font-weight: 600; text-decoration: none;\n}\n.skip-link:focus { top: 12px; color: #fff; }\n.sr-only {\n  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;\n  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;\n}\n\n\/* ---------- Layout ---------- *\/\n.container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }\n.container--narrow > * { max-width: 48rem; margin-inline: auto; }\n.section { padding-block: var(--section-y); position: relative; }\n.section--tight { padding-block: calc(var(--section-y) * 0.6); }\n.section--alt { background: var(--tint-soft); }\n.section--dark { background: var(--wine); color: var(--on-wine-soft); }\n.section--dark :is(h1, h2, h3, h4, strong) { color: var(--on-wine); }\n.section--dark a:not(.btn) { color: var(--on-wine); }\n\n\/* Section heading: centred above the content. *\/\n.section__head { text-align: center; max-width: 54rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); }\n.section__head > :last-child { margin-bottom: 0; }\n.section__head p { margin-inline: auto; max-width: 46rem; }\n.section__head h2 + p { margin-top: 1.25rem; }\n.section--dark .section__head p { color: var(--on-wine-soft); }\n.section__head--row .text-link { display: inline-block; margin-top: 1.25rem; }\n.section__head img { margin: 0 auto; width: 100%; max-width: 22rem; background: var(--white); border-radius: var(--r-card); padding: 1rem 1.5rem; }\n.section__head + .stack, .section__head + .checklist:not(.checklist--cards) { max-width: 46rem; margin-inline: auto; }\n.section__head ~ .btn-row { justify-content: center; }\n\n.h-small { font-size: var(--fs-h3); }\n.lead { font-size: var(--fs-lg); line-height: 1.45; }\n.muted { color: var(--muted); }\n.section--dark .lead { color: var(--on-wine); }\n\n.grid { display: grid; gap: var(--gap); }\n@media (min-width: 640px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) {\n  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n  .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n}\n\n\/* Two columns: text + media (6\/6), wide text (7\/5), reversed, top-aligned. *\/\n.split { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }\n@media (min-width: 900px) {\n  .split { grid-template-columns: repeat(12, minmax(0, 1fr)); }\n  .split > :first-child { grid-column: 1 \/ 7; }\n  .split > :last-child { grid-column: 7 \/ -1; }\n  .split--wide-text > :first-child { grid-column: 1 \/ 8; }\n  .split--wide-text > :last-child { grid-column: 8 \/ -1; }\n  .split--reverse > :first-child { order: 2; grid-column: 7 \/ -1; }\n  .split--reverse > :last-child { order: 1; grid-column: 1 \/ 7; }\n  .split--top { align-items: start; }\n}\n.split h2:not(.h-small), .grid h2:not(.h-small) { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem); }\n\n\/* Photos: rounded, white border. *\/\n.split__media img, .media-frame img, .photo-frame img, .page-hero__media img {\n  width: 100%; border: 6px solid var(--white); border-radius: var(--r-card); background: var(--white);\n}\n.photo-frame { margin: 0; }\n.photo-frame img { border-width: 8px; border-radius: 14px; aspect-ratio: 4 \/ 3; object-fit: cover; }\n.photo-frame--tilt { transform: rotate(-2.5deg); }\n\n\/* ---------- Buttons: pill with a small arrow circle ---------- *\/\n.btn {\n  --btn-bg: var(--wine); --btn-fg: var(--white); --btn-dot: var(--white); --btn-arrow: var(--arrow-wine);\n  display: inline-flex; align-items: center; justify-content: center; gap: 0.7rem;\n  min-height: 52px; padding: 0.375rem 1.5rem 0.375rem 0.375rem; border: 0; border-radius: var(--r-pill);\n  background: var(--btn-bg); color: var(--btn-fg);\n  font: 600 1.125rem\/1.1 var(--font-display); letter-spacing: 0.01em; text-decoration: none; text-align: center;\n  cursor: pointer; transition: background-color 0.15s ease-out, color 0.15s ease-out;\n}\n.btn::before {\n  content: \"\"; flex: none; width: 2.5rem; height: 2.5rem; border-radius: 50%;\n  background: var(--btn-dot) var(--btn-arrow) center \/ 1rem no-repeat;\n}\n.btn:hover, .btn:active { --btn-bg: var(--red); color: var(--btn-fg); }\n.btn--lg { min-height: 60px; font-size: 1.3125rem; padding-right: 1.75rem; }\n.btn--lg::before { width: 3rem; height: 3rem; background-size: 1.125rem; }\n.btn--sm { min-height: 46px; font-size: 1.0625rem; padding-right: 1.15rem; }\n.btn--sm::before { width: 2.125rem; height: 2.125rem; background-size: 0.875rem; }\n.btn--outline { --btn-bg: var(--tint); --btn-fg: var(--wine); --btn-dot: var(--wine); --btn-arrow: var(--arrow-white); }\n.btn--outline:hover, .btn--outline:active { --btn-bg: var(--tint-deep); color: var(--wine); }\n.section--alt .btn--outline, .hero .btn--outline, .page-hero .btn--outline { --btn-bg: var(--white); }\n.btn--light { --btn-bg: var(--white); --btn-fg: var(--wine); --btn-dot: var(--wine); --btn-arrow: var(--arrow-white); }\n.btn--light:hover, .btn--light:active { --btn-bg: var(--tint); color: var(--wine); }\n.btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 2rem; }\n.text-link { font-weight: 600; }\n\n\/* ---------- Header & navigation ---------- *\/\n.ser-site-header { position: sticky; top: 0; z-index: 100; background: var(--ground); border-bottom: 1px solid #efe3e5; }\n.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: var(--header-h); }\n.brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; }\n.brand img { height: calc(var(--header-h) - 22px); width: auto; }\n\n.nav { display: none; }\n.nav__list { display: flex; align-items: center; gap: 0.375rem; list-style: none; margin: 0; padding: 0; }\n.nav__link, .nav__toggle {\n  display: inline-flex; align-items: center; gap: 0.3rem; min-height: 40px; padding: 0.4rem 0.95rem;\n  background: var(--tint); border: 0; border-radius: var(--r-pill); cursor: pointer;\n  font: 600 1.0625rem\/1.1 var(--font-display); color: var(--wine); text-decoration: none; white-space: nowrap;\n}\n.nav__link:hover, .nav__toggle:hover, .nav__item.is-open > .nav__toggle { background: var(--tint-deep); color: var(--wine); }\n.nav__link[aria-current=\"page\"], .nav__item[data-current] > .nav__toggle { background: var(--wine); color: var(--white); }\n.nav__toggle::after {\n  content: \"\"; width: 0.4rem; height: 0.4rem; margin: -0.2rem 0 0 0.15rem;\n  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);\n}\n.nav__item.is-open > .nav__toggle::after { transform: rotate(-135deg); margin-top: 0.2rem; }\n.nav__item { position: relative; }\n.nav__menu {\n  position: absolute; top: calc(100% + 8px); left: 0; min-width: 300px; max-width: 380px;\n  list-style: none; margin: 0; padding: 0.5rem; background: var(--white); border-radius: var(--r-card); display: none;\n}\n.nav__menu::before { content: \"\"; position: absolute; inset: -12px 0 auto; height: 12px; } \/* hover bridge *\/\n.nav__item.is-open > .nav__menu { display: block; }\n.nav__menu a {\n  display: block; padding: 0.6rem 0.85rem; border-radius: 8px; text-decoration: none;\n  color: var(--wine); font-size: 0.9375rem; font-weight: 500; line-height: 1.35;\n}\n.nav__menu a:hover, .nav__menu a:focus-visible { background: var(--tint-soft); color: var(--wine); }\n.nav__menu a[aria-current=\"page\"] { background: var(--tint); }\n.header-cta { display: none; }\n\n.burger {\n  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;\n  border-radius: 50%; border: 0; background: var(--tint); cursor: pointer; color: var(--wine);\n}\n.burger span, .burger span::before, .burger span::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }\n.burger span::before, .burger span::after { content: \"\"; position: absolute; left: 0; }\n.burger span::before { top: -6px; }\n.burger span::after { top: 6px; }\n.burger[aria-expanded=\"true\"] span { background: transparent; }\n.burger[aria-expanded=\"true\"] span::before { transform: translateY(6px) rotate(45deg); }\n.burger[aria-expanded=\"true\"] span::after { transform: translateY(-6px) rotate(-45deg); }\n\n.mobile-nav {\n  position: fixed; inset: var(--header-h) 0 0 0; z-index: 99; background: var(--ground);\n  overflow-y: auto; overscroll-behavior: contain; padding: 0.5rem var(--gutter) 2.5rem;\n}\n.mobile-nav[hidden] { display: none; }\n.mobile-nav__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }\n.mobile-nav__list > li { max-width: none; background: var(--tint); border-radius: var(--r-card); }\n.mobile-nav__link, .mobile-nav__toggle {\n  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px;\n  min-height: 56px; padding: 0.75rem 1.1rem; background: none; border: 0; cursor: pointer; text-align: left;\n  font: 600 1.375rem\/1.15 var(--font-display); color: var(--wine); text-decoration: none;\n}\n.mobile-nav__link[aria-current=\"page\"] { text-decoration: underline; text-decoration-thickness: 2px; }\n.mobile-nav__toggle::after { content: \"+\"; font-size: 1.5rem; font-weight: 500; }\n.mobile-nav__toggle[aria-expanded=\"true\"]::after { content: \"\\2212\"; }\n.mobile-nav__sub { list-style: none; margin: 0; padding: 0 0.5rem 0.75rem; }\n.mobile-nav__sub[hidden] { display: none; }\n.mobile-nav__sub a { display: block; padding: 0.6rem 0.75rem; border-radius: 8px; color: var(--wine); text-decoration: none; font-weight: 500; line-height: 1.4; }\n.mobile-nav__sub a[aria-current=\"page\"] { background: var(--white); }\n.mobile-nav .btn { width: 100%; margin-top: 1.5rem; }\nbody.nav-open { overflow: hidden; }\n\n@media (min-width: 1180px) {\n  .site-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; }\n  .nav { display: block; }\n  .header-cta { display: inline-flex; justify-self: end; }\n  .burger, .mobile-nav { display: none !important; }\n}\n\n\/* ---------- Footer ---------- *\/\n.ser-site-footer { background: var(--tint); color: var(--wine); font-size: 0.9375rem; }\n.ser-site-footer a:not(.btn) { color: var(--wine); text-decoration: none; }\n.ser-site-footer a:not(.btn):hover { color: var(--red); text-decoration: underline; }\n.footer-cta { background: var(--wine); color: var(--on-wine-soft); padding-block: clamp(3.5rem, 7vw, 6rem); text-align: center; }\n.footer-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 2rem; }\n.footer-cta h2 { color: var(--white); margin-bottom: 0.4em; }\n.footer-cta p { margin: 0 auto 0.35em; font-size: var(--fs-md); line-height: 1.4; max-width: 40rem; }\n.footer-cta strong { color: var(--white); }\n.footer-grid { display: grid; gap: 2.5rem var(--gap); padding-block: clamp(3rem, 5vw, 4.5rem) 3rem; grid-template-columns: minmax(0, 1fr); }\n@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); } .footer-grid > :nth-child(1) { grid-column: span 3; } .footer-grid > :nth-child(2) { grid-column: span 4; } .footer-grid > :nth-child(3) { grid-column: span 3; } .footer-grid > :nth-child(4) { grid-column: span 2; } }\n.footer-brand img { width: 64px; height: auto; margin-bottom: 1.25rem; }\n.footer-title { font: 700 1.25rem\/1.1 var(--font-display); text-transform: uppercase; letter-spacing: 0.01em; margin: 0 0 0.85rem; }\n.footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }\n.footer-contact li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 0.75rem; }\n.footer-label { color: var(--wine); font-size: var(--fs-sm); }\n.footer-list--sub { padding-left: 0.9rem; gap: 0.4rem; margin-top: 0.5rem; }\n.footer-bottom {\n  border-top: 1px solid var(--tint-deep); padding-block: 1.25rem;\n  display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: center; justify-content: space-between;\n}\n.social { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }\n.ser-site-footer .social a {\n  display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: var(--r-pill);\n  background: var(--ground); font-weight: 500;\n}\n.ser-site-footer .social a:hover { text-decoration: none; background: var(--white); }\n\n\/* ---------- Fact box (class name kept: kursblatt) ----------\n   The course facts as rounded tiles: small label, value in the display face.\n   The one key figure (.kursblatt__big) spans the full width on top. Seals in a\n   white strip at the foot. Only facts that are on the same page. *\/\n.kursblatt { width: 100%; }\n.kursblatt__rows { display: flex; flex-wrap: wrap; gap: 0.625rem; margin: 0; }\n.kursblatt__row {\n  flex: 1 1 15rem; display: flex; flex-direction: column; justify-content: center; gap: 0.3rem;\n  padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card); text-align: center;\n}\n.kursblatt__row:has(.kursblatt__big) { flex-basis: 100%; order: -1; padding-block: 1.25rem; }\n@media (max-width: 639px) { .kursblatt__row { flex-basis: 9.5rem; padding: 0.85rem 0.75rem; } .kursblatt__row:first-child { flex-basis: 100%; } .kursblatt dd { font-size: 1.1875rem; } }\n.kursblatt dt { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); line-height: 1.3; }\n.kursblatt dd { margin: 0; font: 600 1.3125rem\/1.15 var(--font-display); color: var(--wine); overflow-wrap: anywhere; }\n.kursblatt dd.kursblatt__big { font-size: clamp(2.5rem, 1.8rem + 2.6vw, 3.75rem); font-weight: 700; line-height: 0.95; letter-spacing: -0.02em; }\n.kursblatt__seals {\n  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2rem;\n  margin-top: 0.625rem; padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card);\n}\n.kursblatt__seals img { height: 56px; width: auto; }\n.kursblatt__seals img.is-wide { height: 44px; }\n\n\/* ---------- Hero (homepage) ---------- *\/\n.hero { background: var(--tint); padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3.5rem, 7vw, 6rem); }\n.hero__top { text-align: center; }\n.hero__top h1 { font-size: var(--fs-display); margin: 0 auto; max-width: 12em; }\n.hero__top .btn-row { justify-content: center; margin-top: clamp(1.75rem, 3vw, 2.5rem); }\n.hero__row { display: grid; gap: 2.5rem; align-items: center; margin-top: clamp(3rem, 6vw, 5rem); }\n.hero__media { position: relative; }\n.hero__lead { font: 700 clamp(1.75rem, 1.2rem + 2vw, 2.75rem)\/1 var(--font-display); letter-spacing: -0.01em; margin-bottom: 1rem; max-width: 18em; text-wrap: balance; }\n.hero__note { margin-top: 1.25rem; font-weight: 500; }\n.hero > .container > .kursblatt { max-width: 56rem; margin: clamp(3rem, 6vw, 4.5rem) auto 0; }\n@media (min-width: 960px) {\n  .hero__row { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(3rem, 5vw, 5rem); }\n  .hero__media .photo-frame { margin-left: 7.5rem; }  \/* badges overlap the frame by about 1.5rem *\/\n}\n\n\/* Round badges (class names: stats \/ stat). Only figures that are on the page. *\/\n.stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }\n.stat {\n  --d: 12rem;\n  width: var(--d); height: var(--d); border-radius: 50%; background: var(--tint); flex: none;\n  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.35rem;\n  padding: 1.25rem; text-align: center;\n}\n.section--alt .stat, .page-hero .stat { background: var(--white); }\n.stat__value { display: block; font: 700 clamp(2.25rem, 1.8rem + 1.4vw, 3rem)\/0.95 var(--font-display); letter-spacing: -0.02em; color: var(--wine); }\n.stat__label { display: block; font-size: 0.875rem; line-height: 1.3; color: var(--wine); hyphens: auto; }\n@media (min-width: 640px) { .stat { --d: 13.5rem; } }\n.page-hero .stats { margin-top: 2.5rem; }\n\n\/* Hero badges: three small circles on the photo's left edge (stacked on desktop, a row below on phones). *\/\n.stats--hero { position: relative; z-index: 1; flex-wrap: nowrap; gap: 0.5rem; margin-top: -2.5rem; }\n.stats--hero .stat { --d: min(8.5rem, 28vw); background: var(--ground); padding: 0.5rem; gap: 0.15rem; }\n.stats--hero .stat__value { font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem); }\n.stats--hero .stat__label { font-size: clamp(0.6875rem, 0.6rem + 0.35vw, 0.875rem); font-weight: 500; }\n@media (min-width: 960px) {\n  .stats--hero { position: absolute; left: 0; top: 50%; transform: translateY(-50%); flex-direction: column; margin: 0; gap: 0.75rem; }\n  .stats--hero .stat { --d: 9rem; }\n  .stats--hero .stat:nth-child(2) { margin-left: 1.5rem; }\n}\n\n\/* ---------- Page hero (course and sub pages): centred, facts below ---------- *\/\n.page-hero { background: var(--tint); padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5.5rem); text-align: center; }\n.page-hero h1 { margin-inline: auto; max-width: 16em; margin-bottom: 1.5rem; }\n.page-hero p { margin-inline: auto; max-width: 44rem; }\n.page-hero .btn-row { justify-content: center; }\n.page-hero__grid { display: flex; flex-direction: column; align-items: center; }\n.page-hero__grid > .kursblatt { max-width: 56rem; margin-top: clamp(2.5rem, 5vw, 3.5rem); }\n.page-hero--simple { padding-block: clamp(2.5rem, 5vw, 4.5rem); }\n.page-hero--simple h1 { margin-bottom: 0; }\n.page-hero--simple .lead { margin-top: 1.25rem; }\n.breadcrumb { font-size: var(--fs-sm); margin: 0 auto 1.5rem; color: var(--muted); }\n.breadcrumb a { color: var(--muted); }\n\n\/* Facts: small pills (job facts, short claims) *\/\n.facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }\n.facts li { padding: 0.45rem 1rem; border-radius: var(--r-pill); background: var(--tint); font-weight: 500; max-width: none; }\n.section--alt .facts li { background: var(--white); }\n\n\/* ---------- Lists ---------- *\/\n.checklist { list-style: none; margin: 0 0 1.25em; padding: 0; display: grid; gap: 0.6rem; text-align: left; }\n.checklist li { position: relative; padding-left: 1.4rem; line-height: 1.5; }\n.checklist li::before { content: \"\"; position: absolute; left: 0; top: 0.5em; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--red); }\n.section--dark .checklist li::before { background: var(--on-wine); }\n\n\/* Two columns of rounded rows *\/\n.checklist--cols { gap: 0.5rem var(--gap); }\n@media (min-width: 640px) { .checklist--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n\n\/* Feature tiles: rounded mid-tint cards, centred uppercase titles *\/\n.checklist--cards { gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }\n.checklist--cards li {\n  display: flex; align-items: center; justify-content: center; min-height: 7.5rem; padding: 1.25rem 1rem;\n  background: var(--tint); border-radius: var(--r-card); text-align: center; max-width: none;\n  font: 700 1.4375rem\/1.02 var(--font-display); text-transform: uppercase; letter-spacing: 0; font-variant-ligatures: none;\n  hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; \/* whole words only; long compounds carry &shy; *\/\n}\n.checklist--cards li::before { display: none; }\n.checklist--cards strong { font-weight: 700; }\n.section--alt .checklist--cards li, .card--feature .checklist--cards li { background: var(--white); }\n@media (max-width: 639px) { .checklist--cards:not(.checklist--single) { grid-template-columns: repeat(2, minmax(0, 1fr)); } .checklist--cards li { font-size: 1.125rem; min-height: 6rem; padding: 1rem 0.5rem; } }\n\/* One column: rounded rows, normal text *\/\n.checklist--single { grid-template-columns: minmax(0, 1fr) !important; }\n.checklist--single li {\n  display: block; min-height: 0; padding: 0.9rem 1.25rem 0.9rem 2.6rem; text-align: left;\n  font: 500 1.0625rem\/1.5 var(--font); text-transform: none;\n}\n.checklist--single li::before { display: block; left: 1.25rem; top: calc(0.9rem + 0.5em); }\n.checklist--single strong { font-weight: 600; }\n\n\/* ---------- Cards ---------- *\/\n.card { display: flex; flex-direction: column; gap: 0.75rem; margin: 0; }\na.card { text-decoration: none; color: inherit; background: var(--tint); border-radius: var(--r-card); padding: 0.5rem 0.5rem 1.5rem; }\n.section--alt a.card { background: var(--white); }\na.card:hover h3 { color: var(--red); }\n.card__media { aspect-ratio: 16 \/ 9; overflow: hidden; border-radius: 8px; background: var(--white); }\n.card__media img { width: 100%; height: 100%; object-fit: cover; }\n.card__body { display: flex; flex-direction: column; gap: 0.5rem; flex: 1; padding-inline: 1rem; }\n.card h3 { margin: 0; font-size: clamp(1.375rem, 1.2rem + 0.5vw, 1.625rem); text-transform: uppercase; font-weight: 700; hyphens: manual; -webkit-hyphens: manual; }\n.card__meta { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); }\n.card__logo { height: 44px; width: auto; max-width: 70%; object-fit: contain; align-self: center; margin-bottom: 0.25rem; }\n.card__foot { margin-top: auto; padding-top: 0.5rem; font-weight: 600; text-decoration: underline; }\n\/* Feature card: mid-tint card with an uppercase title, like the reference's \"MORE TASTE\" cards.\n   Text stays left-aligned because most of these cards carry several lines; a card with a source\n   logo on top (short claim + number) is centred like the reference. *\/\n.card--feature {\n  background: var(--tint); border-radius: var(--r-card); padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.6vw, 2rem);\n}\n.card--feature:has(.card__logo) { text-align: center; align-items: center; }\n.card--feature:has(.card__logo) > * { margin-inline: auto; }\n.card--feature .checklist { margin: 0.25rem 0 0; align-self: stretch; }\n.card--feature h2.h-small { font-size: var(--fs-h3); text-transform: uppercase; margin-bottom: 0.25rem; }\n.section--alt .card--feature { background: var(--white); }\n.section--dark .card--feature { background: rgba(255, 255, 255, 0.08); }\n\n\/* Certificates *\/\n.cert-card { display: grid; gap: 1.25rem var(--gap); align-items: center; background: var(--tint); border-radius: var(--r-card); padding: 1.25rem; margin: 0; }\n.section--alt .cert-card { background: var(--white); }\n@media (min-width: 900px) { .cert-card--wide { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem; padding: 2rem; } }\n.cert-card__media { display: grid; place-items: center; background: var(--white); border-radius: 8px; padding: 0.75rem; min-height: 0; }\n.cert-card__media img { max-height: 150px; width: auto; max-width: 100%; object-fit: contain; }\n.cert-card--compact { grid-template-columns: 8rem minmax(0, 1fr); gap: 1.25rem; padding: 0.75rem; }\n.cert-card--compact .cert-card__media img { max-height: 52px; }\n@media (max-width: 399px) { .cert-card--compact { grid-template-columns: 6.5rem minmax(0, 1fr); } }\n.cert-card h3 { margin-bottom: 0.4rem; text-transform: uppercase; font-weight: 700; }\n.cert-card__label { font-size: var(--fs-sm); color: var(--muted); margin: 0 0 0.2rem; }\n.cert-card__code { font: 600 1.25rem\/1.15 var(--font-display); overflow-wrap: anywhere; }\n\n\/* Seal row *\/\n.seal-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }\n.seal { display: flex; align-items: center; justify-content: center; height: 96px; padding: 0.75rem 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.seal img { max-height: 72px; width: auto; max-width: 200px; object-fit: contain; }\n\n\/* Testimonials: white cards *\/\n.quotes { display: grid; gap: var(--gap); }\n@media (min-width: 720px) { .quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.quote-card { margin: 0; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--white); border-radius: var(--r-card); display: flex; flex-direction: column; gap: 1.25rem; }\n.quote-card blockquote { margin: 0; font-size: var(--fs-md); font-weight: 500; line-height: 1.45; }\n.quote-card figcaption { display: flex; flex-wrap: wrap; gap: 0.15rem 0.75rem; align-items: baseline; margin-top: auto; }\n.quote-card__name { font: 700 1.25rem\/1.1 var(--font-display); text-transform: uppercase; }\n.quote-card__source { font-size: var(--fs-sm); color: var(--muted); }\n.stars { display: none; } \/* the text \"5\/5 auf Trustpilot\" carries the rating *\/\n\n\/* Steps: cards with a round number on the top edge *\/\n.steps { list-style: none; margin: 0; padding: 1.75rem 0 0; display: grid; gap: 2.75rem var(--gap); }\n@media (min-width: 640px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1100px) { .steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n.step { position: relative; max-width: none; background: var(--tint); border-radius: var(--r-card); padding: 2.75rem 1.5rem 1.75rem; text-align: center; }\n.section--alt .step { background: var(--white); }\n.step__num {\n  position: absolute; top: -1.75rem; left: 50%; transform: translateX(-50%);\n  display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%;\n  background: var(--red); color: var(--white); font: 700 1.75rem\/1 var(--font-display);\n  box-shadow: 0 0 0 6px var(--ground);\n}\n.section--alt .step__num { box-shadow: 0 0 0 6px var(--tint-soft); }\n.step h3 { font-size: 1.5rem; text-transform: uppercase; margin: 0 0 0.6rem; }\n.step p { margin: 0; text-align: left; }\n\n\/* Vertical timeline (phases) *\/\n.timeline { list-style: none; margin: 0; padding: 0 0 0 2rem; position: relative; display: grid; gap: 1.75rem; }\n.timeline::before { content: \"\"; position: absolute; left: 0.45rem; top: 0.5rem; bottom: 0.5rem; width: 2px; background: var(--tint-deep); }\n.timeline > li { position: relative; }\n.timeline > li::before { content: \"\"; position: absolute; left: -2rem; top: 0.3rem; width: 1rem; height: 1rem; border-radius: 50%; background: var(--wine); box-shadow: 0 0 0 4px var(--ground); }\n.timeline h3 { font-size: var(--fs-md); margin-bottom: 0.3rem; }\n\n\/* Progress *\/\n.progress { display: grid; gap: 0.4rem; }\n.progress__head { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; }\n.progress__bar { height: 10px; background: var(--tint); border-radius: var(--r-pill); overflow: hidden; }\n.section--alt .progress__bar { background: var(--white); }\n.progress__bar > span { display: block; height: 100%; background: var(--wine); border-radius: var(--r-pill); }\n\n\/* Modules (curriculum) *\/\n.modules { display: grid; gap: var(--gap); }\n@media (min-width: 768px) { .modules { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n@media (min-width: 1100px) { .modules--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.module-card { display: flex; flex-direction: column; background: var(--tint); border-radius: var(--r-card); padding: clamp(1.5rem, 2.8vw, 2.25rem); }\n.section--alt .module-card { background: var(--white); }\n.module-card__label {\n  align-self: center; margin: 0 0 0.75rem; padding: 0.3rem 0.9rem; border-radius: var(--r-pill);\n  background: var(--wine); color: var(--white); font-size: var(--fs-sm); font-weight: 600; line-height: 1.2;\n}\n.module-card h3 { margin-bottom: 1.25rem; font-size: 1.5rem; text-align: center; text-transform: uppercase; font-weight: 700; hyphens: manual; -webkit-hyphens: manual; }\n.module-card .checklist { margin: 0; gap: 0.45rem; }\n.module-card .btn-row { margin-top: auto; padding-top: 1.5rem; justify-content: center; }\n\n\/* Logo row: white tiles *\/\n\/* Flex, so an incomplete last row sits centred. --per = tiles per row. *\/\n.logo-wall { --per: 2; --g: 0.75rem; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--g); list-style: none; margin: 0; padding: 0; }\n@media (min-width: 640px) { .logo-wall { --per: 3; } }\n.logo-wall li {\n  flex: 0 0 calc((100% - (var(--per) - 1) * var(--g)) \/ var(--per)); max-width: none;\n  display: flex; align-items: center; justify-content: center; height: 104px; padding: 1rem 1.25rem;\n  background: var(--white); border-radius: var(--r-card);\n}\n.logo-wall img { max-height: 60px; max-width: min(100%, 9rem); width: auto; object-fit: contain; filter: grayscale(1); }\n.logo-wall--8 { --per: 3; --g: 0.5rem; }\n@media (min-width: 640px) { .logo-wall--8 { --per: 4; } }\n@media (min-width: 1024px) { .logo-wall--8 { --per: 8; } }\n.logo-wall--8 li { height: 80px; padding: 0.75rem; }\n.logo-wall--8 img { max-height: 40px; max-width: min(100%, 6.5rem); }\n\n\/* Accordion: rounded rows *\/\n.accordion { display: grid; gap: 0.625rem; }\n.accordion details { background: var(--tint-soft); border-radius: var(--r-card); }\n.section--alt .accordion details { background: var(--white); }\n.accordion summary {\n  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem;\n  padding: 1.1rem 1.25rem; font-weight: 600; font-size: 1.0625rem; line-height: 1.4; border-radius: var(--r-card);\n}\n.accordion summary::-webkit-details-marker { display: none; }\n.accordion summary::after {\n  content: \"+\"; flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%;\n  background: var(--wine); color: var(--white); font-size: 1.25rem; line-height: 1; font-weight: 500;\n}\n.accordion details[open] summary::after { content: \"\\2212\"; }\n.accordion summary:hover { color: var(--red); }\n.accordion__body { padding: 0 1.25rem 1.4rem; }\n.accordion__body > :last-child { margin-bottom: 0; }\n.accordion__body .facts li { background: var(--white); }\n\n\/* In-page CTA: centred tint panel *\/\n.cta-band {\n  background: var(--tint); border-radius: var(--r-card); padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem);\n  display: flex; flex-direction: column; align-items: center; gap: 1.75rem; text-align: center;\n}\n.section--alt .cta-band { background: var(--white); }\n.cta-band h2 { margin: 0 auto; max-width: 18em; }\n.cta-band p { margin: 0.75rem auto 0; }\n.cta-band > div { max-width: 48rem; }\n\n\/* Start dates on wine: centred, dates very large *\/\n.section--dark .container:has(> .date-list), .section--dark .split:has(.date-list) { text-align: center; }\n.date-list { list-style: none; margin: 0 auto 2.5rem; padding: 0; display: grid; gap: 1.75rem; }\n.date-list li { display: flex; flex-direction: column; align-items: center; gap: 0.15rem; max-width: none; }\n.date-list__course { font: 600 clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem)\/1.2 var(--font-display); }\n.date-list__date { font: 700 var(--fs-display)\/0.9 var(--font-display); letter-spacing: -0.02em; white-space: nowrap; }\n.section--dark .date-list__course { color: var(--on-wine-soft); }\n.section--dark .date-list__date { color: var(--on-wine); }\n\n\/* Contact: white rounded rows *\/\n.contact-cards { display: grid; gap: 0.625rem; }\n.contact-card { display: block; padding: 1rem 1.25rem; background: var(--white); border-radius: var(--r-card); text-decoration: none; color: var(--wine); }\na.contact-card:hover .contact-card__value { color: var(--red); }\n.contact-card__icon { display: none; }\n.contact-card__label { display: block; font-size: var(--fs-sm); color: var(--muted); }\n.contact-card__value { display: block; font: 600 1.5rem\/1.15 var(--font-display); overflow-wrap: anywhere; }\n\n\/* Embeds: rounded, white border *\/\n.embed { position: relative; width: 100%; overflow: hidden; background: var(--white); border: 6px solid var(--white); border-radius: var(--r-card); }\n.embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; }\n.embed--video { aspect-ratio: 16 \/ 9; }\n.embed--map { aspect-ratio: 4 \/ 3; min-height: 260px; }\n.embed--form { aspect-ratio: auto; min-height: 720px; }\n.embed--form iframe { position: static; height: 720px; }\n\n\/* Legal \/ long text *\/\n.prose { max-width: 46rem; margin-inline: auto; }\n.prose h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.375rem); margin-top: 2em; }\n.prose h3 { font-size: var(--fs-md); margin-top: 1.75em; }\n.prose h2:first-child, .prose h3:first-child { margin-top: 0; }\n.prose ul, .prose ol { padding-left: 1.4em; }\n.prose li { margin-bottom: 0.4em; }\n.prose a { overflow-wrap: anywhere; }\n.prose table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: var(--fs-sm); display: block; overflow-x: auto; }\n.prose th, .prose td { border-bottom: 1px solid var(--tint-deep); padding: 0.6rem 0.75rem 0.6rem 0; text-align: left; vertical-align: top; }\n\n\/* Note *\/\n.callout { background: var(--tint); padding: 1.25rem 1.5rem; border-radius: var(--r-card); }\n.section--alt .callout, .cta-band .callout { background: var(--white); }\n.cta-band .callout { margin-top: 1.25rem; }\n\n\/* ---------- Utilities ---------- *\/\n.mt-0 { margin-top: 0 !important; }\n.mb-0 { margin-bottom: 0 !important; }\n.mt-lg { margin-top: clamp(2rem, 4vw, 3.5rem); }\n.stack > * + * { margin-top: 1em; }\n.nowrap { white-space: nowrap; } \/* keeps a hyphenated name together (\"Sky-E\") *\/\n.hide-mobile { display: none; }\n@media (min-width: 768px) { .hide-mobile { display: revert; } .hide-desktop { display: none; } }\n\n@media (prefers-reduced-motion: reduce) {\n  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }\n}\n\n\/* ---------- Page-specific small parts ---------- *\/\n.split__media img.split__badge { max-width: 320px; margin-inline: auto; }\n.danke__img { max-width: 420px; }\n.danke__status { font-weight: 600; position: relative; padding-left: 1.4rem; margin-bottom: 1rem; }\n.danke__status::before { content: \"\"; position: absolute; left: 0; top: 0.5em; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--red); }\n\n\/* ---------- Brand colors (Ilyas, 2026-11-02): red #950900, turquoise #008C95, black ----------\n   Black carries text, buttons and dark bands; turquoise is the visible second brand color.\n   Only large\/bold white text sits on turquoise; small text on it is black. *\/\n.btn, .btn--outline, .btn--light { --btn-dot: var(--teal); --btn-arrow: var(--arrow-white); }\n.stat, .section--alt .stat, .page-hero .stat, .stats--hero .stat { background: var(--teal); }\n.stats--hero .stat__label { font-weight: 600; }\n.stat__value { color: var(--white); }\n.stat__label { color: #000; font-weight: 600; }\n.step__num { background: var(--teal); }\n.timeline > li::before { background: var(--teal); }\n.checklist li::before { background: var(--teal); }\n.footer-cta { background: var(--teal); color: #000; }\n.footer-cta p, .footer-cta strong { color: #000; }\n.footer-cta h2 { color: var(--white); }\n.footer-cta .btn { --btn-bg: #000; --btn-fg: #fff; }\n.footer-cta :focus-visible { outline-color: #000; }\n.ser-site-footer { background: #000; color: #d6d6d6; }\n.ser-site-footer a:not(.btn), .ser-site-footer .footer-label, .ser-site-footer .footer-title { color: #fff; }\n.ser-site-footer a:not(.btn):hover { color: #6fd6dd; }\n.ser-site-footer .social a:hover { background: #222; }\n\n\/* ---------- Feedback Ilyas 2026-11-03 ----------\n   Social links readable on the black footer, partner\/employer logos in their own colours,\n   CTA band in one text colour and centred, white logo in the footer, smaller CTA headlines. *\/\n\/* White footer (Ilyas: \"lieber wei\u00dfer footer\"), black text, normal colour logo *\/\n.ser-site-footer { background: #fff; color: #000; }\n.ser-site-footer a:not(.btn), .ser-site-footer .footer-label, .ser-site-footer .footer-title { color: #000; }\n.ser-site-footer a:not(.btn):hover { color: var(--teal); }\n.footer-bottom { border-top-color: #e3e3e3; }\n.ser-site-footer .social a { background: transparent; color: #000; border: 1px solid #000; }\n.ser-site-footer .social a:hover { background: #000; color: #fff; text-decoration: none; }\n\/* No black blocks in the page body: the former dark sections are white with black text *\/\n.section--dark { background: #fff; color: #000; }\n.section--dark :is(h1, h2, h3, h4, strong, .lead), .section--dark a:not(.btn),\n.section--dark .section__head p, .section--dark .date-list__course, .section--dark .date-list__date { color: #000; }\n.section--dark .checklist li::before { background: var(--teal); }\n.section--dark .card--feature { background: var(--tint); }\n.section--dark :focus-visible { outline-color: var(--red); }\n.section--dark .btn--light { --btn-bg: #000; --btn-fg: #fff; color: #fff; }\n.section--dark .btn--light:hover { --btn-bg: var(--red); color: #fff; }\n.logo-wall img { filter: none; }\n.footer-cta__inner, .footer-cta__inner > div { text-align: center; margin-inline: auto; }\n.footer-cta h2, .footer-cta p, .footer-cta strong { color: #fff; }\n\/* white on turquoise is 4.1:1, so the text is set large (>= 24px) and semibold *\/\n.footer-cta p { font-size: 1.375rem; font-weight: 600; }\n.footer-brand img { width: 110px; }\n.cta-band h2 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem); max-width: 22em; }\n.cert-single { max-width: 28rem; margin-inline: auto; }\n\n\/* Hero with one stat: a white pill row (number + caption) instead of a big circle *\/\n.page-hero .stats--1 .stat {\n  width: auto; height: auto; border-radius: var(--r-pill); background: var(--white);\n  flex-direction: row; gap: 1rem; padding: 0.85rem 1.75rem; text-align: left;\n}\n.page-hero .stats--1 .stat__value { color: var(--teal); font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem); }\n.page-hero .stats--1 .stat__label { color: #000; font-size: 1rem; font-weight: 600; max-width: 17rem; }\n\n\/* Timeline next to a long text column: stays in view while scrolling (desktop) and fills\n   turquoise as the reader moves through the section (ser.js sets --p and .is-done). *\/\n@media (min-width: 900px) {\n  .split--top > div:has(> .timeline) { position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; }\n}\n.timeline::after {\n  content: \"\"; position: absolute; left: 0.45rem; top: 0.5rem; width: 2px;\n  height: calc((100% - 1rem) * var(--p, 1)); background: var(--teal);\n}\n.timeline > li { z-index: 1; }\n.timeline[data-scroll] > li::before { background: var(--tint-deep); transition: background-color 0.2s ease; }\n.timeline[data-scroll] > li.is-done::before { background: var(--teal); }\n\n\/* ==========================================================================\n   Business Education additions (skyered-business-education.de remake).\n   Same design system; only the parts this site needs beyond the education remake.\n   ========================================================================== *\/\n\n\/* Footer for this site: brands, claim, link row, social pills (white, black text, colour logos) *\/\n.site-footer__top { padding-block: clamp(3rem, 5vw, 4.5rem) 0; text-align: center; }\n.footer-brands .footer-title { margin-bottom: 1.25rem; }\n.brand-row { list-style: none; margin: 0 auto 1.25rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 2rem; }\n.brand-row li { max-width: none; }\n.brand-row img { height: 72px; width: auto; }\n.footer-claim { margin: 0 auto 2rem; font-weight: 500; max-width: 40rem; }\n.footer-links { list-style: none; margin: 0 auto 2.25rem; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.75rem; font-weight: 500; }\n.footer-links li { max-width: none; }\n.ser-site-footer .footer-bottom { justify-content: center; text-align: center; flex-direction: column; gap: 1rem; padding-block: 1.5rem 2rem; }\n.ser-site-footer .social { justify-content: center; }\n\n\/* Small label above a heading (text from the live page, shown uppercase) *\/\n.eyebrow { margin: 0 auto 1rem; font: 700 1rem\/1.2 var(--font-display); letter-spacing: 0.08em; text-transform: uppercase; color: var(--red); }\n.section__head .eyebrow, .page-hero .eyebrow { max-width: none; }\n\n\/* Hero with photo on the right (homepage) *\/\n.hero--photo { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5.5rem); }\n.hero--photo h1 { font-size: clamp(2.5rem, 1.5rem + 3.6vw, 4.5rem); max-width: none; margin-bottom: 1.5rem; }\n.hero--photo h1 .tone { margin-top: 0.1em; }\n.hero--photo .hero__lead { margin-bottom: 1.25rem; }\n.hero--photo .checklist { margin-bottom: 1.5rem; }\n.hero--photo .split__media .photo-frame { margin: 0; }\n.hero--photo .photo-frame img { aspect-ratio: 3 \/ 2; }\n.seal-note { display: flex; align-items: center; gap: 1.25rem; margin-top: 1.75rem; padding: 0.75rem 1.25rem 0.75rem 0.75rem; background: var(--white); border-radius: var(--r-card); max-width: 34rem; }\n.seal-note img { width: 5.5rem; height: 5.5rem; flex: none; object-fit: contain; }\n.seal-note p { margin: 0; font-weight: 600; line-height: 1.35; }\n.seal-note__label { display: block; margin-top: 0.2rem; font-size: var(--fs-sm); font-weight: 500; color: var(--muted); }\n\n\/* Case cards (customer results): logo tile, two figures, quote, one-line result *\/\n.cases { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); }\n.case-card {\n  --per: 1; flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) \/ var(--per)); display: flex; flex-direction: column; gap: 1rem;\n  margin: 0; padding: clamp(1.25rem, 2.4vw, 1.75rem); background: var(--tint); border-radius: var(--r-card);\n}\n.section--alt .case-card { background: var(--white); }\n@media (min-width: 720px) { .case-card { --per: 2; } }\n@media (min-width: 1100px) { .case-card { --per: 3; } }\n.case-card__logo { display: grid; place-items: center; height: 5rem; padding: 0.75rem 1rem; background: var(--white); border-radius: 8px; }\n.section--alt .case-card__logo { background: var(--tint-soft); }\n.case-card__logo img { max-height: 3.25rem; max-width: 80%; width: auto; object-fit: contain; }\n.case-card h3 { margin: 0; font-size: 1.625rem; text-transform: uppercase; font-weight: 700; text-align: center; hyphens: manual; -webkit-hyphens: manual; }\n.case-card__branch { margin: -0.5rem auto 0; font-size: var(--fs-sm); font-weight: 500; color: var(--muted); text-align: center; }\n.case-card__figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 0; padding: 0; list-style: none; }\n.case-card__figures li { max-width: none; display: flex; flex-direction: column; gap: 0.2rem; padding: 0.75rem 0.5rem; background: var(--white); border-radius: 8px; text-align: center; }\n.section--alt .case-card__figures li { background: var(--tint-soft); }\n.case-card__figures strong { font: 700 1.75rem\/1 var(--font-display); color: var(--wine); overflow-wrap: anywhere; }\n.case-card__figures span { font-size: var(--fs-sm); line-height: 1.3; font-weight: 500; }\n.case-card blockquote { margin: 0; font-size: 1.0625rem; line-height: 1.45; }\n.case-card cite { display: block; margin-top: 0.5rem; font-style: normal; font-weight: 600; font-size: var(--fs-sm); color: var(--muted); }\n.case-card__result { margin: auto 0 0; padding: 0.55rem 1rem; border-radius: var(--r-pill); background: var(--teal); color: #fff; font: 600 1.125rem\/1.25 var(--font-display); text-align: center; max-width: none; }\n.case-card__result strong { color: #fff; }\n\n\/* Photo with caption (target groups) *\/\n.photo-cards { display: grid; gap: var(--gap); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }\n@media (min-width: 900px) { .photo-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }\n.photo-cards li { max-width: none; margin: 0; display: flex; flex-direction: column; gap: 0.75rem; }\n.photo-cards img { width: 100%; aspect-ratio: 2 \/ 1; object-fit: cover; border: 6px solid var(--white); border-radius: var(--r-card); background: var(--white); }\n.photo-cards p { margin: 0; font: 700 1.25rem\/1.15 var(--font-display); }\n\n\/* Percentage figures (number + sentence) *\/\n.figures { display: grid; gap: var(--gap); margin: 0; padding: 0; list-style: none; }\n@media (min-width: 900px) { .figures { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.figures li { max-width: none; display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; background: var(--white); border-radius: var(--r-card); }\n.section--alt .figures li { background: var(--white); }\n.figures__value { flex: none; font: 700 clamp(3rem, 2.4rem + 2vw, 4.25rem)\/0.9 var(--font-display); letter-spacing: -0.02em; color: var(--teal); white-space: nowrap; }\n.figures p { margin: 0; font-weight: 500; line-height: 1.4; }\n\n\/* Numbered cards, three per row (module pages: Kursinhalte) *\/\n@media (min-width: 1100px) { .steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n.steps--3 .step p { text-align: center; }\n.steps--3 .step__num { font-size: 1.5rem; }\n.steps__title { margin: 0 0 0.5rem; font: 700 1.5rem\/1.1 var(--font-display); text-transform: uppercase; text-align: center; }\n\n\/* Step link in the process cards *\/\n.step .text-link { display: inline-block; margin-top: 0.75rem; }\n\n\/* Funding calculator (QCG page) *\/\n.calc { display: grid; gap: var(--gap); max-width: 56rem; margin-inline: auto; }\n@media (min-width: 800px) { .calc { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }\n.calc__box { background: var(--white); border-radius: var(--r-card); padding: clamp(1.25rem, 3vw, 2rem); border: 0; margin: 0; min-width: 0; }\n.calc__box h3, .calc__box legend { font: 700 1.5rem\/1.1 var(--font-display); margin: 0 0 1rem; padding: 0; }\n.calc__group { border: 0; padding: 0; margin: 0 0 1.5rem; min-width: 0; }\n.calc__group:last-child { margin-bottom: 0; }\n.calc__option { position: relative; display: flex; align-items: center; gap: 0.75rem; padding: 0.8rem 1rem; margin-bottom: 0.5rem; border-radius: 8px; background: var(--tint-soft); cursor: pointer; font-weight: 500; }\n.calc__option:hover { background: var(--tint); }\n.calc__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }\n.calc__option::before { content: \"\"; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 50%; border: 2px solid var(--wine); background: var(--white); }\n.calc__option:has(input:checked) { background: var(--tint); }\n.calc__option:has(input:checked)::before { background: var(--teal); border-color: var(--teal); box-shadow: inset 0 0 0 3px var(--white); }\n.calc__option:has(input:focus-visible) { outline: 3px solid var(--red); outline-offset: 2px; }\n.calc__result { background: var(--tint); border-radius: 8px; padding: 1.25rem; }\n.calc__label { font-size: var(--fs-sm); font-weight: 500; color: var(--muted); margin-bottom: 0.4rem; }\n.calc__value { font: 700 1.5rem\/1.2 var(--font-display); }\n.calc__value.is-set { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); line-height: 1; color: var(--wine); }\n.calc__value.is-empty { font-weight: 500; font-family: var(--font); font-size: 1rem; color: var(--muted); }\n\n\/* Side-by-side text and image rows with several items (steps with photos) *\/\n.rows { display: grid; gap: clamp(3rem, 6vw, 5rem); }\n.rows .split__media img { aspect-ratio: 3 \/ 2; object-fit: cover; }\n\n\/* Brochure panel *\/\n.promo { display: grid; gap: 2rem; align-items: center; padding: clamp(1.75rem, 4vw, 3.5rem); background: var(--tint); border-radius: var(--r-card); }\n@media (min-width: 800px) { .promo { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); } }\n.promo img { width: 100%; max-width: 20rem; margin-inline: auto; border: 6px solid var(--white); border-radius: var(--r-card); }\n.promo h2 { font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem); }\n\n\/* Compare list (Consulting-DNA etc.): label + text rows in cards *\/\n.defs { display: grid; gap: var(--gap); margin: 0; }\n@media (min-width: 800px) { .defs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n.defs > div { background: var(--tint); border-radius: var(--r-card); padding: clamp(1.25rem, 2.4vw, 1.75rem); }\n.section--alt .defs > div { background: var(--white); }\n.defs dt { font: 700 1.5rem\/1.1 var(--font-display); margin-bottom: 0.5rem; }\n.defs dd { margin: 0; }\n\n\/* Badges (awards) *\/\n.badge-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; list-style: none; margin: 2rem 0 0; padding: 0; }\n.badge-row li { max-width: none; }\n.badge-row a { display: flex; align-items: center; justify-content: center; height: 9rem; padding: 0.75rem 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.badge-row img { max-height: 7.5rem; width: auto; max-width: 12rem; object-fit: contain; }\n\n\/* Job rows *\/\n.accordion summary .job-title { flex: 1; }\n.accordion .facts { margin-top: 0.5rem; }\n.accordion__body h3 { font-size: 1.375rem; text-transform: none; margin: 1.5rem 0 0.5rem; }\n.accordion__body h3:first-child { margin-top: 0; }\n.accordion__body p { max-width: 60rem; }\n\n\n\/* Mobile grid columns must be allowed to shrink (long German words in display headings) *\/\n.split { grid-template-columns: minmax(0, 1fr); }\n.split > * { min-width: 0; }\n@media (min-width: 900px) { .split { grid-template-columns: repeat(12, minmax(0, 1fr)); } }\n.footer-brands .footer-title { margin-inline: auto; text-align: center; }\n.footer-brands .footer-claim { margin: 0 auto 2rem; }\n.case-card blockquote { flex: 1; }\n.facts--center { justify-content: center; margin-top: 1.5rem; }\n.page-hero .facts li { background: var(--white); }\n.logo-wall a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }\n.job-tags { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; margin-left: auto; }\n.job-tags span { padding: 0.15rem 0.65rem; border-radius: var(--r-pill); background: var(--white); border: 1px solid var(--tint-deep); font-size: var(--fs-sm); font-weight: 500; }\n.accordion summary:has(.job-tags) { flex-wrap: wrap; }\n.accordion summary::after { margin-left: 0.25rem; }\n.accordion__body .btn { margin-top: 0.5rem; }\n.landing-logo { height: 7.5rem; width: auto; margin: 0 auto 1.5rem; }\n.landing-points { max-width: 46rem; margin: 1.5rem auto 0; }\n.landing-note { margin: 2rem auto 0; text-align: center; font-weight: 500; max-width: none; }\n.card--feature .module-card__label { align-self: center; }\n.grid .card--feature h3 { text-transform: uppercase; font-weight: 700; }\n.page-hero h1.h1--long { font-size: clamp(2.25rem, 1.4rem + 3.4vw, 4rem); max-width: 18em; }\n.container--narrow p, .container--narrow li { max-width: none; }\n.badge-row img { height: 7.5rem; max-height: none; width: auto; max-width: 14rem; }\n.section__head > .lead { max-width: 46rem; margin-inline: auto; }\n.steps__title { margin-bottom: 2.5rem; }\n.defs.mt-lg { margin-top: clamp(2rem, 4vw, 3.5rem); }\n\/* Customer logos: trimmed copies, larger tiles *\/\n.logo-wall--8 { --per: 2; }\n@media (min-width: 640px) { .logo-wall--8 { --per: 3; } }\n@media (min-width: 900px) { .logo-wall--8 { --per: 5; } }\n.logo-wall--8 li { height: 96px; padding: 1rem 1.25rem; }\n.logo-wall--8 img { max-height: 48px; max-width: min(100%, 9.5rem); width: auto; height: auto; }\n\n\/* ==========================================================================\n   Carousel (customer examples), Ilyas 2026-11-03: stays a carousel. CSS scroll-snap does the sliding,\n   js\/ser.js adds the arrows, dots and keyboard-friendly buttons. No autoplay.\n   ========================================================================== *\/\n.section--tint { background: var(--tint); }\n.carousel { position: relative; }\n.carousel__viewport {\n  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;\n  margin-inline: calc(var(--gutter) * -1); padding: 0.5rem var(--gutter) 0.75rem; scroll-padding-inline: var(--gutter);\n}\n.carousel__viewport::-webkit-scrollbar { display: none; }\n.carousel__track { display: flex; gap: var(--gap); list-style: none; margin: 0; padding: 0; }\n.carousel__slide { flex: 0 0 82%; max-width: none; display: flex; scroll-snap-align: start; }\n@media (min-width: 720px) { .carousel__slide { flex-basis: calc((100% - var(--gap)) \/ 2); } }\n@media (min-width: 1100px) { .carousel__slide { flex-basis: calc((100% - 2 * var(--gap)) \/ 3); } }\n.carousel__slide .case-card { flex: 1 1 auto; width: 100%; }\n.carousel__controls { display: flex; align-items: center; justify-content: center; gap: 1.25rem; margin-top: 1.5rem; }\n.carousel__controls[hidden] { display: none; }\n.carousel__btn {\n  position: relative; flex: none; width: 3.5rem; height: 3.5rem; padding: 0; border: 0; border-radius: var(--r-pill);\n  background: var(--wine); cursor: pointer; transition: background-color 0.15s ease-out;\n}\n.carousel__btn::before {\n  content: \"\"; position: absolute; inset: 0.375rem; border-radius: 50%;\n  background: var(--teal) var(--chev, none) center \/ 1.25rem no-repeat;\n}\n.carousel__btn--prev { --chev: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3 5 8l5 5'\/%3E%3C\/svg%3E\"); }\n.carousel__btn--next { --chev: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 3 5 5-5 5'\/%3E%3C\/svg%3E\"); }\n.carousel__btn:hover:not(:disabled) { background: var(--red); }\n.carousel__btn:disabled { opacity: 0.35; cursor: default; }\n.carousel__dots { display: flex; align-items: center; gap: 0.25rem; }\n.carousel__dot { position: relative; width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: none; cursor: pointer; }\n.carousel__dot::before { content: \"\"; position: absolute; left: 50%; top: 50%; width: 0.75rem; height: 0.75rem; border-radius: 50%; background: var(--tint-deep); transform: translate(-50%, -50%); transition: width 0.15s ease-out, background-color 0.15s ease-out; }\n.section--alt .carousel__dot::before { background: #d8bcc1; }\n.carousel__dot[aria-current=\"true\"]::before { width: 1.5rem; border-radius: var(--r-pill); background: var(--teal); }\n\n\/* ==========================================================================\n   Process steps with life (Ablauf, Der Prozess), Ilyas 2026-11-03: white cards, a turquoise line through the\n   number circles (horizontal on desktop, vertical on phones), a line icon per step, a slight lift on hover.\n   ========================================================================== *\/\n.steps--flow { --ring: var(--ground); position: relative; }\n.section--alt .steps--flow { --ring: var(--tint-soft); }\n.section--tint .steps--flow { --ring: var(--tint); }\n.steps--flow .step {\n  display: flex; flex-direction: column; align-items: center; background: var(--white); padding: 2.5rem 1.5rem 1.5rem;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n.steps--flow .step__num { z-index: 2; box-shadow: 0 0 0 6px var(--ring); }\n.steps--flow .step__icon { width: 3.5rem; height: 3.5rem; margin: 0.25rem 0 0.9rem; color: var(--teal); flex: none; }\n.steps--flow .step h3 { text-align: center; }\n.steps--flow .step p { text-align: center; margin-bottom: 0; }\n.steps--flow .step:hover, .steps--flow .step:focus-within { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12); z-index: 2; }\n.steps--flow::before { content: none; }\n@media (min-width: 1100px) {\n  .steps--flow::before {\n    content: \"\"; position: absolute; z-index: 1; top: 1.75rem; height: 3px; transform: translateY(-50%); background: var(--teal);\n    left: calc((100% - 3 * var(--gap)) \/ 8); right: calc((100% - 3 * var(--gap)) \/ 8);\n  }\n}\n@media (max-width: 639px) {\n  .steps--flow::before {\n    content: \"\"; position: absolute; z-index: 0; left: 50%; top: 1.75rem; bottom: 1.5rem; width: 3px; transform: translateX(-50%); background: var(--teal);\n  }\n}\n.arrow-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 1rem; font-weight: 600; color: var(--wine); text-decoration: none; }\n.arrow-link::after {\n  content: \"\"; flex: none; width: 1.75rem; height: 1.75rem; border-radius: 50%;\n  background: var(--teal) var(--arrow-white) center \/ 0.9rem no-repeat; transition: transform 0.15s ease-out;\n}\n.arrow-link:hover { color: var(--red); }\n.arrow-link:hover::after { transform: translateX(3px); }\n.steps--flow .step p + .arrow-link { margin-top: 0.75rem; }\n@media (min-width: 720px) { .carousel__viewport { margin-inline: 0; padding-inline: 0; scroll-padding-inline: 0; } }\n\n\/* Shaped cut-outs (oval \/ blob photos with transparent corners, QCG page): frameless on the section ground,\n   no white box, centred next to the text; a soft shadow gives the shape an edge on white. *\/\n.split__media--cutout { display: flex; justify-content: center; align-items: center; }\n.split__media--cutout img { border: 0; border-radius: 0; background: none; width: auto; max-width: 100%; max-height: 28rem; filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.12)); }\n\n\/* More white (Ilyas 2026-11-03): cards on the white page ground use the soft tint, the full tint stays for heroes and accents *\/\n.card--feature, .checklist--cards li, .case-card, .defs > div, .step, .callout { background: var(--tint-soft); }\n.section--alt .card--feature, .section--alt .checklist--cards li, .section--alt .case-card, .section--alt .defs > div, .section--alt .step, .section--alt .callout, .cta-band .callout { background: var(--white); }\n.steps--flow .step { background: var(--white); }\n.case-card__figures li, .case-card__logo { background: var(--white); }\n.section--alt .case-card__figures li, .section--alt .case-card__logo { background: var(--tint-soft); }\n.grid--2 > :last-child:nth-child(odd) { grid-column: 1 \/ -1; }\n\n\/* ==========================================================================\n   Technology additions (skyeredtechnology.de): header end block, mega-menu groups, language switch, footer newsletter\n   ========================================================================== *\/\n.header-end { display: flex; align-items: center; gap: 0.75rem; justify-self: end; }\n.lang-switch { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--tint); }\n.lang-switch:hover { background: var(--tint-deep); }\n.lang-switch img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }\n.nav__menu--groups { min-width: 340px; max-width: 420px; max-height: calc(100vh - var(--header-h) - 2rem); overflow-y: auto; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12); }\n.nav__group { max-width: none; }\n.nav__group-title { margin: 0.5rem 0 0.15rem; padding: 0.4rem 0.85rem 0; font: 700 0.8125rem\/1.2 var(--font); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal); }\n.nav__group:first-child .nav__group-title { margin-top: 0; }\n.mobile-nav__group { padding: 0.6rem 0.75rem 0.1rem; font: 700 0.8125rem\/1.2 var(--font); letter-spacing: 0.06em; text-transform: uppercase; color: var(--teal); max-width: none; }\n.footer-newsletter { display: flex; justify-content: center; margin-bottom: 1.75rem; }\n\n\/* Generated content blocks *\/\n.media-figure { margin: 0; }\n.media-figure img { width: 100%; height: auto; border-radius: var(--r-card); }\n.hero-figure { margin-top: clamp(1.5rem, 3vw, 2.5rem); max-width: 56rem; }\n.hero-figure + .section { padding-top: clamp(2.5rem, 5vw, 4rem); }\n.card__tile { width: 100%; height: auto; border-radius: var(--r-card); background: var(--white); }\n.card--tile { padding: 0.75rem 0.75rem 1.5rem; }\n.card--tile > :not(.card__tile) { padding-inline: 0.5rem; }\n.card--tile .btn-row { margin-top: auto; padding-top: 1rem; }\n.figures--2 { grid-template-columns: repeat(1, minmax(0, 1fr)); }\n.figures__text { margin: 0; font-weight: 500; line-height: 1.4; }\n.figures__text p { margin: 0; }\n.figures li { flex-wrap: wrap; }\n.figures__value { order: -1; }\n@media (min-width: 900px) {\n  .figures--2, .figures--3 { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }\n  .figures--2 { --cols: 2; }\n  .figures li { flex-direction: column; align-items: flex-start; }\n}\n.post-card { display: flex; flex-direction: column; gap: 0.75rem; background: var(--white); border-radius: var(--r-card); padding: 0.75rem 0.75rem 1.5rem; height: 100%; width: 100%; }\n.post-card img { width: 100%; border-radius: 8px; }\n.post-card > :not(img):not(.media-figure):not(a) { padding-inline: 0.75rem; }\n.post-card p { margin: 0; }\n.carousel__slide .post-card { flex: 1 1 auto; }\n.more { display: block; margin-top: 1rem; }\n.more > summary { list-style: none; cursor: pointer; display: inline-flex; }\n.more > summary::-webkit-details-marker { display: none; }\n.more[open] > summary { background: var(--red); color: var(--white); }\n.more__body { margin-top: 1rem; padding: 1.25rem; background: var(--white); border-radius: var(--r-card); }\n.table-wrap { overflow-x: auto; margin-block: 1.5rem; }\n.data-table { border-collapse: collapse; width: 100%; min-width: 34rem; }\n.data-table th, .data-table td { text-align: left; padding: 0.75rem 1rem; border-bottom: 1px solid var(--tint-deep); vertical-align: top; }\n.data-table thead th { background: var(--tint); font-family: var(--font-display); font-size: 1.125rem; }\n.logo-wall img, .logo-wall--8 img { filter: none; }\n.section__head h2.eyebrow { font: 700 1rem\/1.2 var(--font); letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal); margin-bottom: 0.75rem; }\n.section__head h2.eyebrow + h2 { margin-top: 0; }\n.section > .container > h2 { text-align: center; max-width: 54rem; margin-inline: auto; }\n.section > .container > :is(p, h3, ul.checklist, ol, blockquote) { max-width: 46rem; margin-inline: auto; }\n.section > .container > h3 { margin-top: 1.75em; font-size: var(--fs-h3); }\n.section > .container > .btn-row { justify-content: center; }\n.section > .container > :is(.grid, .figures, .carousel, .accordion, .split, .logo-wall) { margin-top: clamp(1.5rem, 3vw, 2.5rem); }\n.section > .container > .media-figure { max-width: 56rem; margin-inline: auto; margin-block: clamp(1.5rem, 3vw, 2.5rem); }\n.prose h3 { margin-top: 1.75em; font-size: var(--fs-h3); }\n\n\/* Tabs (progressive: all panels visible without script) *\/\n.tabs__list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }\n.tabs__tab { min-height: 44px; padding: 0.5rem 1.1rem; border: 0; border-radius: var(--r-pill); background: var(--tint); color: var(--wine); font: 600 1.0625rem\/1.15 var(--font-display); cursor: pointer; text-align: left; }\n.tabs__tab:hover { background: var(--tint-deep); }\n.tabs__tab[aria-selected=\"true\"] { background: var(--wine); color: var(--white); }\n.tabs.is-js .tabs__panel[hidden] { display: none; }\n.tabs__panel { padding: clamp(1.25rem, 3vw, 2rem); background: var(--tint-soft); border-radius: var(--r-card); }\n.tabs.is-js .tabs__panel + .tabs__panel { margin-top: 0; }\n.tabs:not(.is-js) .tabs__panel + .tabs__panel { margin-top: 1rem; }\n.tabs__panel > :first-child { margin-top: 0; }\n.quote-card--head { display: flex; flex-direction: column; gap: 0.75rem; }\n.quote-card--head figcaption { display: flex; flex-direction: column; gap: 0.15rem; margin: 0; }\n.quote-card--head blockquote { margin: 0; }\n.quote-card__img { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }\n\n\/* Quiz (QSM) *\/\n.quiz { max-width: 46rem; margin-inline: auto; display: grid; gap: 1.25rem; }\n.quiz__q { margin: 0; padding: clamp(1.1rem, 3vw, 1.75rem); border: 0; border-radius: var(--r-card); background: var(--tint-soft); }\n.quiz__q legend { float: left; width: 100%; padding: 0; margin-bottom: 0.9rem; font: 700 1.375rem\/1.2 var(--font-display); }\n.quiz__q legend + * { clear: both; }\n.quiz__a { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.7rem 0.9rem; margin-top: 0.5rem; background: var(--white); border-radius: 8px; cursor: pointer; }\n.quiz__a input { margin-top: 0.3rem; accent-color: var(--teal); width: 1.1rem; height: 1.1rem; flex: none; }\n.quiz__a:has(input:checked) { outline: 2px solid var(--teal); }\n.quiz__submit { cursor: pointer; border: 0; padding-inline: 2rem; }\n\n\/* Job list (Karriere) *\/\n.job { background: var(--tint-soft); border-radius: var(--r-card); margin-bottom: 0.75rem; }\n.job > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; padding: 1.1rem 1.4rem; }\n.job > summary::-webkit-details-marker { display: none; }\n.job__title { font: 700 1.375rem\/1.15 var(--font-display); }\n.job__tags { display: flex; gap: 0.5rem; }\n.job__tags span { padding: 0.25rem 0.8rem; border-radius: var(--r-pill); background: var(--white); font-weight: 600; font-size: 0.9375rem; }\n.job > summary::after { content: \"+\"; font-size: 1.5rem; margin-left: auto; }\n.job[open] > summary::after { content: \"\\2212\"; }\n.job__body { padding: 0 1.4rem 1.4rem; }\n.job__body h3 { font-size: var(--fs-md); }\n.seal-name { text-align: center; font-weight: 600; margin-top: 0.5rem; }\n.section > .container > .media-figure:has(.seal-name) { max-width: 20rem; }\n.section > .container > h2:not(:first-child) { margin-top: clamp(3rem, 6vw, 5rem); }\n.section > .container > .grid > .media-figure:has(.seal-name), .grid > .media-figure:has(.seal-name) { text-align: center; }\n.media-figure:has(.seal-name) img { width: auto; max-height: 11rem; margin-inline: auto; border-radius: 0; }\n.job-intro { text-align: center; }\n.grid > *, .split > *, .figures > li { min-width: 0; }\n.figures__text, .figures__text p { overflow-wrap: anywhere; }\n\n\/* Fatih 2026-11-03: mark the Business Education logo (it looks like Education otherwise) *\/\n.brand-row a { display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-decoration: none; }\n.brand-label { font: 700 0.8125rem\/1 var(--font-display); letter-spacing: 0.04em; text-transform: uppercase; color: #000; }\n\n\/* Fatih 2026-11-03: stronger button dot colour instead of turquoise -> brand red *\/\n.btn, .btn--outline, .btn--light, .btn--sm, .btn--lg { --btn-dot: var(--red); }\n\n<\/style>\n\n<a class=\"skip-link\" href=\"#main\">Zum Inhalt springen<\/a>\n\n<header class=\"ser-site-header\">\n  <div class=\"container site-header__inner\">\n    <a class=\"brand\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\" aria-label=\"Sky-E Red Technology: Start\">\n      <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/cropped-Sky-E-Red-Technology_Logo-original-1.png\" alt=\"Sky-E Red Technology\" width=\"512\" height=\"512\">\n    <\/a>\n    <nav class=\"nav\" aria-label=\"Hauptnavigation\">\n      <ul class=\"nav__list\">\n        <li class=\"nav__item nav__item--has-menu\" data-section=\"services\">\n          <button class=\"nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu-services\">What we do<\/button>\n          <ul class=\"nav__menu nav__menu--groups\" id=\"menu-services\">\n            <li class=\"nav__group\"><p class=\"nav__group-title\">What we do<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-devops\/\">DevOps<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-cloud\/\">Cloud<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-ai-workflow-automation\/\">AI Workflow Automation<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-enterprise-game-solutions\/\">Enterprise Game Solutions<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Specials<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-it-fusion-effekt\/\">Sky-E Red Fusion<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-freelance-outsourcing\/\">Freelancing<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-code-red-academy\/\">Code Red Academy<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-techboost-bundles\/\">TechBoost Bundles<\/a><\/li>\n          <\/ul>\n        <\/li>\n        <li class=\"nav__item nav__item--has-menu\" data-section=\"unternehmen\">\n          <button class=\"nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu-unternehmen\">Who we are<\/button>\n          <ul class=\"nav__menu nav__menu--groups\" id=\"menu-unternehmen\">\n            <li class=\"nav__group\"><p class=\"nav__group-title\">About us<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/webinare\/\">Webinar<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Become part of our community<\/p><\/li>\n            <li><a href=\"https:\/\/de.linkedin.com\/company\/skyered\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n            <li><a href=\"https:\/\/www.instagram.com\/skyeredtechnology\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n            <li><a href=\"https:\/\/www.tiktok.com\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n            <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Career<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere\/\">Career at Sky-E Red<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere-join-as-freelancer\/\">Career as a freelancer<\/a><\/li>\n            <li class=\"nav__group\"><p class=\"nav__group-title\">Projects \u2192<\/p><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Projects \u2192<\/a><\/li>\n            <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a><\/li>\n          <\/ul>\n        <\/li>\n        <li class=\"nav__item\"><a class=\"nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n        <li class=\"nav__item\"><a class=\"nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n      <\/ul>\n    <\/nav>\n    <div class=\"header-end\">\n      <a class=\"btn btn--sm header-cta\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a>\n      <a class=\"lang-switch\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/en\/projekte-techops-fuer-release-optimierung\/\" hreflang=\"en\" lang=\"en\"><img decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-en_US.png\" alt=\"en_US\" width=\"24\" height=\"24\"><span class=\"sr-only\">English<\/span><\/a>\n      <button class=\"burger\" type=\"button\" aria-expanded=\"false\" aria-controls=\"mobile-nav\" aria-label=\"Men\u00fc \u00f6ffnen\"><span><\/span><\/button>\n    <\/div>\n  <\/div>\n  <nav class=\"mobile-nav\" id=\"mobile-nav\" aria-label=\"Mobile Navigation\" hidden>\n    <ul class=\"mobile-nav__list\">\n      <li>\n        <button class=\"mobile-nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"m-services\">What we do<\/button>\n        <ul class=\"mobile-nav__sub\" id=\"m-services\" hidden>\n          <li class=\"mobile-nav__group\">What we do<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-devops\/\">DevOps<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-cloud\/\">Cloud<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-ai-workflow-automation\/\">AI Workflow Automation<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-enterprise-game-solutions\/\">Enterprise Game Solutions<\/a><\/li>\n          <li class=\"mobile-nav__group\">Specials<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-it-fusion-effekt\/\">Sky-E Red Fusion<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-freelance-outsourcing\/\">Freelancing<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-code-red-academy\/\">Code Red Academy<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services-techboost-bundles\/\">TechBoost Bundles<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li>\n        <button class=\"mobile-nav__toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"m-unternehmen\">Who we are<\/button>\n        <ul class=\"mobile-nav__sub\" id=\"m-unternehmen\" hidden>\n          <li class=\"mobile-nav__group\">About us<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/webinare\/\">Webinar<\/a><\/li>\n          <li class=\"mobile-nav__group\">Become part of our community<\/li>\n          <li><a href=\"https:\/\/de.linkedin.com\/company\/skyered\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a><\/li>\n          <li><a href=\"https:\/\/www.instagram.com\/skyeredtechnology\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n          <li><a href=\"https:\/\/www.tiktok.com\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n          <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n          <li class=\"mobile-nav__group\">Career<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere\/\">Career at Sky-E Red<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/karriere-join-as-freelancer\/\">Career as a freelancer<\/a><\/li>\n          <li class=\"mobile-nav__group\">Projects \u2192<\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Projects \u2192<\/a><\/li>\n          <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a><\/li>\n        <\/ul>\n      <\/li>\n      <li><a class=\"mobile-nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n      <li><a class=\"mobile-nav__link\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n    <\/ul>\n    <a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a>\n  <\/nav>\n<\/header>\n\n<main id=\"main\">\n<section class=\"page-hero page-hero--simple\">\n  <div class=\"container\">\n    <h1>Press Play on Releases<\/h1>\n    <p class=\"lead\">Wie TechOps das Release-Management bei Dataport revolutioniert hat.\u00a0<\/p>\n    <div class=\"btn-row\"><a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Start the release revolution<\/a><\/div>\n  <\/div>\n<\/section>\n<div class=\"container hero-figure\"><figure class=\"media-figure\"><img decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-fcweweef.jpg\" alt=\"\"><\/figure><\/div>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Kennzahlen<\/h2><\/div>\n<ul class=\"figures figures--3\"><li><span class=\"figures__value\">\u2191 40 %<\/span><p class=\"figures__text\">Faster provision of software updates thanks to automated CI\/CD pipelines.<\/p><\/li><li><span class=\"figures__value\">\u221225 %<\/span><p class=\"figures__text\">Reduction of operating costs through optimized release processes and the introduction of DevOps methods.<\/p><\/li><li><span class=\"figures__value\">\u2191 35 %<\/span><p class=\"figures__text\">greater system stability and fewer production downtimes thanks to continuous integration and safety checks.<\/p><\/li><\/ul>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>From chaos to code perfection<\/h2><p>The previous release management process at Dataport was characterized by delays, error-proneness and poor team coordination, which led to a longer time-to-market and higher error rates. Our goal was to accelerate this process through automation and the use of modern DevOps methods, increasing efficiency while ensuring quality and compliance. With a CI\/CD-based approach and by using automated workflows, we optimized the entire release cycle. Not only did we maximize speed, but we also achieved seamless integration of compliance requirements to make the process secure and reliable.\u00a0<\/p><\/div>\n<h3>The chaos theory\u00a0<\/h3><p>Der alte Release-Management-Prozess bei Dataport war ein wahres Durcheinander, manuell, fehleranf\u00e4llig und zeitaufw\u00e4ndig. Entwicklerteams mussten sich durch eine Vielzahl an Systemen k\u00e4mpfen, was h\u00e4ufig zu Verz\u00f6gerungen und Missverst\u00e4ndnissen f\u00fchrte. Die Compliance war ein weiterer Knackpunkt: Mit einer Flut an Vorschriften und internen Richtlinien war es ein st\u00e4ndiger Balanceakt, alles korrekt und rechtzeitig umzusetzen. Ohne ein einheitliches Vorgehen wurden Sicherheitsl\u00fccken und Versionierungsfehler zur st\u00e4ndigen Bedrohung, was den gesamten Release-Prozess unn\u00f6tig riskant machte.\u00a0<\/p>\n  <\/div>\n<\/section>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Mythical Excellence or real excellence: or both?<\/h2><p>Unser TechOps Solutions Team katapultierte den Release-Prozess bei Dataport in eine v\u00f6llig neue Dimension. Mit der Einf\u00fchrung von CI\/CD-Pipelines \u00fcber GitLab CI\/CD haben wir den gesamten Ablauf automatisiert, von den Builds bis zu den Deployments. Diese Automatisierung reduzierte manuelle Eingriffe drastisch und brachte den Release-Prozess auf H\u00f6chstgeschwindigkeit. Die Integration von Ansible f\u00fcr Konfigurationen und Deployments sorgte f\u00fcr eine fehlerfreie und konsistente Bereitstellung, sodass das Team sich endlich auf das Wesentliche konzentrieren konnte: Qualit\u00e4t und Innovation.\u00a0<\/p><p>But that was just the beginning. By introducing DevOps practices, we not only optimized collaboration between the development teams and operations, but also revolutionized problem resolution. Automated testing helped us to identify and fix bugs at lightning speed, which greatly increased efficiency and quality. The release process not only became faster, but also much more robust.\u00a0<\/p><p>Um die Sicherheit und Compliance nicht dem Zufall zu \u00fcberlassen, integrierten wir umfassende Sicherheitspr\u00fcfungen und Compliance-Checks direkt in die CI\/CD-Pipelines. So konnte sichergestellt werden, dass jede neue Version den h\u00f6chsten Standards entsprach, noch bevor sie live ging. Und mit LDAP f\u00fcr das Identit\u00e4ts- und Zugriffsmanagement gew\u00e4hrleisteten wir, dass nur autorisierte Personen Zugriff auf sensible Daten hatten, ein weiterer Baustein in der Sicherheitsarchitektur, der den gesamten Prozess auf ein neues Level hob.\u00a0<\/p><\/div>\n<figure class=\"media-figure\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2026\/11\/ser-remake-trexdwccw.jpg\" alt=\"\" width=\"6912\" height=\"3456\"><\/figure>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Myth or truth?<\/h2><p>Kein Mythos, sondern echte Zahlen, denn wir erz\u00e4hlen keine M\u00e4rchen:\u00a0\u00a0<\/p><\/div>\n<ul class=\"figures figures--3\"><li><span class=\"figures__value\">\u221250 %<\/span><div class=\"figures__text\"><p><strong>geringere Fehlerquote<\/strong> in Produktionsumgebungen durch verbesserte Testautomatisierung.<\/p><\/div><\/li><li><span class=\"figures__value\">\u2191 30 %<\/span><div class=\"figures__text\"><p><strong>schnelleres Debugging und schnellere Fehlerbehebung <\/strong>durch den Einsatz von Prometheus und dem ELK Stack f\u00fcr Monitoring und Log-Analyse.<\/p><\/div><\/li><li><span class=\"figures__value\">\u2193 20 %<\/span><div class=\"figures__text\"><p><strong>Reduzierung der Compliance-Kosten <\/strong>durch die Automatisierung von Compliance-Checks im Release-Prozess.\u00a0 <\/p><\/div><\/li><li><span class=\"figures__value\">\u2191 15 %<\/span><div class=\"figures__text\"><p><strong>Steigerung der Entwicklerproduktivit\u00e4t <\/strong>durch weniger manuelle Aufgaben und eine reibungslosere Zusammenarbeit zwischen den Teams.<\/p><\/div><\/li><li><span class=\"figures__value\">\u2191 10 %<\/span><div class=\"figures__text\"><p><strong>better<\/strong><strong> Response time<\/strong> auf Kundenanforderungen und -feedback aufgrund schnellerer Releases.<\/p><\/div><\/li><\/ul>\n  <\/div>\n<\/section>\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section__head\"><h2>Find your Unicorns<\/h2><p>The Dataport project is a perfect example of how DevOps, automation and CI\/CD can really turbo-charge the software release process, not only in large corporations but also in smaller companies. Get inspired on how to catch your own unicorns:\u00a0<\/p><p><strong>Acceleration of the release process through automation<\/strong><br>By using CI\/CD pipelines, companies can significantly accelerate the entire software release process. Manual intervention and unnecessary delays are eliminated as code changes are automatically tested, built and deployed to production environments. The key here is the automation of steps that previously took a lot of time. Building a stable and fast pipeline not only ensures faster delivery of features and bug fixes, but also greater efficiency throughout the software lifecycle. For companies, this means a shorter time-to-market and greater flexibility to react to market requirements.\u00a0<\/p><p><strong>Ensuring quality and compliance in the release process<\/strong><br>Automated testing and integrated compliance checks are crucial to ensure that software versions meet the required quality standards and legal requirements. By integrating these checks directly into the CI\/CD process, each release is automatically checked for security vulnerabilities, performance issues and regulatory requirements. This significantly reduces the risk of errors and security vulnerabilities and ensures that all releases comply with internal guidelines and external regulations. The implementation of such processes enables continuous quality control without additional manual checks, making the release process more secure and reliable.\u00a0<\/p><p><strong>Optimization of cloud resources for cost reduction and efficiency<\/strong><br>Cloud optimization is an area in which many companies are not yet exploiting their full potential. Through precise analysis and management of cloud resources, companies can not only reduce their operating costs, but also improve the performance of their systems. Automated scaling, monitoring of resource consumption and the targeted use of reserved instances are just some of the measures that can help companies to make optimum use of their cloud resources. These optimizations lead to greater cost efficiency and better infrastructure performance without the need for manual intervention.\u00a0<\/p><p><strong>Integration of security solutions to minimize risks<\/strong><br>In an increasingly digital world, security is a critical issue that needs to be considered at every stage of the development and deployment process. The integration of security solutions, such as automated security checks in CI\/CD pipelines, ensures that potential security vulnerabilities are identified and rectified at an early stage. The implementation of Identity and Access Management (IAM) systems and the protection of sensitive data through encryption also help to secure the entire IT infrastructure from external threats. With an end-to-end security strategy that starts in the development phase, companies can drastically reduce the risk of security breaches and keep their systems at a high level of security.<\/p><\/div>\n<div class=\"btn-row\"><a class=\"btn btn--lg\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Ready, Set, Release!<\/a><\/div>\n  <\/div>\n<\/section>\n\n<section class=\"section section--alt\">\n  <div class=\"container\">\n<div class=\"grid grid--2\"><div class=\"card card--feature\"><h2>Our tech kit<\/h2>\n<p>Hinter jedem M\u00e4rchen steckt ein St\u00fcck Wahrheit, bei uns steckt hinter jedem erfolgreichen Projekt ein Tech-Baukasten gef\u00fcllt mit den neuesten, transformativen Tools. Genau so, wie hier:\u00a0<\/p><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Version Wizard<\/h3><p>With Git, all changes to code and projects could be tracked efficiently, enabling fast collaboration and error-free development.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Automation Express<\/h3><p>With GitLab CI\/CD, the entire build, test and deployment process was automated, which accelerated the speed of the release process many times over and eliminated manual sources of error.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Provision Maestro<\/h3><p>Ansible orchestrated configurations and deployments automatically, ensuring a consistent and error-free deployment.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Surveillance hero<\/h3><p>Prometheus monitored all system metrics in real time and provided immediate feedback so that potential problems could be identified early and resolved quickly.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Log fairy tale<\/h3><p>Der ELK Stack sammelte, speicherte und visualisierte Log-Daten, wodurch Fehler und Performance-Probleme schnell nachvollzogen und analysiert werden konnten, und das alles in einem benutzerfreundlichen Dashboard.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Access guard<\/h3><p>With LDAP, identity and access control was managed securely and efficiently so that only authorized persons could access sensitive data and compliance requirements were strictly adhered to.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Data Knight<\/h3><p>As a powerful relational database, PostgreSQL provided the necessary stability and flexibility to reliably store and retrieve large amounts of data without compromising performance.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Developer-artist<\/h3><p>Java made it possible to develop robust and scalable backend systems that were ideal for both small and large-scale applications.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Script magician<\/h3><p>Python was used to write automated processes and develop quick solutions that supported and simplified the entire workflow.<\/p><\/div><\/div><\/div><div class=\"card card--feature\"><div class=\"grid\"><div class=\"card card--feature\"><h3>Web wizard<\/h3><p>JavaScript has helped web development to create interactive and dynamic user interfaces that have improved the user experience and made the application accessible to all.<\/p><\/div><\/div><\/div><\/div>\n  <\/div>\n<\/section>\n<\/main>\n<footer class=\"ser-site-footer\">\n  <div class=\"container site-footer__top\">\n    <div class=\"footer-newsletter\">\n      <a class=\"btn btn--outline\" href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/newsletter\/\">Subscribe to our newsletter<\/a>\n    <\/div>\n    <div class=\"footer-brands\">\n      <p class=\"footer-title\">Our brands<\/p>\n      <ul class=\"brand-row\">\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/cropped-Sky-E-Red-Technology_Logo-original-1.png\" alt=\"Sky-E Red Technology\" width=\"512\" height=\"512\"><\/a><\/li>\n        <li><a href=\"https:\/\/skyeredgames.de\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/Sky-E-Red-GAMES-938x1024.png\" alt=\"Sky-E Red Games\" width=\"938\" height=\"1024\"><\/a><\/li>\n        <li><a href=\"https:\/\/skyered-business-education.de\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/SER_Logo_2-1-2-1635x2048-1-818x1024.webp\" alt=\"Sky-E Red Business Education\" width=\"818\" height=\"1024\"><span class=\"brand-label\">Business<\/span><\/a><\/li>\n        <li><a href=\"https:\/\/skyered-education.de\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/10\/cropped-cropped-Sky-E-Red-Education_Logo_1-1-1002x1024.png\" alt=\"Sky-E Red Education\" width=\"1002\" height=\"1024\"><\/a><\/li>\n      <\/ul>\n      <p class=\"footer-claim\">\u201eSky-E Red: Masters of Cloud and DevOps, Game Innovators, and Certified IT Educators.\u201c<\/p>\n    <\/div>\n    <nav class=\"footer-nav\" aria-label=\"Fu\u00dfnavigation\">\n      <ul class=\"footer-links\">\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/\">Home<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/services\/\">What we do<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/projekte\/\">Success stories<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/ueber-uns\/\">About us<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/blog\/\">Blog<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/impressum\/\">Imprint<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/datenschutz\/\">Data protection<\/a><\/li>\n        <li><a href=\"https:\/\/skyeredtechnology.de\/en\/homepage-test\/kontakt\/\">Contact us<\/a><\/li>\n      <\/ul>\n    <\/nav>\n    <div class=\"footer-bottom\">\n      <p class=\"mb-0\">Copyright \u00a9 2026 Sky-E Red GmbH<\/p>\n      <ul class=\"social\">\n        <li><a href=\"https:\/\/www.instagram.com\/skyerededucation\/\" target=\"_blank\" rel=\"noopener\">Instagram<\/a><\/li>\n        <li><a href=\"https:\/\/www.linkedin.com\/company\/skyered\/\" target=\"_blank\" rel=\"noopener\">Linkedin<\/a><\/li>\n        <li><a href=\"https:\/\/www.tiktok.com\/@skyerededucation\" target=\"_blank\" rel=\"noopener\">TikTok<\/a><\/li>\n        <li><a href=\"https:\/\/www.threads.net\/@skyeredtechnology\" target=\"_blank\" rel=\"noopener\">Threads<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n<\/footer>\n\n\n<script>(function(){var b=atob('LyogU2t5LUUgUmVkIEVkdWNhdGlvbiDigJQgc2l0ZSBiZWhhdmlvdXIgKG5vIGRlcGVuZGVuY2llcykuCiAgIDEuIERlc2t0b3AgZHJvcGRvd25zOiBjbGljay9FbnRlci9TcGFjZSB0b2dnbGUsIGhvdmVyIG9wZW5zIG9uIHBvaW50ZXIgZGV2aWNlcywKICAgICAgRXNjYXBlIGNsb3NlcyBhbmQgcmV0dXJucyBmb2N1cywgQXJyb3dEb3duIG1vdmVzIGludG8gdGhlIG1lbnUsIG91dHNpZGUgY2xpY2sgY2xvc2VzLgogICAyLiBNb2JpbGUgZHJhd2VyOiBidXJnZXIgdG9nZ2xlcywgc3VibWVudXMgYXJlIGRpc2Nsb3N1cmUgYnV0dG9ucywgRXNjYXBlIGNsb3Nlcy4KICAgQWNjb3JkaW9ucyB1c2UgbmF0aXZlIDxkZXRhaWxzPiwgYW5kIHRoZSBvbmUgbW90aW9uIGdlc3R1cmUgKGhlcm8gY291cnNlLXNoZWV0IHJvd3MpCiAgIGlzIHB1cmUgQ1NTLCBzbyBuZWl0aGVyIG5lZWRzIHNjcmlwdC4gKi8KKGZ1bmN0aW9uICgpIHsKICAidXNlIHN0cmljdCI7CgogIHZhciBkZXNrdG9wSXRlbXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubmF2X19pdGVtLS1oYXMtbWVudSIpKTsKICB2YXIgY2FuSG92ZXIgPSB3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgiKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSIpLm1hdGNoZXM7CgogIGZ1bmN0aW9uIHNldE9wZW4oaXRlbSwgb3BlbikgewogICAgdmFyIHRvZ2dsZSA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiLm5hdl9fdG9nZ2xlIik7CiAgICBpdGVtLmNsYXNzTGlzdC50b2dnbGUoImlzLW9wZW4iLCBvcGVuKTsKICAgIGlmICh0b2dnbGUpIHRvZ2dsZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCBvcGVuID8gInRydWUiIDogImZhbHNlIik7CiAgfQoKICBmdW5jdGlvbiBjbG9zZUFsbChleGNlcHQpIHsKICAgIGRlc2t0b3BJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgIGlmIChpdGVtICE9PSBleGNlcHQpIHNldE9wZW4oaXRlbSwgZmFsc2UpOwogICAgfSk7CiAgfQoKICBkZXNrdG9wSXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgdmFyIHRvZ2dsZSA9IGl0ZW0ucXVlcnlTZWxlY3RvcigiLm5hdl9fdG9nZ2xlIik7CiAgICB2YXIgbGlua3MgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChpdGVtLnF1ZXJ5U2VsZWN0b3JBbGwoIi5uYXZfX21lbnUgYSIpKTsgfTsKICAgIGlmICghdG9nZ2xlKSByZXR1cm47CgogICAgdmFyIG9wZW5lZEJ5SG92ZXIgPSBmYWxzZTsKCiAgICB0b2dnbGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIEEgcG9pbnRlciB0aGF0IGhvdmVyZWQgdGhlIGl0ZW0gYWxyZWFkeSBvcGVuZWQgaXQ7IHRoZSBjbGljayBtdXN0IG5vdCBjbG9zZSBpdCBhZ2Fpbi4KICAgICAgdmFyIG9wZW4gPSBvcGVuZWRCeUhvdmVyID8gdHJ1ZSA6ICFpdGVtLmNsYXNzTGlzdC5jb250YWlucygiaXMtb3BlbiIpOwogICAgICBvcGVuZWRCeUhvdmVyID0gZmFsc2U7CiAgICAgIGNsb3NlQWxsKGl0ZW0pOwogICAgICBzZXRPcGVuKGl0ZW0sIG9wZW4pOwogICAgfSk7CgogICAgdG9nZ2xlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoZS5rZXkgPT09ICJBcnJvd0Rvd24iKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGNsb3NlQWxsKGl0ZW0pOwogICAgICAgIHNldE9wZW4oaXRlbSwgdHJ1ZSk7CiAgICAgICAgdmFyIGZpcnN0ID0gbGlua3MoKVswXTsKICAgICAgICBpZiAoZmlyc3QpIGZpcnN0LmZvY3VzKCk7CiAgICAgIH0KICAgIH0pOwoKICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIHZhciBsaXN0ID0gbGlua3MoKTsKICAgICAgdmFyIGlkeCA9IGxpc3QuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTsKICAgICAgaWYgKGUudGFyZ2V0ID09PSB0b2dnbGUgJiYgZS5rZXkgIT09ICJFc2NhcGUiKSByZXR1cm47IC8vIHRvZ2dsZSBoYXMgaXRzIG93biBoYW5kbGVyCiAgICAgIGlmIChlLmtleSA9PT0gIkVzY2FwZSIpIHsKICAgICAgICBzZXRPcGVuKGl0ZW0sIGZhbHNlKTsKICAgICAgICB0b2dnbGUuZm9jdXMoKTsKICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gIkFycm93RG93biIgJiYgaWR4ID4gLTEpIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgbGlzdFsoaWR4ICsgMSkgJSBsaXN0Lmxlbmd0aF0uZm9jdXMoKTsKICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gIkFycm93VXAiICYmIGlkeCA+IC0xKSB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgIGlmIChpZHggPT09IDApIHRvZ2dsZS5mb2N1cygpOyBlbHNlIGxpc3RbaWR4IC0gMV0uZm9jdXMoKTsKICAgICAgfQogICAgfSk7CgogICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGlmICghaXRlbS5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKSBzZXRPcGVuKGl0ZW0sIGZhbHNlKTsKICAgIH0pOwoKICAgIGlmIChjYW5Ib3ZlcikgewogICAgICB2YXIgdGltZXIgPSBudWxsOwogICAgICBpdGVtLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKICAgICAgICBvcGVuZWRCeUhvdmVyID0gIWl0ZW0uY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1vcGVuIik7CiAgICAgICAgY2xvc2VBbGwoaXRlbSk7CiAgICAgICAgc2V0T3BlbihpdGVtLCB0cnVlKTsKICAgICAgfSk7CiAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgICBvcGVuZWRCeUhvdmVyID0gZmFsc2U7CiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgc2V0T3BlbihpdGVtLCBmYWxzZSk7IH0sIDE2MCk7CiAgICAgIH0pOwogICAgfQogIH0pOwoKICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uIChlKSB7CiAgICBpZiAoIWUudGFyZ2V0LmNsb3Nlc3QoIi5uYXZfX2l0ZW0tLWhhcy1tZW51IikpIGNsb3NlQWxsKG51bGwpOwogIH0pOwoKICAvKiBNb2JpbGUgZHJhd2VyICovCiAgdmFyIGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5idXJnZXIiKTsKICB2YXIgZHJhd2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vYmlsZS1uYXYiKTsKCiAgZnVuY3Rpb24gc2V0RHJhd2VyKG9wZW4pIHsKICAgIGlmICghYnVyZ2VyIHx8ICFkcmF3ZXIpIHJldHVybjsKICAgIGJ1cmdlci5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCBvcGVuID8gInRydWUiIDogImZhbHNlIik7CiAgICBidXJnZXIuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwgb3BlbiA\/ICJNZW7DvCBzY2hsaWXDn2VuIiA6ICJNZW7DvCDDtmZmbmVuIik7CiAgICBkcmF3ZXIuaGlkZGVuID0gIW9wZW47CiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoIm5hdi1vcGVuIiwgb3Blbik7CiAgfQoKICBpZiAoYnVyZ2VyICYmIGRyYXdlcikgewogICAgYnVyZ2VyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgewogICAgICBzZXREcmF3ZXIoYnVyZ2VyLmdldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIpICE9PSAidHJ1ZSIpOwogICAgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgaWYgKGUua2V5ID09PSAiRXNjYXBlIiAmJiAhZHJhd2VyLmhpZGRlbikgewogICAgICAgIHNldERyYXdlcihmYWxzZSk7CiAgICAgICAgYnVyZ2VyLmZvY3VzKCk7CiAgICAgIH0KICAgIH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID49IDExODAgJiYgIWRyYXdlci5oaWRkZW4pIHNldERyYXdlcihmYWxzZSk7CiAgICB9KTsKICB9CgogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vYmlsZS1uYXZfX3RvZ2dsZSIpLCBmdW5jdGlvbiAoYnRuKSB7CiAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBzdWIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidG4uZ2V0QXR0cmlidXRlKCJhcmlhLWNvbnRyb2xzIikpOwogICAgICB2YXIgb3BlbiA9IGJ0bi5nZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiKSAhPT0gInRydWUiOwogICAgICBidG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwgb3BlbiA\/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgICBpZiAoc3ViKSBzdWIuaGlkZGVuID0gIW9wZW47CiAgICB9KTsKICB9KTsKCiAgLy8gVGltZWxpbmUgcHJvZ3Jlc3M6IHRoZSBsaW5lIGZpbGxzIGFuZCB0aGUgZG90cyB0dXJuIHR1cnF1b2lzZSBhcyB0aGUgc2VjdGlvbiBzY3JvbGxzIGJ5LgogIHZhciB0aW1lbGluZXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudGltZWxpbmUiKSk7CiAgaWYgKHRpbWVsaW5lcy5sZW5ndGgpIHsKICAgIHZhciB1cGRhdGUgPSBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciBtaWQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjY7CiAgICAgIHRpbWVsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uICh0bCkgewogICAgICAgIHZhciBib3ggPSAodGwuY2xvc2VzdCgic2VjdGlvbiIpIHx8IHRsKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICB2YXIgcCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIChtaWQgLSBib3gudG9wKSAvIE1hdGgubWF4KDEsIGJveC5oZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjMpKSk7CiAgICAgICAgdGwuc3R5bGUuc2V0UHJvcGVydHkoIi0tcCIsIHAudG9GaXhlZCgzKSk7CiAgICAgICAgdmFyIGl0ZW1zID0gdGwuY2hpbGRyZW47CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaXRlbXNbaV0uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtZG9uZSIsIHAgPj0gaSAvIE1hdGgubWF4KDEsIGl0ZW1zLmxlbmd0aCAtIDEpIC0gMC4wMDEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9OwogICAgdGltZWxpbmVzLmZvckVhY2goZnVuY3Rpb24gKHRsKSB7IHRsLnNldEF0dHJpYnV0ZSgiZGF0YS1zY3JvbGwiLCAiIik7IH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHVwZGF0ZSwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHVwZGF0ZSk7CiAgICB1cGRhdGUoKTsKICB9CgogIC8vIEZ1bmRpbmcgY2FsY3VsYXRvciAoUUNHIHBhZ2UpOiBtb250aGx5IGZ1bmRpbmcgcGVyIGVtcGxveWVlIGZyb20gY29tcGFueSBzaXplIGFuZCBncm9zcyBzYWxhcnkuCiAgLy8gVmFsdWVzIGFyZSB0aGUgb25lcyBpbiB0aGUgbGl2ZSBwYWdlJ3Mgc2NyaXB0IChrZXlzOiBzaXplX3NhbGFyeSkuCiAgdmFyIGNhbGMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1jYWxjXSIpOwogIGlmIChjYWxjKSB7CiAgICB2YXIgdGFibGUgPSB7IHNtYWxsXzQwOiAzMDAwLCBzbWFsbF81MDogMzc1MCwgc21hbGxfNjA6IDQ2NTAsIGJpZ180MDogMjAwMCwgYmlnXzUwOiAyNTAwLCBiaWdfNjA6IDMxMDAgfTsKICAgIHZhciBvdXQgPSBjYWxjLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWNhbGMtb3V0XSIpOwogICAgdmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIHNpemUgPSBjYWxjLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9Im1pdGFyYmVpdGVyIl06Y2hlY2tlZCcpOwogICAgICB2YXIgcGF5ID0gY2FsYy5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJnZWhhbHQiXTpjaGVja2VkJyk7CiAgICAgIGlmICghc2l6ZSB8fCAhcGF5KSB7CiAgICAgICAgb3V0LnRleHRDb250ZW50ID0gIkJpdHRlIHRyZWZmZW4gU2llIGVpbmUgQXVzd2FobC4iOwogICAgICAgIG91dC5jbGFzc05hbWUgPSAiY2FsY19fdmFsdWUgaXMtZW1wdHkiOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgYW1vdW50ID0gdGFibGVbc2l6ZS52YWx1ZSArICJfIiArIHBheS52YWx1ZV07CiAgICAgIG91dC50ZXh0Q29udGVudCA9IGFtb3VudC50b0xvY2FsZVN0cmluZygiZGUtREUiLCB7IHN0eWxlOiAiY3VycmVuY3kiLCBjdXJyZW5jeTogIkVVUiIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KTsKICAgICAgb3V0LmNsYXNzTmFtZSA9ICJjYWxjX192YWx1ZSBpcy1zZXQiOwogICAgfTsKICAgIGNhbGMuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgcmVuZGVyKTsKICB9CgogIC8vIENhcm91c2VsIChjdXN0b21lciBleGFtcGxlcyksIGluZmluaXRlIGluIGJvdGggZGlyZWN0aW9uczogdGhlIHNsaWRlcyBhcmUgY2xvbmVkIGJlZm9yZSBhbmQgYWZ0ZXIgKGNsb25lcyBhcmUKICAvLyBhcmlhLWhpZGRlbiBhbmQgaW5lcnQpLCBwcmV2L25leHQvc3dpcGUvYXJyb3cga2V5cyBrZWVwIHNjcm9sbGluZywgYW5kIG9uY2Ugc2Nyb2xsaW5nIGhhcyBzZXR0bGVkIHRoZSB0cmFjayBqdW1wcwogIC8vIGJ5IGV4YWN0bHkgb25lIHNldCBvZiBzbGlkZXMsIHdoaWNoIGxvb2tzIGlkZW50aWNhbCwgc28gbm9ib2R5IHNlZXMgdGhlIHdyYXAuIENTUyBzY3JvbGwtc25hcCBkb2VzIHRoZSBzbGlkaW5nLgogIC8vIE5vIGF1dG9wbGF5LiBTbW9vdGggc2Nyb2xsaW5nIG9ubHkgd2hlbiB0aGUgdmlzaXRvciBoYXMgbm90IGFza2VkIGZvciByZWR1Y2VkIG1vdGlvbi4KICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNhcm91c2VsXSIpLCBmdW5jdGlvbiAocm9vdCkgewogICAgdmFyIHZwID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX3ZpZXdwb3J0Iik7CiAgICB2YXIgdHJhY2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5jYXJvdXNlbF9fdHJhY2siKTsKICAgIHZhciByZWFsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIuY2Fyb3VzZWxfX3NsaWRlIikpOwogICAgdmFyIGNvbnRyb2xzID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX2NvbnRyb2xzIik7CiAgICB2YXIgcHJldiA9IHJvb3QucXVlcnlTZWxlY3RvcigiLmNhcm91c2VsX19idG4tLXByZXYiKTsKICAgIHZhciBuZXh0ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCIuY2Fyb3VzZWxfX2J0bi0tbmV4dCIpOwogICAgdmFyIGRvdHNCb3ggPSByb290LnF1ZXJ5U2VsZWN0b3IoIi5jYXJvdXNlbF9fZG90cyIpOwogICAgdmFyIG4gPSByZWFsLmxlbmd0aDsKICAgIGlmICghdnAgfHwgIXRyYWNrIHx8IG4gPCAyIHx8ICFjb250cm9scykgcmV0dXJuOwogICAgdmFyIHJlZHVjZSA9IHdpbmRvdy5tYXRjaE1lZGlhICYmIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7CgogICAgZnVuY3Rpb24gY2xvbmUoc2xpZGUpIHsKICAgICAgdmFyIGMgPSBzbGlkZS5jbG9uZU5vZGUodHJ1ZSk7CiAgICAgIGMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsICJ0cnVlIik7CiAgICAgIGMuc2V0QXR0cmlidXRlKCJpbmVydCIsICIiKTsKICAgICAgYy5yZW1vdmVBdHRyaWJ1dGUoInJvbGUiKTsKICAgICAgYy5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtcm9sZWRlc2NyaXB0aW9uIik7CiAgICAgIGMucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWxhYmVsIik7CiAgICAgIHJldHVybiBjOwogICAgfQogICAgdmFyIGJlZm9yZSA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIHZhciBhZnRlciA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKICAgIHJlYWwuZm9yRWFjaChmdW5jdGlvbiAoc2wpIHsgYmVmb3JlLmFwcGVuZENoaWxkKGNsb25lKHNsKSk7IGFmdGVyLmFwcGVuZENoaWxkKGNsb25lKHNsKSk7IH0pOwogICAgdHJhY2suaW5zZXJ0QmVmb3JlKGJlZm9yZSwgdHJhY2suZmlyc3RDaGlsZCk7CiAgICB0cmFjay5hcHBlbmRDaGlsZChhZnRlcik7CiAgICB2YXIgYWxsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodHJhY2suY2hpbGRyZW4pOyAvLyAzIHNldHM6IFtjbG9uZXNdW3JlYWxdW2Nsb25lc10KCiAgICB2YXIgZG90cyA9IHJlYWwubWFwKGZ1bmN0aW9uIChfLCBpKSB7CiAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICAgIGIudHlwZSA9ICJidXR0b24iOwogICAgICBiLmNsYXNzTmFtZSA9ICJjYXJvdXNlbF9fZG90IjsKICAgICAgYi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCAocm9vdC5nZXRBdHRyaWJ1dGUoImRhdGEtbGFiZWwtc2xpZGUiKSB8fCAiSXRlbSIpICsgIiAiICsgKGkgKyAxKSArICIgIiArIChyb290LmdldEF0dHJpYnV0ZSgiZGF0YS1sYWJlbC1vZiIpIHx8ICIvIikgKyAiICIgKyBuKTsKICAgICAgYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsgZ28obiArIGkpOyB9KTsKICAgICAgZG90c0JveC5hcHBlbmRDaGlsZChiKTsKICAgICAgcmV0dXJuIGI7CiAgICB9KTsKICAgIHZhciBwYWRMZWZ0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHZwKS5wYWRkaW5nTGVmdCkgfHwgMDsgfTsKICAgIHZhciB0YXJnZXQgPSBmdW5jdGlvbiAoaSkgeyByZXR1cm4gdnAuc2Nyb2xsTGVmdCArIGFsbFtpXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gdnAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIHBhZExlZnQoKTsgfTsKICAgIGZ1bmN0aW9uIGdvKGkpIHsKICAgICAgaSA9IE1hdGgubWF4KDAsIE1hdGgubWluKGFsbC5sZW5ndGggLSAxLCBpKSk7CiAgICAgIHZwLnNjcm9sbFRvKHsgbGVmdDogdGFyZ2V0KGkpLCBiZWhhdmlvcjogcmVkdWNlID8gImF1dG8iIDogInNtb290aCIgfSk7CiAgICB9CiAgICBmdW5jdGlvbiBuZWFyZXN0KCkgewogICAgICB2YXIgYmVzdCA9IG4sIGRpc3QgPSBJbmZpbml0eTsKICAgICAgYWxsLmZvckVhY2goZnVuY3Rpb24gKF8sIGkpIHsKICAgICAgICB2YXIgZCA9IE1hdGguYWJzKHRhcmdldChpKSAtIHZwLnNjcm9sbExlZnQpOwogICAgICAgIGlmIChkIDwgZGlzdCkgeyBkaXN0ID0gZDsgYmVzdCA9IGk7IH0KICAgICAgfSk7CiAgICAgIHJldHVybiBiZXN0OwogICAgfQogICAgZnVuY3Rpb24gc2V0RG90cygpIHsKICAgICAgdmFyIGEgPSBuZWFyZXN0KCkgJSBuOwogICAgICBkb3RzLmZvckVhY2goZnVuY3Rpb24gKGQsIGkpIHsKICAgICAgICBpZiAoaSA9PT0gYSkgZC5zZXRBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIsICJ0cnVlIik7IGVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIpOwogICAgICB9KTsKICAgIH0KICAgIHZhciBwcmVzc2VkID0gZmFsc2UsIHRpbWVyID0gbnVsbDsKICAgIGZ1bmN0aW9uIHNldHRsZSgpIHsKICAgICAgdGltZXIgPSBudWxsOwogICAgICBpZiAocHJlc3NlZCkgcmV0dXJuOwogICAgICB2YXIgaSA9IG5lYXJlc3QoKTsKICAgICAgaWYgKGkgPCBuIHx8IGkgPj0gMiAqIG4pIHsKICAgICAgICB2YXIgc2V0ID0gdGFyZ2V0KG4pIC0gdGFyZ2V0KDApOyAvLyB3aWR0aCBvZiBvbmUgc2V0IG9mIHNsaWRlcyBpbmNsdWRpbmcgZ2FwcwogICAgICAgIHZwLnNjcm9sbExlZnQgKz0gaSA8IG4gPyBzZXQgOiAtc2V0OyAvLyBpbnN0YW50IGp1bXAgdG8gdGhlIGlkZW50aWNhbCBwb3NpdGlvbiBpbiB0aGUgbWlkZGxlIHNldAogICAgICB9CiAgICAgIHNldERvdHMoKTsKICAgIH0KICAgIGZ1bmN0aW9uIG9uU2Nyb2xsKCkgewogICAgICBzZXREb3RzKCk7CiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICAgIHRpbWVyID0gc2V0VGltZW91dChzZXR0bGUsIDEyMCk7CiAgICB9CiAgICBwcmV2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBnbyhuZWFyZXN0KCkgLSAxKTsgfSk7CiAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBnbyhuZWFyZXN0KCkgKyAxKTsgfSk7CiAgICB2cC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCBvblNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgdnAuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLCBmdW5jdGlvbiAoKSB7IHByZXNzZWQgPSB0cnVlOyB9KTsKICAgIFsicG9pbnRlcnVwIiwgInBvaW50ZXJjYW5jZWwiLCAicG9pbnRlcmxlYXZlIl0uZm9yRWFjaChmdW5jdGlvbiAoZXYpIHsKICAgICAgdnAuYWRkRXZlbnRMaXN0ZW5lcihldiwgZnVuY3Rpb24gKCkgeyBpZiAocHJlc3NlZCkgeyBwcmVzc2VkID0gZmFsc2U7IGNsZWFyVGltZW91dCh0aW1lcik7IHRpbWVyID0gc2V0VGltZW91dChzZXR0bGUsIDEyMCk7IH0gfSk7CiAgICB9KTsKICAgIHZwLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBmdW5jdGlvbiAoKSB7IHByZXNzZWQgPSB0cnVlOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICB2cC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIGZ1bmN0aW9uICgpIHsgcHJlc3NlZCA9IGZhbHNlOyBjbGVhclRpbWVvdXQodGltZXIpOyB0aW1lciA9IHNldFRpbWVvdXQoc2V0dGxlLCAxMjApOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgeyB2YXIgaSA9IG5lYXJlc3QoKSAlIG47IHZwLnNjcm9sbExlZnQgPSB0YXJnZXQobiArIGkpOyBzZXREb3RzKCk7IH0pOwogICAgdnAuc2V0QXR0cmlidXRlKCJyb2xlIiwgImdyb3VwIik7CiAgICB2cC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCByb290LmdldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpICsgKHJvb3QuZ2V0QXR0cmlidXRlKCJkYXRhLWxhYmVsLWtleXMiKSB8fCAiIikpOwogICAgY29udHJvbHMuaGlkZGVuID0gZmFsc2U7CiAgICB2cC5zY3JvbGxMZWZ0ID0gdGFyZ2V0KG4pOyAvLyBzdGFydCBvbiB0aGUgZmlyc3QgcmVhbCBzbGlkZQogICAgc2V0RG90cygpOwogIH0pOwp9KSgpOwoKLyogVGFiczogb25lIHZpc2libGUgcGFuZWwsIGFycm93IGtleXMgbW92ZSBiZXR3ZWVuIHRhYnMuIFdpdGhvdXQgdGhpcyBzY3JpcHQgYWxsIHBhbmVscyBzdGF5IHZpc2libGUuICovCihmdW5jdGlvbiAoKSB7CiAgInVzZSBzdHJpY3QiOwogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtdGFic10iKSwgZnVuY3Rpb24gKHJvb3QpIHsKICAgIHZhciB0YWJzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCIudGFic19fdGFiIikpOwogICAgdmFyIHBhbmVscyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJvb3QucXVlcnlTZWxlY3RvckFsbCgiLnRhYnNfX3BhbmVsIikpOwogICAgaWYgKHRhYnMubGVuZ3RoIDwgMiB8fCB0YWJzLmxlbmd0aCAhPT0gcGFuZWxzLmxlbmd0aCkgcmV0dXJuOwogICAgcm9vdC5jbGFzc0xpc3QuYWRkKCJpcy1qcyIpOwogICAgZnVuY3Rpb24gc2hvdyhpLCBmb2N1cykgewogICAgICB0YWJzLmZvckVhY2goZnVuY3Rpb24gKHQsIGopIHsKICAgICAgICB0LnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsIGogPT09IGkgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKICAgICAgICB0LnRhYkluZGV4ID0gaiA9PT0gaSA\/IDAgOiAtMTsKICAgICAgICBwYW5lbHNbal0uaGlkZGVuID0gaiAhPT0gaTsKICAgICAgfSk7CiAgICAgIGlmIChmb2N1cykgdGFic1tpXS5mb2N1cygpOwogICAgfQogICAgdGFicy5mb3JFYWNoKGZ1bmN0aW9uICh0LCBpKSB7CiAgICAgIHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoKSB7IHNob3coaSwgZmFsc2UpOyB9KTsKICAgICAgdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgICB2YXIgayA9IGUua2V5LCBuID0gdGFicy5sZW5ndGg7CiAgICAgICAgaWYgKGsgPT09ICJBcnJvd1JpZ2h0IiB8fCBrID09PSAiQXJyb3dEb3duIikgeyBlLnByZXZlbnREZWZhdWx0KCk7IHNob3coKGkgKyAxKSAlIG4sIHRydWUpOyB9CiAgICAgICAgZWxzZSBpZiAoayA9PT0gIkFycm93TGVmdCIgfHwgayA9PT0gIkFycm93VXAiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdygoaSArIG4gLSAxKSAlIG4sIHRydWUpOyB9CiAgICAgICAgZWxzZSBpZiAoayA9PT0gIkhvbWUiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdygwLCB0cnVlKTsgfQogICAgICAgIGVsc2UgaWYgKGsgPT09ICJFbmQiKSB7IGUucHJldmVudERlZmF1bHQoKTsgc2hvdyhuIC0gMSwgdHJ1ZSk7IH0KICAgICAgfSk7CiAgICB9KTsKICAgIHNob3coMCwgZmFsc2UpOwogIH0pOwp9KSgpOwo='),u=new Uint8Array(b.length);for(var i=0;i<b.length;i++)u[i]=b.charCodeAt(i);new Function(new TextDecoder('utf-8').decode(u))();})();<\/script>","protected":false},"excerpt":{"rendered":"<p>Zum Inhalt springen Services Services DevOps Cloud AI Workflow Automation Enterprise Game Solutions Specials Sky-E Red Fusion Freelancing Code Red Academy TechBoost Bundles Unternehmen \u00dcber Uns \u00dcber Uns Services Blog Webinar Werde Teil unserer Community LinkedIn Instagram TikTok Threads Karriere Karriere bei Sky-E Red Karriere als Freelancer Projekte \u2192 Projekte \u2192 Newsletter abonnieren Blog Projekte [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":14379,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"content-type":"","footnotes":""},"class_list":["post-14630","page","type-page","status-publish","hentry"],"rankMath":{"parentDomain":"skyeredtechnology.de","noFollowDomains":[],"noFollowExcludeDomains":[],"noFollowExternalLinks":false,"featuredImageNotice":"The featured image should be at least 200 by 200 pixels to be picked up by Facebook and other social media sites.","pluginReviewed":false,"postSettings":{"linkSuggestions":true,"useFocusKeyword":false},"frontEndScore":false,"postName":"projekte-techops-fuer-release-optimierung","permalinkFormat":"https:\/\/skyeredtechnology.de\/en\/%pagename%\/","showLockModifiedDate":true,"assessor":{"focusKeywordLink":"https:\/\/skyeredtechnology.de\/wp-admin\/edit.php?focus_keyword=%focus_keyword%&post_type=%post_type%","hasTOCPlugin":true,"primaryTaxonomy":false,"serpData":{"title":"","description":"","focusKeywords":"","pillarContent":false,"canonicalUrl":"","breadcrumbTitle":"","advancedRobots":[],"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":"","facebookHasOverlay":false,"facebookImageOverlay":"","facebookAuthor":"","twitterCardType":"","twitterUseFacebook":true,"twitterTitle":"","twitterDescription":"","twitterImage":"","twitterImageID":"","twitterHasOverlay":false,"twitterImageOverlay":"","twitterPlayerUrl":"","twitterPlayerSize":"","twitterPlayerStream":"","twitterPlayerStreamCtype":"","twitterAppDescription":"","twitterAppIphoneName":"","twitterAppIphoneID":"","twitterAppIphoneUrl":"","twitterAppIpadName":"","twitterAppIpadID":"","twitterAppIpadUrl":"","twitterAppGoogleplayName":"","twitterAppGoogleplayID":"","twitterAppGoogleplayUrl":"","twitterAppCountry":"","robots":{"noindex":true,"nofollow":true},"twitterAuthor":"username","primaryTerm":0,"authorName":"skyeredtechnology.de","titleTemplate":"%title% %page% %sep% %sitename%","descriptionTemplate":"","showScoreFrontend":true,"lockModifiedDate":false},"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":{"A":"[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]","AA":"[\\uA732]","AE":"[\\u00C6\\u01FC\\u01E2]","AO":"[\\uA734]","AU":"[\\uA736]","AV":"[\\uA738\\uA73A]","AY":"[\\uA73C]","B":"[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]","C":"[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]","D":"[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]","DZ":"[\\u01F1\\u01C4]","Dz":"[\\u01F2\\u01C5]","E":"[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]","F":"[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]","G":"[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]","H":"[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]","I":"[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]","J":"[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]","K":"[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]","L":"[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]","LJ":"[\\u01C7]","Lj":"[\\u01C8]","M":"[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]","N":"[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]","NJ":"[\\u01CA]","Nj":"[\\u01CB]","O":"[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]","OI":"[\\u01A2]","OO":"[\\uA74E]","OU":"[\\u0222]","P":"[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]","Q":"[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]","R":"[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]","S":"[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]","T":"[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]","TZ":"[\\uA728]","U":"[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]","V":"[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]","VY":"[\\uA760]","W":"[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]","X":"[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]","Y":"[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]","Z":"[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]","a":"[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]","aa":"[\\uA733]","ae":"[\\u00E6\\u01FD\\u01E3]","ao":"[\\uA735]","au":"[\\uA737]","av":"[\\uA739\\uA73B]","ay":"[\\uA73D]","b":"[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]","c":"[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]","d":"[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]","dz":"[\\u01F3\\u01C6]","e":"[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]","f":"[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]","g":"[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]","h":"[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]","hv":"[\\u0195]","i":"[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]","j":"[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]","k":"[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]","l":"[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]","lj":"[\\u01C9]","m":"[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]","n":"[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]","nj":"[\\u01CC]","o":"[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]","oi":"[\\u01A3]","ou":"[\\u0223]","oo":"[\\uA74F]","p":"[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]","q":"[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]","r":"[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]","s":"[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]","ss":"[\\u00DF]","t":"[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]","tz":"[\\uA729]","u":"[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]","v":"[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]","vy":"[\\uA761]","w":"[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]","x":"[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]","y":"[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]","z":"[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]"},"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasRedirection":false,"hasBreadcrumb":true},"homeUrl":"https:\/\/skyeredtechnology.de\/en","objectID":14630,"objectType":"post","locale":"en","localeFull":"en_US","overlayImages":{"play":{"name":"Play icon","url":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","path":"\/home\/u291072782\/domains\/skyeredtechnology.de\/public_html\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","position":"middle_center"},"gif":{"name":"GIF icon","url":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","path":"\/home\/u291072782\/domains\/skyeredtechnology.de\/public_html\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","position":"middle_center"}},"defautOgImage":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/social-placeholder.jpg","customPermalinks":true,"isUserRegistered":true,"autoSuggestKeywords":true,"connectSiteUrl":"https:\/\/rankmath.com\/auth?site=https%3A%2F%2Fskyeredtechnology.de%2Fen&r=https%3A%2F%2Fskyeredtechnology.de%2Fen%2Fwp-json%2Fwp%2Fv2%2Fpages%2F14630%3Fnonce%3D090f628d49","maxTags":5,"trendsIcon":"<svg viewBox=\"0 0 610 610\"><path d=\"M18.85,446,174.32,290.48l58.08,58.08L76.93,504a14.54,14.54,0,0,1-20.55,0L18.83,466.48a14.54,14.54,0,0,1,0-20.55Z\" style=\"fill:#4285f4\"\/><path d=\"M242.65,242.66,377.59,377.6l-47.75,47.75a14.54,14.54,0,0,1-20.55,0L174.37,290.43l47.75-47.75A14.52,14.52,0,0,1,242.65,242.66Z\" style=\"fill:#ea4335\"\/><polygon points=\"319.53 319.53 479.26 159.8 537.34 217.88 377.61 377.62 319.53 319.53\" style=\"fill:#fabb05\"\/><path d=\"M594.26,262.73V118.61h0a16.94,16.94,0,0,0-16.94-16.94H433.2a16.94,16.94,0,0,0-12,28.92L565.34,274.71h0a16.94,16.94,0,0,0,28.92-12Z\" style=\"fill:#34a853\"\/><rect width=\"610\" height=\"610\" style=\"fill:none\"\/><\/svg>","showScore":true,"siteFavIcon":"https:\/\/skyeredtechnology.de\/wp-content\/uploads\/2024\/01\/webseite-icon-1-150x150.png","canUser":{"general":false,"advanced":false,"snippet":false,"social":false,"analysis":false,"analytics":false,"content_ai":false},"isPro":false,"is_front_page":false,"trendsUpgradeLink":"https:\/\/rankmath.com\/pricing\/?utm_source=Plugin&utm_medium=CE%20General%20Tab%20Trends&utm_campaign=WP","trendsUpgradeLabel":"Upgrade","trendsPreviewImage":"https:\/\/skyeredtechnology.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/trends-preview.jpg","currentEditor":false,"homepageData":{"assessor":{"powerWords":["a cut above","absolute","absolutely","absolutely lowest","absurd","abuse","accurate","accuse","achieve","actionable","adaptable","adequate","admit","adorable","advantage","advice","affordable","aggravate","aggressive","agitated","agonizing","agony","alarmed","alarming","alienated","aligned","alive","all-inclusive","alluring","always","amazing","amp","animated","annihilate","announcing","anonymous","antagonistic","anxious","apocalypse","appalled","approved","approving","argumentative","armageddon","arrogant","ass kicking","assault","assured","astonishing","astounded","astounding","at ease","atrocious","attack","attractive","audacity","authentic","authoritative","authority","avoid","aware","awe-inspiring","awesome","awkward","backbone","backdoor","backed","backlash","backstabbing","badass","balanced","banned","bargain","barrage","basic","battle","beaming","beat down","beating","beautiful","beauty","begging","behind the scenes","belief","belong","best","best-selling","better","beware","big","billion","black market","blacklisted","blast","blessed","blinded","blissful","blood","bloodbath","bloodcurdling","bloody","blunder","blushing","bold","bomb","bona","bona fide","bonanza","bonus","bootleg","bottom line","bountiful","brave","bravery","brazen","break","breaking","breakthrough","breathtaking","bright","brilliant","broke","brutal","budget","buffoon","bullshit","bully","bumbling","buy","cadaver","calm","cancel anytime","capable","captivate","captivating","carefree","case study","cash","cataclysmic","catapult","catastrophe","caution","censored","centered","certain","certainly","certified","challenge","charming","cheap","cheat","cheat-sheet","cheer","cheerful","child-like","clarity","classified","clear","clueless","collapse","colorful","colossal","comfortable","compare","competitive","complete","completely","completeness","comprehensive","compromise","compulsive","concealed","conclusive","condemning","condescending","confess","confession","confessions","confident","confidential","conquer","conscientious","constructive","content","contrary","controlling","controversial","convenient","convert","cool","cooperative","copy","corpse","corrupt","corrupting","courage","courageous","cover-up","covert","coward","cowardly","crammed","crave","crazy","create","creative","cringeworthy","cripple","crisis","critical","crooked","crush","crushing","damaging","danger","dangerous","daring","dazzling","dead","deadline","deadly","death","decadent","deceived","deceptive","deep","defiance","definitely","definitive","defying","dejected","delicious","delight","delighted","delightful","delirious","delivered","demoralizing","deplorable","depraved","desire","desperate","despicable","destiny","destroy","detailed","devastating","devoted","diagnosed","direct","dirty","disadvantages","disastrous","discount","discover","disdainful","disempowered","disgusted","disgusting","dishonest","disillusioned","disoriented","distracted","distraught","distressed","distrustful","divulge","document","dollar","dominate","doomed","double","doubtful","download","dreadful","dreamy","drive","drowning","dumb","dynamic","eager","earnest","easily","easy","economical","ecstatic","edge","effective","efficient","effortless","elated","eliminate","elite","embarrass","embarrassed","embarrassing","emergency","emerging","emphasize","empowered","enchant","encouraged","endorsed","energetic","energy","enormous","enraged","enthusiastic","envy","epic","epidemic","essential","ethical","euphoric","evil","exactly","exasperated","excellent","excited","excitement","exciting","exclusive","exclusivity","excruciating","exhilarated","expensive","expert","explode","exploit","explosive","exposed","exquisite","extra","extraordinary","extremely","exuberant","eye-opening","fail","fail-proof","failure","faith","famous","fantasy","fascinating","fatigued","faux","faux pas","fearless","feast","feeble","festive","fide","fierce","fight","final","fine","fired","first","first ever","flirt","fluid","focus","focused","fool","fooled","foolish","forbidden","force-fed","forever","forgiving","forgotten","formula","fortune","foul","frantic","free","freebie","freedom","frenzied","frenzy","frightening","frisky","frugal","frustrated","fulfill","fulfilled","full","fully","fun","fun-loving","fundamentals","funniest","funny","furious","gambling","gargantuan","genius","genuine","gift","gigantic","giveaway","glamorous","gleeful","glorious","glowing","goddamn","gorgeous","graceful","grateful","gratified","gravity","great","greatest","greatness","greed","greedy","gripping","grit","grounded","growth","guaranteed","guilt","guilt-free","gullible","guts","hack","happiness","happy","harmful","harsh","hate","have you heard","havoc","hazardous","healthy","heart","heartbreaking","heartwarming","heavenly","hell","helpful","helplessness","hero","hesitant","hidden","high tech","highest","highly effective","hilarious","hoak","hoax","honest","honored","hope","hopeful","horribly","horrific","horrifying","horror","hostile","how to","huge","humility","humor","hurricane","hurry","hypnotic","idiot","ignite","illegal","illusive","imagination","immediately","imminently","impatience","impatient","impenetrable","important","impressive","improved","in the zone","incapable","incapacitated","incompetent","inconsiderate","increase","incredible","indecisive","indulgence","indulgent","inexpensive","inferior","informative","infuriated","ingredients","innocent","innovative","insane","insecure","insider","insidious","inspired","inspiring","instant savings","instantly","instructive","insult","intel","intelligent","intense","interesting","intriguing","introducing","invasion","investment","iron-clad","ironclad","irresistible","irs","is here","jackpot","jail","jaw-dropping","jealous","jeopardy","jittery","jovial","joyous","jubilant","judgmental","jumpstart","just arrived","keen","kickass","kickstart","kill","killed","killing","kills","know it all","lame","largest","lascivious","last","last chance","last minute","latest","laugh","laughing","launch","launching","lavishly","lawsuit","lazy","left behind","legendary","legitimate","liberal","liberated","lick","lies","life-changing","lifetime","light","lighthearted","likely","limited","literally","little-known","loathsome","lonely","looming","loser","lost","love","lucrative","lunatic","lurking","lust","luxurious","luxury","lying","magic","magical","magnificent","mainstream","malicious","mammoth","manipulative","marked down","massive","master","masterclass","maul","mediocre","meditative","meltdown","memorability","memorable","menacing","mesmerizing","meticulous","mind-blowing","minimalist","miracle","mired","mischievous","misgiving","missing out","mistake","monetize","money","moneyback","moneygrubbing","monumental","most important","motivated","mouth-watering","murder","mystery","nail","naked","natural","naughty","nazi","nest egg","never","new","nightmare","no good","no obligation","no one talks about","no questions asked","no risk","no strings attached","non-controlling","noted","novelty","now","obnoxious","obsessed","obsession","obvious","odd","off-kilter","off-limits","off-the record","offensive","official","okay","on-demand","open-minded","opportunities","optimistic","ordeal","outlawed","outrageousness","outstanding","overcome","overjoyed","overnight","overwhelmed","packed","painful","painless","painstaking","pale","panic","panicked","paralyzed","pas","passionate","pathetic","pay zero","payback","perfect","peril","perplexed","perspective","pessimistic","pioneering","piranha","pitfall","pitiful","placid","plague","played","playful","pleased","pluck","plummet","plunge","poison","poisonous","polarizing","poor","popular","portfolio","pound","powerful","powerless","practical","preposterous","prestige","price","priceless","pride","prison","privacy","private","privileged","prize","problem","productive","professional","profit","profitable","profound","promiscuous","promising","promote","protect","protected","proven","provocative","provoke","psychological","pummel","punch","punish","pus","quadruple","quality","quarrelsome","quick","quick-start","quickly","quiet","radiant","rare","ravenous","rebellious","recession-proof","reckoning","recognized","recommend","recreate","reduced","reflective","refugee","refund","refundable","reject","relaxed","release","relentless","reliable","remarkable","replicate","report","reprimanding","repulsed","repulsive","research","resentful","resourceful","responsible","responsive","rested","restricted","results","retaliating","reveal","revealing","revenge","revengeful","revisited","revolting","revolutionary","reward","rich","ridiculous","risky","riveting","rookie","rowdy","ruin","rules","ruthless","sabotaging","sacred","sadistic","sadly","sadness","safe","safety","sale","sampler","sarcastic","satisfied","savage","savagery","save","savings","savvy","scam","scandal","scandalous","scarce","scared","scary","scornful","scream","searing","secret","secret agenda","secret plot","secrets","secure","security","seductive","seething","seize","selected","self-hating","self-sufficient","sensational","senseless","sensual","serene","seriously","severe","sex","sexy","shaking","shameful","shameless","shaming","shatter","shellacking","shocking","should","shrewd","sick and tired","signs","silly","simple","simplicity","simplified","simplistic","sincere","sinful","sins","six-figure","sizable","sizzle","sizzled","sizzles","sizzling","sizzlingly","skill","skyrocket","slaughter","slave","sleazy","sleeping","sly","smash","smiling","smug","smuggle","smuggled","sneak-peek","sneaky","sniveling","snob","snooty","snotty","soar","soaring","solid","solution","spank","special","spectacular","speedy","spell-binding","spine","spirit","spirited","spiteful","spoiler","spontaneous","spotlight","spunky","squirming","stable","staggering","startling","steady","steal","stealthy","steamy","step-by-step","still","stoic","stop","strange","strangle","strategy","stressed","strong","strongly suggest","struggle","stuck up","studies","stunning","stupid","stupid-simple","sturdy","sublime","succeed","success","successful","suck","suddenly","suffer","sunny","super","super-human","superb","supercharge","superior","supported","supportive","sure","sure fire","surefire","surge","surging","surprise","surprised","surprising","survival","survive","suspicious","sweaty","swoon","swoon-worthy","tailspin","tank","tantalizing","targeted","tawdry","tease","technology","teetering","tempting","tenacious","tense","terrible","terrific","terrified","terrifying","terror","terrorist","tested","thankful","the truth","threaten","threatened","thrilled","thrilling","thug","ticked off","tickled","timely","today","torture","toxic","track record","trade secret","tragedy","tragic","transform","transparency","trap","trapped","trauma","traumatized","treacherous","treasure","tremendous","trend","tricks","triggers","triple","triumph","truly","trusting","trustworthy","truth","truthful","turbo-charge","turbocharges","tweaks","twitching","ultimate","unadulterated","unassuming","unauthorized","unbelievable","unburdened","uncaring","uncensored","uncertain","uncomfortable","unconditional","uncontrollable","unconventional","uncovered","undeniable","under priced","undercover","underground","underhanded","underused","unexpected","unforgettable","unheard of","unhurried","uninterested","unique","unjustified","unknowingly","unleashed","unlimited","unlock","unparalleled","unpopular","unreliable","unresponsive","unseen","unstable","unstoppable","unsure","unsurpassed","untapped","unusual","up-sell","upbeat","uplifted","uplifting","urge","urgent","useful","useless","validate","valor","valuable","value","vanquish","vaporize","venomous","verify","vibrant","vicious","victim","victory","vigorous","vilified","vindictive","violated","violent","volatile","vulnerable","waiting","wanted","wanton","warning","waste","weak","wealth","weird","what no one tells you","whip","whopping","wicked","wild","willpower","withheld","wonderful","wondrous","woozy","world","worry","worst","worthwhile","wounded","wreaking","youthful","zen","zinger"],"diacritics":true,"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasBreadcrumb":true,"serpData":{"title":"%sitename% %page% %sep% %sitedesc%","description":"","titleTemplate":"%sitename% %page% %sep% %sitedesc%","descriptionTemplate":"","focusKeywords":"","breadcrumbTitle":"Home","robots":{"index":true},"advancedRobots":[],"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":""}}},"tocTitle":"Table of Contents","tocExcludeHeadings":[],"listStyle":"ul"},"_links":{"self":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/comments?post=14630"}],"version-history":[{"count":3,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14630\/revisions"}],"predecessor-version":[{"id":14998,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14630\/revisions\/14998"}],"up":[{"embeddable":true,"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/pages\/14379"}],"wp:attachment":[{"href":"https:\/\/skyeredtechnology.de\/en\/wp-json\/wp\/v2\/media?parent=14630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}