Index: src/assets/css/style.css
===================================================================
--- src/assets/css/style.css	(revision d8f8f079ce7979088f94c7dca8819cb4eb384777)
+++ src/assets/css/style.css	(revision 88838bce5b42c9e3fac0481e15e8b4531af35c4e)
@@ -2587,4 +2587,14 @@
 .feed-reader .read-head { padding-bottom: .5rem; }
 .feed-reader .read-title { font-size: clamp(1.6rem, 4vw, 2.4rem); line-height: 1.15; margin: 0 0 .3rem; }
+/* Het pin-icoon voor de titel: meeschalend met de kop, maar duidelijk kleiner --
+   het is een markering en geen deel van de titel. */
+.feed-reader .read-pin {
+    display: inline-block;
+    vertical-align: baseline;
+    width: .62em; height: .62em;
+    margin-right: .35em;
+    color: var(--ink-muted);
+}
+.feed-reader .read-pin svg { width: 100%; height: 100%; display: block; }
 /* De titel is een link, maar mag er niet als een link uitzien: dit is een
    leesscherm, geen index. */
@@ -2635,4 +2645,14 @@
 @media (min-width: 768px) {
     .read-top { bottom: 1.5rem; right: 1.5rem; }
+}
+/* Staat de mini-speler onderin, dan wijkt de knop daarvoor -- anders komt hij er
+   bovenop te liggen (Robins schermafbeelding, 20-8). body.has-audio-player wordt
+   door audio-player.js gezet zodra de speler zichtbaar is, en weer weggehaald
+   als hij verdwijnt, dus dit volgt vanzelf.
+   Op mobiel staat de speler BOVEN de tabbalk gestapeld, dus daar komt zijn
+   hoogte bovenop de ruimte die er al gereserveerd was. */
+body.has-audio-player .read-top { bottom: calc(env(safe-area-inset-bottom, 0) + 4.75rem + 4.25rem); }
+@media (min-width: 768px) {
+    body.has-audio-player .read-top { bottom: calc(1.5rem + 4.25rem); }
 }
 @media (prefers-reduced-motion: reduce) {
