/* Hype Card — countdown to top-voted act */

@layer components {
  .hype-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg,
      color-mix(in oklch, oklch(var(--lch-flare)) 15%, var(--color-surface)),
      color-mix(in oklch, oklch(var(--lch-golden)) 10%, var(--color-surface))
    );
    border: 1px solid color-mix(in oklch, oklch(var(--lch-flare)) 30%, var(--color-border));
    border-radius: var(--radius-lg);
    padding: var(--block-space-l) var(--inline-space-l);
    margin-block-end: var(--block-space);
    text-align: center;
  }

  .hype-card--live {
    border-color: oklch(var(--lch-flare));
    animation: hype-glow 2s ease-in-out infinite;
  }

  @keyframes hype-glow {
    0%, 100% { box-shadow: 0 0 8px color-mix(in oklch, oklch(var(--lch-flare)) 30%, transparent); }
    50% { box-shadow: 0 0 20px color-mix(in oklch, oklch(var(--lch-flare)) 50%, transparent); }
  }

  .hype-card__content {
    position: relative;
    z-index: 1;
  }

  .hype-card__artist {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
  }

  .hype-card__stage {
    font-size: 0.875rem;
    color: var(--color-ink-muted);
    margin: 0.25rem 0 0;
  }

  .hype-card__countdown {
    margin-block: var(--block-space);
  }

  .hype-card__timer {
    font-size: 2rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: oklch(var(--lch-flare));
  }

  .hype-card__crew {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-ink-muted);
    margin: var(--block-space-s) 0 0;
  }

  /* Live badge */
  .hype-card__live-badge {
    display: inline-block;
    padding: 0.2em 0.6em;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: oklch(100% 0 0);
    background: oklch(var(--lch-flare));
    border-radius: var(--radius-pill);
    margin-block-end: var(--block-space-s);
    animation: live-pulse 1.5s ease-in-out infinite;
  }

  @keyframes live-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
  }

  /* Emoji rain */
  .hype-card__emoji-rain {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
  }

  .hype-card__emoji {
    position: absolute;
    top: -2rem;
    font-size: 1.5rem;
    animation: emoji-fall 3s ease-in forwards;
    opacity: 0;
  }

  @keyframes emoji-fall {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    100% { transform: translateY(calc(100% + 10rem)) rotate(360deg); opacity: 0; }
  }

  .hype-card__emoji:nth-child(1) { left: 5%; animation-delay: 0s; }
  .hype-card__emoji:nth-child(2) { left: 15%; animation-delay: 0.2s; }
  .hype-card__emoji:nth-child(3) { left: 25%; animation-delay: 0.1s; }
  .hype-card__emoji:nth-child(4) { left: 35%; animation-delay: 0.35s; }
  .hype-card__emoji:nth-child(5) { left: 45%; animation-delay: 0.15s; }
  .hype-card__emoji:nth-child(6) { left: 55%; animation-delay: 0.4s; }
  .hype-card__emoji:nth-child(7) { left: 65%; animation-delay: 0.05s; }
  .hype-card__emoji:nth-child(8) { left: 75%; animation-delay: 0.25s; }
  .hype-card__emoji:nth-child(9) { left: 85%; animation-delay: 0.3s; }
  .hype-card__emoji:nth-child(10) { left: 10%; animation-delay: 0.45s; }
  .hype-card__emoji:nth-child(11) { left: 50%; animation-delay: 0.5s; }
  .hype-card__emoji:nth-child(12) { left: 90%; animation-delay: 0.55s; }
}
