<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><style class="preload">html,body{margin:0;height:100%}body.theme-light{background-color:#fff;color:#222}body.theme-dark{background-color:#1e1e1e;color:#dadada}.preload{padding:20px;white-space:pre-wrap;overflow-wrap:break-word}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}</style><base href="https://publish.obsidian.md"><script defer="defer" src="/app.js?5e3dc6f6d7b275ed59ee"></script><link rel="preload" href="/app.css?5e3dc6f6d7b275ed59ee" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="/app.css?5e3dc6f6d7b275ed59ee"></noscript><title>a thaumaturgical compendium</title><link rel="icon" type="image/x-icon" sizes="32x32" href="https://publish-01.obsidian.md/access/1410ed27fc955a1d660d1ad3becf21c9/pages/images/favicon-32x32.png"><script type="text/javascript">
window.siteInfo={"uid":"1410ed27fc955a1d660d1ad3becf21c9","host":"publish-01.obsidian.md","status":"active","slug":null,"redirect":1,"customurl":"alex.halavais.net"};
(function(){
	let f = u=>u&&fetch(u,{credentials: "include"});
	window.preloadOptions=f("https://publish-01.obsidian.md/options/1410ed27fc955a1d660d1ad3becf21c9");
	window.preloadCache=f("https://publish-01.obsidian.md/cache/1410ed27fc955a1d660d1ad3becf21c9");
	window.preloadPage=f("https://publish-01.obsidian.md/access/1410ed27fc955a1d660d1ad3becf21c9/feed/.md");
})();
</script><meta name="description" content="a thaumaturgical compendium"><meta property="og:description" content="a thaumaturgical compendium"></head><body class="theme-dark"><div class="preload" style="text-align:center"><svg style="width:50px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path style="transform-origin:50px 50px;animation:1s linear infinite rotate" fill="currentColor" d="M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"/></svg></div><script type="text/javascript">(function(){let t=localStorage.getItem('site-theme'),cl=document.body.classList;if(t&&t!=='dark') {cl.remove('theme-dark');cl.add('theme-'+t)}})();</script></body></html>