/* =========================================
   DEFERRED CSS — Non-critical styles loaded async
   These styles are NOT needed for the initial hero paint.
   ========================================= */

.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.matrix-glow {
  filter: drop-shadow(0 0 8px rgba(34, 197, 94, 0.6));
}
.scanline-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: rgba(34, 197, 94, 0.4);
  box-shadow: 0 0 15px rgba(34, 197, 94, 0.8);
  animation: scanline 3s linear infinite;
  pointer-events: none;
}

/* --- SCROLL REVEAL --- */
.reveal {
  opacity: 0;
  transform: translateY(44px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left {
  opacity: 0;
  transform: translateX(-48px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-left.visible { opacity: 1; transform: translateX(0); }
.reveal-right {
  opacity: 0;
  transform: translateX(48px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-right.visible { opacity: 1; transform: translateX(0); }
.reveal-scale {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-scale.visible { opacity: 1; transform: scale(1); }

.reveal-delay-1  { transition-delay: 0.1s !important; }
.reveal-delay-2  { transition-delay: 0.2s !important; }
.reveal-delay-3  { transition-delay: 0.3s !important; }
.reveal-delay-4  { transition-delay: 0.4s !important; }
.reveal-delay-5  { transition-delay: 0.5s !important; }
.reveal-delay-6  { transition-delay: 0.6s !important; }

/* --- TEXT SHIMMER --- */
.text-shimmer {
  background: linear-gradient(90deg, #22c55e 0%, #86efac 30%, #22c55e 50%, #4ade80 70%, #22c55e 100%);
  background-size: 250% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: text-shimmer 3.5s linear infinite;
}
@keyframes text-shimmer {
  0%   { background-position: 0% center; }
  100% { background-position: 250% center; }
}

/* --- BUTTON SHINE SWEEP --- */
.btn-shine {
  position: relative;
  overflow: hidden;
}
.btn-shine::after {
  content: '';
  position: absolute;
  top: -50%;
  left: 0;
  width: 55%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.28), transparent);
  animation: shine-sweep 3.5s ease-in-out infinite;
  pointer-events: none;
  border-radius: inherit;
  will-change: transform;
  transform: translateX(-220%);
}
@keyframes shine-sweep {
  0%       { transform: translateX(-220%); }
  40%, 100% { transform: translateX(310%); }
}

/* --- GLOW PULSE BORDER --- */
.glow-pulse {
  box-shadow: 0 0 0 1px rgba(34,197,94,0.4), 0 0 24px rgba(34,197,94,0.15);
  animation: glow-pulse 2.8s ease-in-out infinite;
}
@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(34,197,94,0.35), 0 0 20px rgba(34,197,94,0.1); }
  50%       { box-shadow: 0 0 0 1px rgba(34,197,94,0.75), 0 0 35px rgba(34,197,94,0.28), 0 0 60px rgba(34,197,94,0.08); }
}

/* --- FLOAT ANIMATIONS --- */
.float-slow {
  animation: float-slow 6.5s ease-in-out infinite;
}
.float-slow-d2 {
  animation: float-slow 6.5s ease-in-out 2s infinite;
}
.float-slow-d4 {
  animation: float-slow 6.5s ease-in-out 4s infinite;
}
@keyframes float-slow {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  33%       { transform: translateY(-10px) rotate(2deg); }
  66%       { transform: translateY(-6px) rotate(-1deg); }
}

.hero-float {
  animation: hero-float 8s ease-in-out infinite;
}
@keyframes hero-float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-12px); }
}

/* --- 3D CARD HOVER --- */
.card-3d-hover {
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 0.45s ease;
  will-change: transform;
}
.card-3d-hover:hover {
  transform: translateY(-12px) rotateX(2.5deg) perspective(800px);
  box-shadow: 0 32px 64px rgba(0,0,0,0.65), 0 0 40px rgba(34,197,94,0.12);
}

/* --- PREMIUM GLASS CARD --- */
.glass-card {
  background: rgba(0,0,0,0.52);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.07);
  box-shadow: 0 8px 32px rgba(0,0,0,0.42),
              inset 0 1px 0 rgba(255,255,255,0.06),
              inset 0 -1px 0 rgba(0,0,0,0.25);
}

/* --- STAT GLOW (numbers) --- */
.stat-glow {
  text-shadow: 0 0 20px rgba(34,197,94,0.65),
               0 0 40px rgba(34,197,94,0.3),
               0 0 70px rgba(34,197,94,0.12);
}

/* --- COUNTER PULSE GLOW --- */
.counter-glow {
  animation: counter-glow-anim 2s ease-in-out infinite;
}
@keyframes counter-glow-anim {
  0%, 100% { text-shadow: 0 0 12px rgba(34,197,94,0.45); }
  50%       { text-shadow: 0 0 24px rgba(34,197,94,0.9), 0 0 48px rgba(34,197,94,0.45); }
}

/* --- ANIMATED GRADIENT BORDER --- */
.animated-border {
  position: relative;
  background-clip: padding-box;
}
.animated-border::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg,
    rgba(34,197,94,0.7) 0%,
    transparent 25%,
    rgba(74,222,128,0.3) 50%,
    transparent 75%,
    rgba(34,197,94,0.5) 100%);
  background-size: 300% 300%;
  animation: border-rotate 5s ease infinite;
  z-index: 0;
}
.animated-border > * { position: relative; z-index: 1; }
@keyframes border-rotate {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* --- CARD TOP HIGHLIGHT (on hover) --- */
.card-highlight {
  position: relative;
  overflow: hidden;
}
.card-highlight::before {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, rgba(34,197,94,0.9), transparent);
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
  z-index: 2;
}
.card-highlight:hover::before { opacity: 1; }

/* --- FLOATING AMBIENT ORB --- */
.orb-green {
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.18;
  pointer-events: none;
  position: absolute;
  background: radial-gradient(circle, #22c55e 0%, #16a34a 50%, transparent 70%);
}

/* --- BADGE PULSE --- */
.badge-pulse {
  animation: badge-pulse-anim 2.2s ease-in-out infinite;
}
@keyframes badge-pulse-anim {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.5); }
  50%       { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
}

/* --- STAGGER REVEAL (apply to parent) --- */
.stagger-children > *:nth-child(1) { transition-delay: 0.08s !important; }
.stagger-children > *:nth-child(2) { transition-delay: 0.18s !important; }
.stagger-children > *:nth-child(3) { transition-delay: 0.28s !important; }
.stagger-children > *:nth-child(4) { transition-delay: 0.38s !important; }
.stagger-children > *:nth-child(5) { transition-delay: 0.48s !important; }
.stagger-children > *:nth-child(6) { transition-delay: 0.58s !important; }

/* --- DIVIDER GLOW LINE --- */
.divider-glow {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(34,197,94,0.7) 50%, transparent 100%);
  box-shadow: 0 0 12px rgba(34,197,94,0.5), 0 0 24px rgba(34,197,94,0.2);
}

/* --- COUNTDOWN BLOCK 3D --- */
.countdown-3d {
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.3s ease;
}
.countdown-3d::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, transparent 60%);
  border-radius: inherit;
  pointer-events: none;
}

/* --- PREMIUM SCANLINE (stronger) --- */
.scanline-premium::after {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 2.5px;
  background: linear-gradient(90deg, transparent, rgba(34,197,94,0.9), #86efac, rgba(34,197,94,0.9), transparent);
  box-shadow: 0 0 20px rgba(34,197,94,0.9), 0 0 40px rgba(34,197,94,0.4);
  animation: scanline 3s linear infinite;
  pointer-events: none;
}

/* --- ACESSIBILIDADE: prefers-reduced-motion --- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero-float,
  .float-slow,
  .float-slow-d2 {
    animation: none !important;
  }
  .text-shimmer {
    animation: none !important;
    background: #22c55e !important;
    -webkit-text-fill-color: #22c55e !important;
  }
  .badge-pulse,
  .glow-pulse,
  .stat-glow {
    animation: none !important;
  }
}
