diff --git a/Makefile b/Makefile
index e5eae25cd3596fe20a3b798903a2ee69bfb4d4bc..16ad64e8af9de4671b97c02c74fad992d2f05ff8 100644
--- a/Makefile
+++ b/Makefile
@@ -36,9 +36,13 @@ bin/%.html: bin/tmp
 bin/fc.js: bin/
 	devTools/concatFiles.sh js/ '*.js' $@
 
+bin/fc.css: bin/
+	devTools/concatFiles.sh css/ '*.css' $@
+
 bin/tmp: bin/fc.js injectGitCommitHash
-	$(TWEEGO) --module=bin/fc.js --head resources/raster/favicon/arcologyVector.html src/ > $@
+	$(TWEEGO) --module=bin/fc.js --module=bin/fc.css --head resources/raster/favicon/arcologyVector.html src/ > $@
 	rm -f bin/fc.js
+	rm -f bin/fc.css
 
 injectGitCommitHash:
 	printf "App.Version.commitHash = '%s';\n" $(COMMIT) > src/002-config/fc-version.js.commitHash.js
diff --git a/build.config.json b/build.config.json
index 3ca42b2f73c13823ecfdbcfe4bbb03fa9e8fb973..29c318251814ba9a463de44b1909ddf65c75d40a 100644
--- a/build.config.json
+++ b/build.config.json
@@ -8,7 +8,8 @@
 	"gitVersionFile": "src/002-config/fc-version.js.commitHash.js",
 	"sources": {
 		"module": {
-			"js": ["js/**/*.js"]
+			"js": ["js/**/*.js"],
+			"css": ["css/**/*.css"]
 		},
 		"story": {
 			"css": ["src/**/*.css"],
diff --git a/compile.bat b/compile.bat
index 4e025315befd1b8612972e1c441c08b09d0431e6..ec8bda25248803f824719dd59c073a36896d52d6 100644
--- a/compile.bat
+++ b/compile.bat
@@ -28,13 +28,15 @@ if %GITFOUND% == yes (
 
 if not exist "bin\resources" mkdir bin\resources
 CALL devTools/concatFiles.bat js\ "*.js" bin\fc.js
+CALL devTools/concatFiles.bat css\ "*.css" bin\fc.css
 :: Run the appropriate compiler for the user's CPU architecture.
 if %PROCESSOR_ARCHITECTURE% == AMD64 (
-	CALL "%~dp0devTools\tweeGo\tweego_win64.exe" -o "%~dp0bin/FC_pregmod.html" --module=bin/fc.js --head resources/raster/favicon/arcologyVector.html "%~dp0src"
+	CALL "%~dp0devTools\tweeGo\tweego_win64.exe" -o "%~dp0bin/FC_pregmod.html" --module=bin/fc.js --module=bin/fc.css --head resources/raster/favicon/arcologyVector.html "%~dp0src"
 ) else (
-	CALL "%~dp0devTools\tweeGo\tweego_win86.exe" -o "%~dp0bin/FC_pregmod.html" --module=bin/fc.js --head resources/raster/favicon/arcologyVector.html "%~dp0src"
+	CALL "%~dp0devTools\tweeGo\tweego_win86.exe" -o "%~dp0bin/FC_pregmod.html" --module=bin/fc.js --module=bin/fc.css --head resources/raster/favicon/arcologyVector.html "%~dp0src"
 )
 DEL bin\fc.js
+DEL bin\fc.css
 IF EXIST "%~dp0src\002-config\fc-version.js.commitHash.js" DEL "%~dp0src\002-config\fc-version.js.commitHash.js"
 
 popd
diff --git a/compile.sh b/compile.sh
index 26645eb66ad826d31ba07e564c5cec3dac924008..3f48f29bb319688a3e0716043e700575929986e6 100755
--- a/compile.sh
+++ b/compile.sh
@@ -75,8 +75,10 @@ function compile() {
 	fi
 
 	devTools/concatFiles.sh js/ '*.js' bin/fc.js
-	$TWEEGO_EXE -o $file --module=bin/fc.js --head resources/raster/favicon/arcologyVector.html src/ || build_failed="true"
+	devTools/concatFiles.sh css/ '*.css' bin/css.js
+	$TWEEGO_EXE -o $file --module=bin/fc.js --module=bin/fc.css --head resources/raster/favicon/arcologyVector.html src/ || build_failed="true"
 	rm -f bin/fc.js
+	rm -f bin/fc.css
 	if [ "$build_failed" = "true" ]; then
 		echoError "Build failed."
 		exit 1
diff --git a/css/001-lib/macros.css b/css/001-lib/macros.css
new file mode 100644
index 0000000000000000000000000000000000000000..39a2dd5778ec12fd4f0bb7b9e179053e5fbf61a8
--- /dev/null
+++ b/css/001-lib/macros.css
@@ -0,0 +1,2 @@
+/*! <<checkvars>> macro for SugarCube 2.x */
+#ui-dialog-body.checkvars{padding:1em}#ui-dialog-body.checkvars h1{font-size:1em;margin-top:0}#ui-dialog-body.checkvars table{border-collapse:collapse;border-spacing:0}#ui-dialog-body.checkvars thead tr{border-bottom:2px solid #444}#ui-dialog-body.checkvars tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.checkvars td,#ui-dialog-body.checkvars th{padding:.25em 1em}#ui-dialog-body.checkvars td:first-child,#ui-dialog-body.checkvars th:first-child{padding-left:.5em;border-right:1px solid #444}#ui-dialog-body.checkvars td:last-child,#ui-dialog-body.checkvars th:last-child{padding-right:.5em}#ui-dialog-body.checkvars th:first-child{text-align:center}#ui-dialog-body.checkvars td:first-child{font-weight:700;text-align:right}#ui-dialog-body.checkvars td{font-family:monospace,monospace;vertical-align:top;white-space:pre-wrap}#ui-dialog-body.checkvars .scroll-pad{margin:0;padding:0}
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
index 7c5b01938e6b32475f8084c2c965795994bbe61f..290a25457cb838f2e03df645c8c33de722cd6e6b 100644
--- a/src/gui/css/mainStyleSheet.css
+++ b/src/gui/css/mainStyleSheet.css
@@ -185,9 +185,6 @@ img.paperdoll {
 .violet, .libido.inc { color: violet }
 .khaki, .libido.dec { color: khaki }
 
-/*! <<checkvars>> macro for SugarCube 2.x */
-#ui-dialog-body.checkvars{padding:1em}#ui-dialog-body.checkvars h1{font-size:1em;margin-top:0}#ui-dialog-body.checkvars table{border-collapse:collapse;border-spacing:0}#ui-dialog-body.checkvars thead tr{border-bottom:2px solid #444}#ui-dialog-body.checkvars tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.checkvars td,#ui-dialog-body.checkvars th{padding:.25em 1em}#ui-dialog-body.checkvars td:first-child,#ui-dialog-body.checkvars th:first-child{padding-left:.5em;border-right:1px solid #444}#ui-dialog-body.checkvars td:last-child,#ui-dialog-body.checkvars th:last-child{padding-right:.5em}#ui-dialog-body.checkvars th:first-child{text-align:center}#ui-dialog-body.checkvars td:first-child{font-weight:700;text-align:right}#ui-dialog-body.checkvars td{font-family:monospace,monospace;vertical-align:top;white-space:pre-wrap}#ui-dialog-body.checkvars .scroll-pad{margin:0;padding:0}
-
 div.output{
 width: 100%;
 width: 100vw;