/* Hover feedback for mouse/trackpad users, shared by both sites.
   Independent scale leaves the existing logo transforms and positions intact. */
:where(button, a[href], summary, [role="button"], [role="tab"], [role="switch"]) {
  transition: scale 140ms ease, filter 140ms ease;
}
html body :is(button, a[href], summary, [role="button"], [role="tab"], [role="switch"]):not(:disabled):not([aria-disabled="true"]):not([draggable="true"]):not([data-no-press-feedback]):not(.drag-handle,.favorite-handle,.my-chart-reorder,.coin-card,.market-card,.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link):not(.bull-is-pressed):not(:active).bull-is-hovered {
  cursor: pointer;
  scale: 1.018;
  filter: brightness(1.06) drop-shadow(0 3px 4px rgba(7, 72, 43, .16)) !important;
}
/* Individual scale preserves existing transforms, logo positions and skewed text.
   No layout changes and no synthetic clicks, including on iOS touch devices. */
html body .bull-is-pressed {
  filter: brightness(.94) saturate(1.04) !important;
  scale: .985;
}
@media (prefers-reduced-motion: reduce) {
  html body .bull-is-pressed { scale: none; }
}

@media (prefers-reduced-motion: reduce) {
  html body :is(button, a[href], summary, [role="button"], [role="tab"], [role="switch"]).bull-is-hovered {
    scale: none !important;
    transition: none !important;
  }
}

/* Board shortcuts and detail cards share a lift, then return on press. */
html body :is(.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link) {
  --bull-lift: -2px;
  transform: none;
}
html body .market-card:not(.is-reorder-editing,.is-reordering) {
  --bull-lift: -1px;
}
html body :is(.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link,.market-card:not(.is-reorder-editing,.is-reordering)) {
  translate: 0 0;
  transition: translate var(--bull-lift-duration, 150ms) ease-out,
    filter var(--bull-lift-duration, 150ms) ease-out,
    border-color var(--bull-lift-duration, 150ms) ease-out;
}
html body :is(.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link,.market-card:not(.is-reorder-editing,.is-reordering)):not(:active,.bull-is-pressed).bull-is-hovered {
  translate: 0 var(--bull-lift);
  filter: drop-shadow(0 3px 4px rgba(8, 39, 45, .23));
}
html body .market-card:not(.is-reorder-editing,.is-reordering,:active,.bull-is-pressed).bull-is-hovered {
  border-color: #7a9a96;
}
html body :is(.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link,.market-card:not(.is-reorder-editing,.is-reordering)):is(:active,.bull-is-pressed) {
  scale: none;
  filter: brightness(.95);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --bull-lift-duration: 0ms;
  }
  html body :is(.pulse-entry,.market-pulse-entry,.compare-entry,.demo-trade-toggle,.stock-demo-toggle,.feature-cta,.stock-feature-link,.market-card:not(.is-reorder-editing,.is-reordering)) {
    --bull-lift: 0px;
  }
}
