<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<!-- Google Analytics 4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-4ERX0R69X8"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-4ERX0R69X8');
</script>
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1586971362026655');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1586971362026655&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Indoor Cycling Method — Landing Page</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/basecoat-css@1.0.2/dist/basecoat.cdn.min.css">
<style>
/* Skip artifact shell — fixed styles served beside every artifact.
Complements basecoat; artifacts override --accent for their own identity. */
:root {
color-scheme: light dark;
--accent: #2563eb;
--accent-contrast: #ffffff;
--accent-text: color-mix(in srgb, var(--accent) 72%, #000);
--bg: #f8f9fb;
--surface: #ffffff;
--text: #14171f;
--text-muted: #5b6472;
--border: rgba(20, 23, 31, 0.10);
--radius: 10px;
--shadow: 0 1px 3px rgba(20, 23, 31, 0.08);
--space: 16px;
}
/* Theme resolution. Without data-theme the viewer's system preference decides,
as it always did. With it, the artifact's own choice wins in BOTH directions:
a page that hardcodes one palette must not be handed the opposite set of
tokens by the machine it happens to be opened on. The dark values appear
twice because a media query cannot be folded into a selector list.
The attribute sits inside :where() so these blocks keep the specificity of a
bare :root — the page's own <style> is linked after this file and must go on
overriding any token it wants, exactly as it could before. */
@media (prefers-color-scheme: dark) {
:root:where(:not([data-theme="light"])) {
--accent-text: color-mix(in srgb, var(--accent) 78%, #fff);
--bg: #101318;
--surface: #181c23;
--text: #eef1f6;
--text-muted: #9aa4b2;
--border: rgba(238, 241, 246, 0.12);
--shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
}
:root:where([data-theme="dark"]) {
color-scheme: dark;
--accent-text: color-mix(in srgb, var(--accent) 78%, #fff);
--bg: #101318;
--surface: #181c23;
--text: #eef1f6;
--text-muted: #9aa4b2;
--border: rgba(238, 241, 246, 0.12);
--shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
:root:where([data-theme="light"]) { color-scheme: light; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
background: var(--bg);
color: var(--text);
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
line-height: 1.55;
-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
.shell-container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.shell-section { padding: calc(var(--space) * 2) 0; }
.shell-grid { display: grid; gap: var(--space); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.shell-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: var(--space); }
.shell-footer { padding: 24px 0 40px; color: var(--text-muted); font-size: 13px; }
.shell-hero { padding: calc(var(--space) * 3) 0 calc(var(--space) * 2); }
.shell-hero h1 { font-size: clamp(26px, 4vw, 40px); line-height: 1.15; margin: 0 0 10px; text-wrap: balance; }
.shell-hero p { color: var(--text-muted); max-width: 60ch; margin: 0; }
.panel {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: var(--space);
}
.kpi { display: flex; flex-direction: column; gap: 4px; }
.kpi .kpi-value { font-size: 28px; font-weight: 650; line-height: 1.1; }
.kpi .kpi-label { font-size: 13px; color: var(--text-muted); }
.kpi .kpi-delta { font-size: 12.5px; font-weight: 600; }
.kpi .kpi-delta.up { color: #0a8f3c; }
.kpi .kpi-delta.down { color: #cf3131; }
table.shell-table { border-collapse: collapse; width: 100%; font-size: 14px; }
table.shell-table th {
text-align: left; font-size: 11.5px; letter-spacing: 0.05em; text-transform: uppercase;
color: var(--text-muted); font-weight: 600;
}
table.shell-table th, table.shell-table td { padding: 9px 12px 9px 0; border-bottom: 1px solid var(--border); }
table.shell-table td.num, table.shell-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.shell-table tbody tr:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.chart-box { width: 100%; min-height: 220px; }
.chart-box svg { width: 100%; height: auto; display: block; }
.muted { color: var(--text-muted); }
.accent { color: var(--accent-text); }
.shell-badge {
display: inline-flex; align-items: center; gap: 6px;
font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px;
background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent-text);
}
@media (prefers-reduced-motion: no-preference) {
.shell-fade { animation: shell-fade 400ms ease both; }
@keyframes shell-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
</style>
<style>
:root {
--accent: #A3E635;
--accent-secondary: #FB923C;
--accent-contrast: #0f172a;
--bg: #14141F;
--surface: #1B1B2A;
--surface-elevated: #242438;
--border: #2E2E46;
--text: #F8FAFC;
--text-muted: #94A3B8;
--star-color: #FBBF24;
}
body {
background-color: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
margin: 0;
padding: 0;
line-height: 1.6;
overflow-x: hidden;
}
/* Navigation */
.site-nav {
position: sticky;
top: 0;
z-index: 50;
background: rgba(20, 20, 31, 0.92);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border);
}
.nav-inner {
max-width: 1200px;
margin: 0 auto;
padding: 1rem 1.5rem;
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.brand-logo {
display: flex;
align-items: center;
gap: 0.6rem;
font-weight: 800;
font-size: 1.15rem;
letter-spacing: -0.02em;
color: #fff;
text-decoration: none;
}
.brand-logo span {
color: var(--accent);
}
.nav-links {
display: flex;
align-items: center;
gap: 1.5rem;
list-style: none;
margin: 0;
padding: 0;
}
.nav-links a {
color: var(--text-muted);
text-decoration: none;
font-size: 0.95rem;
font-weight: 600;
transition: color 0.2s ease;
}
.nav-links a:hover {
color: var(--accent);
}
.nav-cta {
padding: 0.55rem 1.1rem;
background: var(--accent);
color: var(--accent-contrast) !important;
border-radius: 9999px;
font-weight: 700 !important;
transition: transform 0.2s ease, filter 0.2s ease;
}
.nav-cta:hover {
transform: translateY(-1px);
filter: brightness(1.05);
}
/* Layout Containers */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 1.5rem;
}
.section-spacing {
padding: 5rem 0;
}
.section-header {
text-align: center;
max-width: 760px;
margin: 0 auto 3.5rem auto;
}
.tag-badge {
display: inline-block;
text-transform: uppercase;
font-size: 0.75rem;
font-weight: 800;
letter-spacing: 0.12em;
padding: 0.35rem 0.85rem;
border-radius: 9999px;
background: rgba(163, 230, 53, 0.12);
color: var(--accent);
border: 1px solid rgba(163, 230, 53, 0.3);
margin-bottom: 1rem;
}
.section-title {
font-size: clamp(2rem, 3.5vw, 2.75rem);
font-weight: 800;
line-height: 1.2;
margin: 0 0 1rem 0;
letter-spacing: -0.02em;
}
.section-subtitle {
color: var(--text-muted);
font-size: 1.1rem;
margin: 0;
}
/* Hero Section */
.hero-section {
padding: 4.5rem 0 5.5rem 0;
background: radial-gradient(circle at top right, rgba(163, 230, 53, 0.08) 0%, transparent 60%),
radial-gradient(circle at bottom left, rgba(251, 146, 60, 0.06) 0%, transparent 60%);
position: relative;
border-bottom: 1px solid var(--border);
}
.hero-grid {
display: grid;
grid-template-columns: 1.2fr 0.8fr;
gap: 3.5rem;
align-items: center;
}
.hero-headline {
font-size: clamp(2.4rem, 4.5vw, 3.8rem);
line-height: 1.1;
font-weight: 900;
letter-spacing: -0.03em;
margin: 0 0 1.25rem 0;
}
.hero-headline .highlight-lime {
color: var(--accent);
}
.hero-headline .highlight-orange {
color: var(--accent-secondary);
}
.hero-desc {
font-size: 1.15rem;
color: #CBD5E1;
margin-bottom: 2rem;
max-width: 600px;
}
.hero-benefits {
display: flex;
flex-wrap: wrap;
gap: 1.2rem;
margin-bottom: 2.25rem;
}
.benefit-item {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.95rem;
font-weight: 600;
color: #F1F5F9;
background: var(--surface);
padding: 0.4rem 0.85rem;
border-radius: 8px;
border: 1px solid var(--border);
}
.benefit-item svg {
color: var(--accent);
flex-shrink: 0;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
gap: 1rem;
align-items: center;
}
/* Buttons */
.btn-lime {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
background-color: var(--accent);
color: var(--accent-contrast);
font-weight: 800;
font-size: 1.05rem;
padding: 0.9rem 1.8rem;
border-radius: 10px;
text-decoration: none;
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
box-shadow: 0 10px 25px -5px rgba(163, 230, 53, 0.35);
border: none;
cursor: pointer;
}
.btn-lime:hover {
transform: translateY(-2px);
box-shadow: 0 15px 30px -5px rgba(163, 230, 53, 0.45);
filter: brightness(1.03);
}
.btn-outline {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
background: transparent;
color: #fff;
font-weight: 700;
font-size: 1.05rem;
padding: 0.85rem 1.6rem;
border-radius: 10px;
text-decoration: none;
border: 1px solid var(--border);
transition: background 0.2s ease, border-color 0.2s ease;
}
.btn-outline:hover {
background: var(--surface-elevated);
border-color: var(--text-muted);
}
.btn-orange {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
background: var(--accent-secondary);
color: #0f172a;
font-weight: 800;
font-size: 0.95rem;
padding: 0.75rem 1.25rem;
border-radius: 8px;
text-decoration: none;
transition: transform 0.2s ease, filter 0.2s ease;
}
.btn-orange:hover {
transform: translateY(-1px);
filter: brightness(1.05);
}
/* Hero Instructor Frame */
.hero-media-wrapper {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.hero-avatar-frame {
width: 290px;
height: 290px;
border-radius: 50%;
padding: 6px;
background: linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);
box-shadow: 0 0 50px rgba(163, 230, 53, 0.25);
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.hero-avatar-img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
background-color: var(--surface);
display: block;
}
.instructor-floating-card {
margin-top: -24px;
background: rgba(27, 27, 42, 0.95);
border: 1px solid var(--border);
backdrop-filter: blur(10px);
padding: 0.85rem 1.4rem;
border-radius: 12px;
box-shadow: 0 16px 32px rgba(0,0,0,0.5);
text-align: center;
z-index: 2;
}
.instructor-name {
font-weight: 800;
color: #fff;
font-size: 1rem;
margin-bottom: 0.2rem;
}
.instructor-role {
font-size: 0.8rem;
color: var(--accent);
font-weight: 600;
letter-spacing: 0.05em;
text-transform: uppercase;
}
/* Guides Section */
.guides-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 2rem;
}
.guide-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 16px;
padding: 2.2rem;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
position: relative;
}
.guide-card:hover {
transform: translateY(-5px);
border-color: rgba(163, 230, 53, 0.5);
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.35);
}
.guide-category {
font-size: 0.75rem;
font-weight: 700;
color: var(--accent-secondary);
text-transform: uppercase;
letter-spacing: 0.08em;
margin-bottom: 0.75rem;
}
.guide-title {
font-size: 1.35rem;
font-weight: 800;
line-height: 1.35;
margin: 0 0 1rem 0;
color: #fff;
}
.guide-desc {
color: var(--text-muted);
font-size: 0.95rem;
margin-bottom: 2rem;
flex-grow: 1;
}
.guide-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 1.25rem;
border-top: 1px solid var(--border);
}
.guide-price {
font-size: 1.75rem;
font-weight: 900;
color: #fff;
display: flex;
align-items: baseline;
gap: 0.25rem;
}
.guide-price small {
font-size: 0.85rem;
color: var(--text-muted);
font-weight: 500;
}
/* Bundle Box */
.bundle-section {
background: linear-gradient(180deg, var(--bg) 0%, #171725 100%);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
}
.bundle-card {
background: radial-gradient(circle at top right, rgba(163, 230, 53, 0.15), transparent 60%),
radial-gradient(circle at bottom left, rgba(251, 146, 60, 0.1), transparent 60%),
var(--surface);
border: 2px solid var(--accent);
border-radius: 24px;
padding: 3.5rem 2.5rem;
box-shadow: 0 25px 60px -15px rgba(0,0,0,0.6);
display: grid;
grid-template-columns: 1.2fr 0.8fr;
gap: 3rem;
align-items: center;
position: relative;
overflow: hidden;
}
.bundle-badge-top {
position: absolute;
top: 1.5rem;
right: 1.5rem;
background: var(--accent);
color: #0f172a;
font-weight: 900;
font-size: 0.8rem;
padding: 0.35rem 0.9rem;
border-radius: 9999px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.bundle-features {
list-style: none;
padding: 0;
margin: 1.5rem 0 0 0;
display: grid;
gap: 0.8rem;
}
.bundle-features li {
display: flex;
align-items: center;
gap: 0.75rem;
font-size: 1rem;
color: #E2E8F0;
}
.bundle-features li svg {
color: var(--accent);
flex-shrink: 0;
}
.bundle-pricing-box {
background: rgba(20, 20, 31, 0.85);
border: 1px solid var(--border);
border-radius: 16px;
padding: 2.5rem;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 1.25rem;
}
.old-price {
text-decoration: line-through;
color: var(--text-muted);
font-size: 1.25rem;
font-weight: 600;
}
.deal-price {
font-size: 3.2rem;
font-weight: 900;
color: var(--accent);
line-height: 1;
}
.save-badge {
background: rgba(251, 146, 60, 0.15);
color: var(--accent-secondary);
border: 1px solid rgba(251, 146, 60, 0.4);
padding: 0.25rem 0.8rem;
border-radius: 9999px;
font-size: 0.85rem;
font-weight: 700;
}
.bundle-promo-link {
color: var(--text-muted);
font-size: 0.85rem;
text-decoration: underline;
transition: color 0.2s ease;
}
.bundle-promo-link:hover {
color: #fff;
}
/* Gear Section */
.gear-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
gap: 1.75rem;
}
.gear-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 14px;
overflow: hidden;
display: flex;
flex-direction: column;
transition: transform 0.2s ease, border-color 0.2s ease;
}
.gear-card:hover {
transform: translateY(-4px);
border-color: rgba(163, 230, 53, 0.4);
}
.gear-img-container {
position: relative;
width: 100%;
height: 210px;
background: #101019;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
border-bottom: 1px solid var(--border);
}
.gear-img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
transition: transform 0.3s ease;
}
.gear-card:hover .gear-img {
transform: scale(1.04);
}
.gear-tag {
position: absolute;
top: 0.75rem;
left: 0.75rem;
background: rgba(20, 20, 31, 0.85);
border: 1px solid rgba(251, 146, 60, 0.5);
color: var(--accent-secondary);
font-size: 0.7rem;
font-weight: 700;
padding: 0.2rem 0.6rem;
border-radius: 4px;
backdrop-filter: blur(4px);
}
.gear-content {
padding: 1.25rem;
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: space-between;
}
.gear-title {
font-size: 1.05rem;
font-weight: 700;
line-height: 1.35;
margin: 0 0 0.5rem 0;
color: #F8FAFC;
}
.gear-rating {
display: flex;
align-items: center;
gap: 0.4rem;
font-size: 0.85rem;
color: var(--text-muted);
margin-bottom: 0.85rem;
}
.gear-stars {
color: var(--star-color);
letter-spacing: -0.05em;
}
.gear-price-row {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: auto;
padding-top: 1rem;
border-top: 1px solid var(--border);
gap: 0.5rem;
}
.gear-price {
font-size: 1.35rem;
font-weight: 800;
color: #fff;
}
.btn-amazon {
display: inline-flex;
align-items: center;
gap: 0.35rem;
background: #F3A847;
color: #111;
font-size: 0.85rem;
font-weight: 700;
padding: 0.55rem 0.9rem;
border-radius: 6px;
text-decoration: none;
transition: filter 0.2s ease, transform 0.15s ease;
white-space: nowrap;
}
.btn-amazon:hover {
filter: brightness(1.08);
transform: translateY(-1px);
}
/* Free Checklist Section (Brevo) */
.checklist-section {
background: radial-gradient(circle at center, rgba(163, 230, 53, 0.05) 0%, transparent 70%), var(--surface);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
}
.checklist-card {
max-width: 820px;
margin: 0 auto;
background: #14141F;
border: 1px solid var(--border);
border-radius: 20px;
padding: 3rem 2.5rem;
box-shadow: 0 20px 40px rgba(0,0,0,0.4);
text-align: center;
}
.brevo-isolated-container {
position: relative;
z-index: 10;
margin: 2rem auto 1.5rem auto;
min-height: 310px;
width: 100%;
max-width: 600px;
clear: both;
}
.pdf-direct-notice {
margin-top: 1.5rem;
font-size: 0.9rem;
color: var(--text-muted);
}
.pdf-direct-notice a {
color: var(--accent);
text-decoration: underline;
font-weight: 600;
}
/* Footer */
.site-footer {
background: #0E0E17;
padding: 4rem 0 2.5rem 0;
border-top: 1px solid var(--border);
color: var(--text-muted);
font-size: 0.9rem;
}
.footer-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
gap: 3rem;
margin-bottom: 3rem;
}
.footer-brand-title {
font-size: 1.25rem;
font-weight: 800;
color: #fff;
margin-bottom: 0.75rem;
}
.footer-socials {
display: flex;
gap: 1rem;
margin-top: 1.2rem;
}
.social-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--surface);
color: #CBD5E1;
border: 1px solid var(--border);
text-decoration: none;
transition: all 0.2s ease;
}
.social-btn:hover {
background: var(--accent);
color: #0f172a;
border-color: var(--accent);
transform: translateY(-2px);
}
.footer-bottom {
padding-top: 2rem;
border-top: 1px solid #1F1F33;
text-align: center;
font-size: 0.85rem;
}
/* Responsive */
@media (max-width: 992px) {
.hero-grid {
grid-template-columns: 1fr;
text-align: center;
}
.hero-benefits {
justify-content: center;
}
.hero-actions {
justify-content: center;
}
.bundle-card {
grid-template-columns: 1fr;
padding: 2.5rem 1.75rem;
}
.footer-grid {
grid-template-columns: 1fr;
gap: 2rem;
}
}
/* Recommended Supplements Section */
.supplements-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.5rem;
}
.supplement-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 14px;
overflow: hidden;
display: flex;
flex-direction: column;
transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.supplement-card:hover {
transform: translateY(-4px);
border-color: rgba(163, 230, 53, 0.4);
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}
.supplement-img-wrap {
width: 100%;
height: 160px;
background: #101019;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-bottom: 1px solid var(--border);
color: var(--accent);
position: relative;
}
.supplement-img-wrap svg {
opacity: 0.85;
transition: transform 0.25s ease;
}
.supplement-card:hover .supplement-img-wrap svg {
transform: scale(1.08);
opacity: 1;
}
.supplement-body {
padding: 1.25rem;
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: space-between;
}
.supplement-category {
font-size: 0.72rem;
font-weight: 700;
color: var(--accent-secondary);
text-transform: uppercase;
letter-spacing: 0.08em;
margin-bottom: 0.4rem;
}
.supplement-name {
font-size: 1.15rem;
font-weight: 800;
color: #fff;
margin: 0 0 0.65rem 0;
line-height: 1.3;
}
.supplement-desc {
color: var(--text-muted);
font-size: 0.88rem;
line-height: 1.5;
margin: 0 0 1.25rem 0;
flex-grow: 1;
}
.btn-supplement {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.4rem;
background-color: var(--accent);
color: var(--accent-contrast);
font-weight: 800;
font-size: 0.9rem;
padding: 0.7rem 1rem;
border-radius: 8px;
text-decoration: none;
transition: transform 0.15s ease, filter 0.15s ease;
width: 100%;
box-sizing: border-box;
}
.btn-supplement:hover {
transform: translateY(-1px);
filter: brightness(1.05);
}
.supplements-disclosure {
text-align: center;
color: var(--text-muted);
font-size: 0.82rem;
line-height: 1.5;
margin-top: 3rem;
max-width: 680px;
margin-left: auto;
margin-right: auto;
padding: 0 1rem;
}
@media (max-width: 1024px) {
.supplements-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.hero-avatar-frame {
width: 220px;
height: 220px;
}
.nav-links {
display: none;
}
.checklist-card {
padding: 2rem 1.25rem;
}
.supplements-grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="site-nav">
<div class="nav-inner">
<a href="#" class="brand-logo">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color:var(--accent);">
<circle cx="18.5" cy="17.5" r="3.5"/>
<circle cx="5.5" cy="17.5" r="3.5"/>
<circle cx="15" cy="5" r="1"/>
<path d="M12 17.5V14l-3-3 4-3 2 3h2"/>
</svg>
<span>Indoor Cycling</span> Method
</a>
<ul class="nav-links">
<li><a href="#guides">Guides</a></li>
<li><a href="#bundle">The Bundle</a></li>
<li><a href="#gear">Recommended Gear</a></li>
<li><a href="#checklist">Free Checklist</a></li>
</ul>
<a href="https://go.hotmart.com/X107645144L" target="_blank" rel="noopener" class="nav-cta">Get 30% Off Bundle</a>
</div>
</nav>
<!-- 1. HERO -->
<header class="hero-section">
<div class="container">
<div class="hero-grid">
<div class="hero-content">
<div class="tag-badge">MASTER YOUR INDOOR RIDE</div>
<h1 class="hero-headline">
Ride Smarter. Ride Stronger. <span class="highlight-lime">Dominate</span> Every <span class="highlight-orange">Class</span>.
</h1>
<p class="hero-desc">
Created by Prof. Mateus — bringing 20+ years of high-performance indoor cycling coaching to thousands of riders across the US, UK, and Australia. Elevate your power, eliminate pain, and maximize calorie burn with proven physiology.
</p>
<div class="hero-benefits">
<div class="benefit-item">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
Zero Joint Pain Setup
</div>
<div class="benefit-item">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
High-Calorie Cadence Zones
</div>
<div class="benefit-item">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
Instant Digital Access
</div>
</div>
<div class="hero-actions">
<a href="https://go.hotmart.com/X107645144L" target="_blank" rel="noopener" class="btn-lime">
Get The Complete Method (Save 30%)
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
</a>
<a href="#guides" class="btn-outline">
Explore Individual Guides
</a>
</div>
</div>
<div class="hero-media-wrapper">
<div class="hero-avatar-frame">
<img src="images/prof-mateus.png" alt="Prof. Mateus — Indoor Cycling Specialist" class="hero-avatar-img">
</div>
<div class="instructor-floating-card">
<div class="instructor-name">Prof. Mateus</div>
<div class="instructor-role">20+ Years Head Instructor</div>
</div>
</div>
</div>
</div>
</header>
<!-- 2. GUIDES SECTION -->
<section id="guides" class="section-spacing">
<div class="container">
<div class="section-header">
<div class="tag-badge">DIGITAL TRAINING GUIDES</div>
<h2 class="section-title">Master Every Dimension of Your Ride</h2>
<p class="section-subtitle">Tactical, science-backed blueprints designed for immediate execution on Peloton, studio stages, or your home trainer.</p>
</div>
<div class="guides-grid">
<!-- Guide 1 -->
<article class="guide-card">
<div>
<div class="guide-category">Mind & Body Connection</div>
<h3 class="guide-title">Read Your Body – The Method That Transforms Your Indoor Cycling</h3>
<p class="guide-desc">
Decode real-time heart rate spikes, perceived exertion, and muscular fatigue. Learn how to stay in optimal aerobic thresholds without burning out mid-ride.
</p>
</div>
<div class="guide-footer">
<div class="guide-price">
US$ 9.99
<small>/ one-time</small>
</div>
<a href="https://go.hotmart.com/C107582533E" target="_blank" rel="noopener" class="btn-lime" style="padding:0.65rem 1.25rem; font-size:0.95rem;">
Get it now
</a>
</div>
</article>
<!-- Guide 2 -->
<article class="guide-card">
<div>
<div class="guide-category">Biomechanics & Injury Prevention</div>
<h3 class="guide-title">The Perfect Bike Fit – The Definitive Guide to Indoor Cycling Setup</h3>
<p class="guide-desc">
End knee strain, lower back soreness, and neck pain forever. Precise angle rules for saddle height, handlebar reach, and cleat positioning tailored to your anatomy.
</p>
</div>
<div class="guide-footer">
<div class="guide-price">
US$ 12.99
<small>/ one-time</small>
</div>
<a href="https://go.hotmart.com/L107582718V" target="_blank" rel="noopener" class="btn-lime" style="padding:0.65rem 1.25rem; font-size:0.95rem;">
Get it now
</a>
</div>
</article>
<!-- Guide 3 -->
<article class="guide-card">
<div>
<div class="guide-category">Power & Core Conditioning</div>
<h3 class="guide-title">Bodyweight Training for Cycling Performance</h3>
<p class="guide-desc">
Targeted off-the-bike movement flows to strengthen glute activation, stabilize your core during heavy climbs, and increase sprint wattage output safely.
</p>
</div>
<div class="guide-footer">
<div class="guide-price">
US$ 12.99
<small>/ one-time</small>
</div>
<a href="https://go.hotmart.com/O107582745N" target="_blank" rel="noopener" class="btn-lime" style="padding:0.65rem 1.25rem; font-size:0.95rem;">
Get it now
</a>
</div>
</article>
</div>
</div>
</section>
<!-- 3. BUNDLE SECTION -->
<section id="bundle" class="section-spacing bundle-section">
<div class="container">
<div class="bundle-card">
<div class="bundle-badge-top">BEST VALUE BUNDLE</div>
<div>
<div class="tag-badge">ALL-IN-ONE SYSTEM</div>
<h2 style="font-size:clamp(1.9rem, 3.2vw, 2.6rem); font-weight:900; line-height:1.2; margin:0 0 1rem 0;">
The Complete Method — 3 Guides
</h2>
<p style="color:var(--text-muted); font-size:1.1rem; margin-bottom:1.5rem;">
Get the comprehensive transformation bundle. Master your bike fit ergonomics, sharpen your somatic cadence pacing, and unlock supreme off-bike conditioning.
</p>
<ul class="bundle-features">
<li>
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
<span><strong>E-Book 1:</strong> Read Your Body — The Method That Transforms Your Ride</span>
</li>
<li>
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
<span><strong>E-Book 2:</strong> The Perfect Bike Fit — Definitive Indoor Setup</span>
</li>
<li>
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
<span><strong>E-Book 3:</strong> Bodyweight Training for Cycling Performance</span>
</li>
<li>
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"/></svg>
<span>Instant digital downloads with lifetime access & future updates</span>
</li>
</ul>
</div>
<div class="bundle-pricing-box">
<div class="save-badge">SAVE 30% TODAY</div>
<div>
<div class="old-price">US$ 35.97</div>
<div class="deal-price">US$ 24.99</div>
</div>
<a href="https://go.hotmart.com/X107645144L" target="_blank" rel="noopener" class="btn-lime" style="width:100%;">
Get The Complete Method
</a>
<a href="https://pay.hotmart.com/J107617644U?off=dhj3lkzm" target="_blank" rel="noopener" class="bundle-promo-link">
Or access direct checkout promotion
</a>
</div>
</div>
</div>
</section>
<!-- 4. RECOMMENDED GEAR SECTION -->
<section id="gear" class="section-spacing">
<div class="container">
<div class="section-header">
<div class="tag-badge">INSTRUCTOR-TESTED ESSENTIALS</div>
<h2 class="section-title">Recommended Gear & Equipment</h2>
<p class="section-subtitle">
Equipment vetted by Prof. Mateus for optimal power transfer, comfort, safety, and training analytics.
</p>
</div>
<div class="gear-grid">
<!-- CARD 1 -->
<article class="gear-card">
<div class="gear-img-container">
<img src="images/shoe-mtb.png" alt="Cycling Shoes (SPD)" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Cycling Shoes (SPD)</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★½</span>
<span>4.5 (20,435 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$40.99</span>
<a href="https://www.amazon.com/Mountain-Cycling-Bicycle-Compatible-Shimano/dp/B09QKLPVS8?crid=3W36NVLJ55Z6B&dib=eyJ2IjoiMSJ9.ePrKP0ZnIa4P8_pLSPuaJ6W0FWWJUK-xd0ja2ukssE5kVfh8jXibcOlo9FggpqFXeQRHH5kN-VgfVhnZfEgPGB6fLsyURNT-xAVAaCnneNo.NVZ_dJS6Z38WWSXRkeFt5akNs4jCggJwNE5cBJ13kdk&dib_tag=se&keywords=Cycling%2Bshoes%2B%28SPD%2B%2F%2BLook%2BDelta%29&qid=1790394831&refinements=p_n_g-101017934180111%3A221157085011&rnid=121075130011&sprefix=cycling%2Bshoes%2Bspd%2B%2F%2Blook%2Bdelta%2B%2Caps%2C346&sr=8-3&th=1&psc=1&linkCode=ll2&tag=professormate-20&linkId=789cca5052cd09e0e9c1e56b00dc1d1c&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 2 -->
<article class="gear-card">
<div class="gear-img-container">
<img src="images/shoe-speed.png" alt="Cycling Shoes (Look Delta / Peloton)" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Cycling Shoes (Look Delta / Peloton)</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★☆</span>
<span>4.1 (341 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$39.99</span>
<a href="https://www.amazon.com/ULTIANT-Cycling-Compatible-Peloton-Bicycle/dp/B0BSQZ5ZV5?crid=CVFQJWZ6UH95&dib=eyJ2IjoiMSJ9.YBUMSTQwylOO46yDiGed0yaCPsY6KMBJpvVkQ4M4F1tpd-VpT-E_5gICtbX8zzKi7595OlphEcu5iw1q7BHvtsAuT18Cq1ybBjgcoiOaRT__OvN8IP2RFsF3LE2v2xhN-5kMAQy7SGqgUMY2sW12dR_184QMcqmhOELx6SxztdlvSz3cAb-k74htUweBd2WUQh1mI1rGSnQQz92PUnTvY0iKTBFYXluLpwxEfHbYrg06Gxgz6GFNqGgu6eCGMFSfcf4jZUFDVWzgcDeIdRo29xEvmvpgoOwRBIvkS9_fkOk.bOADKFWefiSEP2JSju88p1MpyaJRu7lehcZ_9pWfQeM&dib_tag=se&keywords=Cycling%2BShoes%2B%28Look%2BDelta%29&qid=1790398030&sprefix=cycling%2Bshoes%2Blook%2Bdelta%2B%2Caps%2C412&sr=8-10&th=1&psc=1&linkCode=ll2&tag=professormate-20&linkId=d2035fe54d6dcb9bddf6c952f39a6678&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 3 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">#5 in Men's Cycling Shorts</span>
<img src="images/padded-shorts.png" alt="Padded Cycling Shorts" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Padded Cycling Shorts</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★★</span>
<span>4.7 (2,958 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$28.98</span>
<a href="https://www.amazon.com/sponeed-Padded-Cycling-Shorts-Bicycle/dp/B0716H4QZ1?content-id=amzn1.sym.19c02530-5f3c-46fb-80e2-0cb6931f8e1c%3Aamzn1.sym.19c02530-5f3c-46fb-80e2-0cb6931f8e1c&crid=28Y7CEYX3RN1X&cv_ct_cx=Padded%2BCycling%2BShorts&keywords=Padded%2BCycling%2BShorts&pd_rd_i=B0716H4QZ1&pd_rd_r=50c9c44c-4bb2-4721-9607-f69404507e98&pd_rd_w=eZRB0&pd_rd_wg=i8ru4&pf_rd_p=19c02530-5f3c-46fb-80e2-0cb6931f8e1c&pf_rd_r=6JYPMBDHM95QN0WJ2GRA&qid=1790396577&sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&sprefix=padded%2Bcycling%2Bshorts%2Caps%2C251&sr=1-1-4a82bf2c-99de-49d4-8c6e-1b9c06d4b176-spons&aref=wk3gP8yAbR&sp_csd=d2lkZ2V0TmFtZT1zcF9zZWFyY2hfdGhlbWF0aWM&th=1&psc=1&linkCode=ll2&tag=professormate-20&linkId=3f93718f28e962ec77fadca15484af78&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 4 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">#1 in Men's Cycling Bib Shorts</span>
<img src="images/bib-shorts.png" alt="Bib Shorts" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Bib Shorts</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★★</span>
<span>4.7 (2,936 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$19.95</span>
<a href="https://www.amazon.com/Przewalski-Padded-Cycling-Shorts-Bicycle/dp/B09TB5CHQT?content-id=amzn1.sym.48c6b427-a259-44b4-afc3-8cb0f0dbcf97%3Aamzn1.sym.48c6b427-a259-44b4-afc3-8cb0f0dbcf97&dib=eyJ2IjoiMSJ9.odpX2SrAI95msPA6yG2cNSwYM3446WOrIw6omXbeGXOP43zJsrKpvI7l8_7cpluF_MtK8iwMlN3fr_ZR0AQamqLI20lO9xm1D9SOCPcgIgiw-I28tOlN7FNJkmrGArUDvnQm2-EDvQI3aY61-p4QABuSHLW-7qolSUx1cJk7gmHwFopb4Oy3cuL8JA30zBpAKfTdmPU81g_-AmN_kfSOFTzNVXZjQIirI6v9RgSuIRzy1LloFPxhOu-Hr0vtuZRAikpRThWYtx46IQLT10pPNmzHqSrtoSZelyWqLvYCJi4.gjXXnmgcHHr5Xdzk1gd5SPJBEg1vKZ6Ec0HFRw2hQxc&dib_tag=se&keywords=padded%2Bbike%2Bshorts%2Bbib&pd_rd_i=padded%2Bbike%2Bshorts%2Bbib&pd_rd_r=f0898467-de6c-4b47-b52f-f546435afca2&pd_rd_w=kVZLi&pd_rd_wg=DL893&qid=1790396722&sr=8-6&th=1&psc=1&linkCode=ll2&tag=professormate-20&linkId=91a5f4e4357d07aea527309f2189e425&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 5 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">Amazon's Choice</span>
<img src="images/bike-mat.png" alt="Bike Mat" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Bike Mat</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★☆</span>
<span>4.2 (3,342 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$25.49</span>
<a href="https://www.amazon.com/Cycleclub-Compatible-Treadmill-Stationary-Equipment/dp/B0BHQH8D9G?crid=31SQCIEU9V09E&dib=eyJ2IjoiMSJ9.tq1vBSZtHccdwbHWs_KSPYQ8ydXo_vQ_Q6GRKvH5wQG5rM5QlLnoCZlYJ9qPg40MTWIjl9HoR91ZYr3ELtG0WHliRp27b-lI0dUaNkRWrjzYShuhU4ZBIJ2r-a3W40mm0A1q9-ms50bRQlU1_2FdyB6h4anBoxRhDcpXCZrgHTN7FE-hq5vM_0bnvP4stio-Fk2zBGfZ9mGXsEEB7lhbrhZaq6NpXuwoXSze4f5x_keiTWh2U7y5qWENct2BtMOBURExHHE5VOAD1_F_bHxyglloHQCnmDABHOd0lQUak8U.x7UkeWd-opcVs43t8V7Bzjbyftf79r-gOmk_lPfGuss&dib_tag=se&keywords=Bike%2BMat&qid=1790396841&sprefix=bike%2Bmat%2Caps%2C373&sr=8-2&th=1&linkCode=ll2&tag=professormate-20&linkId=db8408eac86ef0688084b060d334b970&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 6 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">Universal Fit</span>
<img src="images/tablet-holder.png" alt="Tablet / Phone Holder" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Tablet / Phone Holder</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★★</span>
<span>4.7 (8,578 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$19.99</span>
<a href="https://www.amazon.com/Exercise-Handlebar-Stationary-Treadmill-Microphone/dp/B091GDKSK7?crid=ZLRXTLSRGQOT&dib=eyJ2IjoiMSJ9.4s-DtL9n-Zd4StSVIYWvmnPSfqXGF-4EZubmuWYvTXdKvr7gToXUifErCDdr4QZ64YVBMWCJhtYzGl4aPH8TulocYesE7DHGbiyNAEQNGil9X3ljLxJcugrcGSBizp-Fvk8WqSTc1jaegPewK6QbUY7MyzwM08TGJbHjFojo1wkvOKrzqhJeVAv1tI0qRXuM4QNalPVIF2CmufADZk3nj8aIJjV2PvkD7W2XpZCBfww.6mBFHmKc-aWnT1NtGYGtplmC3wW0DLswuXYmjVPKXw8&dib_tag=se&keywords=phone+tablet+holder+for+exercise+bike&qid=1790397556&sprefix=Tablet+%2F+Phone+Holder+for+bike%2Caps%2C337&sr=8-3&linkCode=ll2&tag=professormate-20&linkId=c926c9e2977e101134887eac1e997f05&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 7 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">Bluetooth & ANT+</span>
<img src="images/heart-rate-monitor.png" alt="Cadence Sensor / Heart Rate Monitor" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Cadence Sensor / Heart Rate Monitor</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★½</span>
<span>4.4 (449 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$52.99</span>
<a href="https://www.amazon.com/CooSpo-H6-Monitor-Bluetooth4-0-Peloton/dp/B07BS6B4PD?crid=21L5LRXVSIZ3C&dib=eyJ2IjoiMSJ9.a7W12HkbqaiO9_0Q2cn9qK4lqnCtS-bEETGUdQR80a2GfJewYqFtbEvVqLFK9iCSQOjuMY_pvb9xGZ9pFam52RSdcSymebUDx56jfAg46cCkC05TWJJBplpCbglsIoM_G1hcHvCu_wOYCd9SrBDQ0Z8TFZkIHyLN7gScbD5XobNfKFG30ppVeXkNbc-RH4JjVcq9PwjrvnZfKVrb5VucocSSUAviInnsbz1QTJsa690.qqqtoVA5cgZpohEVKQ-2y7j9nbqBCE6a8Gr5xaMwat0&dib_tag=se&keywords=Cadence+Sensor+%2F+Heart+Rate+Monitor&qid=1790396823&sprefix=cadence+sensor+%2F+heart+rate+monitor%2Caps%2C307&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1&linkCode=ll2&tag=professormate-20&linkId=64155e0f67ba684b132503fe50dd93fa&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
<!-- CARD 8 -->
<article class="gear-card">
<div class="gear-img-container">
<span class="gear-tag">700+ sold/month</span>
<img src="images/cycling-gloves.png" alt="Cycling Gloves" class="gear-img">
</div>
<div class="gear-content">
<div>
<h3 class="gear-title">Cycling Gloves</h3>
<div class="gear-rating">
<span class="gear-stars">★★★★☆</span>
<span>4.2 (838 reviews)</span>
</div>
</div>
<div class="gear-price-row">
<span class="gear-price">$19.99</span>
<a href="https://www.amazon.com/HTZPLOO-Mountain-Anti-Slip-Shock-Absorbing-Breathable/dp/B06XPL2DNR?crid=LNECHEZ4QQ2N&dib=eyJ2IjoiMSJ9.ARUbbjIDLu79KTEPPcDur-bXc3JFSHhO4wWXIJFAvs0hldJ1PPGdeGIVzJx2lihqb-J7Vs6QGlMBpZ6iMk27BTu2UH1mmt285J9AlfmWITRdbM6zTU0lKQqp8-XZ1kuQDWusXcLgMGemyMrOGp3XiPlWRRfWFmifgcfDYWOy14lFGCsertZrcb0xMeQ8-SGOvEv1ysTdXVgZwfIXgGEUyWwBqPWUit1MH15S-HaJaZLfNeAxoXfV6Kxw2KWCN9UUvFdTuyDtMwv0qWbXeiXRTFZQfybIx_lbziZFoTlLbm8.69ilmVHrTSZNGJpvhEqF-mvu8DjOFLYIlbi7Pqo-U-c&dib_tag=se&keywords=Cycling%2BGloves&qid=1790397672&refinements=p_n_g-101015233022111%3A121833112011&rnid=121075130011&sprefix=cycling%2Bgloves%2Caps%2C572&sr=8-1-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&th=1&psc=1&linkCode=ll2&tag=professormate-20&linkId=0784bdbd8937d88b3d15113762f609f8&language=en_US&gaOptInStatus=true&ref_=as_li_ss_tl" target="_blank" rel="noopener" class="btn-amazon">
View on Amazon
</a>
</div>
</div>
</article>
</div>
</div>
</section>
<!-- 5. FREE CHECKLIST SECTION -->
<section id="checklist" class="section-spacing checklist-section">
<div class="container">
<div class="checklist-card">
<div class="tag-badge">COMPLIMENTARY RESOURCE</div>
<h2 class="section-title">Get Your Free Indoor Cycling Checklist</h2>
<p class="section-subtitle" style="max-width:620px; margin:0 auto;">
The step-by-step pre-ride protocol used by elite studio instructors to align bike settings, hydrate efficiently, and prevent saddle soreness before clipping in.
</p>
<!-- Container isolated to prevent overlap -->
<div class="brevo-isolated-container">
<!-- ===== BREVO FORM (Free Checklist) ===== -->
<iframe width="100%" height="305" src="https://9208664d.sibforms.com/v2/serve/MUIFAL46uR1R3IzsSWZLbM3B388GiDh3Qz50FzG9nJd-E2qr55nrtCH8oAx5hSgfukBV8dl-TsPWqzvRbeT_zyFlsk1d3GDdseOni8VArz-UVptmuVgHhP5EE-1uCdmQd2Mhjt83xBB4oPvGvSYwAHj6ok0ZxC6OSUQkYxTqt9agKLq04Bx628etmKRhsY-4YEZkTLUOJ47efkrkHQ==" frameborder="0" scrolling="auto" allowfullscreen style="display: block;margin-left: auto;margin-right: auto;max-width: 100%;"></iframe>
<!-- ===== FIM DO FORMULÁRIO BREVO ===== -->
</div>
<p class="pdf-direct-notice">
Already subscribed or prefer a direct copy? Access the PDF directly at:
<a href="https://indoorcyclingmethod.com/checklist.pdf" target="_blank" rel="noopener">indoorcyclingmethod.com/checklist.pdf</a>
</p>
</div>
</div>
</section>
<!-- RECOMMENDED SUPPLEMENTS SECTION -->
<section id="supplements" class="section-spacing">
<div class="container">
<div class="section-header">
<div class="tag-badge">DAILY VITALITY & WELLNESS</div>
<h2 class="section-title">Recommended Supplements</h2>
<p class="section-subtitle">
Hand-picked wellness products I personally recommend. As an affiliate, I earn from qualifying purchases.
</p>
</div>
<div class="supplements-grid">
<!-- CARD 1 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/NuviaLab_Sugar_Control_AM_1.jpg" alt="NuviaLab Sugar Control" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Blood Sugar Support</div>
<h3 class="supplement-name">Blood Sugar Support</h3>
<p class="supplement-desc">
Formulated with natural ingredients traditionally used to support healthy blood sugar levels already within the normal range. A simple daily addition to your wellness routine.
</p>
</div>
<a href="https://nplink.net/bc2k3uuj" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 2 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/Lipid-Control-Plus-PRO8.jpg" alt="Lipid Control Plus" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Cholesterol Support</div>
<h3 class="supplement-name">Lipid Control Plus</h3>
<p class="supplement-desc">
A daily supplement designed to support healthy cholesterol levels already within the normal range, alongside a balanced diet and active lifestyle.
</p>
</div>
<a href="https://nplink.net/bmjyfs9o" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 3 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/pro_fbe_03.jpg" alt="Fast Burn Extreme" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Weight Management</div>
<h3 class="supplement-name">Fast Burn Extreme</h3>
<p class="supplement-desc">
A thermogenic blend created to support your metabolism and complement an active lifestyle. Ideal for those looking to support their weight management goals.
</p>
</div>
<a href="https://nplink.net/to3od1y1" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 4 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/EnudNAD_PRO7.jpg" alt="EnduNAD" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Longevity</div>
<h3 class="supplement-name">EnduNAD</h3>
<p class="supplement-desc">
Formulated with NAD+ precursors to support cellular energy and healthy aging. A daily supplement for those focused on long-term vitality.
</p>
</div>
<a href="https://nplink.net/6euzpy3b" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 5 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/NuviaLab-Immune-PRO8.jpg" alt="NuviaLab Immune" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Immunity Support</div>
<h3 class="supplement-name">Immunity Support</h3>
<p class="supplement-desc">
A blend of vitamins and natural ingredients traditionally used to support a healthy immune system. A convenient daily addition to your routine.
</p>
</div>
<a href="https://nplink.net/r0sikppb" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 6 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/Crave_Burner_PRO6.jpg" alt="Crave Burner" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Appetite Support</div>
<h3 class="supplement-name">Crave Burner</h3>
<p class="supplement-desc">
Designed to help you feel satisfied throughout the day and support your wellness goals. A practical ally for anyone managing their daily routine.
</p>
</div>
<a href="https://nplink.net/2fet1sg8" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 7 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/Restilen_pro_08.jpg" alt="Restilen" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Stress Support</div>
<h3 class="supplement-name">Restilen</h3>
<p class="supplement-desc">
A calming blend of natural ingredients traditionally used to help the body cope with everyday stress and support a balanced mood.
</p>
</div>
<a href="https://nplink.net/ou788ahz" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
<!-- CARD 8 -->
<article class="supplement-card">
<div style="background: #ffffff; border-radius: 10px; margin: 0.75rem 0.75rem 0 0.75rem; padding: 0.5rem; display: flex; align-items: center; justify-content: center; box-sizing: border-box;">
<img src="images/Shilajit-Extreme-PRO8.jpg" alt="Shilajit Extreme" style="width: 100%; height: 180px; object-fit: contain; display: block;">
</div>
<div class="supplement-body">
<div>
<div class="supplement-category">Testosterone Support</div>
<h3 class="supplement-name">Shilajit Extreme</h3>
<p class="supplement-desc">
Formulated with traditional ingredients used to support male vitality, energy, and overall wellness as part of an active lifestyle.
</p>
</div>
<a href="https://nplink.net/tzu21ri7" target="_blank" rel="noopener noreferrer" class="btn-supplement">Learn More</a>
</div>
</article>
</div>
<div class="supplements-disclosure">
This page contains affiliate links. If you make a purchase through these links, I may earn a commission at no additional cost to you.
</div>
</div>
</section>
<!-- 6. FOOTER -->
<footer class="site-footer">
<div class="container">
<div class="footer-grid">
<div>
<div class="footer-brand-title">Indoor Cycling Method</div>
<p style="max-width:380px; margin-bottom:1rem;">
Empowering indoor cyclists worldwide to ride with precision biomechanics, higher sustainable output, and total joint longevity.
</p>
<div class="footer-socials">
<!-- Instagram -->
<a href="https://instagram.com" target="_blank" rel="noopener" class="social-btn" aria-label="Instagram">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="2" width="20" height="20" rx="5" ry="5"/>
<path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"/>
<line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/>
</svg>
</a>
<!-- Facebook -->
<a href="https://facebook.com" target="_blank" rel="noopener" class="social-btn" aria-label="Facebook">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/>
</svg>
</a>
</div>
</div>
<div>
<h4 style="color:#fff; font-size:1rem; margin-top:0; margin-bottom:1rem;">Programs & Guides</h4>
<ul style="list-style:none; padding:0; margin:0; display:grid; gap:0.6rem;">
<li><a href="#guides" style="color:var(--text-muted); text-decoration:none;">Read Your Body</a></li>
<li><a href="#guides" style="color:var(--text-muted); text-decoration:none;">The Perfect Bike Fit</a></li>
<li><a href="#guides" style="color:var(--text-muted); text-decoration:none;">Bodyweight Conditioning</a></li>
<li><a href="#bundle" style="color:var(--text-muted); text-decoration:none;">Complete Method (Bundle)</a></li>
</ul>
</div>
<div>
<h4 style="color:#fff; font-size:1rem; margin-top:0; margin-bottom:1rem;">Resources</h4>
<ul style="list-style:none; padding:0; margin:0; display:grid; gap:0.6rem;">
<li><a href="#gear" style="color:var(--text-muted); text-decoration:none;">Recommended Shoes & Mats</a></li>
<li><a href="#gear" style="color:var(--text-muted); text-decoration:none;">Cadence Sensors</a></li>
<li><a href="#checklist" style="color:var(--text-muted); text-decoration:none;">Free Setup Checklist</a></li>
<li><a href="https://indoorcyclingmethod.com/checklist.pdf" target="_blank" rel="noopener" style="color:var(--text-muted); text-decoration:none;">Download Checklist PDF</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p style="margin:0;">
© <span id="year">2025</span> Indoor Cycling Method & Prof. Mateus. All rights reserved.
</p>
</div>
</div>
</footer>
<script>
// Dynamic year update
const yearSpan = document.getElementById('year');
if (yearSpan) {
yearSpan.textContent = new Date().getFullYear();
}
</script>
<script>
/* Skip artifact shell — fixed helpers served beside every artifact. */
(function () {
"use strict";
var fmt = {
num: function (v, opts) { return new Intl.NumberFormat("pt-BR", opts || {}).format(v); },
brl: function (v) { return new Intl.NumberFormat("pt-BR", { style: "currency", currency: "BRL" }).format(v); },
pct: function (v) { return new Intl.NumberFormat("pt-BR", { style: "percent", maximumFractionDigits: 1 }).format(v); }
};
// axisFmt keeps axis tick labels short (compact notation) so long values
// (e.g. full BRL amounts) never clip against the plot edge.
function axisFmt(v) {
return fmt.num(v, { notation: "compact", maximumFractionDigits: 1 });
}
// format accepts a function OR one of the fmt names ("num" | "brl" | "pct").
function coerceFormat(spec) {
if (typeof spec === "function") return spec;
if (typeof spec === "string" && fmt[spec]) return fmt[spec];
return function (v) { return fmt.num(v); };
}
function accent() {
return getComputedStyle(document.documentElement).getPropertyValue("--accent").trim() || "#2563eb";
}
function mutedColor() {
return getComputedStyle(document.documentElement).getPropertyValue("--text-muted").trim() || "#5b6472";
}
function svgEl(tag, attrs) {
var el = document.createElementNS("http://www.w3.org/2000/svg", tag);
for (var k in attrs) el.setAttribute(k, attrs[k]);
return el;
}
function frame(el, w, h) {
var svg = svgEl("svg", { viewBox: "0 0 " + w + " " + h, role: "img" });
el.innerHTML = "";
el.appendChild(svg);
return svg;
}
// maxOf guards the axis scale: empty values would give -Infinity (truthy,
// so "|| 1" can't catch it) and a non-positive max would flip the chart.
function maxOf(values) {
var m = values.length ? Math.max.apply(null, values) : 0;
return m > 0 ? m : 1;
}
// bar(el, {labels:[], values:[], color?, format?}) — vertical bar chart.
function bar(el, cfg) {
var W = 640, H = 280, padL = 46, padB = 30, padT = 12;
var svg = frame(el, W, H);
var max = maxOf(cfg.values);
var n = cfg.values.length;
var plotW = W - padL - 12, plotH = H - padT - padB;
var step = plotW / n, bw = Math.min(step * 0.62, 64);
var color = cfg.color || accent();
var f = coerceFormat(cfg.format);
for (var g = 0; g <= 4; g++) {
var gy = padT + plotH - (plotH * g) / 4;
svg.appendChild(svgEl("line", { x1: padL, y1: gy, x2: W - 12, y2: gy, stroke: "currentColor", "stroke-opacity": 0.08 }));
var lbl = svgEl("text", { x: padL - 8, y: gy + 4, "text-anchor": "end", "font-size": 10, fill: mutedColor() });
lbl.textContent = axisFmt((max * g) / 4);
svg.appendChild(lbl);
}
cfg.values.forEach(function (v, i) {
var bh = Math.max(0, (v / max) * plotH);
var x = padL + i * step + (step - bw) / 2;
var y = padT + plotH - bh;
var r = svgEl("rect", { x: x, y: y, width: bw, height: bh, rx: 4, fill: color });
var t = svgEl("title", {});
t.textContent = cfg.labels[i] + ": " + f(v);
r.appendChild(t);
svg.appendChild(r);
var tx = svgEl("text", { x: x + bw / 2, y: H - 10, "text-anchor": "middle", "font-size": 11, fill: mutedColor() });
tx.textContent = cfg.labels[i];
svg.appendChild(tx);
});
}
// line(el, {labels:[], values:[], color?, format?}) — single-series line.
function line(el, cfg) {
var W = 640, H = 280, padL = 46, padB = 30, padT = 12;
var svg = frame(el, W, H);
var max = maxOf(cfg.values);
var n = cfg.values.length;
var plotW = W - padL - 16, plotH = H - padT - padB;
var color = cfg.color || accent();
var f = coerceFormat(cfg.format);
for (var g = 0; g <= 4; g++) {
var gy = padT + plotH - (plotH * g) / 4;
svg.appendChild(svgEl("line", { x1: padL, y1: gy, x2: W - 16, y2: gy, stroke: "currentColor", "stroke-opacity": 0.08 }));
var lbl = svgEl("text", { x: padL - 8, y: gy + 4, "text-anchor": "end", "font-size": 10, fill: mutedColor() });
lbl.textContent = axisFmt((max * g) / 4);
svg.appendChild(lbl);
}
var pts = cfg.values.map(function (v, i) {
var x = padL + (n === 1 ? plotW / 2 : (plotW * i) / (n - 1));
var y = padT + plotH - (v / max) * plotH;
return [x, y];
});
var d = pts.map(function (p, i) { return (i ? "L" : "M") + p[0].toFixed(1) + " " + p[1].toFixed(1); }).join(" ");
svg.appendChild(svgEl("path", { d: d, fill: "none", stroke: color, "stroke-width": 2, "stroke-linejoin": "round" }));
pts.forEach(function (p, i) {
var c = svgEl("circle", { cx: p[0], cy: p[1], r: 3.5, fill: color });
var t = svgEl("title", {});
t.textContent = cfg.labels[i] + ": " + f(cfg.values[i]);
c.appendChild(t);
svg.appendChild(c);
var tx = svgEl("text", { x: p[0], y: H - 10, "text-anchor": "middle", "font-size": 11, fill: mutedColor() });
tx.textContent = cfg.labels[i];
svg.appendChild(tx);
});
}
// donut(el, {labels:[], values:[], colors?}) — donut with center total.
function donut(el, cfg) {
var W = 320, H = 280, cx = W / 2, cy = H / 2, R = 92, r = 58;
var svg = frame(el, W, H);
var total = cfg.values.reduce(function (a, b) { return a + b; }, 0) || 1;
var palette = cfg.colors || [accent(), "#1baf7a", "#eda100", "#e34948", "#4a3aa7", "#e87ba4"];
var a0 = -Math.PI / 2;
cfg.values.forEach(function (v, i) {
var a1 = a0 + (v / total) * Math.PI * 2;
var large = a1 - a0 > Math.PI ? 1 : 0;
var p = ["M", cx + R * Math.cos(a0), cy + R * Math.sin(a0),
"A", R, R, 0, large, 1, cx + R * Math.cos(a1), cy + R * Math.sin(a1),
"L", cx + r * Math.cos(a1), cy + r * Math.sin(a1),
"A", r, r, 0, large, 0, cx + r * Math.cos(a0), cy + r * Math.sin(a0), "Z"].join(" ");
var path = svgEl("path", { d: p, fill: palette[i % palette.length] });
var t = svgEl("title", {});
t.textContent = cfg.labels[i] + ": " + fmt.num(v) + " (" + fmt.pct(v / total) + ")";
path.appendChild(t);
svg.appendChild(path);
a0 = a1;
});
var center = svgEl("text", { x: cx, y: cy + 5, "text-anchor": "middle", "font-size": 20, "font-weight": 650, fill: "currentColor" });
center.textContent = fmt.num(total);
svg.appendChild(center);
}
window.skipShell = { fmt: fmt };
window.skipChart = { bar: bar, line: line, donut: donut };
})();
<!-- Amazon click tracker -->
<script>
document.querySelectorAll('a[href*="amazon.com"], a[href*="amzn.to"]').forEach(function(link){
link.addEventListener('click', function(){
if (typeof gtag === 'function') {
gtag('event', 'amazon_click', {
'link_url': link.href,
'link_text': link.textContent.trim().substring(0, 50)
});
}
});
});
</script>
</body>
</html>