diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9f11b75
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea/
diff --git a/assets/css/fonts.css b/assets/css/fonts.css
new file mode 100644
index 0000000..6d38cb2
--- /dev/null
+++ b/assets/css/fonts.css
@@ -0,0 +1,11 @@
+@font-face {
+ font-family: 'BlitzBold';
+ font-weight: normal;
+ src: url(/assets/woff2/BlitzBold.woff2);
+}
+
+@font-face {
+ font-family: 'BlitzMain';
+ font-weight: normal;
+ src: url(/assets/woff2/BlitzMain.woff2);
+}
\ No newline at end of file
diff --git a/assets/css/styles.css b/assets/css/styles.css
new file mode 100644
index 0000000..bc415f3
--- /dev/null
+++ b/assets/css/styles.css
@@ -0,0 +1,196 @@
+/*
+ Octobot for Discord. Made by mctaylors.
+ Inspired by splatoon3.ink.
+*/
+
+@import url(fonts.css);
+
+:root {
+ color: #eee;
+ background-color: #000;
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOIAAADiBAMAAAChPgbkAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAqUExURRcXF0dwTBUVFRYWFgAAABoaGhkZGRUVFRgYGAAAAAAAAB4eHiQkJBISEkRDNy8AAAAOdFJOUxYAGBcDEwoMFQUBEQcOBwHpdgAAAjdJREFUeNrt271NBDEUReGnjUlGIoGICCKkbYIKqIASqIEm6IGMDiiBjtj5XXvGz9k9Cde5dfTFvo6Xc6TnacjP/Xd+7/TbuRi3r52b752bXw/5xedecaCRMdDIGGjkpQgjL0UYORZZ5FhkkVMRRU5FFDkXSeRcJJFLEUQuRRC5FjnkWuSQWxFDbkUMeS1SyGuRQhZFCFkUIWRZZJBlkUFWRQRZFRFkXSSQdZFA7ooAclcEkPuiHrkv6pGHohx5KMqRx6IaeSyqkY2iGNkoipGtohbZKmqRzaIU2SxKke2iEtkuKpFJUYhMikJkVtQhs6IOmRZlyLQoQ+ZFFTIvqpCdogjZKYqQvaIGGW80Mh5pZJxoZBhppJFGGmmkkUYaaaSRRhpppJFGGmmkkUYaaeR/Rp5pZHzQyPikkXFHI2OgkTHQyBho5KUII8f3RxY5Flnk9MaKIqciipzfkUnkXCSRy1s5iFyKIHLdA3DItcght80DhtyKGPK666CQ1yKFLLYrELIoQshyn8MgyyKDrDZICLIqIsh6Z0Ug6yKB3G3JAOSuCCD3ezk9cl/UIw+bQDnyUJQjj7tHNfJYVCMb204xslEUI1v7VS2yVdQimxtdKbJZlCLbO2Qlsl1UIpOttRCZFIXIbE+uQ2ZFHTLdzMuQaVGGzP8FqJB5UYXs/H0QITtFEbL3v0OD7BU1yPihkXFDIwNHhpFGGmmkkUYaaaSRRhpppJFGGmmkkUYaaaSRRhoJIgNH/gHUGcb6oO4YfwAAAABJRU5ErkJggg==");
+ font-family: BlitzMain, sans-serif;
+}
+
+a, a:visited {
+ color: chartreuse;
+}
+
+a:hover {
+ color: aquamarine;
+}
+
+a:active {
+ color: darkcyan;
+}
+
+a.alternative {
+ text-decoration: none;
+}
+
+.highlight {
+ font-family: BlitzBold, sans-serif;
+ font-size: 32px;
+}
+
+.header {
+ font-size: 24px;
+ padding: 16px;
+ position: fixed;
+ width: calc(100% - 48px);
+ z-index: 10;
+}
+
+.header > .left {
+ float: left;
+}
+
+.header > .right {
+ float: right;
+}
+
+.header > .left img {
+ margin: 0 8px;
+ height: 64px;
+}
+
+.header > .right .social img {
+ height: 32px;
+ width: 32px;
+ border: #999 1px solid;
+ border-radius: 16px;
+ background-color: #0009;
+ padding: 8px;
+ transition: 200ms;
+}
+
+.header > .right .social img:hover {
+ border-color: #eee;
+}
+
+.content {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 32px 64px;
+ padding: 100px 16px 80px;
+}
+
+.content > .card {
+ mask-image: url("/assets/svg/card-header.svg");
+ mask-size: 2000px auto;
+ mask-position: top;
+ background-image: url("/assets/png/tapes-transparent.png");
+ background-size: contain;
+ width: 480px;
+ min-height: 520px;
+ padding: 48px 16px 8px;
+ border-radius: 16px;
+}
+
+.content > .card.first {
+ background-color: #1bbeab; /* Splatoon 3 TurquoisePink Alpha */
+ rotate: -2deg;
+}
+
+.content > .card.second {
+ background-color: #c43a6e; /* Splatoon 3 TurquoisePink Bravo */
+ rotate: 2deg;
+}
+
+.content > .card * {
+ text-align: left;
+}
+
+.content > .card span {
+ line-height: 1em;
+ filter: drop-shadow(1px 1px #000);
+}
+
+.content > .card > .title {
+ margin: 8px 0;
+}
+
+.content > .card > .title > * {
+ vertical-align: middle;
+}
+
+.content > .card > .title > span {
+ font-size: 24px;
+}
+
+.content > .card > .title > img {
+ height: 32px;
+ width: 32px;
+}
+
+.content > .card > .frame {
+ padding: 4px 8px 8px;
+ border-radius: 8px;
+ background-color: #0009;
+ backdrop-filter: blur(4px);
+}
+
+.content > .card > .frame > ul {
+ padding: 0 0 0 24px;
+}
+
+.invite {
+ margin-top: 8px;
+ padding: 12px 0;
+ width: 100%;
+ font-family: BlitzBold, sans-serif;
+ font-size: 20px;
+ color: white;
+ background-color: #4d5058;
+ border-radius: 4px;
+ border: 0;
+ display: flex;
+ justify-content: center;
+ gap: 8px;
+ transition: 200ms;
+}
+
+.invite:hover {
+ background-color: #6d6f78;
+ cursor: pointer;
+}
+
+.invite:active {
+ background-color: #80848e;
+}
+
+.invite > img {
+ height: 24px;
+ width: 24px;
+}
+
+.invite > span {
+ filter: none !important;
+}
+
+.invite > * {
+ vertical-align: middle;
+}
+
+.footer {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ padding: 8px;
+ color: #999;
+ font-size: 14px;
+ text-align: center;
+ background-color: #0009;
+ backdrop-filter: blur(4px);
+}
+
+.footer img {
+ vertical-align: sub;
+}
+
+.splatoon {
+ height: 24px;
+ filter: brightness(75%);
+}
\ No newline at end of file
diff --git a/assets/ico/octobot.ico b/assets/ico/octobot.ico
new file mode 100644
index 0000000..147b716
Binary files /dev/null and b/assets/ico/octobot.ico differ
diff --git a/assets/png/mem-cake-mole.png b/assets/png/mem-cake-mole.png
new file mode 100644
index 0000000..6c7c244
Binary files /dev/null and b/assets/png/mem-cake-mole.png differ
diff --git a/assets/png/mem-cake-octoling.png b/assets/png/mem-cake-octoling.png
new file mode 100644
index 0000000..ca882d6
Binary files /dev/null and b/assets/png/mem-cake-octoling.png differ
diff --git a/assets/png/mem-cake-sardinium.png b/assets/png/mem-cake-sardinium.png
new file mode 100644
index 0000000..ecf358b
Binary files /dev/null and b/assets/png/mem-cake-sardinium.png differ
diff --git a/assets/png/octobot-web-logo.png b/assets/png/octobot-web-logo.png
new file mode 100644
index 0000000..4f8aa19
Binary files /dev/null and b/assets/png/octobot-web-logo.png differ
diff --git a/assets/png/tapes-transparent.png b/assets/png/tapes-transparent.png
new file mode 100644
index 0000000..6e10758
Binary files /dev/null and b/assets/png/tapes-transparent.png differ
diff --git a/assets/svg/add-circle-white.svg b/assets/svg/add-circle-white.svg
new file mode 100644
index 0000000..0ee4d6e
--- /dev/null
+++ b/assets/svg/add-circle-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/svg/card-header.svg b/assets/svg/card-header.svg
new file mode 100644
index 0000000..5dad4bf
--- /dev/null
+++ b/assets/svg/card-header.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/assets/svg/github-mark-white.svg b/assets/svg/github-mark-white.svg
new file mode 100644
index 0000000..d5e6491
--- /dev/null
+++ b/assets/svg/github-mark-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/svg/splatoon.svg b/assets/svg/splatoon.svg
new file mode 100644
index 0000000..75094c7
--- /dev/null
+++ b/assets/svg/splatoon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/woff2/BlitzBold.woff2 b/assets/woff2/BlitzBold.woff2
new file mode 100644
index 0000000..9756e0c
Binary files /dev/null and b/assets/woff2/BlitzBold.woff2 differ
diff --git a/assets/woff2/BlitzMain.woff2 b/assets/woff2/BlitzMain.woff2
new file mode 100644
index 0000000..59feb45
Binary files /dev/null and b/assets/woff2/BlitzMain.woff2 differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..b881673
--- /dev/null
+++ b/index.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
Veemo!
+
+
+ I'm a general-purpose bot for moderation written by Team Octolings in C# and Remora.Discord!
+
+
+
+
Features
+
+
+
+ - Banning, muting, kicking, etc.
+ - Reminding you about something if you wish
+ - Reminding everyone about that new event you made
+ - Renaming those annoying self-hoisting members
+ - Log everything from joining the server to deleting messages
+ - Listen to Inkantation!
+ ...a-a-and more!
+
+
+
+
+
+
+
+
+
+
Bug Report / Feature Request
+
+
+
If you find some bug or want some new feature in Octobot, you can always use the Issues menu in our GitHub repository.
+
+
+
+
+
Building Octobot
+
+
+
Want to make your own Octobot with, for example, even more features? Then, Octobot's Wiki is at your service!
+
+
+
+
+
+
+