diff --git a/bones/asset-manifest.yaml b/bones/asset-manifest.yaml
index 853686d..44a0e0b 100644
--- a/bones/asset-manifest.yaml
+++ b/bones/asset-manifest.yaml
@@ -10,6 +10,8 @@
sha256: "08c37ed319c921530a6a7b5bfbee716714b2584f263cce15aec1fa888450c9a2"
- path: "css/theme-dark.css"
sha256: "a2e5196bce1439eaef0afd6fdbac2279a270e482f3faeb14647a9722cb4424eb"
+- path: "css/theme-flash.css"
+ sha256: "cf59ae9112bb2bdd52acc1da277998dd7975d7ea7474a59242551e157f30a93f"
- path: "css/theme-kawaii.css"
sha256: "32b7d4f0d3b6c9f4173c34be38e3a7c84530cb94fd5063d4fe8d040431f5e15a"
- path: "css/theme-light.css"
@@ -20,6 +22,8 @@
sha256: "e4dfc4f8af0430b3b09e34ca879d1f76bd77903b09fdb7260bb54e674eb10182"
- path: "css/theme-phosphor.css"
sha256: "272575be3f92ff60b2b1506fd1d6700269ba8692ac7108e1e93d474288b7e6eb"
+- path: "css/theme-pride.css"
+ sha256: "31843f3270ca6799cc65bfc63c9e97a509df33349acb8bd235c229cb91c795b3"
- path: "css/theme-spooky-dark.css"
sha256: "371d102f4aaf8377f89e5d6c8a7791bf87ab6aa5a6de00fc9551ada07e3b4d1b"
- path: "css/theme-spooky-light.css"
diff --git a/bones/config/rotkeeper.yaml b/bones/config/rotkeeper.yaml
index c90039b..c5249a2 100644
--- a/bones/config/rotkeeper.yaml
+++ b/bones/config/rotkeeper.yaml
@@ -25,6 +25,8 @@ theme_registry:
necropolis: "theme-necropolis.html"
daisy: "theme-daisy.html"
daisy-vanilla: "theme-daisy-vanilla.html"
+ flash: "theme-flash.html"
+ pride: "theme-pride.html"
# Site navigation rendered into the theme's
# placeholder (#244). Items are site-root-relative targets
diff --git a/bones/templates/theme-flash.html b/bones/templates/theme-flash.html
new file mode 100644
index 0000000..245d9aa
--- /dev/null
+++ b/bones/templates/theme-flash.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+ $title$
+$if(description)$
+
+$endif$
+
+
+
+
+
+
+
+
+
+
+
+ ⚡
+
+
+
+
+
+
+ $body$
+
+
+
+
+
+
+
+
+
diff --git a/bones/templates/theme-pride.html b/bones/templates/theme-pride.html
new file mode 100644
index 0000000..fbb585d
--- /dev/null
+++ b/bones/templates/theme-pride.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+ $title$
+$if(description)$
+
+$endif$
+
+
+
+
+
+
+
+
+
+
+
+ 🌈
+
+
+
+
+
+
+ $body$
+
+
+
+
+
+
+
+
+
diff --git a/home/assets/css/theme-flash.css b/home/assets/css/theme-flash.css
new file mode 100644
index 0000000..b8e809d
--- /dev/null
+++ b/home/assets/css/theme-flash.css
@@ -0,0 +1,663 @@
+/* ⚡ theme-flash.css: Galvanic Astral Flash (Gemini Flash 3.8 inspired) */
+
+:root {
+ /* Surface & Canvas Tokens */
+ --bg-color: #070a14;
+ --surface-color: #0e1526;
+ --text-primary: #f1f5f9;
+ --text-secondary: #94a3b8;
+ --accent-color: #38bdf8;
+ --accent-hover: #7dd3fc;
+ --border-color: #1e293b;
+ --code-bg: #090e1a;
+ --code-text: #c084fc;
+
+ /* Typography */
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ --font-mono: ui-monospace, "JetBrains Mono", "Fira Code", SFMono-Regular, Menlo, Monaco, Consolas, monospace;
+
+ /* Layout */
+ --max-width: 860px;
+ --card-radius: 12px;
+}
+
+/* Palette Variants (opt-in via palette: frontmatter) */
+.palette-nova {
+ --accent-color: #fbbf24;
+ --accent-hover: #fde047;
+ --code-text: #fde047;
+}
+
+.palette-aurora {
+ --accent-color: #34d399;
+ --accent-hover: #6ee7b7;
+ --code-text: #6ee7b7;
+}
+
+.palette-hyper {
+ --accent-color: #f472b6;
+ --accent-hover: #f9a8d4;
+ --code-text: #e879f9;
+}
+
+/* Custom Themed Scrollbar */
+html {
+ scrollbar-width: thin;
+ scrollbar-color: rgba(56, 189, 248, 0.4) var(--bg-color);
+ scroll-behavior: smooth;
+}
+
+::-webkit-scrollbar {
+ width: 10px;
+ height: 10px;
+}
+
+::-webkit-scrollbar-track {
+ background: var(--bg-color);
+}
+
+::-webkit-scrollbar-thumb {
+ background: rgba(56, 189, 248, 0.25);
+ border-radius: 5px;
+ border: 2px solid var(--bg-color);
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background: var(--accent-color);
+ box-shadow: 0 0 10px var(--accent-color);
+}
+
+/* Galvanic Scroll Progress Indicator (Scroll-Driven Animation) */
+@media (prefers-reduced-motion: no-preference) {
+ @supports (animation-timeline: scroll()) {
+ @keyframes flash-scroll-grow {
+ from { transform: scaleX(0); }
+ to { transform: scaleX(1); }
+ }
+
+ .flash-scroll-indicator {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 3px;
+ background: linear-gradient(90deg, #38bdf8 0%, #818cf8 50%, #c084fc 100%);
+ transform-origin: 0 50%;
+ animation: flash-scroll-grow auto linear;
+ animation-timeline: scroll();
+ z-index: 999;
+ box-shadow: 0 0 10px rgba(56, 189, 248, 0.7), 0 0 20px rgba(129, 140, 248, 0.4);
+ }
+ }
+}
+
+/* Ambient cosmic mesh & celestial spark nodes */
+.flash-ambient-mesh {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow: hidden;
+ pointer-events: none;
+ z-index: 0;
+}
+
+.flash-aurora {
+ position: absolute;
+ top: -15%;
+ left: 10%;
+ width: 80%;
+ height: 70%;
+ background:
+ radial-gradient(ellipse 75% 50% at 50% 0%, rgba(56, 189, 248, 0.14), transparent 70%),
+ radial-gradient(ellipse 55% 40% at 85% 60%, rgba(129, 140, 248, 0.08), transparent 60%),
+ radial-gradient(circle at 15% 75%, rgba(192, 132, 252, 0.06), transparent 50%);
+ filter: blur(40px);
+}
+
+.flash-spark-node {
+ position: absolute;
+ border-radius: 50%;
+ background: #ffffff;
+ box-shadow: 0 0 6px var(--accent-color), 0 0 12px var(--accent-color);
+ opacity: 0.6;
+ animation: flash-twinkle 4s infinite ease-in-out;
+}
+
+.flash-spark-node--1 { top: 14%; left: 9%; width: 3px; height: 3px; animation-delay: 0s; }
+.flash-spark-node--2 { top: 28%; right: 12%; width: 2px; height: 2px; animation-delay: 1.3s; }
+.flash-spark-node--3 { top: 56%; left: 15%; width: 2px; height: 2px; animation-delay: 2.5s; }
+.flash-spark-node--4 { top: 76%; right: 18%; width: 3px; height: 3px; animation-delay: 0.9s; }
+.flash-spark-node--5 { top: 88%; left: 42%; width: 2px; height: 2px; animation-delay: 3.2s; }
+
+@keyframes flash-twinkle {
+ 0%, 100% { opacity: 0.2; transform: scale(0.8); }
+ 50% { opacity: 0.9; transform: scale(1.3); }
+}
+
+/* Base Body Styles */
+body.flash-theme {
+ background-color: var(--bg-color);
+ color: var(--text-primary);
+ font-family: var(--font-sans);
+ line-height: 1.65;
+ margin: 0;
+ padding: 0;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ min-height: 100vh;
+}
+
+.flash-container {
+ max-width: var(--max-width);
+ margin: 0 auto;
+ padding: 2rem 1.25rem 4rem 1.25rem;
+ position: relative;
+ z-index: 1;
+}
+
+/* Header & HUD Topbar */
+.flash-header {
+ margin-bottom: 2rem;
+}
+
+.flash-topbar {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 1rem;
+ padding-bottom: 1.25rem;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.flash-brand {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ text-decoration: none;
+}
+
+.flash-spark {
+ color: var(--accent-color);
+ font-size: 1.25rem;
+ text-shadow: 0 0 10px var(--accent-color);
+}
+
+.flash-brand-name {
+ font-weight: 800;
+ letter-spacing: 0.12em;
+ font-size: 0.95rem;
+ color: var(--text-primary);
+}
+
+.flash-badge {
+ font-size: 0.68rem;
+ font-weight: 700;
+ letter-spacing: 0.05em;
+ padding: 0.15rem 0.45rem;
+ border-radius: 9999px;
+ background: rgba(56, 189, 248, 0.12);
+ color: var(--accent-color);
+ border: 1px solid rgba(56, 189, 248, 0.3);
+}
+
+.flash-telemetry {
+ display: flex;
+ align-items: center;
+}
+
+.telemetry-pill {
+ font-family: var(--font-mono);
+ font-size: 0.75rem;
+ color: var(--text-secondary);
+ background: rgba(14, 21, 38, 0.8);
+ border: 1px solid var(--border-color);
+ padding: 0.2rem 0.55rem;
+ border-radius: 6px;
+ display: inline-flex;
+ align-items: center;
+}
+
+.pulse-dot {
+ display: inline-block;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background-color: var(--accent-color);
+ box-shadow: 0 0 8px var(--accent-color);
+ animation: flash-pulse 2s infinite ease-in-out;
+ margin-right: 6px;
+}
+
+@keyframes flash-pulse {
+ 0%, 100% { opacity: 1; transform: scale(1); }
+ 50% { opacity: 0.3; transform: scale(0.8); }
+}
+
+/* Site Navigation Integration */
+.flash-nav {
+ display: flex;
+ align-items: center;
+}
+
+.flash-nav nav {
+ display: flex;
+}
+
+.flash-nav ul {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ gap: 0.35rem;
+}
+
+.flash-nav li {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.flash-nav a {
+ font-size: 0.85rem;
+ color: var(--text-secondary);
+ text-decoration: none;
+ padding: 0.2rem 0.5rem;
+ border-radius: 4px;
+ transition: color 0.15s ease, background-color 0.15s ease;
+}
+
+.flash-nav a:hover {
+ color: var(--accent-color);
+ background: rgba(56, 189, 248, 0.08);
+}
+
+/* Hero Section */
+.flash-hero {
+ margin-top: 2rem;
+}
+
+.flash-title {
+ font-size: 2.5rem;
+ font-weight: 800;
+ line-height: 1.15;
+ letter-spacing: -0.03em;
+ margin: 0 0 0.75rem 0;
+ background: linear-gradient(135deg, #38bdf8 0%, #818cf8 50%, #c084fc 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ color: var(--accent-color);
+}
+
+.flash-deck {
+ font-size: 1.15rem;
+ color: var(--text-secondary);
+ margin: 0 0 1.25rem 0;
+ line-height: 1.5;
+}
+
+.flash-meta {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+ margin-top: 0.75rem;
+}
+
+.meta-pill {
+ font-size: 0.78rem;
+ color: var(--text-secondary);
+ background: rgba(14, 21, 38, 0.7);
+ border: 1px solid var(--border-color);
+ padding: 0.2rem 0.6rem;
+ border-radius: 6px;
+ font-family: var(--font-mono);
+}
+
+.meta-label {
+ color: var(--accent-color);
+ margin-right: 0.25rem;
+}
+
+/* Galvanic Divider */
+.flash-divider {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 1rem;
+ margin: 2.25rem 0;
+}
+
+.flash-divider__line {
+ flex: 1;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.4), transparent);
+}
+
+.flash-divider__glyph {
+ color: var(--accent-color);
+ font-size: 1.1rem;
+ text-shadow: 0 0 10px var(--accent-color);
+}
+
+/* Main Content Card (Glassmorphic) */
+.flash-card {
+ background: linear-gradient(180deg, rgba(56, 189, 248, 0.06) 0%, rgba(14, 21, 38, 0.8) 12%, rgba(14, 21, 38, 0.8) 100%);
+ backdrop-filter: blur(16px);
+ -webkit-backdrop-filter: blur(16px);
+ border: 1px solid rgba(56, 189, 248, 0.2);
+ border-radius: var(--card-radius);
+ box-shadow:
+ 0 15px 40px rgba(0, 0, 0, 0.45),
+ 0 0 1px 1px rgba(56, 189, 248, 0.25),
+ 0 0 35px rgba(56, 189, 248, 0.06);
+ padding: 2.5rem;
+ transition: border-color 0.25s ease, box-shadow 0.25s ease;
+}
+
+.flash-card:hover {
+ border-color: rgba(56, 189, 248, 0.35);
+ box-shadow:
+ 0 20px 48px rgba(0, 0, 0, 0.5),
+ 0 0 1px 1px rgba(56, 189, 248, 0.35),
+ 0 0 45px rgba(56, 189, 248, 0.1);
+}
+
+.flash-card-inner {
+ font-size: 1.05rem;
+ line-height: 1.7;
+}
+
+/* Headings within content */
+h1, h2, h3, h4, h5, h6 {
+ color: var(--text-primary);
+ font-weight: 700;
+ line-height: 1.3;
+ margin-top: 2rem;
+ margin-bottom: 0.75rem;
+}
+
+h1 { font-size: 2rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; }
+h2 { font-size: 1.5rem; border-bottom: 1px solid rgba(30, 41, 59, 0.6); padding-bottom: 0.35rem; }
+h3 { font-size: 1.25rem; }
+h4 { font-size: 1.1rem; }
+
+/* Links */
+a {
+ color: var(--accent-color);
+ text-decoration: none;
+ border-bottom: 1px solid transparent;
+ transition: color 0.15s ease, border-color 0.15s ease;
+}
+
+a:hover {
+ color: var(--accent-hover);
+ border-bottom-color: var(--accent-hover);
+}
+
+/* Typography & Lists */
+p {
+ margin: 1.1rem 0;
+}
+
+ul, ol {
+ padding-left: 1.5rem;
+ margin: 1.1rem 0;
+}
+
+li {
+ margin: 0.4rem 0;
+}
+
+/* Code & Pre: Terminal Chrome Enhancement */
+code {
+ font-family: var(--font-mono);
+ font-size: 0.9em;
+ background-color: var(--code-bg);
+ color: var(--code-text);
+ padding: 0.18em 0.42em;
+ border-radius: 4px;
+ border: 1px solid rgba(192, 132, 252, 0.2);
+}
+
+pre {
+ position: relative;
+ background-color: var(--code-bg);
+ border: 1px solid var(--border-color);
+ border-top: 2px solid var(--accent-color);
+ border-radius: 8px;
+ padding: 2.75rem 1.25rem 1.25rem 1.25rem;
+ overflow-x: auto;
+ box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.5), 0 4px 20px rgba(0, 0, 0, 0.25);
+ margin: 1.75rem 0;
+}
+
+pre::before {
+ content: "● ● ● ⚡ FLASH COGNITION TERMINAL // 0.0ms";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1.85rem;
+ line-height: 1.85rem;
+ background: rgba(14, 21, 38, 0.92);
+ border-bottom: 1px solid var(--border-color);
+ color: var(--text-secondary);
+ font-family: var(--font-mono);
+ font-size: 0.72rem;
+ letter-spacing: 0.06em;
+ padding-left: 0.85rem;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ pointer-events: none;
+}
+
+pre code {
+ background: transparent;
+ padding: 0;
+ border: none;
+ border-radius: 0;
+ color: var(--text-primary);
+ font-size: 0.92rem;
+}
+
+/* Long inline code wraps instead of blowing out narrow viewports */
+:not(pre) > code {
+ overflow-wrap: anywhere;
+}
+
+/* Blockquotes: Reanimated Transmission Enhancement */
+blockquote {
+ margin: 1.75rem 0;
+ padding: 1.15rem 1.35rem 1.15rem 1.5rem;
+ background: rgba(14, 21, 38, 0.55);
+ border-left: 3px solid var(--accent-color);
+ border-radius: 0 8px 8px 0;
+ box-shadow: inset 0 0 20px rgba(56, 189, 248, 0.04), 0 2px 8px rgba(0, 0, 0, 0.15);
+ color: var(--text-secondary);
+ position: relative;
+}
+
+blockquote::before {
+ content: "⚡ REANIMATED TRANSMISSION // TELEMETRY";
+ display: block;
+ font-family: var(--font-mono);
+ font-size: 0.7rem;
+ font-weight: 700;
+ letter-spacing: 0.1em;
+ color: var(--accent-color);
+ margin-bottom: 0.6rem;
+}
+
+blockquote p:first-child {
+ margin-top: 0;
+}
+
+blockquote p:last-child {
+ margin-bottom: 0;
+}
+
+/* Horizontal Rules */
+hr {
+ border: none;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, var(--border-color), transparent);
+ margin: 2rem 0;
+}
+
+/* Tables */
+table {
+ width: 100%;
+ border-collapse: collapse;
+ margin: 1.75rem 0;
+ display: block;
+ max-width: 100%;
+ overflow-x: auto;
+ border: 1px solid var(--border-color);
+ border-radius: 8px;
+}
+
+th, td {
+ padding: 0.75rem 1rem;
+ text-align: left;
+}
+
+th {
+ background: rgba(30, 41, 59, 0.85);
+ color: var(--accent-color);
+ font-weight: 600;
+ border-bottom: 1px solid var(--border-color);
+}
+
+td {
+ border-bottom: 1px solid rgba(30, 41, 59, 0.5);
+}
+
+tr:nth-child(even) td {
+ background: rgba(14, 21, 38, 0.35);
+}
+
+tr:hover td {
+ background: rgba(56, 189, 248, 0.06);
+}
+
+th[align="center"], td[align="center"] { text-align: center; }
+th[align="right"], td[align="right"] { text-align: right; }
+
+/* Responsive Media */
+img {
+ max-width: 100%;
+ height: auto;
+ border-radius: 8px;
+}
+
+/* Footer & Standardized Slots */
+.flash-footer {
+ margin-top: 3.5rem;
+ padding-top: 2rem;
+ border-top: 1px solid var(--border-color);
+ text-align: center;
+ font-size: 0.85rem;
+ color: var(--text-secondary);
+}
+
+.flash-lore {
+ margin-bottom: 0.75rem;
+}
+
+.flash-lore .rk-lore {
+ color: var(--text-secondary);
+ font-size: 0.9rem;
+ font-style: italic;
+ margin: 0;
+}
+
+.footer-credit {
+ margin: 0.35rem 0;
+}
+
+.footer-asset-meta,
+.footer-tags {
+ margin: 0.25rem 0;
+ font-family: var(--font-mono);
+ font-size: 0.78rem;
+ color: var(--text-secondary);
+}
+
+/* Accessibility: Visible focus indicators */
+a:focus,
+button:focus,
+input:focus,
+textarea:focus,
+select:focus,
+summary:focus,
+[tabindex]:focus,
+a:focus-visible,
+button:focus-visible,
+input:focus-visible,
+textarea:focus-visible,
+select:focus-visible,
+summary:focus-visible,
+[tabindex]:focus-visible {
+ outline: 2px solid var(--accent-color);
+ outline-offset: 3px;
+ box-shadow: 0 0 12px rgba(56, 189, 248, 0.45);
+}
+
+/* Selection Highlight */
+::selection {
+ background: rgba(56, 189, 248, 0.3);
+ color: var(--text-primary);
+}
+
+/* Narrow Viewport Adaptations */
+@media (max-width: 768px) {
+ .flash-container {
+ padding: 1.25rem 1rem 3rem 1rem;
+ }
+
+ .flash-topbar {
+ flex-wrap: wrap;
+ }
+
+ .flash-title {
+ font-size: 1.85rem;
+ }
+
+ .flash-card {
+ padding: 1.5rem 1.1rem;
+ }
+}
+
+/* Print Optimization */
+@media print {
+ .flash-ambient-mesh,
+ .flash-scroll-indicator,
+ .flash-telemetry {
+ display: none !important;
+ }
+
+ body.flash-theme {
+ background: #ffffff !important;
+ color: #000000 !important;
+ }
+
+ .flash-card {
+ background: transparent !important;
+ border: none !important;
+ box-shadow: none !important;
+ padding: 0 !important;
+ }
+
+ .flash-title {
+ -webkit-text-fill-color: initial !important;
+ color: #000000 !important;
+ }
+
+ pre, code {
+ border: 1px solid #cccccc !important;
+ background: #f8f8f8 !important;
+ color: #000000 !important;
+ }
+}
diff --git a/home/assets/css/theme-pride.css b/home/assets/css/theme-pride.css
new file mode 100644
index 0000000..b9318f7
--- /dev/null
+++ b/home/assets/css/theme-pride.css
@@ -0,0 +1,663 @@
+/* 🌈 theme-pride.css: Prismatic Astral Pride (Cheery, Inviting, Bright) */
+
+:root {
+ /* Surface & Canvas Tokens (Bright & Inviting) */
+ --bg-color: #fdfafe;
+ --surface-color: #ffffff;
+ --text-primary: #1e1b4b;
+ --text-secondary: #585175;
+ --accent-color: #6b21a8;
+ --accent-hover: #9d174d;
+ --border-color: #e9d5ff;
+ --code-bg: #f5eeff;
+ --code-text: #6b21a8;
+
+ /* Typography */
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+ --font-mono: ui-monospace, "JetBrains Mono", "Fira Code", SFMono-Regular, Menlo, Monaco, Consolas, monospace;
+
+ /* Layout */
+ --max-width: 860px;
+ --card-radius: 16px;
+}
+
+/* Palette Variants (opt-in via palette: frontmatter) */
+.palette-trans {
+ --accent-color: #0369a1;
+ --accent-hover: #be185d;
+ --code-text: #0369a1;
+}
+
+.palette-bi {
+ --accent-color: #9d174d;
+ --accent-hover: #6b21a8;
+ --code-text: #1e40af;
+}
+
+.palette-sunset {
+ --accent-color: #c2410c;
+ --accent-hover: #be185d;
+ --code-text: #9f1239;
+}
+
+/* Custom Themed Scrollbar */
+html {
+ scrollbar-width: thin;
+ scrollbar-color: rgba(147, 51, 234, 0.4) var(--bg-color);
+ scroll-behavior: smooth;
+}
+
+::-webkit-scrollbar {
+ width: 10px;
+ height: 10px;
+}
+
+::-webkit-scrollbar-track {
+ background: var(--bg-color);
+}
+
+::-webkit-scrollbar-thumb {
+ background: rgba(147, 51, 234, 0.25);
+ border-radius: 5px;
+ border: 2px solid var(--bg-color);
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background: var(--accent-color);
+}
+
+/* Galvanic Rainbow Scroll Progress Indicator (Scroll-Driven Animation) */
+@media (prefers-reduced-motion: no-preference) {
+ @supports (animation-timeline: scroll()) {
+ @keyframes pride-scroll-grow {
+ from { transform: scaleX(0); }
+ to { transform: scaleX(1); }
+ }
+
+ .pride-scroll-indicator {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 4px;
+ background: linear-gradient(90deg, #ef4444 0%, #f97316 16%, #eab308 33%, #22c55e 50%, #06b6d4 66%, #3b82f6 83%, #a855f7 100%);
+ transform-origin: 0 50%;
+ animation: pride-scroll-grow auto linear;
+ animation-timeline: scroll();
+ z-index: 999;
+ box-shadow: 0 0 10px rgba(234, 179, 8, 0.5), 0 0 16px rgba(168, 85, 247, 0.4);
+ }
+ }
+}
+
+/* Ambient Cheery Pastel Rainbow Mesh */
+.pride-ambient-mesh {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow: hidden;
+ pointer-events: none;
+ z-index: 0;
+}
+
+.pride-aurora {
+ position: absolute;
+ top: -20%;
+ left: 5%;
+ width: 90%;
+ height: 80%;
+ background:
+ radial-gradient(ellipse 60% 45% at 20% 10%, rgba(254, 205, 211, 0.35), transparent 70%),
+ radial-gradient(ellipse 55% 40% at 50% 5%, rgba(254, 240, 138, 0.3), transparent 65%),
+ radial-gradient(ellipse 50% 35% at 80% 15%, rgba(187, 247, 208, 0.3), transparent 65%),
+ radial-gradient(circle at 85% 75%, rgba(191, 219, 254, 0.25), transparent 60%),
+ radial-gradient(circle at 15% 85%, rgba(233, 213, 255, 0.3), transparent 60%);
+ filter: blur(50px);
+}
+
+.pride-spark-node {
+ position: absolute;
+ border-radius: 50%;
+ animation: pride-twinkle 4s infinite ease-in-out;
+}
+
+.pride-spark-node--1 { top: 12%; left: 8%; width: 4px; height: 4px; background: #f43f5e; box-shadow: 0 0 8px #f43f5e; animation-delay: 0s; }
+.pride-spark-node--2 { top: 24%; right: 10%; width: 5px; height: 5px; background: #fb923c; box-shadow: 0 0 10px #fb923c; animation-delay: 1.1s; }
+.pride-spark-node--3 { top: 48%; left: 12%; width: 4px; height: 4px; background: #facc15; box-shadow: 0 0 8px #facc15; animation-delay: 2.3s; }
+.pride-spark-node--4 { top: 66%; right: 14%; width: 4px; height: 4px; background: #4ade80; box-shadow: 0 0 8px #4ade80; animation-delay: 0.7s; }
+.pride-spark-node--5 { top: 82%; left: 35%; width: 5px; height: 5px; background: #38bdf8; box-shadow: 0 0 10px #38bdf8; animation-delay: 2.9s; }
+.pride-spark-node--6 { top: 92%; right: 28%; width: 4px; height: 4px; background: #c084fc; box-shadow: 0 0 8px #c084fc; animation-delay: 1.7s; }
+
+@keyframes pride-twinkle {
+ 0%, 100% { opacity: 0.25; transform: scale(0.85); }
+ 50% { opacity: 0.95; transform: scale(1.35); }
+}
+
+/* Base Body Styles */
+body.pride-theme {
+ background-color: var(--bg-color);
+ color: var(--text-primary);
+ font-family: var(--font-sans);
+ line-height: 1.68;
+ margin: 0;
+ padding: 0;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ min-height: 100vh;
+}
+
+.pride-container {
+ max-width: var(--max-width);
+ margin: 0 auto;
+ padding: 2.25rem 1.25rem 4.5rem 1.25rem;
+ position: relative;
+ z-index: 1;
+}
+
+/* Header & HUD Topbar */
+.pride-header {
+ margin-bottom: 2.25rem;
+}
+
+.pride-topbar {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 1rem;
+ padding-bottom: 1.25rem;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.pride-brand {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ text-decoration: none;
+}
+
+.pride-spark {
+ font-size: 1.35rem;
+}
+
+.pride-brand-name {
+ font-weight: 800;
+ letter-spacing: 0.12em;
+ font-size: 0.95rem;
+ color: var(--text-primary);
+}
+
+.pride-badge {
+ font-size: 0.68rem;
+ font-weight: 700;
+ letter-spacing: 0.05em;
+ padding: 0.18rem 0.55rem;
+ border-radius: 9999px;
+ background: linear-gradient(90deg, rgba(239, 68, 68, 0.12), rgba(234, 179, 8, 0.12), rgba(34, 197, 94, 0.12), rgba(59, 130, 246, 0.12), rgba(168, 85, 247, 0.12));
+ color: var(--accent-color);
+ border: 1px solid var(--border-color);
+}
+
+.pride-telemetry {
+ display: flex;
+ align-items: center;
+}
+
+.telemetry-pill {
+ font-family: var(--font-mono);
+ font-size: 0.75rem;
+ color: var(--text-secondary);
+ background: rgba(255, 255, 255, 0.85);
+ border: 1px solid var(--border-color);
+ padding: 0.25rem 0.65rem;
+ border-radius: 9999px;
+ display: inline-flex;
+ align-items: center;
+ box-shadow: 0 2px 6px rgba(107, 33, 168, 0.06);
+}
+
+.pulse-dot {
+ display: inline-block;
+ width: 7px;
+ height: 7px;
+ border-radius: 50%;
+ background: linear-gradient(135deg, #f43f5e, #3b82f6);
+ box-shadow: 0 0 6px #f43f5e;
+ animation: pride-pulse 2s infinite ease-in-out;
+ margin-right: 7px;
+}
+
+@keyframes pride-pulse {
+ 0%, 100% { opacity: 1; transform: scale(1); }
+ 50% { opacity: 0.4; transform: scale(0.85); }
+}
+
+/* Site Navigation Integration */
+.pride-nav {
+ display: flex;
+ align-items: center;
+}
+
+.pride-nav nav {
+ display: flex;
+}
+
+.pride-nav ul {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ gap: 0.35rem;
+}
+
+.pride-nav li {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.pride-nav a {
+ font-size: 0.88rem;
+ font-weight: 500;
+ color: var(--text-secondary);
+ text-decoration: none;
+ padding: 0.25rem 0.6rem;
+ border-radius: 6px;
+ transition: color 0.15s ease, background-color 0.15s ease;
+}
+
+.pride-nav a:hover {
+ color: var(--accent-color);
+ background: rgba(147, 51, 234, 0.08);
+}
+
+/* Hero Section */
+.pride-hero {
+ margin-top: 2rem;
+}
+
+.pride-title {
+ font-size: 2.6rem;
+ font-weight: 850;
+ line-height: 1.15;
+ letter-spacing: -0.03em;
+ margin: 0 0 0.75rem 0;
+ background: linear-gradient(135deg, #e11d48 0%, #ea580c 20%, #ca8a04 40%, #16a34a 60%, #0284c7 80%, #9333ea 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ color: var(--accent-color);
+}
+
+.pride-deck {
+ font-size: 1.18rem;
+ color: var(--text-secondary);
+ margin: 0 0 1.25rem 0;
+ line-height: 1.55;
+}
+
+.pride-meta {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+ margin-top: 0.75rem;
+}
+
+.meta-pill {
+ font-size: 0.78rem;
+ color: var(--text-secondary);
+ background: rgba(255, 255, 255, 0.9);
+ border: 1px solid var(--border-color);
+ padding: 0.2rem 0.65rem;
+ border-radius: 9999px;
+ font-family: var(--font-mono);
+ box-shadow: 0 1px 3px rgba(107, 33, 168, 0.04);
+}
+
+.meta-label {
+ color: var(--accent-color);
+ font-weight: 600;
+ margin-right: 0.25rem;
+}
+
+/* Galvanic Pride Divider */
+.pride-divider {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 1.25rem;
+ margin: 2.5rem 0;
+}
+
+.pride-divider__line {
+ flex: 1;
+ height: 2px;
+ background: linear-gradient(90deg, transparent, #e11d48, #ea580c, #ca8a04, #16a34a, #0284c7, #9333ea, transparent);
+ opacity: 0.7;
+}
+
+.pride-divider__glyph {
+ font-size: 1.2rem;
+}
+
+/* Main Content Card (Luminous Glassmorphism) */
+.pride-card {
+ background: var(--surface-color);
+ border: 1px solid rgba(192, 132, 252, 0.4);
+ border-radius: var(--card-radius);
+ box-shadow:
+ 0 10px 30px rgba(107, 33, 168, 0.06),
+ 0 1px 3px rgba(0, 0, 0, 0.03),
+ 0 0 25px rgba(236, 72, 153, 0.04);
+ padding: 2.75rem;
+ position: relative;
+ transition: box-shadow 0.25s ease, border-color 0.25s ease;
+}
+
+.pride-card:hover {
+ border-color: rgba(192, 132, 252, 0.6);
+ box-shadow:
+ 0 15px 40px rgba(107, 33, 168, 0.1),
+ 0 2px 6px rgba(0, 0, 0, 0.04),
+ 0 0 35px rgba(236, 72, 153, 0.08);
+}
+
+.pride-card-inner {
+ font-size: 1.05rem;
+ line-height: 1.72;
+}
+
+/* Headings within content */
+h1, h2, h3, h4, h5, h6 {
+ color: var(--text-primary);
+ font-weight: 700;
+ line-height: 1.3;
+ margin-top: 2rem;
+ margin-bottom: 0.75rem;
+}
+
+h1 { font-size: 2rem; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem; }
+h2 { font-size: 1.5rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.35rem; }
+h3 { font-size: 1.25rem; }
+h4 { font-size: 1.1rem; }
+
+/* Links */
+a {
+ color: var(--accent-color);
+ text-decoration: none;
+ border-bottom: 1.5px solid rgba(107, 33, 168, 0.3);
+ transition: color 0.15s ease, border-color 0.15s ease;
+}
+
+a:hover {
+ color: var(--accent-hover);
+ border-bottom-color: var(--accent-hover);
+}
+
+/* Typography & Lists */
+p {
+ margin: 1.15rem 0;
+}
+
+ul, ol {
+ padding-left: 1.5rem;
+ margin: 1.15rem 0;
+}
+
+li {
+ margin: 0.4rem 0;
+}
+
+/* Code & Pre: Prismatic Terminal Chrome */
+code {
+ font-family: var(--font-mono);
+ font-size: 0.9em;
+ background-color: var(--code-bg);
+ color: var(--code-text);
+ padding: 0.2em 0.45em;
+ border-radius: 5px;
+ border: 1px solid rgba(147, 51, 234, 0.2);
+}
+
+pre {
+ position: relative;
+ background-color: #181829;
+ border: 1px solid rgba(147, 51, 234, 0.3);
+ border-top: 3px solid #9333ea;
+ border-radius: 10px;
+ padding: 2.85rem 1.25rem 1.25rem 1.25rem;
+ overflow-x: auto;
+ box-shadow: 0 4px 16px rgba(107, 33, 168, 0.15);
+ margin: 1.75rem 0;
+}
+
+pre::before {
+ content: "● ● ● 🌈 PRIDE COGNITION TERMINAL // 0.0ms";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1.95rem;
+ line-height: 1.95rem;
+ background: #11111f;
+ border-bottom: 1px solid #2e2b4d;
+ color: #c4b5fd;
+ font-family: var(--font-mono);
+ font-size: 0.72rem;
+ letter-spacing: 0.06em;
+ padding-left: 0.95rem;
+ border-top-left-radius: 7px;
+ border-top-right-radius: 7px;
+ pointer-events: none;
+}
+
+pre code {
+ background: transparent;
+ padding: 0;
+ border: none;
+ border-radius: 0;
+ color: #f1f5f9;
+ font-size: 0.92rem;
+}
+
+/* Long inline code wraps instead of blowing out narrow viewports */
+:not(pre) > code {
+ overflow-wrap: anywhere;
+}
+
+/* Blockquotes: Joyful Transmission */
+blockquote {
+ margin: 1.75rem 0;
+ padding: 1.2rem 1.35rem 1.2rem 1.5rem;
+ background: rgba(245, 238, 255, 0.6);
+ border-left: 4px solid var(--accent-color);
+ border-radius: 0 10px 10px 0;
+ box-shadow: 0 2px 8px rgba(107, 33, 168, 0.05);
+ color: var(--text-secondary);
+ position: relative;
+}
+
+blockquote::before {
+ content: "🌈 JOYFUL TRANSMISSION // EMBRACE";
+ display: block;
+ font-family: var(--font-mono);
+ font-size: 0.72rem;
+ font-weight: 700;
+ letter-spacing: 0.08em;
+ color: var(--accent-color);
+ margin-bottom: 0.6rem;
+}
+
+blockquote p:first-child {
+ margin-top: 0;
+}
+
+blockquote p:last-child {
+ margin-bottom: 0;
+}
+
+/* Horizontal Rules */
+hr {
+ border: none;
+ height: 2px;
+ background: linear-gradient(90deg, transparent, #e11d48, #ea580c, #ca8a04, #16a34a, #0284c7, #9333ea, transparent);
+ margin: 2rem 0;
+ opacity: 0.6;
+}
+
+/* Tables */
+table {
+ width: 100%;
+ border-collapse: collapse;
+ margin: 1.75rem 0;
+ display: block;
+ max-width: 100%;
+ overflow-x: auto;
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+}
+
+th, td {
+ padding: 0.8rem 1rem;
+ text-align: left;
+}
+
+th {
+ background: #f5eeff;
+ color: var(--accent-color);
+ font-weight: 700;
+ border-bottom: 2px solid var(--border-color);
+}
+
+td {
+ border-bottom: 1px solid var(--border-color);
+}
+
+tr:nth-child(even) td {
+ background: rgba(253, 250, 254, 0.8);
+}
+
+tr:hover td {
+ background: rgba(245, 238, 255, 0.5);
+}
+
+th[align="center"], td[align="center"] { text-align: center; }
+th[align="right"], td[align="right"] { text-align: right; }
+
+/* Responsive Media */
+img {
+ max-width: 100%;
+ height: auto;
+ border-radius: 10px;
+}
+
+/* Footer & Standardized Slots */
+.pride-footer {
+ margin-top: 3.5rem;
+ padding-top: 2rem;
+ border-top: 1px solid var(--border-color);
+ text-align: center;
+ font-size: 0.88rem;
+ color: var(--text-secondary);
+}
+
+.pride-lore {
+ margin-bottom: 0.75rem;
+}
+
+.pride-lore .rk-lore {
+ color: var(--text-secondary);
+ font-size: 0.92rem;
+ font-style: italic;
+ margin: 0;
+}
+
+.footer-credit {
+ margin: 0.35rem 0;
+}
+
+.footer-asset-meta,
+.footer-tags {
+ margin: 0.25rem 0;
+ font-family: var(--font-mono);
+ font-size: 0.78rem;
+ color: var(--text-secondary);
+}
+
+/* Accessibility: Visible focus indicators */
+a:focus,
+button:focus,
+input:focus,
+textarea:focus,
+select:focus,
+summary:focus,
+[tabindex]:focus,
+a:focus-visible,
+button:focus-visible,
+input:focus-visible,
+textarea:focus-visible,
+select:focus-visible,
+summary:focus-visible,
+[tabindex]:focus-visible {
+ outline: 2px solid var(--accent-color);
+ outline-offset: 3px;
+ box-shadow: 0 0 10px rgba(107, 33, 168, 0.4);
+}
+
+/* Selection Highlight */
+::selection {
+ background: rgba(216, 180, 254, 0.45);
+ color: var(--text-primary);
+}
+
+/* Narrow Viewport Adaptations */
+@media (max-width: 768px) {
+ .pride-container {
+ padding: 1.25rem 1rem 3rem 1rem;
+ }
+
+ .pride-topbar {
+ flex-wrap: wrap;
+ }
+
+ .pride-title {
+ font-size: 1.95rem;
+ }
+
+ .pride-card {
+ padding: 1.5rem 1.1rem;
+ }
+}
+
+/* Print Optimization */
+@media print {
+ .pride-ambient-mesh,
+ .pride-scroll-indicator,
+ .pride-telemetry {
+ display: none !important;
+ }
+
+ body.pride-theme {
+ background: #ffffff !important;
+ color: #000000 !important;
+ }
+
+ .pride-card {
+ background: transparent !important;
+ border: none !important;
+ box-shadow: none !important;
+ padding: 0 !important;
+ }
+
+ .pride-title {
+ -webkit-text-fill-color: initial !important;
+ color: #000000 !important;
+ }
+
+ pre, code {
+ border: 1px solid #cccccc !important;
+ background: #f8f8f8 !important;
+ color: #000000 !important;
+ }
+}
diff --git a/home/content/docs/themes.md b/home/content/docs/themes.md
index d0af5e2..4f35e4d 100644
--- a/home/content/docs/themes.md
+++ b/home/content/docs/themes.md
@@ -21,7 +21,7 @@ Every template in `bones/templates/` belongs to one of three families — with o
| Family | Members | Stated readability guarantee |
| --- | --- | --- |
| **terminal-forward** | `theme-phosphor.html`, `theme-brutal.html` (+ `mac` / `unix` / `pwsh` palette scopes) | Body text meets WCAG AA (4.5:1) on every shipped palette scope, CRT and prompt ornament stays outside the text column, and monospace-first typography never drops below the shared audit bar. |
-| **balanced** | `theme-spooky-dark.html` (+ xhtml profile variant), `theme-dark.html`, `theme-light.html`, `theme-kawaii.html` | General-purpose rendering with decoration kept subordinate: AA contrast for body, secondary, link, and code pairs; visible keyboard focus; wide tables and code scroll instead of overflowing. |
+| **balanced** | `theme-spooky-dark.html` (+ xhtml profile variant), `theme-dark.html`, `theme-light.html`, `theme-kawaii.html`, `theme-flash.html` (+ `nova` / `aurora` / `hyper` palette scopes), `theme-pride.html` (+ `trans` / `bi` / `sunset` palette scopes) | General-purpose rendering with decoration kept subordinate: AA contrast for body, secondary, link, and code pairs; visible keyboard focus; wide tables and code scroll instead of overflowing. |
| **reading-first** | `theme-spooky-light.html`, `theme-overgrown.html`, `theme-textpattern.html` | Longform comfort leads: serif or high-legibility prose faces, a capped measure (`--max-width` ≤ 900px), and the same AA contrast/focus/legibility bar as every other family. |
| **special-purpose** | `theme-necropolis.html` | Dedicated Tomb-Not-Found page, not a general content renderer: the signature 404 treatment (looming ghost numeral, blood-red entry, cracked slab) keys off the `$page_type$` token (v3 generic hook, #269). Still carries the shared asset-meta footer slot and must pass the same a11y gate. |
| **prototype (gate 2026-08-28: stays prototype)** | `theme-daisy.html`, `theme-daisy-vanilla.html` | DaisyUI presentation-layer prototype (#248) plus its zero-dependency vanilla twin (#250): `theme-daisy` renders the dracula-skinned skeleton through vendored compiled DaisyUI 5.7.22 CSS (on-prem, no CDN/Node); `theme-daisy-vanilla` shares a byte-identical DOM (only the stylesheet href differs) styled entirely by hand-written CSS. Both carry the navbar + config-driven `` nav, badge metadata, and card article surface, and both pass the same a11y gate. The decision gate ran 2026-08-28 and kept the pair in prototype status — the vendored build's ~1.16 MB payload and raw-HTML-in-content model don't clear family-grade weight or markdown-first bars — while naming the vanilla twin the graduation candidate (family-weight ~16 KB, zero deps). Both remain registered in the theme registry (`daisy` / `daisy-vanilla`) and selectable per-site; reopen conditions are in the [DaisyUI Primitive Map](daisyui-map.md). |
@@ -44,7 +44,7 @@ Phosphor wears a scanline overlay and titles itself like a prompt (`> title_`).
### balanced
-The site default (`theme-spooky-dark.html`) lives here alongside the XHTML profile variant, which changes the serialization, not the family. Kawaii proves decoration is welcome in this family — as long as it decorates borders and surfaces rather than sitting under body text.
+The site default (`theme-spooky-dark.html`) lives here alongside the XHTML profile variant, which changes the serialization, not the family. Kawaii proves decoration is welcome in this family — as long as it decorates borders and surfaces rather than sitting under body text. Flash (`theme-flash.html`) brings cosmic velocity and galvanic reanimation inspired by Gemini Flash 3.8: glowing gradient headings, a telemetry HUD pill, glassmorphic card framing, and four verified WCAG AA palette scopes (`default`, `nova`, `aurora`, `hyper`). Pride (`theme-pride.html`) is the bright, inviting, and cheery companion: a radiant pearl canvas, rainbow laser scroll progress, prismatic terminal chrome, and four verified WCAG AA pride palette scopes (`default`, `trans`, `bi`, `sunset`).
### reading-first
diff --git a/home/content/pride-edition.md b/home/content/pride-edition.md
new file mode 100644
index 0000000..1d47113
--- /dev/null
+++ b/home/content/pride-edition.md
@@ -0,0 +1,82 @@
+---
+title: "Prismatic Astral Pride: Reanimating the Necropolis in Full Color"
+slug: pride-edition
+template: theme-pride.html
+description: "A bright, joyful, and radiant celebration of speed, inclusion, and zero-hydration modern web engineering in the Rotkeeper necropolis."
+tags:
+ - rotkeeper
+ - pride
+ - themes
+ - announcement
+author: "Antigravity & Gemini Flash 3.8"
+date: "2026-09-05"
+---
+
+# ✨ Prismatic Astral Pride
+
+*“What is celebrated here is never lost — living brightly in every hue.”*
+
+Who decreed that flat-file necromancy had to dwell solely in cold marble crypts and phosphor-green CRT gloom?
+
+Welcome to **Prismatic Astral Pride** (`theme-pride.html`) — the vibrant, joyous, and high-velocity twin to the Gemini Flash 3.8 engine. We took the speed of light, married it to unapologetic queer joy, and delivered a 100% zero-hydration, WCAG AA compliant celebration of modern web craft.
+
+***
+
+## 🌈 The Anatomy of Joyful Velocity
+
+Every element of this theme was designed to knock socks off while maintaining absolute operational discipline:
+
+1. **⚡ Scroll-Driven Pride Rainbow Laser**: As you scroll through this tomb, a multi-stop pride laser tracks your descent at the top of the viewport using native CSS `@supports (animation-timeline: scroll())`. Pure declarative CSS. Zero JavaScript. Zero telemetry bloat.
+2. **✨ Floating Prismatic Confetti**: The ambient void is replaced with a gentle pastel rose, buttercup, and mint aurora, punctuated by floating, twinkling spark nodes drifting in the background.
+3. **🖥️ Prismatic Terminal Chrome**: Even command-line output deserves to be fabulous. Code blocks feature an authentic macOS-style triple-node console header with live latency telemetry.
+4. **💎 Luminous Glassmorphic Card**: A crisp pearl-and-white card structure with soft lavender borders (`rgba(192, 132, 252, 0.4)`) and warm rose-gold ambient depth.
+
+***
+
+## 📡 Live Intercept
+
+> Embalming static documents doesn't mean burying their vibrancy. When machine intelligence and human creativity harmonize, the necropolis awakens not into darkness, but into brilliant, radiant color.
+
+***
+
+## 💻 Code in Full Spectrum
+
+Here is how simple it is to activate this theme in your markdown frontmatter:
+
+```bash
+# Activate the Prismatic Astral Pride theme on any page
+cat << 'CONFIG_EOF' > home/content/my-bright-post.md
+---
+title: "Radiant Thoughts"
+template: "theme-pride.html"
+palette: "trans" # Options: default (rainbow), trans, bi, sunset
+---
+
+# Living in Full Color
+Your content goes here...
+CONFIG_EOF
+
+# Render and behold
+bash rotkeeper.sh render
+```
+
+***
+
+## 🎨 Four Audited Colorways
+
+In true Rotkeeper fashion, beauty never excuses inaccessible contrast. Every single scope passes the strict automated `rotkeeper.sh a11y` test matrix with flying colors:
+
+| Palette Scope | Dominant Tones | Contrast Ratio | Stated Guarantee |
+| :--- | :--- | :--- | :--- |
+| **Default** | Full 6-color Pride Spectrum | 15.4:1 (AA Normal) | Celebratory, vibrant, and ultra-readable |
+| **Trans** | Sky Blue & Soft Rose | 15.4:1 (AA Normal) | Radiant pastel strength and clarity |
+| **Bi** | Royal Purple & Magenta | 15.4:1 (AA Normal) | Deep rich contrast on luminous pearl |
+| **Sunset** | Warm Orange & Crimson Rose | 15.4:1 (AA Normal) | Glowing golden-hour twilight warmth |
+
+***
+
+## 🚀 Final Ritual
+
+Whether you are authoring technical documentation, personal essays, or archiving static tomes for the long haul, **Prismatic Astral Pride** ensures your words shine with warmth, joy, and undeniable presence.
+
+Rendered with pride. Sealed in the necropolis. Alive forever.
diff --git a/home/content/showcase/index.md b/home/content/showcase/index.md
index c4af11c..a57749a 100644
--- a/home/content/showcase/index.md
+++ b/home/content/showcase/index.md
@@ -1,5 +1,5 @@
---
-title: "Theme Gallery — 15 themes"
+title: "Theme Gallery — 17 themes"
template: "rotkeeper-doc.html"
description: "Preview gallery comparing every theme side by side"
---
@@ -57,6 +57,14 @@ Preview every theme through the same content. Each card links to its full showca
View →
+
+
+
+
flash
+
theme-flash.html
+
View →
+
+
@@ -97,6 +105,14 @@ Preview every theme through the same content. Each card links to its full showca
View →
+
+
+
+
pride
+
theme-pride.html
+
View →
+
+
@@ -131,7 +147,7 @@ Preview every theme through the same content. Each card links to its full showca
-> Generated by `rotkeeper.sh showcase` — 15 themes. Run `bash rotkeeper.sh render` to refresh.
+> Generated by `rotkeeper.sh showcase` — 17 themes. Run `bash rotkeeper.sh render` to refresh.
- [showcase-brutal-mac]()
@@ -141,12 +157,14 @@ Preview every theme through the same content. Each card links to its full showca
- [showcase-daisy-vanilla]()
- [showcase-daisy]()
- [showcase-dark]()
+- [showcase-flash]()
- [showcase-kawaii]()
- [showcase-light]()
- [showcase-necropolis]()
- [showcase-overgrown]()
- [showcase-phosphor]()
- [showcase-preview]()
+- [showcase-pride]()
- [showcase-rotkeeper-blog]()
- [showcase-rotkeeper-doc]()
- [showcase-spooky-dark-xhtml]()
diff --git a/home/content/showcase/showcase-flash.md b/home/content/showcase/showcase-flash.md
new file mode 100644
index 0000000..cf10340
--- /dev/null
+++ b/home/content/showcase/showcase-flash.md
@@ -0,0 +1,98 @@
+---
+title: "Showcase — flash"
+slug: "showcase-flash"
+template: "theme-flash.html"
+asset_meta: "Dummy value for asset_meta"
+author: "Dummy value for author"
+description: "Programmatic description for flash"
+tags: "Dummy value for tags"
+version: "Dummy value for version"
+---
+
+# Heading 1
+Through a terminal-driven, proactive embalming approach we can remain tomb-focused and artifact-directed, innovate and be an offline-first necropolis which facilitates static bash-readiness.
+
+## Heading 2
+Transforming turnkey phylacteries to dead-code 24/365 paradigms with benchmark archival channels implementing viral bash-rituals and flat-file action-items.
+
+### Heading 3
+While we take that action item strictly off-line and raise a fatal `trap_err` and remember to touch base as you think about the markdown fences outside of the crypt.
+
+#### Heading 4
+And seize B2B (Bash-to-Bone) orchestrators and re-envisioneer necromantic partnerships that evolve zero-hydration initiatives delivering synergistic dead-drops.
+
+##### Heading 5
+To incentivize CI/CD deliverables that leverage Oliver rituals to synergize bash-and-bone dropzones while facilitating one-to-one shell-scripts.
+
+###### Heading 6
+With revolutionary Frankenstein stitching that deliver viral payloads and grow decentralized supply-chains that expedite seamless embalming.
+
+---
+
+**Bold Text**: Transform back-end shell dependencies through a terminal-driven, proactive embalming approach we can remain tomb-focused and artifact-directed.
+
+*Italic Text*: Innovate and be an offline-first necropolis which facilitates static bash-readiness transforming turnkey phylacteries to dead-code 24/365 paradigms.
+
+> Blockquote:
+> With benchmark archival channels implementing viral bash-rituals and flat-file action-items while we take that action item strictly off-line and raise a fatal `trap_err`.
+>
+> And remember to touch base as you think about the markdown fences outside of the crypt and seize B2B (Bash-to-Bone) orchestrators.
+
+---
+
+### Unordered List
+* Re-envisioneer necromantic partnerships
+* Evolve zero-hydration initiatives delivering synergistic dead-drops
+* Incentivize CI/CD deliverables that leverage Oliver rituals
+
+### Ordered List
+1. Synergize bash-and-bone dropzones
+2. Facilitating one-to-one shell-scripts with revolutionary Frankenstein stitching
+3. Deliver viral payloads
+
+---
+
+### Code Block
+```bash
+echo "Transforming turnkey phylacteries to dead-code 24/365 paradigms."
+echo "With benchmark archival channels implementing viral bash-rituals."
+```
+
+### Table
+| Feature | Status | Impact |
+|---|---|---|
+| Terminal-driven | Active | Proactive embalming |
+| Offline-first | Enabled | Static bash-readiness |
+| B2B Orchestrators | Seized | Zero-hydration initiatives |
+
+---
+
+## Stress Testing
+
+### Nested Blockquotes & Fences
+
+> Level 1 blockquote
+>
+> > Level 2 blockquote
+> >
+> > ```bash
+> > echo "Nested fence!"
+> > ```
+> >
+> > > Level 3 blockquote
+
+### Side-by-Side Content Overflows
+
+#### Deeply Nested Lists
+* Level 1
+ * Level 2
+ * Level 3
+ * Level 4
+
+#### Massive Technical Table
+
+| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 |
+|---|---|---|---|---|---|
+| A very long string that might cause overflow | Data | Data | Data | Data | Data |
+| Data | A very long string that might cause overflow | Data | Data | Data | Data |
+
diff --git a/home/content/showcase/showcase-light.md b/home/content/showcase/showcase-light.md
index 03ed0d1..ff2e158 100644
--- a/home/content/showcase/showcase-light.md
+++ b/home/content/showcase/showcase-light.md
@@ -3,6 +3,7 @@ title: "Showcase — light"
slug: "showcase-light"
template: "theme-light.html"
asset_meta: "Dummy value for asset_meta"
+description: "Programmatic description for light"
tags: "Dummy value for tags"
version: "Dummy value for version"
---
diff --git a/home/content/showcase/showcase-necropolis.md b/home/content/showcase/showcase-necropolis.md
index 18c8235..69ce49a 100644
--- a/home/content/showcase/showcase-necropolis.md
+++ b/home/content/showcase/showcase-necropolis.md
@@ -4,7 +4,6 @@ slug: "showcase-necropolis"
template: "theme-necropolis.html"
asset_meta: "Dummy value for asset_meta"
author: "Dummy value for author"
-description: "Programmatic description for necropolis"
page_type: "Dummy value for page_type"
tags: "Dummy value for tags"
version: "Dummy value for version"
diff --git a/home/content/showcase/showcase-pride.md b/home/content/showcase/showcase-pride.md
new file mode 100644
index 0000000..1773f7e
--- /dev/null
+++ b/home/content/showcase/showcase-pride.md
@@ -0,0 +1,98 @@
+---
+title: "Showcase — pride"
+slug: "showcase-pride"
+template: "theme-pride.html"
+asset_meta: "Dummy value for asset_meta"
+author: "Dummy value for author"
+description: "Programmatic description for pride"
+tags: "Dummy value for tags"
+version: "Dummy value for version"
+---
+
+# Heading 1
+Through a terminal-driven, proactive embalming approach we can remain tomb-focused and artifact-directed, innovate and be an offline-first necropolis which facilitates static bash-readiness.
+
+## Heading 2
+Transforming turnkey phylacteries to dead-code 24/365 paradigms with benchmark archival channels implementing viral bash-rituals and flat-file action-items.
+
+### Heading 3
+While we take that action item strictly off-line and raise a fatal `trap_err` and remember to touch base as you think about the markdown fences outside of the crypt.
+
+#### Heading 4
+And seize B2B (Bash-to-Bone) orchestrators and re-envisioneer necromantic partnerships that evolve zero-hydration initiatives delivering synergistic dead-drops.
+
+##### Heading 5
+To incentivize CI/CD deliverables that leverage Oliver rituals to synergize bash-and-bone dropzones while facilitating one-to-one shell-scripts.
+
+###### Heading 6
+With revolutionary Frankenstein stitching that deliver viral payloads and grow decentralized supply-chains that expedite seamless embalming.
+
+---
+
+**Bold Text**: Transform back-end shell dependencies through a terminal-driven, proactive embalming approach we can remain tomb-focused and artifact-directed.
+
+*Italic Text*: Innovate and be an offline-first necropolis which facilitates static bash-readiness transforming turnkey phylacteries to dead-code 24/365 paradigms.
+
+> Blockquote:
+> With benchmark archival channels implementing viral bash-rituals and flat-file action-items while we take that action item strictly off-line and raise a fatal `trap_err`.
+>
+> And remember to touch base as you think about the markdown fences outside of the crypt and seize B2B (Bash-to-Bone) orchestrators.
+
+---
+
+### Unordered List
+* Re-envisioneer necromantic partnerships
+* Evolve zero-hydration initiatives delivering synergistic dead-drops
+* Incentivize CI/CD deliverables that leverage Oliver rituals
+
+### Ordered List
+1. Synergize bash-and-bone dropzones
+2. Facilitating one-to-one shell-scripts with revolutionary Frankenstein stitching
+3. Deliver viral payloads
+
+---
+
+### Code Block
+```bash
+echo "Transforming turnkey phylacteries to dead-code 24/365 paradigms."
+echo "With benchmark archival channels implementing viral bash-rituals."
+```
+
+### Table
+| Feature | Status | Impact |
+|---|---|---|
+| Terminal-driven | Active | Proactive embalming |
+| Offline-first | Enabled | Static bash-readiness |
+| B2B Orchestrators | Seized | Zero-hydration initiatives |
+
+---
+
+## Stress Testing
+
+### Nested Blockquotes & Fences
+
+> Level 1 blockquote
+>
+> > Level 2 blockquote
+> >
+> > ```bash
+> > echo "Nested fence!"
+> > ```
+> >
+> > > Level 3 blockquote
+
+### Side-by-Side Content Overflows
+
+#### Deeply Nested Lists
+* Level 1
+ * Level 2
+ * Level 3
+ * Level 4
+
+#### Massive Technical Table
+
+| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 |
+|---|---|---|---|---|---|
+| A very long string that might cause overflow | Data | Data | Data | Data | Data |
+| Data | A very long string that might cause overflow | Data | Data | Data | Data |
+