/* Top page animations/styles imported from chroco_toppage sample */
:root {
  --chroco-green: #70b39c;
  --chroco-green-dark: #619989;
  --chroco-ink: #333333;
  --chroco-soft: #f7f0f0;
}

@keyframes heroTextFloat {
  0%,
  100% {
    transform: translateY(0px) scale(1);
  }
  50% {
    transform: translateY(-6px) scale(1.01);
  }
}

.animate-heroText {
  animation: heroTextFloat 10s ease-in-out infinite;
}

@keyframes heroFlow {
  from {
    background-position: 500px 100px, 0 bottom, 0 0;
  }
  to {
    background-position: 1000px 80px, 300px bottom, 0 0;
  }
}

.animate-hero {
  animation: heroFlow 90s linear infinite;
}

@keyframes bgFlow {
  0% {
    background-position-x: 0;
  }
  100% {
    background-position-x: 2000px;
  }
}

.animate-bgFlow {
  animation: bgFlow 30s linear infinite;
}

@keyframes rotate360 {
  from {
    transform: translateX(-50%) rotate(0deg);
  }
  to {
    transform: translateX(-50%) rotate(360deg);
  }
}

.howto-section::before {
  animation: rotate360 90s linear infinite;
  transform-origin: center center;
}

@keyframes ctaFlow {
  from {
    background-position: 0 top, 0 0;
  }
  to {
    background-position: 300px top, 0 0;
  }
}

.animate-cta {
  animation: ctaFlow 45s linear infinite;
}

@keyframes ctaIconFloat {
  0%,
  100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-4px) rotate(1.5deg);
  }
}

.cta-icon-sync {
  display: inline-block;
  animation: ctaIconFloat 4s ease-in-out infinite;
  transform-origin: center bottom;
}

.cta-delay-1 {
  animation-delay: 0s;
}

.cta-delay-2 {
  animation-delay: 0.2s;
}

.cta-delay-3 {
  animation-delay: 0.4s;
}

.hero-curve {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  width: 100%;
  height: 110px;
  pointer-events: none;
}

.top-latest-scroll {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  gap: 1.25rem;
  overflow-x: auto;
  padding-top: 0.35rem;
  padding-inline: max(0.25rem, calc((100% - min(325px, calc(100vw - 3rem))) / 2));
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0.25rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.top-latest-scroll::-webkit-scrollbar {
  display: none;
  height: 0;
}

.top-latest-scroll::-webkit-scrollbar-thumb {
  background: rgba(98, 153, 137, 0.55);
  border-radius: 9999px;
}

.top-latest-card {
  flex: 0 0 min(325px, calc(100vw - 3rem));
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.top-latest-carousel {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-inline: 0.5rem;
}

.top-latest-nav {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid rgba(115, 115, 115, 0.25);
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.9);
  color: #3f3f46;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  line-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.top-latest-nav svg {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.top-latest-nav:hover {
  background: #ffffff;
}

@media (max-width: 768px) {
  .top-latest-carousel {
    gap: 0.35rem;
  }

  .top-latest-scroll {
    padding-inline: 0.25rem;
    scroll-padding-inline: 0.25rem;
  }

  .top-latest-card {
    flex: 0 0 calc(100% - 0.5rem);
  }

  .top-latest-nav {
    width: 2.1rem;
    height: 2.1rem;
  }

  .top-latest-nav svg {
    width: 0.95rem;
    height: 0.95rem;
  }
}

.top-latest-cover {
  overflow: hidden;
}

.top-latest-ellipsis2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
