/* ============================================================
   RANDORI-PRO · Kickboxen (Erwachsene, High End) · Motion-Layer
   Additive Politur. Teilt [data-rv]/js-motion mit bold-v3.css.
   Grundzustand IMMER vollständig sichtbar (kein JS / reduced).
   Aktiv ausschließlich unter body.bv3.kb. Respektiert
   prefers-reduced-motion.
   Stimmung 2 „Warm & Kraftvoll" → kraftvoll, aber ruhig getaktet.
   ============================================================ */

:root { --kb-ease-calm: cubic-bezier(0.22, 0.61, 0.36, 1); }

@media (prefers-reduced-motion: no-preference) {

  /* Reveals (Muster wie bold-v3) */
  .bv3.kb [data-rv] { opacity: 0; transform: translateY(18px); transition: opacity 420ms var(--kb-ease-calm), transform 420ms var(--kb-ease-calm); }
  .bv3.kb [data-rv].is-in { opacity: 1; transform: translateY(0); }

  /* Kicker-Linie zeichnet sich beim Reveal */
  .bv3.kb [data-rv] .b-kicker::before, .bv3.kb [data-rv].b-kicker::before { width: 0; transition: width 450ms var(--kb-ease-calm) 150ms; }
  .bv3.kb [data-rv].is-in .b-kicker::before, .bv3.kb [data-rv].is-in.b-kicker::before { width: 40px; }

  /* Hero-Entrance · kraftvoll gestaffelt */
  .bv3.kb .kb-hero .b-kicker { animation: kb-rise 480ms var(--kb-ease-calm) 80ms backwards; }
  .bv3.kb .kb-hero__h1 { animation: kb-rise 520ms var(--kb-ease-calm) 160ms backwards; }
  .bv3.kb .kb-hero__sub, .bv3.kb .kb-hero__cta, .bv3.kb .kb-hero__micro { animation: kb-rise 520ms var(--kb-ease-calm) 260ms backwards; }
  .bv3.kb .kb-hero__trust { animation: kb-fade 520ms var(--ease-standard) 420ms backwards; }
  /* Hero-Bild · Entrance-Zoom (endet auf der Parallax-Grundskala 1.08) */
  .bv3.kb.js-motion .kb-hero__bg { animation: kb-hero-zoom 1600ms var(--kb-ease-calm) backwards; }
  @keyframes kb-hero-zoom { from { transform: scale(1.15); } to { transform: scale(1.08); } }
  .bv3.kb .kb-hero__scrim { animation: kb-fade 700ms var(--ease-standard) backwards; }
  @keyframes kb-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes kb-fade { from { opacity: 0; } to { opacity: 1; } }

  /* Count-up · „über/rund"-Präfix folgt der Zahl */
  .bv3.kb [data-rv] .kb-stat__n .pre { opacity: 0; transition: opacity 500ms var(--ease-standard) 600ms; }
  .bv3.kb [data-rv].is-in .kb-stat__n .pre { opacity: 1; }

  /* ── SIGNATUR · Kontakt-Level-Regler · Entrance-Sweep ────────
     JS setzt .is-lit auf .kb-level, sobald sichtbar: der
     Indikator schwingt einmal über die Skala und setzt sich auf
     der mittleren Stufe. Ohne JS bleibt der Regler statisch auf
     Stufe „Kontrollierter Partnerkontakt". */
  .bv3.kb.js-motion .kb-level:not(.is-lit) .kb-dial__thumb { left: 0%; opacity: 0; }
  .bv3.kb.js-motion .kb-level:not(.is-lit) .kb-dial__fill { width: 0%; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__thumb { animation: kb-thumb-sweep 1600ms var(--kb-ease-calm) 200ms backwards; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__fill { animation: kb-fill-sweep 1600ms var(--kb-ease-calm) 200ms backwards; }
  @keyframes kb-thumb-sweep {
    0%   { left: 0%;   opacity: 0; }
    18%  { opacity: 1; }
    55%  { left: 100%; }
    100% { left: 50%; }
  }
  @keyframes kb-fill-sweep {
    0%   { width: 0%; }
    55%  { width: 100%; }
    100% { width: 50%; }
  }
  /* Stops setzen sich nacheinander */
  .bv3.kb.js-motion .kb-level:not(.is-lit) .kb-dial__stop { transform: translate(-50%,-50%) scale(0); }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__stop { transform: translate(-50%,-50%) scale(1); transition: transform 480ms var(--bv3-spring, cubic-bezier(0.34,1.56,0.64,1)); }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__stop[data-stop="0"] { transition-delay: 250ms; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__stop[data-stop="1"] { transition-delay: 900ms; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__stop[data-stop="2"] { transition-delay: 600ms; }
  /* Labels steigen mit auf */
  .bv3.kb.js-motion .kb-level:not(.is-lit) .kb-dial__label { opacity: 0; transform: translateY(10px); }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__label { opacity: 1; transform: translateY(0); transition: opacity 600ms var(--kb-ease-calm), transform 600ms var(--kb-ease-calm); }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__label[data-stop="0"] { transition-delay: 1100ms; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__label[data-stop="1"] { transition-delay: 1250ms; }
  .bv3.kb.js-motion .kb-level.is-lit .kb-dial__label[data-stop="2"] { transition-delay: 1400ms; }

  /* ─ Bild-Band · Entrance-Zoom auf dem Bild (Parallax liegt auf __fig) ─ */
  .bv3.kb.js-motion .kb-band__fig img { transform: scale(1.07); transition: transform 1400ms var(--kb-ease-calm); }
  .bv3.kb.js-motion .kb-band.is-seen .kb-band__fig img { transform: none; }
}
