/* font custom properties (originalmente injetadas pelo next/font) */
:root {
  --font-montserrat: "Montserrat", "Montserrat Fallback";
  --font-mono: "JetBrains Mono", "JetBrains Mono Fallback";
}

/* reveal on scroll (JS adds .in via IntersectionObserver) */
.rv {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.rv.in {
  opacity: 1;
  transform: none;
}
html:not(.js-on) .rv {
  opacity: 1;
  transform: none;
}

/* FAQ accordion */
.faq-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.faq-item.open .faq-panel {
  max-height: 600px;
}

/* lightbox */
.lightbox {
  display: none;
}
.lightbox.open {
  display: flex;
}

/* sticky mobile CTA */
#sticky-cta {
  transform: translateY(0);
}
#sticky-cta.hide {
  transform: translateY(100%);
}

/* quiz progress bar + spinner transitions */
.q-progress-fill {
  transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.q-spinner-arc {
  stroke-dasharray: 276.5;
  stroke-dashoffset: 276.5;
  transition: stroke-dashoffset 3.6s ease-in-out;
}
.q-spinner-svg {
  transform: rotate(-90deg);
}
.q-screen {
  animation: q-fade-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes q-fade-in {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
