diff --git a/deno.jsonc b/deno.jsonc
index 37a53e6..dd3a102 100644
--- a/deno.jsonc
+++ b/deno.jsonc
@@ -8,8 +8,8 @@
"compile:check": "deno check",
"deploy": "deno task build && deno run --allow-net --allow-read --allow-env --env tools/deploy.ts",
"deploy:check": "deno run --allow-net --allow-env tools/deploy-check.ts",
- "dev": "deno run --allow-net --allow-read jsr:@std/http/file-server src/",
- "dev:dist": "deno task build && deno run --allow-net --allow-read jsr:@std/http/file-server dist/",
+ "dev": "deno run --allow-net --allow-read jsr:@std/http/file-server --host 127.0.0.1 src/",
+ "dev:dist": "deno task build && deno run --allow-net --allow-read jsr:@std/http/file-server --host 127.0.0.1 dist/",
"dist": "deno run --allow-read --allow-write --allow-env tools/dist.ts",
"fmt:check": "deno fmt --check",
"lint:check": "deno lint"
diff --git a/src/_css/main.css b/src/_css/main.css
index 0deb358..8ef29e9 100644
--- a/src/_css/main.css
+++ b/src/_css/main.css
@@ -1,386 +1,408 @@
/* -----------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////////
-CORE STYLES (low resolution, old devices)
+MODERN CSS RESET
////////////////////////////////////////////////////////////////////////////////
----------------------------------------------------------------------------- */
-/* --------------------------------- */
-/* General */
-/* --------------------------------- */
+/* 1. Use a more-intuitive box-sizing model. */
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+/* 2. Remove default margin */
+* {
+ margin: 0;
+}
+
+/* 3. Allow percentage-based heights in the application */
html,
body {
height: 100%;
}
+/* 4. Improve the line height and add accessible line-height */
body {
- font-family: "source-sans-pro", sans-serif;
- font-size: 100%; /* Use device defaults, typically 16px. */
+ line-height: 1.5;
+ -webkit-font-smoothing: antialiased;
}
-a {
- color: #bce784;
- font-weight: bold;
- text-decoration: none;
+/* 5. Improve media defaults */
+img,
+picture,
+video,
+canvas,
+svg {
+ display: block;
+ max-width: 100%;
}
-header {
- color: #513b56;
- font-size: larger;
- text-align: center;
+/* 6. Remove built-in form typography styles */
+input,
+button,
+textarea,
+select {
+ font: inherit;
}
-p {
- color: #513b56;
+/* 7. Avoid text overflows */
+p,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ overflow-wrap: break-word;
}
-h1 {
- color: #513b56;
- font-family: "bebas-neue", sans-serif;
- text-align: center;
+/* 8. Create a root stacking context */
+#root,
+#__next {
+ isolation: isolate;
}
-/* --------------------------------- */
-/* Content */
-/* --------------------------------- */
-
-article {
- font-size: 6vw;
- padding: 1rem;
-}
-
-.emote-winky-face {
- display: inline-block;
-
- -webkit-transform: translateX(1vw) translateY(-2vw) rotate(45deg);
- -ms-transform: translateX(1vw) translateY(-2vw) rotate(45deg);
- transform: translateX(1vw) translateY(-2vw) rotate(45deg);
-}
-
-.glow-green {
- color: #bce784;
-}
+/* -----------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+PROJECT STYLES
+////////////////////////////////////////////////////////////////////////////////
+----------------------------------------------------------------------------- */
-.company-flyer-qrcode {
- display: none;
+:root {
+ --color-primary: #348aa7; /* Blue */
+ --color-secondary: #bce784; /* Green */
+ --color-accent: #513b56; /* Dark Purple */
+ --color-bg: #ffffff;
+ --color-bg-alt: #f4f7f8;
+ --color-text: #513b56;
+ --container-width: 1000px;
+ --spacing: 1.5rem;
}
/* --------------------------------- */
-/* Sections */
+/* General */
/* --------------------------------- */
-#dont-speak-geek {
- background-color: #bce784;
- font-family: "verveine", sans-serif;
- font-size: 10vw;
- padding: 10vw 0;
- text-align: center;
+html {
+ scroll-behavior: smooth;
}
-#dont-speak-geek > header {
- color: #513b56;
+body {
+ font-family: "source-sans-pro", sans-serif;
+ color: var(--color-text);
+ background-color: var(--color-bg);
}
-#dont-speak-geek > p {
- color: #348aa7;
- margin: 0;
+h1,
+h2,
+h3 {
+ font-family: "bebas-neue", sans-serif;
+ color: var(--color-accent);
+ margin-top: 0;
+ text-transform: uppercase;
+ letter-spacing: 1px;
}
-/* --------------------------------- */
-
-#nbs-your-lifesaver {
- background-color: #ffffff;
- color: #513b56;
- font-family: "source-sans-pro", sans-serif;
-
- background-image: url("../_images/nbs-lifesaver-empty-faded-500px.png");
- background-position: center center;
- background-repeat: no-repeat;
- background-size: 50vw;
+h1 {
+ font-size: clamp(2.5rem, 8vw, 4rem);
}
-#nbs-your-lifesaver > div {
+h2 {
+ font-size: clamp(2rem, 5vw, 2.5rem);
text-align: center;
+ margin-bottom: 2rem;
}
-#nbs-your-lifesaver p {
- display: inline-block;
- margin: 0;
- text-align: left;
+h3 {
+ font-size: 1.5rem;
+ color: var(--color-primary);
}
-#nbs-your-lifesaver #call-to-action {
- margin: 1rem 0;
+p {
+ margin-bottom: 1rem;
}
-#nbs-your-lifesaver #call-to-action > span:first-of-type {
- margin: 0;
+a {
+ color: var(--color-primary);
+ text-decoration: none;
+ transition: opacity 0.2s;
}
-#nbs-your-lifesaver #call-to-action > span {
- display: block;
- margin: 0;
- margin-left: 15vw;
+a:hover {
+ opacity: 0.8;
+}
+
+ul {
+ padding-left: 1.5rem;
}
-#nbs-your-lifesaver #call-to-action > span:last-of-type {
- margin-left: 45vw;
+.container {
+ max-width: var(--container-width);
+ margin: 0 auto;
+ padding: 0 var(--spacing);
}
+/* --------------------------------- */
+/* Hero */
/* --------------------------------- */
-#nbs-can-help {
- background-color: #348aa7;
- font-family: "verveine", sans-serif;
- font-size: 8vw;
- padding: 8vw 0;
+.hero {
+ background: linear-gradient(135deg, var(--color-accent) 10%, var(--color-primary) 100%);
+ color: #fff;
+ padding: 100px 0;
text-align: center;
-
- background-image: url("../_images/nbs-bubbles-250px.png");
- background-position: right 1rem bottom;
- background-repeat: no-repeat;
- background-size: 30vw;
}
-#nbs-can-help .company-acronym {
- color: #513b56;
+.hero h1 {
+ color: var(--color-secondary);
+ margin-bottom: 0.5rem;
+ white-space: nowrap;
+ font-size: clamp(1.8rem, 8.5vw, 4rem);
+ letter-spacing: 0.05em;
}
-#nbs-can-help > header {
- color: #a4bab7;
+.brand-letter {
+ color: var(--color-primary);
}
-#nbs-can-help > p {
- color: #513b56;
- margin: 0;
+.tagline {
+ font-size: clamp(1.1rem, 5vw, 1.5rem);
+ font-weight: bold;
+ margin-bottom: 2rem;
+ letter-spacing: 1px;
+ white-space: nowrap;
}
-/* --------------------------------- */
+.intro {
+ font-size: 1.2rem;
+ max-width: 600px;
+ margin: 0 auto 2.5rem;
+ font-family: "verveine", sans-serif;
+ color: #e0e0e0;
+}
-#how-nbs-helps {
- background-color: #ffffff;
- overflow: auto;
+@media (min-width: 580px) {
+ .intro {
+ max-width: 800px;
+ }
+ .intro-line {
+ display: block;
+ margin-top: 0.5rem;
+ }
}
-#how-nbs-helps h1 {
- margin-bottom: 0.5rem;
+.btn {
+ display: inline-block;
+ background-color: var(--color-secondary);
+ color: var(--color-accent);
+ padding: 0.8rem 2rem;
+ border-radius: 50px;
+ font-weight: bold;
+ font-size: 1.1rem;
+ transition: transform 0.2s, box-shadow 0.2s;
}
-#how-nbs-helps p {
- margin-top: 0;
- text-align: justify;
+.btn:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
/* --------------------------------- */
-/* Company Info */
+/* Sections */
/* --------------------------------- */
-.company-name-word::first-letter,
-.company-acronym {
- color: #348aa7;
- font-weight: bold;
+.section {
+ padding: 80px 0;
}
-.company-number {
- color: #513b56;
+.alt-bg {
+ background-color: var(--color-bg-alt);
}
-/* -----------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////
-BREAKPOINTS
-////////////////////////////////////////////////////////////////////////////////
------------------------------------------------------------------------------ */
-
-/* 500px @ 16px */
-@media all and (min-width: 31.25rem) {
- #nbs-your-lifesaver {
- background-image: url("../_images/nbs-lifesaver-empty-faded-800px.png");
- }
-
- #nbs-can-help {
- background-size: 25vw;
- }
-
- #how-nbs-helps {
- text-align: center;
- }
-
- #how-nbs-helps > section {
- display: inline-block;
- font-size: large;
- margin: auto 0.5rem;
- vertical-align: top;
- width: 43vw;
- }
+.grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: 2rem;
}
-/* 600px @ 16px */
-@media all and (min-width: 37.5rem) {
- article {
- font-size: 4vw;
- }
-
- #nbs-your-lifesaver,
- #nbs-can-help {
- background-size: 20vw;
- background-position: right 1rem center;
- }
+.card {
+ background: #fff;
+ padding: 2rem;
+ border-radius: 12px;
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
+ border-top: 5px solid var(--color-secondary);
+}
- #nbs-your-lifesaver #call-to-action {
- display: block;
- text-align: center;
- }
+/* --------------------------------- */
+/* Platforms */
+/* --------------------------------- */
- #nbs-your-lifesaver #call-to-action > span,
- #nbs-your-lifesaver #call-to-action > span:last-of-type {
- display: inline-block;
- margin: 0;
- }
+.flex-row {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-around;
+ gap: 2rem;
}
-/* 800px @ 16px */
-@media all and (min-width: 50rem) {
- #how-nbs-helps > section {
- margin: auto 0.5rem;
- width: 29vw;
- }
+.platform-group {
+ flex: 1;
+ min-width: 250px;
+ text-align: center;
}
-/* 1000px @ 16px */
-@media all and (min-width: 62.5rem) {
- article,
- header {
- text-align: left;
- }
-
- .emote-winky-face {
- -webkit-transform: translateX(1vw) translateY(-2vw) rotate(45deg);
- -ms-transform: translateX(1vw) translateY(-2vw) rotate(45deg);
- transform: translateX(0.25vw) translateY(-0.5vw) rotate(45deg);
- }
-
- #dont-speak-geek,
- #nbs-can-help {
- font-size: 4vw;
- padding: 4rem;
- text-align: left;
- }
+.platform-group h3 {
+ margin-bottom: 1.5rem;
+}
- #dont-speak-geek > p {
- margin-top: -1vw;
- margin-left: 12vw;
- }
+.platform-group ul {
+ list-style: none;
+ padding: 0;
+ display: grid;
+ grid-template-columns: repeat(2, auto);
+ justify-content: center;
+ gap: 1rem;
+}
- #nbs-your-lifesaver {
- background-position: right 15vw center;
- background-size: 15vw;
- }
+.platform-group li {
+ background: var(--color-accent);
+ color: #fff;
+ padding: 0.5rem 0;
+ border-radius: 20px;
+ font-weight: bold;
+ width: 120px;
+ text-align: center;
+}
- #nbs-can-help > header,
- #nbs-can-help > p {
- text-align: right;
- }
+/* --------------------------------- */
+/* Pricing */
+/* --------------------------------- */
- #nbs-can-help {
- background-position: right 10vw center;
- background-size: 10vw;
- }
+.pricing-info {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 3rem;
+ text-align: center;
+}
- #nbs-can-help > p {
- margin-top: -1vw;
- margin-right: 8vw;
- }
+.price-box {
+ background: var(--color-primary);
+ color: #fff;
+ padding: 2rem;
+ border-radius: 50%;
+ width: 250px;
+ height: 250px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ box-shadow: 0 10px 20px rgba(52, 138, 167, 0.3);
+ flex-shrink: 0;
+}
- #nbs-your-lifesaver,
- #how-nbs-helps {
- font-size: 3vw;
- }
+.price-box p {
+ white-space: nowrap;
+ font-size: 0.9rem;
+ margin-bottom: 0;
+}
- #nbs-your-lifesaver > header,
- #how-nbs-helps > header {
- text-align: center;
- }
+.price {
+ font-size: 3rem;
+ font-family: "bebas-neue", sans-serif;
+ line-height: 1;
}
-/* 1200px @ 16px */
-@media all and (min-width: 75rem) {
- #dont-speak-geek,
- #nbs-can-help {
- padding-top: 3rem;
- padding-bottom: 3rem;
- }
+.referral-box {
+ max-width: 600px;
+ background: var(--color-secondary);
+ padding: 2rem;
+ border-radius: 12px;
+ color: var(--color-accent);
+ text-align: left;
+}
- #dont-speak-geek > header,
- #dont-speak-geek > p {
- font-size: 3vw;
- }
+/* --------------------------------- */
+/* About */
+/* --------------------------------- */
- #dont-speak-geek > p {
- margin-top: -0.5vw;
- margin-left: 7vw;
- }
+.about-content {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+ align-items: center;
+}
- #nbs-your-lifesaver {
- background-size: 9vw;
- background-position: right 27vw center;
- }
+.about-image {
+ border-radius: 12px;
+ max-width: 300px;
+ width: 100%;
+ flex-shrink: 0;
+}
- #nbs-your-lifesaver > header,
- #nbs-your-lifesaver p {
- font-size: 2vw;
+@media (min-width: 768px) {
+ .about-content {
+ flex-direction: row;
+ align-items: flex-start;
+ text-align: left;
}
+}
- #nbs-your-lifesaver #call-to-action {
- margin-bottom: 0;
- }
+/* --------------------------------- */
+/* Contact */
+/* --------------------------------- */
- #nbs-can-help {
- background-size: 8vw;
- background-position: right 6vw center;
- }
+.contact-section {
+ text-align: center;
+ padding-top: 0;
+}
- #nbs-can-help > header,
- #nbs-can-help > p {
- font-size: 3vw;
- }
+.contact-methods {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 1.5rem;
+ margin-top: 2rem;
+}
- #nbs-can-help > p {
- margin-top: -0.5vw;
- margin-right: 2vw;
- }
+.contact-link {
+ background: var(--color-accent);
+ color: #fff;
+ padding: 1rem 2rem;
+ border-radius: 8px;
+ font-weight: bold;
+ flex: 1;
+ min-width: 200px;
+}
- #how-nbs-helps > header {
- font-size: 2vw;
- }
+.contact-link:hover {
+ background: var(--color-primary);
+ color: #fff;
}
-/* -----------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////
-PRINT
-////////////////////////////////////////////////////////////////////////////////
------------------------------------------------------------------------------ */
+/* --------------------------------- */
+/* Footer */
+/* --------------------------------- */
-@media print {
- body {
- print-color-adjust: exact;
- }
+.footer {
+ background-color: var(--color-accent);
+ color: #fff;
+ padding: 1rem 0;
+ text-align: center;
+}
- .company-flyer-qrcode {
- display: block !important;
- position: fixed;
- bottom: 0;
- left: 50%;
- transform: translate(-50%);
- margin-bottom: 1rem;
- width: 6.25rem;
- }
+.footer p {
+ font-size: clamp(0.7rem, 3.5vw, 0.9rem);
+ white-space: nowrap;
+ margin-bottom: 0;
+}
- #dont-speak-geek {
- padding-top: 1.75rem;
- padding-bottom: 1.75rem;
- }
+/* --------------------------------- */
+/* Responsive */
+/* --------------------------------- */
- #how-nbs-helps h1 {
- margin-top: 0.25em;
+@media (min-width: 768px) {
+ .pricing-info {
+ flex-direction: row;
+ justify-content: center;
}
}
diff --git a/src/_css/normalize.css b/src/_css/normalize.css
deleted file mode 100644
index a0dc5c1..0000000
--- a/src/_css/normalize.css
+++ /dev/null
@@ -1,450 +0,0 @@
-/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
-
-/* Document
- ========================================================================== */
-
-/**
- * 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in
- * IE on Windows Phone and in iOS.
- */
-
-html {
- line-height: 1.15; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/* Sections
- ========================================================================== */
-
-/**
- * Remove the margin in all browsers (opinionated).
- */
-
-body {
- margin: 0;
-}
-
-/**
- * Add the correct display in IE 9-.
- */
-
-article,
-aside,
-footer,
-header,
-nav,
-section {
- display: block;
-}
-
-/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * Add the correct display in IE 9-.
- * 1. Add the correct display in IE.
- */
-
-figcaption,
-figure,
-main {
- /* 1 */
- display: block;
-}
-
-/**
- * Add the correct margin in IE 8.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
- */
-
-hr {
- box-sizing: content-box; /* 1 */
- height: 0; /* 1 */
- overflow: visible; /* 2 */
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-
-pre {
- font-family: monospace, monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * 1. Remove the gray background on active links in IE 10.
- * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
- */
-
-a {
- background-color: transparent; /* 1 */
- -webkit-text-decoration-skip: objects; /* 2 */
-}
-
-/**
- * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
- */
-
-abbr[title] {
- border-bottom: none; /* 1 */
- text-decoration: underline; /* 2 */
- text-decoration: underline dotted; /* 2 */
-}
-
-/**
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
- */
-
-b,
-strong {
- font-weight: inherit;
-}
-
-/**
- * Add the correct font weight in Chrome, Edge, and Safari.
- */
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-
-code,
-kbd,
-samp {
- font-family: monospace, monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/**
- * Add the correct font style in Android 4.3-.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Add the correct background and color in IE 9-.
- */
-
-mark {
- background-color: #ff0;
- color: #000;
-}
-
-/**
- * Add the correct font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` elements from affecting the line height in
- * all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Add the correct display in IE 9-.
- */
-
-audio,
-video {
- display: inline-block;
-}
-
-/**
- * Add the correct display in iOS 4-7.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Remove the border on images inside links in IE 10-.
- */
-
-img {
- border-style: none;
-}
-
-/**
- * Hide the overflow in IE.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * 1. Change the font styles in all browsers (opinionated).
- * 2. Remove the margin in Firefox and Safari.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: sans-serif; /* 1 */
- font-size: 100%; /* 1 */
- line-height: 1.15; /* 1 */
- margin: 0; /* 2 */
-}
-
-/**
- * Show the overflow in IE.
- * 1. Show the overflow in Edge.
- */
-
-button,
-input {
- /* 1 */
- overflow: visible;
-}
-
-/**
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
- * 1. Remove the inheritance of text transform in Firefox.
- */
-
-button,
-select {
- /* 1 */
- text-transform: none;
-}
-
-/**
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
- * controls in Android 4.
- * 2. Correct the inability to style clickable types in iOS and Safari.
- */
-
-button,
-html [type="button"], /* 1 */
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button; /* 2 */
-}
-
-/**
- * Remove the inner border and padding in Firefox.
- */
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-/**
- * Restore the focus styles unset by the previous rule.
- */
-
-button:-moz-focusring,
-[type="button"]:-moz-focusring,
-[type="reset"]:-moz-focusring,
-[type="submit"]:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-/**
- * Correct the padding in Firefox.
- */
-
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-/**
- * 1. Correct the text wrapping in Edge and IE.
- * 2. Correct the color inheritance from `fieldset` elements in IE.
- * 3. Remove the padding so developers are not caught out when they zero out
- * `fieldset` elements in all browsers.
- */
-
-legend {
- box-sizing: border-box; /* 1 */
- color: inherit; /* 2 */
- display: table; /* 1 */
- max-width: 100%; /* 1 */
- padding: 0; /* 3 */
- white-space: normal; /* 1 */
-}
-
-/**
- * 1. Add the correct display in IE 9-.
- * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
- */
-
-progress {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
-}
-
-/**
- * Remove the default vertical scrollbar in IE.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * 1. Add the correct box sizing in IE 10-.
- * 2. Remove the padding in IE 10-.
- */
-
-[type="checkbox"],
-[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Correct the cursor style of increment and decrement buttons in Chrome.
- */
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Correct the odd appearance in Chrome and Safari.
- * 2. Correct the outline style in Safari.
- */
-
-[type="search"] {
- -webkit-appearance: textfield; /* 1 */
- outline-offset: -2px; /* 2 */
-}
-
-/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
- */
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * 1. Correct the inability to style clickable types in iOS and Safari.
- * 2. Change font properties to `inherit` in Safari.
- */
-
-::-webkit-file-upload-button {
- -webkit-appearance: button; /* 1 */
- font: inherit; /* 2 */
-}
-
-/* Interactive
- ========================================================================== */
-
-/*
- * Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
- */
-
-details, /* 1 */
-menu {
- display: block;
-}
-
-/*
- * Add the correct display in all browsers.
- */
-
-summary {
- display: list-item;
-}
-
-/* Scripting
- ========================================================================== */
-
-/**
- * Add the correct display in IE 9-.
- */
-
-canvas {
- display: inline-block;
-}
-
-/**
- * Add the correct display in IE.
- */
-
-template {
- display: none;
-}
-
-/* Hidden
- ========================================================================== */
-
-/**
- * Add the correct display in IE 10-.
- */
-
-[hidden] {
- display: none;
-}
diff --git a/src/_images/nbs-bubbles-250px.png b/src/_images/nbs-bubbles-250px.png
deleted file mode 100644
index e547bcd..0000000
Binary files a/src/_images/nbs-bubbles-250px.png and /dev/null differ
diff --git a/src/_images/nbs-flyer-qrcode.svg b/src/_images/nbs-flyer-qrcode.svg
deleted file mode 100644
index 2456b76..0000000
--- a/src/_images/nbs-flyer-qrcode.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/src/_images/nbs-lifesaver-empty-faded-250px.png b/src/_images/nbs-lifesaver-empty-faded-250px.png
deleted file mode 100644
index 587d9c1..0000000
Binary files a/src/_images/nbs-lifesaver-empty-faded-250px.png and /dev/null differ
diff --git a/src/_images/nbs-lifesaver-empty-faded-500px.png b/src/_images/nbs-lifesaver-empty-faded-500px.png
deleted file mode 100644
index ba7884e..0000000
Binary files a/src/_images/nbs-lifesaver-empty-faded-500px.png and /dev/null differ
diff --git a/src/_images/nbs-lifesaver-empty-faded-800px.png b/src/_images/nbs-lifesaver-empty-faded-800px.png
deleted file mode 100644
index 3439c4c..0000000
Binary files a/src/_images/nbs-lifesaver-empty-faded-800px.png and /dev/null differ
diff --git a/src/_images/nick-profile-outdoors.jpg b/src/_images/nick-profile-outdoors.jpg
new file mode 100644
index 0000000..5e2f687
Binary files /dev/null and b/src/_images/nick-profile-outdoors.jpg differ
diff --git a/src/index.html b/src/index.html
index 170bbc9..6afd422 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,5 +1,5 @@
-
+
-
- Support, App & Web Design and Training | Network Based Solutions, LLC
-
+ Support, App & Web Design and Training | Network Based Solutions, LLC
-
-
@@ -52,7 +48,6 @@
}
-
-
-
+
+
+
-
-
- Neither do we ;-)
-
-
-
-
-
-
- Let
- Network
- Based
- Solutions
- be your lifesaver.
-
-
-
- Give us a call or text:
- 503-606-6508
-
+
+
+
How I Can Help You
+
+
+
Software Support
+
+ Whether it's a quick fix or a complex issue, I'm here to help you get your software working perfectly.
+
+
+
+
App & Web Design
+
+ Together, we can create a beautiful and functional digital presence that truly reflects who you are.
+
+
+
+
Learning & Training
+
I offer patient, one-on-one guidance to help you feel confident and capable with your technology.
+
+
-
-
-
-
-
- NBS can
- help you back to shore.
-
-
-
-
-
- Here's how #NBS helps:
-
-
-
- Support
-
- NBS has an ocean of solutions to put out your toughest technological
- fires. Hardware, software, and even phone issues, we've got your back.
-
-
-
-
- App & Web Design
-
- Allow us to create something beautiful and fun for you.
- NBS promises to keep you afloat.
-
-
-
-
- Training
-
- Software can be scary. NBS will swim with you. We provide hands-on
- training, step by step guides and tutorials.
-
-
-
-
-
-
+
+
+
+
+
+
+
Practical Solutions
+
+
+
System Refresh
+
I'll tidy up your devices to ensure they're running as fast and efficiently as possible.
+
+
+
Data Safety
+
Let's make sure your precious photos and important files are backed up and secure.
+
+
+
Peace of Mind
+
I provide thorough security checks and malware removal to keep your information safe.
+
+
+
+
+
+
+
+
Pricing & Community
+
+
+
$100/h
+
Most jobs take 1-2 hours.
+
+
+
Share the Love
+
+ My business grows through happy clients like you. To show my appreciation, I'll give you a
+ $20 credit for every friend or colleague you send my way!
+
+
+
+
+
+
+
+
+
Nice to Meet You
+
+
+
+ I'm Nick, and my passion for technology started in the early 90s, building and optimizing gaming PCs. With
+ over 25 years of professional software development experience, I still love digging into complex problems
+ and won't give up until they're solved. Whether I'm teaching you one-on-one or streamlining your home
+ setup, I combine a lifetime of tinkering with a genuine drive to help you feel confident and stress-free
+ in our digital world.
+
+
+
+
+
+
+
+
diff --git a/tools/dist.ts b/tools/dist.ts
index fc087ff..46781db 100644
--- a/tools/dist.ts
+++ b/tools/dist.ts
@@ -32,7 +32,7 @@ async function main() {
console.log(`Injecting version ${version} into index.html.`);
const indexPath = resolve(distDir, "index.html");
let indexHtml = await Deno.readTextFile(indexPath);
- indexHtml = indexHtml.replace("{version}", version);
+ indexHtml = indexHtml.replace(/{version}/g, version);
await Deno.writeTextFile(indexPath, indexHtml);
console.log(`Build complete. Version: ${version}`);