diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js
index 5c6dc3ee59c7d9868b7d3bfa5ed09375404e7d8d..2c5ea67278153f4df50d48ca5307276196a89b90 100644
--- a/src/endWeek/economics/neighborsDevelopment.js
+++ b/src/endWeek/economics/neighborsDevelopment.js
@@ -2124,410 +2124,427 @@ App.EndWeek.neighborsDevelopment = function() {
 				}
 			}
 
-			/* CROSS-FS ADOPTION*/
-			if (arc.FSSubjugationist > random(50, 200)) {
-				if (validFSes.includes("FSDegradationist")) {
-					r.push(`The arcology's racial Subjugationist culture <span class="yellow">pushes it towards Degradationism.</span>`);
-					arc.FSDegradationist = 5;
-					return;
-				} else if ((validFSes.includes("FSAztecRevivalist") && validFSes.includes("FSEgyptianRevivalist"))) {
-					if (random(0, 1) === 0) {
-						r.push(`The arcology's racial Subjugationist culture <span class="yellow">pushes it towards Egyptian Revivalism,</span> since the Ancient Egyptians are famous for keeping a race of slaves.`);
-						arc.FSEgyptianRevivalist = 5;
-						return;
-					} else {
-						r.push(`The arcology's racial Supremacist culture <span class="yellow">pushes it towards Aztec Revivalism,</span> since the enslavement and sacrifice of slaves was fundamental to the culture.`);
-						arc.FSAztecRevivalist = 5;
-						return;
-					}
-				}
-			}
-			if (arc.FSRestart > random(50, 200)) {
-				if (validFSes.includes("FSNeoImperialist")) {
-					r.push(`The arcology's elitist, eugenicist culture <span class="yellow">pushes it towards Neo-Imperialism,</span> since the societal elite view themselves as the only appropriate rulers of their society.`);
-					arc.FSNeoImperialist = 5;
-					return;
-				}
-			}
-			if (arc.FSSupremacist > random(50, 200)) {
-				if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's racial Supremacist culture <span class="yellow">pushes it towards Paternalism.</span>`);
-					arc.FSPaternalist = 5;
-					return;
-				} else if ((validFSes.includes("FSEdoRevivalist") && validFSes.includes("FSChineseRevivalist") && (arc.FSSupremacistRace === "asian"))) {
-					if (random(0, 1) === 0) {
-						r.push(`The arcology's racial Supremacist culture <span class="yellow">pushes it towards Edo Revivalism,</span> since the beauty and grace of the Japanese people are watchwords there.`);
-						arc.FSEdoRevivalist = 5;
-						return;
-					} else {
-						r.push(`The arcology's racial Supremacist culture <span class="yellow">pushes it towards Chinese Revivalism,</span> since the wisdom of the Middle Kingdom is admired there.`);
-						arc.FSChineseRevivalist = 5;
-						return;
-					}
-				}
-			}
-			if (arc.FSRepopulationFocus > random(50, 200)) {
-				if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Repopulationist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since big pregnant bellies go great with huge tits and asses.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSGenderFundamentalist")) {
-					r.push(`The arcology's Repopulationist culture <span class="yellow">pushes it towards Gender Fundamentalism,</span> since traditional women make better mothers.`);
-					arc.FSGenderFundamentalist = 5;
-					return;
-				} else if (validFSes.includes("FSPetiteAdmiration")) {
-					r.push(`The arcology's Repopulationist culture <span class="yellow">pushes it towards Petite Admiration,</span> since shorter women tend to have an easier time with childbirth.`);
-					arc.FSPetiteAdmiration = 5;
-					return;
-				}
-			} else if (arc.FSRestart > random(50, 200)) {
-				if (validFSes.includes("FSDegradationist")) {
-					r.push(`The arcology's elite focused culture <span class="yellow">pushes it towards Degradationism,</span> since its lowest class deserves nothing but misery.`);
-					arc.FSDegradationist = 5;
-					return;
-				} else if (validFSes.includes("FSSlaveProfessionalism")) {
-					r.push(`The arcology's elite focused culture <span class="yellow">pushes it towards Slave Professionalism,</span> since the highest class deserve nothing less than the best slaves.`);
-					arc.FSSlaveProfessionalism = 5;
-					return;
-				} else if (validFSes.includes("FSHedonisticDecadence")) {
-					r.push(`The arcology's wide range of imports <span class="yellow">pushes it towards Decadent Hedonism,</span> since it has access to so many undiscovered pleasures.`);
-					arc.FSHedonisticDecadence = 5;
-					return;
-				}
-			}
-			if (arc.FSGenderRadicalist > random(50, 200)) {
-				if (validFSes.includes("FSTransformationFetishist")) {
-					r.push(`The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Transformation Fetishism,</span> since surgery can turn a slave into anything.`);
-					arc.FSTransformationFetishist = 5;
-					return;
-				} else if (validFSes.includes("FSSlimnessEnthusiast")) {
-					r.push(`The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since that's the kind of body many of its slaves have.`);
-					arc.FSSlimnessEnthusiast = 5;
-					return;
-				} else if (validFSes.includes("FSCummunism")) {
-					r.push(`The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Cummunism,</span> since many of its slaves are capable of giving cum.`);
-					arc.FSCummunism = 5;
-					return;
-				}
-			} else if (arc.FSGenderFundamentalist > random(50, 200)) {
-				if (validFSes.includes("FSPastoralist")) {
-					r.push(`The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Pastoralism,</span> since its pregnant slaves are already giving milk.`);
-					arc.FSPastoralist = 5;
-					return;
-				} else if (validFSes.includes("FSIntellectualDependency")) {
-					r.push(`The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Intellectual Dependency,</span> since women don't need to think to serve men.`);
-					arc.FSYouthPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSYouthPreferentialist")) {
-					r.push(`The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since younger slaves are beautiful and fertile.`);
-					arc.FSYouthPreferentialist = 5;
-					return;
-				}
-			}
-			if (arc.FSPaternalist > random(50, 200)) {
-				if (validFSes.includes("FSChattelReligionist")) {
-					r.push(`The arcology's Paternalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since many of its slaves are already worshipful.`);
-					arc.FSChattelReligionist = 5;
-					return;
-				} else if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Paternalist culture <span class="yellow">pushes it towards Body Purism,</span> since giving slaves dangerous drugs is hardly good for them.`);
-					arc.FSBodyPurist = 5;
-					return;
-				} else if (validFSes.includes("FSRomanRevivalist")) {
-					r.push(`The arcology's Paternalist culture <span class="yellow">pushes it towards Roman Revivalism,</span> since loyal service to the res publica bears similarity to their existing mores.`);
-					arc.FSRomanRevivalist = 5;
-					return;
-				}
-			} else if (arc.FSDegradationist > random(50, 200)) {
-				if (validFSes.includes("FSTransformationFetishist")) {
-					r.push(`The arcology's Degradationist culture <span class="yellow">pushes it towards Transformation Fetishism,</span> the ultimate expression of power over slave bodies.`);
-					arc.FSTransformationFetishist = 5;
-					return;
-				} else if (validFSes.includes("FSGenderRadicalist")) {
-					r.push(`The arcology's Degradationist culture <span class="yellow">pushes it towards Gender Radicalism,</span> since the joy of forcing a gender role on a slave is already popular.`);
-					arc.FSGenderRadicalist = 5;
-					return;
-				}
-			}
-			if (arc.FSIntellectualDependency > random(50, 200)) {
-				if (validFSes.includes("FSTransformationFetishist")) {
-					r.push(`The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Transformation Fetishism,</span> to give its bimbos a body most fitting.`);
-					arc.FSTransformationFetishist = 5;
-					return;
-				} else if (validFSes.includes("FSYouthPreferentialist")) {
-					r.push(`The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since the young have more energy to party.`);
-					arc.FSYouthPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSHedonisticDecadence")) {
-					r.push(`The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Decadent Hedonism,</span> since base instinct already rules slaves' lives.`);
-					arc.FSHedonisticDecadence = 5;
-					return;
-				} else if (validFSes.includes("FSRepopulationFocus")) {
-					r.push(`The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Repopulationism,</span> since there has been an epidemic of unplanned pregnancies among the slave population.`);
-					arc.FSRepopulationFocus = 5;
-					return;
-				}
-			} else if (arc.FSSlaveProfessionalism > random(50, 200)) {
-				if (validFSes.includes("FSMaturityPreferentialist")) {
-					r.push(`The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Maturity Preferentialist,</span> since with age comes experience.`);
-					arc.FSMaturityPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Paternalism,</span> since happy slaves are much more willing to be molded in to shape.`);
-					arc.FSPaternalist = 5;
-					return;
-				} else if (validFSes.includes("FSPhysicalIdealist")) {
-					r.push(`The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Physical Idealism,</span> since a fitting body is required to house the perfect mind.`);
-					arc.FSPhysicalIdealist = 5;
-					return;
-				} else if (validFSes.includes("FSChattelReligionist")) {
-					r.push(`The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Chattel Religionism,</span> since skilled service is already a part of a slave's daily life.`);
-					arc.FSChattelReligionist = 5;
-					return;
-				}
-			}
-			if (arc.FSBodyPurist > random(50, 200)) {
-				if (validFSes.includes("FSPhysicalIdealist")) {
-					r.push(`The arcology's Body Purist culture <span class="yellow">pushes it towards Physical Idealism,</span> since it already takes an intense interest in bodily perfection.`);
-					arc.FSPhysicalIdealist = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Body Purist culture <span class="yellow">pushes it towards Paternalism,</span> since it's become obvious that happiness is a necessary part of wellness.`);
-					arc.FSPaternalist = 5;
-					return;
-				}
-			} else if (arc.FSTransformationFetishist > random(50, 200)) {
-				if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Transformation Fetishist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since it's already overrun with massive tits and asses.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSDegradationist")) {
-					r.push(`The arcology's Transformation Fetishist culture <span class="yellow">pushes it towards Degradationism,</span> since it's already used to slaves whining about their latest surgeries.`);
-					arc.FSDegradationist = 5;
-					return;
-				}
-			}
-			if (arc.FSYouthPreferentialist > random(50, 200)) {
-				if (validFSes.includes("FSSlimnessEnthusiast")) {
-					r.push(`The arcology's Youth Preferentialist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since that's the kind of body many of its slaves have.`);
-					arc.FSSlimnessEnthusiast = 5;
-					return;
-				} else if (validFSes.includes("FSRepopulationFocus")) {
-					r.push(`The arcology's Youth Preferentialist culture <span class="yellow">pushes it towards Repopulationism,</span> since many of its slaves are deliciously ripe for breeding.`);
-					arc.FSRepopulationFocus = 5;
-					return;
-				}
-			} else if (arc.FSMaturityPreferentialist > random(50, 200)) {
-				if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Maturity Preferentialist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since that's the kind of body many of its slaves have.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Maturity Preferentialist culture <span class="yellow">pushes it towards Paternalism,</span> since its many older slaves have skills best applied by a happy woman.`);
-					arc.FSPaternalist = 5;
-					return;
-				}
-			}
-			if (arc.FSPetiteAdmiration > random(50, 200)) {
-				if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Petite Admiration culture <span class="yellow">pushes it towards Asset Expansionist,</span> since a ${girlU} with tits wider than ${heU} is tall attracts quite some attention.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Petite Admiration culture <span class="yellow">pushes it towards Paternalism,</span> since such tiny ${girlU}s need extra special attention.`);
-					arc.FSPaternalist = 5;
-					return;
-				} else if (validFSes.includes("FSIncestFetishist")) {
-					r.push(`The arcology's Petite Admiration culture <span class="yellow">pushes it towards Incest Fetishism,</span> since age play often goes hand-in-hand with size play.`);
-					arc.FSIncestFetishist = 5;
-					return;
-				}
-			} else if (arc.FSStatuesqueGlorification > random(50, 200)) {
-				if (validFSes.includes("FSPhysicalIdealist")) {
-					r.push(`The arcology's Statuesque Glorification culture <span class="yellow">pushes it towards Physical Idealism,</span> since being ripped complements being tall.`);
-					arc.FSPhysicalIdealist = 5;
-					return;
-				} else if (validFSes.includes("FSDegradationist")) {
-					r.push(`The arcology's Statuesque Glorification culture <span class="yellow">pushes it towards Degradationism,</span> since those that don't measure up deserve only suffering.`);
-					arc.FSDegradationist = 5;
-					return;
-				}
-			}
-			if (arc.FSSlimnessEnthusiast > random(50, 200)) {
-				if (validFSes.includes("FSYouthPreferentialist")) {
-					r.push(`The arcology's Slimness Enthusiast culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since younger slaves are often attractively slim.`);
-					arc.FSYouthPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Slimness Enthusiast culture <span class="yellow">pushes it towards Body Purism,</span> since the last thing they want is prettily slender girls with health trouble.`);
-					arc.FSBodyPurist = 5;
-					return;
-				}
-			} else if (arc.FSAssetExpansionist > random(50, 200)) {
-				if (validFSes.includes("FSMaturityPreferentialist")) {
-					r.push(`The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Maturity Preferentialism,</span> since MILF slaves tend to come with nice big tits.`);
-					arc.FSMaturityPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Body Purism,</span> since slaves on curatives are slaves not on growth hormones.`);
-					arc.FSBodyPurist = 5;
-					return;
-				} else if (validFSes.includes("FSPetiteAdmiration") && validFSes.includes("FSStatuesqueGlorification")) {
-					if (random(0, 1) === 1) {
-						r.push(`The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Petite Admiration,</span> since the smaller a slave's body is, the bigger their breasts will look.`);
-						arc.FSPetiteAdmiration = 5;
-						return;
-					} else {
-						r.push(`The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Statuesque Glorification,</span> as the love of all things huge is rather indiscriminate.`);
-						arc.FSStatuesqueGlorification = 5;
-						return;
+			/* CROSS-FS ADOPTION */
+			/** Map from source to an array of destination FSes.  On the destination side, order matters; adoption is attempted in sequence through the array.
+			 *  If several destination FSes should be equally likely at a particular stage, put them in a nested array.
+			 * @typedef {{fs: FC.FutureSociety, prereqs?: () => boolean, msg: string}} crossFSDest
+			 * @type {Map<FC.FutureSociety, (crossFSDest|crossFSDest[])[]>} */
+			const crossFS = new Map([
+				["FSSubjugationist", [
+					{
+						fs: "FSDegradationist",
+						msg: `The arcology's racial Subjugationist culture <span class="yellow">pushes it towards Degradationism.</span>`,
+					},
+					[ // pick one at random
+						{
+							fs:	"FSAztecRevivalist",
+							msg: `The arcology's racial Supremacist culture <span class="yellow">pushes it towards Aztec Revivalism,</span> since the enslavement and sacrifice of slaves was fundamental to the culture.`
+						},
+						{
+							fs: "FSEgyptianRevivalist",
+							msg: `The arcology's racial Subjugationist culture <span class="yellow">pushes it towards Egyptian Revivalism,</span> since the Ancient Egyptians are famous for keeping a race of slaves.`
+						}
+					]
+				]],
+				["FSSupremacist", [
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's racial Supremacist culture <span class="yellow">pushes it towards Paternalism.</span>`,
+					},
+					[ // pick one at random
+						{
+							fs: "FSEdoRevivalist",
+							prereqs: () => arc.FSSupremacistRace === "asian",
+							msg: `The arcology's racial Supremacist culture <span class="yellow">pushes it towards Edo Revivalism,</span> since the beauty and grace of the Japanese people are watchwords there.`
+						},
+						{
+							fs: "FSChineseRevivalist",
+							prereqs: () => arc.FSSupremacistRace === "asian",
+							msg: `The arcology's racial Supremacist culture <span class="yellow">pushes it towards Chinese Revivalism,</span> since the wisdom of the Middle Kingdom is admired there.`
+						}
+					]
+				]],
+				["FSRepopulationFocus", [
+					{
+						fs: "FSGenderFundamentalist",
+						msg: `The arcology's Repopulationist culture <span class="yellow">pushes it towards Gender Fundamentalism,</span> since traditional women make better mothers.`
+					},
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Repopulationist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since big pregnant bellies go great with huge tits and asses.`
+					},
+					{
+						fs: "FSPetiteAdmiration",
+						msg: `The arcology's Repopulationist culture <span class="yellow">pushes it towards Petite Admiration,</span> since shorter women tend to have an easier time with childbirth.`
+					},
+				]],
+				["FSRestart", [
+					{
+						fs: "FSNeoImperialist",
+						msg: `The arcology's elitist, eugenicist culture <span class="yellow">pushes it towards Neo-Imperialism,</span> since the societal elite view themselves as the only appropriate rulers of their society.`
+					},
+					{
+						fs: "FSDegradationist",
+						msg: `The arcology's elite focused culture <span class="yellow">pushes it towards Degradationism,</span> since its lowest class deserves nothing but misery.`
+					},
+					{
+						fs: "FSSlaveProfessionalism",
+						msg: `The arcology's elite focused culture <span class="yellow">pushes it towards Slave Professionalism,</span> since the highest class deserve nothing less than the best slaves.`
+					},
+					{
+						fs: "FSHedonisticDecadence",
+						msg: `The arcology's wide range of imports <span class="yellow">pushes it towards Decadent Hedonism,</span> since it has access to so many undiscovered pleasures.`
+					},
+				]],
+				["FSGenderRadicalist", [
+					{
+						fs: "FSTransformationFetishist",
+						msg: `The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Transformation Fetishism,</span> since surgery can turn a slave into anything.`
+					},
+					{
+						fs: "FSSlimnessEnthusiast",
+						msg: `The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since that's the kind of body many of its slaves have.`
+					},
+					{
+						fs: "FSCummunism",
+						msg: `The arcology's Gender Radicalist culture <span class="yellow">pushes it towards Cummunism,</span> since many of its slaves are capable of giving cum.`
+					},
+				]],
+				["FSGenderFundamentalist", [
+					{
+						fs: "FSPastoralist",
+						msg: `The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Pastoralism,</span> since its pregnant slaves are already giving milk.`
+					},
+					{
+						fs: "FSIntellectualDependency",
+						msg: `The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Intellectual Dependency,</span> since women don't need to think to serve men.`
+					},
+					{
+						fs: "FSYouthPreferentialist",
+						msg: `The arcology's Gender Fundamentalist culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since younger slaves are beautiful and fertile.`
+					},
+				]],
+				["FSPaternalist", [
+					{
+						fs: "FSChattelReligionist",
+						msg: `The arcology's Paternalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since many of its slaves are already worshipful.`
+					},
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Paternalist culture <span class="yellow">pushes it towards Body Purism,</span> since giving slaves dangerous drugs is hardly good for them.`
+					},
+					{
+						fs: "FSRomanRevivalist",
+						msg: `The arcology's Paternalist culture <span class="yellow">pushes it towards Roman Revivalism,</span> since loyal service to the res publica bears similarity to their existing mores.`
+					},
+				]],
+				["FSDegradationist", [
+					{
+						fs: "FSTransformationFetishist",
+						msg: `The arcology's Degradationist culture <span class="yellow">pushes it towards Transformation Fetishism,</span> the ultimate expression of power over slave bodies.`
+					},
+					{
+						fs: "FSGenderRadicalist",
+						msg: `The arcology's Degradationist culture <span class="yellow">pushes it towards Gender Radicalism,</span> since the joy of forcing a gender role on a slave is already popular.`
+					},
+					{
+						fs: "FSIntellectualDependency",
+						msg: `The arcology's Degradationist culture <span class="yellow">pushes it towards Intellectual Dependency,</span> since there's no need for a sex toy to be thinking.`
+					},
+				]],
+				["FSIntellectualDependency", [
+					{
+						fs: "FSTransformationFetishist",
+						msg: `The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Transformation Fetishism,</span> to give its bimbos a body most fitting.`
+					},
+					{
+						fs: "FSYouthPreferentialist",
+						msg: `The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since the young have more energy to party.`
+					},
+					{
+						fs: "FSHedonisticDecadence",
+						msg: `The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Decadent Hedonism,</span> since base instinct already rules slaves' lives.`
+					},
+					{
+						fs: "FSRepopulationFocus",
+						msg: `The arcology's Intellectual Dependency culture <span class="yellow">pushes it towards Repopulationism,</span> since there has been an epidemic of unplanned pregnancies among the slave population.`
+					},
+				]],
+				["FSSlaveProfessionalism", [
+					{
+						fs: "FSMaturityPreferentialist",
+						msg: `The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Maturity Preferentialist,</span> since with age comes experience.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Paternalism,</span> since happy slaves are much more willing to be molded into shape.`
+					},
+					{
+						fs: "FSPhysicalIdealist",
+						msg: `The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Physical Idealism,</span> since a fitting body is required to house the perfect mind.`
+					},
+					{
+						fs: "FSChattelReligionist",
+						msg: `The arcology's Slave Professionalism culture <span class="yellow">pushes it towards Chattel Religionism,</span> since skilled service is already a part of a slave's daily life.`
+					},
+				]],
+				["FSBodyPurist", [
+					{
+						fs: "FSPhysicalIdealist",
+						msg: `The arcology's Body Purist culture <span class="yellow">pushes it towards Physical Idealism,</span> since it already takes an intense interest in bodily perfection.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Body Purist culture <span class="yellow">pushes it towards Paternalism,</span> since it's become obvious that happiness is a necessary part of wellness.`
+					},
+				]],
+				["FSTransformationFetishist", [
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Transformation Fetishist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since it's already overrun with massive tits and asses.`
+					},
+					{
+						fs: "FSDegradationist",
+						msg: `The arcology's Transformation Fetishist culture <span class="yellow">pushes it towards Degradationism,</span> since it's already used to slaves whining about their latest surgeries.`
+					},
+				]],
+				["FSYouthPreferentialist", [
+					{
+						fs: "FSSlimnessEnthusiast",
+						msg: `The arcology's Youth Preferentialist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since that's the kind of body many of its slaves have.`
+					},
+					{
+						fs: "FSRepopulationFocus",
+						msg: `The arcology's Youth Preferentialist culture <span class="yellow">pushes it towards Repopulationism,</span> since many of its slaves are deliciously ripe for breeding.`
+					},
+				]],
+				["FSMaturityPreferentialist", [
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Maturity Preferentialist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since that's the kind of body many of its slaves have.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Maturity Preferentialist culture <span class="yellow">pushes it towards Paternalism,</span> since its many older slaves have skills best applied by a happy woman.`
+					},
+				]],
+				["FSPetiteAdmiration", [
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Petite Admiration culture <span class="yellow">pushes it towards Asset Expansionist,</span> since a ${girlU} with tits wider than ${heU} is tall attracts quite some attention.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Petite Admiration culture <span class="yellow">pushes it towards Paternalism,</span> since such tiny ${girlU}s need extra special attention.`
+					},
+					{
+						fs: "FSIncestFetishist",
+						msg: `The arcology's Petite Admiration culture <span class="yellow">pushes it towards Incest Fetishism,</span> since age play often goes hand-in-hand with size play.`
+					},
+				]],
+				["FSStatuesqueGlorification", [
+					{
+						fs: "FSPhysicalIdealist",
+						msg: `The arcology's Statuesque Glorification culture <span class="yellow">pushes it towards Physical Idealism,</span> since being ripped complements being tall.`
+					},
+					{
+						fs: "FSDegradationist",
+						msg: `The arcology's Statuesque Glorification culture <span class="yellow">pushes it towards Degradationism,</span> since those that don't measure up deserve only suffering.`
+					},
+				]],
+				["FSSlimnessEnthusiast", [
+					{
+						fs: "FSYouthPreferentialist",
+						msg: `The arcology's Slimness Enthusiast culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since younger slaves are often attractively slim.`
+					},
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Slimness Enthusiast culture <span class="yellow">pushes it towards Body Purism,</span> since the last thing they want is prettily slender girls with health trouble.`
+					},
+				]],
+				["FSAssetExpansionist", [
+					{
+						fs: "FSMaturityPreferentialist",
+						msg: `The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Maturity Preferentialism,</span> since MILF slaves tend to come with nice big tits.`
+					},
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Body Purism,</span> since slaves on curatives are slaves not on growth hormones.`
+					},
+					[ // pick one at random
+						{
+							fs: "FSPetiteAdmiration",
+							msg: `The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Petite Admiration,</span> since the smaller a slave's body is, the bigger their breasts will look.`
+						},
+						{
+							fs: "FSStatuesqueGlorification",
+							msg: `The arcology's Asset Expansionist culture <span class="yellow">pushes it towards Statuesque Glorification,</span> as the love of all things huge is rather indiscriminate.`
+						},
+					]
+				]],
+				["FSPastoralist", [
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Pastoralist culture <span class="yellow">pushes it towards Body Purism,</span> since there have been concerns about milk purity.`
+					},
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Pastoralist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since they're convinced that there's no such thing as udders that are too big.`
+					},
+					{
+						fs: "FSRepopulationFocus",
+						msg: `The arcology's Pastoralist culture <span class="yellow">pushes it towards Repopulationism,</span> since pregnancy stimulates milk flow.`
+					},
+				]],
+				["FSCummunism", [
+					{
+						fs: "FSPhysicalIdealist",
+						msg: `The arcology's Cummunist culture <span class="yellow">pushes it towards Physical Idealism,</span> since big balls and huge loads go hand in hand with masculine muscles.`
+					},
+					{
+						fs: "FSAssetExpansionist",
+						msg: `The arcology's Cummunist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since they're convinced that there's no such thing as balls that are too big.`
+					},
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Cummunist culture <span class="yellow">pushes it towards Body Purism,</span> since there have been concerns about cum purity.`
+					},
+				]],
+				["FSHedonisticDecadence", [
+					{
+						fs: "FSPastoralist",
+						msg: `The arcology's Hedonistic culture <span class="yellow">pushes it towards Pastoralism,</span> since nothing beats a nice glass of fresh squeezed milk with your cake.`
+					},
+					{
+						fs: "FSIntellectualDependency",
+						msg: `The arcology's Hedonistic culture <span class="yellow">pushes it towards Intellectual Dependency,</span> since higher thought is unneeded when you have everything you want.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Hedonistic culture <span class="yellow">pushes it towards Paternalism,</span> since happiness is infectious.`
+					},
+				]],
+				["FSPhysicalIdealist", [
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Physical Idealist culture <span class="yellow">pushes it towards Body Purism,</span> since it's already used to treating slaves' bodies as temples.`
+					},
+					{
+						fs: "FSYouthPreferentialist",
+						msg: `The arcology's Physical Idealist culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since beauty and athletic prowess do tend to peak early.`
+					},
+					{
+						fs: "FSStatuesqueGlorification",
+						msg: `The arcology's Physical Idealist culture <span class="yellow">pushes it towards Statuesque Glorification,</span> to better emulate the titans of legend.`
+					},
+					{
+						fs: "FSCummunism",
+						msg: `The arcology's Physical Idealist culture <span class="yellow">pushes it towards Cummunism,</span> since muscular, testosterone filled slaves make admirable cumshots.`
+					},
+				]],
+				["FSIncestFetishist", [
+					{
+						fs: "FSRepopulationFocus",
+						msg: `The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Repopulationism,</span> in order to create many new future loving couples.`
+					},
+					{
+						fs: "FSBodyPurist",
+						msg: `The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Body Purism,</span> in order to keep its bloodlines pure.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Paternalism,</span> as healthy slaves live longer allowing relationships to span generations.`
+					},
+					{
+						fs: "FSEgyptianRevivalist",
+						msg: `The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Egyptian Revivalism,</span> as they naturally seek even more incestuous fun.`
+					},
+				]],
+				["FSChattelReligionist", [
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Chattel Religionist culture <span class="yellow">pushes it towards Paternalism,</span> since charitable care for slaves' welfare has become widespread.`
+					},
+					{
+						fs: "FSArabianRevivalist",
+						msg: `The arcology's Chattel Religionist culture <span class="yellow">pushes it towards Arabian Revivalism,</span> since such an intermingling of slavery and faith fascinates them.`
+					},
+				]],
+				["FSRomanRevivalist", [
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Roman Revivalist culture <span class="yellow">pushes it towards Paternalism,</span> since some Roman slaves were traditionally permitted limited rights.`
+					},
+				]],
+				["FSNeoImperialist", [
+					{
+						fs: "FSRestart",
+						msg: `The arcology's Neo-Imperialist culture <span class="yellow">pushes it towards Eugenics,</span> since their hegemonic, noble culture naturally views itself as genetically superior to the unwashed masses.`
+					},
+				]],
+				["FSAztecRevivalist", [
+					{
+						fs: "FSDegradationist",
+						msg: `The arcology's Aztec Revivalist culture <span class="yellow">pushes it towards Degradation,</span> since most Aztec war slaves were tortured and sacrificed.`
+					},
+				]],
+				["FSEgyptianRevivalist", [
+					{
+						fs: "FSChattelReligionist",
+						msg: `The arcology's Egyptian Revivalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since worship is already becoming an established part of its life.`
+					},
+					{
+						fs: "FSIncestFetishist",
+						msg: `The arcology's Egyptian Revivalist culture <span class="yellow">pushes it towards Incest Fetishism,</span> since more incest is only a good thing in its eyes.`
+					},
+				]],
+				["FSEdoRevivalist", [
+					{
+						fs: "FSSlimnessEnthusiast",
+						msg: `The arcology's Edo Revivalist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since slim and elegant slaves are already fashionable there.`
+					},
+				]],
+				["FSArabianRevivalist", [
+					{
+						fs: "FSChattelReligionist",
+						msg: `The arcology's Arabian Revivalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since the word of God is already a matter of daily significance there.`
+					},
+				]],
+				["FSChineseRevivalist", [
+					{
+						fs: "FSProfessionalist",
+						msg: `The arcology's Chinese Revivalist culture <span class="yellow">pushes it towards Slave Professionalism,</span> since well-educated, dispassionate slave leaders are more effective.`
+					},
+					{
+						fs: "FSPaternalist",
+						msg: `The arcology's Chinese Revivalist culture <span class="yellow">pushes it towards Paternalism,</span> since traditional beliefs about duty and order have become accepted.`
+					},
+				]],
+			]);
+			const validChoice = /** @param {crossFSDest} dest */ (dest) => validFSes.includes(dest.fs) && (!dest.prereqs || dest.prereqs());
+			const candidates = [];
+			for (const [source, destArray] of crossFS) {
+				if (arc[source] > random(50, 200)) {
+					for (const dest of destArray) {
+						if (Array.isArray(dest)) {
+							// pick one at random
+							const choice = dest.filter(x => validChoice(x)).random();
+							if (choice) {
+								candidates.push(choice);
+								break; // only select one dest per source
+							}
+						} else if (validChoice(dest)) {
+							candidates.push(dest);
+							break; // only select one dest per source
+						}
 					}
 				}
 			}
-			if (arc.FSPastoralist > random(50, 200)) {
-				if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Pastoralist culture <span class="yellow">pushes it towards Body Purism,</span> since there have been concerns about milk purity.`);
-					arc.FSBodyPurist = 5;
-					return;
-				} else if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Pastoralist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since they're convinced that there's no such thing as udders that are too big.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSRepopulationFocus")) {
-					r.push(`The arcology's Pastoralist culture <span class="yellow">pushes it towards Repopulationism,</span> since pregnancy stimulates milk flow.`);
-					arc.FSRepopulationFocus = 5;
-					return;
-				}
-			} else if (arc.FSCummunism > random(50, 200)) {
-				if (validFSes.includes("FSPhysicalIdealist")) {
-					r.push(`The arcology's Cummunist culture <span class="yellow">pushes it towards Physical Idealism,</span> since big balls and huge loads go hand in hand with masculine muscles.`);
-					arc.FSPhysicalIdealist = 5;
-					return;
-				} else if (validFSes.includes("FSAssetExpansionist")) {
-					r.push(`The arcology's Cummunist culture <span class="yellow">pushes it towards Asset Expansionism,</span> since they're convinced that there's no such thing as balls that are too big.`);
-					arc.FSAssetExpansionist = 5;
-					return;
-				} else if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Cummunist culture <span class="yellow">pushes it towards Body Purism,</span> since there have been concerns about cum purity.`);
-					arc.FSBodyPurist = 5;
-					return;
-				}
-			}
-			if (arc.FSHedonisticDecadence > random(50, 200)) {
-				if (validFSes.includes("FSPastoralist")) {
-					r.push(`The arcology's Hedonistic culture <span class="yellow">pushes it towards Pastoralism,</span> since nothing beats a nice glass of fresh squeezed milk with your cake.`);
-					arc.FSPastoralist = 5;
-					return;
-				} else if (validFSes.includes("FSIntellectualDependency")) {
-					r.push(`The arcology's Hedonistic culture <span class="yellow">pushes it towards Intellectual Dependency,</span> since higher thought is unneeded when you have everything you want.`);
-					arc.FSIntellectualDependency = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Hedonistic culture <span class="yellow">pushes it towards Paternalism,</span> since happiness is infectious.`);
-					arc.FSPaternalist = 5;
-					return;
-				}
-			} else if (arc.FSPhysicalIdealist > random(50, 200)) {
-				if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Physical Idealist culture <span class="yellow">pushes it towards Body Purism,</span> since it's already used to treating slaves' bodies as temples.`);
-					arc.FSBodyPurist = 5;
-					return;
-				} else if (validFSes.includes("FSYouthPreferentialist")) {
-					r.push(`The arcology's Physical Idealist culture <span class="yellow">pushes it towards Youth Preferentialism,</span> since beauty and athletic prowess do tend to peak early.`);
-					arc.FSYouthPreferentialist = 5;
-					return;
-				} else if (validFSes.includes("FSStatuesqueGlorification")) {
-					r.push(`The arcology's Physical Idealist culture <span class="yellow">pushes it towards Statuesque Glorification,</span> to better emulate the titans of legend.`);
-					arc.FSStatuesqueGlorification = 5;
-					return;
-				} else if (validFSes.includes("FSCummunism")) {
-					r.push(`The arcology's Physical Idealist culture <span class="yellow">pushes it towards Cummunism,</span> since muscular, testosterone filled slaves make admirable cumshots.`);
-					arc.FSCummunism = 5;
-					return;
-				}
-			}
-			if (arc.FSIncestFetishist > random(50, 200)) {
-				if (validFSes.includes("FSRepopulationFocus")) {
-					r.push(`The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Repopulationism,</span> in order to create many new future loving couples.`);
-					arc.FSRepopulationFocus = 5;
-					return;
-				} else if (validFSes.includes("FSBodyPurist")) {
-					r.push(`The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Body Purism,</span> in order to keep its bloodlines pure.`);
-					arc.FSBodyPurist = 5;
-					return;
-				} else if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Paternalism,</span> as healthy slaves live longer allowing relationships to span generations.`);
-					arc.FSPaternalist = 5;
-					return;
-				} else if (validFSes.includes("FSEgyptianRevivalist")) {
-					r.push(`The arcology's Incest Fetishizing culture <span class="yellow">pushes it towards Egyptian Revivalism,</span> as they naturally seek even more incestuous fun.`);
-					arc.FSEgyptianRevivalist = 5;
-					return;
-				}
-			}
-			if (arc.FSChattelReligionist > random(50, 200)) {
-				if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Chattel Religionist culture <span class="yellow">pushes it towards Paternalism,</span> since charitable care for slaves' welfare has become widespread.`);
-					arc.FSPaternalist = 5;
-					return;
-				} else if (validFSes.includes("FSArabianRevivalist")) {
-					r.push(`The arcology's Chattel Religionist culture <span class="yellow">pushes it towards Arabian Revivalism,</span> since such an intermingling of slavery and faith fascinates them.`);
-					arc.FSArabianRevivalist = 5;
-					return;
-				}
-			}
-			if (arc.FSRomanRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Roman Revivalist culture <span class="yellow">pushes it towards Paternalism,</span> since some Roman slaves were traditionally permitted limited rights.`);
-					arc.FSPaternalist = 5;
-					return;
-				}
-			}
-			if (arc.FSNeoImperialist > random(50, 200)) {
-				if (validFSes.includes("FSRestart")) {
-					r.push(`The arcology's Neo-Imperialist culture <span class="yellow">pushes it towards Eugenics,</span> since their hegemonic, noble culture naturally views itself as genetically superior to the unwashed masses.`);
-					arc.FSRestart = 5;
-					return;
-				}
-			}
-			if (arc.FSAztecRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSDegradationist")) {
-					r.push(`The arcology's Aztec Revivalist culture <span class="yellow">pushes it towards Degradation,</span> since most Aztec war slaves were tortured and sacrificed.`);
-					arc.FSDegradationist = 5;
-					return;
-				}
-			}
-			if (arc.FSEgyptianRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSChattelReligionist")) {
-					r.push(`The arcology's Egyptian Revivalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since worship is already becoming an established part of its life.`);
-					arc.FSChattelReligionist = 5;
-					return;
-				} else if (validFSes.includes("FSIncestFetishist")) {
-					r.push(`The arcology's Egyptian Revivalist culture <span class="yellow">pushes it towards Incest Fetishism,</span> since more incest is only a good thing in its eyes.`);
-					arc.FSIncestFetishist = 5;
-					return;
-				}
-			}
-			if (arc.FSEdoRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSSlimnessEnthusiast")) {
-					r.push(`The arcology's Edo Revivalist culture <span class="yellow">pushes it towards Slimness Enthusiasm,</span> since slim and elegant slaves are already fashionable there.`);
-					arc.FSSlimnessEnthusiast = 5;
-					return;
-				}
-			}
-			if (arc.FSArabianRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSChattelReligionist")) {
-					r.push(`The arcology's Arabian Revivalist culture <span class="yellow">pushes it towards Chattel Religionism,</span> since the word of God is already a matter of daily significance there.`);
-					arc.FSChattelReligionist = 5;
-					return;
-				}
-			}
-			if (arc.FSChineseRevivalist > random(50, 200)) {
-				if (validFSes.includes("FSPaternalist")) {
-					r.push(`The arcology's Chinese Revivalist culture <span class="yellow">pushes it towards Paternalism,</span> since traditional beliefs about duty and order have become accepted.`);
-					arc.FSPaternalist = 5;
-					return;
-				}
+			if (candidates.length > 0) {
+				const candidate = candidates.random();
+				r.push(candidate.msg);
+				arc[candidate.fs] = 5;
+				return;
 			}
 
 			/* NEIGHBOR ADOPTION*/