Growth features: share buttons, NEW badge, sticky CTA, newsletter cross-promote

- Share buttons on episode and clip cards (Web Share API + clipboard fallback)
- NEW badge on latest episode card
- Sticky call-in CTA bar (appears after hero scrolls out)
- Daily AI Briefing newsletter cross-promote in footer
- Bump cache versions to v=5

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-16 01:23:43 -06:00
parent d39cb3f3d4
commit 39297d4aa5
12 changed files with 314 additions and 11 deletions
+189
View File
@@ -460,6 +460,113 @@ a:hover {
transform: none;
}
/* Share Buttons */
.episode-share-btn,
.clip-share-btn {
background: transparent;
border: none;
color: var(--text-dim);
cursor: pointer;
padding: 0.35rem;
border-radius: 50%;
transition: color 0.2s, background 0.2s;
display: inline-flex;
align-items: center;
justify-content: center;
}
.episode-share-btn svg,
.clip-share-btn svg {
width: 16px;
height: 16px;
}
.episode-share-btn:hover,
.clip-share-btn:hover {
color: var(--accent);
background: rgba(212, 164, 74, 0.1);
}
.episode-share-btn.share-copied,
.clip-share-btn.share-copied {
color: var(--accent);
animation: share-pulse 0.3s ease-out;
}
@keyframes share-pulse {
0% { transform: scale(1); }
50% { transform: scale(1.3); }
100% { transform: scale(1); }
}
.clip-share-btn {
position: absolute;
top: 0.5rem;
right: 0.5rem;
z-index: 2;
}
/* NEW Badge */
.episode-new-badge {
display: inline-block;
background: var(--accent);
color: #fff;
font-size: 0.6rem;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.08em;
padding: 0.15em 0.5em;
border-radius: 50px;
vertical-align: middle;
}
/* Sticky CTA Bar */
.sticky-cta {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(21, 15, 6, 0.92);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border-top: 1px solid #2a2015;
padding: 0.6rem 1.5rem;
text-align: center;
z-index: 90;
transform: translateY(100%);
transition: transform 0.3s, bottom 0.3s;
}
.sticky-cta.visible {
transform: translateY(0);
}
.sticky-cta.player-active {
bottom: 56px;
}
.sticky-cta-link {
color: var(--text-muted);
font-size: 0.85rem;
display: inline-flex;
align-items: center;
gap: 0.4rem;
transition: color 0.2s;
}
.sticky-cta-link:hover {
color: var(--accent);
}
.sticky-cta-link strong {
color: var(--accent);
}
.sticky-cta-icon {
width: 16px;
height: 16px;
}
/* Testimonials */
.testimonials-section {
max-width: 900px;
@@ -778,6 +885,80 @@ a:hover {
color: var(--accent);
}
.footer-newsletter {
margin: 1.25rem 0;
padding: 1rem 0;
border-top: 1px solid #2a2015;
}
.footer-newsletter-text {
font-size: 0.85rem;
color: var(--text-dim);
margin-bottom: 0.75rem;
}
.footer-newsletter-name {
color: var(--accent);
}
.footer-newsletter-form {
display: flex;
justify-content: center;
gap: 0.5rem;
max-width: 420px;
margin: 0 auto;
}
.footer-newsletter-input {
flex: 1;
min-width: 0;
padding: 0.5rem 0.75rem;
background: #1a1209;
border: 1px solid #3a2f20;
border-radius: 50px;
color: var(--text-light);
font-size: 0.85rem;
outline: none;
transition: border-color 0.2s;
}
.footer-newsletter-input:focus {
border-color: var(--accent);
}
.footer-newsletter-input::placeholder {
color: var(--text-dim);
}
.footer-newsletter-btn {
background: transparent;
color: var(--accent);
border: 2px solid var(--accent);
padding: 0.5rem 1.25rem;
border-radius: 50px;
font-size: 0.85rem;
font-weight: 700;
cursor: pointer;
white-space: nowrap;
transition: background 0.2s, color 0.2s;
}
.footer-newsletter-btn:hover {
background: var(--accent);
color: #fff;
}
.footer-newsletter-btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.footer-newsletter-success {
font-size: 0.85rem;
color: var(--accent);
font-weight: 600;
}
.footer-contact {
margin-bottom: 0.75rem;
}
@@ -1796,4 +1977,12 @@ p.about-teaser {
flex-wrap: wrap;
gap: 0.5rem;
}
.footer-newsletter-form {
flex-direction: column;
}
.footer-newsletter-btn {
width: 100%;
}
}