llms.txt Content
<!doctype html>
<html lang="en" dir="ltr" data-theme="dark" prefix="og: https://ogp.me/ns#">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- Theme bootstrap: resolve and apply the theme BEFORE first paint so there
is no flash of the wrong theme. Mirrors resolveTheme() in themeStore.ts;
also migrates the value from the old useTheme key. Must stay inline and
first so it runs before the stylesheet is applied. -->
<script>
(function () {
// Read a persisted preference tolerantly: any malformed/partial JSON
// must resolve to system (OS), exactly like resolveTheme() in
// themeStore.ts — otherwise the pre-paint theme can disagree with the
// hydrated store and flash. A bad parse leaves pref undefined -> system.
function readPref(key, field) {
try {
var raw = localStorage.getItem(key);
if (!raw) return undefined;
var parsed = JSON.parse(raw);
return parsed && parsed.state ? parsed.state[field] : undefined;
} catch (e) {
return undefined;
}
}
var resolved;
try {
var pref =
readPref('writerslogic-theme-mode', 'theme') ||
readPref('writerslogic-theme-colors', 'mode'); // migrate stored value
// Default to dark; light is an explicit opt-in only (see resolveTheme
// in themeStore.ts — the light theme is partially migrated). Must mirror
// that rule so the pre-paint theme matches the hydrated store.
resolved = pref === 'light' || pref === 'dark' ? pref : 'dark';
} catch (e) {
resolved = 'dark';
}
var el = document.documentElement;
el.setAttribute('data-theme', resolved);
el.style.colorScheme = resolved;
var meta = document