<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Claude Code on 安橙的博客</title><link>https://blog.ans20xx.com/tags/claude-code/</link><description>Recent content in Claude Code on 安橙的博客</description><generator>Hugo -- 0.161.1</generator><language>zh</language><lastBuildDate>Sun, 10 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.ans20xx.com/tags/claude-code/index.xml" rel="self" type="application/rss+xml"/><item><title>个人用 SKILLS</title><link>https://blog.ans20xx.com/posts/tools/%E4%B8%AA%E4%BA%BA%E7%94%A8-skill/</link><pubDate>Sun, 10 May 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/%E4%B8%AA%E4%BA%BA%E7%94%A8-skill/</guid><description>&lt;h1 id="绘图-skill"&gt;绘图 SKILL&lt;/h1&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 13
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 14
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 15
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 16
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 17
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 18
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 19
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 20
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 21
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 22
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 23
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 24
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 25
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 26
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 27
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 28
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 29
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 30
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 31
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 32
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 33
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 34
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 35
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 36
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 37
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 38
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 39
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 40
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 41
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 42
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 43
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 44
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 45
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 46
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 47
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 48
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 49
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 50
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 51
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 52
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 53
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 54
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 55
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 56
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 57
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 58
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 59
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 60
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 61
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 62
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 63
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 64
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 65
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 66
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 67
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 68
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 69
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 70
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 71
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 72
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 73
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 74
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 75
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 76
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 77
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 78
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 79
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 80
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 81
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 82
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 83
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 84
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 85
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 86
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 87
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 88
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 89
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 90
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 91
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 92
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 93
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 94
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 95
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 96
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 97
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 98
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt; 99
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;100
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;101
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;102
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;103
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;104
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;105
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;106
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;107
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;108
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;109
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;110
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;111
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;112
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;113
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;114
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;115
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;116
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;117
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;118
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;119
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;120
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;121
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;122
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;123
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;124
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;125
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;126
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;127
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;128
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;129
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;130
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;131
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;132
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;133
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;134
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;135
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;136
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;137
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;138
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;139
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;140
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;141
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;142
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;143
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;144
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;145
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;146
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;147
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;148
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;149
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;150
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;151
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;152
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;153
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;154
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;155
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;156
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;157
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;158
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;159
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;160
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;161
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;162
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;163
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;164
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;165
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;166
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;167
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;168
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;169
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;170
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;171
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;172
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;173
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;174
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;175
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;176
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;177
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;178
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;179
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;180
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;181
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;182
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;183
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;184
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;185
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;186
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;187
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;188
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;189
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;190
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;191
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;192
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;193
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;194
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;195
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;196
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;197
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;198
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;199
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;200
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;201
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;202
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;203
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;204
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;205
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;206
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;207
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;208
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;209
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;210
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;211
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;212
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;213
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;214
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;215
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;216
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;217
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;218
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;219
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;220
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;221
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;222
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;223
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;224
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;225
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;226
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;227
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;228
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;229
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;230
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;231
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;232
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;233
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;234
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;235
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;236
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;237
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;238
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;239
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;240
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;241
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;242
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;243
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;244
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;245
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;246
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;247
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;248
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;249
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;250
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;251
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;252
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;253
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;254
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;255
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;256
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;257
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;258
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;259
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;260
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;261
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;262
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;263
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;264
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;265
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;266
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;267
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;268
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;269
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;270
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;271
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;272
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;273
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;274
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;275
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;276
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;277
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;278
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;279
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;280
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;281
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;282
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;283
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;284
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;285
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;286
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;287
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;288
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;289
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;290
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;291
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;292
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;293
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;294
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;295
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;296
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;297
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;298
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;299
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;300
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;301
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;302
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-md" data-lang="md"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;# Paper-tone Diagram
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;学术克制 × 手工纸感 × 编辑设计。回避现代 SaaS 风(饱和蓝、纯白底、阴影泛滥、圆角滥用),把&amp;#34;信息&amp;#34;当作&amp;#34;印刷品&amp;#34;来呈现。适用流程图 / 架构图 / pipeline 示意图,中文友好,可输出 HTML、Excalidraw、SVG。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;气质关键词:**安静、考究、可读、不喧哗**。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 1 · Color Tokens(固定不可改)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--ivory: #FAF9F5 主背景(代替纯白)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--paper: #FFFFFF 卡片背景
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--slate: #141413 主文字(几乎黑但偏暖)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--clay: #D97757 唯一强调色 — 关键路径 / 序号 / 斜体
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--clay-d: #B85C3E 强调暗色,备用
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--oat: #E3DACC 暖灰 — hover / 下划线
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--olive: #788C5D 第二色,用量 ≈ clay 的 1/5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--g100: #F0EEE6 最浅灰 — 徽章背景
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--g200: #E6E3DA 边框 / 分隔
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--g300: #D1CFC5 标准描边
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--g500: #87867F 次要文字、Mono 标签
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--g700: #3D3D3A 正文次级
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;调色法则:**没有冷灰**(所有灰带土黄底);全页只有 clay 一种亮色,占比 &amp;lt; 20%;不用纯黑纯白;olive 仅作分类区分,用量约 clay 的 1/5。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 2 · Typography(固定)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--serif: ui-serif, Georgia, &amp;#34;Times New Roman&amp;#34;, Times, serif;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--sans: system-ui, -apple-system, &amp;#34;Segoe UI&amp;#34;, Roboto, Helvetica, Arial, sans-serif;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--mono: ui-monospace, &amp;#34;SF Mono&amp;#34;, Menlo, Monaco, Consolas, monospace;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 用途 | 字体 | 字号 | 字重 | 字距 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|---|---|---|---|---|
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| H1 | serif | clamp(38, 5.4vw, 62)px | &lt;span style="color:#d33682"&gt;**500**&lt;/span&gt; | -0.018em |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| H2 章节 | serif | 27px | 500 | -0.012em |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 卡片标题 | serif | 19px | 500 | -0.008em |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 正文 lede | sans | 16.5px | 400 | — |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| 卡片描述 | sans | 13.5px | 400 | — |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| Mono 标签 | mono | 10–13px | 400/600 | 0.08–0.12em |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;铁律:serif 标题字重统一 &lt;span style="color:#d33682"&gt;**500**&lt;/span&gt;(不要 600/700);H1 用负字距 -0.018em + &lt;span style="color:#2aa198"&gt;`max-width:17ch`&lt;/span&gt;;斜体词用 &lt;span style="color:#2aa198"&gt;`&amp;lt;em&amp;gt;`&lt;/span&gt; + clay 色,是页面唯一的&amp;#34;装饰修辞&amp;#34;。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 3 · Layout
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.wrap { max-width:1120px; margin:0 auto; padding:0 32px 140px; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 章节间距 &lt;span style="color:#d33682"&gt;**72px**&lt;/span&gt;;header 顶部 80px / 底部 56px;footer 顶部 100px
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; **50px 悬挂缩进** — 章节标题不缩,介绍与卡片网格 &lt;span style="color:#2aa198"&gt;`margin-left:50px`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 卡片网格 &lt;span style="color:#2aa198"&gt;`grid-template-columns: repeat(auto-fill, minmax(316px, 1fr)); gap:20px`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 4 · Borders / Radius / Motion
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 描边 &lt;span style="color:#d33682"&gt;**1.5px**&lt;/span&gt;(HTML) / &lt;span style="color:#d33682"&gt;**1px**&lt;/span&gt;(Excalidraw,无 1.5 选项)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 圆角:5px(SVG 内)、6px(tag)、10–14px(卡片)、999px(胶囊)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 动效时长 &lt;span style="color:#d33682"&gt;**120–150ms**&lt;/span&gt;(纸面回弹感)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 只用 transform + 颜色 + 阴影,**不缩放、不旋转、不淡入**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 默认 ease,不用 cubic-bezier
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 5 · 通用结构 — Vertical Pipeline 流程图
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;每张图按这个骨架组织:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;1.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**masthead**&lt;/span&gt; — eyebrow(▬ + Mono 大写)+ H1(serif 500,带 &lt;span style="color:#2aa198"&gt;`&amp;lt;em&amp;gt;`&lt;/span&gt; 斜体)+ lede(sans 16.5)+ meta strip(Mono 横条罗列关键技术栈)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;2.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**section header**&lt;/span&gt; — 序号(Mono / clay / 34px 宽)+ 标题(serif 27)+ count(灰胶囊)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;3.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**节点垂直流**&lt;/span&gt; — 每节点 = mono tag + serif title + sans sub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;4.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**节点间 vertical arrow**&lt;/span&gt; — strokeWidth=1, color=g500, 长度 ~42px
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;5.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**右侧 mono 注释**&lt;/span&gt; — 前置 24×1.5px clay 短横线 + Mono 11px 灰字
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;6.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**大型节点用 panel**&lt;/span&gt; — slate border,内嵌 4 列子模块网格,关键子模块用 clay border;子模块再下沉到深层硬件栈(深色块用 slate 背景 + ivory 文字)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;7.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**底部 legend**&lt;/span&gt; — 色彩与符号说明
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;8.&lt;/span&gt; &lt;span style="color:#d33682"&gt;**footer**&lt;/span&gt; — 衬线斜体格言 + 仓库链接
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;节点状态 mapping:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`entry`&lt;/span&gt; — bg=g100, border=slate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 普通 service — bg=transparent, border=slate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`accent`&lt;/span&gt;(关键路径) — border=clay
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`exit`&lt;/span&gt; — bg=oat, border=clay
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`dark`&lt;/span&gt;(硬件层) — bg=slate, 文字=ivory, 副=oat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 6 · Variant A — HTML 单文件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;CSS 起手必备:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```css
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:&lt;span style="color:#268bd2"&gt;root&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--ivory&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#FAF9F5&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--paper&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#FFFFFF&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--slate&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#141413&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--clay&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#D97757&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--clay-d&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#B85C3E&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--oat&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#E3DACC&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--olive&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#788C5D&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--g100&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#F0EEE6&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--g200&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#E6E3DA&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--g300&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#D1CFC5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--g500&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#87867F&lt;/span&gt;; &lt;span style="color:#268bd2"&gt;--g700&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;#3D3D3A&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--serif&lt;/span&gt;: &lt;span style="color:#268bd2"&gt;ui-serif&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;Georgia&lt;/span&gt;, &lt;span style="color:#859900;font-weight:bold"&gt;serif&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--sans&lt;/span&gt;: &lt;span style="color:#268bd2"&gt;system-ui&lt;/span&gt;, -&lt;span style="color:#268bd2"&gt;apple-system&lt;/span&gt;, &lt;span style="color:#859900;font-weight:bold"&gt;sans-serif&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;--mono&lt;/span&gt;: &lt;span style="color:#268bd2"&gt;ui-monospace&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;SF Mono&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;Menlo&lt;/span&gt;, &lt;span style="color:#859900;font-weight:bold"&gt;monospace&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2;font-weight:bold"&gt;body&lt;/span&gt;{ &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#859900;font-weight:bold"&gt;ivory&lt;/span&gt;); &lt;span style="color:#859900"&gt;color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;slate&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;font-family&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;sans&lt;/span&gt;); &lt;span style="color:#859900"&gt;line-height&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.55&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;wrap&lt;/span&gt;{ &lt;span style="color:#859900"&gt;max-width&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1120&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;margin&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;auto&lt;/span&gt;; &lt;span style="color:#859900"&gt;padding&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;32&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;140&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;eyebrow&lt;/span&gt;{ &lt;span style="color:#859900"&gt;font-family&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;mono&lt;/span&gt;); &lt;span style="color:#859900"&gt;font-size&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;12&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;letter-spacing&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;.12&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;em&lt;/span&gt;; &lt;span style="color:#859900"&gt;text-transform&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;uppercase&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;g500&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;eyebrow&lt;/span&gt;::&lt;span style="color:#268bd2"&gt;before&lt;/span&gt;{ &lt;span style="color:#859900"&gt;content&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;&amp;#34;&lt;/span&gt;; &lt;span style="color:#859900"&gt;display&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;inline-block&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;width&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;24&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;height&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.5&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;clay&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;margin-right&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;12&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;vertical-align&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;middle&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2;font-weight:bold"&gt;h1&lt;/span&gt;{ &lt;span style="color:#859900"&gt;font-family&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#859900;font-weight:bold"&gt;serif&lt;/span&gt;); &lt;span style="color:#859900"&gt;font-weight&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;500&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;font-size&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;clamp&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;38&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;, &lt;span style="color:#2aa198;font-weight:bold"&gt;5.4&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;vw&lt;/span&gt;, &lt;span style="color:#2aa198;font-weight:bold"&gt;62&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;letter-spacing&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;-0.018&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;em&lt;/span&gt;; &lt;span style="color:#859900"&gt;line-height&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.06&lt;/span&gt;; &lt;span style="color:#859900"&gt;max-width&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;17&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;ch&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2;font-weight:bold"&gt;h1&lt;/span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;em&lt;/span&gt;{ &lt;span style="color:#859900"&gt;font-style&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;italic&lt;/span&gt;; &lt;span style="color:#859900"&gt;color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;clay&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;节点卡片:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```css
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;node&lt;/span&gt;{ &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;paper&lt;/span&gt;); &lt;span style="color:#859900"&gt;border&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.5&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;solid&lt;/span&gt; &lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;g300&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;border-radius&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;14&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;padding&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;18&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;22&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;transition&lt;/span&gt;: &lt;span style="color:#859900"&gt;transform&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;150&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;ms&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;ease&lt;/span&gt;, &lt;span style="color:#859900"&gt;box-shadow&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;150&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;ms&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;ease&lt;/span&gt;, &lt;span style="color:#859900"&gt;border-color&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;150&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;ms&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;ease&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;node&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;hover&lt;/span&gt;{ &lt;span style="color:#859900"&gt;transform&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;translateY&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;-3&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;box-shadow&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;10&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;30&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt; &lt;span style="color:#cb4b16"&gt;rgba&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;20&lt;/span&gt;,&lt;span style="color:#2aa198;font-weight:bold"&gt;20&lt;/span&gt;,&lt;span style="color:#2aa198;font-weight:bold"&gt;19&lt;/span&gt;,&lt;span style="color:#2aa198;font-weight:bold"&gt;.10&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;border-color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;slate&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;node&lt;/span&gt;.&lt;span style="color:#cb4b16"&gt;accent&lt;/span&gt;{ &lt;span style="color:#859900"&gt;border-color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;clay&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;node&lt;/span&gt;.&lt;span style="color:#cb4b16"&gt;entry&lt;/span&gt; { &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;g100&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;node&lt;/span&gt;.&lt;span style="color:#cb4b16"&gt;exit&lt;/span&gt; { &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;oat&lt;/span&gt;); &lt;span style="color:#859900"&gt;border-color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;clay&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;annot&lt;/span&gt;{ &lt;span style="color:#859900"&gt;font-family&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;mono&lt;/span&gt;); &lt;span style="color:#859900"&gt;font-size&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;11.5&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;color&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;g500&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;display&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;flex&lt;/span&gt;; &lt;span style="color:#859900"&gt;align-items&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;center&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.&lt;span style="color:#cb4b16"&gt;annot&lt;/span&gt;::&lt;span style="color:#268bd2"&gt;before&lt;/span&gt;{ &lt;span style="color:#859900"&gt;content&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;&amp;#34;&lt;/span&gt;; &lt;span style="color:#859900"&gt;width&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;32&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; &lt;span style="color:#859900"&gt;height&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.5&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;background&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;var&lt;/span&gt;(--&lt;span style="color:#268bd2"&gt;clay&lt;/span&gt;); &lt;span style="color:#859900"&gt;margin-right&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;12&lt;/span&gt;&lt;span style="color:#859900;font-weight:bold"&gt;px&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;垂直箭头(SVG):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```html
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#268bd2;font-weight:bold"&gt;svg&lt;/span&gt; &lt;span style="color:#268bd2"&gt;width&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;14&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;height&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;46&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;viewBox&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;0 0 14 46&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#268bd2;font-weight:bold"&gt;line&lt;/span&gt; &lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;7&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;2&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;x2&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;7&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;y2&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;34&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;stroke&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#87867F&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;stroke-width&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;2.5&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;stroke-linecap&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;round&amp;#34;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;&lt;span style="color:#268bd2;font-weight:bold"&gt;polyline&lt;/span&gt; &lt;span style="color:#268bd2"&gt;points&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;2,32 7,42 12,32&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;fill&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;stroke&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#87867F&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;stroke-width&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;2.5&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;stroke-linecap&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;round&amp;#34;&lt;/span&gt; &lt;span style="color:#268bd2"&gt;stroke-linejoin&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;round&amp;#34;&lt;/span&gt;/&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/&lt;span style="color:#268bd2;font-weight:bold"&gt;svg&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 7 · Variant B — Excalidraw (.excalidraw)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;JSON 文件骨架:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```json
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;excalidraw&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;2&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;https://excalidraw.com&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;elements&amp;#34;&lt;/span&gt;: [...],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;appState&amp;#34;&lt;/span&gt;: { &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;gridSize&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;null&lt;/span&gt;, &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;viewBackgroundColor&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;#FAF9F5&amp;#34;&lt;/span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2;font-weight:bold"&gt;&amp;#34;files&amp;#34;&lt;/span&gt;: {}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;每个 element 必备字段:&lt;span style="color:#2aa198"&gt;`id, type, x, y, width, height, angle, strokeColor, backgroundColor, fillStyle, strokeWidth, strokeStyle, roughness, opacity, groupIds, frameId, roundness, seed, version, versionNonce, isDeleted, boundElements, updatedAt, link, locked`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;铁律:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; **&lt;span style="color:#2aa198"&gt;`roughness: 0`&lt;/span&gt;** 全画布禁用手绘抖动(学术风核心)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`strokeWidth: 1`&lt;/span&gt;(Excalidraw 没有 1.5)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 圆角矩形:&lt;span style="color:#2aa198"&gt;`&amp;#34;roundness&amp;#34;: {&amp;#34;type&amp;#34;: 3}`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`fillStyle: &amp;#34;solid&amp;#34;`&lt;/span&gt;(不用 hachure 斜线填充)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 字体: 统一使用 Comic Shanns 字体，font-family: 8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;推荐用 Python 脚本生成,因为 JSON 重复字段多。最小工厂:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```python
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#dc322f;font-weight:bold"&gt;import&lt;/span&gt; &lt;span style="color:#268bd2"&gt;json&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;time&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;random&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;random&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;seed&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;42&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;elements&lt;/span&gt; = []
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;def&lt;/span&gt; &lt;span style="color:#268bd2"&gt;base&lt;/span&gt;():
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;return&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;id&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;f&lt;/span&gt;&lt;span style="color:#2aa198"&gt;&amp;#34;id-&lt;/span&gt;&lt;span style="color:#2aa198"&gt;{&lt;/span&gt;&lt;span style="color:#268bd2"&gt;random&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;randint&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;10&lt;/span&gt;**&lt;span style="color:#2aa198;font-weight:bold"&gt;8&lt;/span&gt;, &lt;span style="color:#2aa198;font-weight:bold"&gt;10&lt;/span&gt;**&lt;span style="color:#2aa198;font-weight:bold"&gt;12&lt;/span&gt;)&lt;span style="color:#2aa198"&gt;}&lt;/span&gt;&lt;span style="color:#2aa198"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;angle&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeColor&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;#141413&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;backgroundColor&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;transparent&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;fillStyle&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;solid&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeWidth&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeStyle&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;solid&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;roughness&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;opacity&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;100&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;groupIds&amp;#34;&lt;/span&gt;: [], &lt;span style="color:#2aa198"&gt;&amp;#34;frameId&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;roundness&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;seed&amp;#34;&lt;/span&gt;: &lt;span style="color:#268bd2"&gt;random&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;randint&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#2aa198;font-weight:bold"&gt;10&lt;/span&gt;**&lt;span style="color:#2aa198;font-weight:bold"&gt;9&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;versionNonce&amp;#34;&lt;/span&gt;: &lt;span style="color:#268bd2"&gt;random&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;randint&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#2aa198;font-weight:bold"&gt;10&lt;/span&gt;**&lt;span style="color:#2aa198;font-weight:bold"&gt;9&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;isDeleted&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;False&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;boundElements&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;updatedAt&amp;#34;&lt;/span&gt;: &lt;span style="color:#cb4b16"&gt;int&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;time&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;time&lt;/span&gt;() * &lt;span style="color:#2aa198;font-weight:bold"&gt;1000&lt;/span&gt;), &lt;span style="color:#2aa198"&gt;&amp;#34;link&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;locked&amp;#34;&lt;/span&gt;: &lt;span style="color:#859900;font-weight:bold"&gt;False&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;def&lt;/span&gt; &lt;span style="color:#268bd2"&gt;rect&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;x&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;w&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;h&lt;/span&gt;, *, &lt;span style="color:#268bd2"&gt;stroke&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#141413&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;bg&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;transparent&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;rounded&lt;/span&gt;=&lt;span style="color:#859900;font-weight:bold"&gt;True&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;base&lt;/span&gt;(); &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;update&lt;/span&gt;({&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;rectangle&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;x&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;y&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;width&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;w&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;height&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;h&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;strokeColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;stroke&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;backgroundColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;bg&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeWidth&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;roundness&amp;#34;&lt;/span&gt;: {&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;3&lt;/span&gt;} &lt;span style="color:#859900"&gt;if&lt;/span&gt; &lt;span style="color:#268bd2"&gt;rounded&lt;/span&gt; &lt;span style="color:#859900"&gt;else&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;elements&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;append&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;el&lt;/span&gt;); &lt;span style="color:#859900"&gt;return&lt;/span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;def&lt;/span&gt; &lt;span style="color:#268bd2"&gt;text&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;x&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;content&lt;/span&gt;, *, &lt;span style="color:#268bd2"&gt;size&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;14&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;font&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;2&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;color&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#141413&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;w&lt;/span&gt;=&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;align&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;left&amp;#34;&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#859900"&gt;if&lt;/span&gt; &lt;span style="color:#268bd2"&gt;w&lt;/span&gt; &lt;span style="color:#859900"&gt;is&lt;/span&gt; &lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;cn&lt;/span&gt; = &lt;span style="color:#cb4b16"&gt;sum&lt;/span&gt;(&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt; &lt;span style="color:#859900"&gt;for&lt;/span&gt; &lt;span style="color:#268bd2"&gt;c&lt;/span&gt; &lt;span style="color:#859900"&gt;in&lt;/span&gt; &lt;span style="color:#268bd2"&gt;content&lt;/span&gt; &lt;span style="color:#859900"&gt;if&lt;/span&gt; &lt;span style="color:#cb4b16"&gt;ord&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;c&lt;/span&gt;) &amp;gt; &lt;span style="color:#2aa198;font-weight:bold"&gt;127&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;w&lt;/span&gt; = &lt;span style="color:#cb4b16"&gt;int&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;cn&lt;/span&gt;*&lt;span style="color:#268bd2"&gt;size&lt;/span&gt; + (&lt;span style="color:#cb4b16"&gt;len&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;content&lt;/span&gt;)-&lt;span style="color:#268bd2"&gt;cn&lt;/span&gt;)*&lt;span style="color:#268bd2"&gt;size&lt;/span&gt;*&lt;span style="color:#2aa198;font-weight:bold"&gt;0.55&lt;/span&gt;) + &lt;span style="color:#2aa198;font-weight:bold"&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;base&lt;/span&gt;(); &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;update&lt;/span&gt;({&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;x&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;y&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;width&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;w&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;height&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;int&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;size&lt;/span&gt;*&lt;span style="color:#2aa198;font-weight:bold"&gt;1.25&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;content&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;fontSize&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;size&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;fontFamily&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;font&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;textAlign&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;align&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;verticalAlign&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;top&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;containerId&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;originalText&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;content&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;lineHeight&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;1.25&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;baseline&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;int&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;size&lt;/span&gt;*&lt;span style="color:#2aa198;font-weight:bold"&gt;0.9&lt;/span&gt;), &lt;span style="color:#2aa198"&gt;&amp;#34;strokeColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;color&lt;/span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;elements&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;append&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;el&lt;/span&gt;); &lt;span style="color:#859900"&gt;return&lt;/span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;def&lt;/span&gt; &lt;span style="color:#268bd2"&gt;arrow&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;x2&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y2&lt;/span&gt;, *, &lt;span style="color:#268bd2"&gt;color&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#87867F&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;dy&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;x2&lt;/span&gt;-&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y2&lt;/span&gt;-&lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;base&lt;/span&gt;(); &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;update&lt;/span&gt;({&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;arrow&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;width&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;max&lt;/span&gt;(&lt;span style="color:#cb4b16"&gt;abs&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;),&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;), &lt;span style="color:#2aa198"&gt;&amp;#34;height&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;max&lt;/span&gt;(&lt;span style="color:#cb4b16"&gt;abs&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;dy&lt;/span&gt;),&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;points&amp;#34;&lt;/span&gt;:[[&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;,&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;],[&lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;,&lt;span style="color:#268bd2"&gt;dy&lt;/span&gt;]], &lt;span style="color:#2aa198"&gt;&amp;#34;lastCommittedPoint&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;startBinding&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;endBinding&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;startArrowhead&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;endArrowhead&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;arrow&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;strokeColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;color&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeWidth&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;elements&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;append&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;el&lt;/span&gt;); &lt;span style="color:#859900"&gt;return&lt;/span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;def&lt;/span&gt; &lt;span style="color:#268bd2"&gt;line&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;x2&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y2&lt;/span&gt;, *, &lt;span style="color:#268bd2"&gt;color&lt;/span&gt;=&lt;span style="color:#2aa198"&gt;&amp;#34;#87867F&amp;#34;&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;dashed&lt;/span&gt;=&lt;span style="color:#859900;font-weight:bold"&gt;False&lt;/span&gt;):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;dy&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;x2&lt;/span&gt;-&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;y2&lt;/span&gt;-&lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt; = &lt;span style="color:#268bd2"&gt;base&lt;/span&gt;(); &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;update&lt;/span&gt;({&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;line&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;x1&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;y&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;y1&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;width&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;max&lt;/span&gt;(&lt;span style="color:#cb4b16"&gt;abs&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;),&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;), &lt;span style="color:#2aa198"&gt;&amp;#34;height&amp;#34;&lt;/span&gt;:&lt;span style="color:#cb4b16"&gt;max&lt;/span&gt;(&lt;span style="color:#cb4b16"&gt;abs&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;dy&lt;/span&gt;),&lt;span style="color:#2aa198;font-weight:bold"&gt;1&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;points&amp;#34;&lt;/span&gt;:[[&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;,&lt;span style="color:#2aa198;font-weight:bold"&gt;0&lt;/span&gt;],[&lt;span style="color:#268bd2"&gt;dx&lt;/span&gt;,&lt;span style="color:#268bd2"&gt;dy&lt;/span&gt;]], &lt;span style="color:#2aa198"&gt;&amp;#34;lastCommittedPoint&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;startBinding&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;endBinding&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;startArrowhead&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;endArrowhead&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;strokeColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;color&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;strokeWidth&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;sw&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;strokeStyle&amp;#34;&lt;/span&gt;: &lt;span style="color:#2aa198"&gt;&amp;#34;dashed&amp;#34;&lt;/span&gt; &lt;span style="color:#859900"&gt;if&lt;/span&gt; &lt;span style="color:#268bd2"&gt;dashed&lt;/span&gt; &lt;span style="color:#859900"&gt;else&lt;/span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;solid&amp;#34;&lt;/span&gt;})
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#268bd2"&gt;elements&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;append&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;el&lt;/span&gt;); &lt;span style="color:#859900"&gt;return&lt;/span&gt; &lt;span style="color:#268bd2"&gt;el&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#93a1a1;font-style:italic"&gt;# ... 调用 rect/text/arrow 组装画布,最后:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;data&lt;/span&gt; = {&lt;span style="color:#2aa198"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;excalidraw&amp;#34;&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198;font-weight:bold"&gt;2&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;https://excalidraw.com&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;elements&amp;#34;&lt;/span&gt;:&lt;span style="color:#268bd2"&gt;elements&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;appState&amp;#34;&lt;/span&gt;:{&lt;span style="color:#2aa198"&gt;&amp;#34;gridSize&amp;#34;&lt;/span&gt;:&lt;span style="color:#859900;font-weight:bold"&gt;None&lt;/span&gt;, &lt;span style="color:#2aa198"&gt;&amp;#34;viewBackgroundColor&amp;#34;&lt;/span&gt;:&lt;span style="color:#2aa198"&gt;&amp;#34;#FAF9F5&amp;#34;&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#2aa198"&gt;&amp;#34;files&amp;#34;&lt;/span&gt;:{}}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#268bd2"&gt;json&lt;/span&gt;.&lt;span style="color:#268bd2"&gt;dump&lt;/span&gt;(&lt;span style="color:#268bd2"&gt;data&lt;/span&gt;, &lt;span style="color:#cb4b16"&gt;open&lt;/span&gt;(&lt;span style="color:#2aa198"&gt;&amp;#34;out.excalidraw&amp;#34;&lt;/span&gt;,&lt;span style="color:#2aa198"&gt;&amp;#34;w&amp;#34;&lt;/span&gt;), &lt;span style="color:#268bd2"&gt;ensure_ascii&lt;/span&gt;=&lt;span style="color:#859900;font-weight:bold"&gt;False&lt;/span&gt;, &lt;span style="color:#268bd2"&gt;indent&lt;/span&gt;=&lt;span style="color:#2aa198;font-weight:bold"&gt;2&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#2aa198"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;布局参考(垂直流程图):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 主轴中心 X = 700,卡片宽 380,普通节点高 78
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 节点之间 arrow 长度 42
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 大面板宽 540~560,内嵌 4 列子模块(每个 ~120 宽,gap 12)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 大面板的&amp;#34;04 · ENGINE&amp;#34;标签:在 border 上浮一个 IVORY 背景的小矩形 + clay Mono 文字
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 右侧详细注释面板 X = 主面板右边缘 + 60,宽 320
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 注释条目格式:Mono clay 小标题(&lt;span style="color:#2aa198"&gt;`§ NN · 主题`&lt;/span&gt;)+ sans g700 多行正文
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 8 · Variant C — SVG 缩略图
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;放在卡片缩略图区(.thumb,132px 高,灰底)。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;约定:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`stroke-width: 2.5`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`stroke-linecap: round`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 圆角 &lt;span style="color:#2aa198"&gt;`rx=&amp;#34;4&amp;#34;`&lt;/span&gt; 或 &lt;span style="color:#2aa198"&gt;`5`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 一张图只用 3–5 个色阶,clay 占比 &amp;lt; 20%
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 几何元素:&lt;span style="color:#2aa198"&gt;`&amp;lt;rect&amp;gt;`&lt;/span&gt;、&lt;span style="color:#2aa198"&gt;`&amp;lt;circle&amp;gt;`&lt;/span&gt;、&lt;span style="color:#2aa198"&gt;`&amp;lt;line&amp;gt;`&lt;/span&gt;,**不画曲线**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;class 命名:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`.st`&lt;/span&gt; 描边 (g500) / &lt;span style="color:#2aa198"&gt;`.fl`&lt;/span&gt; 填充 (g300) / &lt;span style="color:#2aa198"&gt;`.cl`&lt;/span&gt; clay 填充 / &lt;span style="color:#2aa198"&gt;`.ol`&lt;/span&gt; olive 填充
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`.oa`&lt;/span&gt; oat 填充 + g500 描边 / &lt;span style="color:#2aa198"&gt;`.sl`&lt;/span&gt; slate 填充 / &lt;span style="color:#2aa198"&gt;`.wh`&lt;/span&gt; 白填充 + g500 描边
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; &lt;span style="color:#2aa198"&gt;`.ln`&lt;/span&gt; 灰线 / &lt;span style="color:#2aa198"&gt;`.lc`&lt;/span&gt; clay 线 / &lt;span style="color:#2aa198"&gt;`.da`&lt;/span&gt; 虚线 (dasharray 4 4)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 9 · 输出前自检 Checklist
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;每张图都必须满足:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;1.&lt;/span&gt; ☐ 背景 &lt;span style="color:#2aa198"&gt;`#FAF9F5`&lt;/span&gt; 米白,**不用纯白**
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;2.&lt;/span&gt; ☐ 强调色只有 &lt;span style="color:#2aa198"&gt;`#D97757`&lt;/span&gt; 粘土橙,占比 &amp;lt; 20%,无第二亮色
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;3.&lt;/span&gt; ☐ 大标题用 serif(Excalidraw 例外:Helvetica 大字号 字重 500)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;4.&lt;/span&gt; ☐ Mono 标签全部大写 + 宽字距(eyebrow / 序号 / 文件名 / 注释)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;5.&lt;/span&gt; ☐ 章节缩进 50px(标题不缩,正文与卡片缩)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;6.&lt;/span&gt; ☐ 描边 1.5px(HTML)/ 1px(Excalidraw),圆角 10–14px
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;7.&lt;/span&gt; ☐ 没有阴影泛滥(只在 hover 时柔和阴影)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;8.&lt;/span&gt; ☐ 没有冷灰(灰一律带土黄底)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;9.&lt;/span&gt; ☐ Hover 只动 150ms(translateY(-3px) + 颜色 + 阴影)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;10.&lt;/span&gt; ☐ 大量留白(下边距 ≥ 100px,章节间距 72px)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;11.&lt;/span&gt; ☐ Excalidraw 必须 &lt;span style="color:#2aa198"&gt;`roughness: 0`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;12.&lt;/span&gt; ☐ 大量中文标注时,字号略放大,行高 ≥ 1.5,留白略多
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#d33682"&gt;## 10 · 命名与产物建议
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; HTML:&lt;span style="color:#2aa198"&gt;`{topic}-pipeline.html`&lt;/span&gt; / &lt;span style="color:#2aa198"&gt;`{topic}-architecture.html`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; Excalidraw:&lt;span style="color:#2aa198"&gt;`{topic}.excalidraw`&lt;/span&gt;(中文文件名也支持)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;-&lt;/span&gt; 生成脚本:&lt;span style="color:#2aa198"&gt;`gen_{topic}.py`&lt;/span&gt;,参数化坐标 / 文字 / 配色,便于反复调整
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#859900"&gt;&amp;gt; &lt;/span&gt;&lt;span style="color:#d33682"&gt;这套设计的精神:把&amp;#34;信息&amp;#34;当作&amp;#34;印刷品&amp;#34;,而不是&amp;#34;界面&amp;#34;。少即是多,但少不是空 — 是经过裁剪的丰富。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>claude code plugin 实验</title><link>https://blog.ans20xx.com/posts/tools/claude-code-plugin/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claude-code-plugin/</guid><description>&lt;h1 id="-实验前假设与目标-plan"&gt;🎯 实验前：假设与目标 (Plan)&lt;/h1&gt;
&lt;p&gt;开发一个 Plugin 给 Claude Code 使用。&lt;/p&gt;</description></item><item><title>OpenSpec 实验</title><link>https://blog.ans20xx.com/posts/tools/openspec/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/openspec/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：OpenSpec 实验&lt;/p&gt;</description></item><item><title>OpenClaw 原理</title><link>https://blog.ans20xx.com/posts/tools/openclaw-%E5%8E%9F%E7%90%86/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/openclaw-%E5%8E%9F%E7%90%86/</guid><description>&lt;h1 id="1-学习主题"&gt;1. 学习主题&lt;/h1&gt;
&lt;p&gt;我要学习的内容：
OpenClaw 原理&lt;/p&gt;
&lt;p&gt;我为什么要学它：
（写清楚用途、场景、目标，比如面试、项目、论文、考试）&lt;/p&gt;</description></item><item><title>查看 OpenClaw 的 memory 系统</title><link>https://blog.ans20xx.com/posts/tools/%E6%9F%A5%E7%9C%8Bopenclaw%E7%9A%84memory%E7%B3%BB%E7%BB%9F/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/%E6%9F%A5%E7%9C%8Bopenclaw%E7%9A%84memory%E7%B3%BB%E7%BB%9F/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：例如：查看 OpenClaw 的 Memory 系统&lt;/p&gt;</description></item><item><title>可参考的ClaudeCode Skills</title><link>https://blog.ans20xx.com/posts/tools/%E5%8F%AF%E5%8F%82%E8%80%83%E7%9A%84claudeskills/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/%E5%8F%AF%E5%8F%82%E8%80%83%E7%9A%84claudeskills/</guid><description>&lt;h1 id="grill-me"&gt;/grill-me&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;不断修改计划细节&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#586e75;background-color:#eee8d5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-md" data-lang="md"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;name: grill-me
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions &amp;#34;grill me&amp;#34;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;If a question can be answered by exploring the codebase, explore the codebase instead.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h1 id="write-a-prd"&gt;/write-a-prd&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;将对话转化为产品稿子&lt;/p&gt;</description></item><item><title>Claude Code 规划模式实验</title><link>https://blog.ans20xx.com/posts/tools/claude-code-%E8%A7%84%E5%88%92%E6%A8%A1%E5%BC%8F%E5%AE%9E%E9%AA%8C/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claude-code-%E8%A7%84%E5%88%92%E6%A8%A1%E5%BC%8F%E5%AE%9E%E9%AA%8C/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：Claude Code 规划模式实验&lt;/p&gt;</description></item><item><title>claude sub agent 实验</title><link>https://blog.ans20xx.com/posts/tools/claude-subagent%E5%AE%9E%E9%AA%8C/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claude-subagent%E5%AE%9E%E9%AA%8C/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：例如：Claude sub agent 实验&lt;/p&gt;</description></item><item><title>claude-code-mcp实验</title><link>https://blog.ans20xx.com/posts/tools/claude-code-mcp%E5%AE%9E%E9%AA%8C/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claude-code-mcp%E5%AE%9E%E9%AA%8C/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：例如：claude-code-mcp实验&lt;/p&gt;</description></item><item><title>openclaw identity 和 soul 实验</title><link>https://blog.ans20xx.com/posts/tools/openclaw-identity-soul/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/openclaw-identity-soul/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：例如：openclaw identity 和 soul 实验&lt;/p&gt;</description></item><item><title>【Anthropic】让 ClaudeCode 更加安全和隐私</title><link>https://blog.ans20xx.com/posts/tools/%E8%AE%A9claudecode%E6%9B%B4%E5%8A%A0%E5%AE%89%E5%85%A8%E5%92%8C%E9%9A%90%E7%A7%81/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/%E8%AE%A9claudecode%E6%9B%B4%E5%8A%A0%E5%AE%89%E5%85%A8%E5%92%8C%E9%9A%90%E7%A7%81/</guid><description>&lt;h1 id="1-学习主题"&gt;1. 学习主题&lt;/h1&gt;
&lt;p&gt;我要学习的内容：
Claude Code 的沙箱是如何实现的。&lt;/p&gt;</description></item><item><title>【Anthropic】使用 MCP 进行 Code 执行</title><link>https://blog.ans20xx.com/posts/tools/%E4%BD%BF%E7%94%A8mcp%E8%BF%9B%E8%A1%8Ccode%E6%89%A7%E8%A1%8C/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/%E4%BD%BF%E7%94%A8mcp%E8%BF%9B%E8%A1%8Ccode%E6%89%A7%E8%A1%8C/</guid><description>&lt;h1 id="1-学习主题"&gt;1. 学习主题&lt;/h1&gt;
&lt;h2 id="我要学习的内容"&gt;我要学习的内容：&lt;/h2&gt;
&lt;h2 id="我为什么要学它"&gt;我为什么要学它：&lt;/h2&gt;
&lt;h2 id="我希望达到的程度"&gt;我希望达到的程度：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled="" type="checkbox"&gt; 了解基本概念&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;input disabled="" type="checkbox"&gt; 能向别人讲清楚&lt;/p&gt;</description></item><item><title>CLAUDE SKILL 实验</title><link>https://blog.ans20xx.com/posts/tools/claudeskill%E5%AE%9E%E9%AA%8C/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claudeskill%E5%AE%9E%E9%AA%8C/</guid><description>&lt;h1 id="实验元数据-meta-data"&gt;实验元数据 (Meta Data)&lt;/h1&gt;
&lt;p&gt;用于日后检索和归档，建立知识索引。&lt;/p&gt;
&lt;p&gt;实验编号/标题：例如：CLAUDE SKILL 实验&lt;/p&gt;</description></item><item><title>Claude Skills</title><link>https://blog.ans20xx.com/posts/tools/claudeskills/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claudeskills/</guid><description>&lt;h1 id="1-学习主题"&gt;1. 学习主题&lt;/h1&gt;
&lt;p&gt;我要学习的内容：&lt;/p&gt;
&lt;p&gt;Claude Skills&lt;/p&gt;
&lt;p&gt;我为什么要学它：&lt;/p&gt;</description></item><item><title>ClaudeCode Skill 的实现</title><link>https://blog.ans20xx.com/posts/tools/claudecodeskill/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.ans20xx.com/posts/tools/claudecodeskill/</guid><description>&lt;h1 id="claudecode-skill-的实现"&gt;ClaudeCode Skill 的实现&lt;/h1&gt;
&lt;h2 id="1-学习主题"&gt;1. 学习主题&lt;/h2&gt;
&lt;p&gt;我要学习的内容：
ClaudeCode Skill 如何实现的&lt;/p&gt;</description></item></channel></rss>