/* Bidfood portal design system — extends Tailwind with brand animation/effects */

:root {
  --bidfood-green: #8bc241;
  --bidfood-navy: #1a1547;
}

body {
  font-family: 'Comfortaa', cursive, sans-serif;
  background: var(--bidfood-navy);
  color: #fff;
}

::selection { background: rgba(139, 194, 65, 0.4); }

/* Section header underline, as in the Bidnews reference */
.section-header { position: relative; }
.section-header::after {
  content: '';
  position: absolute;
  bottom: -6px; left: 0;
  width: 60px; height: 4px;
  background: linear-gradient(to right, #8bc241, #4a3f8f);
  border-radius: 9999px;
}

/* News card hover lift + hard green shadow, from the reference */
.news-card { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s, border-color 0.3s; }
.news-card:hover {
  transform: translateY(-12px) scale(1.03);
  box-shadow: 25px 25px 0 -10px var(--bidfood-green);
}

/* Headline ticker */
.ticker-track { display: flex; width: max-content; animation: tickerSlide 60s linear infinite; }
.ticker-track:hover { animation-play-state: paused; }
@keyframes tickerSlide { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* Hero entrance */
.hero-fade { animation: fadeUp 1s ease both; }
.hero-fade-delay-1 { animation: fadeUp 1s ease 0.15s both; }
.hero-fade-delay-2 { animation: fadeUp 1s ease 0.3s both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* Scroll-reveal — .reveal elements animate in when observed */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* 3D tilt cards (category explorer) */
.tilt-card { transform-style: preserve-3d; transition: transform 0.25s ease, border-color 0.25s; will-change: transform; }
.tilt-card .tilt-inner { transform: translateZ(30px); }

/* Scroll-down indicator */
.scroll-cue { animation: cueBounce 2s infinite; }
@keyframes cueBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(10px); } }

/* Gated preview blur (cosmetic only — real data never reaches the page pre-auth) */
.locked-blur { filter: blur(9px); user-select: none; pointer-events: none; }

/* Progress bars animate on reveal */
.progress-fill { width: 0; transition: width 1.4s cubic-bezier(0.4, 0, 0.2, 1); }

/* Filter chips */
.chip { transition: all 0.2s; }
.chip.active { background: var(--bidfood-green); color: var(--bidfood-navy); border-color: var(--bidfood-green); }

/* Floating hero accents */
.float-slow { animation: floatY 7s ease-in-out infinite; }
.float-slower { animation: floatY 10s ease-in-out infinite reverse; }
@keyframes floatY { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-22px) rotate(3deg); } }

@media (prefers-reduced-motion: reduce) {
  .ticker-track, .float-slow, .float-slower, .scroll-cue, .hero-fade, .hero-fade-delay-1, .hero-fade-delay-2 { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .news-card:hover { transform: none; }
}
