diff --git a/src/events/intro/arcologySelection.js b/src/events/intro/arcologySelection.js
index bf70935ef965c014143ae4b882df0db45af8860c..8fb298db6f1b0f8b01158c5ab140783cadc4b67b 100644
--- a/src/events/intro/arcologySelection.js
+++ b/src/events/intro/arcologySelection.js
@@ -1,5 +1,5 @@
-/** @param {number} [price] */
-App.Intro.generateEstablishedArcologies = function(price) {
+/** @param {boolean} inIntro */
+App.Intro.generateEstablishedArcologies = function(inIntro = false) {
 	/* setup */
 	const fsAllowed = {
 		FSGenderRadicalist: () => V.seeDicks !== 0,
@@ -23,21 +23,10 @@ App.Intro.generateEstablishedArcologies = function(price) {
 	function arcologyCard() {
 		const div = document.createElement("div");
 		const arcology = generateArcology();
-		const sectionPrice = {
-			"penthouse": 10_000_000,
-			"shops": 1_000_000,
-			"apartments": 500_000,
-			"markets": 250_000,
-			"manufacturing": 100_000,
-		};
-		const rows = (/** @type {App.Arcology.Section} */ section) => section.rows
-			.reduce((acc, cur) => acc + cur.length * sectionPrice[section.id], 0);
-		const _price = price ?? arcology.building.sections
-			.reduce((acc, cur) => acc + rows(cur), 10_000_000); // base price of ¤10,000,000
 
 		div.classList.add("card");
 		div.append(
-			App.UI.DOM.makeElement("span", arcology.name, ['bold']),
+			App.UI.DOM.makeElement("span", inIntro ? App.UI.DOM.passageLink(arcology.name, "Intro Summary", () => acceptArcology()) : arcology.name, ['bold']),
 			` is an established arcology located in a Free City `,
 		);
 		if (arcology.terrain === "urban") {
@@ -185,48 +174,62 @@ App.Intro.generateEstablishedArcologies = function(price) {
 		div.append(
 			innerDiv,
 			App.UI.DOM.makeElement("div", arcology.building.render(), ["intro"]),
-			App.UI.DOM.makeElement("div", makePurchase(`Purchase ${arcology.name}`, _price, "capEx", {
-				handler: () => {
-					V.targetArcology = arcology;
-					V.terrain = arcology.terrain;
-					V.continent = arcology.continent;
-					V.language = arcology.language;
-					V.building = arcology.building;
-					V.weatherCladding = 0;
-					V.rep = 0;
-
-					if (V.secExpEnabled && V.SecExp.core) {
-						V.SecExp.core.authority = 0;
-					}
+		);
 
-					arcology.apply();
+		if (!inIntro) {
+			// for some reason we put the acquisition link at the bottom instead of the top when moving arcologies
+			const sectionPrice = {
+				"penthouse": 10_000_000,
+				"shops": 1_000_000,
+				"apartments": 500_000,
+				"markets": 250_000,
+				"manufacturing": 100_000,
+			};
+			const rows = (/** @type {App.Arcology.Section} */ section) => section.rows
+				.reduce((acc, cur) => acc + cur.length * sectionPrice[section.id], 0);
+			const price = arcology.building.sections.reduce((acc, cur) => acc + rows(cur), 10_000_000); // base price of ¤10,000,000
 
-					if (passage() === "Takeover Target") {
-						Engine.play("Intro Summary");
-					} else {
-						updatePlayerArcology();
-						Engine.play("Main");
-					}
+			div.append(App.UI.DOM.makeElement("div", makePurchase(`Purchase ${arcology.name}`, price, "capEx", {
+				handler: () => {
+					acceptArcology();
+					updatePlayerArcology();
+					Engine.play("Main");
 				},
 				prereqs: [
 					[
 						V.rival.state === 0 || V.rival.state > 2,
-						`Your inter-arcology war is preventing you from leaving ${V.arcologies ? `${V.arcologies[0].name}` : "your arcology"}.`
+						`Your inter-arcology war is preventing you from leaving ${V.arcologies[0].name}.`
 					],
 					[
 						V.daughtersVictory !== 1,
-						`You cannot leave ${V.arcologies ? `${V.arcologies[0].name}` : "your arcology"} behind while the Daughters of Liberty are still a threat.`
+						`You cannot leave ${V.arcologies[0].name} behind while the Daughters of Liberty are still a threat.`
 					],
 				],
-			}), ['center']),
-		);
+			}), ['center']));
+		}
 
 		return div;
 
+		function acceptArcology() {
+			V.targetArcology = arcology;
+			V.terrain = arcology.terrain;
+			V.continent = arcology.continent;
+			V.language = arcology.language;
+			V.building = arcology.building;
+
+			arcology.apply();
+		}
+
 		function updatePlayerArcology() {
 			V.arcologies[0].name = arcology.name;
 			V.arcologies[0].weeks = 1;
 
+			V.weatherCladding = 0;
+			V.rep = 0;
+			if (V.secExpEnabled && V.SecExp.core) {
+				V.SecExp.core.authority = 0;
+			}
+
 			updateFS();
 		}
 
diff --git a/src/events/intro/takeoverTarget.js b/src/events/intro/takeoverTarget.js
index 7923d6a0fc0a2b6f9769a3920682115f6bfa313f..de0256579fc7da1cdbe0daa7aec6b7356b9a1a9d 100644
--- a/src/events/intro/takeoverTarget.js
+++ b/src/events/intro/takeoverTarget.js
@@ -50,6 +50,6 @@ App.Intro.takeoverTarget = function() {
 	App.UI.DOM.appendNewElement("div", card, `With many new arcologies being constructed, you will be able to select which area of the world and type of Free City you'd like your target arcology to be located in.`, ["indent", "note"]);
 	App.UI.DOM.appendNewElement("div", card, `Recommended for new players.`, ["indent", "note"]);
 
-	node.append(App.Intro.generateEstablishedArcologies(0));
+	node.append(App.Intro.generateEstablishedArcologies(true));
 	return node;
 };