/* =====================================================================
   Kino-Intro v2 — Vollbild-Vorschalt-Overlay (7 Szenen, ~30s).
   Ersetzt intro.css/intro-morph.js (Logo-Morph). Quelle: intro-lab/
   design_handoff_kino_intro/README.md (High-Fidelity, pixelgenau).
   Alle Keyframes sind kiv2--präfixt (Namensraum-Kollision vermeiden:
   lineUp/blink/marquee/heroGlow/… sind an anderer Stelle im Repo belegt).
   Nur Compositor-Properties animiert (transform/opacity/filter).
   ===================================================================== */

/* ---------- Self-hosted Fonts (bereits vorhandene Dateien) ---------- */
@font-face{font-family:'Saira Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/saira-condensed-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Saira Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/saira-condensed-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-sans-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-sans-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/ibm-plex-mono-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/ibm-plex-mono-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ---------- Shell-Vertrag (ersetzt intro.css:5 / intro.css:17) ---------- */
body.intro-lock { overflow: hidden; }

.kiv2 {
  position: fixed; inset: 0; z-index: 10000; /* über Header (1000) + Consent (9999) */
  display: none;                 /* ohne JS unsichtbar -> Seite bleibt nutzbar */
  overflow: hidden;
  background: #04070F;
  color: #EEF2F8;
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  cursor: pointer;
  user-select: none; -webkit-user-select: none;
  opacity: 1;
  transition: opacity .6s cubic-bezier(.23,1,.32,1);
}
html.js .kiv2 { display: block; }
.kiv2.is-leaving { opacity: 0; pointer-events: none; }
.kiv2.is-hidden { display: none !important; }
.kiv2.is-finale { cursor: default; }

.kiv2 * { box-sizing: border-box; }

/* ---------- Ambient-Licht (Ebene 1) ---------- */
.kiv2__ambient {
  position: absolute; z-index: 0; pointer-events: none;
  width: 95vmax; height: 95vmax; border-radius: 50%;
  will-change: transform;
}
.kiv2__ambient--a {
  left: -28vmax; top: -34vmax;
  background: radial-gradient(closest-side, rgba(29,111,232,.14), transparent 70%);
  animation: kiv2-kAmbient 16s ease-in-out infinite;
}
.kiv2__ambient--b {
  width: 90vmax; height: 90vmax;
  right: -30vmax; bottom: -38vmax;
  background: radial-gradient(closest-side, rgba(10,46,110,.22), transparent 70%);
  animation: kiv2-kAmbient 21s ease-in-out infinite reverse;
}

/* ---------- Szenen (Ebene 2) ---------- */
.kiv2__scene {
  position: absolute; inset: 0; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(70px, 12vh, 130px) clamp(20px, 5vw, 48px);
  opacity: 0; pointer-events: none;
  transition: opacity .46s cubic-bezier(.23,1,.32,1);
}
.kiv2__scene--1, .kiv2__scene--2, .kiv2__scene--6 { padding: clamp(80px, 14vh, 140px) clamp(20px, 5vw, 48px); }
.kiv2__scene--5 { padding: clamp(52px, 10vh, 120px) clamp(20px, 5vw, 48px); }
.kiv2__scene--7 { padding: clamp(40px, 7vh, 80px) clamp(20px, 5vw, 48px); }
.kiv2__scene.is-active { opacity: 1; pointer-events: auto; will-change: opacity; }

.kiv2-scene-inner {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.kiv2__scene.is-active .kiv2-scene-inner {
  animation: kiv2-kDrift 7s linear both;
  will-change: transform;
}

/* ---------- Filmkorn (Ebene 3) ---------- */
.kiv2::before {
  content: "";
  position: absolute; inset: -20%; z-index: 2; pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  background-repeat: repeat; background-size: 180px 180px;
}

/* ---------- Vignette (Ebene 4) ---------- */
.kiv2__vignette {
  position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 45%, transparent 55%, rgba(2,4,9,.75) 100%);
}

/* ---------- Letterbox (Ebene 5) ---------- */
/* transform:scaleY() statt height-Transition (Compositor statt Layout-Thrash);
   visuelles Ergebnis identisch zur Spec (900ms Auf-/Zufahren). */
.kiv2__letterbox {
  position: absolute; left: 0; right: 0; z-index: 4; pointer-events: none;
  height: clamp(34px, 7vh, 68px);
  background: #020408;
  transform: scaleY(1);
  transition: transform .9s cubic-bezier(.23,1,.32,1);
}
.kiv2__letterbox--top { top: 0; transform-origin: top; }
.kiv2__letterbox--bottom { bottom: 0; transform-origin: bottom; }
.kiv2.is-finale .kiv2__letterbox { transform: scaleY(0); }

/* ---------- Chrome (Ebene 6): Skip / Hinweis / Fortschritt ---------- */
.kiv2-tap44 { position: relative; }
.kiv2-tap44::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 44px; height: 44px; transform: translate(-50%, -50%);
}

.kiv2-skip {
  position: absolute; top: 20px; right: 24px; z-index: 6;
  padding: 10px 18px; border-radius: 999px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.12);
  color: #6E7888;
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 500; letter-spacing: .22em;
  cursor: pointer; opacity: 1; pointer-events: auto;
  transition: color .3s ease, border-color .3s ease, opacity .4s ease, transform .3s ease;
}
.kiv2-skip:hover { color: #EEF2F8; border-color: rgba(255,255,255,.3); }
.kiv2-skip:active { transform: scale(.96); }
.kiv2.is-finale .kiv2-skip { opacity: 0; pointer-events: none; }

.kiv2-hint {
  position: absolute; bottom: 52px; left: 0; right: 0; z-index: 6;
  margin: 0; text-align: center; pointer-events: none;
  font-family: 'IBM Plex Mono', monospace; font-size: 9px; letter-spacing: .3em; text-indent: .3em;
  color: #6E7888; opacity: .55;
  transition: opacity .4s ease;
}
.kiv2.is-finale .kiv2-hint { opacity: 0; }

.kiv2-progress {
  position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); z-index: 6;
  display: flex; align-items: center; gap: 7px;
}
.kiv2-progress__seg {
  appearance: none; padding: 8px 0; margin: 0; background: none; border: none;
  cursor: pointer; display: block;
}
.kiv2-progress__track {
  display: block;
  width: clamp(22px, 4.5vw, 48px); height: 2px; border-radius: 999px;
  background: rgba(255,255,255,.16); overflow: hidden;
}
/* Fill compositor-only: JS animiert transform:scaleX(0->1), nie width */
.kiv2-progress__fill {
  display: block;
  height: 100%; width: 100%; border-radius: 999px;
  background: #3D8BFF; box-shadow: 0 0 8px rgba(61,139,255,.8);
  transform: scaleX(0); transform-origin: left;
}

/* ---------- Typografie-Bausteine ---------- */
.kiv2-chrome-text {
  background: linear-gradient(180deg, #F6F8FA 0%, #C7CDD6 45%, #8B93A0 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.kiv2-blue-text {
  background: linear-gradient(180deg, #7DB4FF 0%, #2E7BFF 55%, #1D5FCC 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.kiv2-headline__accent { background: linear-gradient(180deg, #7DB4FF 0%, #2E7BFF 55%, #1D5FCC 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

.kiv2-eyebrow {
  font-family: 'IBM Plex Mono', monospace; font-weight: 500;
  font-size: clamp(10px, 1.2vw, 13px); letter-spacing: .34em; text-indent: .34em;
  color: #4D9AFF;
}
.kiv2-headline {
  margin: 0;
  font-family: 'Saira Condensed', sans-serif; font-weight: 800;
  font-size: clamp(42px, 7vw, 88px); line-height: .98; letter-spacing: -.02em;
  text-transform: uppercase; color: #EEF2F8;
  text-wrap: balance;
}

/* ---------- Szene 1 · Cold Open ---------- */
.kiv2-cold-open { gap: clamp(18px, 3vh, 28px); }
.kiv2-plexus-wrap {
  position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0;
}
.kiv2__scene--1.is-active .kiv2-plexus-wrap { animation: kiv2-kFadeIn 2400ms cubic-bezier(.23,1,.32,1) 200ms both; }
.kiv2-plexus { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .42; }
.kiv2-plexus__cluster--a { animation: kiv2-kDriftA 24s ease-in-out infinite alternate; }
.kiv2-plexus__cluster--b { animation: kiv2-kDriftB 28s ease-in-out infinite alternate; }
.kiv2-plexus__node { animation: kiv2-kPulse 3.4s ease-in-out infinite; }

.kiv2-cold-open__mono {
  position: relative;
  font-family: 'IBM Plex Mono', monospace; font-size: clamp(9px, 1.2vw, 12px);
  letter-spacing: .34em; text-indent: .34em; color: #6E7888;
}
.kiv2__scene--1.is-active .kiv2-cold-open__mono { animation: kiv2-kUp 900ms cubic-bezier(.23,1,.32,1) 400ms both; }

.kiv2-cold-open__wordmark-wrap { position: relative; }
.kiv2__scene--1.is-active .kiv2-cold-open__wordmark-wrap { animation: kiv2-kBloom 1200ms cubic-bezier(.23,1,.32,1) 700ms both; }
.kiv2-cold-open__wordmark {
  width: min(560px, 82vw); height: auto; display: block;
  filter: drop-shadow(0 14px 50px rgba(46,123,255,.35));
}

.kiv2-cold-open__dsline { position: relative; width: min(580px, 85vw); height: auto; display: block; }
.kiv2__scene--1.is-active .kiv2-cold-open__dsline { animation: kiv2-kUp 900ms cubic-bezier(.23,1,.32,1) 1300ms both; }

.kiv2-hairline {
  position: relative;
  width: min(300px, 46vw); height: 1px; transform-origin: center;
  background: linear-gradient(90deg, rgba(125,180,255,0) 0%, #2E7BFF 22%, #dff1ff 50%, #2E7BFF 78%, rgba(125,180,255,0) 100%);
  background-size: 250% 100%;
}
.kiv2__scene--1.is-active .kiv2-hairline {
  animation: kiv2-kLineX 1100ms cubic-bezier(.23,1,.32,1) 1700ms both, kiv2-kSheenX 4s linear 2900ms infinite;
}

.kiv2-cold-open__slogan {
  position: relative; margin: 0; max-width: 560px;
  font-size: clamp(16px, 2.1vw, 22px); line-height: 1.55; color: #AAB4C4;
  text-wrap: balance;
}
.kiv2__scene--1.is-active .kiv2-cold-open__slogan { animation: kiv2-kUp 900ms cubic-bezier(.23,1,.32,1) 2100ms both; }

/* ---------- Szene 2 · Claim ---------- */
.kiv2-claim { gap: clamp(2px, .8vh, 8px); }
.kiv2-claim__line {
  margin: 0;
  font-family: 'Saira Condensed', sans-serif; font-weight: 800;
  font-size: clamp(50px, 10vw, 126px); line-height: .98; letter-spacing: -.02em;
  text-transform: uppercase;
}
.kiv2__scene--2.is-active .kiv2-claim__line:nth-child(1) { animation: kiv2-kPunch 700ms cubic-bezier(.23,1,.32,1) 150ms both; }
.kiv2__scene--2.is-active .kiv2-claim__line:nth-child(2) { animation: kiv2-kPunch 700ms cubic-bezier(.23,1,.32,1) 950ms both; }
.kiv2__scene--2.is-active .kiv2-claim__line:nth-child(3) { animation: kiv2-kPunch 700ms cubic-bezier(.23,1,.32,1) 1750ms both; }

/* ---------- Szene 3+4 · Feature (KI&Automatisierung / Software&Webdesign) ---------- */
.kiv2-feature { width: 100%; max-width: 1060px; flex-direction: row; align-items: center; justify-content: center; }
.kiv2-feature__bg { position: absolute; pointer-events: none; z-index: 0; }
.kiv2__scene--3.is-active .kiv2-feature__bg { animation: kiv2-kFloat 7s ease-in-out infinite alternate; }
.kiv2__scene--4.is-active .kiv2-feature__bg { animation: kiv2-kFloat 8s ease-in-out infinite alternate; }
.kiv2-circuit { opacity: .3; }
.kiv2-circuit--01 { width: min(760px, 96vw); }
.kiv2-circuit--02 { width: min(680px, 94vw); }
.kiv2-circuit__trace-glow { opacity: .14; }
.kiv2-circuit__trace-glow--dim { opacity: .1; }
.kiv2-circuit__trace {
  stroke-dasharray: 800; stroke-dashoffset: 800;
  animation: kiv2-kDash 1400ms cubic-bezier(.23,1,.32,1) both;
}
.kiv2-circuit__ring-spin { transform-box: fill-box; transform-origin: center; animation: kiv2-kSpin 18s linear infinite; opacity: .6; }
.kiv2-circuit__core-pulse { animation: kiv2-kPulse 2.4s ease-in-out infinite; }
.kiv2-pulse { opacity: 0; } /* Fallback ohne offset-path-Support: Pulse bleiben weg */
@supports (offset-path: path('M0 0')) {
  .kiv2-pulse { animation: kiv2-kTravel 3s linear infinite; opacity: 1; }
}
.kiv2-circuit__frame { stroke-dasharray: 1800; stroke-dashoffset: 1800; animation: kiv2-kDash 1600ms cubic-bezier(.23,1,.32,1) 150ms both; }
.kiv2-circuit__titlebar { stroke-dasharray: 600; stroke-dashoffset: 600; animation: kiv2-kDash 1200ms cubic-bezier(.23,1,.32,1) 500ms both; }
.kiv2-circuit__content-bar { stroke-dasharray: 300; stroke-dashoffset: 300; animation: kiv2-kDash 1000ms cubic-bezier(.23,1,.32,1) both; }
.kiv2-circuit__cursor { animation: kiv2-kBlink 1.1s step-end infinite; }
.kiv2-circuit__chart-line { stroke-dasharray: 400; stroke-dashoffset: 400; animation: kiv2-kDash 1200ms cubic-bezier(.23,1,.32,1) 900ms both; }
.kiv2-circuit__chart-dot { animation: kiv2-kPulse 2.4s ease-in-out 1.6s infinite; }

.kiv2-feature__content { position: relative; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; z-index: 1; }
.kiv2__scene--3.is-active .kiv2-feature__content .kiv2-eyebrow,
.kiv2__scene--4.is-active .kiv2-feature__content .kiv2-eyebrow { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 100ms both; }
.kiv2__scene--3.is-active .kiv2-feature__content .kiv2-headline,
.kiv2__scene--4.is-active .kiv2-feature__content .kiv2-headline { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 280ms both; }

.kiv2-type {
  margin: 0; width: min(640px, 88vw); min-height: 3.7em;
  font-family: 'IBM Plex Mono', monospace; font-size: clamp(12px, 1.5vw, 15px);
  line-height: 1.85; letter-spacing: .02em; color: #AAB4C4; text-align: left;
}
.kiv2__scene--3.is-active .kiv2-type, .kiv2__scene--4.is-active .kiv2-type { animation: kiv2-kUp 600ms cubic-bezier(.23,1,.32,1) 600ms both; }
.kiv2-type__cursor {
  display: inline-block; width: 8px; height: 1.05em; margin-left: 3px; vertical-align: text-bottom;
  background: #4D9AFF; animation: kiv2-kBlink 1.1s step-end infinite;
}
.kiv2-type__cursor.is-done { display: none; }

.kiv2-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; max-width: 760px; }
.kiv2-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 15px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.035);
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .16em; color: #AAB4C4;
}
.kiv2-chip__dot { width: 4px; height: 4px; border-radius: 50%; background: #4D9AFF; flex: none; }
.kiv2__scene--3.is-active .kiv2-chip:nth-child(1), .kiv2__scene--4.is-active .kiv2-chip:nth-child(1) { animation: kiv2-kUp 700ms cubic-bezier(.23,1,.32,1) 1500ms both; }
.kiv2__scene--3.is-active .kiv2-chip:nth-child(2), .kiv2__scene--4.is-active .kiv2-chip:nth-child(2) { animation: kiv2-kUp 700ms cubic-bezier(.23,1,.32,1) 1650ms both; }
.kiv2__scene--3.is-active .kiv2-chip:nth-child(3), .kiv2__scene--4.is-active .kiv2-chip:nth-child(3) { animation: kiv2-kUp 700ms cubic-bezier(.23,1,.32,1) 1800ms both; }
.kiv2__scene--3.is-active .kiv2-chip:nth-child(4), .kiv2__scene--4.is-active .kiv2-chip:nth-child(4) { animation: kiv2-kUp 700ms cubic-bezier(.23,1,.32,1) 1950ms both; }
.kiv2__scene--3.is-active .kiv2-chip:nth-child(5), .kiv2__scene--4.is-active .kiv2-chip:nth-child(5) { animation: kiv2-kUp 700ms cubic-bezier(.23,1,.32,1) 2100ms both; }

/* ---------- Szene 5 · Zwei Marken ---------- */
.kiv2-brands { gap: clamp(14px, 2.4vh, 26px); width: 100%; }
.kiv2-brands .kiv2-eyebrow { text-align: center; }
.kiv2__scene--5.is-active .kiv2-brands .kiv2-eyebrow { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 100ms both; }
.kiv2-brands__headline { text-align: center; font-size: clamp(30px, 4.6vw, 60px); }
.kiv2__scene--5.is-active .kiv2-brands__headline { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 250ms both; }

.kiv2-brands__cards { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(14px, 2vw, 22px); width: 100%; }
.kiv2-card {
  position: relative; overflow: hidden;
  width: clamp(280px, 42vw, 430px);
  background: linear-gradient(180deg, #0F1728, #0A1120);
  border: 1px solid rgba(255,255,255,.09); border-radius: 16px;
  padding: clamp(16px, 2.2vw, 26px) clamp(18px, 2.8vw, 30px);
}
.kiv2__scene--5.is-active .kiv2-card--a { animation: kiv2-kTiltL 900ms cubic-bezier(.23,1,.32,1) 400ms both; }
.kiv2__scene--5.is-active .kiv2-card--b { animation: kiv2-kTiltR 900ms cubic-bezier(.23,1,.32,1) 600ms both; }
.kiv2-card__accent-line {
  position: absolute; top: 0; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(77,154,255,.8), transparent);
}
.kiv2-card__body { display: flex; flex-direction: column; align-items: center; gap: 9px; text-align: center; }
.kiv2-card__logo-wrap { position: relative; }
.kiv2-card__glow {
  position: absolute; left: 50%; top: 50%; width: 190%; aspect-ratio: 1;
  transform: translate(-50%, -50%); pointer-events: none;
}
.kiv2-card--a .kiv2-card__glow {
  background: radial-gradient(closest-side at 42% 42%, rgba(168,85,247,.22), transparent 70%),
              radial-gradient(closest-side at 62% 62%, rgba(245,158,11,.16), transparent 70%);
}
.kiv2-card--b .kiv2-card__glow {
  background: radial-gradient(closest-side, rgba(46,123,255,.28), transparent 70%);
}
.kiv2-card__logo {
  position: relative; height: clamp(64px, 10vh, 110px); width: auto;
  filter: drop-shadow(0 14px 34px rgba(0,0,0,.6));
}
.kiv2-card__tag {
  font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 500; letter-spacing: .28em; color: #4D9AFF;
}
.kiv2-card__title {
  font-family: 'Saira Condensed', sans-serif; font-weight: 800; font-size: clamp(21px, 2.6vw, 30px);
  line-height: 1.04; color: #EEF2F8;
}
.kiv2-card__line { font-size: clamp(13px, 1.5vw, 15px); line-height: 1.6; color: #AAB4C4; }

.kiv2-brands__outro {
  margin: 0; max-width: 700px; font-size: clamp(13px, 1.5vw, 16px); line-height: 1.6;
  color: #AAB4C4; text-align: center; text-wrap: pretty;
}
.kiv2__scene--5.is-active .kiv2-brands__outro { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 1200ms both; }

/* ---------- Szene 6 · Ihr Partner ---------- */
.kiv2-partner { gap: clamp(20px, 3.5vh, 34px); }
.kiv2-partner__lines { display: flex; flex-direction: column; align-items: center; gap: clamp(2px, .6vh, 6px); }
.kiv2-partner__line {
  margin: 0;
  font-family: 'Saira Condensed', sans-serif; font-weight: 800;
  font-size: clamp(30px, 5vw, 60px); line-height: 1.06; letter-spacing: -.015em;
  text-transform: uppercase;
}
.kiv2__scene--6.is-active .kiv2-partner__line:nth-child(1) { animation: kiv2-kPunch 650ms cubic-bezier(.23,1,.32,1) 200ms both; }
.kiv2__scene--6.is-active .kiv2-partner__line:nth-child(2) { animation: kiv2-kPunch 650ms cubic-bezier(.23,1,.32,1) 900ms both; }
.kiv2__scene--6.is-active .kiv2-partner__line:nth-child(3) { animation: kiv2-kPunch 650ms cubic-bezier(.23,1,.32,1) 1600ms both; }

.kiv2-partner__hairline {
  width: min(320px, 50vw); height: 1px; transform-origin: center;
  background: linear-gradient(90deg, rgba(125,180,255,.12), rgba(190,220,255,.9) 50%, rgba(125,180,255,.12));
}
.kiv2__scene--6.is-active .kiv2-partner__hairline { animation: kiv2-kLineX 900ms cubic-bezier(.23,1,.32,1) 2200ms both; }

.kiv2-partner__final { }
.kiv2__scene--6.is-active .kiv2-partner__final { animation: kiv2-kPunchGlow 950ms cubic-bezier(.23,1,.32,1) 2600ms both; }
.kiv2-partner__final-line1 {
  font-family: 'Saira Condensed', sans-serif; font-weight: 800; font-size: clamp(38px, 6.8vw, 84px);
  line-height: .96; letter-spacing: -.02em; text-transform: uppercase; color: #EEF2F8;
}
.kiv2-partner__final-line2 {
  font-family: 'Saira Condensed', sans-serif; font-weight: 800; font-size: clamp(44px, 8.2vw, 104px);
  line-height: .96; letter-spacing: -.02em; text-transform: uppercase;
}

/* ---------- Szene 7 · Logo-Finale ---------- */
.kiv2-finale { gap: clamp(16px, 2.6vh, 24px); }
.kiv2-finale__mark-wrap { position: relative; }
.kiv2__scene--7.is-active .kiv2-finale__mark-wrap { animation: kiv2-kBloom 1000ms cubic-bezier(.23,1,.32,1) 150ms both; }
.kiv2-finale__mark-glow {
  position: absolute; left: 50%; top: 50%; width: 220%; aspect-ratio: 1;
  transform: translate(-50%, -50%);
  background: radial-gradient(closest-side, rgba(46,123,255,.22), transparent 72%);
  pointer-events: none;
}
.kiv2-finale__mark {
  position: relative; height: clamp(140px, 24vh, 230px); width: auto;
  filter: drop-shadow(0 24px 70px rgba(29,111,232,.45));
}
.kiv2-finale__wordmark { width: min(460px, 76vw); height: auto; display: block; }
.kiv2__scene--7.is-active .kiv2-finale__wordmark { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 600ms both; }
.kiv2-finale__dsline { width: min(480px, 79vw); height: auto; display: block; }
.kiv2__scene--7.is-active .kiv2-finale__dsline { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 850ms both; }
.kiv2-finale__claim { margin: 6px 0 0; font-size: clamp(14px, 1.6vw, 17px); line-height: 1.6; color: #AAB4C4; }
.kiv2__scene--7.is-active .kiv2-finale__claim { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 1100ms both; }
.kiv2-finale__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px; margin-top: 8px; }
.kiv2__scene--7.is-active .kiv2-finale__actions { animation: kiv2-kUp 800ms cubic-bezier(.23,1,.32,1) 1400ms both; }

.kiv2-btn {
  display: inline-flex; align-items: center; gap: 10px;
  border-radius: 999px; cursor: pointer; text-decoration: none;
  font-family: 'IBM Plex Mono', monospace;
  transition: transform .4s cubic-bezier(.23,1,.32,1), box-shadow .4s cubic-bezier(.23,1,.32,1), color .3s ease, border-color .3s ease;
}
.kiv2-btn--primary {
  padding: 16px 30px;
  background: linear-gradient(180deg, #5AA2FF 0%, #1D6FE8 55%, #0E3E9C 100%);
  border: 1px solid rgba(125,180,255,.5);
  box-shadow: 0 14px 30px -12px rgba(29,111,232,.7), inset 0 1px 0 rgba(255,255,255,.35);
  color: #FFFFFF; font-size: 12px; font-weight: 600; letter-spacing: .14em;
}
.kiv2-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -12px rgba(29,111,232,.9), inset 0 1px 0 rgba(255,255,255,.4); }
.kiv2-btn--primary:active { transform: scale(.96); }
.kiv2-btn--ghost {
  padding: 15px 26px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.14);
  color: #AAB4C4; font-size: 11px; font-weight: 500; letter-spacing: .14em;
}
.kiv2-btn--ghost:hover { color: #EEF2F8; border-color: rgba(255,255,255,.3); }
.kiv2-btn--ghost:active { transform: scale(.96); }

/* ---------- Fokus-Sichtbarkeit ---------- */
.kiv2 :focus-visible {
  outline: 2px solid #4D9AFF; outline-offset: 3px; border-radius: 4px;
}

/* ---------- Keyframes (kiv2--präfixt) ---------- */
@keyframes kiv2-kUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kiv2-kFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes kiv2-kPunch { 0% { opacity: 0; transform: scale(1.08); filter: blur(16px); } 55% { opacity: 1; filter: blur(0); } 100% { opacity: 1; transform: scale(1); filter: blur(0); } }
@keyframes kiv2-kPunchGlow { 0% { opacity: 0; transform: scale(1.1); filter: blur(18px); } 55% { opacity: 1; } 100% { opacity: 1; transform: scale(1); filter: blur(0) drop-shadow(0 0 28px rgba(46,123,255,.35)); } }
@keyframes kiv2-kLineX { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes kiv2-kSheenX { from { background-position: 180% 0; } to { background-position: -80% 0; } }
@keyframes kiv2-kDash { to { stroke-dashoffset: 0; } }
@keyframes kiv2-kPulse { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes kiv2-kBlink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@keyframes kiv2-kSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes kiv2-kFloat { from { transform: translateY(6px); } to { transform: translateY(-8px); } }
@keyframes kiv2-kDrift { from { transform: scale(1); } to { transform: scale(1.035); } }
@keyframes kiv2-kDriftA { from { transform: translate(0px, 0px); } to { transform: translate(30px, -20px); } }
@keyframes kiv2-kDriftB { from { transform: translate(0px, 0px); } to { transform: translate(-34px, 16px); } }
@keyframes kiv2-kTravel { 0% { offset-distance: 0%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
@keyframes kiv2-kAmbient { 0%, 100% { transform: translate3d(-1.5%, -1%, 0) scale(1); opacity: .7; } 50% { transform: translate3d(1.5%, 1%, 0) scale(1.05); opacity: 1; } }
@keyframes kiv2-kBloom { 0% { opacity: 0; transform: scale(.84); filter: blur(18px); } 100% { opacity: 1; transform: scale(1); filter: blur(0); } }
@keyframes kiv2-kTiltL { 0% { opacity: 0; transform: perspective(900px) rotateY(-9deg) translateY(34px) scale(.97); } 100% { opacity: 1; transform: perspective(900px) rotateY(0deg) translateY(0px) scale(1); } }
@keyframes kiv2-kTiltR { 0% { opacity: 0; transform: perspective(900px) rotateY(9deg) translateY(34px) scale(.97); } 100% { opacity: 1; transform: perspective(900px) rotateY(0deg) translateY(0px) scale(1); } }

/* ---------- Sicherheitsnetz: prefers-reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .kiv2, .kiv2 * {
    animation: none !important;
    transition: none !important;
  }
  .kiv2-type__cursor { display: none !important; }
  .kiv2-pulse { opacity: 0 !important; }
}
