diff --git a/configuration/template.html b/configuration/template.html
index f200d0b..9aa58da 100644
--- a/configuration/template.html
+++ b/configuration/template.html
@@ -4,156 +4,8 @@
{weblog-title}{separator}{post-title}
+
{feeds}
-
diff --git a/weblog/styles.css.md b/weblog/styles.css.md
new file mode 100644
index 0000000..70ec1da
--- /dev/null
+++ b/weblog/styles.css.md
@@ -0,0 +1,184 @@
+/**/
+Type: file
+Content-Type: text/css
+Title: Stylesheet
+Location: /styles.css
+/**/
+
+@import url('https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&family=Rubik+Mono+One&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');
+@import url('https://static.omg.lol/type/font-md-io.css');
+@import url('https://static.omg.lol/type/fontawesome-free/css/all.css');
+@import url('https://static.omg.lol/profiles/icons/omg.lol-icons.css');
+
+:root {
+ --foreground: #f9f8fa;
+ --background: #242129;
+ --card-bg: #242129;
+ --link: #aa55fe;
+ --accent: #845e9e;
+
+ --font-main: 'Rubik', sans-serif, 'Noto Color Emoji';
+ --font-head: 'Rubik Mono One', sans-serif, 'Noto Color Emoji';
+ --font-code: 'MD IO 0.4', monospace, 'Noto Color Emoji';
+
+ --paper-texture-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.4' numOctaves='3' stitchTiles='stitch' type='fractalNoise'/%3E%3CfeDropShadow dx='0' dy='0' flood-color='%23888' flood-opacity='.5' stdDeviation='1'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");
+ --shadow: 1px 2px 0.5em 1px rgba(17,17,17,0.2)
+}
+
+@media (prefers-color-scheme: light) {
+ html {
+ filter: invert(1) hue-rotate(180deg);
+ }
+ img,svg,video {
+ filter: invert(1) hue-rotate(180deg);
+ }
+}
+
+* {
+ box-sizing: border-box;
+}
+
+body {
+ font-family: var(--font-main);
+ font-optical-sizing: auto;
+ font-size: 120%;
+ color: var(--foreground);
+ background: var(--background);
+}
+
+article {
+ display: block;
+ max-width: 42em;
+ border-radius: 1em;
+ margin: 3em auto;
+ padding: 2em;
+ background-color: var(--card-bg);
+ background-image: var(--paper-texture-svg);
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ flex-wrap: wrap;
+ align-items: start;
+ box-shadow: var(--shadow);
+}
+
+
+
+
+
+
+
+
+
+header nav ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+header nav li {
+ display: inline-block;
+}
+
+header nav li a {
+ display: block;
+ text-decoration: none;
+ margin-right: 1em;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: var(--font-head);
+ margin: 1rem 0;
+}
+
+p, li {
+ line-height: 160%;
+}
+
+header, main, footer {
+ max-width: 60em;
+ margin: 2em auto;
+ padding: 0 1em;
+}
+
+header {
+ margin-top: 4em;
+}
+
+footer p {
+ margin-top: 5em;
+ font-size: 90%;
+ text-align: center;
+}
+
+a:link { color: var(--link); }
+a:visited { color: var(--link); }
+a:hover { color: var(--link); }
+a:active { color: var(--link); }
+
+.post-info, .post-tags {
+ font-size: 85%;
+ color: var(--accent);
+ text-align: right;
+}
+
+.post-info i:nth-child(2) {
+ margin-left: .75em;
+}
+
+.tag {
+ background: var(--accent);
+ color: var(--background) !important;
+ padding: .3em .4em;
+ margin: .8em 0 0 .4em;
+ border-radius: .5em;
+ text-decoration: none;
+ display: inline-block;
+}
+
+hr {
+ border: 0;
+ height: 1px;
+ background: #333;
+ margin: 2em 0;
+}
+
+code {
+ padding: .2em .3em;
+ border: 1px solid var(--accent);
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+pre, code {
+ font-family: var(--font-code);
+ font-size: 90%;
+}
+
+pre code {
+ background: #000;
+ color: #eee;
+ display: inline-block;
+ padding: 1em;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+img {
+ max-width: 100%;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+td, th {
+ padding: .75em;
+ text-align: left;
+ border: 1px solid var(--accent);
+}
+
+.weblog-title a {
+ text-decoration: none;
+ color: var(--foreground);
+}
\ No newline at end of file