:root {
  --site-ease: cubic-bezier(.22, .61, .36, 1);
  --site-ease-out: cubic-bezier(.16, 1, .3, 1);
  --site-motion-reveal: 680ms var(--site-ease-out);
  --site-motion-hover: 220ms var(--site-ease);
  --site-motion-media: 720ms var(--site-ease);
  --site-hover-shadow: 0 14px 34px rgba(50, 32, 20, .11);
  --site-hover-border: rgba(216, 184, 139, .28);
}

@keyframes site-hero-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }

  .hero-content,
  .subpage-hero .section-inner,
  .board-hero-content,
  .page-hero-inner {
    animation: site-hero-in 620ms var(--site-ease-out) both;
  }

  .site-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition:
      opacity var(--site-motion-reveal),
      transform var(--site-motion-reveal),
      box-shadow var(--site-motion-hover),
      border-color var(--site-motion-hover),
      background-color var(--site-motion-hover),
      color var(--site-motion-hover);
    transition-delay: calc(min(var(--site-stagger, 0), 5) * 58ms);
    will-change: opacity, transform;
  }

  .site-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .teaser-card:hover,
  .link-card:hover,
  .press-card:hover,
  .video-card:hover,
  .login-card:hover,
  .activity-card:hover,
  .pony-card:hover,
  .sale-card:hover,
  .deck-card:hover,
  .clothing-card:hover,
  .impression-card:hover,
  .value:hover,
  .about-box:hover,
  .contact-box:hover,
  .board-row:hover,
  .board-group:hover,
  .board-member:hover,
  .imprint-block:hover,
  .privacy-intro:hover,
  .privacy-section:hover {
    transform: translateY(-2px) !important;
    border-color: var(--site-hover-border) !important;
    box-shadow: var(--site-hover-shadow) !important;
  }

  .btn,
  .icon-link,
  .round-btn,
  .slider-btn,
  .pony-gallery-btn,
  .section-link,
  .board-cta-btn,
  .teaser-card,
  .link-card,
  .press-card,
  .video-card,
  .login-card,
  .activity-card,
  .pony-card,
  .sale-card,
  .deck-card,
  .clothing-card,
  .impression-card,
  .value,
  .about-box,
  .contact-box,
  .board-row,
  .board-group,
  .board-member,
  .imprint-block,
  .privacy-intro,
  .privacy-section {
    transition:
      transform var(--site-motion-hover),
      box-shadow var(--site-motion-hover),
      border-color var(--site-motion-hover),
      background-color var(--site-motion-hover),
      color var(--site-motion-hover),
      opacity var(--site-motion-hover) !important;
  }

  .btn:hover,
  .icon-link:hover,
  .round-btn:hover,
  .slider-btn:hover,
  .pony-gallery-btn:hover,
  .section-link:hover,
  .board-cta-btn:hover {
    transform: translateY(-2px) !important;
  }

  .teaser-card img,
  .link-card img,
  .press-card img,
  .video-card img,
  .activity-media img,
  .pony-card img,
  .pony-card-media img,
  .clothing-card img,
  .deck-card img,
  .impression-card img,
  .board-group-image img,
  .about-media img {
    transition: transform var(--site-motion-media), filter var(--site-motion-media) !important;
  }

  .teaser-card:hover img,
  .link-card:hover img,
  .press-card:hover img,
  .video-card:hover img,
  .activity-card:hover .activity-media img,
  .pony-card:hover img,
  .pony-card:hover .pony-card-media img,
  .clothing-card:hover img,
  .deck-card:hover img,
  .impression-card:hover img,
  .board-group:hover .board-group-image img {
    transform: scale(1.015) !important;
    filter: saturate(1.03) contrast(1.01) !important;
  }

  .logo img,
  .footer-brand img {
    transition: transform var(--site-motion-hover), opacity var(--site-motion-hover) !important;
  }

  .logo:hover img,
  .footer-brand:hover img {
    transform: translateY(-1px) scale(1.006) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  .site-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
