added files
diff --git a/styles/Components/card.module.css b/styles/Components/card.module.css
new file mode 100644
index 0000000..52544a4
--- /dev/null
+++ b/styles/Components/card.module.css
@@ -0,0 +1,120 @@
+.backgroundImage {
+	position: absolute;
+	bottom: -5px;
+	left: 0;
+	width: calc(100% + 5px);
+	height: auto;
+	scale: stretch;
+	border-radius: 0;
+	filter: var(--theme-ui-colors-cardFilter);
+	transition: filter 0.3s ease-in-out;
+}
+
+.backgroundGradient {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	scale: stretch;
+	border-radius: 0;
+	filter: var(--theme-ui-colors-cardFilter);
+	transition: filter 0.3s ease-in-out;
+}
+
+.card {
+	border-radius: 17px;
+	width: 100%;
+	height: 204px;
+	padding-inline: 5px;
+	padding-bottom: 5px;
+	position: relative;
+	overflow: hidden;
+	margin: 100px;
+	transition: filter 0.3s ease-in-out;
+}
+
+
+.panel {
+	position: absolute;
+	overflow-x: hidden;
+	overflow-y: hidden;
+	width: 88%;
+	height: 76%;
+	top: 12%;
+	left: 6%;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	border-radius: 17px;
+	background-color: var(--theme-ui-colors-cardBackground);
+	transition: background-color 0.3s ease-in-out;
+	backdrop-filter: blur(7px);
+}
+
+.titleContainer {
+	display: flex;
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	width: 100%;
+	height: 32px;
+	padding-inline: 10px;
+	margin-top: 10px;
+}
+
+.title {
+	font-weight: 100;
+	font-size: 25px;
+	margin-left: 1vw;
+	line-height: 24px;
+	max-lines: 2;
+	color: var(--theme-ui-colors-text);
+	transition: color 0.3s ease-in-out;
+}
+
+.image {
+	height: 40px;
+	width: 40px;
+}
+
+.subtext {
+	width: 100%;
+	padding-inline: 10px;
+	text-align: center;
+	color: var(--theme-ui-colors-text);
+	transition: color 0.3s ease-in-out;
+}
+
+
+.buttonLayout {
+	display: flex;
+	flex-direction: row;
+	justify-content: flex-end;
+	align-items: center;
+	flex-wrap: wrap;
+	padding: 0px;
+	position: absolute;
+	bottom: 5px;
+	right: 5px;
+}
+
+.button {
+	display: flex;
+	flex-direction: row;
+	align-items: flex-start;
+	justify-content: right;
+	position: static;
+	flex: none;
+	order: 1;
+	flex-grow: 0;
+
+	margin: 5px;
+	padding: 5px 10px;
+	border-radius: 8px;
+}
+
+@media (max-width: 500px) {
+	.card {
+		height: 254px;
+	}
+}
\ No newline at end of file
diff --git a/styles/Components/cardrow.module.css b/styles/Components/cardrow.module.css
new file mode 100644
index 0000000..dde471f
--- /dev/null
+++ b/styles/Components/cardrow.module.css
@@ -0,0 +1,12 @@
+.container {
+    width: calc(100% - 20px);
+    height: 100%;
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: center;
+    gap: 20px;
+}
+
+.item {
+    width: min(428px, 90%);
+}
\ No newline at end of file
diff --git a/styles/Components/header.module.css b/styles/Components/header.module.css
new file mode 100644
index 0000000..d37417d
--- /dev/null
+++ b/styles/Components/header.module.css
@@ -0,0 +1,128 @@
+.backgroundImage {
+	position: absolute;
+	bottom: -10px;
+	width: calc(100% + 6px);
+	border-radius: 0 0 16.5px 16.5px;
+	filter: var(--theme-ui-colors-cardFilter);
+	transition: filter 0.3s ease-in-out;
+}
+.backgroundGradient {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	filter: var(--theme-ui-colors-cardFilter);
+	transition: filter 0.3s ease-in-out;
+}
+
+.header {
+	width: 100vw;
+	position: relative;
+	overflow: hidden;
+	transition: filter 0.3s ease-in-out;
+	display: flex;
+	flex-direction: column;
+	justify-content: center;
+	align-items: center;
+}
+
+.panel {
+    position: relative;
+	overflow: hidden;
+	width: min(calc(100vw - 40px), 1000px);
+	border-radius: 16.5px;
+	background-color: var(--theme-ui-colors-cardBackground);
+	transition: background-color 0.3s ease-in-out;
+	backdrop-filter: blur(7px);
+	padding-top: 30px;
+	padding-bottom: 40px;
+	padding-left: 10px;
+	padding-right: 10px;
+	margin-top: 20px;
+	margin-bottom: 20vh;
+}
+
+.title {
+    width: 100%;
+    text-align: center;
+    font-weight: 100;
+	margin-top: 0px;
+	margin-bottom: -20px;
+    font-size: 3em;
+    color: var(--theme-ui-colors-text);
+	transition: color 0.3s ease-in-out;
+	word-break: break-word;
+}
+
+.subtext {
+	margin-bottom: 0px;
+    width: 100%;
+    text-align: center;
+    font-weight: 100;
+    font-size: 1.5em;
+	margin-top: 50px;
+    color: var(--theme-ui-colors-text);
+	transition: color 0.3s ease-in-out;
+}
+
+.subtextExtra {
+    margin-bottom: 40px;
+}
+
+@keyframes arrow-slide {
+    0% {
+        -webkit-transform: translateY(0);
+                transform: translateY(0);
+    }
+    50% {
+        -webkit-transform: translateY(-1em);
+                transform: translateY(-1em);
+    }
+    100% {
+        -webkit-transform: translateY(0);
+                transform: translateY(0);
+    }
+}
+.arrow {
+    -webkit-animation: arrow-slide 2s ease-in-out infinite both;
+            animation: arrow-slide 2s ease-in-out infinite both;
+}
+
+.arrowSpan {
+    position: absolute;
+    bottom: min(10vh, 1em);
+    width: 100%;
+    text-align: center;
+}
+
+.arrowHidden {
+    display: none;
+}
+
+.buttonLayout {
+	display: flex;
+	flex-direction: row;
+	justify-content: flex-end;
+	align-items: center;
+	flex-wrap: wrap;
+	padding: 0px;
+	position: absolute;
+	bottom: 5px;
+	right: 5px;
+}
+
+.button {
+	display: flex;
+	flex-direction: row;
+	align-items: flex-start;
+	justify-content: right;
+	position: static;
+	flex: none;
+	order: 1;
+	flex-grow: 0;
+
+	margin: 5px;
+	padding: 5px 10px;
+	border-radius: 8px;
+}
diff --git a/styles/Components/navbar.module.css b/styles/Components/navbar.module.css
new file mode 100644
index 0000000..88aa580
--- /dev/null
+++ b/styles/Components/navbar.module.css
@@ -0,0 +1,134 @@
+.container {
+    display: flex;
+    flex-direction: column;
+    justify-content: top;
+    align-items: center;
+
+    position: fixed;
+    top: 0;
+    left: 0;
+    overflow: hidden;
+    margin: 20px;
+
+    width: 64px;
+    max-height: 64px;
+    padding-bottom: -1px;
+    height: auto;
+
+    border-radius: 32px;
+    transition: 0.5s ease-in-out;
+}
+.group {
+    display: flex;
+    flex-direction: column;
+    justify-content: top;
+    align-items: center;
+
+    background-color: var(--theme-ui-colors-cardBackground);
+    transition: background-color 0.3s ease-in-out;
+    backdrop-filter: blur(2px);
+    border-radius: 32px;
+
+    width: 64px;
+    margin-bottom: 20px;
+    padding-top: 7px;
+}
+
+.headerIcon {
+    height: 64px;
+    width: 64px;
+    margin-bottom: 20px;
+    margin-right: 0;
+    margin-top: -7px;
+    border-radius: 50vw;
+
+    cursor: pointer;
+}
+
+.icon {
+    height: 50px;
+    width: 50px;
+    border-radius: 50vw;
+    margin-bottom: 5px;
+    cursor: pointer;
+    display: block;
+}
+
+.ThemeChangeButton {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+.containerOpen {
+    max-height: 460px;
+}
+
+.containerDesktop {
+    animation-name: containerCloseOnStart;
+    animation-duration: 0.5s;
+    animation-direction: forwards;
+    animation-timing-function: ease-in-out;
+}
+
+@keyframes containerCloseOnStart {
+    from { max-height: 460px; }
+    to { max-height: 64px ; }
+}
+
+.containerDesktop:hover {
+    max-height: 460px;
+    animation-name: none;
+}
+
+@media screen and (min-width: 450px) {
+    .container {
+        flex-direction: row;
+        justify-content: left;
+
+        margin: 20px;
+
+        height: 64px;
+        max-width: 64px;
+        width: auto;
+        border-radius: 32px;
+
+        border-radius: 32px;
+        transition: 0.5s ease-in-out;
+    }
+    .group {
+        flex-direction: row;
+        justify-content: left;
+
+        height: 64px;
+        width: auto;
+        padding-right: 7px;
+        margin-bottom: 0;
+        padding-top: 7px;
+        margin-right: 20px;
+        padding-left: 3px;
+    }
+    .headerIcon {
+        height: 64px;
+        width: 64px;
+        margin-top: 12px;
+        margin-left: -3px;
+    }
+    .containerOpen {
+        max-width: 460px;
+        max-height: 64px;
+    }
+    .containerDesktop:hover {
+        max-width: 460px;
+        max-height: 64px;
+    }
+    .icon {
+        height: 50px;
+        width: 50px;
+        margin-left: 5px;
+    }
+    @keyframes containerCloseOnStart {
+        from { max-width: 460px; }
+        to { max-width: 64px ; }
+    }
+}
diff --git a/styles/Components/panels.module.css b/styles/Components/panels.module.css
new file mode 100644
index 0000000..94af64c
--- /dev/null
+++ b/styles/Components/panels.module.css
@@ -0,0 +1,92 @@
+.panel {
+    min-height: 50px;
+    padding: 10px;
+    padding-block: 30px;
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    width: 100%;
+    gap: 10px;
+
+    background-color: var(--theme-ui-colors-panelColor);
+    border-radius: 20px;
+    transition: background-color 0.3s ease-in-out;
+
+}
+
+.doublePanel {
+    width: 100%;
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    grid-gap: 20px;
+    column-width: 100%;
+}
+
+@media (max-width: 900px) {
+    .doublePanel {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        width: 100%;
+        gap: 20px;
+    }
+    .halfWidth {
+        width: 100%;
+    }
+}
+
+
+.container {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    gap: 20px;
+    margin-block: 20px;
+    padding-inline: 20px;
+}
+
+.title {
+    width: 100%;
+    font-size: max(2em, 3.25vw);
+    margin: 0;
+    color: var(--theme-ui-colors-text);
+    transition: color 0.3s ease-in-out;
+    font-weight: lighter;
+    text-align: center;
+    word-break: break-all;
+}
+
+.subtitle {
+    width: 100%;
+    font-size: max(2em, 2vw);
+    color: var(--theme-ui-colors-text);
+    transition: color 0.3s ease-in-out;
+    font-weight: lighter;
+    text-align: center;
+    word-break: break-word;
+    margin-block: 0;
+}
+
+.text {
+    width: 100%;
+    text-align: center;
+    padding-inline: "15%";
+    font-size: 120%;
+    color: var(--card-text-color);
+    transition: color 0.3s ease-in-out;
+    margin-top: 0;
+    margin: 10px
+}
+
+.divider {
+    width: 75%;
+    height: 4px;
+    border-radius: 100vw;
+    margin-block: 10px;
+    background-color: var(--theme-ui-colors-hint);
+    transition: background-color 0.3s ease-in-out;
+}
diff --git a/styles/Components/texttools.module.css b/styles/Components/texttools.module.css
new file mode 100644
index 0000000..b07fd6d
--- /dev/null
+++ b/styles/Components/texttools.module.css
@@ -0,0 +1,42 @@
+.square {
+    height: 15px !important;
+    width: 15px !important;
+    position: relative;
+    border-radius: 5px;
+    border: solid 4px #000;
+}
+
+.list {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    width: fit-content;
+    gap: 5px;
+}
+
+.listItem {
+    display: flex;
+    flex-direction: row;
+    justify-content: left;
+    align-items: center;
+    gap: 5px;
+    width: 100%;
+}
+
+.text {
+    margin: 0;
+}
+
+.code {
+    font-family: monospace;
+    font-weight: bold;
+    background-color: var(--theme-ui-colors-hint);
+    transition: background-color 0.3s ease-in-out;
+    padding: 2px;
+    font-size: 105%;
+    border-radius: 5px;
+    padding-left: 5px;
+    width: fit-content;
+    display: inline;
+}