/* ── Scroll-reveal ── */
[data-animate] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}
[data-animate-delay="1"] { transition-delay: 0.08s; }
[data-animate-delay="2"] { transition-delay: 0.16s; }
[data-animate-delay="3"] { transition-delay: 0.24s; }
[data-animate-delay="4"] { transition-delay: 0.32s; }
[data-animate-delay="5"] { transition-delay: 0.40s; }
[data-animate-delay="6"] { transition-delay: 0.48s; }

/* ── Hero entrance (page load, above-fold) ── */
.hero-eyebrow { animation: hero-in 0.65s cubic-bezier(0.4, 0, 0.2, 1) both; }
.hero-headline { animation: hero-in 0.65s cubic-bezier(0.4, 0, 0.2, 1) 0.12s both; }
.hero-sub      { animation: hero-in 0.65s cubic-bezier(0.4, 0, 0.2, 1) 0.24s both; }
.hero-actions  { animation: hero-in 0.65s cubic-bezier(0.4, 0, 0.2, 1) 0.38s both; }
@keyframes hero-in {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Skeleton loader ── */
.skeleton-row {
  height: 54px;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--gray-light) 25%, rgba(255,255,255,0.06) 50%, var(--gray-light) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
}
.skeleton-card {
  border-radius: 10px;
  background: var(--gray-light);
  overflow: hidden;
  min-height: 180px;
  animation: skeleton-shimmer 1.4s ease infinite;
}
.skeleton-block {
  border-radius: 4px;
  background: rgba(255,255,255,0.07);
  margin: 16px 16px 0;
}
@keyframes skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Wappen watermark ── */
.wappen-watermark {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}
@media (max-width: 640px) {
  .wappen-watermark { opacity: 0 !important; }
}
