diff --git a/index.html b/index.html
index 0fe44e1..5b3ac34 100644
--- a/index.html
+++ b/index.html
@@ -1496,6 +1496,47 @@
Session Receipt
+
+
+
+
+
diff --git a/styles.css b/styles.css
index d96e065..7ff69a0 100644
--- a/styles.css
+++ b/styles.css
@@ -3099,3 +3099,53 @@ footer a:hover {
.milestone-flash-overlay { animation: none; background: rgba(255, 51, 51, 0.1); }
.milestone-flash-content { animation: none; }
}
+
+/* ---- Grim Reaper ---- */
+.grim-reaper {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ opacity: 0.22;
+ transform: translateX(-22px);
+ transition: opacity 0.8s ease, transform 0.8s ease;
+ pointer-events: auto;
+ filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5));
+}
+
+.grim-reaper:hover {
+ opacity: 0.55;
+ transform: translateX(0);
+}
+
+.grim-reaper svg {
+ display: block;
+ width: 80px;
+ height: auto;
+ animation: reaper-float 5s ease-in-out infinite;
+}
+
+@keyframes reaper-float {
+ 0%, 100% { transform: translateY(0); }
+ 50% { transform: translateY(-10px); }
+}
+
+.reaper-eye-inner {
+ filter: drop-shadow(0 0 4px #ff3333);
+ animation: reaper-eye-pulse 3s ease-in-out infinite;
+}
+
+@keyframes reaper-eye-pulse {
+ 0%, 100% { opacity: 0.7; }
+ 50% { opacity: 1; }
+}
+
+@media (max-width: 480px) {
+ .grim-reaper svg { width: 55px; }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .grim-reaper svg,
+ .reaper-eye-inner { animation: none; }
+ .grim-reaper { transition: none; }
+}