feat(scrapbook): 更新 scrapbook 模板

This commit is contained in:
SXP-Simon
2026-01-07 16:50:29 +08:00
parent 251eb2ca0d
commit 4b4f4545db
3 changed files with 334 additions and 204 deletions
+8
View File
@@ -5,3 +5,11 @@
src/analysis/ARCHITECTURE.md
.serena/.gitignore
.serena/project.yml
debug_output.html
src/models/__pycache__/__init__.cpython-312.pyc
src/models/__pycache__/data_models.cpython-312.pyc
src/reports/__pycache__/__init__.cpython-312.pyc
src/reports/__pycache__/generators.cpython-312.pyc
src/reports/__pycache__/templates.cpython-312.pyc
src/visualization/__pycache__/__init__.cpython-312.pyc
src/visualization/__pycache__/activity_charts.cpython-312.pyc
@@ -77,6 +77,29 @@
max-width: 1000px;
margin: 0 auto;
position: relative;
background: #fff;
border: 2px solid var(--ink-primary);
border-radius: 20px;
padding: 40px;
/* Stacked "Paper" Effect: Blue Shadow -> Pink Shadow -> Soft Drop Shadow */
box-shadow:
8px 8px 0 var(--color-blue),
16px 16px 0 var(--color-pink),
0 20px 40px rgba(0, 0, 0, 0.1);
}
/* Stitching Effect */
.container::before {
content: "";
position: absolute;
top: 12px;
bottom: 12px;
left: 12px;
right: 12px;
border: 2px dashed var(--ink-secondary);
border-radius: 15px;
pointer-events: none;
opacity: 0.5;
}
/* ==================== 1. 头部设计 ==================== */
@@ -134,43 +157,57 @@
}
/* ==================== 2. 统计邮票 ==================== */
.stats-row {
/* ==================== 2. 统计区域 (新版) ==================== */
.stats-wrapper {
display: flex;
justify-content: center;
gap: 30px;
gap: 25px;
margin-bottom: 40px;
flex-wrap: wrap;
align-items: stretch;
}
.stats-grid {
flex: 2;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
.stamp {
width: 150px;
width: 100%;
height: 100%;
background: #fff;
padding: 10px;
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.05);
/* 邮票齿孔背景 */
background-image: radial-gradient(transparent 50%, #fff 51%);
background-size: 10px 10px;
background-position: -5px -5px;
padding: 15px;
box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.1);
border: 2px solid var(--ink-primary);
border-radius: 12px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
transition: transform 0.3s;
border: 1px solid #eee;
justify-content: center;
transition: transform 0.2s;
}
/* 装饰性背景纹理 */
.stamp::after {
content: "";
position: absolute;
top: 5px;
bottom: 5px;
left: 5px;
right: 5px;
border: 1px dotted #e0e0e0;
border-radius: 8px;
pointer-events: none;
}
.stamp:hover {
transform: scale(1.1) rotate(0deg) !important;
z-index: 10;
transform: translateY(-2px);
}
.stamp-inner {
border: 1px solid var(--ink-secondary);
width: 100%;
padding: 15px 0;
display: flex;
flex-direction: column;
align-items: center;
background: radial-gradient(circle, #fff 50%, #fafafa 100%);
text-align: center;
z-index: 1;
}
.stamp-num {
@@ -255,18 +292,21 @@
}
/* ==================== 4. 活跃时段 ==================== */
/* ==================== 4. 活跃时段 (新版) ==================== */
.highlight-section {
grid-column: span 5;
flex: 1;
background: var(--color-yellow);
padding: 30px;
transform: rotate(2deg);
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.1);
padding: 20px;
border: 2px solid var(--ink-primary);
border-radius: 20px;
box-shadow: 6px 6px 0 var(--color-pink);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
position: relative;
background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 10px, transparent 10px, transparent 20px);
}
.tape-top {
@@ -386,42 +426,59 @@
.user-card {
break-inside: avoid;
background: #fff;
border: 2px solid #e0e0e0;
border-radius: 12px;
padding: 20px;
margin-bottom: 25px;
box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.05);
border: 2px solid var(--ink-primary);
border-radius: 16px;
padding: 24px;
margin-bottom: 30px;
/* Muted Blue-Grey Shadow */
box-shadow: 6px 6px 0 rgba(70, 80, 100, 0.15), 6px 6px 0 1px var(--ink-primary);
position: relative;
display: flex;
flex-direction: column;
transition: transform 0.2s;
/* Very subtle grain */
background-color: #fff;
background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
}
.user-card:hover {
transform: translateY(-3px);
transform: translateY(-4px) rotate(1deg);
z-index: 5;
border-color: var(--ink-primary);
box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.15), 8px 8px 0 2px var(--ink-primary);
}
.card-tape {
position: absolute;
top: -10px;
top: -12px;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 18px;
background: var(--color-blue);
opacity: 0.9;
transform: translateX(-50%) rotate(-2deg);
width: 80px;
height: 24px;
background: rgba(255, 255, 255, 0.4);
/* Fallback */
background-color: var(--color-blue);
opacity: 0.8;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
/* Jagged edges for tape look */
mask-image: linear-gradient(135deg, transparent 5px, black 0) top left, linear-gradient(-135deg, transparent 5px, black 0) top right, linear-gradient(45deg, transparent 5px, black 0) bottom left, linear-gradient(-45deg, transparent 5px, black 0) bottom right;
mask-size: 51% 51%;
mask-repeat: no-repeat;
-webkit-mask-image: radial-gradient(circle at 2px 2px, transparent 2px, black 2.5px);
-webkit-mask-size: 100% 100%;
/* Simplify mask for compatibility */
/* Simpler tape look since masks can be tricky across renderers */
border-left: 2px dashed rgba(255, 255, 255, 0.3);
border-right: 2px dashed rgba(255, 255, 255, 0.3);
}
.user-card:nth-child(2n) .card-tape {
background: var(--color-pink);
transform: rotate(2deg);
background-color: var(--color-pink);
transform: translateX(-50%) rotate(3deg);
}
.user-card:nth-child(3n) .card-tape {
background: var(--color-green);
transform: rotate(-2deg);
background-color: var(--color-green);
transform: translateX(-50%) rotate(-1deg);
}
.user-header {
@@ -494,16 +551,24 @@
.u-reason {
font-family: var(--font-hand);
font-size: 0.95rem;
color: #555;
font-size: 1.05rem;
color: #444;
line-height: 1.6;
text-align: justify;
background: #fafafa;
padding: 12px;
border-radius: 8px;
/* Quote Block Style */
background: #f8fbff;
border-left: 4px solid var(--color-blue);
padding: 12px 15px;
margin-top: 15px;
border-radius: 4px;
position: relative;
}
.u-reason::before {
content: "";
/* Removed big quote mark to clean up */
}
/* ==================== 7. 每日回响 ==================== */
.quotes-section {
grid-column: span 12;
@@ -704,15 +769,13 @@
</div>
<!-- 2. 统计邮票和活跃时段 -->
<div class="grid-layout" style="margin-bottom: 40px;">
<!-- 统计邮票 -->
<div class="stats-section" style="grid-column: span 8;">
<div class="stats-row">
<div class="stamp" style="transform: rotate(-2deg);">
<div class="stamp-inner">
<div class="stats-wrapper">
<!-- Left: Stats Grid (2x2) -->
<div class="stats-grid">
<!-- Chat Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--accent-orange);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--accent-orange);" viewBox="0 0 24 24">
<path
d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z" />
</svg>
@@ -720,11 +783,10 @@
<div class="stamp-label">消息总数</div>
</div>
</div>
<div class="stamp" style="transform: rotate(2deg); margin-top: 10px;">
<div class="stamp-inner">
<!-- Users Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-green);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-green);" viewBox="0 0 24 24">
<path
d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z" />
</svg>
@@ -732,23 +794,21 @@
<div class="stamp-label">参与人数</div>
</div>
</div>
<div class="stamp" style="transform: rotate(-1deg);">
<!-- Emoji Icon -->
<div class="stamp">
<div class="stamp-inner">
<!-- Image Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-blue);"
viewBox="0 0 24 24">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-blue);" viewBox="0 0 24 24">
<path
d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z" />
d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z" />
</svg>
<div class="stamp-num">{{emoji_count}}</div>
<div class="stamp-label">表情统计</div>
</div>
</div>
<div class="stamp" style="transform: rotate(3deg); margin-top: 5px;">
<div class="stamp-inner">
<!-- Text Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-purple);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-purple);" viewBox="0 0 24 24">
<path
d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z" />
</svg>
@@ -757,13 +817,14 @@
</div>
</div>
</div>
</div>
<!-- 活跃时段 -->
<div class="highlight-section" style="grid-column: span 4;">
<div class="tape-top"></div>
<div style="font-family: var(--font-hand); font-size: 1.6rem; color: var(--ink-secondary);">✨ Highlight
Time</div>
<!-- Highlight Time -->
<div class="highlight-section">
<div class="tape-top" style="background: rgba(255,255,255,0.6);"></div>
<div
style="font-family: var(--font-hand); font-size: 1.5rem; color: var(--ink-secondary); margin-bottom: 5px;">
✨ Highlight Time
</div>
<div class="time-big">{{most_active_period}}</div>
<div class="time-desc">(此刻,世界色彩斑斓)</div>
</div>
+137 -76
View File
@@ -77,6 +77,29 @@
max-width: 1000px;
margin: 0 auto;
position: relative;
background: #fff;
border: 2px solid var(--ink-primary);
border-radius: 20px;
padding: 40px;
/* Stacked "Paper" Effect: Blue Shadow -> Pink Shadow -> Soft Drop Shadow */
box-shadow:
8px 8px 0 var(--color-blue),
16px 16px 0 var(--color-pink),
0 20px 40px rgba(0, 0, 0, 0.1);
}
/* Stitching Effect */
.container::before {
content: "";
position: absolute;
top: 12px;
bottom: 12px;
left: 12px;
right: 12px;
border: 2px dashed var(--ink-secondary);
border-radius: 15px;
pointer-events: none;
opacity: 0.5;
}
/* ==================== 1. 头部设计 ==================== */
@@ -134,43 +157,57 @@
}
/* ==================== 2. 统计邮票 ==================== */
.stats-row {
/* ==================== 2. 统计区域 (新版) ==================== */
.stats-wrapper {
display: flex;
justify-content: center;
gap: 30px;
gap: 25px;
margin-bottom: 40px;
flex-wrap: wrap;
align-items: stretch;
}
.stats-grid {
flex: 2;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
.stamp {
width: 150px;
width: 100%;
height: 100%;
background: #fff;
padding: 10px;
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.05);
/* 邮票齿孔背景 */
background-image: radial-gradient(transparent 50%, #fff 51%);
background-size: 10px 10px;
background-position: -5px -5px;
padding: 15px;
box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.1);
border: 2px solid var(--ink-primary);
border-radius: 12px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
transition: transform 0.3s;
border: 1px solid #eee;
justify-content: center;
transition: transform 0.2s;
}
/* 装饰性背景纹理 */
.stamp::after {
content: "";
position: absolute;
top: 5px;
bottom: 5px;
left: 5px;
right: 5px;
border: 1px dotted #e0e0e0;
border-radius: 8px;
pointer-events: none;
}
.stamp:hover {
transform: scale(1.1) rotate(0deg) !important;
z-index: 10;
transform: translateY(-2px);
}
.stamp-inner {
border: 1px solid var(--ink-secondary);
width: 100%;
padding: 15px 0;
display: flex;
flex-direction: column;
align-items: center;
background: radial-gradient(circle, #fff 50%, #fafafa 100%);
text-align: center;
z-index: 1;
}
.stamp-num {
@@ -255,18 +292,21 @@
}
/* ==================== 4. 活跃时段 ==================== */
/* ==================== 4. 活跃时段 (新版) ==================== */
.highlight-section {
grid-column: span 5;
flex: 1;
background: var(--color-yellow);
padding: 30px;
transform: rotate(2deg);
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.1);
padding: 20px;
border: 2px solid var(--ink-primary);
border-radius: 20px;
box-shadow: 6px 6px 0 var(--color-pink);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
position: relative;
background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 10px, transparent 10px, transparent 20px);
}
.tape-top {
@@ -386,42 +426,59 @@
.user-card {
break-inside: avoid;
background: #fff;
border: 2px solid #e0e0e0;
border-radius: 12px;
padding: 20px;
margin-bottom: 25px;
box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.05);
border: 2px solid var(--ink-primary);
border-radius: 16px;
padding: 24px;
margin-bottom: 30px;
/* Muted Blue-Grey Shadow */
box-shadow: 6px 6px 0 rgba(70, 80, 100, 0.15), 6px 6px 0 1px var(--ink-primary);
position: relative;
display: flex;
flex-direction: column;
transition: transform 0.2s;
/* Very subtle grain */
background-color: #fff;
background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
}
.user-card:hover {
transform: translateY(-3px);
transform: translateY(-4px) rotate(1deg);
z-index: 5;
border-color: var(--ink-primary);
box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.15), 8px 8px 0 2px var(--ink-primary);
}
.card-tape {
position: absolute;
top: -10px;
top: -12px;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 18px;
background: var(--color-blue);
opacity: 0.9;
transform: translateX(-50%) rotate(-2deg);
width: 80px;
height: 24px;
background: rgba(255, 255, 255, 0.4);
/* Fallback */
background-color: var(--color-blue);
opacity: 0.8;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
/* Jagged edges for tape look */
mask-image: linear-gradient(135deg, transparent 5px, black 0) top left, linear-gradient(-135deg, transparent 5px, black 0) top right, linear-gradient(45deg, transparent 5px, black 0) bottom left, linear-gradient(-45deg, transparent 5px, black 0) bottom right;
mask-size: 51% 51%;
mask-repeat: no-repeat;
-webkit-mask-image: radial-gradient(circle at 2px 2px, transparent 2px, black 2.5px);
-webkit-mask-size: 100% 100%;
/* Simplify mask for compatibility */
/* Simpler tape look since masks can be tricky across renderers */
border-left: 2px dashed rgba(255, 255, 255, 0.3);
border-right: 2px dashed rgba(255, 255, 255, 0.3);
}
.user-card:nth-child(2n) .card-tape {
background: var(--color-pink);
transform: rotate(2deg);
background-color: var(--color-pink);
transform: translateX(-50%) rotate(3deg);
}
.user-card:nth-child(3n) .card-tape {
background: var(--color-green);
transform: rotate(-2deg);
background-color: var(--color-green);
transform: translateX(-50%) rotate(-1deg);
}
.user-header {
@@ -494,16 +551,24 @@
.u-reason {
font-family: var(--font-hand);
font-size: 0.95rem;
color: #555;
font-size: 1.05rem;
color: #444;
line-height: 1.6;
text-align: justify;
background: #fafafa;
padding: 12px;
border-radius: 8px;
/* Quote Block Style */
background: #f8fbff;
border-left: 4px solid var(--color-blue);
padding: 12px 15px;
margin-top: 15px;
border-radius: 4px;
position: relative;
}
.u-reason::before {
content: "";
/* Removed big quote mark to clean up */
}
/* ==================== 7. 每日回响 ==================== */
.quotes-section {
grid-column: span 12;
@@ -704,15 +769,13 @@
</div>
<!-- 2. 统计邮票和活跃时段 -->
<div class="grid-layout" style="margin-bottom: 40px;">
<!-- 统计邮票 -->
<div class="stats-section" style="grid-column: span 8;">
<div class="stats-row">
<div class="stamp" style="transform: rotate(-2deg);">
<div class="stamp-inner">
<div class="stats-wrapper">
<!-- Left: Stats Grid (2x2) -->
<div class="stats-grid">
<!-- Chat Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--accent-orange);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--accent-orange);" viewBox="0 0 24 24">
<path
d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z" />
</svg>
@@ -720,11 +783,10 @@
<div class="stamp-label">消息总数</div>
</div>
</div>
<div class="stamp" style="transform: rotate(2deg); margin-top: 10px;">
<div class="stamp-inner">
<!-- Users Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-green);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-green);" viewBox="0 0 24 24">
<path
d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z" />
</svg>
@@ -732,23 +794,21 @@
<div class="stamp-label">参与人数</div>
</div>
</div>
<div class="stamp" style="transform: rotate(-1deg);">
<!-- Emoji Icon -->
<div class="stamp">
<div class="stamp-inner">
<!-- Image Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-blue);"
viewBox="0 0 24 24">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-blue);" viewBox="0 0 24 24">
<path
d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z" />
d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z" />
</svg>
<div class="stamp-num">{{emoji_count}}</div>
<div class="stamp-label">表情统计</div>
</div>
</div>
<div class="stamp" style="transform: rotate(3deg); margin-top: 5px;">
<div class="stamp-inner">
<!-- Text Icon -->
<svg class="doodle" style="font-size: 2.5rem; color: var(--color-purple);"
viewBox="0 0 24 24">
<div class="stamp">
<div class="stamp-inner">
<svg class="doodle" style="font-size: 2.2rem; color: var(--color-purple);" viewBox="0 0 24 24">
<path
d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z" />
</svg>
@@ -757,13 +817,14 @@
</div>
</div>
</div>
</div>
<!-- 活跃时段 -->
<div class="highlight-section" style="grid-column: span 4;">
<div class="tape-top"></div>
<div style="font-family: var(--font-hand); font-size: 1.6rem; color: var(--ink-secondary);">✨ Highlight
Time</div>
<!-- Highlight Time -->
<div class="highlight-section">
<div class="tape-top" style="background: rgba(255,255,255,0.6);"></div>
<div
style="font-family: var(--font-hand); font-size: 1.5rem; color: var(--ink-secondary); margin-bottom: 5px;">
✨ Highlight Time
</div>
<div class="time-big">{{most_active_period}}</div>
<div class="time-desc">(此刻,世界色彩斑斓)</div>
</div>