diff --git a/tests/test_episode_render.py b/tests/test_episode_render.py
index 5132bed..9076434 100644
--- a/tests/test_episode_render.py
+++ b/tests/test_episode_render.py
@@ -102,7 +102,7 @@ def test_all_asset_paths_are_root_absolute(sample_episode):
html = render_episode_page(sample_episode, turns=[])
assert 'href="css/' not in html
assert 'src="js/' not in html
- assert 'href="/css/style.css?v=6"' in html
+ assert re.search(r'href="/css/style\.css\?v=\d+"', html)
assert 'src="/js/footer.js"' in html
diff --git a/website/404.html b/website/404.html
index ef26cbd..190503a 100644
--- a/website/404.html
+++ b/website/404.html
@@ -15,7 +15,7 @@
-
+
diff --git a/website/clips.html b/website/clips.html
index 66acbbc..b3d713a 100644
--- a/website/clips.html
+++ b/website/clips.html
@@ -39,7 +39,7 @@
-
+
diff --git a/website/css/style.css b/website/css/style.css
index f053e2c..6b0023b 100644
--- a/website/css/style.css
+++ b/website/css/style.css
@@ -1536,13 +1536,23 @@ a:hover {
margin-bottom: 1.25rem;
}
-.speaker-label {
+.speaker-label,
+.transcript-speaker {
font-weight: 700;
color: var(--accent);
font-size: 0.85rem;
letter-spacing: 0.03em;
}
+/* Static episode pages render one block per speaker turn. */
+.transcript-turn {
+ margin-bottom: 1.25rem;
+}
+
+.transcript-turn p {
+ margin: 0.2rem 0 0;
+}
+
.transcript-unavailable {
color: var(--text-muted);
font-style: italic;
diff --git a/website/episode.html b/website/episode.html
index b25b693..f7637e4 100644
--- a/website/episode.html
+++ b/website/episode.html
@@ -30,7 +30,7 @@
-
+
diff --git a/website/stats.html b/website/stats.html
index dbf031d..832f1d6 100644
--- a/website/stats.html
+++ b/website/stats.html
@@ -39,7 +39,7 @@
-
+
diff --git a/website/terms.html b/website/terms.html
index 6d788f8..cc90530 100644
--- a/website/terms.html
+++ b/website/terms.html
@@ -33,7 +33,7 @@
-
+
diff --git a/website_gen/render.py b/website_gen/render.py
index 7233bea..1d6207c 100644
--- a/website_gen/render.py
+++ b/website_gen/render.py
@@ -37,7 +37,7 @@ PAGE = """
-
+