diff --git a/web/content/docs/userguide/basics/openmp.md b/web/content/docs/userguide/basics/openmp.md
new file mode 100644
index 0000000000000000000000000000000000000000..a9b172136a172bfbe9c55fec8eb27a34de888862
--- /dev/null
+++ b/web/content/docs/userguide/basics/openmp.md
@@ -0,0 +1,38 @@
++++
+date = "2024-09-09T13:52:17+02:00"
+title = "OpenMP parallelization"
+author = "Christoph Lehmann"
+weight = 9
+
+
+[menu]
+  [menu.userguide]
+    parent = "basics"
++++
+
+OpenGeoSys supports shared memory parallelization (multi threading) to some
+extent: by default OpenGeoSys is built with OpenMP support and OpenMP-enabled
+linear solvers will automatically make use of it.
+
+The number of threads a linear solver uses can be controlled with the
+environment variable
+[`OMP_NUM_THREADS`](https://www.openmp.org/spec-html/5.0/openmpse50.html).
+
+Note:
+
+* Some linear solvers and some preconditioners from the Eigen library run with a
+  single thread only, see
+  [here](https://eigen.tuxfamily.org/dox/TopicMultiThreading.html).
+* When using distributed memory parallelization (MPI) it might not make sense to
+  use OpenMP at the same time: the different threads might compete for the same
+  CPU resources.
+* There is an interference between the Intel MKL and OpenMP parallelization: If
+  you use OGS together with the former, you might break the latter. In that case
+  you might want to change the
+  [`OGS_EIGEN_PARALLEL_BACKEND`](/docs/devguide/advanced/configuration-options/).
+
+In addition, the assembly of some processes in OGS can be run
+OpenMP-parallelized when setting the environment variable `OGS_ASM_THREADS` to
+the number of threads to be used. At the moment (2024-09-09) that's supported by
+the `HydroMechanics`, `TH2M`, `ThermoRichardsMechanics`, and
+`ThermoRichardsFlow` processes.
diff --git a/web/content/docs/userguide/troubleshooting/debugging.md b/web/content/docs/userguide/troubleshooting/debugging.md
new file mode 100644
index 0000000000000000000000000000000000000000..9493dfa6ce7c775296d426fb1103631cb774689e
--- /dev/null
+++ b/web/content/docs/userguide/troubleshooting/debugging.md
@@ -0,0 +1,61 @@
++++
+date = "2024-09-10T10:57:31+02:00"
+title = "Debugging Options"
+author = "Christoph Lehmann"
+weight = 1
++++
+
+If you encounter an error or unexpected behaviour during an OGS simulation there
+are a couple of things you can do to investigate the error. These are, e.g...
+
+## Increasing the Log Level
+
+Running OGS with the [command line option](/docs/userguide/basics/cli-arguments/)
+`-l debug` will make OGS print a lot of debug output, which might help locating
+the cause of the error.
+
+## Writing local and/or global Vectors and Matrices
+
+When the environment variables `OGS_LOCAL_MAT_OUT_PREFIX="<some prefix>"` and
+`OGS_LOCAL_MAT_OUT_ELEMENTS="0 1 5 16 123"` (or `"*"` to select all elements)
+are set, OGS will write the local matrices and vectors it has assembled to
+`<some prefix>ogs_local_matrix.log`. That file can be checked, if the assembled
+Jacobian is singular, among others. `<some prefix>` can contain slashes, making
+output to an arbitrary directory possible.
+
+Likewise, output of global matrices can be requested via
+`OGS_GLOBAL_MAT_OUT_PREFIX="<some prefix>"`. That will make OGS write a series
+of files, one for each global matrix/vector for each non-linear iteration.
+
+Local matrix output is available for all processes in OGS, as of now
+(2024-09-10) global matrix output is available only for the `LARGE_DEFORMATION`,
+`SMALL_DEFORMATION`, `ThermalTwoPhaseFlowWithPP`, `ThermoRichardsMechanics` and
+`TH2M` processes, and only for serial (non-PETSc) runs.
+
+## Generating more output
+
+When the [`<time_loop/output/variables>`](https://doxygen.opengeosys.org/d2/d5b/ogs_file_param__prj__time_loop__output__variables)
+list in the OGS project file is empty, OGS will write all available data to its
+output files.
+
+Furthermore, you can set
+[`<time_loop/output/output_iteration_results>`](https://doxygen.opengeosys.org/dc/d50/ogs_file_param__prj__time_loop__output__output_iteration_results.html)
+to true. Then OGS will generate output files after each non-linear iteration,
+which might help to find the cause of a non-linear solver divergence.
+This option is available for VTK output only (as of Sep. 2024).
+
+When interpreting secondary variables it makes sense to enable
+[`<time_loop/output/output_extrapolation_residuals>`](https://doxygen.opengeosys.org/d1/d30/ogs_file_param__prj__time_loop__output__output_extrapolation_residuals.html).
+The generated extrapolation residuals provide a measure of the extrapolation
+errors of secondary variables.
+
+## Enabling Floating Point Exceptions
+
+If you are running OGS on Linux you can pass it the [command line option](/docs/userguide/basics/cli-arguments/)
+`--enable-fpe` while running OGS in a debugger. That command line option will
+raise a signal (i.e., make OGS crash) if there is a divide by zero or other
+illegal floating point operation. The debugger will notice that situation and
+stop at the respective source location. That, of course, requires an OGS build
+with debug information (this is different from debug output above) enabled. See
+[here](/docs/devguide/getting-started/build-configuration/#available-cmake-presets)
+for more information.
diff --git a/web/tailwind.config.js b/web/tailwind.config.js
index d22f5fd8cbed1b981208ed29ab6d74749cf84034..66cd361827d1e7515a99b0d93e1b595ef242f474 100644
--- a/web/tailwind.config.js
+++ b/web/tailwind.config.js
@@ -7,14 +7,33 @@ module.exports = {
   ],
   theme: {
     extend: {
-      typography: {
-        DEFAULT: {
-          css: {
-            a: {
-              color: '#104EB2',
-            }
-          },
-        },
+      typography (theme) {
+        return {
+          DEFAULT: {
+            css: {
+              a: {
+                color: '#104EB2',
+              },
+              'code::before': {
+                content: 'none',
+              },
+              'code::after': {
+                content: 'none'
+              },
+              code: {
+                "font-weight": "normal",
+                borderRadius: theme('borderRadius.DEFAULT'),
+                paddingLeft: theme('spacing[1]'),
+                paddingRight: theme('spacing[1]'),
+                paddingTop: theme('spacing[0.5]'),
+                paddingBottom: theme('spacing[0.5]'),
+              },
+              'a code:hover': {
+                "font-weight": "bold",
+              },
+            },
+          }
+        };
       },
       fontFamily: {
         sans: ['Open Sans', ...defaultTheme.fontFamily.sans]