1<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Garage Gym Athlete | Train like an athlete. For life.</title><meta name="description" content="Strength and endurance, trained together. App-delivered programming for the everyday athlete. Train in your garage, a gym, or on the road."><link rel="canonical" href="https://www.garagegymathlete.com/"><meta name="theme-color" content="#141414"><link rel="preload" href="/fonts/fk-grotesk/FKGrotesk-Bold.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/fk-grotesk/FKGrotesk-Medium.woff2" as="font" type="font/woff2" crossorigin><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:site_name" content="Garage Gym Athlete"><meta property="og:title" content="Garage Gym Athlete | Train like an athlete. For life."><meta property="og:description" content="Strength and endurance, trained together. App-delivered programming for the everyday athlete. Train in your garage, a gym, or on the road."><meta property="og:url" content="https://www.garagegymathlete.com/"><meta property="og:image" content="https://www.garagegymathlete.com/media/og-image.jpg"><!-- Twitter --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Garage Gym Athlete | Train like an athlete. For life."><meta name="twitter:description" content="Strength and endurance, trained together. App-delivered programming for the everyday athlete. Train in your garage, a gym, or on the road."><meta name="twitter:image" content="https://www.garagegymathlete.com/media/og-image.jpg"><meta name="generator" content="Astro v7.0.6">
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.garagegymathlete.com/#organization","name":"Garage Gym Athlete","url":"https://www.garagegymathlete.com/","logo":{"@type":"ImageObject","url":"https://www.garagegymathlete.com/apple-touch-icon.png"},"sameAs":["https://www.instagram.com/garagegymathlete","https://www.youtube.com/@GarageGymAthlete","https://open.spotify.com/show/1xZIf0tR57LmfcphyY1hDg"]},{"@type":"WebSite","@id":"https://www.garagegymathlete.com/#website","url":"https://www.garagegymathlete.com/","name":"Garage Gym Athlete","description":"Strength and endurance, trained together. App-delivered programming for the everyday athlete. Train in your garage, a gym, or on the road.","publisher":{"@id":"https://www.garagegymathlete.com/#organization"}}]}</script>
1<!-- Mark JS available before paint so the hidden reveal state only applies with JS. -->
1<script> 2 document.documentElement.classList.add('js'); 3 </script>
3<!-- First-party analytics: anonymous visitor id + first-touch UTM capture, 4 page_view/cta_click beacons to /api/e (Netlify-proxied to Supabase, 5 see netlify.toml), and app-link decoration so signups join back to the 6 visitor. No cookies, no PII, no third-party scripts. -->
6<script> 7 (function () { 8 try { 9 var vid = localStorage.getItem('gga_vid'); 10 if (!vid && window.crypto && crypto.randomUUID) { 11 vid = crypto.randomUUID(); 12 localStorage.setItem('gga_vid', vid); 13 } 14 if (!vid) return; 15 16 var UTMS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term']; 17 var attr = null; 18 try { attr = JSON.parse(localStorage.getItem('gga_attr') || 'null'); } catch (e) {} 19 var params = new URLSearchParams(location.search); 20 if (!attr || typeof attr !== 'object') { 21 attr = { landing_path: location.pathname, referrer: document.referrer || '' }; 22 UTMS.forEach(function (k) { 23 var v = params.get(k); 24 if (v) attr[k] = v; 25 }); 26 localStorage.setItem('gga_attr', JSON.stringify(attr)); 27 } 28 // Ad click ids refresh on every arrival that carries one (unlike the 29 // first-touch UTMs): the latest ad click is what the Conversions API 30 // should attribute to. fbclid_ts feeds Meta's fbc format 31 // (fb.1.<ms>.<fbclid>), stamped at capture time. 32 var fbclid = params.get('fbclid'); 33 var gclid = params.get('gclid'); 34 if (fbclid || gclid) { 35 if (fbclid) { 36 attr.fbclid = fbclid; 37 attr.fbclid_ts = String(Date.now()); 38 } 39 if (gclid) attr.gclid = gclid; 40 localStorage.setItem('gga_attr', JSON.stringify(attr)); 41 } 42 43 var send = function (type) { 44 var payload = { 45 visitor_id: vid, 46 event_type: type, 47 path: location.pathname, 48 referrer: attr.referrer || '', 49 }; 50 UTMS.forEach(function (k) { 51 if (attr[k]) payload[k] = attr[k]; 52 }); 53 var body = JSON.stringify(payload); 54 if (navigator.sendBeacon) navigator.sendBeacon('/api/e', body); 55 else fetch('/api/e', { method: 'POST', body: body, keepalive: true }).catch(function () {}); 56 }; 57 58 send('page_view'); 59 60 // Capture-phase so the href is decorated before navigation starts; 61 // covers every CTA (nav, pricing, floating pill) without touching them. 62 document.addEventListener( 63 'click', 64 function (e) { 65 var a = e.target && e.target.closest ? e.target.closest('a[href]') : null; 66 if (!a || a.href.indexOf('app.garagegymathlete.com') === -1) return; 67 try { 68 var url = new URL(a.href); 69 url.searchParams.set('vid', vid); 70 UTMS.concat(['fbclid', 'fbclid_ts', 'gclid']).forEach(function (k) { 71 if (attr[k]) url.searchParams.set(k, attr[k]); 72 }); 73 a.href = url.toString(); 74 } catch (err) {} 75 send('cta_click'); 76 }, 77 true 78 ); 79 } catch (e) {} 80 })(); 81 </script>
81<!-- Privacy-friendly analytics by Plausible. Same site id runs in the app's 82 web build (fitness-app-root src/lib/plausible.ts), so www to app reads 83 as one visitor and funnels span the subdomain hop. Cookieless, so no 84 consent banner is needed. plausible.io is allowed in the CSP (netlify.toml). -->
84<script async src="https://plausible.io/js/pa-P1vZQ18lgQBik43f1YMwt.js"></script>
84<script> 85 window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}}; 86 plausible.init() 87 </script>
87<!-- Fathom: beautiful, simple website analytics. Same site id runs in the 88 app's web build (fitness-app-root src/lib/fathom.ts); turn on 89 Multi-domains (Combined) in Fathom site settings so www â app reads as 90 one visitor. Cookieless. cdn.usefathom.com is allowed in the CSP. -->
90<script src="https://cdn.usefathom.com/script.js" data-site="XLNIJYAA" defer></script>
90<script data-pixel-id="971638876179686"> 91 // Astro does NOT evaluate expressions inside
91<script> â only in 92 // attributes. Wrapping this body in a template-literal expression 93 // emits the braces and backticks verbatim, a syntax error that 94 // silently kills the pixel. Keep this as raw JS and read the id off 95 // data-pixel-id at runtime instead of interpolating it. 96 !(function (f, b, e, v, n, t, s) { 97 if (f.fbq) return; 98 n = f.fbq = function () { 99 n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); 100 }; 101 if (!f._fbq) f._fbq = n; 102 n.push = n; 103 n.loaded = true; 104 n.version = '2.0'; 105 n.queue = []; 106 t = b.createElement(e); 107 t.async = true; 108 t.src = v; 109 s = b.getElementsByTagName(e)[0]; 110 s.parentNode.insertBefore(t, s); 111 })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); 112 fbq('init', document.currentScript.dataset.pixelId); 113 fbq('track', 'PageView'); 114 </script>
114<link rel="stylesheet" href="/_astro/lockup-white.B5HmAheN.css"><style>.tsc-rail[data-astro-cid-fn7c4stp]{scrollbar-width:none}.tsc-rail[data-astro-cid-fn7c4stp]::-webkit-scrollbar{display:none} 115</style></head><body><a href="#main" class="sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[100] focus:rounded-md focus:bg-accent focus:px-4 focus:py-2 focus:font-semibold focus:text-ink">Skip to content</a><header id="site-nav" class="fixed inset-x-0 top-0 z-50 transition-all duration-300 ease-out-expo"><div id="announcement-bar" class="overflow-hidden transition-[max-height] duration-300 ease-out-expo"><a href="/the-app" class="block bg-accent px-4 py-2 text-center text-small font-semibold text-ink underline-offset-2 hover:underline">Now on the App Store and Google Play.</a></div><nav class="container-x flex h-16 items-center justify-between sm:h-20" aria-label="Primary"><a href="/" class="flex items-center" aria-label="Garage Gym Athlete home"><img src="/_astro/wordmark-white.Cgeyb1he_2fRE4o.webp" srcset="/_astro/wordmark-white.Cgeyb1he_ZoJK4f.webp 220w, /_astro/wordmark-white.Cgeyb1he_1Te2vK.webp 440w" alt="Garage Gym Athlete" sizes="(min-width: 640px) 123px, 109px" loading="eager" decoding="async" width="1608" height="473" class="h-8 w-auto sm:h-9"></a><!-- Desktop links --><ul class="hidden items-center gap-8 lg:flex"><li><a href="/the-app" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">App</a></li><li><a href="/method" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Method</a></li><li><a href="/mindset" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Mindset</a></li><li><a href="/membership" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Membership</a></li><li><a href="/stories" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Stories</a></li><li><a href="/podcast" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Podcast</a></li><li><a href="/blog" class="text-sm font-medium text-paper/80 transition-colors hover:text-accent">Blog</a></li></ul><div class="flex items-center gap-3 sm:gap-5"><a href="https://app.garagegymathlete.com/login" class="hidden text-sm font-medium text-paper/80 transition-colors hover:text-accent sm:block" rel="noopener noreferrer">Login</a><a href="https://app.garagegymathlete.com/welcome" class="inline-flex items-center justify-center gap-2 rounded-full font-display font-semibold uppercase tracking-[0.025em] transition-all duration-200 ease-out-expo focus-visible:outline-none bg-accent text-ink hover:bg-paper hover:scale-[1.03] active:scale-[0.99] shadow-[0_0_0_0_rgba(247,239,0,0.5)] hover:shadow-[0_8px_30px_-6px_rgba(247,239,0,0.35)] px-6 py-3 text-base hidden sm:inline-flex" rel="noopener noreferrer" target="_blank">Start Free Trial</a><!-- Mobile menu toggle --><button id="nav-toggle" type="button" class="relative z-50 flex h-10 w-10 items-center justify-center rounded-md text-paper lg:hidden" aria-expanded="false" aria-controls="mobile-menu" aria-label="Open menu"><span class="sr-only">Toggle menu</span><svg class="h-6 w-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path id="nav-icon-open" stroke-linecap="round" d="M3 6h18M3 12h18M3 18h18"></path><path id="nav-icon-close" class="hidden" stroke-linecap="round" d="M6 6l12 12M6 18L18 6"></path></svg></button></div></nav></header><!-- Mobile overlay menu. Kept OUTSIDE the <header>: the scrolled header gets 116 backdrop-blur, and a backdrop-filter ancestor becomes the containing block 117 for fixed descendants â inside it, this overlay's inset-0 collapses to the 118 64px header strip and the menu renders with no background. --><div id="mobile-menu" class="invisible fixed inset-0 z-40 flex translate-y-[-100%] flex-col overflow-y-auto bg-ink opacity-0 transition-all duration-300 ease-out-expo lg:hidden"><ul class="container-x mt-28 flex flex-col gap-2"><li><a href="/the-app" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">App</a></li><li><a href="/method" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Method</a></li><li><a href="/mindset" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Mindset</a></li><li><a href="/membership" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Membership</a></li><li><a href="/stories" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Stories</a></li><li><a href="/podcast" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Podcast</a></li><li><a href="/blog" data-mobile-link class="block border-b border-paper/10 py-5 font-display text-2xl font-semibold uppercase text-paper transition-colors hover:text-accent">Blog</a></li></ul><div class="container-x mt-8 flex flex-col gap-4"><a href="https://app.garagegymathlete.com/welcome" class="inline-flex items-center justify-center gap-2 rounded-full font-display font-semibold uppercase tracking-[0.025em] transition-all duration-200 ease-out-expo focus-visible:outline-none bg-accent text-ink hover:bg-paper hover:scale-[1.03] active:scale-[0.99] shadow-[0_0_0_0_rgba(247,239,0,0.5)] hover:shadow-[0_8px_30px_-6px_rgba(247,239,0,0.35)] px-8 py-4 text-lg w-full" rel="noopener noreferrer" target="_blank">Start Free Trial</a><a href="https://app.garagegymathlete.com/login" data-mobile-link class="py-2 text-center font-medium text-paper/80 transition-colors hover:text-accent" rel="noopener noreferrer">Login</a></div></div>
118<script type="module">var e=document.getElementById(`site-nav`),t=document.getElementById(`nav-toggle`),n=document.getElementById(`mobile-menu`),r=document.getElementById(`nav-icon-open`),i=document.getElementById(`nav-icon-close`),a=document.getElementById(`announcement-bar`),o=()=>{if(!e)return;let t=window.scrollY>24;e.classList.toggle(`bg-ink/80`,t),e.classList.toggle(`backdrop-blur-md`,t),e.classList.toggle(`border-b`,t),e.classList.toggle(`border-paper/10`,t),a&&(a.style.maxHeight=t?`0px`:`${a.scrollHeight}px`)};o(),window.addEventListener(`scroll`,o,{passive:!0}),window.addEventListener(`resize`,o,{passive:!0});var s=!1,c=e=>{s=e,!(!n||!t)&&(t.setAttribute(`aria-expanded`,String(s)),t.setAttribute(`aria-label`,s?`Close menu`:`Open menu`),r?.classList.toggle(`hidden`,s),i?.classList.toggle(`hidden`,!s),n.classList.toggle(`invisible`,!s),n.classList.toggle(`opacity-0`,!s),n.classList.toggle(`translate-y-[-100%]`,!s),document.body.style.overflow=s?`hidden`:``)};t?.addEventListener(`click`,()=>c(!s)),document.querySelectorAll(`[data-mobile-link]`).forEach(e=>{e.addEventListener(`click`,()=>c(!1))}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&s&&c(!1)});</script>
118<main id="main"><!-- `isolate` creates a stacking context so the -z-10 video paints above the 119 section's bg-ink instead of behind it (otherwise the hero is solid black). --><section id="top" class="relative isolate flex min-h-[100svh] items-center overflow-hidden bg-ink"><!-- 120 HERO BACKGROUND: on sm+ screens, a full-bleed muted looping video over a 121 dark scrim; on phones, a portrait still (hero-mobile.jpg) instead â the 122 landscape video crops badly there and the mp4 is a 3.3 MB download. The 123 video has no <source> in the markup; the script attaches it only on sm+ 124 viewports so phones never fetch it. The poster (first-frame JPG) shows on 125 desktop before the video loads, and stays put under prefers-reduced-motion 126 (the script only calls play() when motion is allowed). Swap 127 public/media/hero.mp4 + hero-poster.jpg + hero-mobile.jpg to change it. 128 --><img src="/media/hero-mobile.jpg" alt="" class="absolute inset-0 -z-10 h-full w-full object-cover sm:hidden" aria-hidden="true"><video id="hero-video" class="absolute inset-0 -z-10 hidden h-full w-full object-cover sm:block" muted loop playsinline preload="auto" poster="/media/hero-poster.jpg" data-src="/media/hero.mp4" aria-hidden="true"></video><!-- legibility scrim: keeps the white headline readable over bright frames --><div class="absolute inset-0 -z-10 bg-gradient-to-t from-ink via-ink/60 to-ink/45" aria-hidden="true"></div><div class="container-x relative flex flex-col items-center pt-36 pb-20 text-center sm:pt-32"><p data-hero-item class="mb-6 inline-flex items-center rounded-full border border-accent/40 bg-accent/15 px-4 py-1.5 text-small font-semibold text-accent backdrop-blur-sm">Try free for 7 days.</p><!-- Sized so "Daily Athletic Training" holds a single line (23 caps) inside 129 the 1200px container, with "For Everyone." stacked beneath â the 130 two-line centered stack is the design; text-display would force 3 lines. --><h1 data-hero-item class="text-[clamp(2.5rem,5.2vw,4.75rem)] font-bold leading-[1.05] tracking-[-0.005em] text-paper">Daily Athletic Training<span class="block text-accent">For Everyone.</span></h1><p data-hero-item class="mx-auto mt-6 max-w-[52ch] text-lead text-paper/75">Built for the everyday athlete and trainable anywhere: your garage, a gym, or the road.</p><div data-hero-item class="mt-10 flex flex-col items-center gap-4 sm:flex-row sm:justify-center"><a href="https://app.garagegymathlete.com/welcome" class="inline-flex items-center justify-center gap-2 rounded-full font-display font-semibold uppercase tracking-[0.025em] transition-all duration-200 ease-out-expo focus-visible:outline-none bg-accent text-ink hover:bg-paper hover:scale-[1.03] active:scale-[0.99] shadow-[0_0_0_0_rgba(247,239,0,0.5)] hover:shadow-[0_8px_30px_-6px_rgba(247,239,0,0.35)] px-8 py-4 text-lg " rel="noopener noreferrer" target="_blank">Start Free Trial</a></div><p data-hero-item class="mt-10 text-xs font-medium uppercase tracking-[0.25em] text-paper/50">Now on iPhone, Android & Web</p></div><!-- scroll-down indicator --><a href="#why" class="absolute bottom-8 left-1/2 hidden -translate-x-1/2 flex-col items-center gap-2 text-paper/50 transition-colors hover:text-accent sm:flex" aria-label="Scroll to learn more"><span class="text-xs uppercase tracking-[0.2em]">Scroll</span><span class="flex h-9 w-5 justify-center rounded-full border border-paper/30 pt-1.5"><span class="h-2 w-0.5 animate-bounce rounded-full bg-accent"></span></span></a></section>
130<script type="module">var e=document.getElementById(`hero-video`);if(e){let t=window.matchMedia(`(min-width: 640px)`),n=window.matchMedia(`(prefers-reduced-motion: reduce)`),r=()=>{!t.matches||e.src||(e.src=e.dataset.src??``,n.matches||e.play().catch(()=>{}))};r(),t.addEventListener(`change`,r)}</script>
130<section class="border-y border-paper/10 bg-ink py-10" aria-label="By the numbers"><div class="container-x" data-reveal-group><dl class="grid grid-cols-2 gap-8 md:grid-cols-4"><div data-reveal class="text-center md:text-left"><dt class="font-display text-3xl font-bold uppercase text-accent sm:text-4xl">25,000+</dt><dd class="mt-1 text-small text-paper/60">athletes coached and counting</dd></div><div data-reveal class="text-center md:text-left"><dt class="font-display text-3xl font-bold uppercase text-accent sm:text-4xl">Since 2011</dt><dd class="mt-1 text-small text-paper/60">programming for athletes online</dd></div><div data-reveal class="text-center md:text-left"><dt class="font-display text-3xl font-bold uppercase text-accent sm:text-4xl">10M+</dt><dd class="mt-1 text-small text-paper/60">workouts delivered</dd></div><div data-reveal class="text-center md:text-left"><dt class="font-display text-3xl font-bold uppercase text-accent sm:text-4xl">0</dt><dd class="mt-1 text-small text-paper/60">egos built. Just a community that shows up</dd></div></dl></div></section><section id="tracks-showcase" class="overflow-hidden bg-ink py-section" data-astro-cid-fn7c4stp><div class="container-x" data-astro-cid-fn7c4stp><div class="flex flex-wrap items-end justify-between gap-6" data-astro-cid-fn7c4stp><div class="max-w-[640px]" data-reveal-group data-astro-cid-fn7c4stp><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-accent" data-astro-cid-fn7c4stp>Tracks & Programs</p><h2 data-reveal class="mt-3 text-h2 text-paper" data-astro-cid-fn7c4stp>Pick your track. Switch anytime.</h2><p data-reveal class="mt-4 text-[1.0625rem] leading-[1.6] text-paper/65 [text-wrap:pretty]" data-astro-cid-fn7c4stp>Five ongoing tracks and six focused programs, all in one membership.</p></div><div class="flex flex-wrap gap-2.5 pb-1.5" data-reveal data-astro-cid-fn7c4stp><button type="button" data-filter="all" aria-pressed="true" class="inline-flex items-center gap-2 rounded-full border px-[18px] py-2.5 font-display text-[13px] font-semibold uppercase tracking-[0.08em] transition-all duration-200 ease-out-expo border-accent bg-accent text-ink" data-astro-cid-fn7c4stp><span class="pill-dot h-2 w-2 flex-none bg-ink" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>All</span></button><button type="button" data-filter="strength" aria-pressed="false" class="inline-flex items-center gap-2 rounded-full border px-[18px] py-2.5 font-display text-[13px] font-semibold uppercase tracking-[0.08em] transition-all duration-200 ease-out-expo border-paper/10 bg-steel-800 text-paper/80 hover:border-accent/60 hover:text-paper" data-astro-cid-fn7c4stp><span class="pill-dot h-2 w-2 flex-none bg-ink hidden" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Strength</span></button><button type="button" data-filter="endurance" aria-pressed="false" class="inline-flex items-center gap-2 rounded-full border px-[18px] py-2.5 font-display text-[13px] font-semibold uppercase tracking-[0.08em] transition-all duration-200 ease-out-expo border-paper/10 bg-steel-800 text-paper/80 hover:border-accent/60 hover:text-paper" data-astro-cid-fn7c4stp><span class="pill-dot h-2 w-2 flex-none bg-ink hidden" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Endurance</span></button><button type="button" data-filter="conditioning" aria-pressed="false" class="inline-flex items-center gap-2 rounded-full border px-[18px] py-2.5 font-display text-[13px] font-semibold uppercase tracking-[0.08em] transition-all duration-200 ease-out-expo border-paper/10 bg-steel-800 text-paper/80 hover:border-accent/60 hover:text-paper" data-astro-cid-fn7c4stp><span class="pill-dot h-2 w-2 flex-none bg-ink hidden" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Conditioning</span></button><button type="button" data-filter="minimal" aria-pressed="false" class="inline-flex items-center gap-2 rounded-full border px-[18px] py-2.5 font-display text-[13px] font-semibold uppercase tracking-[0.08em] transition-all duration-200 ease-out-expo border-paper/10 bg-steel-800 text-paper/80 hover:border-accent/60 hover:text-paper" data-astro-cid-fn7c4stp><span class="pill-dot h-2 w-2 flex-none bg-ink hidden" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Minimal Gear</span></button></div></div></div><!-- Card rail: first card aligns with the container's left edge, rail bleeds 131 off the right viewport edge. --><div class="tsc-rail mt-[clamp(32px,4vw,56px)] flex snap-x snap-mandatory gap-5 overflow-x-auto px-[max(24px,calc((100vw-1200px)/2+24px))] pb-2" data-reveal-group data-astro-cid-fn7c4stp><a href="/tracks/hard-to-kill" aria-label="Hard to Kill: explore the ongoing track" data-reveal data-tags="strength,conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-back-squat.BkeqrWDb_1aYgkr.webp" srcset="/_astro/tsc-back-squat.BkeqrWDb_qJ5Ep.webp 400w, /_astro/tsc-back-squat.BkeqrWDb_Wx3JQ.webp 640w, /_astro/tsc-back-squat.BkeqrWDb_Z2cWOrS.webp 800w" alt="Athlete back squatting in a garage g
131ym" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Hard to Kill</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Ongoing track</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Strong, conditioned, <span class="text-accent" data-astro-cid-fn7c4stp>ready for anything</span>.</p></div></div></a><a href="/tracks/strength" aria-label="Strength: explore the ongoing track" data-reveal data-tags="strength" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-deadlift.Dm6mCsRI_1Ev6l7.webp" srcset="/_astro/tsc-deadlift.Dm6mCsRI_Z1TD1o3.webp 400w, /_astro/tsc-deadlift.Dm6mCsRI_Iz3zm.webp 640w, /_astro/tsc-deadlift.Dm6mCsRI_2hjzhH.webp 800w" alt="Athlete deadlifting" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Strength</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Ongoing track</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Move <span class="text-accent" data-astro-cid-fn7c4stp>serious weight</span>, stay athletic.</p></div></div></a><a href="/tracks/shred" aria-label="Shred: explore the ongoing track" data-reveal data-tags="conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-airbike.DNsVruTY_Z14Mse3.webp" srcset="/_astro/tsc-airbike.DNsVruTY_2f5rPv.webp 400w, /_astro/tsc-airbike.DNsVruTY_2cgfBr.webp 640w, /_astro/tsc-airbike.DNsVruTY_ZKNuhT.webp 800w" alt="Athlete on an air bike" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Shred</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp>
131<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Ongoing track</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Burn fat, <span class="text-accent" data-astro-cid-fn7c4stp>keep the muscle</span>.</p></div></div></a><a href="/tracks/minimal-kit" aria-label="HTK Minimal Kit: explore the ongoing track" data-reveal data-tags="minimal,conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-kbs.ClX_3OKs_15MO8w.webp" srcset="/_astro/tsc-kbs.ClX_3OKs_1jclxn.webp 400w, /_astro/tsc-kbs.ClX_3OKs_2tJ8vE.webp 640w, /_astro/tsc-kbs.ClX_3OKs_2a1Oi8.webp 800w" alt="Athlete swinging a kettlebell" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>HTK Minimal Kit</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Ongoing track</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>If you can carry it, <span class="text-accent" data-astro-cid-fn7c4stp>you can train</span>.</p></div></div></a><a href="/tracks/minimal-time" aria-label="HTK Minimal Time: explore the ongoing track" data-reveal data-tags="conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-db-press.Br-AkCQX_1D8OdM.webp" srcset="/_astro/tsc-db-press.Br-AkCQX_Z1V0ivn.webp 400w, /_astro/tsc-db-press.Br-AkCQX_HcLs2.webp 640w, /_astro/tsc-db-press.Br-AkCQX_2fWian.webp 800w" alt="Athlete pressing dumbbells" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>HTK Minimal Time</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp>
131<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Ongoing track</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Hard to Kill in <span class="text-accent" data-astro-cid-fn7c4stp>30 minutes</span> a day.</p></div></div></a><a href="/tracks/endure" aria-label="Endure: explore the program · 13 weeks" data-reveal data-tags="endurance" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-run.ChE06AU-_Z2angQF.webp" srcset="/_astro/tsc-run.ChE06AU-_Z1VXJrO.webp 400w, /_astro/tsc-run.ChE06AU-_ZLqWtx.webp 640w, /_astro/tsc-run.ChE06AU-_Z169gH4.webp 800w" alt="Two athletes running down a road" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Endure</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Program · 13 weeks</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Build the engine that <span class="text-accent" data-astro-cid-fn7c4stp>never quits</span>.</p></div></div></a><a href="/programs/strike-zero" aria-label="Strike Zero: explore the program · 3 weeks" data-reveal data-tags="minimal,conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-pushup.BSl3-YKQ_ZWLFfC.webp" srcset="/_astro/tsc-pushup.BSl3-YKQ_LBpxO.webp 400w, /_astro/tsc-pushup.BSl3-YKQ_Z1tzE7u.webp 640w, /_astro/tsc-pushup.BSl3-YKQ_Z28shmb.webp 800w" alt="Athlete doing push-ups" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Strike Zero</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp>
131<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Program · 3 weeks</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Nothing but <span class="text-accent" data-astro-cid-fn7c4stp>bodyweight and grit</span>.</p></div></div></a><a href="/programs/one-man-system" aria-label="One Man System: explore the finite program" data-reveal data-tags="strength,minimal" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-dips.aqpqCAEn_q7wU1.webp" srcset="/_astro/tsc-dips.aqpqCAEn_2g1gQG.webp 400w, /_astro/tsc-dips.aqpqCAEn_20NMyi.webp 640w, /_astro/tsc-dips.aqpqCAEn_ZRpznP.webp 800w" alt="Athlete performing dips" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>One Man System</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Finite program</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Build strength with <span class="text-accent" data-astro-cid-fn7c4stp>bodyweight alone</span>.</p></div></div></a><a href="/programs/one-man-one-kettlebell" aria-label="One Man One Kettlebell: explore the program · 4 weeks" data-reveal data-tags="minimal,conditioning" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-kbs2.XBUhYfu1_Z2vX5ni.webp" srcset="/_astro/tsc-kbs2.XBUhYfu1_ZG4lqC.webp 400w, /_astro/tsc-kbs2.XBUhYfu1_ZVgOJ1.webp 640w, /_astro/tsc-kbs2.XBUhYfu1_1fFV7M.webp 800w" alt="Athlete swinging a kettlebell" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>One Man One Kettlebell</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp>
131<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Program · 4 weeks</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>One bell, <span class="text-accent" data-astro-cid-fn7c4stp>everything trained</span>.</p></div></div></a><a href="/programs/one-man-one-barbell" aria-label="One Man One Barbell: explore the finite program" data-reveal data-tags="strength,minimal" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-plates.cdFGGbGj_Z23Beif.webp" srcset="/_astro/tsc-plates.cdFGGbGj_Zjd8tN.webp 400w, /_astro/tsc-plates.cdFGGbGj_2uLUDO.webp 640w, /_astro/tsc-plates.cdFGGbGj_1PTip8.webp 800w" alt="Athlete loading plates onto a barbell" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>One Man One Barbell</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Finite program</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>One bar, <span class="text-accent" data-astro-cid-fn7c4stp>full-body strength</span>.</p></div></div></a><a href="/programs/murph-burner" aria-label="Murph Burner: explore the finite program" data-reveal data-tags="endurance,conditioning,minimal" class="group relative isolate aspect-[4/5.7] w-[clamp(280px,32vw,400px)] flex-none snap-start overflow-hidden rounded-3xl border border-paper/[0.08] bg-steel-800 transition-all duration-300 ease-out-expo hover:border-accent/40 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent" data-astro-cid-fn7c4stp><img src="/_astro/tsc-vest.C9f-O87E_Z1hBV9h.webp" srcset="/_astro/tsc-vest.C9f-O87E_xgMMo.webp 400w, /_astro/tsc-vest.C9f-O87E_i4ju0.webp 640w, /_astro/tsc-vest.C9f-O87E_2u25lN.webp 800w" alt="Athlete training in a weighted vest" sizes="(min-width: 1280px) 400px, 32vw" loading="lazy" data-astro-cid-fn7c4stp="true" decoding="async" width="954" height="1356" class="absolute inset-0 -z-10 h-full w-full object-cover object-top"><div class="absolute inset-0 z-0 bg-[linear-gradient(to_top,rgba(10,10,10,0.88)_0%,rgba(10,10,10,0.35)_28%,rgba(10,10,10,0)_48%)]" aria-hidden="true" data-astro-cid-fn7c4stp></div><div class="absolute inset-0 z-10 flex flex-col justify-between p-5 pb-[26px]" data-astro-cid-fn7c4stp><div class="flex items-start justify-between gap-3" data-astro-cid-fn7c4stp><span class="inline-flex items-center gap-2 whitespace-nowrap rounded-full bg-ink/[0.62] px-4 py-[9px] font-display text-[13px] font-semibold uppercase tracking-[0.08em] text-paper backdrop-blur" data-astro-cid-fn7c4stp><span class="h-2 w-2 flex-none bg-accent" aria-hidden="true" data-astro-cid-fn7c4stp></span><span data-astro-cid-fn7c4stp>Murph Burner</span></span><span class="flex h-11 w-11 flex-none items-center justify-center rounded-full bg-paper text-ink" aria-hidden="true" data-astro-cid-fn7c4stp>
131<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-fn7c4stp><path d="M8 2v12M2 8h12" data-astro-cid-fn7c4stp></path></svg></span></div><div data-astro-cid-fn7c4stp><p class="mb-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-paper/55" data-astro-cid-fn7c4stp>Finite program</p><p class="text-balance font-sans text-[clamp(22px,2vw,27px)] font-semibold leading-[1.25] text-paper" data-astro-cid-fn7c4stp>Show up <span class="text-accent" data-astro-cid-fn7c4stp>ready for Murph</span>.</p></div></div></a></div><div class="container-x" data-astro-cid-fn7c4stp><div data-reveal class="mt-[clamp(32px,4vw,48px)] flex flex-wrap items-center gap-x-8 gap-y-6" data-astro-cid-fn7c4stp><a href="https://app.garagegymathlete.com/welcome" class="inline-flex items-center justify-center gap-2 rounded-full font-display font-semibold uppercase tracking-[0.025em] transition-all duration-200 ease-out-expo focus-visible:outline-none bg-accent text-ink hover:bg-paper hover:scale-[1.03] active:scale-[0.99] shadow-[0_0_0_0_rgba(247,239,0,0.5)] hover:shadow-[0_8px_30px_-6px_rgba(247,239,0,0.35)] px-6 py-3 text-base " rel="noopener noreferrer" target="_blank">Start Free Trial</a><a href="/tracks" class="font-semibold text-paper/80 underline underline-offset-4 transition-colors hover:text-accent" data-astro-cid-fn7c4stp>Explore all training tracks</a></div></div></section>
131<script type="module">var e=document.getElementById(`tracks-showcase`);if(e){let t=Array.from(e.querySelectorAll(`[data-filter]`)),n=Array.from(e.querySelectorAll(`[data-tags]`)),r=[`border-accent`,`bg-accent`,`text-ink`],i=[`border-paper/10`,`bg-steel-800`,`text-paper/80`,`hover:border-accent/60`,`hover:text-paper`],a=e=>{t.forEach(t=>{let n=t.dataset.filter===e;t.classList.remove(...n?i:r),t.classList.add(...n?r:i),t.setAttribute(`aria-pressed`,String(n)),t.querySelector(`.pill-dot`)?.classList.toggle(`hidden`,!n)}),n.forEach(t=>{let n=e===`all`||(t.dataset.tags??``).split(`,`).includes(e);t.classList.toggle(`hidden`,!n)})};t.forEach(e=>{e.addEventListener(`click`,()=>a(e.dataset.filter??`all`))})}</script>
131<!-- Light problem/agitation beat before the value props: name the pain the 132 value props then resolve. Chalk surface for rhythm against the dark 133 sections around it (same treatment as HowItWorks). Single column per 134 Jerred 2026-07-21: body ends on the colon, pains list follows, resolution 135 lands last. --><section id="the-problem" class="bg-paper py-section text-ink"><div class="container-x"><div class="mx-auto max-w-3xl" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-ink/60">The problem</p><h2 data-reveal class="mt-3 text-h2">An effective hour of training shouldnât be a mystery.</h2><p data-reveal class="mt-5 text-ink/65">More people train at home than ever, and most still donât look, feel, or perform how they want. The issue isnât effort. Itâs bad programming, and it shows up the same way every time:</p><ul class="mt-8 grid gap-4 sm:grid-cols-2"><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>Too much high intensity, too often</li><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>Sessions that run way past an hour</li><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>Recurring aches and injuries</li><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>Sweating without progressing</li><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>A new program every month</li><li data-reveal class="flex items-start gap-3 rounded-xl border border-ink/10 bg-concrete/60 p-4 text-ink/75"><svg class="mt-0.5 h-5 w-5 flex-none text-red-600" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg>Eventually, quitting altogether</li></ul><p data-reveal class="mt-8 font-semibold text-ink">A smarter program fixes all of it. Purposeful training that respects your time, keeps you healthy, and compounds week after week.</p></div></div></section><section id="why" class="bg-ink py-section"><div class="container-x"><div class="max-w-2xl" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-accent">Why GGA</p><h2 data-reveal class="mt-3 text-h2 text-paper">Everything an everyday athlete needs. Nothing they donât.</h2></div><ul class="mt-14 grid gap-6 sm:grid-cols-2 lg:grid-cols-4" data-reveal-group><li data-reveal class="group relative flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7 transition-all duration-300 ease-out-expo hover:-translate-y-1 hover:border-accent/40"><span class="font-display text-sm font-bold text-accent">01</span>
135<h3 class="mt-4 text-h3 text-paper">Strength + endurance, together</h3><p class="mt-3 text-paper/65">Hybrid programming that builds raw strength and real engine in the same week. No more choosing one or the other.</p></li><li data-reveal class="group relative flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7 transition-all duration-300 ease-out-expo hover:-translate-y-1 hover:border-accent/40"><span class="font-display text-sm font-bold text-accent">02</span><h3 class="mt-4 text-h3 text-paper">Train anywhere</h3><p class="mt-3 text-paper/65">A barbell and a little space is all you need. Garage, commercial gym, or a hotel room on the road. The work travels with you.</p></li><li data-reveal class="group relative flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7 transition-all duration-300 ease-out-expo hover:-translate-y-1 hover:border-accent/40"><span class="font-display text-sm font-bold text-accent">03</span><h3 class="mt-4 text-h3 text-paper">Smart programming</h3><p class="mt-3 text-paper/65">Periodized cycles written by coaches, delivered through the app. You show up; the plan is already done.</p></li><li data-reveal class="group relative flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7 transition-all duration-300 ease-out-expo hover:-translate-y-1 hover:border-accent/40"><span class="font-display text-sm font-bold text-accent">04</span><h3 class="mt-4 text-h3 text-paper">A real community</h3><p class="mt-3 text-paper/65">Thousands of everyday athletes training the same work, every day. Accountability that actually keeps you consistent.</p></li></ul></div></section><!-- Light section for rhythm against the dark sections around it. --><section id="how-it-works" class="bg-paper py-section text-ink"><div class="container-x"><div class="max-w-2xl" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-ink/60">How it works</p><h2 data-reveal class="mt-3 text-h2">From signup to your first session in minutes.</h2></div><ol class="mt-14 grid gap-10 md:grid-cols-3" data-reveal-group><li data-reveal class="relative"><span class="font-display text-6xl font-bold text-ink/10">01</span><h3 class="mt-2 text-h3">Join</h3><p class="mt-3 text-ink/65">Start your free trial and get instant access to the full programming library and the app.</p></li><li data-reveal class="relative"><span class="font-display text-6xl font-bold text-ink/10">02</span><h3 class="mt-2 text-h3">Get your programming</h3><p class="mt-3 text-ink/65">Open the app to todayâs session: warm-up, lifts, and conditioning, scaled to your level.</p></li><li data-reveal class="relative"><span class="font-display text-6xl font-bold text-ink/10">03</span><h3 class="mt-2 text-h3">Train & track progress</h3><p class="mt-3 text-ink/65">Log every session, watch your numbers climb, and let the cycle progress you automatically.</p></li></ol></div></section><section id="community" class="bg-ink py-section"><div class="container-x"><div class="max-w-2xl" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-accent">Community</p><h2 data-reveal class="mt-3 text-h2 text-paper">Thousands of athletes. One daily standard.</h2></div><!-- TODO: replace with real, approved testimonials (see ASSETS.md). --><ul class="mt-14 grid gap-6 md:grid-cols-3" data-reveal-group><li data-reveal class="flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7"><svg class="h-7 w-7 text-accent" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.46 6 4 8.46 4 11.5V18h6v-6H7.5c0-1.38 1.12-2.5 2.5-2.5V6zm10 0c-3.04 0-5.5 2.46-5.5 5.5V18h6v-6h-2.5c0-1.38 1.12-2.5 2.5-2.5V6z"></path></svg><blockquote class="mt-4 flex-1 text-paper/80">It makes exercising so much easier, to have accountability, to have a reason to get out of bed.</blockquote><footer class="mt-6"><p class="font-display font-semibold uppercase text-paper">Courtney Morse</p><p class="text-small text-paper/55">Endurance athlete · PRs from the mile to the 25K</p></footer></li><li data-reveal class="flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7"><svg class="h-7 w-7 text-accent" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.46 6 4 8.46 4 11.5V18h6v-6H7.5c0-1.38 1.12-2.5 2.5-2.5V6zm10 0c-3.04 0-5.5 2.46-5.5 5.5V18h6v-6h-2.5c0-1.38 1.12-2.5 2.5-2.5V6z"></path></svg><blockquote class="mt-4 flex-1 text-paper/80">The choices in the programs and the amount of detail put into it with video demos made the transition easy.</blockquote><footer class="mt-6"><p class="font-display font-semibold uppercase text-paper">Keith Stockwell</p><p class="text-small text-paper/55">Made the switch from a CrossFit box</p></footer></li><li data-reveal class="flex flex-col rounded-2xl border border-paper/10 bg-steel-800/40 p-7"><svg class="h-7 w-7 text-accent" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.46 6 4 8.46 4 11.5V18h6v-6H7.5c0-1.38 1.12-2.5 2.5-2.5V6zm10 0c-3.04 0-5.5 2.46-5.5 5.5V18h6v-6h-2.5c0-1.38 1.12-2.5 2.5-2.5V6z"></path></svg><blockquote class="mt-4 flex-1 text-paper/80">I'm a GGA for life, now!</blockquote><footer class="mt-6"><p class="font-display font-semibold uppercase text-paper">Andy Goodbread</p><p class="text-small text-paper/55">
135Family doctor · member since 2019</p></footer></li></ul><div class="mt-10" data-reveal-group><a data-reveal href="/stories" class="inline-flex items-center gap-2 font-semibold text-accent transition-colors hover:text-paper">Read all 66 athlete stories <span aria-hidden="true">â</span></a></div></div></section><!-- Slim borrowed-authority strip: recognizable names, kept quieter than the 136 member testimonials it follows so the two don't compete. --><section class="bg-ink pb-20 pt-2" aria-label="Endorsements"><div class="container-x"><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-paper/40">What the industry says</p><ul class="mt-8 grid gap-10 md:grid-cols-3" data-reveal-group><li data-reveal class="border-l-2 border-accent pl-5"><blockquote class="text-paper/75">âI agree with their focus on the mindset of the athlete and the motivational tactics they use in the platform.â</blockquote><footer class="mt-4"><p class="font-display text-sm font-semibold uppercase text-paper">Aubrey Marcus</p><p class="text-small text-paper/50">Founder, Onnit</p></footer></li><li data-reveal class="border-l-2 border-accent pl-5"><blockquote class="text-paper/75">âThe programming is top-notch and easy to follow.â</blockquote><footer class="mt-4"><p class="font-display text-sm font-semibold uppercase text-paper">Brett McKay</p><p class="text-small text-paper/50">Founder, Art of Manliness</p></footer></li><li data-reveal class="border-l-2 border-accent pl-5"><blockquote class="text-paper/75">âThe perfect cause and business for training at home.â</blockquote><footer class="mt-4"><p class="font-display text-sm font-semibold uppercase text-paper">Mark Bell</p><p class="text-small text-paper/50">Founder, Super Training Gym and the Sling Shot</p></footer></li></ul></div></section><!-- Concrete surface: differentiates from the Chalk HowItWorks section; all Redline 137 in this section sits inside the Iron card (Redline never on Concrete). --><section id="pricing" class="bg-concrete py-section text-ink"><div class="container-x"><div class="mx-auto max-w-2xl text-center" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-ink/60">Membership</p><h2 data-reveal class="mt-3 text-h2">One membership. Everything included.</h2></div><div data-reveal class="mx-auto mt-12 max-w-md overflow-hidden rounded-3xl border border-ink/10 bg-ink text-paper shadow-2xl"><div class="p-8 sm:p-10"><span class="inline-flex rounded-full bg-accent px-3 py-1 text-small font-semibold text-ink">7-day free trial</span><div class="mt-6 flex items-end gap-2"><span class="font-display text-5xl font-bold">$25</span><span class="mb-1 text-paper/60">/ month</span></div><p class="mt-2 text-small text-paper/55">Billed monthly. Cancel anytime.</p><ul class="mt-8 flex flex-col gap-3"><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z" clip-rule="evenodd"></path></svg>Full programming library</li><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z" clip-rule="evenodd"></path></svg>Daily workouts in the app</li><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z" clip-rule="evenodd"></path></svg>Strength, endurance & hybrid tracks</li><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z"
137clip-rule="evenodd"></path></svg>Support from real coaches</li><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z" clip-rule="evenodd"></path></svg>Member community access</li><li class="flex items-start gap-3 text-paper/85"><svg class="mt-0.5 h-5 w-5 flex-none text-accent" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 011.4-1.4l3.3 3.3 6.8-6.8a1 1 0 011.4 0z" clip-rule="evenodd"></path></svg>Progress tracking & analytics</li></ul><a href="https://app.garagegymathlete.com/welcome" class="inline-flex items-center justify-center gap-2 rounded-full font-display font-semibold uppercase tracking-[0.025em] transition-all duration-200 ease-out-expo focus-visible:outline-none bg-accent text-ink hover:bg-paper hover:scale-[1.03] active:scale-[0.99] shadow-[0_0_0_0_rgba(247,239,0,0.5)] hover:shadow-[0_8px_30px_-6px_rgba(247,239,0,0.35)] px-8 py-4 text-lg mt-8 w-full" rel="noopener noreferrer" target="_blank">Start Free Trial</a></div></div><p data-reveal class="mx-auto mt-6 max-w-md text-center text-small text-ink/60">Veteran-owned company. Military, LEO, and first responder discounts available. <a href="/contact" class="underline underline-offset-2 hover:text-ink">Ask us how.</a></p></div></section><section class="relative overflow-hidden bg-accent py-section text-ink"><!-- subtle texture on the accent band --><div class="absolute inset-0 opacity-[0.08]" style="background-image: radial-gradient(circle at 1px 1px, #141414 1px, transparent 0); background-size: 28px 28px;" aria-hidden="true"></div><div class="container-x relative text-center" data-reveal-group><p data-reveal class="text-small font-semibold uppercase tracking-[0.2em] text-ink/70">25,000+ better humans strong</p><h2 data-reveal class="mx-auto mt-3 max-w-[18ch] text-h1 font-bold text-ink">Train like an athlete. Starting today.</h2><p data-reveal class="mx-auto mt-5 max-w-xl text-lg text-ink">Fathers, mothers, veterans, first responders, and busy professionals around the world train with us every day. Your first week is free. Cancel anytime.</p><div data-reveal class="mt-9 flex justify-center"><!-- Inverted button: Iron pill on the Redline band (guide-approved pairing). --><a href="https://app.garagegymathlete.com/welcome" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center rounded-full bg-ink px-10 py-4 font-display text-lg font-semibold uppercase tracking-[0.025em] text-paper transition-all duration-200 ease-out-expo hover:scale-[1.03] hover:bg-steel-800 active:scale-[0.99]">Start Your Free Trial</a></div></div></section></main><!-- pb-28 clears the fixed FloatingCTA pill so the legal links stay tappable. --><footer class="border-t border-paper/10 bg-ink pb-28 pt-16"><div class="container-x"><div class="flex flex-col gap-10 md:flex-row md:items-start md:justify-between"><div class="max-w-sm"><img src="/_astro/lockup-white.CTfbC-Ef_ZDPbTr.webp" srcset="/_astro/lockup-white.CTfbC-Ef_uza0r.webp 360w, /_astro/lockup-white.CTfbC-Ef_Z1PPWAz.webp 720w" alt="Garage Gym Athlete" sizes="180px" loading="lazy" decoding="async" width="1608" height="660" class="h-[74px] w-auto"><p class="mt-3 text-small text-paper/55">Strength and endurance, trained together. App-delivered programming for the everyday athlete. Train in your garage, a gym, or on the road.</p><div class="flex flex-wrap items-center gap-3 justify-start mt-6"><a href="https://apps.apple.com/us/app/garage-gym-athlete/id6781789266" target="_blank" rel="noopener noreferrer" class="inline-flex !no-underline transition-transform duration-200 ease-out-expo hover:scale-[1.03] active:scale-[0.99]" data-store-badge="ios" data-store-placement="footer"><img src="/_astro/app-store.CVyK0T4N_1y0B2z.svg" alt="Download on the App Store" loading="lazy" decoding="async" width="120" height="40" class="h-10 w-auto !m-0 !rounded-none !border-0"></a><a href="https://play.google.com/store/apps/details?id=com.garagegymathlete.app" target="_blank" rel="noopener noreferrer" class="inline-flex !no-underline transition-transform duration-200 ease-out-expo hover:scale-[1.03] active:scale-[0.99]" data-store-badge="android" data-store-placement="footer"><img src="/_astro/google-play.DRUvQFA3_26zPpa.webp" srcset="/_astro/google-play.DRUvQFA3_1karO9.webp 282w, /_astro/google-play.DRUvQFA3_26zPpa.webp 564w" alt="Get it on Google Play" sizes="161px" loading="lazy" decoding="async" width="564" height="168" class="h-10 w-auto !m-0 !rounded-none !border-0"></a></div>
137<script type="module">document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`a[data-store-badge]`);if(!t)return;let n=window.plausible;typeof n==`function`&&n(`Store Badge Click`,{props:{store:t.dataset.storeBadge,placement:t.dataset.storePlacement}})});</script>
137</div><nav class="flex flex-col gap-3" aria-label="Footer"><p class="text-small font-semibold uppercase tracking-[0.2em] text-paper/55">Explore</p><a href="/the-app" class="text-paper/70 transition-colors hover:text-accent">App</a><a href="/method" class="text-paper/70 transition-colors hover:text-accent">Method</a><a href="/mindset" class="text-paper/70 transition-colors hover:text-accent">Mindset</a><a href="/membership" class="text-paper/70 transition-colors hover:text-accent">Membership</a><a href="/stories" class="text-paper/70 transition-colors hover:text-accent">Stories</a><a href="/podcast" class="text-paper/70 transition-colors hover:text-accent">Podcast</a><a href="/blog" class="text-paper/70 transition-colors hover:text-accent">Blog</a></nav><nav class="flex flex-col gap-3" aria-label="Company"><p class="text-small font-semibold uppercase tracking-[0.2em] text-paper/55">Company</p><a href="/tracks" class="text-paper/70 transition-colors hover:text-accent">Tracks</a><a href="/stories" class="text-paper/70 transition-colors hover:text-accent">Athlete Stories</a><a href="/blog" class="text-paper/70 transition-colors hover:text-accent">Blog</a><a href="/about-garage-gym-athlete" class="text-paper/70 transition-colors hover:text-accent">About</a><a href="/contact" class="text-paper/70 transition-colors hover:text-accent">Contact</a><a href="/free-workout" class="text-paper/70 transition-colors hover:text-accent">Free Workout</a><a href="/shop" class="text-paper/70 transition-colors hover:text-accent">Shop</a><a href="/newsletter" class="text-paper/70 transition-colors hover:text-accent">Newsletter</a><a href="/books" class="text-paper/70 transition-colors hover:text-accent">Books</a><a href="/mys" class="text-paper/70 transition-colors hover:text-accent">Meet Yourself Saturday</a><a href="/app-updates" class="text-paper/70 transition-colors hover:text-accent">App Updates</a></nav><div class="flex flex-col gap-3"><p class="text-small font-semibold uppercase tracking-[0.2em] text-paper/55">Follow</p><a href="https://www.instagram.com/garagegymathlete" class="text-paper/70 transition-colors hover:text-accent">Instagram</a><a href="https://www.youtube.com/@GarageGymAthlete" class="text-paper/70 transition-colors hover:text-accent">YouTube</a><a href="https://open.spotify.com/show/1xZIf0tR57LmfcphyY1hDg" class="text-paper/70 transition-colors hover:text-accent">Podcast</a></div></div><div class="mt-12 flex flex-col gap-4 border-t border-paper/10 pt-6 text-small text-paper/55 sm:flex-row sm:items-center sm:justify-between"><p>© 2026 Garage Gym Athlete. All rights reserved.</p><div class="flex gap-6"><a href="/privacy" class="transition-colors hover:text-accent">Privacy</a><a href="/terms" class="transition-colors hover:text-accent">Terms</a><a href="/support" class="transition-colors hover:text-accent">Support</a></div></div></div></footer>
137<script type="module" src="/_astro/Motion.astro_astro_type_script_index_0_lang.rjDRmfqz.js"></script>
137<div id="floating-cta" class="pointer-events-none invisible fixed inset-x-0 bottom-5 z-30 flex translate-y-6 justify-center px-4 opacity-0 transition-all duration-300 ease-out-expo" aria-hidden="true"><div class="pointer-events-auto rounded-[28px] border border-paper/10 bg-ink/90 py-2.5 pl-6 pr-2.5 shadow-[0_12px_40px_-8px_rgba(0,0,0,0.7)] backdrop-blur-md"><div class="flex items-center gap-4"><div class="leading-tight"><p class="text-sm font-semibold text-paper sm:text-base">Get 7 days free</p><p class="text-xs text-paper/60 sm:text-small">Then $25/month</p></div><a href="https://app.garagegymathlete.com/welcome" target="_blank" rel="noopener noreferrer" class="rounded-full bg-accent px-5 py-2.5 font-display text-sm font-semibold uppercase tracking-[0.025em] text-ink transition-all duration-200 ease-out-expo hover:bg-paper hover:scale-[1.03] active:scale-[0.99]">Get Started</a></div><div id="floating-cta-proof" class="grid [grid-template-rows:0fr] opacity-0 transition-all duration-300 ease-out-expo motion-reduce:transition-none sm:hidden" aria-hidden="true"><div class="overflow-hidden"><p class="mt-2.5 border-t border-paper/10 pt-2.5 pr-3.5 text-xs leading-snug text-paper/60"><strong id="floating-cta-proof-name" class="font-semibold text-paper"></strong><span id="floating-cta-proof-text"></span></p></div></div></div></div>
137<script type="module" src="/_astro/FloatingCTA.astro_astro_type_script_index_0_lang.BZ1a1wJH.js"></script>
137<div id="proof-toast" class="pointer-events-none invisible fixed bottom-5 left-4 z-20 hidden max-w-sm translate-y-6 opacity-0 transition-all duration-300 ease-out-expo motion-reduce:transition-none sm:block" aria-hidden="true"><div class="pointer-events-auto relative flex items-center gap-3 rounded-2xl border border-paper/10 bg-ink/90 py-3 pl-4 pr-10 shadow-[0_12px_40px_-8px_rgba(0,0,0,0.7)] backdrop-blur-md"><span id="proof-avatar" class="flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-accent font-display text-lg font-semibold uppercase text-ink"></span><div class="leading-snug"><p id="proof-name" class="text-sm font-semibold text-paper"></p><p id="proof-text" class="mt-0.5 text-xs text-paper/60"></p></div><button id="proof-close" type="button" aria-label="Hide these notifications" class="absolute right-2 top-2 flex h-6 w-6 items-center justify-center rounded-full text-paper/40 transition-colors hover:bg-paper/10 hover:text-paper"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" aria-hidden="true"><path d="M1 1l8 8M9 1L1 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button></div></div>
137<script type="module" src="/_astro/ProofToast.astro_astro_type_script_index_0_lang.BWn0jYaY.js"></script>
vendor: 1 bytes, line 137
137
138<script async id="netlify-rum-container" src="/.netlify/scripts/rum" data-netlify-rum-site-id="94e2b360-cd25-4784-9017-e6318d2e819a" data-netlify-deploy-branch="main" data-netlify-deploy-context="production" data-netlify-cwv-token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaXRlX2lkIjoiOTRlMmIzNjAtY2QyNS00Nzg0LTkwMTctZTYzMThkMmU4MTlhIiwiYWNjb3VudF9pZCI6IjZhMDc2MjVjMTVmYzdiMzNiYWNhYmE1NiIsImRlcGxveV9pZCI6IjZhYmU3ZTA2MTQ2ODg5MDAwOTAzNTM5ZCIsImlzc3VlciI6Im5mc2VydmVyIn0.PeCu2FmH4DfxuTLK9Ypoz4Un24WRj352v5DkSU1hjvQ"></script>
138 139</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.