diff --git a/config.yaml b/config.yaml
index af4180e..16ddbed 100644
--- a/config.yaml
+++ b/config.yaml
@@ -42,4 +42,3 @@ menu:
class: email
url: mailto:yequari@32bit.cafe
weight: 30
-
diff --git a/content/blog/2023/12/reflecting-on-2023/index.md b/content/blog/2023/12/reflecting-on-2023/index.md
new file mode 100644
index 0000000..747464c
--- /dev/null
+++ b/content/blog/2023/12/reflecting-on-2023/index.md
@@ -0,0 +1,24 @@
+---
+title: "Reflecting on 2023"
+date: 2023-12-19T22:15:29-07:00
+draft: true
+layout: winter
+context: "This page is an entry into the 32-Bit Cafe's [2023 holiday event](https://32bit.cafe/holidays2023/)."
+---
+
+## Things that happened
+
+- Returned to the gym
+
+- Did some stuff at the 32-bit cafe
+
+- Changed jobs
+
+- Programming projects
+
+## Goals for 2024
+
+- Fitness and diet goals
+
+- Code more
+ - Contribute to open source
diff --git a/layouts/blog/winter-baseof.html b/layouts/blog/winter-baseof.html
new file mode 100644
index 0000000..887d1b0
--- /dev/null
+++ b/layouts/blog/winter-baseof.html
@@ -0,0 +1,28 @@
+
+
+
+
+ {{ .Title }}
+ <-- Return to yequari.com
+ yequari
+
+ Permalink
+ {{ partial "tags.html" .}}
+ {{ if .Params.context }}
+ {{ .Params.context | markdownify }}
+ {{ end }}
+
+ {{ .Content }}
+
+ {{ partial "webmentions.html" }}
+
+
+
+{{ end }}
diff --git a/static/css/winter.css b/static/css/winter.css
new file mode 100644
index 0000000..383bbda
--- /dev/null
+++ b/static/css/winter.css
@@ -0,0 +1,57 @@
+
+@keyframes fall {
+ 0% {
+ opacity: 0;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ top: 100vh;
+ opacity: 1;
+ }
+}
+
+@keyframes sway {
+ 0% {
+ margin-left: 0;
+ }
+ 25% {
+ margin-left: 50px;
+ }
+ 50% {
+ margin-left: -50px;
+ }
+ 75% {
+ margin-left: 50px;
+ }
+ 100% {
+ margin-left: 0;
+ }
+}
+
+
+#winter {
+ z-index: -1;
+ height: 100vh;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ transition: opacity 500ms;
+ width: 100%;
+}
+
+.snow {
+ animation: fall ease-in infinite, sway ease-in-out infinite;
+ color: skyblue;
+ position: absolute;
+}
+
+.content {
+ max-width: fit-content;
+ margin: 0 auto;
+}
+
+.context {
+ font-style: italic;
+}
diff --git a/static/images/manatee_banner2.png b/static/images/manatee_banner2.png
new file mode 100644
index 0000000..37c0af3
Binary files /dev/null and b/static/images/manatee_banner2.png differ
diff --git a/static/js/winter.js b/static/js/winter.js
new file mode 100644
index 0000000..871309f
--- /dev/null
+++ b/static/js/winter.js
@@ -0,0 +1,37 @@
+console.log("winter");
+
+const snowContent = ['❄', '❅', '❆']
+const snowflake = '● '
+const snowContainer = document.getElementById('winter');
+
+const random = (num) => {
+ return Math.floor(Math.random() * num);
+}
+
+const getRandomStyles = () => {
+ const top = random(100);
+ const left = random(100);
+ const dur = random(10) + 10;
+ const size = random(15) + 15;
+ return `
+top: -${top}%;
+left: ${left}%;
+font-size: ${size}px;
+animation-duration: ${dur}s;
+`;
+}
+
+const createSnow = (num) => {
+ for (var i = num; i > 0; i--) {
+ var snow = document.createElement("div");
+ snow.className = "snow";
+ snow.style.cssText = getRandomStyles();
+ snow.innerHTML = snowContent[random(2)];
+ // snow.innerHTML = snowflake;
+ snowContainer.append(snow);
+ }
+}
+
+window.addEventListener("load", () => {
+ createSnow(30)
+});