.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09c63442d9d63442d9d9ecec03e9ecec03e9ecec03e9ecec03e
Found 1 files trough .DS_Store spidering: /projects
Severity: medium
Fingerprint: 5f32cf5d6962f09c8ef2655c8ef2655ccfd578bc986d3668c2f7e66e45c82596
Found 71 files trough .DS_Store spidering: /favicon.ico /img /img/about /img/bg /img/blog /img/carousel /img/case-study /img/clint /img/corona /img/flexable-image-slide /img/gallery /img/grid-box /img/icons /img/instagram /img/logo /img/others /img/portfolio /img/portfolio/big-image /img/portfolio/grid /img/portfolio/grid/caption-1.jpg /img/portfolio/grid/caption-2.jpg /img/portfolio/grid/caption-3.jpg /img/portfolio/grid/caption-4.jpg /img/portfolio/grid/caption-5.jpg /img/portfolio/grid/caption-6.jpg /img/portfolio/grid/caption-7.jpg /img/portfolio/grid/caption-8.jpg /img/portfolio/grid/caption-9.jpg /img/portfolio/grid/freelancer-1.jpg /img/portfolio/grid/freelancer-2.jpg /img/portfolio/grid/freelancer-3.jpg /img/portfolio/grid/freelancer-4.jpg /img/portfolio/grid/grid-metro-1.jpg /img/portfolio/grid/grid-metro-2.jpg /img/portfolio/grid/grid-metro-3.jpg /img/portfolio/grid/grid-metro-4.jpg /img/portfolio/grid/grid-metro-5.jpg /img/portfolio/grid/grid-metro-6.jpg /img/portfolio/grid/grid-metro-7.jpg /img/portfolio/grid/grid-metro-8.jpg /img/portfolio/grid/grid-metro2-1.jpg /img/portfolio/grid/grid-metro2-2.jpg /img/portfolio/grid/grid-metro2-3.jpg /img/portfolio/grid/grid-metro2-4.jpg /img/portfolio/grid/grid-metro2-5.jpg /img/portfolio/grid/grid-metro2-6.jpg /img/portfolio/grid/grid-metro2-7.jpg /img/portfolio/grid/grid-metro2-8.jpg /img/portfolio/grid/grid-metro2-9.jpg /img/portfolio/grid/has-center-1.jpg /img/portfolio/grid/has-center-2.jpg /img/portfolio/grid/has-center-3.jpg /img/portfolio/grid/has-center-4.jpg /img/portfolio/grid/metro3-1.jpg /img/portfolio/grid/metro3-2.jpg /img/portfolio/grid/metro3-3.jpg /img/portfolio/grid/metro3-4.jpg /img/portfolio/grid/metro3-5.jpg /img/portfolio/grid/metro3-6.jpg /img/portfolio/grid/metro3-7.jpg /img/portfolio/grid/metro3-8.jpg /img/portfolio/grid/untitled folder /img/portfolio/grid/untitled folder/caption-3.jpg /img/portfolio/portfolio-1 /img/portfolio/portfolio-2 /img/portfolio/type-hover /img/restaurant /img/service /img/slider /img/team /img/testimonial
Severity: low
Fingerprint: 5f32cf5d6962f09c9e04c3bc9e04c3bca7e71c1c565d16481f74a5cef98179b8
Found 22 files trough .DS_Store spidering: /favicon.ico /img /img/about /img/bg /img/blog /img/carousel /img/case-study /img/clint /img/corona /img/flexable-image-slide /img/gallery /img/grid-box /img/icons /img/instagram /img/logo /img/others /img/portfolio /img/restaurant /img/service /img/slider /img/team /img/testimonial
Severity: medium
Fingerprint: 5f32cf5d6962f09c2a0815492a08154912597f95196d9cd5877461b7819386f1
Found 70 files trough .DS_Store spidering: /favicon.ico /img /img/about /img/bg /img/blog /img/carousel /img/case-study /img/clint /img/corona /img/flexable-image-slide /img/gallery /img/grid-box /img/icons /img/instagram /img/logo /img/others /img/portfolio /img/portfolio/big-image /img/portfolio/grid /img/portfolio/grid/caption-1.jpg /img/portfolio/grid/caption-2.jpg /img/portfolio/grid/caption-3.jpg /img/portfolio/grid/caption-4.jpg /img/portfolio/grid/caption-5.jpg /img/portfolio/grid/caption-6.jpg /img/portfolio/grid/caption-7.jpg /img/portfolio/grid/caption-8.jpg /img/portfolio/grid/caption-9.jpg /img/portfolio/grid/freelancer-1.jpg /img/portfolio/grid/freelancer-2.jpg /img/portfolio/grid/freelancer-3.jpg /img/portfolio/grid/freelancer-4.jpg /img/portfolio/grid/grid-metro-1.jpg /img/portfolio/grid/grid-metro-2.jpg /img/portfolio/grid/grid-metro-3.jpg /img/portfolio/grid/grid-metro-4.jpg /img/portfolio/grid/grid-metro-5.jpg /img/portfolio/grid/grid-metro-6.jpg /img/portfolio/grid/grid-metro-7.jpg /img/portfolio/grid/grid-metro-8.jpg /img/portfolio/grid/grid-metro2-1.jpg /img/portfolio/grid/grid-metro2-2.jpg /img/portfolio/grid/grid-metro2-3.jpg /img/portfolio/grid/grid-metro2-4.jpg /img/portfolio/grid/grid-metro2-5.jpg /img/portfolio/grid/grid-metro2-6.jpg /img/portfolio/grid/grid-metro2-7.jpg /img/portfolio/grid/grid-metro2-8.jpg /img/portfolio/grid/grid-metro2-9.jpg /img/portfolio/grid/has-center-1.jpg /img/portfolio/grid/has-center-2.jpg /img/portfolio/grid/has-center-3.jpg /img/portfolio/grid/has-center-4.jpg /img/portfolio/grid/metro3-1.jpg /img/portfolio/grid/metro3-2.jpg /img/portfolio/grid/metro3-3.jpg /img/portfolio/grid/metro3-4.jpg /img/portfolio/grid/metro3-5.jpg /img/portfolio/grid/metro3-6.jpg /img/portfolio/grid/metro3-7.jpg /img/portfolio/grid/metro3-8.jpg /img/portfolio/grid/untitled folder /img/portfolio/portfolio-1 /img/portfolio/portfolio-2 /img/portfolio/type-hover /img/restaurant /img/service /img/slider /img/team /img/testimonial
.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09c63442d9d63442d9d9ecec03e9ecec03e9ecec03e9ecec03e
Found 1 files trough .DS_Store spidering: /projects
Open service 20.82.12.44:443 · gavinearley.dev
2026-01-09 14:16
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Jan 2026 14:17:28 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: aae923af-e325-44bd-8b30-89d51e3f085c
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · www.gavinearley.dev
2026-01-09 06:15
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Jan 2026 06:16:25 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: f2417b15-33e7-48d1-8400-326ae989ac0b
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · gavinearley.dev
2026-01-02 15:18
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Fri, 02 Jan 2026 15:18:23 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: 4f5493e5-178b-4160-be1e-ba403c1bf248
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · www.gavinearley.dev
2026-01-02 06:37
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Fri, 02 Jan 2026 06:37:29 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: a1b421f4-957f-48c5-8194-3b855c96ee08
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · www.gavinearley.dev
2025-12-30 11:45
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Tue, 30 Dec 2025 11:45:03 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: 65e37634-b35e-465f-bac4-c644917a7327
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · gavinearley.dev
2025-12-23 07:21
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Dec 2025 07:21:14 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: e6752695-d97b-4735-bf85-84dc3e8eb627
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · www.gavinearley.dev
2025-12-22 14:59
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Mon, 22 Dec 2025 14:59:53 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: 247139cd-aa6a-4371-bb5b-6810da1352d4
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · gavinearley.dev
2025-12-20 23:47
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Sat, 20 Dec 2025 23:47:49 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: 03b96156-8236-4b72-9469-515fc86f3d98
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d
Open service 20.82.12.44:443 · www.gavinearley.dev
2025-12-20 19:16
HTTP/1.1 200 OK
Content-Length: 399437
Connection: close
Content-Type: text/html; charset=utf-8
Date: Sat, 20 Dec 2025 19:16:31 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-middleware-request-id: d7f0a7eb-dcf1-4695-9483-0e9509774756
X-Powered-By: Nuxt
Page title: Gavin Earley
<!DOCTYPE html><html lang="en" class="h-full"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style id="nuxt-ui-colors">:root {
--color-primary-50: 240 253 250;
--color-primary-100: 204 251 241;
--color-primary-200: 153 246 228;
--color-primary-300: 94 234 212;
--color-primary-400: 45 212 191;
--color-primary-500: 20 184 166;
--color-primary-600: 13 148 136;
--color-primary-700: 15 118 110;
--color-primary-800: 17 94 89;
--color-primary-900: 19 78 74;
--color-primary-950: 4 47 46;
--color-primary-DEFAULT: var(--color-primary-500);
--color-gray-50: 250 250 250;
--color-gray-100: 245 245 245;
--color-gray-200: 229 229 229;
--color-gray-300: 212 212 212;
--color-gray-400: 163 163 163;
--color-gray-500: 115 115 115;
--color-gray-600: 82 82 82;
--color-gray-700: 64 64 64;
--color-gray-800: 38 38 38;
--color-gray-900: 23 23 23;
--color-gray-950: 10 10 10;
}
.dark {
--color-primary-DEFAULT: var(--color-primary-400);
}
</style>
<title>Gavin Earley</title>
<style> @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; descent-override: 20.9416%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Noto Sans"); size-adjust: 100.6532%; ascent-override: 96.2463%; descent-override: 23.991%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Arial"); size-adjust: 107.4014%; ascent-override: 90.199%; descent-override: 22.4836%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Helvetica Neue"); size-adjust: 106.0574%; ascent-override: 91.342%; descent-override: 22.7685%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Roboto"); size-adjust: 107.2828%; ascent-override: 90.2987%; descent-override: 22.5085%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("Segoe UI"); size-adjust: 107.1644%; ascent-override: 90.3985%; descent-override: 22.5334%; line-gap-override: 0%; } @font-face { font-family: "Inter fallback"; src: local("BlinkMacSystemFont"); size-adjust: 115.3099%; ascent-override: 84.0128%; d