diff --git a/src/client/pages/Home.tsx b/src/client/pages/Home.tsx
index ba30aa9..2de6417 100644
--- a/src/client/pages/Home.tsx
+++ b/src/client/pages/Home.tsx
@@ -611,12 +611,25 @@ function BoardCard({
{...attributes}
data-issue-id={issue.id}
className={hidden || isDragging ? "opacity-30" : ""}
- // Keeps taps/holds responsive on touch without blocking board scroll
- // (safe with the hold-delay sensor; touch-action:none would kill
- // scrolling over cards).
- style={{ touchAction: "manipulation", transform: CSS.Transform.toString(transform), transition }}
+ // touchAction:manipulation keeps taps/holds responsive without blocking
+ // board scroll (touch-action:none would kill scrolling over cards).
+ // WebkitTouchCallout:none is the fix for PROG-79's drag bug: the card is a
+ // (an ), and iOS Safari fires its native link callout — the
+ // "Open / Copy Link / Share" preview menu — on long-press, which is the
+ // exact press-and-hold gesture that starts a drag. The callout property is
+ // inherited, so setting it here suppresses it for the anchor and its
+ // contents; userSelect:none likewise stops the long-press text-selection
+ // menu. A card is a drag handle / navigation target, not selectable copy.
+ style={{
+ touchAction: "manipulation",
+ WebkitTouchCallout: "none",
+ WebkitUserSelect: "none",
+ userSelect: "none",
+ transform: CSS.Transform.toString(transform),
+ transition,
+ }}
>
-
+