{# Google Analytics is gated on cookie consent (GDPR). On first opt-in the
cookie_consent.html banner injects gtag without a reload; on later loads
it renders here because analytics_consent is true. #}
{#
GDPR cookie-consent banner for the server-rendered pages. Shares the cookie
name + JSON shape with the SPA's @basedig/ui CookieConsent, so a decision made
on either frontend is honoured on the other. Vanilla JS (no framework on these
pages). Writes the cookie, POSTs to /api/consent/cookie/ for the audit trail,
and injects Google Analytics on opt-in without a reload.
#}
We use cookies to run the site and, with your consent, to measure usage. You can accept all, reject non-essential, or choose per category.
Learn more