.poster-headline {
  font-size: clamp(3rem, 12vw, 8rem);
  line-height: 0.92;
  letter-spacing: -0.02em;
  text-transform: uppercase;
}

.sticker {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.75rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  font-weight: 600;
  transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease, border-color 150ms ease, color 150ms ease;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
}

.btn svg {
  width: 1rem;
  height: 1rem;
}

.btn-sm {
  height: 2.25rem;
  padding: 0 1rem;
  font-size: 0.875rem;
}

.btn-default {
  height: 2.75rem;
  padding: 0 1.25rem;
  font-size: 0.95rem;
}

.btn-lg {
  height: 3.5rem;
  padding: 0 2rem;
  font-size: 1rem;
}

.btn-xl {
  height: 4rem;
  padding: 0 2.5rem;
  font-size: 1.125rem;
}

.btn-hero {
  background: linear-gradient(90deg, hsl(262 83% 58%), hsl(188 94% 53%), hsl(324 100% 59%));
  color: hsl(var(--foreground));
  font-weight: 700;
}

.btn-hero:hover {
  box-shadow: 0 15px 30px hsl(262 83% 58% / 0.3);
  transform: scale(1.02);
}

.btn-hero:active,
.btn-magenta:active {
  transform: scale(0.98);
}

.btn-hero-outline {
  border: 2px solid hsl(0 0% 100% / 0.2);
  color: hsl(var(--foreground));
  background: transparent;
}

.btn-hero-outline:hover {
  border-color: hsl(188 94% 53% / 0.5);
  background: hsl(var(--card) / 0.5);
  box-shadow: 0 10px 20px hsl(188 94% 53% / 0.1);
}

.btn-neon {
  border: 1px solid hsl(188 94% 53%);
  color: hsl(188 94% 53%);
  background: transparent;
}

.btn-neon:hover {
  background: hsl(188 94% 53% / 0.1);
  box-shadow: 0 10px 20px hsl(188 94% 53% / 0.3);
}

.btn-magenta {
  background: hsl(324 100% 59%);
  color: hsl(255 60% 97%);
  font-weight: 700;
}

.btn-magenta:hover {
  box-shadow: 0 15px 30px hsl(324 100% 59% / 0.3);
  transform: scale(1.02);
}

.btn-outline {
  border: 1px solid hsl(0 0% 100% / 0.1);
  background: transparent;
  color: hsl(var(--foreground));
}

.btn-outline:hover {
  background: hsl(var(--card));
  border-color: hsl(188 94% 53% / 0.5);
}

.nav-scrolled {
  background: hsl(var(--background) / 0.8);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(var(--border));
}

.mobile-menu {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

.mobile-menu.is-open {
  max-height: 420px;
  opacity: 1;
}

.faq-item summary {
  list-style: none;
  cursor: pointer;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

details[open] .faq-content {
  max-height: 220px;
}
