Index: chapterx-frontend/src/pages/story/StoryDetailPage.tsx
===================================================================
--- chapterx-frontend/src/pages/story/StoryDetailPage.tsx	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ chapterx-frontend/src/pages/story/StoryDetailPage.tsx	(revision 73b69b22fa1e9888b8530a66db4a150efb8f52bc)
@@ -23,4 +23,6 @@
   const [listModalOpen, setListModalOpen] = useState(false)
   const [newListName, setNewListName] = useState('')
+  const [liveLikes, setLiveLikes] = useState<number | null>(null)
+  const [liveComments, setLiveComments] = useState<number | null>(null)
 
   const story = stories.find(s => s.story_id === Number(id))
@@ -153,5 +155,5 @@
           {/* Action bar */}
           <div className="flex items-center gap-3 flex-wrap">
-            <LikeButton storyId={story.story_id} authorUserId={story.user_id} totalLikes={story.total_likes} />
+            <LikeButton storyId={story.story_id} authorUserId={story.user_id} totalLikes={story.total_likes} onCountChange={setLiveLikes} />
             {currentUser && (
               <Button variant="secondary" size="sm" onClick={() => setListModalOpen(true)}>
@@ -183,5 +185,5 @@
           {/* Comments */}
           <div className="border-t border-slate-700 pt-8">
-            <CommentSection storyId={story.story_id} authorUserId={story.user_id} />
+            <CommentSection storyId={story.story_id} authorUserId={story.user_id} onCountChange={setLiveComments} />
           </div>
         </div>
@@ -203,5 +205,5 @@
               <div className="flex justify-between">
                 <span className="text-slate-400">Likes</span>
-                <span className="text-white">{story.total_likes.toLocaleString()}</span>
+                <span className="text-white">{(liveLikes ?? story.total_likes).toLocaleString()}</span>
               </div>
               <div className="flex justify-between">
@@ -211,5 +213,5 @@
               <div className="flex justify-between">
                 <span className="text-slate-400">Comments</span>
-                <span className="text-white">{story.total_comments}</span>
+                <span className="text-white">{liveComments ?? story.total_comments}</span>
               </div>
               <div className="flex justify-between">
