Files
rm-circle-team-router/public/weekly-rhythm.html
T
martbost 946a9d75b5 Gate consistency video to members; embed on rhythm page; add vertical cut
- Members-only: the stay-consistent video now requires a wallet-verified session
  (server 403 + training-page lock UI), matching Module 3.
- Embedded on /weekly-rhythm above the sheet (hidden in print) with a members-only
  fallback card for signed-out visitors.
- Added a ~31s vertical (1080x1920) social cut, ungated, for Telegram/social.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-08 06:08:46 -05:00

102 lines
8.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="robots" content="noindex"><meta name="description" content="The RM Circle Weekly Rhythm — the printable 20-minute weekly routine from Circle Method Lesson 10."><title>The Weekly Rhythm | RM Circle Team Build</title><link rel="icon" type="image/png" href="/favicon.png"><link rel="stylesheet" href="/styles.css">
<style>
.fs-wrap{max-width:820px;margin:0 auto;padding:24px 20px 60px}
.fs-sheet{background:var(--card,#0d2236);border:1px solid var(--line,#24425d);border-radius:18px;padding:28px 30px}
.fs-sheet h1{font-size:30px;margin:0 0 2px}
.fs-sheet .tag{color:var(--muted,#aebdca);margin:0 0 18px;font-weight:600}
.fs-box{border:2px solid var(--gold,#f3be43);border-radius:14px;padding:16px 18px;margin:0 0 20px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.fs-box .nums{flex:1;min-width:230px;font-size:15px;line-height:2}
.fs-box .nums b{color:var(--gold,#f3be43)}
.fs-qr{background:#fff;border-radius:12px;padding:8px;line-height:0;width:132px;height:132px;flex:0 0 auto}
.fs-qr svg{width:100%;height:100%}
.fs-sec{margin:20px 0 0}
.fs-sec h2{font-size:19px;margin:0 0 8px;border-bottom:1px solid var(--line,#24425d);padding-bottom:6px}
.fs-item{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:15px;line-height:1.5}
.fs-item .mins{flex:0 0 auto;font-weight:800;color:var(--gold,#f3be43);width:74px}
.wr-table{width:100%;border-collapse:collapse;margin:10px 0 0}
.wr-table th{font-size:12px;color:var(--muted,#aebdca);text-transform:uppercase;letter-spacing:.6px;padding:8px 6px;border-bottom:1px solid var(--line,#24425d);text-align:center}
.wr-table th:first-child{text-align:left}
.wr-table td{padding:10px 6px;border-bottom:1px solid var(--line,#24425d);text-align:center;font-weight:700}
.wr-table td:first-child{text-align:left;color:var(--muted,#aebdca);font-weight:600}
.wr-cb{display:inline-block;width:16px;height:16px;border:2px solid var(--gold,#f3be43);border-radius:4px}
.fs-foot{margin-top:22px;padding-top:12px;border-top:1px solid var(--line,#24425d);font-size:13px;color:var(--muted,#aebdca);line-height:1.6}
.fs-foot b{color:var(--text,#f7f9fc)}
@media print{
@page{size:letter;margin:0.55in}
body{background:#fff!important;color:#111!important}
header,footer,nav,#fsPrintBtn,#rmcTrBtn,#rmcTrPanel,.chat-fab,.chat-panel,.fs-print-btn,.pp-stack,.wr-video{display:none!important}
.fs-wrap{max-width:none;padding:0}
.fs-sheet{background:#fff;border:0;border-radius:0;padding:0;color:#111}
.fs-sheet h1,.fs-sec h2{color:#111}
.fs-sheet .tag,.fs-foot,.wr-table td:first-child,.wr-table th{color:#444}
.fs-box{border-color:#111}
.fs-box .nums b,.fs-item .mins{color:#111}
.wr-cb{border-color:#111}
.fs-sec h2,.fs-foot,.wr-table td,.wr-table th{border-color:#bbb}
}
</style><style>.scr-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:12px 14px;background:#071421;border-bottom:1px solid #27445e}.scr-nav a{color:#f3be43;text-decoration:none;font:600 14px/1 Inter,system-ui,sans-serif;padding:8px 12px;border:1px solid #27445e;border-radius:999px}.scr-nav a:hover{border-color:#f3be43}@media print{.scr-nav{display:none !important}}</style></head>
<body>
<div class="scr-nav"><a href="/my">← My Dashboard</a><a href="/suite">🧰 My Tools</a><a href="/tools">🎬 Promo Tools</a></div>
<div class="fs-wrap">
<div class="wr-video" style="max-width:820px;margin:0 auto 22px">
<div style="font-weight:800;font-size:18px;margin:0 0 8px">▶ Watch first — Consistency Wins the Race</div>
<video id="wrVid" class="video-frame" style="display:block;width:100%;border-radius:12px;aspect-ratio:16/9;background:#000" controls preload="none" poster="/v/rmc-stay-consistent-poster.jpg" src="/v/rmc-stay-consistent-bfbaa04500.mp4"></video>
</div>
<div class="fs-sheet">
<h1>🔁 The Weekly Rhythm</h1>
<p class="tag">Twenty minutes. Same time. Every week. Put it in the calendar like a dentist appointment you can't weasel out of.</p>
<div class="fs-box">
<div class="nums">
<div>My position ID: <b id="fsId">#______</b></div>
<div>My invite link: <b id="fsLink">rmcircle.team/join/______</b></div>
<div>My weekly time: <b>__________________</b></div>
<div id="fsQrHint">Scan → my personal page</div>
</div>
<div class="fs-qr" id="fsQr"></div>
</div>
<div class="fs-sec"><h2>The 20 minutes (from Circle Method Lesson 10)</h2>
<div class="fs-item"><span class="mins">1–5</span><span>📊 <strong>Read the field.</strong> Open your dashboard: org bar — bigger than last week? Pipeline — who moved, what's forming? Just look.</span></div>
<div class="fs-item"><span class="mins">5–10</span><span>🔥 <strong>Lift one mover.</strong> Message someone who did something this week — congratulate them, ask one question about their next step. The Coach panel suggests who.</span></div>
<div class="fs-item"><span class="mins">10–15</span><span>🕯️ <strong>One kind check-in</strong> on one quiet person. "Thinking of you — your position's still collecting, no rush." Rotate through them. Never a guilt trip.</span></div>
<div class="fs-item"><span class="mins">15–20</span><span>📤 <strong>Share one thing.</strong> One curiosity video to one new person — or one post from Promo Tools. Coaches who stop recruiting become managers.</span></div>
<div class="fs-item"><span class="mins">Done.</span><span>✅ <strong>Close the tab.</strong> Don't double it because you're motivated. Twenty every week beats two hours twice.</span></div>
</div>
<div class="fs-sec"><h2>Four-week tracker</h2>
<table class="wr-table">
<tr><th>Week of…</th><th>📊 Read</th><th>🔥 Lift one</th><th>🕯️ Check one</th><th>📤 Share one</th></tr>
<tr><td>____________</td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td></tr>
<tr><td>____________</td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td></tr>
<tr><td>____________</td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td></tr>
<tr><td>____________</td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td><td><span class="wr-cb"></span></td></tr>
</table>
</div>
<div class="fs-foot">
<b>Get your 2. Help your 2 get theirs. Teach them to do the same.</b><br>
That's the whole Method — three sentences, run on a rhythm.<br>
Real effort, real crypto, no guarantees — never use money you can't afford to lose.
</div>
</div>
<div class="fs-print-btn" style="margin:18px 0 0"><button id="fsPrintBtn" class="btn btn-gold" style="font-size:16px;padding:12px 22px">🖨️ Print my Weekly Rhythm</button>
<a href="/training#stay-consistent" class="btn btn-secondary" style="margin-left:8px">▶ Watch: Stay consistent</a><a href="/training#lesson-10" class="btn btn-secondary" style="margin-left:8px">▶ Watch Lesson 10</a>
<a href="/my" class="btn btn-secondary" style="margin-left:8px">← My dashboard</a></div>
</div>
<script>
(async function(){
var v=document.getElementById('wrVid'); if(!v) return;
var member=null; try{ var r=await fetch('/api/public/msg-me'); if(r.ok) member=await r.json(); }catch(e){}
if(member&&member.id) return; // signed-in member: leave the player as-is
var box=document.createElement('div'); box.className='video-frame';
box.style.cssText='display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:12px;background:#08131f;text-align:center;padding:20px';
box.innerHTML='<div><div style="font-size:30px">🔒</div><div style="font-weight:800;margin:6px 0 4px">Members area</div><p class="micro" style="color:var(--muted,#aebdca);margin:0 0 12px;max-width:440px">This one is for members. Open it from the training page with the wallet that owns your position, or through the Telegram Mini App.</p><a class="btn btn-secondary" href="/training#stay-consistent">Unlock on the training page</a></div>';
v.replaceWith(box);
})();
</script>
<script src="/qrlib.js"></script>
<script src="/fast-start.js"></script>
<script src="/chat.js" defer></script>
<script src="/translate.js" defer></script><script src="/tg-app.js" defer></script></body></html>