/* ============================================================
   LUKON Tech · Scroll-gekoppelte Segment-Animationen (Scrubbing)
   Mechanische Bewegungssprache: Scans, Achsen-Slides, Zähler —
   nichts floated, nichts rotiert, nichts morpht.
   Doppelt gegated: nur mit Motion-Erlaubnis UND Browser-Support.
   Ohne Support/Motion gilt exakt der eingefrorene Design-Zustand.
   ============================================================ */

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {

    /* ---------- B · Trust-Konsole: Datenlinie lädt als Fortschrittsbalken ---------- */
    .trust::after {
      transform-origin: left center;
      animation:
        data-flow 2.6s linear infinite,
        trust-progress linear both;
      animation-timeline: auto, view();
      animation-range: normal, entry 0% cover 90%;
    }

    .trust::after {
      height: 2px;
      bottom: 0;
      background: repeating-linear-gradient(90deg, #35e0a3b3 0 14px, #35e0a300 14px 26px);
    }

    @keyframes trust-progress {
      from { transform: scaleX(0); opacity: 0.3; }
      to { transform: scaleX(1); opacity: 1; }
    }

    /* ---------- Panels: overflow clip statt hidden (view()-Timeline-Falle) ---------- */
    main > section:nth-of-type(even):not(.hero):not(.page-hero):not(.cta-band),
    .cta-band {
      overflow: clip;
    }

    /* ---------- G · Prozess: Nummern-Nodes schalten nacheinander scharf ---------- */
    .step::before {
      animation: node-fill linear both;
      animation-timeline: view();
      animation-range: entry 0% cover 45%;
    }

    @keyframes node-fill {
      from { filter: grayscale(1) opacity(0.3); transform: scale(0.7); }
      70% { filter: none; transform: scale(1.08); }
      to { filter: none; transform: scale(1); }
    }

    /* ---------- H · CTA-Finale: Orbit-Ringe kalibrieren sich ---------- */
    .cta-band::before {
      animation: ring-calibrate linear both;
      animation-timeline: view();
      animation-range: entry 0% exit 80%;
    }

    @keyframes ring-calibrate {
      from { transform: scale(0.75); opacity: 0.25; }
      to { transform: scale(1.1); opacity: 1; }
    }

  }
}

/* Screenshot-/Testmodus: friert alle Animationen im Basiszustand ein
   (wird von Playwright per html.shotmode gesetzt — kein Produktions-Pfad) */
html.shotmode *,
html.shotmode *::before,
html.shotmode *::after {
  animation: none !important;
  transition: none !important;
}
