diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index db18e8a017d1dd3895bf6f2b918b9583d63ed1cc..b427861aa6172d9bf8936696ccca5389247269fe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -58,6 +58,6 @@ deploy_staging:
     - development
   script:
     - npm install --global vercel
-    - vercel pull --yes --environment=preview --token=$VERCEL_TOKEN
-    - vercel build --token=$VERCEL_TOKEN
-    - vercel deploy --prebuilt  --token=$VERCEL_TOKEN
+    - vercel pull --yes --environment=production --token=$VERCEL_TOKEN
+    - vercel build --prod --token=$VERCEL_TOKEN
+    - vercel deploy --prebuilt --prod --token=$VERCEL_TOKEN
diff --git a/next.config.js b/next.config.js
index 767719fc4fba59345ae29e29159c9aff270f5819..254ffd6c956bfd4f642b74fe24370e95d5610e5e 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,4 +1,9 @@
 /** @type {import('next').NextConfig} */
-const nextConfig = {}
+const nextConfig = {
+  reactStrictMode: true,
+  experimental: {
+    fontLoaders: [{ loader: '@next/font/google', options: { subsets: ['latin'] } }],
+  },
+};
 
-module.exports = nextConfig
+module.exports = nextConfig;
diff --git a/package-lock.json b/package-lock.json
index 3a29269506367f1ddda4b4b8ea747d6b181f4fa6..32205168fb58eae02fa3d4a9f2c7aa851396f44f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
       "version": "0.1.0",
       "hasInstallScript": true,
       "dependencies": {
+        "@next/font": "^13.5.2",
         "@types/node": "20.6.2",
         "@types/react": "18.2.21",
         "@types/react-dom": "18.2.7",
@@ -18,6 +19,7 @@
         "postcss": "8.4.29",
         "react": "18.2.0",
         "react-dom": "18.2.0",
+        "tailwind-merge": "^1.14.0",
         "tailwindcss": "3.3.3"
       },
       "devDependencies": {
@@ -1955,6 +1957,11 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/@next/font": {
+      "version": "13.5.2",
+      "resolved": "https://registry.npmjs.org/@next/font/-/font-13.5.2.tgz",
+      "integrity": "sha512-c9EXqdXMEErMLrC71wZvpcOnNVkEEufZOO3EjgQJcKQUwPISvnkgIj9GKFIop0rX2dLNdzL3OC/4nrcAqWqUsg=="
+    },
     "node_modules/@next/swc-darwin-arm64": {
       "version": "13.4.19",
       "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz",
@@ -11623,6 +11630,15 @@
       "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
       "dev": true
     },
+    "node_modules/tailwind-merge": {
+      "version": "1.14.0",
+      "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz",
+      "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==",
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/dcastil"
+      }
+    },
     "node_modules/tailwindcss": {
       "version": "3.3.3",
       "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
diff --git a/package.json b/package.json
index d99ca0ae50ae6fce482c52997d40bcd2b58f4629..b4864fbb2026e1537a04b5f0ed8fbc53ba2bbd43 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
     ]
   },
   "dependencies": {
+    "@next/font": "^13.5.2",
     "@types/node": "20.6.2",
     "@types/react": "18.2.21",
     "@types/react-dom": "18.2.7",
@@ -36,6 +37,7 @@
     "postcss": "8.4.29",
     "react": "18.2.0",
     "react-dom": "18.2.0",
+    "tailwind-merge": "^1.14.0",
     "tailwindcss": "3.3.3"
   },
   "devDependencies": {
diff --git a/src/components/SPA/MinervaSPA.component.tsx b/src/components/SPA/MinervaSPA.component.tsx
index 72989e4fe22b36769c0a1d7bd1574c447bf1bb37..c4b61c47c268f3421b3e2fa908b7853e2b6ff8e6 100644
--- a/src/components/SPA/MinervaSPA.component.tsx
+++ b/src/components/SPA/MinervaSPA.component.tsx
@@ -1,8 +1,17 @@
+import { Manrope } from '@next/font/google';
+import { twMerge } from 'tailwind-merge';
 import { Map } from '@/components/Map';
 import { FunctionalArea } from '@/components/FunctionalArea';
 
+const manrope = Manrope({
+  variable: '--font-manrope',
+  display: 'swap',
+  weight: ['400', '700'],
+  subsets: ['latin'],
+});
+
 export const MinervaSPA = (): JSX.Element => (
-  <div className="relative">
+  <div className={twMerge('relative', manrope.variable)}>
     <FunctionalArea />
     <Map />
   </div>
diff --git a/src/styles/index.css b/src/styles/index.css
index 50ca338ae05ee122e5e1b088db4ec4863bf58492..258eff2b7359337086ec8149dc72eb115b7f61d6 100644
--- a/src/styles/index.css
+++ b/src/styles/index.css
@@ -43,3 +43,21 @@ embed,
 object {
   display: inline;
 }
+
+@layer base {
+  h1 {
+    @apply text-xl;
+  }
+  h2 {
+    @apply text-base;
+  }
+  button {
+    @apply text-xs;
+  }
+  body {
+    @apply text-sm;
+  }
+  caption {
+    @apply text-xs;
+  }
+}
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 40ed53088745daf9ebb52d43f07fb15fafec0732..18b85c28fe6459f3c5806534c12dc18ee2507fd6 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -26,6 +26,9 @@ const config: Config = {
         'white-pearl': '#ffffff',
       },
     },
+    fontFamily: {
+      manrope: ['var(--font-manrope)'],
+    },
   },
   plugins: [],
 };