Radiant Craft Studio Learn graphic design with calm, practical guidance.

Your marked pages

Fallows

Keep a quiet shortlist of lessons that caught your attention. These selections stay in this browser until you remove them or clear local storage.

Return to catalog
`; document.getElementById("site-header").innerHTML=headerHTML; document.getElementById("site-footer").innerHTML=footerHTML; const out=document.getElementById("fallows-list"),key="rcs-favorites"; function applyTheme(){ const t=localStorage.getItem("rcs-theme")||"light"; if(t==="dark"){document.documentElement.style.filter="invert(1) hue-rotate(180deg)"}else{document.documentElement.style.filter=""} } function setupHeader(){ const menuBtn=document.getElementById("menu-toggle"),nav=document.getElementById("main-nav"); if(menuBtn&&nav){menuBtn.onclick=()=>nav.classList.toggle("hidden")} const th=document.getElementById("theme-toggle"); if(th){th.onclick=()=>{const cur=localStorage.getItem("rcs-theme")||"light";localStorage.setItem("rcs-theme",cur==="light"?"dark":"light");applyTheme()}} document.querySelectorAll('[data-open]').forEach(b=>b.onclick=()=>{alert("Modal opened for "+b.dataset.open+" (demo)")}) } function render(items){ let ids=JSON.parse(localStorage.getItem(key)||"[]"); let a=items.filter(x=>ids.includes(x.id)); out.innerHTML=a.length?a.map(x=>`

${x.category}

${x.title}

${x.summary}

`).join(""):`

Your fallows shelf is ready for its first note.

Follow a course in the catalog and it will appear here.

`; } document.addEventListener("click",e=>{ if(e.target.dataset.remove){ let a=JSON.parse(localStorage.getItem(key)||"[]").filter(x=>x!==e.target.dataset.remove); localStorage.setItem(key,JSON.stringify(a)); fetch("./catalog.json").then(r=>r.json()).then(render) } }); fetch("./catalog.json").then(r=>r.json()).then(d=>{render(d);setupHeader();applyTheme()}); const cb=document.getElementById("cookie-banner"); if(!localStorage.getItem("rcs-cookie-consent")){cb&&cb.classList.remove("hidden")} const cclose=document.getElementById("cookie-close"); if(cclose){cclose.onclick=()=>{localStorage.setItem("rcs-cookie-consent","accepted");cb.classList.add("hidden")}}