{# Theme head block: anti-FOUC script, CSS, and optional JS include #}
{# Safety: autoescape off is safe here — all variables (css_block, direction, etc.) #}
{# are framework-generated in theme_tags.py, not user input. #}
{# cookie_prefix_js and resolved_mode_js are JSON-encoded strings, framework-generated. #}
{% load static %}
{% autoescape off %}
{{ css_block }}
{{ deferred_css_block }}
{% comment %}
`?v={{ asset_version }}` on each of these, because none of them had a
cache-buster and Django's static server sends no `Cache-Control` — so a browser
applied heuristic freshness to `components.js` / `components.css` and kept the
copy it already had. An edit to either was invisible on the page it was made
for. The token is derived from the assets' newest mtime (see
`_theme_asset_version`), so it moves on an edit rather than on a release.
{% endcomment %}
{% if include_component_link %}{% endif %}
{% if include_components_app_link %}{% endif %}
{{ component_css_block }}
{% if include_js %}
{% endif %}
{% endautoescape %}