/* Match the original pre-custom hero/closing primary button: hover #532da3,
   background .2s ease, transform none, filter none, opacity 1.
   Lavender resting fills remain unchanged; active fill matches the reference hover.
   Pointer hover is gated so touch taps do not leave sticky hover feedback. */
:root {
  --hula-hover-light: #532da3;
  --hula-pressed-light: #532da3;
  --hula-interaction-ink: #fff;
  --hula-hover-purple: #532da3;
  --hula-pressed-purple: #532da3;
}
body :is(button, a.button, a.text-link, .header nav a, .back-top, [role="button"]):not(.portrait-panel) {
  --control-hover: var(--hula-hover-light);
  --control-pressed: var(--hula-pressed-light);
  --control-ink: var(--hula-interaction-ink);
  transition: background .2s ease, transform .2s ease;
  -webkit-tap-highlight-color: #9470d433;
  touch-action: manipulation;
}
body :is(.primary, .header-cta) {
  --control-hover: var(--hula-hover-purple) !important;
  --control-pressed: var(--hula-pressed-purple) !important;
  --control-ink: #fff !important;
}
/* These small controls gain a usable touch target; no state changes their box. */
body .dialog-close { width: 44px; height: 44px; }
body .menu-toggle { min-width: 44px; min-height: 44px; }
body .detail-back,
body .agent-detail-footer button { min-height: 44px; }
body #tools .integration-access button { min-height: 44px; }
body #experience .experience-pause:focus { min-height: 44px; }
body .back-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 auto;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 0;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
@media (hover: hover) and (pointer: fine) {
  body :is(button, a.button, a.text-link, .header nav a, .back-top, [role="button"]):not(.portrait-panel):not(:disabled):not([aria-disabled="true"]):hover {
    background-color: var(--control-hover) !important;
    background-image: none !important;
    color: var(--control-ink) !important;
    transform: none !important;
    filter: none !important;
  }
  body .agent-card:hover :is(.tab-no, .agent-card-copy, strong, small, .card-explore, .card-explore span) { color: inherit !important; }
  body .menu-toggle:hover span { background: currentColor; }
}
body :is(button, a.button, a.text-link, .header nav a, .back-top, [role="button"]):not(.portrait-panel):not(:disabled):not([aria-disabled="true"]):is(:active,[data-pointer-pressed="true"]) {
  background-color: var(--control-pressed) !important;
  background-image: none !important;
  color: var(--control-ink) !important;
  transform: none !important;
}
body .agent-card:is(:active,[data-pointer-pressed="true"]) :is(.tab-no, .agent-card-copy, strong, small, .card-explore, .card-explore span) { color: inherit !important; }
body .menu-toggle:is(:active,[data-pointer-pressed="true"]) span { background: currentColor; }
body :is(button, a.button, a.text-link, .header nav a, .back-top, [role="button"]):not(.portrait-panel):focus-visible {
  outline: 3px solid #6539c0 !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 2px #fff !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  body :is(button, a.button, a.text-link, .header nav a, .back-top, [role="button"]):not(.portrait-panel) {
    transition-duration: 0s !important;
    animation: none !important;
  }
}
