/* Scoped repair states; incumbent layout, typography, color and imagery stay intact. */
.sneak-caption { pointer-events: none; }
.carousel-pause { position: absolute; right: 0; bottom: 0; width: 32px; height: 32px; color: var(--color-text); background: rgba(10,10,15,.8); border: 1px solid rgba(123,44,191,.4); border-radius: 50%; cursor: pointer; }
[data-carousel] { position: relative; }
:where(button,a,input,[role="button"]):focus-visible { outline: 2px solid var(--color-purple-glow, #c77dff); outline-offset: 4px; }
.age-gate { overflow-y: auto; overscroll-behavior: contain; }
.lightbox-error { max-width: 32ch; padding: 1rem; text-align: center; }
@media (max-height: 650px) { .age-gate { align-items: flex-start; } .age-gate-modal { margin-block: 1rem; } }
.featured-photo[hidden] { display: none; }
.filter-pill:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
/* The panel stays narrow even on desktop: stack rather than squeeze its CTA. */
.exclusive-signup .email-form { flex-direction: column; }
.exclusive-signup .email-form input[type="email"] { min-width: 0; width: 100%; }
.exclusive-signup .email-form .btn { width: 100%; padding-inline: 1rem; }
.nav-toggle { min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
/* Transparent hit boxes retain the incumbent 4px dot bars and 32px pause disc. */
.carousel-dots { align-items: center; gap: 0; margin-top: 0; }
.carousel-dots button { width: 44px; height: 44px; background: transparent; border-radius: 0; position: relative; padding: 0; }
.carousel-dots button::before { content: ''; position: absolute; width: 28px; height: 4px; top: 20px; left: 8px; border-radius: 999px; background: rgba(224,170,255,.25); }
.carousel-dots button.is-active { width: 68px; background: transparent; box-shadow: none; }
.carousel-dots button.is-active::before { width: 52px; background: var(--color-purple-glow); box-shadow: 0 0 15px rgba(199,125,255,.7); }
.carousel-pause { width: 44px; height: 44px; background: transparent; border: 0; isolation: isolate; }
.carousel-pause::before { content: ''; position: absolute; inset: 6px; border: 1px solid rgba(123,44,191,.4); border-radius: 50%; background: rgba(10,10,15,.8); z-index: -1; }
.carousel-arrow { min-width: 44px; min-height: 44px; }
@media (max-width: 400px) {
  .exclusive-signup { padding-inline: 1.5rem; }
}
@media (max-width: 600px) {
  .filter-pill { flex: 0 0 calc(50% - .5rem); min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  /* Static versions of the existing atmosphere, not an invisible decoration wipe. */
  .stars, .stars-2, .orb, .portal-ring, .particle, .age-gate-icon,
  .profile-frame::before, .profile-frame::after, .profile-name,
  .profile-tagline .heart, .card-coming-soon .icon { animation: none; }
  .particle { opacity: .35; }
  .animate-on-scroll, .gallery-item, .age-gate-modal, .links-list .link-button {
    animation: none; opacity: 1; transform: none; transition: none;
  }
  .gallery-item.loading { animation: none; background-position: 50% 0; }
  .lightbox-loader { animation: none; border-color: var(--color-purple-glow); }
  .lightbox-loader::after { content: '…'; display: block; text-align: center; line-height: 44px; }
  .hero-progress span { animation: none; transform: scaleX(1); }
  .sneak-slide, .sneak-slide.is-active { transition: none; transform: none; }
  .age-gate.age-gate-hidden, .lightbox, .lightbox-image, .lightbox-swipe-hint,
  .lightbox-close, .lightbox-nav, .nav-links, .nav-toggle span, .nav-link::before,
  .filter-pill, .gallery-item img, .gallery-item::before, .gallery-item-overlay,
  .gallery-open, .carousel-arrow, .carousel-dots button, .btn, .age-gate-btn,
  .email-form input[type="email"] { transition: none; }
  .age-gate-btn-enter::before, .link-button::before, .social-sigil::before { display: none; }
}
