/* ============================================================
   RANDORI-PRO · Boxen (High End) · Motion-Layer (CSS)
   Additive Politur. Teilt [data-rv]/js-motion mit bold-v3.css.
   Grundzustand IMMER vollständig sichtbar (kein JS / reduced):
   „Du" steht in der Schlagdistanz, Marker und Beschriftung gesetzt.
   Aktiv ausschließlich unter body.bv3.box. Respektiert
   prefers-reduced-motion.
   ============================================================ */

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

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

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

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

  /* Hero-Entrance */
  .bv3.box .box-hero .b-kicker { animation: box-rise 900ms var(--box-ease-calm) 150ms backwards; }
  .bv3.box .box-hero__h1 { animation: box-rise 1000ms var(--box-ease-calm) 280ms backwards; }
  .bv3.box .box-hero__sub, .bv3.box .box-hero__cta { animation: box-rise 1000ms var(--box-ease-calm) 440ms backwards; }
  .bv3.box .box-hero__trust { animation: box-fade 1000ms var(--ease-standard) 700ms backwards; }
  .bv3.box .box-hero__bg, .bv3.box .box-hero__scrim { animation: box-fade 1200ms var(--ease-standard) backwards; }
  @keyframes box-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes box-fade { from { opacity: 0; } to { opacity: 1; } }

  /* ── SIGNATUR · DISTANZ & TIMING ─────────────────────────────
     JS positioniert den „Du"-Marker auf der Distanzlinie in einem
     ruhigen Rein-raus-Rhythmus und treibt die Verbindungslinie.
     Beim ersten Sichtbarwerden setzen sich Achse, Band und Marker. */
  .bv3.box.js-motion .box-axis,
  .bv3.box.js-motion .box-band,
  .bv3.box.js-motion .box-axis__tick { opacity: 0; transition: opacity 700ms var(--box-ease-calm); }
  .bv3.box.js-motion .box-range.is-lit .box-axis { opacity: 1; transition-delay: 60ms; }
  .bv3.box.js-motion .box-range.is-lit .box-axis__tick { opacity: 1; transition-delay: 200ms; }
  .bv3.box.js-motion .box-range.is-lit .box-band { opacity: 1; transition-delay: 360ms; }

  .bv3.box.js-motion .box-mark,
  .bv3.box.js-motion .box-gap { opacity: 0; transition: opacity 600ms var(--box-ease-calm); }
  .bv3.box.js-motion .box-range.is-lit .box-mark--opp { opacity: 1; transition-delay: 520ms; }
  .bv3.box.js-motion .box-range.is-lit .box-mark--you { opacity: 1; transition-delay: 760ms; }
  .bv3.box.js-motion .box-range.is-lit .box-gap { opacity: 1; transition-delay: 900ms; }

  /* Treffer-Puls · JS schaltet .is-hit auf .box-hit */
  .bv3.box .box-hit.is-hit { animation: box-hit-pop 620ms var(--box-ease-calm); }
  .bv3.box .box-hit.is-hit::before { animation: box-hit-ring 620ms var(--box-ease-calm); }
  @keyframes box-hit-pop { 0% { opacity: 0; transform: translate(-50%,-50%) scale(0.7); } 30% { opacity: 1; transform: translate(-50%,-160%) scale(1); } 100% { opacity: 0; transform: translate(-50%,-220%) scale(1); } }
  @keyframes box-hit-ring { 0% { opacity: 0.9; transform: translate(-50%,-50%) scale(0.4); } 100% { opacity: 0; transform: translate(-50%,-50%) scale(2.4); } }

  /* ── SIGNATUR · ALTERNATIVE · RADAR ──────────────────────────
     Ringe, Zentrum und Strahl setzen sich beim Sichtbarwerden;
     JS treibt danach den Rein-raus-Rhythmus von „Du". */
  .bv3.box.js-motion .box-radar .box-ring,
  .bv3.box.js-motion .box-core,
  .bv3.box.js-motion .box-radar__svg,
  .bv3.box.js-motion .box-dot,
  .bv3.box.js-motion .box-zone { opacity: 0; transition: opacity 700ms var(--box-ease-calm); }
  .bv3.box.js-motion .box-range.is-lit .box-ring--outer  { opacity: 1; transition-delay: 80ms; }
  .bv3.box.js-motion .box-range.is-lit .box-ring--inner  { opacity: 1; transition-delay: 220ms; }
  .bv3.box.js-motion .box-range.is-lit .box-ring--strike { opacity: 1; transition-delay: 360ms; }
  .bv3.box.js-motion .box-range.is-lit .box-zone         { opacity: 1; transition-delay: 520ms; }
  .bv3.box.js-motion .box-range.is-lit .box-core         { opacity: 1; transition-delay: 560ms; }
  .bv3.box.js-motion .box-range.is-lit .box-radar__svg   { opacity: 1; transition-delay: 720ms; }
  .bv3.box.js-motion .box-range.is-lit .box-dot          { opacity: 1; transition-delay: 880ms; }

  /* Treffer-Puls · JS schaltet .is-hit auf .box-pulse */
  .bv3.box .box-pulse.is-hit { animation: box-pulse-go 660ms var(--box-ease-calm); }
  @keyframes box-pulse-go { 0% { opacity: 0.9; transform: translate(-50%,-50%) scale(0.3); } 100% { opacity: 0; transform: translate(-50%,-50%) scale(2.4); } }

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

  /* ─ Bild-Band & Ring-Card · Entrance-Zoom (Parallax liegt auf __fig) ─ */
  .bv3.box.js-motion .box-photoband__fig .box-ph,
  .bv3.box.js-motion .box-photoband__fig img,
  .bv3.box.js-motion .box-ringcard__fig .box-ph,
  .bv3.box.js-motion .box-ringcard__fig img { transform: scale(1.07); transition: transform 1600ms var(--box-ease-calm); }
  .bv3.box.js-motion .box-photoband.is-seen .box-ph,
  .bv3.box.js-motion .box-photoband.is-seen img,
  .bv3.box.js-motion .box-ringcard.is-seen .box-ph,
  .bv3.box.js-motion .box-ringcard.is-seen img { transform: none; }
}
