/* === LEVANTIS site-fx.css === */
:root { --lev-blue: #59C6F1; }

/* M3: Scroll Progress Bar */
#lev-progress {
  position: fixed; top: 0; left: 0; height: 2px;
  background: var(--lev-blue); width: 0; z-index: 10000;
  pointer-events: none;
}

/* M2: Header Hide/Show */
.lev-nav-wrap { transition: transform 0.3s ease; }
.lev-nav-wrap.nav-hidden { transform: translateY(-100%); }

/* M1: Tap Scale (mobile) */
@media (hover: none) {
  .tap-feedback:active {
    transform: scale(0.97) !important;
    transition: transform 0.1s ease !important;
  }
}

/* M5: Tap Ripple */
@keyframes lev-ripple {
  to { transform: translate(-50%,-50%) scale(15); opacity: 0; }
}

/* M6: View Transitions */
@keyframes lev-slide-out {
  to { opacity: 0; transform: translateX(-20px); }
}
@keyframes lev-slide-in {
  from { opacity: 0; transform: translateX(20px); }
}
::view-transition-old(root) { animation: lev-slide-out 0.22s ease-in both; }
::view-transition-new(root) { animation: lev-slide-in 0.28s ease-out both; }

/* D5: Wipe Reveal (beratungs-tools) */
.wipe-reveal {
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  transition: clip-path 0.6s cubic-bezier(0.4,0,0.2,1),
              opacity 0.5s cubic-bezier(0.4,0,0.2,1);
}
.wipe-reveal.revealed { clip-path: inset(0 0 0% 0); opacity: 1; }

/* D6: Team Flip Shimmer (::before on front face)
   Welle KK-16 (2026-05-12): blaues Schimmer-Overlay entfernt — User-Feedback:
   das blaue Glanz-Banner ueber den Team-Karten wirkte stoerend. 3D-Tilt
   (perspective-rotateX/Y in site-fx.js) bleibt unveraendert erhalten.
   Reduced-motion-Override (siehe unten) bleibt als no-op stehen, damit
   bestehende Caches nicht ueber unbekannte Selektoren stolpern. */

/* D7: Info-Card Glint Sweep */
@media (hover: hover) {
  .glint-card { position: relative; }
  .glint-card::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(105deg, transparent 35%, rgba(89,198,241,0.10) 50%, transparent 65%);
    background-size: 200% 100%;
    background-position: -100% 0;
    transition: background-position 0.55s ease;
    pointer-events: none; z-index: 2;
    border-radius: inherit;
  }
  .glint-card:hover::after { background-position: 100% 0; }
}

/* D8: Vertical Border-Left Draw */
.border-draw-h2 { position: relative; padding-left: 1.25rem; }
.border-draw-h2::before {
  content: '';
  position: absolute; left: 0; top: 0;
  width: 4px; height: 0;
  background: var(--lev-blue); border-radius: 2px;
  transition: height 0.6s ease-out;
}
.border-draw-h2.drawn::before { height: 100%; }

/* D2: Kontakt Step Slide */
.funnel-step {
  transition: transform 0.32s ease-out, opacity 0.32s ease-out;
}

/* M4: Swipe Carousel (mobile) */
@media (max-width: 768px) {
  .mobile-swipe {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0 !important;
    flex-wrap: nowrap !important;
  }
  .mobile-swipe::-webkit-scrollbar { display: none; }
  .mobile-swipe > * {
    flex-shrink: 0 !important;
    min-width: min(85vw, 340px) !important;
    scroll-snap-align: center;
    margin-right: 1rem;
  }
}

/* Reduced motion overrides */
@media (prefers-reduced-motion: reduce) {
  .wipe-reveal { clip-path: none !important; opacity: 1 !important; transition: none !important; }
  .border-draw-h2::before { height: 100% !important; transition: none !important; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
  .funnel-step { transition: none !important; }
  .flip-card-front::before { display: none !important; }
}

/* TEIL A: Boot Overlay */
#boot-overlay {
  position: fixed; inset: 0; z-index: 99999; pointer-events: none;
}
.boot-half {
  position: absolute; top: 0; bottom: 0; width: 50%;
  background: #000;
  transition: transform 0.65s cubic-bezier(0.76, 0, 0.24, 1);
  will-change: transform;
}
.boot-left { left: 0; }
.boot-right { right: 0; }
#boot-overlay.boot-split .boot-left  { transform: translateX(-100%); }
#boot-overlay.boot-split .boot-right { transform: translateX(100%); }
.boot-logo-wrap {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  z-index: 2; pointer-events: none;
  transition: opacity 0.5s ease-in, transform 0.5s ease-in, filter 0.6s ease;
}
#boot-overlay.boot-hide .boot-logo-wrap {
  opacity: 0;
  transform: scale(0.85);
}
#boot-overlay.boot-glow .boot-logo-wrap {
  filter: drop-shadow(0 0 30px #59C6F1) drop-shadow(0 0 60px rgba(89,198,241,0.5));
}
.boot-logo-clip {
  clip-path: inset(100% 0 0 0);
  animation: boot-reveal 1.8s cubic-bezier(0.25, 1, 0.5, 1) 0.1s forwards;
}
@keyframes boot-reveal {
  to { clip-path: inset(0% 0 0 0); }
}
#boot-logo {
  max-width: 180px; width: auto; height: auto; display: block;
}

/* C1: Pulsing CTA Glow */
@keyframes lev-cta-pulse {
  0%, 100% { box-shadow: 0 0 6px 1px rgba(89,198,241,0.18); }
  50%       { box-shadow: 0 0 20px 7px rgba(89,198,241,0.52); }
}
@media (prefers-reduced-motion: no-preference) {
  .btn-filled, .btn-primary, .shimmer-highlight {
    animation: lev-cta-pulse 2.6s ease-in-out infinite;
  }
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .btn-filled:hover, .btn-primary:hover, .shimmer-highlight:hover {
    animation-play-state: paused;
  }
}

/* C2: Logo Shimmer Sweep */
@media (hover: hover) and (pointer: fine) {
  header a[href="index.html"]:has(img) {
    position: relative; overflow: hidden; display: inline-block;
  }
  header a[href="index.html"]:has(img)::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(89,198,241,0.28) 50%, transparent 100%);
    transform: translateX(-110%);
    transition: transform 0.78s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none; z-index: 5;
  }
  header a[href="index.html"]:has(img):hover::after {
    transform: translateX(110%);
  }
}

/* TEIL B: 3D Tilt Card (team.html, desktop mouse only) */
@media (hover: hover) and (pointer: fine) {
  .flip-card-front { transform-style: preserve-3d; }
  .flip-card-front .member-img-container { transform: translateZ(40px); will-change: transform; }
  .flip-card-front h2  { transform: translateZ(25px); will-change: transform; }
  .card-gloss {
    position: absolute; inset: 0; border-radius: inherit;
    background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.16) 0%, transparent 58%);
    pointer-events: none; opacity: 0;
    transition: opacity 0.3s ease;
    transform: translateZ(50px);
    z-index: 8;
  }
  .flip-card:hover .card-gloss { opacity: 1; }
}
