Index: src/services/OgImageService.js
===================================================================
--- src/services/OgImageService.js	(revision 69815b232bc91b7504ea8b28d3e2f66949f216ed)
+++ src/services/OgImageService.js	(revision 5f3f9ec002fdbf1dddd640956bd34915e10695df)
@@ -43,6 +43,7 @@
 function esc(s) { return String(s == null ? '' : s).replace(/[<>&]/g, (c) => ({ '<': '&lt;', '>': '&gt;', '&': '&amp;' }[c])); }
 
-function buildSvg(site, palette, accent) {
-  const pal = (ThemeService.PALETTES[palette] || ThemeService.PALETTES.klonkt).dark;
+function buildSvg(site, palette, accent, theme) {
+  const _p = ThemeService.PALETTES[palette] || ThemeService.PALETTES.klonkt;
+  const pal = _p[theme] || _p.dark;
   const paper = pal.paper, ink = pal.ink;
   const paper2 = mix(paper, ink, 0.08);
@@ -89,7 +90,10 @@
 
   const palette = ThemeService.PALETTES[site.palette] ? site.palette : 'klonkt';
-  const accent = site.accent || (ThemeService.PALETTES[palette] || ThemeService.PALETTES.klonkt).dark.accent;
+  // Follow the site's "default theme for new visitors" (theme_override): a light card when the site
+  // is set to Light, otherwise dark (an OG image is static, so Auto/Dark → dark).
+  const theme = site.theme_override === 'light' ? 'light' : 'dark';
+  const accent = site.accent || ((ThemeService.PALETTES[palette] || ThemeService.PALETTES.klonkt)[theme] || ThemeService.PALETTES.klonkt.dark).accent;
   const key = crypto.createHash('sha1')
-    .update([TEMPLATE_VERSION, site.slug, palette, accent, site.title || '', site.tagline || site.description || ''].join('\x1f'))
+    .update([TEMPLATE_VERSION, site.slug, palette, accent, theme, site.title || '', site.tagline || site.description || ''].join('\x1f'))
     .digest('hex').slice(0, 16);
   const file = path.join(CACHE_DIR, key + '.png');
@@ -98,5 +102,5 @@
 
   try {
-    const svg = buildSvg(site, palette, accent);
+    const svg = buildSvg(site, palette, accent, theme);
     const png = new Resvg(svg, {
       font: { fontFiles: [FONT], loadSystemFonts: false },
