diff --git a/game/03-JavaScript/time.js b/game/03-JavaScript/time.js
index e2b696690b2c576033dba0eb5c85bfdace87e0ff..275252a9df89f176bced716b58a62fdad2520e7e 100644
--- a/game/03-JavaScript/time.js
+++ b/game/03-JavaScript/time.js
@@ -829,7 +829,7 @@ function dayPassed() {
 	} else {
 		delete V.moorLessDangerAll;
 	}
-	if (V.bird.clean >= 1) V.bird.clean = Math.clamp(V.bird.clean - 8, 0, 100);
+	if (V.bird.clean >= 1) V.bird.clean = Math.clamp(V.bird.clean - (10 - V.bird.upgrades.shelter), 0, 100);
 
 	/* Set flag to determine Kylar's position at lunch */
 	V.daily.kylar.libraryStalk = rollKylarLibraryStalkFlag();
diff --git a/game/base-clothing/update-clothes.js b/game/base-clothing/update-clothes.js
index 48d364e6e3694d7cbec6f6f58f256501527a2df9..e6ac57a96c7d5e3005dfd29f84b947a43e97f66e 100644
--- a/game/base-clothing/update-clothes.js
+++ b/game/base-clothing/update-clothes.js
@@ -483,6 +483,7 @@ function wardrobesUpdate() {
 		V.wardrobes.birdTower = clone(defWardrobe);
 		V.wardrobes.birdTower.name = "Great Hawk's Tower";
 		V.wardrobes.birdTower.unlocked = false;
+		V.wardrobes.birdTower.isolated = true;
 		V.wardrobes.birdTower.space = 15;
 	}
 }
diff --git a/game/overworld-plains/loc-bird/hunts.twee b/game/overworld-plains/loc-bird/hunts.twee
index bdff8f75a906c69b601b37220b835c692c20d99b..2a0cafb8e5564305ef190ffd323fd2afda7d251a 100644
--- a/game/overworld-plains/loc-bird/hunts.twee
+++ b/game/overworld-plains/loc-bird/hunts.twee
@@ -90,17 +90,22 @@
 	<<else>>
 		<<if $monster is 1>>
 			<<bHe>> looks at you for a moment, clearly surprised. "Would be happy to hunt with <<wife>>!" <<bHe>> seems excited. "Much to learn. I will teach <<wife>>. Stay close," <<bhe>> says, beckoning you to the edge of the perch.
-			<br><br>
-
-			<<bHe>> spreads <<bhis>> wings and launches from the tower. You jump out after <<bhim>>. You're not used to flying like <<bhe>> is, but you do your best. With the help of the wind, you're just barely able to keep pace with <<bhim>>, although it's clear <<bhes>> going slower than usual. "<<Wife>> is doing good. <<Wife>> is ready to hunt," <<bhe>> says. <<bHe>> changes direction, and you follow.
 		<<else>>
 			<<bHe>> looks at you for a moment, then lets out a squawk followed by a small, happy screech. <<bHe>> nudges you closer to the edge of the perch.
-			<br><br>
-			
-			<<bHe>> spreads <<bhis>> wings and launches from the tower. You jump out after <<bhim>>. You're not used to flying like <<bhe>> is, but you do your best. With the help of the wind, you're just barely able to keep pace with <<bhim>>, although it's clear <<bhes>> going slower than usual. <<bHe>> screeches and changes direction. You follow <<bhim>>.
 		<</if>>
 		<br><br>
 
+		<<bHe>> spreads <<bhis>> wings and launches from the tower. You jump out after <<bhim>>. You're not used to flying like <<bhe>> is, but you do your best. With the help of the moor's heavy updrafts, you're just barely able to keep pace with <<bhim>>, although it's clear <<bhes>> going slower than usual.
+		<br><br>
+
+		It takes some time, and a lot of effort, for you to gain altitude. Gliding was hard, but this is on another level.
+		<<if $monster is 1>>
+			"<<Wife>> is doing good. <<Wife>> is ready to hunt," <<bhe>> says. <<bHe>> changes direction, and you follow.
+		<<else>>
+			<<bHe>> screeches and changes direction. You follow <<bhim>>.
+		<</if>>
+		<br><br>
+		
 		<<link [[Next (0:30)|Bird Hunt Intro]]>><<pass 30>><<unset $birdPerch>><</link>>
 		<br>
 	<</if>>
@@ -340,6 +345,7 @@ You turn to the <<beasttype>>.
 	<<set $bird.hunts.duo to true>>
 	<<set $dateCount.Total++>><<set $dateCount.GreatHawkHunts++>>
 	<<if Time.dayState is "night">>
+		<<set $daily.birdNightWarning to true>>
 		<<if $monster is 1>>
 			"Hunting at night time? Difficult. If <<wife>> wants to..."
 		<<else>>
@@ -384,6 +390,7 @@ You turn to the <<beasttype>>.
 		You decide to hunt alone. The <<beasttype>> stirs.
 		<<if $monster is 1>>
 			<<if Time.dayState is "night">>
+				<<set $daily.birdNightWarning to true>>
 				"Hunting at night? Difficult. Good luck, <<wife>>," <<bhe>> says. "Return soon."
 			<<else>>
 				"Have a good hunt, <<wife>>," <<bhe>> says. "Return soon."
@@ -412,6 +419,7 @@ You spread your wings and leap from the tower.
 	<<set $bird.hunts.direction to "">>
 	<<set $bird.hunts.distanceNorth to 0>>
 	<<set $bird.hunts.distanceEast to 0>>
+	<<set $bird.hunts.timer to 0>>
 	<<set $moor to 40>>
 <</if>>
 <<if $phase is 1>>
@@ -807,7 +815,7 @@ What will you hunt for?
 	<</addinlineevent>>
 
 	<<if isBloodmoon()>>
-		<<addinlineevent "bird_hunt_blood" 40>>
+		<<addinlineevent "bird_hunt_blood" 8>>
 			You feel your stomach twist. The hairs on the back of your neck stand on end.
 			<br><br>
 
@@ -3599,7 +3607,7 @@ You sit and take a moment to re-orient yourself. You still feel dizzy. You seem
 <</if>>
 
 <<flight_hunt_end>>
-<<link [[Next|Bird Tower]]>><<endevent>><<set $moor to 50>><<set $eventskip to 1>><</link>>
+<<link [[Next|Moor]]>><<endevent>><<set $moor to 50>><<set $eventskip to 1>><</link>>
 <br>
 
 :: Bird Hunt Passout
diff --git a/game/overworld-plains/loc-bird/main.twee b/game/overworld-plains/loc-bird/main.twee
index 3852a70ba3cb394574bf7fa440e13ba14a235109..2744877a9b8ca7d2a90d0e8fe2eeb7178e6c7282 100644
--- a/game/overworld-plains/loc-bird/main.twee
+++ b/game/overworld-plains/loc-bird/main.twee
@@ -1137,33 +1137,29 @@ You are inside <<if $syndromebird is 1>>your tower<<else>>a ruined tower<</if>>,
 	<<if $bird.state is "home">>
 		<<switch $bird.activity>>
 			<<case "sing">>
-				<<if $syndromebird gte 1>>
-					Your spouse is singing at the edge of the tower.
-				<<else>>
-					The <<beasttype>> is singing at the edge of the tower.
-				<</if>>
+				<<your_bird_text "cap">> is singing at the edge of the tower.
 			<<case "bathe">>
-				The <<beasttype>> is bathing in the rainwater pool.
+				<<your_bird_text "cap">> is bathing in the rainwater pool.
 			<<case "groom">>
-				The <<beasttype>> sits on <<bhis>> perch, cleaning <<bhis>> feathers.
+				<<your_bird_text "cap">> sits on <<bhis>> perch, cleaning <<bhis>> feathers.
 			<<case "build">>
 				<<if $birdShelterRepair>>
 					<<unset $birdShelterRepair>>
-					<span class="teal">The <<beasttype>> is covering the holes in the roof with leaves and twigs.</span>
+					<span class="teal"><<your_bird_text "cap">> is covering the holes in the roof with leaves and twigs.</span>
 				<<else>>
-					The <<beasttype>> is adding to the nest.
+					<<your_bird_text "cap">> is adding to the nest.
 				<</if>>
 			<<default>>
-				The <<beasttype>> rests in <<bhis>> nest.
+				<<your_bird_text "cap">> rests in <<bhis>> nest.
 				<<set $birdSleep to 1>>
 		<</switch>>
 	<<else>>
-		The <<beasttype>> is out hunting.
+		<<your_bird_text "cap">> is out hunting.
 	<</if>>
 	<<if $exposed gte 1>>
 		<<if $syndromebird is 1>>
 			<<if $arousal gte $arousalmax / 2 and $bird.state isnot "home">>
-				You find yourself craving your <<if $monster is 1>><<nnpc_wife "Great Hawk">><<else>>partner<</if>>'s wings to keep you warm.
+				You find yourself craving your <<your_bird_text "cap">>'s wings to keep you warm.
 			<</if>>
 		<<else>>
 			<<if $bird.state isnot "home">>
@@ -1179,7 +1175,16 @@ You are inside <<if $syndromebird is 1>>your tower<<else>>a ruined tower<</if>>,
 			<</if>>
 		<</if>>
 	<</if>>
-	<br><br>
+	<br>
+	<<if $syndromebird and $lurkers_held gte 1 and $bird.state is "home" and $bird.activity is "build">>
+		<<ind>><<link "Give <<bhim>> your captured lurker" "Bird Tower Give Captured Lurker">><</link>><<glove>>
+		<br>
+	<</if>>
+	<<if $estate_fence is "quest" and $syndromebird is 1 and $bird.state is "home" and $bird.activity isnot "sleep">>
+		<<askicon>><<link [[Ask for help breaking into the Remy Estate|Bird Tower Estate]]>><</link>>
+		<br>
+	<</if>>
+	<br>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
 		<<if $bird.state isnot "home">>
@@ -1208,6 +1213,25 @@ You are inside <<if $syndromebird is 1>>your tower<<else>>a ruined tower<</if>>,
 			<br><br>
 		<</if>>
 	<</if>>
+
+	<<mooricon "perch">><<link [[Approach the perch|Bird Tower Perch]]>><</link>>
+	<br>
+	<<if $syndromebird isnot 1>>
+		<<crimeicon "mark">><<link [[Look out the tower (0:05)|Bird Tower Look]]>><<bird_pass 5>><</link>>
+		<br>
+		<<investigateicon>><<link [[Search for materials (1:00)|Bird Tower Search]]>><<bird_pass 60>><</link>>
+		<br>
+	<</if>>
+	<<mooricon "rainwater">><<link [[Sit by the rainwater pool|Bird Tower Rainwater Pool]]>><</link>>
+	<br>
+	<<if $syndromebird is 1 and !($leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound")>>
+		<<if $bird.upgrades.firepit gte 1>>
+			<<mooricon "firepit">><<link [[Examine the firepit|Bird Tower Firepit]]>><</link>><<if getBirdBurnTime()>> | <span class="orange"><<firepitTime>></span><</if>>
+			<br>
+		<</if>>
+	<</if>>
+	<br>
+
 	<<if $bird.clean gte 100>>
 		<<if $bird.upgrades.decor gte 4>>
 			<span class="green">Your tower is immaculate.</span>
@@ -1231,84 +1255,61 @@ You are inside <<if $syndromebird is 1>>your tower<<else>>a ruined tower<</if>>,
 			<</if>>
 		<</if>>
 		<br>
-		<<if $worn.handheld.name is "feather duster" or $bird.duster is true or ($bird.upgrades.wardrobe is 1 and getOwnedClothingCount(12, "handheld") gte 1)>>
-			<<edenicon "broom">><<link [[Dust the tower (0:30)|Bird Tower Tidy]]>><<if !$daily.birdHousekeepingSyndrome>><<bird_stockholm 1>><<npcincr "Great Hawk" love 1>><<npcincr "Great Hawk" dom 1>><<set $daily.birdHousekeepingSyndrome to true>><</if>><<housekeeping 1 200>><<bird_pass 30>><</link>><<ghousekeeping 200 "silent">>
+		<<if $tiredness gte (C.tiredness.max / 5) * 4>>
+			<span class="red">You're too exhausted to clean the tower.</span>
 		<<else>>
-			<<edenicon "broom">><<link [[Tidy up the tower (1:00)|Bird Tower Tidy]]>><<if !$daily.birdHousekeepingSyndrome>><<bird_stockholm 1>><<npcincr "Great Hawk" love 1>><<npcincr "Great Hawk" dom 1>><<set $daily.birdHousekeepingSyndrome to true>><</if>><<housekeeping 1 100>><<bird_pass 60>><</link>><<ghousekeeping 100 "silent">>
+			<<if $worn.handheld.name is "feather duster" or $bird.duster is true or ($bird.upgrades.wardrobe is 1 and getOwnedClothingCount(12, "handheld") gte 1)>>
+				<<edenicon "broom">><<link [[Dust the tower (0:30)|Bird Tower Tidy]]>><<if !$daily.birdHousekeepingSyndrome>><<bird_stockholm 1>><<npcincr "Great Hawk" love 1>><<npcincr "Great Hawk" dom 1>><<set $daily.birdHousekeepingSyndrome to true>><</if>><<housekeeping 1 200>><<bird_pass 30>><</link>><<ghousekeeping 200 "silent">>
+			<<else>>
+				<<edenicon "broom">><<link [[Tidy up the tower (1:00)|Bird Tower Tidy]]>><<if !$daily.birdHousekeepingSyndrome>><<bird_stockholm 1>><<npcincr "Great Hawk" love 1>><<npcincr "Great Hawk" dom 1>><<set $daily.birdHousekeepingSyndrome to true>><</if>><<housekeeping 1 100>><<bird_pass 60>><</link>><<ghousekeeping 100 "silent">>
+			<</if>>
+			<<if !$daily.birdHousekeepingSyndrome>><<gbirdstockholm>><<glove>><<gdom>><</if>>
 		<</if>>
-		<<if !$daily.birdHousekeepingSyndrome>><<gbirdstockholm>><<glove>><<gdom>><</if>>
 	<</if>>
 	<br>
 	<<if $syndromebird is 1 and !($leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound")>>
 		<<edenicon "fix">><<link [[Improve the tower|Bird Tower Build]]>><</link>>
 		<br>
-		<<if $bird.upgrades.firepit gte 1>>
-			<<if getBirdBurnTime()>>
-				<<firepitTime>>
-				<br>
-			<</if>>
-			<<mooricon "firepit">><<link [[Examine the firepit|Bird Tower Firepit]]>><</link>>
-			<br>
-		<</if>>
-		<br>
-	<</if>>
-	<<mooricon "perch">><<link [[Approach the perch|Bird Tower Perch]]>><</link>>
-	<br>
-	<<mooricon "rainwater">><<link [[Sit by the rainwater pool|Bird Tower Rainwater Pool]]>><</link>>
-	<br>
-	<<if $syndromebird isnot 1>>
-		<<crimeicon "mark">><<link [[Look out the tower (0:05)|Bird Tower Look]]>><<bird_pass 5>><</link>>
-		<br>
-	<</if>>
-	<<if $bird.lock is 1>>
-		<<investigateicon>><<link [[Examine the trap door (0:05)|Bird Tower Door]]>><<bird_pass 5>><</link>>
-		<br>
-	<<else>>
-		<<getouticon "hole">><<link [[Enter the trap door (0:05)|Bird Tower Base Descend]]>><<bird_pass 5>><</link>>
-		<br>
 	<</if>>
 	<br>
-	<<if $syndromebird isnot 1>>
-		<<investigateicon>><<link [[Search for materials (1:00)|Bird Tower Search]]>><<bird_pass 60>><</link>>
-		<br>
-	<</if>>
-	<<if $syndromebird and $lurkers_held gte 1 and $bird.state is "home" and $bird.activity is "build">>
-		<<ind>><<link "Give <<bhim>> your captured lurker" "Bird Tower Give Captured Lurker">><</link>><<glove>>
-		<br>
-	<</if>>
-	<<if $estate_fence is "quest" and $syndromebird is 1 and $bird.state is "home" and $bird.activity isnot "sleep">>
-		<<askicon>><<link [[Ask for help breaking into the Remy Estate|Bird Tower Estate]]>><</link>>
-		<br>
-	<</if>>
+
 	<<mooricon "nest">><<link [[Sleep in the nest|Bird Tower Bed]]>><</link>>
 	<br>
 	<<if $syndromebird isnot 1>>
 		<<bedicon "zzz">><<link [[Sleep elsewhere|Bird Tower Bed Alone]]>><<bird_stockholm -2>><</link>><<if $syndromebird isnot 1>><<lstockholm>><</if>>
 		<br>
 	<</if>>
-	<<if $bird.upgrades.mirror is 1>>
-		<<if $nextPassageCheck is "Bird Tower Mirror">>
-			<span class="nextLink"><<mirroricon>><<link [[Mirror|Bird Tower Mirror]]>><<preMirror>><</link>></span>
-		<<else>>
-			<<mirroricon>><<link [[Mirror|Bird Tower Mirror]]>><<preMirror>><</link>>
-		<</if>>
-		<br>
-	<</if>>
 	<<if $bird.upgrades.wardrobe is 1>>
 		<<wardrobeicon>><<link [[Wardrobe|Bird Tower Wardrobe]]>><</link>>
 		<br>
 	<<else>>
 		<<if $bird.duster is true>>
-			<<ind>><<link [[Grab your feather duster|Bird Tower]]>><<generalWear handheld 12>><<run delete $bird.duster>><</link>>
+			<<icon "clothes/feather_duster.png">><<link [[Grab your feather duster|Bird Tower]]>><<generalWear handheld 12>><<run delete $bird.duster>><</link>>
 			<<if $worn.handheld.name isnot "naked">>
 				<span class="blue">Will replace your $worn.handheld.name</span>
 			<</if>>
 			<br>
 		<<elseif $worn.handheld.name is "feather duster">>
-			<<ind>><<link [[Hang up your feather duster|Bird Tower]]>><<generalRuined handheld>><<set $bird.duster to true>><</link>>
+			<<icon "clothes/feather_duster.png">><<link [[Hang up your feather duster|Bird Tower]]>><<handheldruined true>><<set $bird.duster to true>><</link>>
 			<br>
 		<</if>>
 	<</if>>
+	<<if $bird.upgrades.mirror is 1>>
+		<<if $nextPassageCheck is "Bird Tower Mirror">>
+			<span class="nextLink"><<mirroricon>><<link [[Mirror|Bird Tower Mirror]]>><<preMirror>><</link>></span>
+		<<else>>
+			<<mirroricon>><<link [[Mirror|Bird Tower Mirror]]>><<preMirror>><</link>>
+		<</if>>
+		<br>
+	<</if>>
+	<br>
+	<<if $bird.lock is 1>>
+		<<investigateicon>><<link [[Examine the trap door (0:05)|Bird Tower Door]]>><<bird_pass 5>><</link>>
+		<br>
+	<<else>>
+		<<getouticon "hole">><<link [[Enter the trap door (0:05)|Bird Tower Base Descend]]>><<bird_pass 5>><</link>>
+		<br>
+	<</if>>
 	<br>
 	<<if $syndromebird is 1>>
 		<br>
@@ -2364,28 +2365,29 @@ You sit by the rainwater pool.
 <<if $bird.state is "home">>
 	<<switch $bird.activity>>
 	<<case "sing">>
-		<<if $syndromebird gte 1>>
-			Your spouse is singing at the edge of the tower.
-		<<else>>
-			The <<beasttype>> is singing at the edge of the tower.
-		<</if>>
+		<<your_bird_text "cap">> is singing at the edge of the tower.
 	<<case "bathe">>
 		<<print either(
-			"The <<beasttype>> playfully splashes at you.",
-			"The <<beasttype>> beckons for you to join <<bhim>>.",
-			"The <<beasttype>> continues bathing.",
-			"The <<beasttype>> shakes <<bhis>> wings off, flinging some water your way.",
+			"<<your_bird_text 'cap'>> playfully splashes at you.",
+			"<<your_bird_text 'cap'>> beckons for you to join <<bhim>>.",
+			"<<your_bird_text 'cap'>> continues bathing.",
+			"<<your_bird_text 'cap'>> shakes <<bhis>> wings off, flinging some water your way.",
 		)>>
 	<<case "groom">>
-		The <<beasttype>> sits on <<bhis>> perch, cleaning <<bhis>> feathers.
+		<<your_bird_text "cap">> sits on <<bhis>> perch, cleaning <<bhis>> feathers.
 	<<case "build">>
-		The <<beasttype>> is adding to the nest.
+		<<if $birdShelterRepair>>
+			<<unset $birdShelterRepair>>
+			<span class="teal"><<your_bird_text "cap">> is covering the holes in the roof with leaves and twigs.</span>
+		<<else>>
+			<<your_bird_text "cap">> is adding to the nest.
+		<</if>>
 	<<default>>
-		The <<beasttype>> rests in <<bhis>> nest.
+		<<your_bird_text "cap">> rests in <<bhis>> nest.
 		<<set $birdSleep to 1>>
 	<</switch>>
 <<else>>
-	The <<beasttype>> is out hunting.
+	<<your_bird_text "cap">>is out hunting.
 <</if>>
 <<if $syndromebird is 1>>
 	<<storeon "birdtower" "check">>
@@ -2731,7 +2733,7 @@ You slowly run your hands down the <<beasttypes>> feathers, towards <<bhis>> <<n
 <<strip>>
 <<wash>>
 You <<if _nude is false>>remove your clothing, and <</if>>slip into the water.
-<<if $bird.upgrades.pot is 3>>
+<<if $bird.upgrades.pot is 3 and getBirdBurnTime() gt 0>>
 	It's pleasently warm. <<stress -6>><<lstress>>
 <<else>>
 	It's cold, but you soon get used to it. <<stress 3>><<gstress>>
@@ -2755,7 +2757,7 @@ You're soon squeaky clean.
 <<strip>>
 <<wash>>
 <<if _nude is false>>You remove your clothing.<</if>> The <<beasttype>> swims to the other side of the pool, making room for you. You slip into the water.
-<<if $bird.upgrades.pot is 3>>
+<<if $bird.upgrades.pot is 3 and getBirdBurnTime() gt 0>>
 	It's pleasently warm. <<stress -3>><<lstress>>
 <<else>>
 	It's cold, but you soon get used to it. <<stress 3>><<gstress>>
@@ -2897,7 +2899,7 @@ After a while, <<bhe>> turns to you.
 <<strip>>
 <<wash>>
 You <<if _nude is false>>remove your clothing, and <</if>>slip into the water with <<bhim>>.
-<<if $bird.upgrades.pot is 3>>
+<<if $bird.upgrades.pot is 3 and getBirdBurnTime() gt 0>>
 	It's pleasently warm. <<stress -6>><<lstress>>
 <<else>>
 	It's cold, but you soon get used to it. <<stress 3>><<gstress>>
@@ -4052,11 +4054,12 @@ Shiny things:
 <<towerValuables>>
 </span>
 <br>
-
-<<if $tiredness gte $tirednessmax>>
-	You're too tired to build anything.
+<<if $bird.clean lte 10>>
+	<span class="pink">The tower is too filthy to improve it.</span>
+<<elseif $tiredness gte (C.tiredness.max / 5) * 4>>
+	<span class="red">You're too tired to build anything.</span>
 <<elseif $hunger gte 2000>>
-	You're too hungry to focus on anything else.
+	<span class="red">You're too hungry to focus on anything else.</span>
 <<else>>
 	<div id="towerUpgrades">
 		<<towerBuildOption duster>>
@@ -4180,7 +4183,7 @@ You also add in some random shiny junk. It won't improve the structure, but it's
 Your spouse works on the nest itself, and the two of you lift the base of it onto the frame you've made.
 <br><br>
 
-While <<bhe>> finishes meticulously placing each stick and log, you begin to sew fabric and lurker leather into small sacks and fill them with leaves. It's the closest thing you'll get to a pillow out here.
+While <<bhe>> finishes meticulously placing each stick and log, you begin to sew fabric and lurker leather into small sacks. You fill them with leaves and feathers. It's the closest thing you'll get to a pillow out here.
 <br><br>
 
 You fill the nest with leaves, and throw two sewn sheets of fabric over the top. They're large enough to hang over the edges. Finally, you throw in your makeshift pillows. All that's left is to test it out.
@@ -4470,7 +4473,7 @@ You move your mirror right next to it.
 <<if $bird.duster is true>>
 	You place your feather duster inside.
 	<<run delete $bird.duster>>
-	<<generalSend "wardrobe" handheld 12>>
+	<<generalSend "birdTower" handheld 12>>
 <</if>>
 <br><br>
 
@@ -4544,18 +4547,27 @@ It looks cute.
 <<else>>
 	<<set _cleanIncrease += 2>>
 <</if>>
-<<set $bird.clean += _cleanIncrease>>
 <br><br>
 
 <<if $bird.state is "home" and ["sing", "groom"].includes($bird.activity)>>
 	<<npc "Great Hawk">><<person1>>
-	<<if C.npc["Great Hawk"].love gte 50>>
-		<<if $syndromebird is 1 and $monster is 1>>
-			Your spouse
+	<<if C.npc["Great Hawk"].love gte 15>>
+		<<if C.npc["Great Hawk"].dom gte 50>>
+			<<if $syndromebird is 1 and $monster is 1>>
+				Your spouse walks
+			<<else>>
+				The <<beasttype>> hops
+			<</if>>
+			over and beats <<bhis>> wings heavily, using the air to push your collected dust and dirt out of the tower.
+			<<set _cleanIncrease += 2>>
 		<<else>>
-			The <<beasttype>>
+			<<if $syndromebird is 1 and $monster is 1>>
+				Your spouse
+			<<else>>
+				The <<beasttype>>
+			<</if>>
+			nuzzles your cheek when you're done.
 		<</if>>
-		nuzzles your cheek when you're done.
 	<<else>>
 		<<if $syndromebird is 1 and $monster is 1>>
 			Your spouse
@@ -4567,6 +4579,8 @@ It looks cute.
 	<br><br>
 <</if>>
 
-<<link [[Next|Bird Tower]]>><<if $propEquipped is 1>><<generalRuined handheld>><</if>><<endevent>><</link>>
+<<set $bird.clean += _cleanIncrease>>
+
+<<link [[Next|Bird Tower]]>><<if $propEquipped is 1>><<handheldruined true>><</if>><<endevent>><</link>>
 <br>
 
diff --git a/game/overworld-plains/loc-bird/widgets.twee b/game/overworld-plains/loc-bird/widgets.twee
index 932f75260df526d569a3b3a30d4dbeabcbe3a1ee..fcca55bf5ecbf0a3010512bb6f9c3b71698f3dfb 100644
--- a/game/overworld-plains/loc-bird/widgets.twee
+++ b/game/overworld-plains/loc-bird/widgets.twee
@@ -78,6 +78,10 @@
 		<</if>>
 	<</if>>
 
+	<<if $bird.hunts?.timer>>
+		<<set $bird.hunts.timer += _args[0]>>
+	<</if>>
+
 	<<if $bird.upgrades?.shelter is 1 and ($weather is "rain" or $weather is "snow")>>
 		<<if $birdShelterTimer is undefined>>
 			<<set $birdShelterTimer to 720>>
@@ -410,7 +414,7 @@
 			<</if>>
 			<<if _random_clothes isnot "piece of fabric">>
 				<br>
-				<<link [[Put it in the wardrobe|Bird Tower Clothes Keep]]>><<generalSend "wardrobe" _random_slot _random_index>><<bird_loot clothes 20>><<npcincr "Great Hawk" love 1>><<transform bird 1>><<bird_stockholm 1>><</link>><<gbirdstockholm>><<glove>>
+				<<link [[Put it in the wardrobe|Bird Tower Clothes Keep]]>><<generalSend "birdTower" _random_slot _random_index>><<bird_loot clothes 20>><<npcincr "Great Hawk" love 1>><<transform bird 1>><<bird_stockholm 1>><</link>><<gbirdstockholm>><<glove>>
 			<</if>>
 		<<else>>
 			<<if $worn[_random_slot].name isnot "naked" and _random_clothes isnot "piece of fabric">>
@@ -519,6 +523,22 @@
 	<</if>>
 <</widget>>
 
+<<widget "your_bird_text">><<silently>>
+	<<if $syndromebird is 1>>
+		<<if $monster is 1>>
+			<<beasttype>><<set $_birdText to either("your spouse", "your _text_output")>>
+		<<else>>
+			<<beasttype>><<set $_birdText to "your " + _text_output>>
+		<</if>>
+	<<else>>
+		<<beasttype>>
+		<<set $_birdText to "the " + _text_output>>
+	<</if>>
+	<<if _args[0] is "cap">>
+		<<set $_birdText to $_birdText.toUpperFirst()>>
+	<</if>>
+<</silently>><<print $_birdText>><</widget>>
+
 <<widget "bird_perch_options">>
 	<<if $bird.state is "hunting" and $bird.timer lte 0>>
 		<<endevent>>
@@ -921,8 +941,39 @@
 		<<flight_time_check _returnTime "silent">>
 		<<print '<<link [[Return to the castle ('+_hoursPassed+':'+ (_minutesPassed lt 10 ? "0" : "") + _minutesPassed + ')|Bird Hunt Return]]>><<set $fatigueMod to _fatigueMod>><<set $flightTime to _flightTime>><<bird_pass _flightTime>><<endevent>><</link>>'>><<print _fatigueText>>
 		<br>
+	<<elseif $bird.hunts.duo is true and $bird.hunts.timer gte 360>>
+		<<endevent>>
+		<<npc "Great Hawk">><<person1>>
+		<<your_bird_text "cap">> looks very fatigued.
+		<<if $monster is 1>>
+			"Been flying too long. We return home."
+		<<else>>
+			<<bHe>> looks to you and caws. You've been flying for hours, and should return home.
+		<</if>>
+		<<bHe>> turns to fly back to the castle, and you follow.
+		<br><br>
+
+		<<flight_distance_check>>
+		<<flight_time_check _returnTime "silent">>
+		<<print '<<link [[Return to the castle ('+_hoursPassed+':'+ (_minutesPassed lt 10 ? "0" : "") + _minutesPassed + ')|Bird Hunt Return]]>><<set $fatigueMod to _fatigueMod>><<set $flightTime to _flightTime>><<bird_pass _flightTime>><<endevent>><</link>>'>><<print _fatigueText>>
+		<br>	
 	<<else>>
 		You return to the higher skies.
+		<<if $bird.hunts.duo is true and $bird.hunts.timer gte 300>>
+			<<endevent>>
+			<<npc "Great Hawk">><<person1>>
+			<<your_bird_text "cap">> is starting to look fatigued.
+		<<elseif $bird.hunts.duo is true and Time.daystate is "dusk" $bird.hunts.timer gte 120 and !$daily.birdNightWarning>>
+			<<endevent>>
+			<<npc "Great Hawk">><<person1>>
+			<<set $daily.birdNightWarning to true>>
+			<<your_bird_text "cap">> looks to the setting sun.
+			<<if $monster is 1>>
+				"Night time soon. Hunt will be harder."
+			<<else>>
+				<<bHe>> then turns to you and caws. It's getting late. Hunting at night time will be more difficult.
+			<</if>>
+		<</if>>
 		<br><br>
 
 		<<endevent>>
@@ -1068,9 +1119,10 @@
 		<<switch $_looted>>
 			<<case "tarp">><<set $bird.hunts.weight += 5>>
 			<<case "tools" "pot">><<set $bird.hunts.weight += 2>>
-			<<case "wood">><<set $bird.hunts.weight += (3 * $_amount)>>
+			<<case "wood">><<set $bird.hunts.weight += (2 * $_amount)>>
 			<<case "leaves">><<set $bird.hunts.weight += (0.5 * $_amount)>>
 			<<case "valuables" "junk">><<set $bird.hunts.weight += (0.2 * $_amount)>>
+			<<case "feathers">><!-- No weight -->
 			<<default>><<set $bird.hunts.weight += $_amount>>
 		<</switch>>
 	<</if>>
@@ -1301,6 +1353,7 @@
 	<<run delete $bird.hunts.returnAccept>>
 	<<run delete $bird.hunts.loot>>
 	<<run delete $bird.hunts.lootAmount>>
+	<<run delete $bird.hunts.timer>>
 <</widget>>
 
 <<widget "firepitTime">>
@@ -1599,7 +1652,8 @@
 							sticks: 8,
 							leaves: 10,
 							junk: 4,
-							leather: 4
+							leather: 4,
+							feathers: 16
 						}>>
 						<<set $_upgrade.upgradesRequired to {
 							tools: 1
diff --git a/game/overworld-plains/loc-moor/events.twee b/game/overworld-plains/loc-moor/events.twee
index 5d22468288d9fee685edc33dbd795bdd6bab7b2f..c4bb177c73b2d2dbb3be43635e495018dfd1a7f7 100644
--- a/game/overworld-plains/loc-moor/events.twee
+++ b/game/overworld-plains/loc-moor/events.twee
@@ -700,7 +700,7 @@ The others jostle closer.
 
 	<<npc "Great Hawk" 6>><<person6>>
 	Your gaze is drawn upwards, as you watch a <<beasttype 5>> swoop down from above. The <<person3>><<person>> is sent sprawling as <<person6>><<bhe 5>> flies by, lashing out with <<bhis 5>> talons.
-	"It's that fucking bird!" The <<person1>><<person>> yells, prompting the others to break and flee as the <<person6>><<beasttype>> comes around for another attack.
+	"It's that fucking bird!" The <<person1>><<person>> yells, prompting the others to break and flee as the <<person6>><<beasttype 5>> comes around for another attack.
 	<<clotheson>>
 	<<endcombat>>
 	<<npc "Great Hawk">><<person1>>
diff --git a/game/overworld-town/loc-prison/work.twee b/game/overworld-town/loc-prison/work.twee
index fe26b67f52052545fb1959f6914e8be851a4d343..d034a31864f003746657656ab67c22295aaa22bb 100644
--- a/game/overworld-town/loc-prison/work.twee
+++ b/game/overworld-town/loc-prison/work.twee
@@ -1320,6 +1320,11 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 		<<investigateicon>><<link [[Search for teeth|Prison Spire Work Search]]>><</link>><<difficulty 70>>
 		<br>
 		<<daydreamicon>><<link [[Daydream|Prison Spire Work Daydream]]>><<stress -6>><</link>><<lstress>>
+		<br>
+		<<if $harpy gte 6>>
+			<<mooricon "sing">><<link [[Sing|Prison Spire Work Sing]]>><<transform bird 1>><<prison_rep anxious 1>><<prison_birds 1>><</link>><<prison_birds_text>><<if $prisonSingIntro>><<glove>><</if>><<harpy>>
+			<br>
+		<</if>>
 <</switch>>
 
 
@@ -1753,6 +1758,36 @@ You sit and watch the <<beastsplural>>, and let your mind wander.
 
 <<prison_spire_options>>
 
+:: Prison Spire Work Sing
+<<effects>>
+
+<<beastNEWinit 5 "hawk">><<person2>>
+You approach the tower's edge. The <<beastsplural>> glance at you.
+<br><br>
+
+<<if $prison.birds gte 30>>
+	You sing. All of the watchers sing along to your symphony. The waves carry your glamorous song to the mainland. You hope someone can hear it. <<trauma -3>><<ltrauma>>
+<<elseif $prison.birds gte 20>>
+	You sing. Most of the watchers join in. Many across the island immerse themselves in your combined verse. <<stress -3>><<lstress>>
+<<elseif $prison.birds gte 10>>
+	You sing. Some of the watchers pick up your song. They are the melodies to your longing rhythm. <<stress -3>><<lstress>>
+<<else>>
+	You sing. Your sole, dulcet voice sears through the ocean. The watchers keep a wary eye on you, but they seem fond of your soothing tune.
+<</if>>
+<br><br>
+
+<<if !$prisonSingIntro>>
+	<<set $prisonSingIntro to 1>>
+	<<person1>>
+	"You're surprisingly good at this," <<anxious_guard 0>> says. <<He>> pats your shoulder. "Should do it more often."
+<<else>>
+	<<person1>>
+	<<anxious_guard 0 cap>> watches with a smile.
+<</if>>
+<br><br>
+
+<<prison_spire_options>>
+
 :: Prison Yard Flirt
 <<effects>>