/* Progressive enhancement: content never depends on an observer to be visible. */
.reveal { opacity:1; transform:none; }
.reveal.visible { animation:reveal-entry .45s ease-out; }
@keyframes reveal-entry { from { transform:translateY(12px); } to { transform:none; } }
[hidden] { display:none !important; }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline:2px solid var(--violet-light); outline-offset:4px;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto !important; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
}
@media (max-width:768px) {
  body[data-bootcamp] { padding-bottom:calc(var(--sticky-height, 110px) + 16px); }
  body[data-bootcamp] .sticky-cta { padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px)); flex-wrap:wrap; }
  body[data-bootcamp] .sticky-cta .btn { white-space:normal; text-align:center; }
  body[data-bootcamp] .whatsapp-float { bottom:calc(var(--sticky-height, 110px) + 16px); }
  body[data-bootcamp] .price-row { flex-wrap:wrap; }
  body[data-bootcamp] .js-price-block { white-space:normal !important; }
}
