{# Island stylesheet (issue #48). Placed BEFORE the inline
{% block nav %} {% endblock %} {# Guided-tutorial banner: present only when the API layer resolved a real tutorial-run/step for this page. Injected here (outside every page's body block, and outside the workbench htmx swap target) so fragment swaps never remove it. #} {% if tutorial %}{% include "fragments/tutorial_banner.html" %}{% endif %} {% block body %}{% endblock %} {# Shared island loader (issue #48): the ONLY script every page pulls in. It no-ops when a page has no [data-island] nodes and dynamically imports only the island bundles present, so adding an island never touches base.html. The guard keeps dev/source-run (no build) working — no broken script tag. #} {% if asset_url('main') %}{% endif %}