diff --git a/data/insights.json b/data/insights.json new file mode 100644 index 0000000..3210654 --- /dev/null +++ b/data/insights.json @@ -0,0 +1,18 @@ +{ + "week": "—", + "updated": "—", + "visitors": 0, + "visitors_change": "", + "pageviews": 0, + "pageviews_change": "", + "bounce_rate": "—", + "bounce_rate_change": "", + "visit_duration": "—", + "visit_duration_change": "", + "top_pages": [], + "top_referrers": [], + "events": [], + "what_worked": [], + "what_didnt": [], + "recommendations": [] +} \ No newline at end of file diff --git a/index.html b/index.html index 84ee739..cd7a8c3 100644 --- a/index.html +++ b/index.html @@ -1692,6 +1692,7 @@ })(); function slideSpeedrun(dir) { + plausible('Speedrun Nav', { props: { direction: dir > 0 ? 'next' : 'prev' } }); const slider = document.getElementById('speedrunSlider'); if (!slider) return; const slideWidth = slider.querySelector('.video-slide').offsetWidth + 20; @@ -2187,12 +2188,15 @@
diff --git a/launch-dashboard.html b/launch-dashboard.html index 7f04152..8c28cf9 100644 --- a/launch-dashboard.html +++ b/launch-dashboard.html @@ -485,6 +485,91 @@ border: 1px solid var(--border); } .btn-ghost:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; } + + /* ── Insights Section ───────────────────────────── */ + .insight-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; + margin-bottom: 16px; + } + .insight-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius-card); + padding: 20px; + } + .insight-card h3 { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.06em; + color: var(--accent); + margin-bottom: 12px; + display: flex; + align-items: center; + gap: 6px; + } + .insight-stat { + font-size: 32px; + font-weight: 700; + color: var(--text); + line-height: 1.1; + } + .insight-stat-label { + font-size: 12px; + color: var(--text-muted); + margin-top: 4px; + } + .insight-list { + list-style: none; + padding: 0; + margin: 0; + } + .insight-list li { + padding: 6px 0; + font-size: 13px; + display: flex; + align-items: flex-start; + gap: 8px; + border-bottom: 1px solid rgba(10,48,96,0.3); + } + .insight-list li:last-child { border-bottom: none; } + .insight-list .val { color: var(--accent); font-weight: 600; margin-left: auto; flex-shrink: 0; } + .insight-rec { + background: var(--bg-card); + border: 1px solid var(--border); + border-left: 3px solid var(--accent); + border-radius: var(--radius-card); + padding: 16px 20px; + margin-top: 12px; + font-size: 13px; + line-height: 1.6; + } + .insight-rec h4 { + color: var(--accent); + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.04em; + margin-bottom: 6px; + } + .insight-empty { + color: var(--text-muted); + font-size: 13px; + text-align: center; + padding: 40px 0; + } + .insight-whatworked { color: var(--success); } + .insight-whatdidnt { color: var(--danger); } + .insight-neut { color: var(--warning); } + .insight-meta { + font-size: 11px; + color: var(--text-muted); + margin-top: 12px; + text-align: right; + } + @media (max-width: 700px) { + .insight-grid { grid-template-columns: 1fr; } + } @@ -531,6 +616,20 @@ + +