/* ============ Dave Ko — Tweaks (vibe variations) ============ */ const DK_TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "vibe": "gallery", "cols": 3, "corners": "sharp", "grain": true, "reveal": true }/*EDITMODE-END*/; const VIBE_COLS = { editorial: 2, gallery: 3, cinematic: 1 }; function DKTweaks() { const [t, setTweak] = useTweaks(DK_TWEAK_DEFAULTS); const root = document.documentElement; React.useEffect(() => { root.setAttribute("data-vibe", t.vibe); }, [t.vibe]); React.useEffect(() => { root.style.setProperty("--grid-cols", t.cols); }, [t.cols]); React.useEffect(() => { root.style.setProperty("--tile-radius", t.corners === "soft" ? "10px" : "0px"); }, [t.corners]); React.useEffect(() => { root.setAttribute("data-reveal", t.reveal ? "1" : "0"); }, [t.reveal]); React.useEffect(() => { let s = document.getElementById("dk-grain-off"); if (!t.grain) { if (!s) { s = document.createElement("style"); s.id = "dk-grain-off"; s.textContent = "body::after{display:none!important}"; document.head.appendChild(s); } } else if (s) s.remove(); }, [t.grain]); return ( setTweak({ vibe: v, cols: VIBE_COLS[v] })} />

Editorial — serif hero, generous 2-up.
Gallery — dense worship-style wall.
Cinematic — full-bleed, one-up, max black.

setTweak("cols", v)} /> setTweak("corners", v)} /> setTweak("grain", v)} /> setTweak("reveal", v)} />
); } ReactDOM.createRoot(document.getElementById("tweaks-root")).render();