/* RiddleR accessibility and UI polish layer */
.riddler-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#riddler-a11y-live {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}

:where(
  .riddler-container,
  .riddler-auth,
  .riddler-quiz-container,
  .riddler-quiz-catalog,
  .riddler-leaderboard,
  .riddler-header-bar,
  .riddler-box,
  .riddler-cases-landing,
  .riddler-case-reader,
  .rnav,
  .rnav-sheet,
  .rdesk-nav,
  .rdesk-mega,
  .riddle-modal,
  .rqm-dialog,
  .rqconfirm-dialog,
  .rqpdf-dialog,
  .riddler-avatar-modal,
  .ravcm-overlay,
  .rfcm-overlay,
  .rrwa-overlay
) :where(a, button, input, select, textarea, [tabindex]):focus-visible,
:where(.riddle-modal, .rqm-dialog, .rqconfirm-dialog, .rqpdf-dialog, .rnav-sheet, .rdesk-mega, .rrwa-overlay):focus-visible {
  outline: 3px solid currentColor !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.85) !important;
}

:where(
  .riddler-container,
  .riddler-auth,
  .riddler-quiz-container,
  .riddler-quiz-catalog,
  .riddler-leaderboard,
  .riddler-header-bar,
  .riddler-box,
  .riddler-cases-landing,
  .riddler-case-reader,
  .rnav,
  .rnav-sheet,
  .rdesk-nav,
  .rdesk-mega,
  .riddle-modal,
  .rqm-dialog,
  .rqconfirm-dialog,
  .rqpdf-dialog,
  .riddler-avatar-modal,
  .ravcm-overlay,
  .rfcm-overlay,
  .rrwa-overlay
) :where(a, button, input, select, textarea, [tabindex]) {
  scroll-margin-block: 5rem;
}

:where(
  .riddler-container,
  .riddler-auth,
  .riddler-quiz-container,
  .riddler-quiz-catalog,
  .riddler-leaderboard,
  .riddler-header-bar,
  .riddler-box,
  .riddler-cases-landing,
  .riddler-case-reader,
  .rnav,
  .rnav-sheet,
  .rdesk-nav,
  .rdesk-mega,
  .riddle-modal,
  .rqm-dialog,
  .rqconfirm-dialog,
  .rqpdf-dialog,
  .riddler-avatar-modal,
  .ravcm-overlay,
  .rfcm-overlay,
  .rrwa-overlay
) :where(button, .button, input[type="submit"], input[type="button"], [role="button"]) {
  touch-action: manipulation;
}

.riddler-is-loading,
.riddler-is-loading * {
  cursor: progress !important;
}

button.riddler-is-loading,
input[type="submit"].riddler-is-loading,
.riddler-is-loading > button[type="submit"] {
  position: relative;
  opacity: 0.78;
  pointer-events: none;
}

button.riddler-is-loading::after,
input[type="submit"].riddler-is-loading::after,
.riddler-is-loading > button[type="submit"]::after {
  content: "";
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-left: 0.55em;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 999px;
  vertical-align: -0.12em;
  animation: riddler-spin 0.7s linear infinite;
}

@keyframes riddler-spin {
  to { transform: rotate(360deg); }
}

:where(
  .riddler-container,
  .riddler-auth,
  .riddler-quiz-container,
  .riddler-quiz-catalog,
  .riddler-leaderboard,
  .riddler-header-bar,
  .riddler-box,
  .riddler-cases-landing,
  .riddler-case-reader,
  .rnav,
  .rnav-sheet,
  .rdesk-nav,
  .rdesk-mega,
  .riddle-modal,
  .rqm-dialog,
  .rqconfirm-dialog,
  .rqpdf-dialog,
  .riddler-avatar-modal,
  .ravcm-overlay,
  .rfcm-overlay,
  .rrwa-overlay
) :where([aria-disabled="true"], button:disabled, input[type="submit"]:disabled, .riddler-disabled, .is-disabled),
.riddler-disabled {
  opacity: 0.58;
  cursor: not-allowed !important;
}

.riddler-disabled-reason {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.88rem;
  line-height: 1.35;
  opacity: 0.9;
}

.riddle-modal,
.rqm-dialog {
  max-width: min(94vw, 760px);
  max-height: min(92vh, 860px);
  overflow: auto;
  overscroll-behavior: contain;
}

body.riddle-modal-open,
body.rqm-open {
  overflow: hidden;
}

.r-message,
.riddler-notice,
.rq-notice,
.rcl-notice {
  overflow-wrap: anywhere;
}

.riddler-empty-state,
.rq-empty-state,
.rcl-empty-state {
  border: 1px dashed currentColor;
  border-radius: 16px;
  padding: 1rem;
  text-align: center;
  opacity: 0.88;
}

.riddler-meta-help {
  display: block;
  font-size: 0.9rem;
  line-height: 1.35;
  opacity: 0.86;
}

@media (max-width: 640px) {
  .riddle-modal,
  .rqm-dialog {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
  }

  .rqm-footer,
  .riddle-modal-body {
    gap: 0.75rem;
  }

  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  ) :where(button, .button, input[type="submit"], input[type="button"], [role="button"]) {
    min-height: 44px;
  }

  :where(.rnav, .rnav-sheet, .rdesk-nav, .rdesk-mega, .riddler-header-bar) a {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  ),
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  ) *,
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  )::before,
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  )::after,
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  ) *::before,
  :where(
      .riddler-container,
    .riddler-auth,
    .riddler-quiz-container,
    .riddler-quiz-catalog,
    .riddler-leaderboard,
    .riddler-header-bar,
    .riddler-box,
    .riddler-cases-landing,
    .riddler-case-reader,
    .rnav,
    .rnav-sheet,
    .rdesk-nav,
    .rdesk-mega,
    .riddle-modal,
    .rqm-dialog,
    .rqconfirm-dialog,
    .rqpdf-dialog,
    .riddler-avatar-modal,
    .ravcm-overlay,
    .rfcm-overlay,
    .rrwa-overlay
  ) *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }
}
