diff --git a/css/003-sugarcube-overwrite/sidebar.css b/css/003-sugarcube-overwrite/sidebar.css
index b09893b63ac65cc1c62b2bedf44ecd1bf831cbfd..a43d1b8df06cb7da002cf9538860637ae89bf423 100644
--- a/css/003-sugarcube-overwrite/sidebar.css
+++ b/css/003-sugarcube-overwrite/sidebar.css
@@ -7,11 +7,19 @@
     height: calc(100% - 1.5em);
     margin: 1.5em 0;
 }
+
 #ui-bar-body > :not(:first-child) {
     /* margin-top: 2em; */
     margin-top: 1.5em;
 }
+
 #story-author {
     /* margin-top: 2em; */
     margin-top: 0;
 }
+
+/* make cheat text boxes fit in sidebar */
+#story-caption input {
+    min-width: 0;
+    width: calc(100% - 0.8em - 2px);
+}
diff --git a/src/003-assets/CSS/endWeekAnim.css b/css/endWeek/endWeekAnim.css
similarity index 100%
rename from src/003-assets/CSS/endWeekAnim.css
rename to css/endWeek/endWeekAnim.css
diff --git a/css/endWeek/slavesReport.css b/css/endWeek/slavesReport.css
new file mode 100644
index 0000000000000000000000000000000000000000..f07dbecbe1e82f6363fb316a8bff981287e33acf
--- /dev/null
+++ b/css/endWeek/slavesReport.css
@@ -0,0 +1,4 @@
+div.slave-report {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
diff --git a/src/facilities/facilities.css b/css/facilities/facilities.css
similarity index 100%
rename from src/facilities/facilities.css
rename to css/facilities/facilities.css
diff --git a/src/facilities/farmyard/farmyard.css b/css/facilities/farmyard.css
similarity index 100%
rename from src/facilities/farmyard/farmyard.css
rename to css/facilities/farmyard.css
diff --git a/src/facilities/incubator/incubator.css b/css/facilities/incubator.css
similarity index 100%
rename from src/facilities/incubator/incubator.css
rename to css/facilities/incubator.css
diff --git a/src/facilities/nursery/nursery.css b/css/facilities/nursery.css
similarity index 69%
rename from src/facilities/nursery/nursery.css
rename to css/facilities/nursery.css
index f2276b59eeaa1d146949dd10b1c48286e0e3b609..b9de00814e2aac8a1eb9f28a38ea1169985b95d0 100644
--- a/src/facilities/nursery/nursery.css
+++ b/css/facilities/nursery.css
@@ -1,5 +1,3 @@
-/* FEEL FREE TO MOVE */
-
 .child-section {
 	margin-top: 1em;
 	margin-bottom: 1em;
diff --git a/src/facilities/pit/pit.css b/css/facilities/pit.css
similarity index 100%
rename from src/facilities/pit/pit.css
rename to css/facilities/pit.css
diff --git a/src/facilities/statistics.css b/css/facilities/statistics.css
similarity index 61%
rename from src/facilities/statistics.css
rename to css/facilities/statistics.css
index 91320c60544b476fb4f354b35bdc4ce5e865ca77..092409605f4aa23e6ff477e4b9d2391283795252 100644
--- a/src/facilities/statistics.css
+++ b/css/facilities/statistics.css
@@ -1,46 +1,46 @@
-table.stats {
+table.facility-stats {
 	width: 100%;
 	padding-left: 20px;
 	padding-right: 20px;
 }
 
-table.stats > tr.header {
+table.facility-stats > tr.header {
 	border-bottom: 2px solid white;
 }
 
-table.stats > tr.total {
+table.facility-stats > tr.total {
 	border-top: 1px solid white;
 }
 
-table.stats > tr > th.narrow {
+table.facility-stats > tr > th.narrow {
 	width: 10em;
 	text-align: right;
 }
 
-table.stats > tr > th.wide {
+table.facility-stats > tr > th.wide {
 	width: 20em;
 	text-align: right;
 }
 
-table.stats-slave {
+table.facility-stats-slave {
 	width: 100%;
 	font-size: 90%;
 	line-height: 110%;
 }
 
-table.stats-slave > tr {
+table.facility-stats-slave > tr {
 	border-bottom: 1px solid #aaa;
 	border-left: none;
 	border-right: none;
 	border-top: none
 }
 
-table.stats-slave > tr > th.narrow {
+table.facility-stats-slave > tr > th.narrow {
 	width: 11em;
 	text-align: right;
 }
 
-table.stats-slave > tr > th.wide {
+table.facility-stats-slave > tr > th.wide {
 	width: 22em;
 	text-align: right;
 }
@@ -52,4 +52,4 @@ td.value {
 
 .decimalZero {
 	opacity: 0.3;
-}
\ No newline at end of file
+}
diff --git a/src/facilities/wardrobe/wardrobeShopping.css b/css/facilities/wardrobe.css
similarity index 100%
rename from src/facilities/wardrobe/wardrobeShopping.css
rename to css/facilities/wardrobe.css
diff --git a/css/general/formatting.css b/css/general/formatting.css
index 01f9990555e92b4eefccc1abe3dd9469376ef91f..b0a408d0c50b27bd40e337e754731380ccefb372 100644
--- a/css/general/formatting.css
+++ b/css/general/formatting.css
@@ -40,7 +40,8 @@
     font-weight: bold;
 }
 
-.major-link, .bold {
+/* strong is deprecated, use bold instead */
+.major-link, .bold, .strong {
     font-weight: bold;
 }
 
diff --git a/css/general/layout.css b/css/general/layout.css
index c591bba80c3376c2e21c89691186704a49e7b84f..6d5fa3a1b13e5d428190a773473115da02a90708 100644
--- a/css/general/layout.css
+++ b/css/general/layout.css
@@ -36,3 +36,8 @@ div.double-indent, p.double-indent {
 .double-choices, .double-choices {
     margin-left: 4em;
 }
+
+div.grid-2columns-auto {
+    display: grid;
+    grid-template-columns: max-content auto;
+}
diff --git a/css/general/output.css b/css/general/output.css
new file mode 100644
index 0000000000000000000000000000000000000000..72eabfbdb7af31eb594f96cf15d088517b088ca2
--- /dev/null
+++ b/css/general/output.css
@@ -0,0 +1,6 @@
+div.output {
+    width: 100vw;
+    max-width: 100%;
+    word-break: break-all;
+    white-space: normal;
+}
diff --git a/src/gui/css/accordion.css b/css/gui/accordion.css
similarity index 100%
rename from src/gui/css/accordion.css
rename to css/gui/accordion.css
diff --git a/css/gui/favorite.css b/css/gui/favorite.css
new file mode 100644
index 0000000000000000000000000000000000000000..e6069066bcdaa3aa9953bb5751391e7a0e2605b3
--- /dev/null
+++ b/css/gui/favorite.css
@@ -0,0 +1,9 @@
+.favorite, .favorite:hover {
+    color: yellow;
+    text-decoration: none;
+}
+
+.not-favorite, .not-favorite:hover {
+    color: grey;
+    text-decoration: none;
+}
diff --git a/css/gui/linksStrip.css b/css/gui/linksStrip.css
new file mode 100644
index 0000000000000000000000000000000000000000..2ae24c635862ceb42a6a35fbaf6b12049055aafe
--- /dev/null
+++ b/css/gui/linksStrip.css
@@ -0,0 +1,20 @@
+ul.choicesStrip {
+    display: inline;
+    list-style-type: none;
+    padding: 0mm;
+    margin-left: 0em;
+}
+
+ul.choicesStrip li {
+    display: inline;
+}
+
+ul.choicesStrip li + li:before {
+    content: " | ";
+}
+
+a.disabled {
+    color: white;
+    pointer-events: none;
+    cursor: default;
+}
diff --git a/src/gui/css/options.css b/css/gui/options.css
similarity index 100%
rename from src/gui/css/options.css
rename to css/gui/options.css
diff --git a/src/003-assets/CSS/quicklinks.css b/css/gui/quicklinks.css
similarity index 100%
rename from src/003-assets/CSS/quicklinks.css
rename to css/gui/quicklinks.css
diff --git a/src/003-assets/CSS/tabs.css b/css/gui/tabs.css
similarity index 100%
rename from src/003-assets/CSS/tabs.css
rename to css/gui/tabs.css
diff --git a/css/gui/tooltips/hasTooltip.css b/css/gui/tooltips/hasTooltip.css
new file mode 100644
index 0000000000000000000000000000000000000000..1eaca7af0ac5c88d57e07a07314f5ac8ab93b4eb
--- /dev/null
+++ b/css/gui/tooltips/hasTooltip.css
@@ -0,0 +1,21 @@
+/* TODO unify tooltip systems */
+.hasTooltip {
+    text-decoration: underline;
+}
+
+/* interactable tooltip-like container - created/destroyed dynamically */
+.details-overlay {
+    display: inline-block;
+    font-size: smaller;
+    width: max-content;
+    height: max-content;
+    border-style: solid;
+    border-color: slategray;
+    border-width: 2px;
+    border-radius: 3px;
+    background-color: rgb(17, 17, 17);
+    padding: 3px;
+    position: absolute;
+    z-index: 2;
+    text-indent: 0;
+}
diff --git a/css/gui/tooltips/textWithTooltip.css b/css/gui/tooltips/textWithTooltip.css
new file mode 100644
index 0000000000000000000000000000000000000000..60036f7ff6dfdb4509470a83523403b9c0b68d5f
--- /dev/null
+++ b/css/gui/tooltips/textWithTooltip.css
@@ -0,0 +1,48 @@
+/* TODO unify tooltip systems */
+.textWithTooltip {
+    position: relative;
+    display: inline-block;
+    text-decoration: underline;
+    text-decoration-color: lightblue;
+}
+
+.textWithTooltip .tooltip {
+    visibility: hidden;
+    display: block;
+    font-size: smaller;
+    width: 20em;
+    margin-left: -10em;
+    background-color: rgb(29, 30, 32);
+    text-align: center;
+    border-radius: 3px;
+    padding: 3px;
+    position: absolute;
+    z-index: 1;
+    bottom: 100%;
+    left: 50%;
+}
+
+.textWithTooltip .tooltip ul {
+    margin-left: 5px;
+    margin-right: 0px;
+    padding-left: 10px;
+    padding-right: 0px;
+    text-align: left;
+}
+
+.textWithTooltip .tooltip::after {
+    content: "";
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    margin-left: -5px;
+    border-width: 5px;
+    border-style: solid;
+    border-color: #555 transparent transparent transparent;
+}
+
+.textWithTooltip:hover .tooltip {
+    visibility: visible;
+    opacity: 1;
+    transition-delay: 0.3s;
+}
diff --git a/src/003-assets/CSS/gridTemplates.css b/css/interaction/prosthetics.css
similarity index 75%
rename from src/003-assets/CSS/gridTemplates.css
rename to css/interaction/prosthetics.css
index bdc2adf2e7f4ce6c1b970d3059b45c2dcb7cf382..0b6a4b4b2dec88df4948f78efe87e67b5327fd0b 100644
--- a/src/003-assets/CSS/gridTemplates.css
+++ b/css/interaction/prosthetics.css
@@ -1,12 +1,3 @@
-/* general use */
-div.grid-2columns-auto {
-	display: grid;
-	grid-template-columns: max-content auto;
-}
-
-/* specific uses */
-
-/* limb selector in limbs.js */
 div.limb-selector {
 	display: grid;
 	grid-template-columns: 200px 100px 100px 100px 100px;
@@ -18,7 +9,6 @@ div.limb-selector div.full {
 	text-align: center;
 }
 
-/* prostheticConfig.tw */
 div.eyeContainer {
 	display: grid;
 	grid-template-columns: 80px 50px 70px 50px;
diff --git a/css/interaction/slaveInteract.css b/css/interaction/slaveInteract.css
new file mode 100644
index 0000000000000000000000000000000000000000..587ffa7234093ab4d043479cc9ee4c0b403336a8
--- /dev/null
+++ b/css/interaction/slaveInteract.css
@@ -0,0 +1,7 @@
+.adjacent-slave {
+    font-weight: bold;
+}
+
+.interact-name {
+    margin: 0 2em;
+}
diff --git a/src/interaction/wardrobe.css b/css/interaction/wardrobe.css
similarity index 100%
rename from src/interaction/wardrobe.css
rename to css/interaction/wardrobe.css
diff --git a/src/003-assets/CSS/table.css b/css/manage/budget.css
similarity index 72%
rename from src/003-assets/CSS/table.css
rename to css/manage/budget.css
index d71878e44483a7243eb66aa161bf63a4a53419a2..eca4573e7de36fe73373de9e5aa2346db05897aa 100644
--- a/src/003-assets/CSS/table.css
+++ b/css/manage/budget.css
@@ -1,16 +1,3 @@
-table.wardrobe {
-	text-align: left;
-	border-collapse: separate;
-	border-spacing: 5px;
-	/*border-style: hidden;*/
-	/*empty-cells: hide;*/
-	width: 900px
-}
-table.wardrobe td {
-	width: 50%;
-	border: 1px solid white;
-}
-
 table.budget {
 	text-align: right;
 	border-collapse: separate;
diff --git a/css/manage/main.css b/css/manage/main.css
new file mode 100644
index 0000000000000000000000000000000000000000..3b1c3042dd81fd8e6ed1c4756b96fd8921e051d1
--- /dev/null
+++ b/css/manage/main.css
@@ -0,0 +1,4 @@
+.main-fcnn {
+    text-align: center;
+    margin: 0 auto;
+}
diff --git a/css/manage/manage.css b/css/manage/manage.css
new file mode 100644
index 0000000000000000000000000000000000000000..9b5838df9f4b328cc5549a4763a8b2e36915d9e3
--- /dev/null
+++ b/css/manage/manage.css
@@ -0,0 +1,6 @@
+/* puts a div in the right upper corner while not influencing the layout of the rest of the page */
+div.cheat-menu {
+    font-style: italic;
+    position: absolute;
+    right: 50px;
+}
diff --git a/src/npc/interaction/slaveOnSlaveFeeding/slaveOnSlaveFeeding.css b/css/npc/slaveOnSlaveFeeding.css
similarity index 98%
rename from src/npc/interaction/slaveOnSlaveFeeding/slaveOnSlaveFeeding.css
rename to css/npc/slaveOnSlaveFeeding.css
index e4fb2cc907eab6d4d2fc07e8aef967eeb0ec919a..bb7e81979fb99693ae0f5b52904a374e0c06bfd1 100644
--- a/src/npc/interaction/slaveOnSlaveFeeding/slaveOnSlaveFeeding.css
+++ b/css/npc/slaveOnSlaveFeeding.css
@@ -4,4 +4,4 @@ table.slave-on-slave-feeding {
 
 table.slave-on-slave-feeding tr {
 	vertical-align: top;
-}
\ No newline at end of file
+}
diff --git a/src/003-assets/CSS/links.css b/src/003-assets/CSS/links.css
deleted file mode 100644
index 5ea75b9308265e8e8d462f309f020e44ac34d277..0000000000000000000000000000000000000000
--- a/src/003-assets/CSS/links.css
+++ /dev/null
@@ -1,68 +0,0 @@
-.textWithTooltip {
-	position: relative;
-	display: inline-block;
-	text-decoration: underline;
-	text-decoration-color: lightblue;
-}
-
-.textWithTooltip .tooltip {
-	visibility: hidden;
-	display: block;
-	font-size: smaller;
-	width: 20em;
-	margin-left: -10em;
-	background-color: rgb(29, 30, 32);
-	text-align: center;
-	border-radius: 3px;
-	padding: 3px;
-	position: absolute;
-	z-index: 1;
-	bottom: 100%;
-	left: 50%;
-}
-
-.textWithTooltip .tooltip ul {
-	margin-left: 5px;
-	margin-right: 0px;
-	padding-left: 10px;
-	padding-right: 0px;
-	text-align: left;
-}
-
-.textWithTooltip .tooltip::after {
-	content: "";
-	position: absolute;
-	top: 100%;
-	left: 50%;
-	margin-left: -5px;
-	border-width: 5px;
-	border-style: solid;
-	border-color: #555 transparent transparent transparent;
-}
-
-.textWithTooltip:hover .tooltip {
-	visibility: visible;
-	opacity: 1;
-	transition-delay: 0.3s;
-}
-
-ul.choicesStrip {
-	display: inline;
-	list-style-type: none;
-	padding: 0mm;
-	margin-left: 0em;
-}
-
-ul.choicesStrip li {
-	display: inline;
-}
-
-ul.choicesStrip li + li:before {
-    content: " | ";
-}
-
-a.disabled {
-	color: white;
-	pointer-events: none;
-	cursor: default;
-}
diff --git a/src/003-assets/CSS/slaveList.css b/src/003-assets/CSS/slaveList.css
index 1622a6a9f60b779856d1aa0468867cb8aadfaf3e..a88ed7430ab4fa4a8937d62476a57f45b9d22ae1 100644
--- a/src/003-assets/CSS/slaveList.css
+++ b/src/003-assets/CSS/slaveList.css
@@ -20,7 +20,3 @@ span.freeAssignment {
 	margin-right: 2em;
 	text-indent: 0;
 }
-
-.strong {
-	font-weight: bold;
-}
diff --git a/src/facilities/statistics.js b/src/facilities/statistics.js
index 380e5499cf6ce95d5624ade61565755554b1ed56..4d0af165db08327df3725360cc19bccfede5d8cd 100644
--- a/src/facilities/statistics.js
+++ b/src/facilities/statistics.js
@@ -6,7 +6,7 @@ App.Facilities.StatsHelper = class {
 	makeStatsTable(columns) {
 		const table = document.createElement("table");
 		table.border = "1";
-		table.className = "stats";
+		table.className = "facility-stats";
 		const header = App.UI.DOM.appendNewElement("tr", table, "", "header");
 		App.UI.DOM.appendNewElement("th", header, "Items"); // first column, flexible width
 		App.UI.DOM.appendNewElement("th", header, columns[0], "wide"); // "revenue" column, wider
@@ -155,7 +155,7 @@ App.Facilities.StatsHelper = class {
 		row.appendChild(bigCell);
 
 		const table = document.createElement("table");
-		table.className = "stats-slave";
+		table.className = "facility-stats-slave";
 		const header = App.UI.DOM.appendNewElement("tr", table, "", "header");
 		App.UI.DOM.appendNewElement("th", header, columns[0]); // first column, flexible width
 		App.UI.DOM.appendNewElement("th", header, columns[1], "narrow"); // facility-specific output details
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
deleted file mode 100644
index a483dfef057e7b156efe5d49373406d37ead692e..0000000000000000000000000000000000000000
--- a/src/gui/css/mainStyleSheet.css
+++ /dev/null
@@ -1,68 +0,0 @@
-div.output{
-width: 100vw;
-max-width: 100%;
-word-break: break-all;
-white-space: normal;
-}
-
-div.slave-report {
-	margin-top: 1em;
-	margin-bottom: 1em;
-}
-
-div.cheat-menu {
-	font-style: italic;
-	position: absolute;
-	right: 50px;
-}
-
-.main-fcnn {
-	text-align: center;
-	margin: 0 auto;
-}
-
-/* TODO unify tooltip systems */
-.hasTooltip {
-	text-decoration: underline;
-}
-
-/* interactable tooltip-like container - created/destroyed dynamically */
-.details-overlay {
-	display: inline-block;
-	font-size: smaller;
-	width: max-content;
-	height: max-content;
-	border-style: solid;
-	border-color: slategray;
-	border-width: 2px;
-	border-radius: 3px;
-	background-color: rgb(17, 17, 17);
-	padding: 3px;
-	position: absolute;
-	z-index: 2;
-	text-indent: 0;
-}
-
-/* make cheat textboxes fit in sidebar */
-#story-caption input {
-	min-width: 0;
-	width: calc(100% - 0.8em - 2px);
-}
-
-/* slave interact navigation */
-.adjacent-slave {
-	font-weight: bold;
-}
-.interact-name {
-	margin: 0 2em;
-}
-
-.favorite, .favorite:hover {
-	color: yellow;
-	text-decoration: none;
-}
-
-.not-favorite, .not-favorite:hover {
-	color: grey;
-	text-decoration: none;
-}
diff --git a/src/gui/css/wardrobeUse.css b/src/gui/css/wardrobeUse.css
deleted file mode 100644
index 94a110b434caf8680e6b94b7d7fb28987dc18ea3..0000000000000000000000000000000000000000
--- a/src/gui/css/wardrobeUse.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Style sheet for WardrobeUse.tw */
-
-#passage-wardrobe-use .optionMacro {
-	display: inline;
-}
-
-#passage-wardrobe-use .optionDescription {
-	width: unset;
-	text-align: left;
-}
-
-#passage-wardrobe-use .optionValue {
-	display: flex;
-}
-
-#passage-wardrobe-use .optionMacroOption {
-	flex-grow: 1;
-}
-
-/* Last line shouldn't grow */
-#passage-wardrobe-use .optionValue::after {
-	flex-grow: 1000000000;
-	content: '';
-}
diff --git a/src/npc/surgery/organFarm.js b/src/npc/surgery/organFarm.js
index e1951cdaafe6f080a73af59d0162bdd2f72b74e5..7294c990068158e73cb30238a2893e46284ccbc0 100644
--- a/src/npc/surgery/organFarm.js
+++ b/src/npc/surgery/organFarm.js
@@ -55,7 +55,6 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 	// put everything in one string
 	let r = "";
 	if (grow !== "") {
-		// div.grid-2columns-auto is defined in mainStyleSheet.css
 		r += `The fabricator is ready to grow an organ for ${him}. Extract tissue to begin growing:<div class="grid-2columns-auto">${grow}</div>`;
 	}
 	if (wait !== []) {