The gift rules
Two gifts per villager per week (resetting Mondays), one on a birthday (which does not count against the weekly limit). Gift values: loved +80 points, liked +45, neutral +20, disliked −20, hated −40. Birthdays multiply the outcome by 8 — a loved birthday gift is +640 points, over 2.5 hearts in one item, which is why the calendar’s birthdays matter more than any gifting schedule.
Decay and the floors
Friendship decays 10 points per day for villagers you have not gifted or talked to, stopping at the last heart earned... (actually it decays until reaching zero past earned hearts’ decay floor — the practical rule: talk to everyone daily, it grants a small daily bump and stops decay). Hearts gate recipes, cutscenes, and marriage at 10; the town’s specials unlock at 2–6 hearts.
The efficient loop
Keep a loved-gift cheat sheet (the wiki’s loved lists per villager), farm the universal loves (golden pumpkin, rabbit’s foot work for everyone except one or two villagers), and save loved items for birthdays. A daily 20-minute town loop — gifts twice a week, talk daily — carries every villager to heart milestones without thinking.