diff --git a/runner/harness/card.py b/runner/harness/card.py
index 334c2b6..44cf4ae 100644
--- a/runner/harness/card.py
+++ b/runner/harness/card.py
@@ -41,6 +41,19 @@ STATUS_COLOR = {
}
+# Inline-SVG sunflower (🌻) for the card header. Self-contained so it renders deterministically in
+# headless chromium, which has no colour-emoji font (the PR comment in U3 keeps the real 🌻 emoji —
+# Gitea markdown renders it). 8 petals around a seed disc.
+_PETALS = "".join(
+ f''
+ for a in range(0, 360, 45)
+)
+FLOWER_SVG = (
+ ''
+)
+
+
def level_color(level: int) -> str:
return LEVEL_COLOR.get(int(level), "#8b949e")
@@ -125,7 +138,7 @@ def render_card_html(data: dict, screenshot_rel: str | None = "screenshot.png")
body{{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#0d1117;color:#c9d1d9}}
.card{{width:900px;background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden}}
.hd{{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border-bottom:1px solid #30363d}}
-.flower{{font-size:1.8rem}}
+.flower{{flex:none}}
.title{{flex:1}}
.title h1{{margin:0;font-size:1.4rem}}
.title .ver{{color:#8b949e;font-size:.9rem}}
@@ -149,11 +162,12 @@ tr.stage td{{padding-top:.5rem;border-bottom:1px solid #30363d}}
.shot.noshot{{display:flex;align-items:center;justify-content:center;height:225px;color:#8b949e;font-size:.85rem}}
.flags{{display:flex;gap:.6rem;padding:.6rem 1.3rem 1rem}}
.flag{{border:1px solid;border-radius:6px;padding:.15rem .5rem;font-size:.78rem;color:#c9d1d9}}
+.cap b{{color:#c9d1d9}}
-
🌻
+
{FLOWER_SVG}
{recipe}
{version}
{level}level
-
{("⚑ " + cap) if cap else "🏆 full clean climb (level 6)"}
+
{("capped: " + cap) if cap else "full clean climb — top level (6)"}
{"".join(flag_bits)}