/* =============================================
   Scroll-Reveal & Animation System
   AGGRESSIVE – Stärke & Wille
   ============================================= */

/* --- Base reveal states --- */
.reveal {
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal.reveal-up {
  transform: translateY(60px);
}

.reveal.reveal-down {
  transform: translateY(-60px);
}

.reveal.reveal-left {
  transform: translateX(-80px);
}

.reveal.reveal-right {
  transform: translateX(80px);
}

.reveal.reveal-scale {
  transform: scale(0.85);
}

.reveal.reveal-slam {
  transform: translateY(-100px) scale(1.1);
}

/* Revealed state */
.reveal.revealed {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1) rotate(0deg);
}

/* --- Floating animation (Hero Logo) – aggressive bob --- */
@keyframes heroFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-18px) scale(1.02); }
  60% { transform: translateY(-8px) scale(1.01); }
}

.float {
  animation: heroFloat 3s ease-in-out infinite;
}

/* --- Pulse glow – AGGRESSIVE --- */
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(232, 161, 77, 0.6); }
  50% { box-shadow: 0 0 30px 12px rgba(232, 161, 77, 0.3); }
}

.pulse-glow {
  animation: pulseGlow 2s ease-in-out infinite;
}

/* --- Fire glow for CTAs --- */
@keyframes fireGlow {
  0%, 100% {
    box-shadow: 0 0 8px rgba(232, 161, 77, 0.4),
                0 0 20px rgba(232, 161, 77, 0.2),
                0 4px 12px rgba(0, 0, 0, 0.3);
  }
  50% {
    box-shadow: 0 0 16px rgba(232, 161, 77, 0.6),
                0 0 40px rgba(232, 161, 77, 0.3),
                0 4px 12px rgba(0, 0, 0, 0.3);
  }
}

.fire-glow {
  animation: fireGlow 2s ease-in-out infinite;
}

/* --- Shimmer effect for text --- */
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

.text-shimmer {
  background: linear-gradient(
    90deg,
    var(--clr-white) 0%,
    rgba(255, 200, 100, 0.9) 25%,
    var(--clr-white) 50%,
    rgba(255, 200, 100, 0.9) 75%,
    var(--clr-white) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 3s linear infinite;
}

/* --- Countdown --- */
.countdown-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  z-index: 3;
  position: relative;
}

.countdown-label {
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 4px;
  color: rgba(255, 255, 255, 0.7);
}

.countdown-opponent {
  font-size: 17px;
  font-weight: 900;
  color: var(--clr-white);
  text-transform: uppercase;
  letter-spacing: 1px;
}

#countdown {
  display: flex;
  align-items: center;
  gap: 6px;
}

.cd-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(232, 161, 77, 0.3);
  border-radius: 8px;
  padding: 10px 16px;
  min-width: 68px;
}

.cd-num {
  font-size: 32px;
  font-weight: 900;
  color: var(--clr-white);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.cd-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  color: rgba(232, 161, 77, 0.9);
  letter-spacing: 2px;
  margin-top: 4px;
}

.cd-sep {
  font-size: 28px;
  font-weight: 900;
  color: rgba(232, 161, 77, 0.5);
  padding: 0 2px;
  align-self: flex-start;
  margin-top: 8px;
}

.cd-live {
  font-size: 32px;
  font-weight: 900;
  color: var(--clr-white);
  text-transform: uppercase;
  letter-spacing: 6px;
  animation: fireGlow 1.5s ease-in-out infinite;
  background: rgba(0, 0, 0, 0.4);
  padding: 12px 40px;
  border-radius: 8px;
  border: 1px solid rgba(232, 161, 77, 0.5);
}

@media (max-width: 600px) {
  .countdown-wrapper {
    gap: 6px;
    margin-top: 14px;
    padding: 0 12px;
  }

  .countdown-label {
    font-size: 11px;
    letter-spacing: 2px;
  }

  .countdown-opponent {
    font-size: 12px;
    letter-spacing: 0.5px;
    text-align: center;
    line-height: 1.4;
  }

  #countdown {
    gap: 4px;
  }

  .cd-block {
    min-width: 48px;
    padding: 6px 8px;
    border-radius: 6px;
  }

  .cd-num {
    font-size: 22px;
  }

  .cd-label {
    font-size: 8px;
    letter-spacing: 1px;
  }

  .cd-sep {
    font-size: 20px;
    margin-top: 4px;
  }
}

/* --- Diagonal section dividers (sharp, aggressive) --- */
.slash-divider {
  position: relative;
  height: 80px;
  overflow: hidden;
}

.slash-divider::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  clip-path: polygon(0 0, 100% 60%, 100% 100%, 0 100%);
}

/* --- Wave section dividers --- */
.wave-top,
.wave-bottom {
  display: block;
  width: 100%;
  height: auto;
  line-height: 0;
}

.wave-top {
  margin-bottom: -2px;
  background: transparent;
}

.wave-bottom {
  margin-top: -2px;
  background: transparent;
}

.wave-top svg,
.wave-bottom svg {
  display: block;
  width: 100%;
  height: auto;
}

/* --- Gradient text --- */
.gradient-text {
  background: linear-gradient(135deg, var(--clr-white), rgba(255, 200, 100, 0.8));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* --- Tilt card --- */
.tilt {
  transition: transform 0.12s ease, box-shadow 0.2s ease;
}

.tilt:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
}

/* --- Animated underline for links --- */
.animated-link {
  position: relative;
  display: inline-block;
}

.animated-link::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--clr-primary);
  transition: width 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.animated-link:hover::after {
  width: 100%;
}

/* --- Noise texture overlay --- */
.noise-overlay {
  position: relative;
}

.noise-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 128px 128px;
  pointer-events: none;
  z-index: 0;
}

/* --- Diagonal stripe pattern --- */
.stripe-overlay {
  position: relative;
}

.stripe-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 40px,
    rgba(0, 0, 0, 0.02) 40px,
    rgba(0, 0, 0, 0.02) 42px
  );
  pointer-events: none;
  z-index: 0;
}

/* --- Skewed background accent --- */
.skew-bg {
  position: relative;
}

.skew-bg::before {
  content: "";
  position: absolute;
  top: -30px;
  left: -5%;
  right: -5%;
  bottom: -30px;
  background: inherit;
  transform: skewY(-2deg);
  z-index: -1;
}

/* --- Clip diagonal --- */
.clip-diagonal {
  clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%);
}

@media (max-width: 860px) {
  .clip-diagonal {
    clip-path: polygon(0 2%, 100% 0, 100% 98%, 0 100%);
  }
}

/* --- Orange accent bar (used on section titles) --- */
.accent-bar {
  display: inline-block;
  position: relative;
  padding-left: 16px;
}

.accent-bar::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  bottom: 4px;
  width: 4px;
  background: var(--clr-primary);
  border-radius: 2px;
}

/* --- Glitch flash for big moments --- */
@keyframes glitchFlash {
  0%, 100% { opacity: 1; }
  5% { opacity: 0.8; transform: translateX(-2px); }
  10% { opacity: 1; transform: translateX(2px); }
  15% { opacity: 0.9; transform: translateX(0); }
}

.glitch-hover:hover {
  animation: glitchFlash 0.4s ease;
}
